Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
287 changes: 287 additions & 0 deletions docs/content_management/content_management_guide.md

Large diffs are not rendered by default.

137 changes: 137 additions & 0 deletions docs/content_management/forms/form_builder_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
description: The Form Builder product guide provides a full description of its features as well as the benefits it brings to the client.
edition: experience
---

# Form Builder product guide

## What is Form Builder

Form Builder is a tool that lets you build forms consisting of different fields.

By adding forms on the website, you can increase its functionality and improve user experience. Use Form Builder to create various forms, such as survey,
questionnaire, sign-up form, using basic form fields available in the Form Builder.
You can also manage your forms and review the results gathered from the website users.

## Availability

Form Builder is available in Ibexa Experience and Ibexa Commerce.

## How does Form Builder work

### Form Builder interface

Form Builder user interface consists of:

A. Drop zone
B. Form fields toolbar
C. Save button
D. Search bar
E. Close button

![Form Builder interface](img/form_builder_interface.png)

### Form fields

To create forms, you can use available form fields or create custom ones.

The available basic form fields are:

| Field name | Icon | Description|
|----|----|----|
|Single line input|![Single line input](img/icons/single_line_input.png)|Single line field for short text.|
|Multiple line input|![Multiple line input](img/icons/multiple_line_input.png)|Multiple line field for longer text.|
|Number|![Number](img/icons/Number.png)| Field to set up a number using arrows.|
|Checkbox|![Checkbox](img/icons/Checkbox.png)|Single checkbox element with one option value available.|
|Checkboxes|![Checkboxes](img/icons/Checkboxes.png)|Multiple checkboxes with more than one option values available.|
|Radio|![Radio](img/icons/Radio.png)|List with multiple option values available and visible.|
|Dropdown|![Dropdown](img/icons/Dropdown.png)|Dropdown list with multiple option values available.|
|Email|![Email](img/icons/Email.png)|Field to insert an email address.|
|Date|![Date](img/icons/Date.png)|Field to insert a date.|
|URL|![URL](img/icons/URL.png)|Field to insert an URL address.|
|File|![File](img/icons/File.png)|Interactive field to upload file.|
|Captcha|![Captcha](img/icons/Captcha.png)|Field with captcha and additional blank line to rewrite it.|
|Button|![Button](img/icons/Button.png)|Form submit button.|
|Hidden field|![Hidden field](img/icons/Hidden_field.png)|Field used to submit metadata that should not be visible in rendered form.|

### Create a form

Editors can use the created form anywhere on the website.
Forms can be used in page blocks, embedded in the online editor or even used as a field relation.
The same form can be placed at multiple locations on the website.

To learn more, see [Work with forms]([[= user_doc =]]/content_management/work_with_forms/).

### Forms management

[Form](forms.md) is one of available [Content items]([[= user_doc =]]/content_management/content_items/) that you can find in the platform.
You can work with it as with other regular items: create new one, edit existing one, move, etc.

You can manage all the existing forms. To do it, in a selected place of the content tree find your form and click on it.
In this window you can see all the information about your form, view submissions, create versions, etc.

Using the buttons in the right corner, you can also edit, move, copy, hide or send your form to the trash.

![Forms management](img/forms_management.png)

### Form API

To manage form submissions created in the Form Builder, use `FormSubmissionServiceInterface`.
You can get existing form submission and create or delete one.
Detailed instruction of getting, creating and deleting form submissions, you can find in Ibexa Developer Documentation in [Form API page](form_api.md).

### Extend Form Builder

You can extend the Form Builder by adding new Form fields or modifying existing ones.
To create new form fields, you need to [define them in configuration](create_custom_form_field.md).
Fields or fields attributes [can be modified](create_custom_form_field.md#modify-existing-form-fields) by subscribing `ibexa.form_builder.field.<FIELD_ID>` or `ibexa.form_builder.field.<FIELD_ID>.<ATTRIBUTE_ID>` events.

### Create new Form attribute

Each Form has available attributes, for example, string, text, location, etc.
You can also [create a Form attribute](create_form_attribute.md) for new Form fields or existing ones.

To do it, you have to:

1. define a new Form attribute in the configuration,
1. create a mapper,
1. add Symfony form type,
1. customize Form templates,
1. add scripts,
1. implement Field,
1. implement field mapper,
1. create submission converter.

### View results

You can preview the results of each published form.
To do it, go to **Submissions** tab in the Content item view:

![View results](img/view_results.png)

Here you can view the details of each submission or delete any of them.

The **Download submissions** button enables you to download all the submissions in a .CSV (comma-separated value) file.

## Benefits

### General overview

With Form Builder you are allowed to build an unlimited number of forms.
These forms can be used anywhere on the website and are ready to start collecting information.
Form Builder interface is simple, which makes the creation of forms fast and intuitive.

### Forms management

Forms can be managed simply and effectively: you can copy them, move, organize into folders, create versions and delete if necessary.
Each field can be configured so that the form collects the exact details that you need.

### Custom Form fields

With Form Builder you can use existing Form fields, but also you can extend it by adding new or modifying existing ones.
This allows you to create forms that fit your needs.

### Analytic tool

All the submissions can are visible in Submissions tab.
You can download them as a .CSV file for additional analysis.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Captcha.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Checkbox.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Date.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Dropdown.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Email.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/File.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Number.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/Radio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/forms/img/icons/URL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/img/content_tree.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/content_management/img/content_types.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-08-03T13:24:26.705Z" agent="5.0 (Macintosh; Intel Mac OS X 13_4_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="X9hzBto0EVA9q9Xh55go" version="14.6.13" type="device"><diagram id="nFsci-ib5gsT7s93_WuU" name="Page-1">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</diagram></mxfile>

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-08-02T17:56:57.807Z" agent="5.0 (Macintosh; Intel Mac OS X 13_4_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="a-qi1_6R4nvKtFCMOnVl" version="14.6.13" type="device"><diagram name="Page-0" id="Page-0">7Vtdd5s4EP01fgwHSYDhMXXctNk29Sbe7e4jBWFzFgMLOMH99ZVA4tsxIcbg1MTnBI2EsObeGWlG8gTNNvFtoPvrr56JnQkUzXiCbiYQAnkqkX9UsmMSqKqpZBXYJpPlgkf7J2ZCkUm3tonDUsPI85zI9stCw3NdbEQlmR4E3nO5meU55bf6+grXBI+G7tSl320zWqdSSVFz+Sdsr9YRr1DSio3O27KBhGvd9J4LIjSfoFngeVF6t4ln2KHK42pJn/u4pzb7XgF2ozYPLJH2AL7/eTf78tfd3/ZHyfjj5+IKpb086c6WjXd5fTtB10Q2+/ww+zJ/ZF8+2nGFBN7WNTHtFEzQh+e1HeFHXzdo7TPhAJGto43Dqi3bcWae4wXJs8iysGxoRB5GgfcfbqzhaqKP18fIhv2EgwjHBREb8y32NjgKdqQJq70CCAly+hTj4JXKIHnOAYUik60LYAIu1BmJVln3uaLJDdP1K/Qu1fQ+gYoT0fH7ukvuV/Q+w+JhPlte398mcKTNyFuLLc8dJYDEsUEk7zeNhzkpit8+3BFYzt9AJHF0ulcazKOiZaIGn95aDo6vqZ8n2sCuyW5vDEcPQ9soK5vUcx9O+JaU2YSjCYqsosLVAZp9UGCzNMPUgSjoWW5QM5cF2NEj+6k8LzWpnr1h4dnkm+Q4owrOUCp3EXrbwMDsqeJEUu0IapowBSD7qKVu+fzOu430YIWjWrcJLzIldKeKepgquUGKhw0yMy+xCeoGWsj070imiLRmXRYYAniTIkUQUHqyRK0nS4zt6B+qZEFmpX8LNTcx039S2PHC7229SNCIF84ujvhbjZn0q6CCLaMhjZkv+i90G5huEIkCkLX8mpbZJndjG+1WklRCq/QDygtzVTst28Bhtp3P3AEQrMQ5w88eAL4jDVdjlBGotx6+8/jQ8hK7y/Ws/L/1eMVVmDgyGsoAyY/zSh5Ozr7dL+f3ywlNKaT9/Qh43efl/Ct9sBCJpi/bE4mScdh+iA9jq4d+msCx7JjyoRzptAHbMgzjR19REUL1sAjAprAI9hUWgf1pg97xhuPD21Swah7LfUK56j5HgXg9C3EyxFFbxHvHeYo1Cx9rmhyjXTflO06EsjQ+u7YsCxrGcfCWtCraYHC0m1IWxeTvm9HekyLOGdD1Dcf5nox5cttcNo/41jjWV55Lmvg4sAkYOMilCy6CbZKuhJgsmAOdCMoWGulI0/jwGCtMrQ1bUSNbXwjx3sbWpgzQZY15nHSfUp6LAEACVApRd0OEcVpfBZsSMhdfdfFVlLxSibxZ6mk4XwWbEjoXX3UUuLXqLrqmCVrpGtxXNSWbLtFxP+gDVRkc7wGzX+88aqrjDaeDR8lwwOzXu8yFgGll+TkCm27Kd1VNKt/scz2X6sLUw3V24KagbSpf6BFZaLmJhOLItcz39ugSjKgw2LH9QVnhgmSLUBDFTJDvEyalXbG0KKzyXlxhpXtaLwVczK2NZCeQxKAlkmSng16/01xJvAGt0lPP232wxamifrmlwAq34LQLt5p3s7MN7Mbd7L18TOF7QW3ymfJWrdJNOlvitjjj1C9xS7Q9QNk3eD5pXAzadyb19QSCSIBqlUSaAKf1Exan4lSLg12n45R4yA12OL/T3ePx7ZiDhB2Zx4MVvk678hWotb1QWD3r2zM/ue2Ng5+HfN5pZ2SprT+VL/zsjZ8tzo71wM/T+kF1VPwBQKtiDjoSqHoUvja1d2YPKeY/6Uqb5z+MQ/Nf</diagram></mxfile>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-08-02T11:14:26.540Z" agent="5.0 (Macintosh; Intel Mac OS X 13_4_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="LojU6LqfL1n-Xf3ZOFI1" version="14.6.13" type="device"><diagram id="nFsci-ib5gsT7s93_WuU" name="Page-1">7VrblqJKEv2aWmvm4bggk+sjyE1RBMHryyyUq6JYiCJ+/STlFbFP2T22XXNW+VJEZJDAjh07g6TeYH2xkxN7FbRjx43eAObs3qDwBgBO4iz6U3jygwfS2MHhJ6FzDLo4zHDvHp2nsE3ouOtSYBrHURquys5pvFy607Tks5MkzsphXhyVr7qyfbfiMKd2VPUOQicNDl4Su7gVN/SDtOxf2KfIo2Md2E6cXbmg+AbrSRynh6PFru5GBXInUA7nST8YPd9V4i7TR05IxV5D+o9hKzCfpX1muNGExV/0YZatHW2OT/sGqAjNx0/QgV8cWF1OM1uc1eho5mkQXeU8fny6ND/hhS6LUoMMPgvC1DVX9rQYyRA7kC9IFxGycHRor1eHfHnhzkV3yXthFNXjKE4+JoKe54HpFPnXaRLP3asRh5mwpHO++DUIR1y2bpK6uyvXERTZjRdumuQo5Dj6FwXIwzlHfiLKHuzskm38lMXgKtVnp31kmH+e/JIHdHBMxU+kBb+TlqehXEXTcVmbruLv2p7nsk9CmWCxEso4g1VQBtgdlM/O56MMPmd/vaNZomahqIYltl/Lf4dyGYcsMnaSDvxu+k5hT0kTwdTg9a9cGgCvUaVftVJwqhxC3ymcH8Q8P8NEJcN9sWsepOx3pc3FUT7uZuo88oxMQeqmoIhqQeH3Cgr/fQVFVeBudeqnpeMfhjcEd5aJF+PNVvAWNbnVMBXk/FdP/ffvXJtd6v7aLEl1yAtPAp0my6AD+MdJflr0/3ZxXjpc0XkiaxkvC7gdex0UOH6Ae4UzwibJh8jATsaoMGrkyRR214NCfrJ2YVqchtcw/GgeTiTIk305szCuT9TdJERguMnR98NMreNNMnUfYGBqJ76bft5ouk6p164mPqt22MGd7jpxIzsNt+UO/V6qj1fQ4xA92nXPR5TFE1I1yJSnOTz88czrxroyGXajxOQN9w7oVGb6oN/52f8HRlbbRakranXlz5S/SNXrz2rNb5pGCIvu5I8rQLVvlMVum9P+cXjj+J+XW/hUuT3KJlZjyrKJ4z8vmxftrgGCLus3C9jPFLywnqfE562R/zclxmGNJXCMpgDEcRre6DJB1jBIMzRLUiRFE/AXJZpk6RshebFEV19EntI01GgCvyEe8WDngEiLXoCvawBjqL+vgXuMfW4/QT9I4hN8X4fFbIlfACCFYa9+v9pbkCxVA0x5bpxAqcIuP+K1VL63Z/gEQS4wumYjCekXNrKPEg//asSDN8RjyNrNLI/3sTh5O9drmcX8JpEEGFEWSYZ9+P3qmpM/r46/TsgT0T5nJPG1GAkJtkaRV9JXXnkBhdcg+EWGwtOG42ky4sXLeHXD5SkMLbHz4fWbOdD6rJgsRr7y1f9hglJfjKDoJZIm0SsLQUCMZohbSpVH6RsNfJyrANVBeWrI1l6rqPDeXtXhE4YTbi9fMA6ucOEXiU+mH5HU+yb+CLRT+w1y4aL4TAqk1dIvvo/Ya5dCwlMP+3ynm2Gq7Mcc+mlmLxB7PjrijcLu17lRYcj4lCoC6j0xEo2+QVjsoAd7jNXrCtIe5HDJ1kOZZzA95uLQmDdlf5mhqyHt4GPMcGa4zGG9rtrn62Yw0FZpCjdKGwV4mzTugb1FE8QcAym+A17hbe+b8y45baDjod7wuP1AoIKZj2z+fSQ1+mowXEuNaMh565RJNmMhjRmNVBKD5RojJxc3TBeFJng7Sgx0oNLe3JmPVK2TWy7fbwzWPGUuDb1hyU3MMFV/wptRVxjNhr4WC7FOGIME81ozPhNWWN3qL0FEcZ6hsy3Q9pY6v83GxnYsrTvtxVzAlVjWYxUsDbm9V5uTxnYnc2SQQb5hi6xAiIQe6J3mlguX+11GhMEO3VHK2bt0BMwh1i6yEsr9PhULyWKvWRic68RINydKx9aC8Uz3FGIhdBnQR3yRMrdH97eiEHJzP8otCaHMGxOzoB7g/ZY4EFrSqj/oRCbB4XDShLnQc6athq6LbXVIy4E/7Y1hlExN9b2lkoKLnr/FZdtcVhKfnXrGqL1Q9lqWY7wk2SxjGNmouSFn0vu+HrN5YOaN4URopBNvu+6oo2w74pl9OOupwE4bETbExdU7upN8k6+DmRA5dWG2Ubapail60jGlZZTT7poVEHl53d8668RShZYjj1CpISLz41ZAZ+NUijyg9NVlkwWcwwBJVUCiBoeHpLGJzmTwnWRUZbxK5v2ttCTabWsZ85GgOMIUhfUKVLhROuuJXszLfqZuO856Ls30XFvPUQBHp/tV1Fxo77TlMd3x0Nu0Ol4ycdAKwQujKZHW6fHCF/BJOJHyjkuCLUJ3mHWMXTxJBsx4u8CYHp90xmvQl2esDRTKtjQnzF0wIZuh8m63QcMW2lp7MJ0RutEfRORCbGb5jia7sZRYVhfI+C4vqozjm90eKSbzpu/7RfFe1+9tlaObL9X+zfKVurv08/2qHy4bP7HZRNLldhOnqptN8M46cPvq/rStJnjvs/u3Wn6r5bdafqvlH1dL8qupZfUryLdafqvlt1p+q+UXUEv4MrVE5uWfeA8v7pf/g4bifwE=</diagram></mxfile>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-08-02T18:03:45.969Z" agent="5.0 (Macintosh; Intel Mac OS X 13_4_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="c9_aNAgwVxj_wyy8WovM" version="14.6.13" type="device"><diagram name="Page-0" id="Page-0">7Vtdd5s4EP01fgwHSYDhMXXctNk29Sbe7e4jBWFzFgMLOMH99ZVA4tsxIcbg1MTnBI2EsObeGWlG8gTNNvFtoPvrr56JnQkUzXiCbiYQAnkqkX9UsmMSqKqpZBXYJpPlgkf7J2ZCkUm3tonDUsPI85zI9stCw3NdbEQlmR4E3nO5meU55bf6+grXBI+G7tSl320zWqdSSVFz+Sdsr9YRr1DSio3O27KBhGvd9J4LIjSfoFngeVF6t4ln2KHK42pJn/u4pzb7XgF2ozYPLJH2AL7/eTf78tfd3/ZHyfjj5+IKpb086c6WjXd5fTtB10Q2+/ww+zJ/ZF8+2nGFBN7WNTHtFEzQh+e1HeFHXzdo7TPhAJGto43Dqi3bcWae4wXJs8iysGxoRB5GgfcfbqzhaqKP18fIhv2EgwjHBREb8y32NjgKdqQJq70CCAly+hTj4JXKIHnOAYUik60LYAIu1BmJVln3uaLJDdP1K/Qu1fQ+gYoT0fH7ukvuV/Q+w+JhPlte398mcKTNyFuLLc8dJYDEsUEk7zeNhzkpit8+3BFYzt9AJHF0ulcazKOiZaIGn95aDo6vqZ8n2sCuyW5vDEcPQ9soK5vUcx9O+JaU2YSjCYqsosLVAZp9UGCzNMPUgSjoWW5QM5cF2NEj+6k8LzWpnr1h4dnkm+Q4owrOUCp3EXrbwMDsqeJEUu0IapowBSD7qKVu+fzOu430YIWjWrcJLzIldKeKepgquUGKhw0yMy+xCeoGWsj070imiLRmXRYYAniTIkUQUHqyRK0nS4zt6B+qZEFmpX8LNTcx039S2PHC7229SNCIF84ujvhbjZn0q6CCLaMhjZkv+i90G5huEIkCkLX8mpbZJndjG+1WklRCq/QDygtzVTst28Bhtp3P3AEQrMQ5w88eAL4jDVdjlBGotx6+8/jQ8hK7y/Ws/L/1eMVVmDgyGsoAyY/zSh5Ozr7dL+f3ywlNKaT9/Qh43efl/Ct9sBCJpi/bE4mScdh+iA9jq4d+msCx7JjyoRzptAHbMgzjR19REUL1sAjAprAI9hUWgf1pg97xhuPD21Swah7LfUK56j5HgXg9C3EyxFFbxHvHeYo1Cx9rmhyjXTflO06EsjQ+u7YsCxrGcfCWtCraYHC0m1IWxeTvm9HekyLOGdD1Dcf5nox5cttcNo/41jjWV55Lmvg4sAkYOMilCy6CbZKuhJgsmAOdCMoWGulI0/jwGCtMrQ1bUSNbXwjx3sbWpgzQZY15nHSfUp6LAEACVApRd0OEcVpfBZsSMhdfdfFVlLxSibxZ6mk4XwWbEjoXX3UUuLXqLrqmCVrpGtxXNSWbLtFxP+gDVRkc7wGzX+88aqrjDaeDR8lwwOzXu8yFgGll+TkCm27Kd1VNKt/scz2X6sLUw3V24KagbSpf6BFZaLmJhOLItcz39ugSjKgw2LH9QVnhgmSLUBDFTJDvEyalXbG0KKzyXlxhpXtaLwVczK2NZCeQxKAlkmSng16/01xJvAGt0lPP232wxamifrmlwAq34LQLt5p3s7MN7Mbd7L18TOF7QW3ymfJWrdJNOlvitjjj1C9xS7Q9QNk3eD5pXAzadyb19QSCSIBqlUSaAKf1Exan4lSLg12n45R4yA12OL/T3ePx7ZiDhB2Zx4MVvk678hWotb1QWD3r2zM/ue2Ng5+HfN5pZ2SprT+VL/zsjZ8tzo71wM/T+kF1VPwBQKtiDjoSqHoUvja1d2YPKeY/6Uqb5z+MQ/Nf</diagram></mxfile>
Loading