From 462dee26d748462e2daf8a9ef221ed0f48b3ed72 Mon Sep 17 00:00:00 2001 From: Sande Gilda Date: Tue, 23 Dec 2014 14:30:29 -0500 Subject: [PATCH] Update docs to beta7 --- CONTRIBUTING.adoc | 6 +- README.adoc | 10 +- docs/About-the-WINDUP_HOME-Variable.adoc | 2 +- docs/Dev-Build-Windup-from-Source.adoc | 13 +- .../Dev-Execute-Windup-Built-from-Source.adoc | 117 +----- docs/Dev-Windup-Documentation-Process.adoc | 6 +- docs/Dev-Windup-Project-Information.adoc | 2 +- docs/Execute-Windup.adoc | 36 +- docs/Get-Involved.adoc | 19 +- docs/Install-Windup.adoc | 2 +- ...Create-a-Basic-Java-based-Rule-Add-on.adoc | 2 +- docs/Rules-Creating-Rule-Operations.adoc | 2 +- docs/Rules-Rule-Story-Points.adoc | 33 +- docs/Rules-Windup-Models.adoc | 2 +- docs/Windup-Core-Development-Guide.adoc | 1 + docs/images/GraphOperationSubtypes.png | Bin 0 -> 119746 bytes docs/images/WindupModels-NbScreenshot.png | Bin 0 -> 54924 bytes html/WindupCoreDevelopmentGuide.html | 351 ++++++------------ html/WindupRulesDevelopmentGuide.html | 161 ++++++-- html/WindupUserGuide.html | 104 +++++- scripts/windupDocUpdate.sh | 1 + 21 files changed, 424 insertions(+), 446 deletions(-) create mode 100644 docs/images/GraphOperationSubtypes.png create mode 100644 docs/images/WindupModels-NbScreenshot.png diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 878ed61f70..5ac060877d 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -122,14 +122,14 @@ git checkout -b gh-pages windup + ---- -mkdir -p docs/2.0.0.Beta6/html +mkdir -p docs/2.0.0.VERSION/html ---- * Copy any new images, stylesheets, and html files from windup-documentation: + ---- -cp ../windup-documentation/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.Beta6/html/ +cp ../windup-documentation/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.VERSION/html/ ---- * Add the updated files to GitHub. @@ -153,5 +153,5 @@ git commit -m "HTML docs" git push upstream gh-pages ---- -* View the documentation at +* View the documentation at diff --git a/README.adoc b/README.adoc index 5280b21e81..f003eeb307 100644 --- a/README.adoc +++ b/README.adoc @@ -45,13 +45,13 @@ git checkout -b gh-pages windup * If the directory does not yet exist, create a docs/WINDUP-RELEASE-html/ directory. + ---- -mkdir -p docs/2.0.0.Beta6/html (if it doesn't exist!) +mkdir -p docs/2.0.0.VERSION/html (if it doesn't exist!) ---- * Copy any new images, stylesheets, and html files from windup-documentation: + ---- -cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.Beta6/html +cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.VERSION/html ---- * Add the updated files to GitHub. @@ -79,9 +79,9 @@ View the documentation at the following URLs. [cols="2*"] |=== | **Guide** | **URL** -| Windup User Guide | http://windup.github.io/windup/docs/2.0.0.Beta6/html/WindupUserGuide.html -| Windup Rules Development Guide | http://windup.github.io/windup/docs/2.0.0.Beta6/html/WindupRulesDevelopmentGuide.html -| Windup Core Development Guide | http://windup.github.io/windup/docs/2.0.0.Beta6/html/WindupCoreDevelopmentGuide.html +| Windup User Guide | http://windup.github.io/windup/docs/2.0.0.Beta7/html/WindupUserGuide.html +| Windup Rules Development Guide | http://windup.github.io/windup/docs/2.0.0.Beta7/html/WindupRulesDevelopmentGuide.html +| Windup Core Development Guide | http://windup.github.io/windup/docs/2.0.0.Beta7/html/WindupCoreDevelopmentGuide.html | Windup Migration Planning Guide | TBD |=== diff --git a/docs/About-the-WINDUP_HOME-Variable.adoc b/docs/About-the-WINDUP_HOME-Variable.adoc index cec0ebb543..cec1d945dc 100644 --- a/docs/About-the-WINDUP_HOME-Variable.adoc +++ b/docs/About-the-WINDUP_HOME-Variable.adoc @@ -4,4 +4,4 @@ This documentation uses the `WINDUP_HOME` *replaceable* value to denote the path to the Windup distribution. When you encounter this value in the documentation, be sure to replace it with the actual path to your Windup installation. * If you download and install the latest distribution of Windup from the JBoss Nexus repository, `WINDUP_HOME` refers to the `windup-distribution-2.0.0.VERSION` folder extracted from the downloaded ZIP file. -* If you build Windup from GitHub source, `WINDUP_HOME` refers to the `windup-distribution-2.0.0-` folder extracted from the Windup source `dist/target/windup-distribution-2.0.0-VERSION.zip` file. \ No newline at end of file +* If you build Windup from GitHub source, `WINDUP_HOME` refers to the `windup-distribution-2.0.0-VERSION` folder extracted from the Windup source `dist/target/windup-distribution-2.0.0-VERSION.zip` file. \ No newline at end of file diff --git a/docs/Dev-Build-Windup-from-Source.adoc b/docs/Dev-Build-Windup-from-Source.adoc index 52be9f6211..ac35bbd219 100644 --- a/docs/Dev-Build-Windup-from-Source.adoc +++ b/docs/Dev-Build-Windup-from-Source.adoc @@ -2,7 +2,9 @@ === Build Windup from Source This information is provided for new developers who plan to contribute code -to the Windup open source project. If you use Linux and are an experienced Windup developer looking for a quick refresher, jump to: xref:quick-build-review-for-experienced-windup-developers[Quick Build Review for Experienced Windup Developers]. +to the Windup open source project. This section describes how to build Windup from source and how to extract the Windup distribution that is created during the build process. + +If you use Linux and are an experienced Windup developer looking for a quick refresher, jump to: xref:quick-build-review-for-experienced-windup-developers[Quick Build Review for Experienced Windup Developers]. ==== System Requirements to Build Windup @@ -88,6 +90,8 @@ mvn clean install -DskipTests ==== Build Windup Using Red Hat JBoss Developer Studio or Eclipse +If you prefer, you can use an IDE to build Windup. + . Make sure you have configured the Maven installation in your IDE as described here: https://github.com/windup/windup/wiki/Install-and-Configure-Maven[Install @@ -104,6 +108,13 @@ _Incomplete Maven Goal Execution_, ignore it and click `OK` to continue. . In the Project Explorer tab, find the `windup_parent` project in the list, right-mouse, and choose `Run As` --> `Maven install`. +==== Extract the Windup Distribution Source File + +The build process creates a `windup-distribution-2.0.0-SNAPSHOT-offline.zip file` in the Windup source `dist/target/` directory. + +Unzip the `dist/target/windup-distribution-2.0.0-SNAPSHOT-offline.zip` file into a directory of your choice. + + [[quick-build-review-for-experienced-windup-developers]] ==== Quick Build Review for Experienced Windup Developers diff --git a/docs/Dev-Execute-Windup-Built-from-Source.adoc b/docs/Dev-Execute-Windup-Built-from-Source.adoc index d22c77dea1..61621e6228 100644 --- a/docs/Dev-Execute-Windup-Built-from-Source.adoc +++ b/docs/Dev-Execute-Windup-Built-from-Source.adoc @@ -1,117 +1,12 @@ [[Dev-Execute-Windup-Built-from-Source]] === Execute Windup (Built from Windup Source) -_These instructions are for Windup core developers who are new to the project and unfamiliar with the procedures to execute Windup._ +These instructions are for Windup core developers who plan to build Windup from source to test code updates. -Experienced users may jump to xref:quick-execute-review-for-experienced-windup-users[Quick Execute Review for Experienced Windup Users]. +* If you are new to the project and not familiar with the procedures to execute Windup, see link:Execute-Windup[Execute Windup]. It contains complete step-by-step instructions to execute Windup and also provides command line examples. -NOTE: If you used previous versions of Windup, delete the `${user.home}/.forge/addons/` directory. Otherwise you may see errors like the following when you execute Windup: - _Command: windup-migrate-app was not found_ - -==== Unzip the Windup Distribution - -1. Follow the procedures to link:Dev-Build-Windup-from-Source[build Windup from source]. This creates a `windup-distribution-2.0.0-SNAPSHOT-offline.zip` file in the Windup source `dist/target` directory. Note, the version may be different than the one used in these instructions. -2. Unzip the `dist/target/windup-distribution-2.0.0-SNAPSHOT-offline.zip` ZIP file. - -==== Run Windup - -1. Open a terminal and navigate to the unzipped `windup-distribution-2.0.0-SNAPSHOT/` directory. -2. Type the following command to start Windup: -+ ---------------------------------------------------------------------------- -For Linux: $ bin/windup -For Windows: > bin\windup.bat ---------------------------------------------------------------------------- -3. You are presented with the following prompt. -+ ---------------------------------------------------------------------------- -Using Windup at /home/username/windup/dist/target/windup-distribution-2.0.0-SNAPSHOT - - _ ___ __ -| | / (_)___ ____/ /_ ______ -| | /| / / / __ \/ __ / / / / __ \ -| |/ |/ / / / / / /_/ / /_/ / /_/ / -|__/|__/_/_/ /_/\__,_/\__,_/ .___/ - /_/ - -JBoss Windup, version [ 2.0.0-SNAPSHOT ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] - -[windup-distribution-2.0.0-SNAPSHOT]$ ---------------------------------------------------------------------------- - -4. The syntax to evaluate an application using the Windup tool requires that you specify the location of the input archive or folder, the location of a folder to contain the output reporting information, and the application packages to evaluate. At the prompt, type: +* Experienced users who need a refresher can follow the steps below. + ------------- -windup-migrate-app --input INPUT_ARCHIVE_OR_FOLDER --output OUTPUT_REPORT_DIRECTORY --packages PACKAGE_1 PACKAGE_2 PACKAGE_N ------------- -+ -Where: - -* `INPUT_ARCHIVE_OR_FOLDER` is the fully qualified application archive or source path -* `OUTPUT_REPORT_DIRECTORY` is the fully qualified path to the folder that will contain the the report information produced by Windup. -* `PACKAGE_1`, `PACKAGE_2`, `PACKAGE_N` are the packages to be evaluated by Windup. -+ -See xref:windup-command-examples[Windup Command Examples] below for concrete examples of Windup commands using source code directories and archives located in the Windup GitHub repository. - -5. You should see the following result upon completion of the command: -+ ------------- -***SUCCESS*** Windup execution successful! ------------- - -6. To exit Windup, type -+ ------------- -exit ------------- - -7. Open the `OUTPUT_REPORT_DIRECTORY/index.html` file in a browser to access the report. -The following subdirectories in the `OUTPUT_REPORT_DIRECTORY` contain the supporting information for the report: - - OUTPUT_REPORT_DIRECTORY - graph/ - renderedGraph/ - reports/ - stats/ - index.html - -8. For details on how to evaluate the report data, see link:Review-the-Report[Review the Report]. - -==== Run Windup in Batch Mode (for a shell script) - -1. Open a terminal and navigate to the unzipped `windup-distribution-2.0.0-SNAPSHOT/` directory. -2. Type the following command to run Windup in batch mode: -+ ---------------------------------------------------------------------------- -For Linux: $ bin/windup --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N" -For Windows: > bin\windup.bat --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N" ---------------------------------------------------------------------------- - -==== Windup Help - -To see the list of available parameters for the `windup-migrate-app` command, execute the following command in the Windup prompt: - - man windup-migrate-app - -[[windup-command-examples]] -==== Windup Command Examples - -The following Windup command examples report against applications located in the https://github.com/windup/windup/tree/master/test-files[Windup source test-files] directory. - -===== Source Code Example - -The following command runs against the https://github.com/windup/windup/tree/master/test-files/seam-booking-5.2[seam-booking-5.2] application source code. It evaluates all `org.jboss.seam` packages and creates a folder named 'seam-booking-report' in the `/home/username/windup-reports/` directory to contain the reporting output. - - windup-migrate-app --input /home/username/windup-source/test-files/seam-booking-5.2/ --output /home/username/windup-reports/seam-booking-report --packages org.jboss.seam - -===== Archive Example - -The following command runs against the https://github.com/windup/windup/blob/master/test-files/jee-example-app-1.0.0.ear[jee-example-app-1.0.0.ear] EAR archive. It evaluates all `com.acme` and `org.apache` packages and creates a folder named 'jee-example-app-1.0.0.ear-report' in the `/home/username/windup-reports/` directory to contain the reporting output. - - windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache - -[[quick-execute-review-for-experienced-windup-users]] -==== Quick Execute Review for Experienced Windup Users ------------------ mkdir tmp cd tmp @@ -123,13 +18,15 @@ bin/windup.sh ## Execute Windup $ windup-migrate-app --input /home/username/work/Migration/TestApps/_apps/BradApp --output Report --packages org com net -## Exit forge +## Exit Windup $ exit ## View the Report firefox Report/index.html ------------------ +//// +I believe the following is obsolete ==== Execute Windup as an Installed Forge Add-on ------------------ @@ -158,4 +55,4 @@ $ exit ## View the Report firefox Report/index.html ------------------ - +//// diff --git a/docs/Dev-Windup-Documentation-Process.adoc b/docs/Dev-Windup-Documentation-Process.adoc index f292b97cd7..3c5f3951f7 100644 --- a/docs/Dev-Windup-Documentation-Process.adoc +++ b/docs/Dev-Windup-Documentation-Process.adoc @@ -45,13 +45,13 @@ git checkout -b gh-pages windup * If the directory does not yet exist, create a docs/WINDUP-RELEASE-html/ directory. + ---- -mkdir -p docs/2.0.0.Beta6/html (if it doesn't exist!) +mkdir -p docs/2.0.0.VERSION/html (if it doesn't exist!) ---- * Copy any new images, stylesheets, and html files from windup-documentation: + ---- -cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.Beta6/html +cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.VERSION/html ---- * Add the updated files to GitHub. @@ -72,4 +72,4 @@ git commit -m "Update message..." git push upstream gh-pages ---- -* View the documentation at http://windup.github.io/windup/docs/2.0.0.Beta6/html/WindupUserGuide.html +* View the documentation at http://windup.github.io/windup/docs/2.0.0.VERSION/html/WindupUserGuide.html diff --git a/docs/Dev-Windup-Project-Information.adoc b/docs/Dev-Windup-Project-Information.adoc index 5f457965ca..2c6de6fdda 100644 --- a/docs/Dev-Windup-Project-Information.adoc +++ b/docs/Dev-Windup-Project-Information.adoc @@ -11,7 +11,7 @@ See the _Core-Developer-Guide_ for details on how to contribute to the Windup pr The Windup documentation is currently located here in the Windup project https://github.com/windup/windup/wiki/[Wiki]. -For additional information, refer to the link:http://windup.github.io/windup/docs/javadoc/2.0.0.Beta2/[Javadoc]. +For additional information, refer to the Windup link:http://windup.github.io/windup/docs/javadoc/latest/index.html[Javadoc]. ==== Website diff --git a/docs/Execute-Windup.adoc b/docs/Execute-Windup.adoc index 15c7b7208e..6416154009 100644 --- a/docs/Execute-Windup.adoc +++ b/docs/Execute-Windup.adoc @@ -1,7 +1,8 @@ [[Execute-Windup]] === Execute Windup -These instructions are for users who run Windup using the tool extracted from the ZIP download. +NOTE: If you used previous versions of Windup, delete the `${user.home}/.forge/addons/` directory. Otherwise you may see errors like the following when you execute Windup: + _Command: windup-migrate-app was not found_ ==== Prerequisites @@ -9,7 +10,8 @@ Before you begin, you must gather the following information. . Windup requires that you specify the fully qualified path of the application archive or folder you plan to migrate. This is passed using the `--input` argument on the command line. -. You must also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. This path is passed using the `--output` argument on the command line. +. You also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. If the folder exists, it is deleted and recreated by Windup, so be careful not to specify a directory that contains important information! +This path is passed using the `--output` argument on the command line. . You must also provide a list of the application packages to be evaluated. @@ -33,7 +35,7 @@ For Windows: C:\WINDUP_HOME\bin> windup . You are presented with the following prompt. + --------------------------------------------------------------------------- -Using Windup at /home/username/windup-distribution-VERSION +Using Windup at WINDUP_HOME _ ___ __ | | / (_)___ ____/ /_ ______ @@ -42,9 +44,9 @@ Using Windup at /home/username/windup-distribution-VERSION |__/|__/_/_/ /_/\__,_/\__,_/ .___/ /_/ -JBoss Windup, version [ VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] +JBoss Windup, version [ 2.0.0-VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] -[windup-distribution-VERSION]$ +[windup-distribution-2.0.0-VERSION]$ --------------------------------------------------------------------------- . The syntax to evaluate an application using the Windup tool requires that you specify the location of the input archive or source code folder, the location of a folder to contain the output reporting information, and the application packages to evaluate. To evaluate an application archive, use the following syntax: @@ -98,6 +100,18 @@ The following subdirectories in the `OUTPUT_REPORT_DIRECTORY` contain the suppor . For details on how to evaluate the report data, see link:Review-the-Report[Review the Report]. +==== Run Windup in Batch Mode + +Windup can be also executed in batch mode within a shell or batch script using the `--evaluate` argument as follows. + +. Open a terminal and navigate to the WINDUP_HOME directory. +. Type the following command to run Windup in batch mode: ++ +--------------------------------------------------------------------------- +For Linux: $ bin/windup --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N" +For Windows: > bin\windup.bat --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N" +--------------------------------------------------------------------------- + ==== Windup Help To see the list of available parameters for the `windup-migrate-app` command, execute the following command in the Windup prompt: @@ -121,8 +135,18 @@ The following command runs against the https://github.com/windup/windup/blob/mas windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache +===== Windup Batch Example + +The following Windup batch command runs against the https://github.com/windup/windup/blob/master/test-files/jee-example-app-1.0.0.ear[jee-example-app-1.0.0.ear] EAR archive. It evaluates all `com.acme` and `org.apache` packages and creates a folder named 'jee-example-app-1.0.0.ear-report' in the `/home/username/windup-reports/` directory to contain the reporting output. + +---- +For Linux: $ bin/windup --evaluate "windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache" +For Windows: > bin\windup.bat --evaluate "windup-migrate-app --input \windup-source\test-files\jee-example-app-1.0.0.ear --output \windup-reports\jee-example-app-1.0.0.ear-report --packages com.acme org.apache +---- + ===== Windup Quickstart Examples For more concrete examples, see the Windup quickstarts located on GitHub here: https://github.com/windup/windup-quickstarts. If you prefer, you can download the https://github.com/windup/windup-quickstarts/releases/tag/2.0.0.Alpha1[2.0.0.Alpha1 release] ZIP or TAR distribution of the quickstarts. -The quickstarts provide examples of Java-based and XML-based rule addons you can run and test using Windup. The README instructions provide a step-by-step guide to run the quickstart example. You can also look through the code examples and use them as a starting point for creating your own rule addons. \ No newline at end of file +The quickstarts provide examples of Java-based and XML-based rule addons you can run and test using Windup. The README instructions provide a step-by-step guide to run the quickstart example. You can also look through the code examples and use them as a starting point for creating your own rule addons. + diff --git a/docs/Get-Involved.adoc b/docs/Get-Involved.adoc index ecd35ed18f..959c3b6a9f 100644 --- a/docs/Get-Involved.adoc +++ b/docs/Get-Involved.adoc @@ -9,20 +9,27 @@ To help us make Windup cover most application constructs and server configuratio * Provide example applications to test migration rules. * Identify application components and problem areas that may be difficult to migrate. ** Write a short description of these problem migration areas. -** Write a brief guide describing how to solve the problem migration areas. +** Write a brief overview describing how to solve the problem migration areas. * link:Execute-Windup[Try Windup] on your application. Be sure to link:Report-Issues-with-Windup[report any issues] you encounter. -* Write an Windup rule to automate the migration process. +* You can contribute Windup rules. +** Write a Windup rule add-on to automate a migration process. ** Create a test for the new rule. -* You can contribute Windup rules. For details, see the _Windup Rules Development Guide_. -* You can also contribute to the project source code. See the _Windup Core Development Guide_ for information about how to configure your environment and set up the project. +** For details, see the _Windup Rules Development Guide_. +* You can also contribute to the project source code. +** Create a core rule. +** Improve performance or efficiency. +** See the_Windup Core Development Guide_ for information about how to configure your environment and set up the project. Any level of involvement is greatly appreciated! -==== Basic links +==== Helpful links * Windup Wiki: https://github.com/windup/windup/wiki -* Windup documentation (generated from above wiki): http://windup.github.io/windup/docs/latest/html/WindupUserGuide.html +* Windup documentation (generated from the Wiki documentation at the link above): +** http://windup.github.io/windup/docs/latest/html/WindupUserGuide.html +** http://windup.github.io/windup/docs/latest/html/WindupRulesDevelopmentGuide.html +** http://windup.github.io/windup/docs/latest/html/WindupCoreDevelopmentGuide.html * Windup Forums: https://community.jboss.org/en/windup * Windup Issue Tracker: https://issues.jboss.org/browse/WINDUP * Windup Users Mailing List: windup-users@lists.jboss.org diff --git a/docs/Install-Windup.adoc b/docs/Install-Windup.adoc index 21074624b2..4459320a7d 100644 --- a/docs/Install-Windup.adoc +++ b/docs/Install-Windup.adoc @@ -1,7 +1,7 @@ [[Install-Windup]] === Install Windup -. Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution/2.0.0.Beta6/[windup-distribution-2.0.0.Beta6]. +. Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently https://repository.jboss.org/nexus/service/local/repositories/releases/content/org/jboss/windup/windup-distribution/2.0.0.Beta7/windup-distribution-2.0.0.Beta7-offline.zip[windup-distribution-2.0.0.Beta7]. . Extract the ZIP file in to a directory of your choice. NOTE: The documentation uses the replaceable value `WINDUP_HOME` to denote the path to the Windup installation. When you encounter this value in the documentation, be sure to replace it with the actual path to your Windup installation. For more information, see link:About-the-WINDUP_HOME-Variable[About the WINDUP_HOME Variable]. diff --git a/docs/Rules-Create-a-Basic-Java-based-Rule-Add-on.adoc b/docs/Rules-Create-a-Basic-Java-based-Rule-Add-on.adoc index 73c745b88c..d161a3b9a9 100644 --- a/docs/Rules-Create-a-Basic-Java-based-Rule-Add-on.adoc +++ b/docs/Rules-Create-a-Basic-Java-based-Rule-Add-on.adoc @@ -28,7 +28,7 @@ Create a new Maven Java Project. These instructions will refer to the project fo UTF-8 1.7 1.7 - 2.0.0.Beta3 + 2.0.0.VERSION 2.12.1.Final ---- diff --git a/docs/Rules-Creating-Rule-Operations.adoc b/docs/Rules-Creating-Rule-Operations.adoc index aa4bedcb13..d1db663049 100644 --- a/docs/Rules-Creating-Rule-Operations.adoc +++ b/docs/Rules-Creating-Rule-Operations.adoc @@ -19,5 +19,5 @@ public class FooOperation extends GraphOperation Existing operations: -image:./img/GraphOperationSubtypes.png["Existing operations"] +image:images/GraphOperationSubtypes.png["Existing operations"] diff --git a/docs/Rules-Rule-Story-Points.adoc b/docs/Rules-Rule-Story-Points.adoc index df8d8ce069..6cb54246cd 100644 --- a/docs/Rules-Rule-Story-Points.adoc +++ b/docs/Rules-Rule-Story-Points.adoc @@ -1,22 +1,35 @@ [[Rules-Rule-Story-Points]] === Rule Story Points - .DRAFT + ==== What are Story Points? Story points are an abstract metric used in Scrum methodology to estimate the level of effort for various tasks. They are based on a http://scrummethodology.com/scrum-effort-estimation-and-story-points/[modified Fibonacci sequence]. In a similar manner, Windup uses story points to express the level of effort needed to migrate particular application constructs, and in a sum, the application as a whole. ==== How to Estimate Story Points in a Rule -TODO: TBD. +Estimating story points for a rule can be tricky. The following are general guidelines or suggestions to use when estimating the level of effort required for a rule. + +[cols="3*", options="header"] +|=== +|Level of Effort +|Story Points +|Description + +|Lift and Shift +|0 +|The code or file is standards-based and requires no effort. + +|Mapped +| 1- 2 per file +|There is a standard mapping algorithm to port the code or file. The number of story points required is small, but dependent on the number of files to port. + +|Custom +|5 - 20 per change or component +a| The number of story points required to modify and rewrite code depends on the complexity of the change, the number of unknown imports, the size of the files, and the number of components. The following are examples of how to estimate story points. -Estimating story points for a rule can be tricky. The following are 'rules of thumb' or suggestions to use when estimating the level of effort required for a rule. +* Port MyBatis to JPA: '20' story points per query. +* Port a web page from one web framework to another depends on the complexity and the number of components involved in the migration. You could estimate '20' story points per component. +|=== -* The level of effort required for "Lift and Shift", which basically means the code or file is standards-based and can be ported to the new environment with no changes, would be '0' story points. -* Changing a parameter name or value of units might be '2' story points. -This could contain relative examples like: -* Porting a web page (or similar concept) from one web framework to another depends on the complexity and the number of components. You could estimate '20' story points per component. -* Porting MyBatis to JPA: '20' story points per query. -* When you don't know if it will need a migration: Could depend on number of unknown imports, size -of the file, ... diff --git a/docs/Rules-Windup-Models.adoc b/docs/Rules-Windup-Models.adoc index ef7c83bb93..b8797d677d 100644 --- a/docs/Rules-Windup-Models.adoc +++ b/docs/Rules-Windup-Models.adoc @@ -7,7 +7,7 @@ They are used to model the data in the graph database to Java objects. This is an overview of the most important models. The complete and up-to-date list of models is in link:http://windup.github.io/windup/docs/javadoc/latest/org/jboss/windup/graph/model/WindupVertexFrame.html[Javadoc]. -image:img/WindupModels-NbScreenshot.png[Windup Models Graphic] +image:images/WindupModels-NbScreenshot.png[Windup Models Graphic] ==== Meta Models diff --git a/docs/Windup-Core-Development-Guide.adoc b/docs/Windup-Core-Development-Guide.adoc index 5c87bda280..6a2d6e1f92 100644 --- a/docs/Windup-Core-Development-Guide.adoc +++ b/docs/Windup-Core-Development-Guide.adoc @@ -32,6 +32,7 @@ include::Install-and-Configure-Maven.adoc[tabsize=4] include::Dev-Get-the-Windup-Source-Code.adoc[tabsize=4] include::Dev-Build-Windup-from-Source.adoc[tabsize=4] include::Dev-Execute-Windup-Built-from-Source.adoc[tabsize=4] +include::Execute-Windup[tabsize=4] include::Review-the-Report.adoc[tabsize=4] == Rules and Rulesets diff --git a/docs/images/GraphOperationSubtypes.png b/docs/images/GraphOperationSubtypes.png new file mode 100644 index 0000000000000000000000000000000000000000..8b396a3fd5de74fe0f275a1c056c429fd87191bb GIT binary patch literal 119746 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%0AU2tO&lo*i?9?#T*)u|;Hcm?&)dC+WOtaW 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 YhZ2OF=mh8UgJ zVR7n{4+qXx0efply*Dagd%~5~HwC}l+!I((Q;9n`H~g}C@5jVYYH9iR1x2_7Qx+!Q z->eYkcA<&OZSaz`qWT7M-oGi|QIoQca_#hT(H9vt;vOJ(^6Py&NOT-n%* zdncYuj`|CO)N#DlW&bX3R?>T+^KT7~2HMfa=dd3CJhQi$Q>N zrRFQ>AP5$U7DV{=@OATF8 zta)LnEn;Cn#$fLI?;!7MiW9$S?X3H@d6IWkK!j=TR4z|EPy`|p^f&&AcGmNi_8kelv?hVeQSAR>_c`a6xk`>3^A)E-;7|ujMpb zGC@i-Mp9uxJ5|+W3nHDx4UVGErGxYuThbd;q`oOv<*EjPOE1>S%;89|`4{e}l#ZlG z3p>_56|^HOm@UEMd9AhRg7(G?OShnSio;ms)P)JFsa>=OZRpJs5b)q9rn)98BqHxh zI>|7a%U@WXjglwpOC1*QMe*ej1P)mpv?s*mvt*d!U_MdGJcbe2keatvJDg~sZQ6)! zHOI*?K59$psXN5(Bh;h%zi7O)gsfrM>_^mY(cPa(XN6TMK*FVZNDRWoyh+yiIY%rt zGxtKowbjXW^9mDD7XA;uR^^y~J@*J(G`tR;Mb&i}VoZWjGp3HNEjH{ny^`0$@~vNUqzYE!?-CUzu!RzH&_g-sOn>7{ zLlxcb&vQrD7q9+=g*tt@o?t{Yp(P}Xwf6pHX+Q|N+v17bnmg#)1FHhh;{4iidVMFM zl75b{e?ZA>{iPz#QsB-t-QUV+oW#fanLAebPh@4jJfA2W_j})7(x&*GYGc}j?A(j` z@)WBZgwg~(=S$t@tDton+Vn`A_RRF&(3<^0MA(THvlBbo$J>p_LaOSYS~9W=u~cQF zu@85{A6X0S+5`+&1PNZd_kK(uc|O&!T$a^XUOgNzGr|WS^AQsTCxHrqw#%B!iBzgk z#qC&^PWuCDR==z|O>;WTjML7rzOu|Ll$x3OgmhWA8=|&0EG=tAJm1qm&nluzzqLyv zrT3pk%E0-c_07`sMa7BxcX&G2SCC&7%M;(OJMOP%g66<>WykYT6J^37n!hrxyPNg2 zx*?lZyho=uT%?Drm~K1N#9A9{JcbtL3CI$qtT2dYbQ32ixw99$69lHX6U2(Gwz>X$@N$_JiedZA9EF?sp8EF?i~E$ zoHm^Mrr_qHZ5Xz{y#T}b`Z6I$8#;OKU)&b$vj)K$S{yD{KKLD04cVam!lzmx9?#Ie zr1Gayl5&^#iLMs=MeIOlr|3{!Y)+rMI@_v5%tV%aviS1pJnFlijK-7R`tSiC>iV-5 z@2)B`Vy1QZ7ZF!O<1{EY0}GY7 zdUvv=wgd8ND+)|Y&EY&Fbw)kwByBtnbK?wvt?ryvms_#vD(s(JF9=EK_WN>=c8yJQ zX3wHa!=I7xOkAV&!SOD-Hm4(KtTXZ}h4y+v>p~;J;_k9$N0sgz&$8)lTI6WASEpq7nyML}-LA z|KMqdCUZE{{YQRV=ms@_Kw@C)FyGU#??$wNe+|0v5)pCfrv--p1w?TRt;sU|-0inXJb4md}L zM|{)lvm$f-yiu#JVCK$?X0rB-8x2Pig61-+Y}eMlpASJ6>r_pb?qELJELb{PWgE*4 z#FSNc&huQSD|`FrPN)Yl(Q(eC)FP7S7Q33OR?4Ae}n-Z zx9vYz<>#`vDD#dL>Pit`%~-nl{quaL`$&2+6vCU(Sr zZP9(=Nydwb`ztsjY$1U%^gnr>-8+34S&z4}oS z`ya`c&J}g7w8!EC*3sI`vKi(~lLsxkKg$4FS2$N()UKJ=nVGOXY>X$K>};_G~_ZR5*aTOe?Xl94`K zTL^dKEDC&e?v4dKF2!0(Q)-6KQ7ZXb zk+|*1c82U=(Y6njlxO0?J(37njrb4v7tBf9 z@z~FiZU|ZGb3W|uu82v2`u?!adm32IqgjVW)&RBH!n3wBzg0VdXw%m#e7D(GhM5ZD zJ-?<1WO7iM8YA+*>$!`I@6!(9Hg_g^t3p@shp)}xu06aS>;YxXErnyGj?V4)xeDRB>Rx&W+ z7op$+MB2Iob>XE34E02}EnjDDg37^;wRG4LR}{u4SN^ARJk|@TVY9EKQo*Bg?ntbl z6_9n_h@tbI?&dTAsfbV8>{y@AqJxu?lEhdN-lvp!q~E*pqs#j3t6&J4T)Cn!Ks+Dv*+q+W6;56QRP_9;49pM;D1 zFicjTeU;6?wskEZYIL_r7eMk}e&}j-M|o%max@UpeYPg9^a?FN_avVf$M>;mHTrcY z>28C0@`J+5CeNpR1~Nsh{*goqzv2n@aatw9t6b!G+h4UdK^PmxIMHLAq?c5p#AK3ELTcwLRo5(pWnQB`A!+!3{TpRoSl;-UJ+ zm*%(9w80kANldSROG;PwyuqF>m&ar90G-1OP8@jTKZmCWYEu5b*B@v&f1q>s6=;49 zclq7!Xbk7RA10kmBh&SNY_%p)0O%2RM4Yg48@^Sqb$vF;JJYq$_U> z^%nO*6qS-g4>vbfbreEi;3ZUZ%?~e4`hsT*&8f8Oe7R)>8Fv1<^TR3~5Gv9G8Gsig zjoC01$DDOExIQ8Ch`mZPQl@6rQ=k-iXOeLrg;hVH zxWF`YtVIT4BikV*CQgnEcdFW&EXG4C4MSz@I)7|!KuDmsv_ zSsH|I4yDrUV_jrXw`<#k=_>boLCcE?b5yc8drv&&^`+dJm(xM2a$Nq#nU#vK zAW2)!ZjFJYeNwg{FvZEq*$B-L_BlCGF3`=_FHI9Bn~Q-9tT197aZp z72nCdBs>v8fbA4By*D*X@jhyBs)G!q`YqX(YkR(RDUW^ZcceKGI59-pk z?)TgmwBF}~j~Fj-=JV+#@vT#`*+3Q@qNI&f_S8ct~5 zdZxAhAP@8_0WshKGJTFuE@GrcO^V?(A{HNEy@p}FVoomKPF2;UK1*VqQ|MBtOZ*qz z&fpoch=`hJnua@l(`900n}_|NKo^ItDFv7`;+ep6b+$~N=Ixg8#D|u&xXh_xcDWl0 zQ6qe3Il4ApvClcv=3mE=wySK#zwrePjS-T1neX7{1v?6+%pr@YSD;WJ3Am{W+J(6m z2S}TjxP`+Jsr195MTT3|Rf2lTw~!KeZJi6o7YUr{#%#^EU+@gL#@}*%Vc~f)l`SfJ zBA#M))p=khl)~?#VNv7w{TSC5vo|1Tex^ydr_)K~wAi@48gv-s4GETceivCS-V0>M zX~Ba{nLd9`y!o8V#G){b(v2p z4C>~+;0oh>^`#`anGnF7Av-Df)Nk4g!5~guM;rl>HQwcRoTE)B|di>#1 z@SFmGSpqJcik|K5Qm?9CN(rMHBMZb=y_}U!v-gvB5B;A!EntCTM0A~%#uLH&IkA4DlZ}2eSxx0S$Ox3NMQrEQMy=ZRSQ_(F4EaMOWa4^ zB7yDYaJzB$NbS@P23G&VTUF!40(5!84F}Lxzbl0V+Z(E{ltV)74zw+cF|6i*ENj*K zbq*ehIr`b`sk$g8o$Gi6uj?&*?Vu*vJkYB9{64-*%lEI;h1YKKz;r83U9{ggR4qTc=YoTbj%UQ zQR}t0a7@nLiURc>AuvU9r4y-pxu5*nTte(cCp=2RG80K0gOmq=NPW@9qvgEYfhc19 zJi6anM!aT&78vTw+ugYly&s`4VP~f2wP=nU#Em)~C9y}+@eJeTMS_|V2<3-BJ;L#< zOv76a^&84YcqNkF9MNwwTg1nuMMDoCs3X4gO!lJ#%;Ewyd7ct(8rk(n#WS%JKR0&j z8hEuSpbGhc9K4R}K$1J9cmTBU*B&28jy@FyUqNu*Cmf}ye7Sf7`cCdCw^5^P(SiO6|9JTy>dtkDley(rMs6$8pQu~ z?@&Q!=^NHWqeou+>L8ll5qc~Pju6Pz3GLd0>7&mDVQIa29z|;l_B-5$NCdyzubqCG_kdn|2tEZ+IEW0t1K+`g{SufT z$zE-wi49Twe!^r4X=cR@v+QuVsbPbb!p1HrZdg3W$Pcb#G^;ywkQaEYXnxtshWklOy+%cpK@=z zb{v$eAc%D?v^MLUPE9QBjJMDo!=n_tZz>9RQvPHnGr_O{km9iJ!vZJSy?+d$@*R z1IcBmbC;?}aUCe5xgcs2VERD8hW!S$S2L!iJG9|MjZW0jk+FP>EK^D4Pwy4w~GcRs8=GgyKb z{g3`>vq7%<*b%E!TH}nsYQC$b0RY#YCpo)KL@!`<<9P}=B z#fPUG|Am)v%)So(vzzulA5G@Z5rYmI;p*<6dv5!aKdxRE^qdJ_AK6NV0#rX=|BLO` zy_~vMPH$*OGX2$yxn)%D*Znv&`Hlm{KLb;mI61w`0?G8HPhfneSplb~xYx@r2H`spm$!(wbo*P9;~iLw-1*)Xk`|6}^;(Cg7Cd+kN%R$$ zC%e6!xbJtwriiDfz{9wkqVLH_lmjDt7Z^BEma7J@?UuU}!jWe54FmKsmpi0c+|-X0 zhj)*h@)GSQ;~QsbH<%9ep~KucCrP&Z#6Z5y%KVMpdmOKJH@5eec+WdGQ4y^X=$&hV zsg#(ZMZonfjguHGynt`0K_45m<#(MXLFk+!^Zf0$n{K-1^Ujj9?;dCd2)a^@S*Fp} za~m#)p(eNGY(9k^pPojQmxsOB5Ls}TC7w}z#qYx-v-C{tCfbPA%fP=I) z-TYgoKRwm;`hr)h?VYfj&)U*NyX#=hwN+GMWwXhF_6tkQClOi>t<^>>%^S$+)!?MT zkx!TU=+PyzinH3!)RoD*b46-wj9h0?9wbrWVLt0f@SC3}R2b4@SOcEkK!Gz{CB@iq zIgz7b_g*3v;))pmxS`3EKce|_?8ri-8;w4*QX*d^XXINsgiPr0ZtM5l)DF+>!Civ! zQky+j1p(qvWST;={T0p8gf@4>oe6iX3#Ns9587&rP%3)0lj#X9cZUn+!6_igZ2Qpq zvb@#Lg~~W)F1w&SV6{&0M5?yxc~LZ$q9r9p1k!`7oiX~OtvQiOey4Zs{RMcBbP0JKUKU$H>&Q%6ZUfmksHhEtP3L0TMX2m4^KcwT9)LeKo@lTfBzVo2`| zv(jVm)UBB^wSpOmjqOLBkR|;&P_OG$4ZM^c1?^C$4D93Flp?C2jM6|M5NpfL3bmxQ zLtzpYSEYDfSxB7sBy~sXa0hbem@7ucq2F3v5881GS4SJwvAH4rVtTWllp?TLkp&=1vs=OC|+YN>z#pKc_V6tPgz!zYCzS;Vu5=K_po} zh%eDP=#;++n9OUmX-X>)>r%)6}2Otd-Fmp-QzDLqoY1T=M%(E0i z|0s=V8bOuAujXZW(tTl_oxO%VG7K7uH8PMa_*+0e#+N)GdsK~sr{Pd`A~;s@goS1( zg{*k|V2)ymGC5wt9Ug9Wm;l*^lGGG4i?EE&+#v|OWx&F5#~tlmzlnujtdTRMcO{dK zM^r#^(OW^aeV#0HaAYmtB8m-dc-q9US6ROs_gPO+gHwKL4%WZLyR7PK>I|y?C1%7t zzXgRTkJwdL3sTka+;WV2jwEMZCY<9G4a=#P=8W{j1fO_o!^zlHt|D4y4CSmqF+?Di zMwGqA?l&vLKlX|_`@urHyY$=r;P8~*{`u|OMTDIg_-lb13(7DpwmB;$py^elr2d%qMXRh?{$k*G+`iyqR0pz} zOQo!03I@M3T(GkAiq;HqOeQfcDeyj9+uzG8g^J}T@nyb86SgtqWdwOkZO~7)`#yYu z0o~WfD8Kb$_{&*?Vm4itmvmw|iD z-xA?mmo&9+Az`cI5wIQ@j(C429lhNtTl5M|n^>Q{W02gJ&=i!*ln65`BsSD?u(+^& z0ws2&1?Tu`k9cX-{V7kP+LjeF&Y6&ZO*3|~s8ua=(t0OtC|*K5)!DO~HhP0c0$wqf zb)V8!xs_?RI^iSFzlco8I)WQ|Z1!|A2@A6yUrULcs|)tw{A%(byM{l@sX4w-`JT3% zB>?5Xil4(Z8~WqyM}q=)eiQ1im~whH=c%9Q$p!Tq`~h@vaC5 zf3LdNH_d%_MVC!!Fze@j@JpAepKW0}2fE?ejA?Gv`klaSDf3z6cA{THSZ4aD6JI>%!^U)d14)h75HDHYi_oBy5{XRQf_73d5D|-OHF{49F zVm9j+9AHq3dBP4kq&4<>BBg zu6>DRPizHnnUB;&uP?a_L1(n(UsLNMEkd{WUV}Z69yo6~^@n?qV9wp(6q;0p6Asr* zI9{y}7|a;HlKWSWT)i9Gy@zjAbiD7336*WT>!5OJKR3VpGdX1l@BbXy^NTL$b_4{G z*1VWrug)T$afJRBZ3Kklzl4n4K|H$vdy^u8`o-uhCvHwio6FI^`k~QcG|a&U{C-qxtOK@31#3TVRDn7{+e6AFGhcB<{*IBt!odlVz_emAvA&RivjQAm7BqV*`S@8!hE z)(&kr+M!2$EdgcjI2Ggc@$=gQd2k~wxX^69j~FN^uy+@pq7xG*?QAbLl2N@gQr}R2 z-bYuRMe1niSw33)B{kaup}{#h7%ESV?DCjl8v_r_2=$WHZs5}HvoneDZ56T?c$Z@F zXWrL%qsqqg`gJj|jcU%XRlnA!aJX($P$Tx`0eQEHx*_`*f$I|S&<=atZxHWOm=%Y& z2Vbd*eXX0y*$h5UrMAS#H<6~KOeCC0&}&pOc<>KVTXQb`Y+mwrWk2ewDP3fb{J~Vg zT4a~MrQ%l^s(Rzjb7%+VpNxKWSfqABQ0!{Fze=v%p$sV<{`kC<%#Q;o!+dK0;0Eo| zJu~Xce79~wfBkt^Z$y21lIkZGuO)}@?E%&K+?sREA^jwy2L_`8cXW~uW3vUYuW`%o zZcv^1Vvl1Ca+V4q2?mz_l1Jj^3|wj z>q6guJWxHxE$)hf{65jp0jKLTdcJa=ayJiub-cIr?;*nY(WlxR&;`=(&HQT2h#xu@ z+4fmw?!Mfp0o1~URwN}Vq>`prLjY0u!`C zAK(NlInhf3Sup_~I{Yg>@f-SWG>#&AI>N$I|$3Ey2 zNSds6?e%eQsYo|Y?p*TvgOU1F|1bRekKmv7Gu(lz26KZ1coZhNmX&&cx2`Y2Yp1;J zbA3}71H1%TQ#BruZio5H%IhKxsK>zoM_Ie$pw-!)b8`+^5Cj52STKl`33q9`d!LUS z&i)8`eXe&EQ!tTy|8yFf%2#07vm>{2WxoXpv_S6)*?4RB%YV>& zqQ!v0jothk5&Euy_jM#(?n|B)Hi$YNqEl$9skJh5ApyquZs_H_!AL;9{2vUt@a+sh z7$X1rLUf~rOw(V3g223f;hxmH#X%Hgbfjq$vW+kAgCd)gJ_S2b}#_ zvbXrio)6ghP!*z9at*sIGsrJHLT_EFrKCWs+15XyM zE9jsJmFY2sxWtS2(Kh{ew9F&Px-^;+*1XEhe8kx|!c_TUa4RfX*47&w)3yQZQTdABzE*Pu3vw$*IP3o#nwUKjUtCVT>hXiwq*Mnr*Vo=qDcAf6w{Nr%euoGyu^%PEO9aZbb-+ zek*%mzcztpJ$8LBon%;q;Af!@GM?r~0b$8ktn;#iV6116^T`+OxCeH-0Da@CDDzD% zc%pi|T%9V+Ugx0j<@334@5$T_Y|Dqc9I^Qq90Br`(u%1@nu-)I0v-H^U)`KAT}HbG z(-*?Mpnb8h=y7IoBfWXor+*T9M0}yDs>~+_4W4F*uS(P;Uo2;PA6wUF%^R+ZA1$={ z8b#^DUwi->5VVBYGc)^nBEF@C*%o~_>NJc*5BZMmIBbJ;eqm-n$^9&eR! zv}q~)bp`=QO2u4^sIC7rRBaaew1Ak*T27AV=APqo^y0Sj{dph;9~+(?e+qNdyL~;! zHsW+ENne2oBT_w)63&a3&&TS;n?j1Yv)RMdK579!t@q1dGPd+JIM{P@)p=hJk@=xI z`XQywgzF{8FyUu1{;ZYvtgeMa(|u8eHFlrdxM7kq*TTdV4P>f@alA(BJOYtX&=Niu z!Z)UWSsM0iKJp`Pv~A&@-yZY!^wz`=@6KX?n~#DfZq9eJ-rj{mhHsqIq)S5gwK96R zS+ql~8=nFxt%v%%FC<>e3_=%pXT<_heX14_J7dtGHXb1t6>JAI=?D^2(D&gP7ST2CJ{G+M*hs0>4GS4l=gzr4X-LcP{7r`xk(RtIMe_c|}1gBTs zk5aM5v)Y5)pk_FcYcc7u*;t_@2^zD`A};6Iy8XhBue0Mo}B)BZ(*%i^afvPBhFNKtX`Fl|?a3_6HhcWltIVc&qUMt#HZJ z8}Bgrfo$RSOt_Dm7W4E9N=!_O<=*y5uom%ovvHq`asp2Hq#%e?*>t&V;_p;EM&_Pa zgJ3UL^bR+16wtyWYWhqEE8E=-XiPb5@+-2%olPf!fU8Ops_&H<)NE%=&YbOQ_8+}n zKHDjW$L=+-)z@Ri?<)Nux!ngSIP}MwyDZiTb+KroU((m7J#l#Zoa0%98u!ar3b+{2 zke}_8gPZJTMYwN=$V)#s^_qpRq)+XbDSK?9J^;c`F`DQ_E*3EQg-o9qA}#V!oK{So zqT^8V;wvuX@3zdf<%Uf97EbrxVhv>9hqR7Kcr|5NVXR&X=jnK zsg#@PgY6;Lkj?QFLMrtR5o}l6B$KUT&53{rr9j**sp4qNEKRMaaVWS$@2)m&kf$~x z0+!-w3*(+s7-q@Zq}Hfx48oflc9tkEH=V}+A>CFk*T!GUJ-#tpv3=xX!W7L=?P9UI z#h=pbQ+9Ydhk7Oz>R0VVp!BdzBbS=`#NNY{dOA7jF3tQJ*&jH(l`t(Hs?hKX#TAE2IZuCCqg^LWhBzVSEjEa}YUDV3MP zGkSIu{|-9-@uDPAaBiy{lgSFBI_C@h(yQ?uC+#ZUc?LpX7h9f0hfCctZbh{hnhc33 z8-9}!Ifv8QUS0VF{s0d=?^~I|>7&$khyE=E6$zM{_R&Fd(wVS1RhUs?ZB$kzQ|0eCN}XP5Aomo1q)9#Cthg~H_S zPuQ7O5!Orf*_^(UM_Qt)bPj2+j|bz0zEGO9D;8GvTTGH61;#(PINUFqj6BO-tew#P zPZw~@P%`Vb%XJeKK8)K~&^{uMHMLOmP!)=J$SJOVI!ZG3UX2w!gGkzb$XbXhNN-E3 zMT$@GmEMb?7a&MY8}n`$7^mSoxICS#2%o$jq;NfKpzVe{Dh5q8+IrO|_xx>Yt&r?J zZDz;k*heg}rCGCbfs^(pQiVmx_)HfuO_3^CQS%o|JG(UyK{~;SjJ3aaQ>lb7US;L^ zUjcUq2;K5$c+JlbR|SZ0kK7(dCyK+ zSnvu6rSdyI#&5%8GsCP*QT;xLPp zu5z7tj~7FLSZp7{kC#Sx>f&2MqUt(k6bNOOYY%;Cg`Z2GDg&~@wdC@o&Ca%t? zC2Cj7m-tIE*jLqfYxf^@LwXZ3H2LO#-=mSNENYjYdZ2WA88O^(P^NtkTf1c!3)kYo z@D(H%ua{Vw_6L@!=U6T&B}T4)kNep=D*O~*{4L69g5o70(1wiVK+&vq9>~oNE6|u8 zWK(2EE+a$T;)^X+U8n$&zQfaRN?fuS$c&;-JtDgK;*7J#Pn09ULwk9q>BOsa<;0u| zvv_YS7`m6YSju{9gF|*?Cl1hgKDUjdmVMfCUq$p4HS_ZK;d$H~7WZVH2~Bq4<%YgE zkyzgX4;`Rq12YyhXgE+t>+ZHBv7VspSsn171H(b&-Zm>ryQwz-nB=cAy+45efkphy z-6og$`789|5?%Ezncw*Wev`UB7}!5c$X+D>kdXI(0K-ecNn3rrvteO^gd;aEhAi^v ziR16E|Cs>Lhn&}}v9i;Rj|%3)=R=kk7fpixJGapjE)SU%wlHdjdBe z6tzBnZ}Rg?*Pk2f%Dqj4^nOp3e?{{?o7KT@?yFC(4lv$o%{kS6>$~q-Yx|5(tkQlfEhw0} z54ff1;+veykM^wOud_DXdu6+7-=FId)!)3UlAZFio~>7UxN_OCw^f%qCb+6bJ-Kwy z^m1lFJ6p){yK`+`vjnWx`@g_2_^{8fKLy7WUIm<=edo2wGQGu4naOKj3R~o4=6BUr zAG^V?@#H7pm58;A?3I@6-!nI?g=eW>@9Rm+KP=gG*6QNt;A>XPYSUPB=Ur)@b+zz+ z?BqO?f|8C!pyY8xU3l-CAHbr7H6M8K$d|O2>v`kU zd-dItRktVY>i=~iD^J4ztm65P%h%k}zIkujvXZCFQkM_T57DZBWl^;FsNsKq4k6~E zHBX)aPoa43;!^VF|FerX=B-`n+@A32Uyixd)(_fV8;Yi0VqZFA>vl13$x8if*$s=j zFaNuFlKFFGPW`*vXLYrc3!iO18s^tqZ#Ux>+po#ncPlJh<;)w!dilY0u}iy7+!tA& z-B-i?G~>_z2X0raW*M(zH|77JGPT~gs_ctS)aLKIT;<=aP51lxI3dRS`}2&RpP(a} z<-}t?6@8m0oObh8$e{_dTPNr>dRSIV{rqn9aZ5Xw-P&6Vj@tiP92g*=6~68d$F|*t z6P9pfn0V`6Np+m`%W-k%Ce5%mtb0}HYNw?^2Tz}Vy)frT-jO+Ofx-3_-a=V6E8Eq+3MJi>=D1&e zCO$oGfpWkjnFY6!&hagaf$c>-eBvOmrMNBk_NlD!-DPjxjZVzpAK9btAA4}^?UN@~ zziM_{JI{6hMMDeQRjVRzUtka|Tg{$)RDUmUeRvW0Oe)amyE6OqJNHh4=J~;Bioe!I z78u8%Umxjit;(K>c*PsV?cXxMpcL*K`5?q2yaEIXT4hila+@0X=Ztvvl?%RFu?f(Dw z#uh8-YnI8J;bI*f95NCx+a-HLddElaXKk~x!!sTpitZW#qb_1?B?59+ndj;&78m3hf z==5|~!9fKYvM*xqB02sGPDrf`_d`+~3)9bQVjK!+J*4EW$-24?1q%X{u&Z1`aC4w>Xq#v7Z6aCE=i>KWnh)j?E) zi(l6!&mJiqt*-d_jeH>xxC|tl(p>wLt_EIOW>CGKc+Up(2jb4xD@;?A*)iauJ|?*c zQv3=K&F!*BX#BFXVUCcU-6Y2$r_TEMw>Z9#FaGP(t=R3+9MaVXbacnPG2F3KmVEhB zadC<5zTr;CvmOceCWp|owU(Z_{-w6asdIY#`^Ija&UgR735_n)4^FWV1{C}}qKpHZ z^O;^Hl4lU+sA=|GC6LPb z3Sqa=2t(VroFnfpPTpj<@^zk&;nH9d+v;=*U9ag>*j>B;H*39jXmo=3$LYj@iwESH z#t^F4w)7a7OGN>dw5u1c`COK8AZ6yo(_M_C!`h`kUMO<*PU?d7yG!vaY;}y)oO`yBIGXJlEBi7YDkCkONFR=jf{m~ zQi$&&^E1wB`G-}5^sZbTxi)TE)YiA9V5N1!=rjAw$-Z_nXr)&yY^R%3O+RLM0fFzE zlWh#1?Sj~N6D2oSnDD{tzTF%aCazZLQ&;^(gLd67EP@w~PW}m@*iTW0YF7`#Az+JnDT$a($n{cR#6~F%rD?ou6>_e%*EC9 zL>gErkIp+#$ho`1qEBB$Ib8+z7P?v@UTu8Re0S7XRMV$5o7qo68^?)pX%g0HHX}o0d0L?{1v@wN?e-TnXa%a4$AzV{OYH88 zu)}W#4s_CJ@y!Wul;K|%Zm)Koc=`q8sTwtYPb=y!;*u*82%XlT_rsjV2knMnO_Op8TV!KuF5O1?Wk=1@DI{If-&{> zRPjV0s&G)GRRiWX7y~HDvFzRW;ZoE-&avsj!fVD)Iq}+K3A8z9H7TOrOe5R-zFBLD z2-!yJ8c<$R192|5E*GH_P}#2U89iZv*~(YAWQ7Et60wUn)TvMLy%QeUeyWp`Qtwin z@aPWlI)i74<;3sg+k;i~W<#hN^*i)+hV7oPu&`ZEx5ra$9?pIJ{aZ6iLLAmyM~z#H zHJ4NmQ9$VPDuc`UcS<=D58sn$ssz*|_9g!MYP7k^VDae~F(c`0Bqr8d(K zjQG9qE7iqq5D~K=DUjq%$n-Mb98A~;N!V+6Q1RmpJ?%3NYt0E;rxZT7qd({=)_yt< z=G_(*6{)(ouxIkQMd#(`({ONT7tB-|3OeKKiH3@9&)DgaW2q@u-1v)b~V{htyU(>jC>Rey#9Vf|lMp zayG}Gm#`F3tZAt?O@>{it@rgvq%j1MT+5{yQ)X-oavRJ=MD3W57lVJo0fE-5el%}1 zK{@yxy$o21TK#_SuWmniDrXMI*cMBPNhsr6ezbI86f9~qZ5GQ9lU7DcXCz6-Co4ntIm@RL(!ZR<%ki?=T-AP)EMg>nM>^*7qzCvJDt0CWk zP=KnnHGn^esS^38$h(D=bn#3)Ek{<~xI{W~L(H%ylfa9Q&9W)st0zS?D+lk0N^$&^ zO@+>>JZ1pDe3pNublBlX0=@_X#WPb3kmXE!?oU;e)1et5HF8hAb7(?sxR_<|j4j=@ z(o*T3NM9s}gxhF9cUp)?6-wcKVEE3N{^aEm8<|fG)BJ_qxQBGvTgI#*dN#q>8+WXTW(gOb|II;V0aZC(nBfdiZf)MD8rwq= zzF+xs2p05qE74ZGs!+=6YB#op@%;otczMn@8>O^5nFX$eLK<(~`=znGB?oW_R$ykh zPsB6|*+s4x-HI*LylHbidyOH+=Z7#teV%$Jrf(QFy9fcbOCEVyX`@eyXgXb0P}}gz z{!{AECW)lsZJ{+-Ey2U{WwgFXEG{|!xoANnG?A2ZD-CrlhLt5Xn#w%W?Q+x8Gq3A; z%3#hEFK#W+Xh|^MyjT+=&X;kA8(Nycc6MvY*BRXMttMrd{mJg%OqHI70lFI0sQnt!WNJVhz(F7kIr@1eUly9*`9M>*O(b4I-}X@b-v zb;1f@9X*LLX&-p9b)nbZ4h%H%KqVwptlu9aJID61y8G^d0lM5D&zxDgJKa!nP)wEA zb34!HyBuzCy%+R!?lE6(_Umkr?9rDAJHL&eJ%@KfV*5f;Dic=JU%ji(v}m3}HAb;k@e?T&Q>rjTOCuQ4FK;0@XS5K`m-2{X-pI^jSTvUV(uygQGV-y26!RCh z8uhk{QyB3S`)Gxkx;O5t?=5=3j?>R>${;+L&Jn_w23-b_`3)V<7E*FMTP3NScWhjq zomF3M^FV--Pm|4Ja#!g}EN$?(#u}E}%(l|(ftx)^o%&FsKDsf}jvi>lMRL#)p0HLJ zq@%RODu~WVPjickrZV8li^CqwFTnprWo&K!kA80fe09sg@&%Ln>)+xQe9dRcjj1n`z+Ei9&WiJqMnkAt> zaKgz)@k-NBk{{COv#`n$<5aEp*AHjie6!3p**~NvH@6n%MVdY{=xYi;&mG=B-&yh1 zhDmJ_!j~z-2L$13Okvx%*KS<9Audi6!SMS@nfM4MG$D2L5eW#2uN-zi@Lhqi)`MkI zLcp?Yz^REumFxf;jss5OAP0T9QER`S3JSr|t+AmCt zl7RDX#;Maiql;ST+RuR|^awDWvf#FU%-<}wRt!P0Kf2*`gb7YYP#{q+GbbF3(4VS* zzyTv*^ZV2U6++$WdLP0|dz7gtaN9J?ixT4XDM&`FI8^6L89ht`6 zzfdZE58ED$$v5isEir6w5%Coj1t0&;6Nt<9F|m|j{x?AK&YMtA^i!fO9#qX6q?&8( z(AdQ2C_<%fW6$mJLhhUmQWKq4mGRZiaEVs6VeK7lBXGs-w7cPu$QTq$E0@keTlA2T z)>^C}H{4l;p9gdZ+r}g>*4e{=YJXka5K0>QLU-HyNfwWiIaZ5?EaFL-BIo1>+wkFL zX`b2dIUZJ8;=@!!HfKzRpe0h+E|`_x70@5Y#@sbRT3tqMCiv9bdd-mpG= zfZ*ff%dZ!-o%*fK>Vt21X^p~FJYeCy@}A`o2}a{71dn2tvtE4Vr&gJz;Df31i|Z3jjF1|PhOHk1B5^EAoo8Oe!ZZRTDZacuFLpR%&jK0RT3q^vh2HzVZus?Io)4%JqSFz$_DHjxd|K^886(@rv92P849CYS3q%}d zfT5uwrTzEJOcn}b^biz+0Ldtz2xCg``nqAYysj=#RZSJ`X%Ni2&Xk6q&qa7+UGQM< zlwr6!foz620ZKHN`lTfbvEiN@^*Rr2^a$Oin$g2s9dHu0Lv-hh%U5*Ty>RZ?b$OUR zX+fEjX6scSEpn(;Rsxkq&*pb-1Q>c3eSz~9*n;^M6DAq<9y4Slq6|XH^wYvN7 zeTH10n8d_dPUN4?N2=Ke=Yqi_VZ$?M+4Nv_-H)&YhGv1#=@<8<){!1J$4T5Hvj@~t znX)70P`vtl-=U(G+{m<2zq=ItlAW*L$VFv8RE4*&t*3rdHNEVn_k`y8FW+z%qh1{9%rBb^)0Bi(90}WKiM>0u;=&3Hi#R5J&DhY3 z!Z{Kyr$OCf3Jn{6iOfj)&);zeXall2Oro&{%MN>oS|!v}xxHd1Qc9B&Ic%rr60)2B#Kh3T=h=q5LB|--!ZVogN!OyU%w&S*^9<;-`Cb9q%ep z+&iZm3Ax-keif_VpQ?T5hJ?-zEld5Z$B<&y*v~~!ieknuc^WevofhPqy!z(d%eq7q@5o=G<&+(mgHrD-BsT?TLXc1<*Eqs& zYjGMQsvUPHRXQjyD)wOiC z8x$_U*HD7)5R-NYx`VGL%i)*QpZKwU75%nsJc2V}AW25q}NJ#LmQXbeRaV z^i?HF><24TutcBzft?0qOc8AXv^Qs zylhIj*v95ybGnhU93*$dL1v=PvutfzCV-~uahYiEn~n_5v88nYkp%rwjR}Z7nczG09+c>lW;Y$`IX`K4f5WxvENVb;3Q@(Ta_HFt2M%2 zjIOpi=KK%s-~;I(+F`}@l+Go#GpO_Ie%aC8uowL<#1()xWrAiv3zwRNj`;o6L z|KlX);e~(z3AFm9&cpjrQKD1JGe5x+<~xrYAq)ypH}2_z@`9Rd z+k@v;eG4sp8y|q}=nV|pCWu<+5v5N44$4sPUgC^bGP&!F0j>wm_1Oz#6Y}heanEJRhLaB;EC3rozE%dIwghW_iER3bN>&s_unYK0!(L zH8SJyTep`C(xsS~u{4QH&tdy`*Q*W{zt+C>Y`k@B@@H5vPLyE+Y6(;FP=2eOwttkoXB$1-$RiI-qI=%Js$_UPLS1=L`nG2>#3RBi4 z6GD8y@%F~#Z`08(@=m!mtOn52E~#nP`utFwg*-s}VXL0` z!{bztrVru5`O$(O%cJSre%}sJjY%`rfZ{sh%beauO#YyW5D99SZeliPUZ}wMOKfYE z!+EYxjdMFx38)`h@54d}TwU@+aKB z_DR|?k{R@O@WQo)_np)^%hhV3g<4_q3F)pZ`W=173l!Y)pNLipDdlwfPIfsO9#iYO zqBP{eh&;El+PzgF;b~FE8m{KixEf@OWXTB@O6NN9Phe@ioM_*s%$JO^bP>+bo8;aQ zjiUMrR089`J6PE%QFWv+L#V0{g03h*;eQ6izK8Ngu;UyD(lb5Wo*O`PWpMKzD!hXK zhA>{E8i0W-y2V0VPU;6QQIT%}$}xhI2xRqyY}1rXT{BEV;g%?4f2@q#`W{De4e38C zb-UJglhI!D^d8+yGk{dyuT*y_f0)P%aP10hWZ*us{3v|-1%E;X29jfgJte= zAmi5VOF;tlcLRcdXaTyXSB6WBF4wCJ!{j>br#w%~MwQDu5S2!p->&VFA7H)o zC5__{R4LWWE;;yKsv9pOJ8~O{oqF(5uhoq%T`zVp-tY+I zB&*+j*Lvp`>k(`Sr%f=>%3m@Hyw`~Ev zE5`dcnD)*r_Jn46IT6O_mi~5B^Yo`V>SFIt5{&DDV59Aenw*rb$za1`xikX=yts%< zJ9Ax~4oUbGXI^I72fSmK%fT!Y?4k+p@%}{mDxlQeX^3Q{ zTD`e5tocwdSn~RzLr}*s*%Q@USaUP zs{$m0V*~LKIy~?3!aBq~vz0dkVnjY!{X_8Z*kV@UFDr1ZRyw!XVT)3v@D2b0Ghb!x ze-!EeM^!`8&F}w?$n-4V4#cHG99WeeHDmy8L?^|Cy!F+4W!u4h!HjaL{7=1qv1p1G zBKz{WokJbEJb3Rq#VUqow%-3L3*4Gte-Pn z50LoqoSUg<_M_qKo5c{ zLON6wUk38%iWgg&QJ}LRHcVXAx-l`yJ<2!ZP?|B@95WFGoqTWaw)B6J_6Ut=|6W%> zufBH&?)3RN_HO4^Et61AE4pe%h!OoI!4n^MC0F&m$82ia!u{wl1QhRZ<&!Bl8@Bi4 z65O9t8FvvI37p2TSt@Q%Z0A0h?@CdwP#;DjZBKxmi!l-*7G9md@J2BC;Syf?Y8R;g zo?CrH0N=@EmUv{+#kT3>Uh&f%MZ?JJYYCxvwzs>}OSD;ANg6LV@3F|28vwH4veMR``O_w-Q__MXcX~;-T^bltA&6r)V4#rIiVsXdc z#OK^ZiVV>0G$fX!{Aq}TXHGxbwK(Y^S0vXafl_#ViD+bK9N<6m$*Dr9uy6T^;$A7j zkAetdK(ln#$o-qAJvXP_3!HC$NO!BPR@-gou(aGv=Tdm5AJK{%(8dpu=!otoK>~Kv z9??sK9cELAq44Z4^;xTFaMrY-bB>8W^!+}RAfP0wT8g}T8xeJV_{ZU2pxI9{PJCfJ zKxE{1D7ni|O=L}5goY3RyMey%Zl9UXPf|0W_1)ArAp)O{z=x0+X)M9ovQu78CU7p^ zz)Pei`s>mP_Mj!o>}v3baF8~wd{;7#@y?Sl-f@bklXxF^ z`1s6ZyT}oVcp;;J90B@_q3!MKoqqq3e8;-puDKswWU)u-@Lhn2R$2&RWCQ!9zmn0w z_YYFOOSF`Aa(!EPEK<^5190-|t^v!u?#6Wbl-Zew_+2}4;iIP5-4$-lvvk_Kur|zQ z%%XNaeC|8A@Ei7=(&jOokg>NoyXcD_J!~Vm{}a%EwKmRalqAsl6@%uDC{<`QIb@>*jLebLWA<%|CQGq2?NG{OE3jt`;?ePAn=OysirtJ4vmyMEJH0H#R>L zlJf_4_Gx#af`?+%0H+5QY&F;n_u-$P)><5$oJ61RPPcY;fW!;7Q|USRS8(HnbVKN$%BJr%Q?a)`l-w9pzeu)MAE zb6bu_xp3gngR#H!zi1QwZ4*1oJuR#qCy#JFK@{KO7|Of+FXQm&(TqD=x9CWOe7_Fp z?GjMQy=P>tTp8dlox_`Aq~C1`e%)P@pkPDs{P0xWU@8CBq{F_JBR_BYXDYczCl$SX zxO_P6A#X1nDWtZft4=*9WBnbjuiO7H*HX?na9for@!mId@HmUf`WTF}UyK1huI&9? zvj60=ccL8pfCBcpI&X(P9Yxk+Epefd5Y`V3A4}pv>m$&8o19!$iTN%Qh5 z2b%R?qvwA<5nxL49JyhLnY<#0)M9D(ZrAoa5g=awFh)W_=z1ck*yvUlrM)gg#LV3? zv9Z7)oj*5zMJ{4hEe+i0p^!U_%sD@3Vh!(reTrW9b>sbIP*XFBCH)4bW;M|vRv<5( zo4QD@N?9PzVMbbu|*e+ffl#}`RoW`!xkSB+}{PTds$~)la8&m@7 zHPWcLpLEYwGuqgQ|SC! zQsnn9@PtkSS?!_OUG=v!8ZD7GnSp1jej#LE`Oh^WQaYd~1Pz{+qGHR$w*g{m=FtoE za8CsC6#ZC5%@$J^%;pGimmY6~$8LY7ji49VQ)hQu=r!@n_lSb$G@I$&5}MmH zsAXOe<^5k!DbvW7B4&4MIeqjDXonyzi5>65sd_Bx2N{F!F-GvJC#ZrG7nZI$ZX5UY)9 z@tb9IPw2lr?vkbRR=_k`7ZGo5O8ytsN2=W!c*~b63uo&Nf{+s~Kw;xw0^I-a<@R@q zjuZUY^UtCy0-=II_d8BEi7oS9if%)@GYm7#$DXN3$DYi4JwQT9_fBNT?TNh7Ae16= zJS;&V)U3w_>04bDOmCtP=$%0JKLfBnV#=)fXW!GaXvfpo6Z-2oA>2f`3g8rxf|jFM z+Yhgi9vElwLxiL^L1P2g~nlS2jtDn`ruvV~pMsn;_nPmKHBx-Oq!H4!s z?EIu9Nmi06)X|<1nl21N24dHJkg~-Hv+C~3TXPFKfAxI~>YLoLFewN5{f1=fcb%{H zll0jY`HmE$3+Qs{`JVqwqvL8*ycMTlS$l{`Dx=+ z)7pqltutMG3evztjh%0Yp8-XUY*)F`FDK{WD85k%C%NnPpU1Gqh_)e6s9?A~+;cY$ zIG`>vL;LZYL9F4%5$e{QE~I3-)snbfOS2Pkhw|wy-ejPeQ-W z&y?`0Z4{ccRNweX4l?|HQ>&FzD0qTPgsyQJpx9b7%hzi6vvp!kw3?o_M7g^jIG!y3 zBtVAe5qxyF*g}nxM8ezLj6-!fn#HA!!fLcp@2%aY+Wb9R;ZjcxP`BjPRN@qPbanLL zJXaH7Cwd`cwqW+}1OvR^ydh>P(y=^Dne`qaO*RB}yuJ!0Z~uxys=b-iZK&3G`Wyka z`E=r3Vvn*J9^!aJ-hF^V?7-m3-&sxrdy_Rz5ck zk{cepJYKu(j}uJWAZaZqC@2*E%4k*wiC%Ud1F-*SU^2KI;@Zf4hMTpprNh7|lKEy; zCh59OFkXoh>RfpW6yKGq<=sfAyTx0j1o1%G4|uxXEQ5%hvO^O;6k!63VvDUL^B0QK zEA|Ue$w}ew=B^*ngtAf+jn^TX!v_3?6xUyOyS<1UUDyl+S=MwQo6)Db%>qA zN-#hhO3XkmBZ4C}EiQ1HnCA!;%Z2CLRA~Fvs0(~r$nlz#+397;YHcoliRx`<{~hlW zvMMyv09Wo-*u)sL3i7P=J(`bTS>NSHoQ#&!O4tFELy63lA1a`oZfjG%lJ_oeD*<~l zJ@Dx_KlCy(T$kj?yK%G^yL{#8u!H|zGFwl*U)I~lbe{dOehQMO$#e(m=H zyG8wr$bYNh+uhe{C<>zS8%Y3fN3zx>**kJh4Cz6rOK#A>ukce%s>MY@0sMH?5OP5} zj&ZH;92_I&u{lsh#ePNU5zXLFe$$Q-nr;*=P^~Kp`wX8vbn(UE}!Yq{!!Yl=Dz$i_!5>22eAmF2c_0 zaVt@t@PWkSmJmr4u~e+MC5uSQP;AV{lFSMyM9R)T055_q`?xWi z8WPH4fMn*O`pPob0ouSURB0_f+R7Abs9mjHH`sqC9_&wp!jzs|nLKXB@Ii+2#oWN1 zX(6Pvc*b`@VrgTuhRVu(ULYY??A0^Luw5VRFEI}WQp zksk21RLbWu1$5*$Z)7SuW7E?&K*jrY{Ux}k`JhTo$r%n(;Wt=rka+s-*~!>*BZ#CG zBKkh{C7>EUdgTY_7+YLYMD5Dl4yr%*KjX=Zj?w>6H-LJi!acX$nou1{8E49ysS5Dr z)Gm2u4VO}pRLz*0Re)61ee;EWRdQD=V95w0Azz(H-yft4=qr+1yQT=uz7~8h$jOa) zi?PQbU#Dk&Tqz6+Ha1X9iuU%VR)y5^55J{ab-IUu z;Ji~#bEZ~=oaTX<%azXJV39RS>O+GzNKT$|5h)vtE znbC%i|7^}eTMt+tVYc|7BznU-3hJwLdGT8a3`K`n&okEutIC)@5{f{?fep^DgoBvU zyFy4I8c)2vWUgH;nRHTB7l8tUP2DHyh8&?o@Xk%=cp+N@YSt%P9dEe?HTUt8#J$ zG@2H|>6*clq*5FfFYByUF!smGWRGE%&0yD-Pu7xoUAq6#T) z-r^2Ox1^u|kLJ6;kk@9$P4~VO{M*lr(!V}{lD!adKlw%`i#;iGU5DP)E6PR%*+~o% z*2-fN`#mXf4AJqPxI1jKdYdQat4~vj7~_OHY7-Cnylu(Zwm{i~q? z@b|&e7ti6Cdo2=qi(J*$wkQ(-v4BdT?i|_0w*Tb?uX_qi5DjKq8G_m&?9ukOj|Lw% z2NId-?Yp+S6OsSMm~W;18)e+zUA3*t1JXX@QE;J~E0EG5VbAJ)+RdAI%)gN-b-D{k z7$eauX2eG38_%`3kQuT$v+$W~k2Tu+p0eP`Mtd4%w0jx*+ifq9P%|fuA>WLv!P&6U$XujF9YM09Q^RPr~xj!tCGQYk$jzE!e1xHD_Qh)-3Ex?Pp4nSL7hpgFc%7u$gl-9GT~%B%JgD!@Q)cJ z#QYX2)EsBCcFQ^w)6^wh<1dasDK6k7KTwjMMl?A^C_)E42YNuZU@|CB<9aZ-L1h>0 z{;rZ#RGQoDUj+FIN0Uxc;nS@S4RYEsb_=#l80*o$ZiW=ztHG<@P(?@?{dK>N)1)v4 z8~0Sc>tjYp+>8eu(POcQx1dB%?dO0}L{N~3Ml0LfyV`{@t*-1Jw`riOfYhEtA>t<* zQT_MMw?A9Er-o0E2;rZw5_KB9qUbC^W>O-3UMR5jNh~N;!J&EjplW=I5aQrfiF^zi z>+^~ssqFs(6X03pN=sE5kkmk}y)8hG$J!N{_Lsu^U*$Xhe*wQx(MWeX;WrFB%7=EA zAJ}cnExo0+_`gYG zHVqYW0UlaPk-hwL&?ng=x>+gDPtjzYAaOic{KFr@%ViBfj*4vNsROgKXcjFa+S#(t-WW*a~anfWqB#%gOg3E(u_LIF4w~tDVS8VvdRm z5D972#^~Vq&sfZ&Ko&6cGb7kRd?%HJQcppVWG%OeWlB2^?mdGqHUNF2FN?ADB8nwp zPo%4t3xE$stdO6_4g^|EcQEG?^?=?Whbdm%7N&Je&#A(2L|GnH1+BE2YCqPG`>Od)%2+{sQQFc+4p z#D9d2OBO_DI8fr1Vd!HW;oLR*W7h+U%~jcHW%F}M3fJSG%w_*J+XbqOX4RmioTj+Z z-Gb@8tlvvIhl%dTteJ~#0g^l|GX+Kw2O$y@#4rnwF3eXXrLH!fI3BTkt-O=p4n!?_ zHj0ZF_NJ<}Kyg-nKE5k0O*NKP`qd2qv*jOYIB|OaL|efBLR-kDL1@b-&31}g>(Kffmgi5(rpd`+ ze+dNA&)C&KCZOx1fCm$=uD_s!=>z_!9C(WAn>l+9&-G74(4e zBvbv_7pgbp-)w9WbJF7EV0jRvmW|~74LN*pJesX!;Vn_FaIZ=1VcBLg*a}rtbdiwM zZj%?OK0J|B9CmAyRcu{y54}OOx3Kq3)t}zPW5Pq3nwfcc;}n6{L@@E&1>cAx*=WRc z#Xt=79&Z{DqK0^UyC`GClvXCPWItww;3^6-v4$W-3Gw)T@i$r4#NX4c|G323t`};C zYmsEm=E{a^qf#J6cBE-zw~~jC5F-qVWK0^`4}5-{k>lq_D^P2e3f6~y!3Q()T{ov| zGsd$$vcW&Lr)<;hB}0qF{E4%~Oevs&Hc)}U3tgD% zbgzIfl)olN7i?hPB}(EP)gUyUNWzN2Q5)a2*e?&Gjv9|s*9gG{je&&O;64{kFqSHiD#bNi=0~O=I9J! zUnItoQ7DFISoY?CO`a+EsaKov0#iRU*=$EtMy>Mq;r2an!^<9zzIC1D#~p) z6Pq0hAM8JG-AW=G%z2q3+1UFXg~RS%M=6~YrdRA{oMnW%oY@(n(^G>KVp4%u{^Ru5 z@RVp;nMg|oa+Wn4_!om@lQ}9n|8$Pe$1U)4$LwM&go5rz;k?2&tXZCU$jf&ZUo&-s z!-SAcv97!Sp#?}T`?a6t3(j$3QKG3AjV%bGIj~w<_#>A&PK=H8x~@-eyM77_WLO^0 z2el)XXtt8*dxO{P{=n-v@`?W2q)1%Me6%D}%NHw>glW}vz5KpUJ=B)6S>GiQ_IOY7 zJ)Ip4{T$CuQ6Zi9%Dn`N{{s5LGOl49AV0eX5@B;^{C#HGgzTH350AbF1Ob)uR9fSH zl&g~6Zs3(TIKc3G8yjnFtRoL!zUy=a0%M2S`wL1H7B8;_LrN>OhsTs4k~E8(m*%P> zLkI>*=c=Fy2l~Ov=mSqp^zoIO&$gXky7_a~uU-sr(OkS0S>y}5Yyz^|eK-Ou*JqG& ztmlF6l2Q)Dm(#*s`=?_AwTp!-Xa+@(so$SAj5)tMluDT){mY6ypQVPRQMG zUy3+4Vpn!GT2X{)Tv~QY3bt;eP4MwTwOIKa&`zsLzk6pmL8aQT-Skw$hNJ0xIna7W zsO!$aD@PTNkphztEu3NHOHQMdoHzCjl&)7pU$Q+PDj}NnYyNj`2ty&n{z9X5k&Ss| z_qt>Pn^_NN1%B^~0IyT^2#dD0CRKDmtwAU7&j2pM3pt zx(w2eM1hJtw+X^Uzl+#@=qBPPgbfbu^O%$R!05dvyYQUQej zConpFRYm)?>DGkH;=}yo+Klb_zX%KZ4xZz&T7Wa4tbqANq^ypa8eaBaT}E?hQK@WA zRLh)h{s~e_-=2&cMbav2TvG+=@N_w?!S5A2+>eiy3oaXn)Y;8N_Qul0>{pr!{~S;7 z%9ZR5ET7NsOeq;ya zw-YaYO&ZxTt>|R1>VsL? zx`*f_*L$Bzk)~Yw4P*pzD-%sj0A%>jpG4Je_F^WFxWy$&ZtiFQhqkwli=#`oMhOJB z;0__U1PKlSf&_PWPq5(bPUCJNxD$d~aB1A#9fC_E!Q~ctXU=!doS8GaJb2_kNzW*0Xl+yuYX|xwz5i*xUn8-dCqFQ#?RWV&}Wv#69ujThPFg-UlXYvWX07 zse!Sr7+(IQGGg7r)$%64t%-AKq)-XUL^Wy6(AnMkuTfiPl1bxs2Kds(Lcx0km)0=^7?lO6mWF@Dw_sGs0|wSDr2hC?~~SSXjCJz=I; zBF2%%<3Q*`ir!7bAV{Cs*5gy|L1uqrK%3|Tv%nL>*M{)xs1^3Swa5P6O*!<}w9Fi| zZS3G_xl-uDr?cJ)J;4UzhY&4bOmiHQrFz>SmD-pll+tQoWQ>3jyc#~T{7`$vXg^xw4+=l`S%$8FU` zO*_n`nxqo-3PK2Fz(&2@9PTkqIS0Lq^cu+*MCAotVYvCSd8q^Dj=CAtzuD8-Tilq} zoKOw5GP>w?X^P_N^I|G@$7o(g|7CQ)v<=Ey3etzSQ0>hq1`gwQmvDoA5#vx%&`{e2 zFP;?#6HDxCjk(Zd_*+x36$#}M1sk-{dnSu@R>hjtpV^)ERV07a{zK8Gnxz6Y2S*~O z&5G~~<$|~!WIb$_PxMwR%|S}a%F=uJse!hms{m|$FX&-Pil^H0^n_=v>BV8A)^_(* zNZ|tuj)Oe*+Y5K9EBoRPP2@~ETdq>_627Bk0ZejJLNcDS?gJ}|39?HC3;^^ybg9*u-o z6e-Bxdg-U(toQlZ87&Xb*XPRC{{H@H1W!>>K8Xe|u)5*IpJ{y>{CXQN?Q`03Apw z^P#R0A1Yfz_Y~dA%dX z7h~(4j;dN|4osI)8{N2ithYQee^`t<0+g`QyegDDzIFPfPfSu$aIqZR4yh&L+U(gh z8DjhTinJX!9lX}W8=5_qq)P#RUkZUwPVQo$H?8_m0)iPT?@Z}~d6}2ZMg)34zjm3E z@Fa{^*bvD!GCO07B~CW6C&TYCB=tBT!h32;Er|5a$S}{PTtEECuZK{O*yPRD+H`Fx zSemgbue+2;sq?;XaVL}A-m}O~Jjfl#6yHyvjDD=N-qc+eFbL763r1E%~ zAVno+vRKGBm=TuA(q~1xK^k*ptRGf$F0A0}q6k;lJ8M&P%zX1_*|hTIJ6`E;d~ z!jX;NJvMk*YR-2kZJ4KPgeH@%CEIj)m}_3WlBMf$shF*$TRc)5D5}+Jf!dwHAW4Pk zas2+Rer<3W6{Qxd5?_## z?Y}avLaSU(4X`oR$U-m&W|_az1ctK7JS>MFV&4%W%2JHsMpNXhIz<$()ggSt2#kes z&uIZMq%AtOJCp|-o^-dk+T7w_92~;UUh=cpFTmX^kxTa9Hk9YI)f1&HI`{a_;u;=k z)+)Mni+697G*wy*usGVBgsEBU?XLK|q#n{UtZFSjPtqZdyJg)$h=saSnoI6<@t)4A zTOvD6ho#GvMn7(q%aQiX&&=3!IgS%6EX?s|=RLQ!#57_}Z_E&aO*NXpDcW7?J*EuK zC#;>v_6nLfwkXo@h*n9?G4m^ge=E&#s?2jPvd`Ev)^MK98 z%iPgTo=;XC^$O7iA82fSDc#Mn4x9O~#0$e~(~Cm-ZvrS!5e1`Zvf)WgY_37$c`?P< zPHQa1RrYjLZ@;N%HazdOu-f=_DKaUFlbgxU+r5y*AlZwXN8ZCnWG(A#*re=wd2Z9V z*g@HBRPw`Nk3dMIETt_Z|7B?=zYHbSZ*D79!56{`fl{|u1NR@3goLjXJT)(<5tC0M zrO>&N-K!;p0apS%f28mHnF9~0+U4^t_)HRCnpS@y*gqCr9F!-r?|Vlq(MvSTsd+`q zc_5`GSb6K3zK8WvrlY(4gn5;eO$%>}P5TKmLm!!TOoSm-g4CIIeg*){0r=!c9~=`q$Ol6wB8g< zwA>Zu!iLTS0ay3E%(%Jig>Z~;cF_f9XLvwnE_~a9txuYn@doPDws^J8Yw4Zu-jmDh z1oyW{LSJ!L4oRtx-RXJR8Fe+3Zpq)AKfc-oY#_&Qp#(Y$LzkB*~H`adFQX-Lv4 z%Ge;A@|v8iC36pK8K1D?36+-&wYlLT3LU&{?#Tbiop)gz$m4^6QOVq$mF7kF8&2~+ zwz~8f{SZ|QBlz`?2_}wq|C{cVpXKi7QlrYbDZWNdoN?YuA?lgoy%)O~sxwDEj8Nk( zpAD{pzV(g23PY-jA#PeM8rf)wHu|+&%6(^w#@_AQsuAAVER)Ntq(iK9%lZq!P(RF$ z;7;io9qZ>Lmx$=&QoQ9sJdGT7@g5Y0*@Y#uIkUysI-Cv)e#u;Tlw9-qu8*%FcDrpu zoMbt1>egJJkpIC8vlE=vqsx1`$4EF?Ptm}TxV5p8;eL&pJ6piavEN%24z?F8ASQqA z0Aac9Xy~AAM(nT$h2oWsQUiR3*zUG^euSlvhLD^>U5H9}@7Rw@G@iZLSLfrj_g0B+VjI1)Vf2LM$$8n1yLOMTQ)0LP| z>A1@G_!w6bKIe})@hb*m zUWf9kK_8KHHljwL>bcl!Bb~h)H7IWt7&9a&jRf?rCR*0|3DIvaG|a)!y-==jA0%%} zy03hXa2}%GuEHI|LUF5cf{voUolGay&Rc%DJHeo!+5ZS}aB=CKis{E^+yD6fW-A^j z1~8ke$W~0hzxUkwwN1Va5^=Q|mIA~+r~!}bpw`ybIx)UiwX}S^8+`b&*^1XD1zb8> z?_YWe;V!s3zkO@v>t+KJ=Hi6USB??3k`Vw`qWXy}CDledHTUY|Dw?#LrbFLI*yvpj zjaN{Wj3>13HWw7t(FK&Zgml2eqf{wfTH0|EiDduh^_L$^v!mWxR?p5|u2P7paZgx% zKVpjdUc_G>_?8r&?lFi|SV6T%lr9>4c_vzs>u;w*{4TOZue|=dch5pCw%aZ5CtNcL z{U6!QQ~GA668@fnUmJc<5&WZ;+lO)c=DhCP^)(pH6tLMynY z^Ra;`y51>`!Oh(WT4Y|4*2|M|dgT;OdT>Ikpuw}}w81Rv`>WhA-sPNtazz?s`9dz{i+-JiPmFI@1_52>p9SUD4F50Jin<)4)P z81P6xb~-)6?G33;YP@`Ynk%;Sv%2JWYg_fU4i7&*K-X*F-S-J(AULbAL?O|zeR}S* zMu7Uk!i-7W2=o zD4*E8>e=WjT z%h7;)>Bmwl>D5;T$>MweeW)tuCM57$V&eMhPNF4UK8W{C`X$qHYb-;9?rnNg-uPZ| z(d)>O=Ec-N4Vl6+Qw6_*6h~Nk-m6N!P{U$4tm0rI5u-)=*-n911-OPFkmTVGgqBGB z`7Tpab&E|@k^1WiZ3fYsR!QhN)oNkxT%LS`>rAFxW901IV|F}j@YmHM20}o)T@^+ zCl2_5Wc~cf-DtN7x96BxeZ2ka*ZAcTAFatg`~Kq(^dOmZvBmn6A~AXoRK)St!(Cf+ zAuxpz-Ay?({RCe8_VL@z%nR)V$`!hX>B%z8y!$Z9`b7I)152{Hnrg=pd4xs_!`6ar z<@7q5px3cx5E3m$S{8EOE~NnWyi@>QTqXH>iIB%n;xK_(?8xUuBh3W8z$N8R z<$*;8J{tdZrZV2gS9Dggr9r^$x7twf*_r*J$@ZK)SBD z{2}~SqWt6IF!CIS9j=aGilW-iu(Z5|4!|N(XiW=U!rqdY8y4#pEtIVRh~sdmyDLKyEGKxqucrN8zfwg9IJ!GK~*6YTrLBhWQsz*6v=vWvdc z2eiXcgRP(lV$#b?kyl}gC=W2_Y6d=V6wF(jkcuX4U3+;l7s6IibZK+xyRRKA4o2!}}rJ`kW##NNi}W~&jC)?JfJG=9r9Dv0YA z9xKF~EdEePakR`R6*bJhJHM-p|r5*T7!$k1@riM~uuGbA5ObpfYc!nKRosTHNb``xV z3%0Iv8=#7wXvJUY{VlGy0-p3vcviFq4ma;heucAaVjB9ufhEK_(a^Q;U(H;z4&9PW z)WyA`7(^@CY+%{>+sn9U=UtLPmO<_${NEss2X*do3 zTgda@gP^}1IYhhT!58-h`gdh@Zq9ZOhcjrZx3)Sn!0zSTy4@4>4_5JyUbdi$%m71r zeW~BR!nLW+NAu#7pId~U6Gh?LMx}I1#LybgX~Hmm^|(ih%O$txY*ANQB7svvkqh(9 zx3F1ccX8!xnU>V99;3#$FHvi*Huf!+c+&!E_X@dnag^~Yz%X@u@70FTI&Is^AoiB9 zvzN=PUnYFZODmy=gfiTOC2%QZHb!(Xa6eg899zohECC`&@zJw4c7Y12$S=5=yC(swTSO9vKo z?n6jLJUBO^3s15}P~CDD=A^9BZFMTWGtwI0eN6_2c;o zovYooLclCb1hD|NqQ}+7R!5dW6;<0|^DJW?SgfVMM?zXFnFHn<4i2Oom zq(_r^=%vQ>x@HZrSZnmvYb<~H$+dPQk&s$}{rHeAd~_&!pysqoc^F&an|1RujTPtD zb36?I5mK)X9#w)AI9bqF!u!x@Kf#@x#r}UA$i($r<3K%nKkX`dV%}3xQ&Lm7PpG>d zJet4wa8Be~2IWi98h}AS7$pDM9h~1SGKOc89cikLOuYlmu%L{sQ*F)Sn%Cr$&! zi|q6#f`NIWB2zxG&0CzhJ%rFwcwi!y&uJ0OPEq8py8#U=^9h(|WkJ2ktg}+hSdGFa zIuB^!o<=M;W}}2;vxIY_09$I;_XJoG+gCNp68k#iTGqnY)*YHnH877EuF9Ys?ji-1 z&@^6idr`^N)XDu6A`AHm`ZORcCZ4yRox$KeE*hXCTV>FvTe7Xg2-A zyE+Hb6W+~M2o(|(?WG+q-KPdi)_>VG(T)N-(H32)SP>GX|N^Tg5Yft2?wMW&rMxAwDsr{+_qN*WYpc>@r<#l-q4QmgweQjcnc_YIaE zs*Q16mmR&)E`-HpC5JCynKUA;7~QRw)C?s4126QEK34#_7ZJ1R2T`v|>-+c}s-J9g zM;(0x&aP86-~gtH$HbH;JN4eEj-*n33dr<0 zE;T1Yllb>3ZO}ht}7CgRt42db7;!y){P1g$69IRm;l3X= zIBZ_N=}F9BKG$G>%QFM?tdbc+(;;SwTYhv|oy??N$Tgnt-OYYR$8llVdg8ZsJ5#8j z$y2N9rwukRXI+G`-^ZH|&Ec3142kS86%*V1nx5!$dijeKQ0v$&2iz7( zjspmkFPevr?L(rVuX1TDmz5y4haeYyy>ps)hyuczAzO9KU)NK|)HEH}T;V zMK{lc@HL#GMUay8ri!BuBc}gM{7tVE-7$)@2aA0$2`LBAbvg)QMc7y^mKE+fJ-N~t z60`^lb2g1mm&7aWFVxZ=*x*x*KIs4WXsB19Nc7hyJ$Gne{veQ+k<{d#gXm8S@+CC4 z%6KkRh z?i(A~%D%`N5fRzlG;T=LGH0?X{M8{+6rSv`m#UZLJN8L!xcsb<#<5D4M(WYH{m{OoLyg@1o#fq$vD6n<3@ zEz~w*ZELj(Ls4ke&WsZmtKq1Yci0|h=M8ao2>w=&eh;e|waawUeir(; zyD^PKn(l5mm$y7KJT7(u!qx{V6*GEB>S1|E;AXE5C{vYh46sq;P%uksoz@Zl+(Xoy+pX`QWW*HBD@F=B+Y0Yv?R{NN)H=6bM!} zxw2DRiS{K=3Szssim6zLx1K zub|)E@T-M{gDSrp#-+?$G*+4@&@xH*ZY39cop2!6lI~ zNQj2iV~KCrMR#6<$Dq-zyY$X8k)uTI{-22;({;2r0fG3h-Bum~0f@&tZrfD}0W6Uf9|wr+$bcS7Pn=M+Ci8dDmdgFa=O&Ovhj?FVZe z>+mM<1P|Q^62+hRZ+NuLpSf$IIaeDQslnL2FZIk@Vy_a{V2nEG|cE@%FGUyiNO9z zM#d2XaxG7RLe?S}>O=?lJWvAZi{R2kXsZR6;L!@il=Bg1;wRmcid7=Z7JL+A^!<-g z48@exRKP+OnYNF~$h#}G$hW_bVC2zV%<(jI-aP({4HH8}OuZ*Ip-dO zH5U%BM3&xt`ZM(B0*|)dRh&6CT8|!#>h?mG%)PJZ&+Htrg#6_52*cmx0-is&yMF9b zY<_=Bf%Pp4pL|UK=|M5V$NX6k`nX6~2t@`UdSA8c|%CP{c&)si%Mw>ki8{x-U z{sN|$WN_}AXOzKXe*N}SHUjYyUiw0vp97K2HHx0L+UNcog>gRe?jwW#Lc;-bMJn_w zFwI?NCm!>?_4NC^Mj^)ESey>fV(4cdX_&cc?5zXP1SnX&mRVJXK*s3I!BdqoM<*+4 zNTMpl2{R(&7R=%=c@)X27^dpLx$mud#VNbQ#hjFEc9fr4jTY&8n}pA|F>9U`Gk?C2 z9y#)6D@8DtWoVXZoYim~^-U$2sxv7L_MSxfq=K9U@evZ{)|r}+o1pWBkp}VL(qo3X zyiufGr_Pa*(2=}D0TvIrAPA%4mnyh$xy-Y>^ zzBCnt%@uM~7KVUnq&KfP?9Lj|`>w66e@Z=2!F&Fc|F#~Ie?W|G67++ZR4N~HYR&Lo z_GhlhXe&NI9w3}MRn5tTop-#Vvxb)zKwbR#GOJ$oyeJOI`qiQ?jxkg->{@!2x5Y@f z;rpbU2PbgG$`hDjkElW)D23t8aX;xUynjv0@Gp?Wv1_i1o12@y!C{dhbP!}EH4(51 zA%c4VqkDOIQAHacfc9q|#U#+zKsD?&T*~68S=lXIXUPP<_Q}9+NbON8FSJPQ>@Utb z>_hY&LGz&b#3+4tXVOJ`|L!#g_fhBpb4I5$D09o~H5U+N)KU|ZD((MA^RWD?VQGl+ z-^8X*GcWFVpFboLM%1Q@bE=$mXxqnr>E5!k z&pD0go$wx%#-BWPHG2{xR-Vl_+g3=GF~UwWFS~`1E@gO7V!kwh}{2lFH zb4Ow(1g;ja@ALAYN=K@3r=Qu1-M469W>lgxJImLhpTJS-$zK%PEOMgSI|@fSnK%+; znhZU%+*M7!WWQ;{Ni)IR&Q_q^4d1z4DqWFE+)8E5(Eta`E4FawF*y2#xnQ((hQAlg2H*#=MKID!hakNstW2l?T$ME(IZz zY;nJq=Kfl&+vg|DN=!eE2>RCWu2638d+z&(hi6HW z)GtjU1%MnI~hTxvJB{sL;%Z{QUG( zs5goPgNzJ4T~2+^>3LC}ukT<1)k}F*%m0GvU~aIBHXbQy z6ad4K)6l?cmDU|5#>M#qa-)=%17i>f2Q9jUKI?qbjKztF6Ly9DyAK{rdHh&*hkXF^YtAf`k;C zY1doq>RMn_!EL5xa%!9_dutHZUo=pN2=TnWP(Q%XBzc;OnHhb#(MhDq`DiTXBXV9| zUe>38*d$;imUt)9=J|6=VQNs{{G zOk61TwimnfZjT%Xvj!>d60+~5$#@+@00L|IryaQLp$Z&e7VwG^CAm~z9FX745PiNJ z1z0NFl5HF2wqPX$`t9g=eE6)MiMgly^HB~?a~{6;1v?{SYXue<-~|I+FM6AiTKO z_MLLm+D{;XiDfv16j2{S4Dfpcs~c6G5z`3c&S=2zq7Sq6{9ht%_%L&tZ^*c>HS?U) z37nfk<~5D54jE(7s}Q_HCHt@KrC$mQo30PO#gLGZs>`YMW6S*xXg%3-1?=`Dx~J&i2rBRJaI$wT0b*#Y}sejPG(Swbi*jT#d&9Ik@f1x9;78 zpy3%%?O!2%Y+we*(NKKZei=c!6)vY|ZT4#kj>J>U=(f?g;u@-F1e0P;6Odn^Nn8CC z{9^z4mE!(yl!3`ziSpt6E-&U7*87)Qcyez40Xi^>Pn^F8Vnn1b;Z1fv2`!IH>=NJuJUgzeIjSyCq z%t=iDYa{TZ^w%eId7=2K;ZgAA3G5~Ux1(Azpe~r(81lV*)2dgC#%Js;G;!i)wsFgz zmL}yxHg87t8Mnaz&)SF)%7Bj=ceHDG;w11WBZ3ub1sW1HZcNE1{XIjFPZ}Qthz-^s zE4shhb-A#-5y^%0%h>#^aYeZGXRJ9r)Y58rvE717yE1Kf*epit?tw=5LoM-PVcA(; zOqrVp2R|KXNps-d^u399a9Sd(<7WG#VH221&$~3jTrOB-7jn#t4~|a5d{0n7T8lDT zUEOtmKM#C>I+8!u>KI)+jUe{ezlY?f+D7MV{yiiIde~IKU_^Ik4|GiMBg?UrKTU2y z02!ZjUU_&r0HTp<0QdjCHd9UhqLAr$Knbr$(0uD!VUzlAQY|EgtIvRZd9x!L=sZrk zhl~Jv@RiOO=8(~lm<;H6Y8@k(+d_U=M1TM9-@*wh{`|NR#1+yIWHdBRDN*x%99&#A zQ)Cjs8s^3thoEXpK1Z^9X2wNlf{$qDRz}gV;5nkE``GiYP%OLqYrE^ayXSSt5(lcQ zs%$S0HG%cX3bi)>dCDPamCKyB7EQ!89)bi>Ur;4Z*^CyrCE~u*dbr^``CF!;nt<=h z=zUtEVzFD9(sg1U92=;6eDCS$IaX;b-qqVHQaGvVuG?S_t6U%>1PsR|U&?39Dm-kk zg-u7h0m*@aC41sNC8b_3ATD@D05gMpLI6Op!dRUW6SG`8!*nxP&er0BR;%%{%d$y* zbKBqLV47>w#6R@qUZWKh+-pyx*DKR%w39!C4ElO^(G9rTG6}@qIo}O2zkg3WTc#@_ zCx=#}Wi`)0MFk5;d|5nZ)ft$g!nh;hD!{u5RQlksc_IAcSsXp<(zS(FzF=7`Kayky z!S~u{;wcWM6}|q37Kk37B{hE9k~{%qJ+fw4PZ zjW?x5lFDfwSZzAGHg$^Md^KVb?x0Mc2+(XWI3=+qx2WPt=-mZ)N_MU)lHThY%s{2J zGI=}gGNfFA)>$}T%X|uiF{|%yv?W|r<_r&&W?j-=z(((Bo+8H2haaXFpVhcB=qUJk z#5fQ-tdhP6`h`i9Xi2W31S(X;FhMT-vglSk)EjJtuA(ep4YhOb&HVQ5NqW!6pL=d| z&CDpuqm>7R56==~2?+#1Ya3B#wfKggp9F}2YUj#0b%?K+mEO=mMH|oH723H<+~8PM zmuFjX+wSNC>fVYKA9C1B4VH+9%DZyjouRJ*fHr;o?AIXvI}-%pv0|(%M#Y1-T{X|{ z4*hzZlC1K@QE2hllI8KpS=J=f0C?V~pg2w$y>`dQm1wb_ftRLBZ4x}t>5fvpnK8Oh z`F;7l1H-pvg86s}*F+yA)6%ETSHSnl94Q)`ANl}#aKdjjZ<(T`UKFx~!G$ti?0F^s z5OwLn8$YG`^%2(bV4%KcY%-uz3H7#i#>WuKgAu>rGA0t7``tJ9u8tWo`YDM_+Sc^P zH~v)5Olw&w7n?JpD{8CIQpWX)86QQs=l9P5l1a7pwrP_Tc=-P!oBT`pvwFk&Oko11 zQ~$V~rkD#N7o1C0ak_74%$Vl$3=JrPN{=ZhAjCRoj-3td+O_PK!mMH0^~yHo7dGmf#!ED}!bl@} z4=~03cHGVDg0|sj;+Y5}`&gwGctLmYPqW=oP$G=KXIPJPo=~e`RakTHh4xko*>qeZP7lz z@F5b1wx1;IJS2Ym;2Uk7LS;2I!wk~g=7y^?xH|3!8OBE>emsdfiY~L# zT|Zop6vCQW>uVW!P`wCHAqK}?{qy;q<&LGN6&on(1V|A+C8A^WH#yfM{t4sx@Gkl^ z<5aB^^2XBE=*3Plj|rn1(j?0}DK=c2=v&a3FV$+K2Ur=d{0k1 z5vy02oi@e2fJ52$s}!2exRN;t(8r+zlir}(k34j+V6LF*{Ij5v-D~@cR*mD=4u%No zAesCk7?5OQqBNcPeBQvo^WI*h8!}~-eJC%IkjFq2vRT-!L~_Vb8#$If<@lpc?LI!K zJ_K-@8%$m9e@*WB1Ib&^BSpe@-)=!z5QsOMrJODrg&Q3xqMYH7Z%s|y%G&-43T~f+ z0!8r+?|A`zHX)OruPcupaid=E*hsZKYDwn4lWtr2BcB}JtSQWroZsFtJa1*;RP>2h z=2T!fj;=P2iL8ex&4+?c`v>PC0?3pX?0_Z1B6yoOf2a*r^u1w$|33*3e%z(!9X-bW zEf%1ldKR}TWdiY#I?-`-eEAl*pAJRpQ%Z*>&Dc{E4BhBg^LY*7lSry^RRDzediGDr zzmm(zOB6iWb-=3GG1!Z)r-C`3^bKfHdvTd;H9q`RO+{Q*PRa`Ih-2SUt^{m7D1jG8 z7eCl4=PzutU^y_0?=xw!%#9Grfl9BSk!yw*T~{kM{0C0+!_Y6bK8K2NfZ3R`sy-Q_ z((zj#7;SqGiDKpPAVbG>>Sm$ROg))ZJ;_4o(u^<;x4gzwH8tWrCbK0!ODZO`iTE;> z-l7&d!H{wMX-ISmnm2IbH<$Ug5C_IOL?I*5*3gMj$q<_XCKlj9qjREfWTDsl>Eg2> ziVXeGw_o+M~k3dcHQXpC027cYG_z;|+kv0+{aquakP-j^goL zv%LkZ@*};-Z^$c&vo6~IRMfbA;2-@c&0H z?<^>d@ZZCTt^WukbkF_@Bj_c`NsAQP1?7THbL^iA7wIeZB9Qb63)n{gp60(x4JdB- zTH;U{54}E4|K(lmfZo78tMH3%4IC9esCVKy)8n*xa8PsG5#s^YZ_Xs4Fpy}CR1~aY zTg%w=kiH0%cJ4%f(@Rdcv7^Q-;QXJW3N;<#qE>aI!5IUTyEYAW*_hb*8`J zKyfAerQp-OL!|721s?o-FGH;7AyP4*#!sn9_*Rn`ch>Ba0+yY6!q(oMOUww$%6wwxVkYVx3x)--sqYji{}Xr zI8^Yc#2m5wd-=iepnLTBGi_7hYw%MxSD?}g^#H?t*57*s&5uojL&@rn3V)6;|K1mT z4?v0-1O%aKrCRf~tDlEcJBEi*fhaua+c%_L%T zg{+8uw6xHQtn4>mC8DJ1Egf*$v4SVbzKz%Nd$AG#HG@`;Ak2kz<1LJdi=_m|u1CEb>4acF1? z3DfWXvx?(|@42T=h&Rc;m!WIEx_FIRWA>y2v+;4V_~1g<3p3No9cQSKB(lcR?nG4i z*A_`+yfyn!ZJLU%Mqt$+PHbj5u2^`jWKr7sqh0MIrP*f7X#5WWr}stuznmzC$|q9s zw_o^?kpABk@R<7U??2f(W@D+SKlOg=00w2^dnv_kvaVktv98{FZk*hv#vDj=7*EA@u|aB0aBanvVpov+8^%SHq;Sc@Rb zlH?2BXfhwmOYdqY5L_GTA(v>eZ!hqEOT|+Qe>iJ^zZmNTk#49!r?n^PtE=V?Wd*DU+++wyV z0~egTvUOe}`&j$MxPK#EEZ4SMhn~q}>T0=p^rZ8^^b@;y;a? zUybPg3=9;k&a%FJ8Y><}cp1#p&X7)c-jrl`=*x&j6rq1chb!wr;?}?uB3O&+Ly{gX z$%YFB<*3EKA-}b;-o_uv$)C|}EbO=Bh~q7Yhy2!;sa#%oQ=AdL!Tq4{@4f)-VS7iL zWz-v|pQE$3@Y}dnE@x3p^i&~wSEFIRhkhC6GMPC25 zy0@do42J=aQytT9hYuJ7{-Y#So`-LlW`q(8yLAi2A@!zuVgV~96~`?c?IP&w(XJeX zf)jA*nO9)rXaVT0Uu%`(WI{VT4`Uy4#Wv7a7umO0wcm$Pqo$AT8p39zHzBr@?QWi8 zlUh$ep_1Y53V5;Eu4s%rs#Jr<#t_XeAXpFxa!1sr-t{%v&W-LMi}Q!14taHzK8)x{e^JF^J$Anp<^UhZzd@)|v=y zNwfV#E4UJ->V8OGJ+E6gQt0yr^%IDuso7tp7S63r54?#=1m*Jhed_o$7&Ru|ZV-*l z44Q_<3TKBMcj0u$3&oh(#C@kQNUM;`ox}AfLB=jCsT*qQnw&dt7SoT5#`p}hDFq}? z$@^M-vq$IoY%Gk6ds4tlFUAUDIai^WuYQjEHrr|vv5lGr2A!+);+BJl;4R;KWy|yX zciUQ_+9K*95hbgJvGOR?WJj86Bi^XNl_YL(g6U|osobhJw}P2|bIB0+s0UYQpHH8m z-T5B}hPo=r`5E_my<-L zANHXJVaSUWQd?)M@Uo}-LqDzMwtGGe)l6ObC`9-+tu6t*XcHiF9UA3SOyeg5h)$mc zr|mye$kNk6UqpYa#sniahUrFZsy%_YphruvOPTYm=fx~>$$qtT_wyoH!CiSKo()vc z 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 literal 0 HcmV?d00001 diff --git a/html/WindupCoreDevelopmentGuide.html b/html/WindupCoreDevelopmentGuide.html index 18be25a16d..ca9d7efbf6 100644 --- a/html/WindupCoreDevelopmentGuide.html +++ b/html/WindupCoreDevelopmentGuide.html @@ -757,7 +757,7 @@

How can you help?

Write a short description of these problem migration areas.

  • -

    Write a brief guide describing how to solve the problem migration areas.

    +

    Write a brief overview describing how to solve the problem migration areas.

  • @@ -766,20 +766,36 @@

    How can you help?

  • -

    Write an Windup rule to automate the migration process.

    +

    You can contribute Windup rules.

    • +

      Write a Windup rule add-on to automate a migration process.

      +
    • +
    • Create a test for the new rule.

    • +
    • +

      For details, see the Windup Rules Development Guide.

      +
  • -

    You can contribute Windup rules. For details, see the Windup Rules Development Guide.

    +

    You can also contribute to the project source code.

    +
    +
      +
    • +

      Create a core rule.

    • -

      You can also contribute to the project source code. See the Windup Core Development Guide for information about how to configure your environment and set up the project.

      +

      Improve performance or efficiency.

      +
    • +
    • +

      See the_Windup Core Development Guide_ for information about how to configure your environment and set up the project.

      +
    • +
    +
  • @@ -788,14 +804,27 @@

    How can you help?

    - +
    -

    For additional information, refer to the Javadoc.

    +

    For additional information, refer to the Windup Javadoc.

    @@ -989,7 +1018,7 @@

    Create a JIRA Issue

    If you download and install the latest distribution of Windup from the JBoss Nexus repository, WINDUP_HOME refers to the windup-distribution-2.0.0.VERSION folder extracted from the downloaded ZIP file.

  • -

    If you build Windup from GitHub source, WINDUP_HOME refers to the windup-distribution-2.0.0-<version> folder extracted from the Windup source dist/target/windup-distribution-2.0.0-VERSION.zip file.

    +

    If you build Windup from GitHub source, WINDUP_HOME refers to the windup-distribution-2.0.0-VERSION folder extracted from the Windup source dist/target/windup-distribution-2.0.0-VERSION.zip file.

  • @@ -1539,7 +1568,10 @@

    Fork and Clone the Windup Reposit

    Build Windup from Source

    This information is provided for new developers who plan to contribute code -to the Windup open source project. If you use Linux and are an experienced Windup developer looking for a quick refresher, jump to: Quick Build Review for Experienced Windup Developers.

    +to the Windup open source project. This section describes how to build Windup from source and how to extract the Windup distribution that is created during the build process.

    +
    +
    +

    If you use Linux and are an experienced Windup developer looking for a quick refresher, jump to: Quick Build Review for Experienced Windup Developers.

    System Requirements to Build Windup

    @@ -1673,6 +1705,9 @@

    Build Windup Using Maven Command

    Build Windup Using Red Hat JBoss Developer Studio or Eclipse

    +
    +

    If you prefer, you can use an IDE to build Windup.

    +
    1. @@ -1708,6 +1743,15 @@

      Build Win

    +

    Extract the Windup Distribution Source File

    +
    +

    The build process creates a windup-distribution-2.0.0-SNAPSHOT-offline.zip file in the Windup source dist/target/ directory.

    +
    +
    +

    Unzip the dist/target/windup-distribution-2.0.0-SNAPSHOT-offline.zip file into a directory of your choice.

    +
    +
    +

    Quick Build Review for Experienced Windup Developers

    @@ -1724,195 +1768,15 @@

    Quick Build Review

    Execute Windup (Built from Windup Source)

    -

    These instructions are for Windup core developers who are new to the project and unfamiliar with the procedures to execute Windup.

    -
    -
    -

    Experienced users may jump to Quick Execute Review for Experienced Windup Users.

    -
    -
    - - - - - -
    -
    Note
    -
    -If you used previous versions of Windup, delete the ${user.home}/.forge/addons/ directory. Otherwise you may see errors like the following when you execute Windup: - Command: windup-migrate-app was not found -
    -
    -
    -

    Unzip the Windup Distribution

    -
    -
      -
    1. -

      Follow the procedures to build Windup from source. This creates a windup-distribution-2.0.0-SNAPSHOT-offline.zip file in the Windup source dist/target directory. Note, the version may be different than the one used in these instructions.

      -
    2. -
    3. -

      Unzip the dist/target/windup-distribution-2.0.0-SNAPSHOT-offline.zip ZIP file.

      -
    4. -
    -
    -
    -
    -

    Run Windup

    -
    -
      -
    1. -

      Open a terminal and navigate to the unzipped windup-distribution-2.0.0-SNAPSHOT/ directory.

      -
    2. -
    3. -

      Type the following command to start Windup:

      -
      -
      -
      For Linux:     $ bin/windup
      -For Windows:   > bin\windup.bat
      -
      -
      -
    4. -
    5. -

      You are presented with the following prompt.

      -
      -
      -
      Using Windup at /home/username/windup/dist/target/windup-distribution-2.0.0-SNAPSHOT
      -
      - _       ___           __
      -| |     / (_)___  ____/ /_  ______
      -| | /| / / / __ \/ __  / / / / __ \
      -| |/ |/ / / / / / /_/ / /_/ / /_/ /
      -|__/|__/_/_/ /_/\__,_/\__,_/ .___/
      -                          /_/
      -
      -JBoss Windup, version [ 2.0.0-SNAPSHOT ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ]
      -
      -[windup-distribution-2.0.0-SNAPSHOT]$
      -
      -
      -
    6. -
    7. -

      The syntax to evaluate an application using the Windup tool requires that you specify the location of the input archive or folder, the location of a folder to contain the output reporting information, and the application packages to evaluate. At the prompt, type:

      -
      -
      -
      windup-migrate-app --input INPUT_ARCHIVE_OR_FOLDER --output OUTPUT_REPORT_DIRECTORY --packages PACKAGE_1 PACKAGE_2 PACKAGE_N
      -
      -
      -
      -

      Where:

      +

      These instructions are for Windup core developers who plan to build Windup from source to test code updates.

      • -

        INPUT_ARCHIVE_OR_FOLDER is the fully qualified application archive or source path

        +

        If you are new to the project and not familiar with the procedures to execute Windup, see Execute Windup. It contains complete step-by-step instructions to execute Windup and also provides command line examples.

      • -

        OUTPUT_REPORT_DIRECTORY is the fully qualified path to the folder that will contain the the report information produced by Windup.

        -
      • -
      • -

        PACKAGE_1, PACKAGE_2, PACKAGE_N are the packages to be evaluated by Windup.

        -
        -

        See Windup Command Examples below for concrete examples of Windup commands using source code directories and archives located in the Windup GitHub repository.

        -
        -
      • -
      -
      -
    8. -
    9. -

      You should see the following result upon completion of the command:

      -
      -
      -
      ***SUCCESS*** Windup execution successful!
      -
      -
      -
    10. -
    11. -

      To exit Windup, type

      -
      -
      -
      exit
      -
      -
      -
    12. -
    13. -

      Open the OUTPUT_REPORT_DIRECTORY/index.html file in a browser to access the report. -The following subdirectories in the OUTPUT_REPORT_DIRECTORY contain the supporting information for the report:

      -
      -
      -
      OUTPUT_REPORT_DIRECTORY
      -    graph/
      -    renderedGraph/
      -    reports/
      -    stats/
      -    index.html
      -
      -
      -
    14. -
    15. -

      For details on how to evaluate the report data, see Review the Report.

      -
    16. -
    -
    -
    -
    -

    Run Windup in Batch Mode (for a shell script)

    -
    -
      -
    1. -

      Open a terminal and navigate to the unzipped windup-distribution-2.0.0-SNAPSHOT/ directory.

      -
    2. -
    3. -

      Type the following command to run Windup in batch mode:

      -
      -
      -
      For Linux:     $ bin/windup --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      -For Windows:   > bin\windup.bat --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      -
      -
      -
    4. -
    -
    -
    -
    -

    Windup Help

    -
    -

    To see the list of available parameters for the windup-migrate-app command, execute the following command in the Windup prompt:

    -
    -
    -
    -
    man windup-migrate-app
    -
    -
    -
    -
    -

    Windup Command Examples

    -
    -

    The following Windup command examples report against applications located in the Windup source test-files directory.

    -
    -
    -
    Source Code Example
    -
    -

    The following command runs against the seam-booking-5.2 application source code. It evaluates all org.jboss.seam packages and creates a folder named 'seam-booking-report' in the /home/username/windup-reports/ directory to contain the reporting output.

    -
    -
    -
    -
    windup-migrate-app --input /home/username/windup-source/test-files/seam-booking-5.2/ --output /home/username/windup-reports/seam-booking-report --packages org.jboss.seam
    -
    -
    -
    -
    -
    Archive Example
    -
    -

    The following command runs against the jee-example-app-1.0.0.ear EAR archive. It evaluates all com.acme and org.apache packages and creates a folder named 'jee-example-app-1.0.0.ear-report' in the /home/username/windup-reports/ directory to contain the reporting output.

    -
    -
    -
    -
    windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache
    -
    -
    -
    -
    -
    -

    Quick Execute Review for Experienced Windup Users

    +

    Experienced users who need a refresher can follow the steps below.

    mkdir tmp
    @@ -1925,44 +1789,18 @@ 

    Quick Execute Review ## Execute Windup $ windup-migrate-app --input /home/username/work/Migration/TestApps/_apps/BradApp --output Report --packages org com net -## Exit forge +## Exit Windup $ exit ## View the Report firefox Report/index.html

    + +
    -
    -

    Execute Windup as an Installed Forge Add-on

    -
    -
    -
    ## Install Forge
    -wget -O forge.zip https://repository.jboss.org/nexus/service/local/repositories/releases/content/org/jboss/forge/forge-distribution/2.12.0.Final/forge-distribution-2.12.0.Final-offline.zip
    -unzip forge.zip
    -mv forge-distribution-2.12.0.Final Forge
    -
    -## Configure Forge and Install Windup
    -export FORGE_HOME=./Forge/
    -export PATH=$PATH:$FORGE_HOME/bin
    -rm -rf ~/.forge/addons/
    -forge -b --install org.jboss.windup:ui,2.0.0-SNAPSHOT
    -forge -b --install org.jboss.windup.rules.apps:rules-java,2.0.0-SNAPSHOT
    -forge -b --install org.jboss.windup.rules.apps:rules-java-ee,2.0.0-SNAPSHOT
    -
    -## Start Forge
    -forge
    -
    -## Execute Windup
    -$ windup-migrate-app --input /home/username/work/Migration/TestApps/_apps/BradApp --output Report --packages org com net
    -
    -## Exit forge
    -$ exit
    -
    -## View the Report
    -firefox Report/index.html
    -
    -
    +
    +

    Unresolved directive in Windup-Core-Development-Guide.adoc - include::Execute-Windup[tabsize=4]

    @@ -2357,32 +2195,51 @@

    What are Story Points?

    How to Estimate Story Points in a Rule

    -

    TODO: TBD.

    +

    Estimating story points for a rule can be tricky. The following are general guidelines or suggestions to use when estimating the level of effort required for a rule.

    -
    -

    Estimating story points for a rule can be tricky. The following are 'rules of thumb' or suggestions to use when estimating the level of effort required for a rule.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    Level of EffortStory PointsDescription

    Lift and Shift

    0

    The code or file is standards-based and requires no effort.

    Mapped

    1- 2 per file

    There is a standard mapping algorithm to port the code or file. The number of story points required is small, but dependent on the number of files to port.

    Custom

    5 - 20 per change or component

    +

    The number of story points required to modify and rewrite code depends on the complexity of the change, the number of unknown imports, the size of the files, and the number of components. The following are examples of how to estimate story points.

    • -

      The level of effort required for "Lift and Shift", which basically means the code or file is standards-based and can be ported to the new environment with no changes, would be '0' story points.

      -
    • -
    • -

      Changing a parameter name or value of units might be '2' story points. -This could contain relative examples like:

      -
    • -
    • -

      Porting a web page (or similar concept) from one web framework to another depends on the complexity and the number of components. You could estimate '20' story points per component.

      +

      Port MyBatis to JPA: '20' story points per query.

    • -

      Porting MyBatis to JPA: '20' story points per query.

      -
    • -
    • -

      When you don’t know if it will need a migration: Could depend on number of unknown imports, size -of the file, …​

      +

      Port a web page from one web framework to another depends on the complexity and the number of components involved in the migration. You could estimate '20' story points per component.

    -
    +
    @@ -2784,7 +2641,7 @@
    Create a Maven Project
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> - <version.windup>2.0.0.Beta3</version.windup> + <version.windup>2.0.0.VERSION</version.windup> <version.forge>2.12.1.Final</version.forge> </properties>
    @@ -4428,7 +4285,7 @@

    Examples of brea

    Existing operations:

    -

    Existing operations

    +

    Existing operations

    @@ -4889,7 +4746,7 @@

    Windup Models

    The complete and up-to-date list of models is in Javadoc.

    -

    Windup Models Graphic

    +

    Windup Models Graphic

    Meta Models

    @@ -5579,7 +5436,7 @@

    Publish the HTML doc

    If the directory does not yet exist, create a docs/WINDUP-RELEASE-html/ directory.

    -
    mkdir -p docs/2.0.0.Beta6/html (if it doesn't exist!)
    +
    mkdir -p docs/2.0.0.VERSION/html (if it doesn't exist!)
    @@ -5587,7 +5444,7 @@

    Publish the HTML doc

    Copy any new images, stylesheets, and html files from windup-documentation:

    -
    cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.Beta6/html
    +
    cp ../windup-documentation/html/*.html ../windup-documentation/*.css ../windup-documentation/images/* docs/2.0.0.VERSION/html
    @@ -5616,7 +5473,7 @@

    Publish the HTML doc

  • -

    View the documentation at http://windup.github.io/windup/docs/2.0.0.Beta6/html/WindupUserGuide.html

    +

    View the documentation at http://windup.github.io/windup/docs/2.0.0.VERSION/html/WindupUserGuide.html

  • @@ -5820,7 +5677,7 @@

    Reporting Terms

    diff --git a/html/WindupRulesDevelopmentGuide.html b/html/WindupRulesDevelopmentGuide.html index 7039de36f2..1f32647ef6 100644 --- a/html/WindupRulesDevelopmentGuide.html +++ b/html/WindupRulesDevelopmentGuide.html @@ -787,7 +787,7 @@

    How can you help?

    Write a short description of these problem migration areas.

  • -

    Write a brief guide describing how to solve the problem migration areas.

    +

    Write a brief overview describing how to solve the problem migration areas.

  • @@ -796,20 +796,36 @@

    How can you help?

    Try Windup on your application. Be sure to report any issues you encounter.

  • -

    Write an Windup rule to automate the migration process.

    +

    You can contribute Windup rules.

    • +

      Write a Windup rule add-on to automate a migration process.

      +
    • +
    • Create a test for the new rule.

    • +
    • +

      For details, see the Windup Rules Development Guide.

      +
  • -

    You can contribute Windup rules. For details, see the Windup Rules Development Guide.

    +

    You can also contribute to the project source code.

    +
    +
      +
    • +

      Create a core rule.

      +
    • +
    • +

      Improve performance or efficiency.

    • -

      You can also contribute to the project source code. See the Windup Core Development Guide for information about how to configure your environment and set up the project.

      +

      See the_Windup Core Development Guide_ for information about how to configure your environment and set up the project.

      +
    • +
    +
  • @@ -818,14 +834,27 @@

    How can you help?

    - +
    @@ -961,7 +990,7 @@

    Install Windup

    1. -

      Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently windup-distribution-2.0.0.Beta6.

      +

      Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently windup-distribution-2.0.0.Beta7.

    2. Extract the ZIP file in to a directory of your choice.

      @@ -983,8 +1012,18 @@

      Install Windup

    Execute Windup

    -
    -

    These instructions are for users who run Windup using the tool extracted from the ZIP download.

    +
    + + + + + +
    +
    Note
    +
    +If you used previous versions of Windup, delete the ${user.home}/.forge/addons/ directory. Otherwise you may see errors like the following when you execute Windup: + Command: windup-migrate-app was not found +

    Prerequisites

    @@ -997,7 +1036,8 @@

    Prerequisites

    Windup requires that you specify the fully qualified path of the application archive or folder you plan to migrate. This is passed using the --input argument on the command line.

  • -

    You must also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. This path is passed using the --output argument on the command line.

    +

    You also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. If the folder exists, it is deleted and recreated by Windup, so be careful not to specify a directory that contains important information! +This path is passed using the --output argument on the command line.

  • You must also provide a list of the application packages to be evaluated.

    @@ -1041,7 +1081,7 @@

    Start Windup

    You are presented with the following prompt.

    -
    Using Windup at /home/username/windup-distribution-VERSION
    +
    Using Windup at WINDUP_HOME
     
      _       ___           __
     | |     / (_)___  ____/ /_  ______
    @@ -1050,9 +1090,9 @@ 

    Start Windup

    |__/|__/_/_/ /_/\__,_/\__,_/ .___/ /_/ -JBoss Windup, version [ VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] +JBoss Windup, version [ 2.0.0-VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] -[windup-distribution-VERSION]$
    +[windup-distribution-2.0.0-VERSION]$
  • @@ -1136,6 +1176,28 @@

    Start Windup

    +

    Run Windup in Batch Mode

    +
    +

    Windup can be also executed in batch mode within a shell or batch script using the --evaluate argument as follows.

    +
    +
    +
      +
    1. +

      Open a terminal and navigate to the WINDUP_HOME directory.

      +
    2. +
    3. +

      Type the following command to run Windup in batch mode:

      +
      +
      +
      For Linux:     $ bin/windup --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      +For Windows:   > bin\windup.bat --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      +
      +
      +
    4. +
    +
    +
    +

    Windup Help

    To see the list of available parameters for the windup-migrate-app command, execute the following command in the Windup prompt:

    @@ -1174,6 +1236,18 @@
    Archive Example
    +
    Windup Batch Example
    +
    +

    The following Windup batch command runs against the jee-example-app-1.0.0.ear EAR archive. It evaluates all com.acme and org.apache packages and creates a folder named 'jee-example-app-1.0.0.ear-report' in the /home/username/windup-reports/ directory to contain the reporting output.

    +
    +
    +
    +
    For Linux: $ bin/windup --evaluate "windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache"
    +For Windows: > bin\windup.bat --evaluate "windup-migrate-app --input \windup-source\test-files\jee-example-app-1.0.0.ear --output \windup-reports\jee-example-app-1.0.0.ear-report --packages com.acme org.apache
    +
    +
    +
    +
    Windup Quickstart Examples

    For more concrete examples, see the Windup quickstarts located on GitHub here: https://github.com/windup/windup-quickstarts. If you prefer, you can download the 2.0.0.Alpha1 release ZIP or TAR distribution of the quickstarts.

    @@ -1710,32 +1784,51 @@

    What are Story Points?

    How to Estimate Story Points in a Rule

    -

    TODO: TBD.

    +

    Estimating story points for a rule can be tricky. The following are general guidelines or suggestions to use when estimating the level of effort required for a rule.

    -
    -

    Estimating story points for a rule can be tricky. The following are 'rules of thumb' or suggestions to use when estimating the level of effort required for a rule.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    Level of EffortStory PointsDescription

    Lift and Shift

    0

    The code or file is standards-based and requires no effort.

    Mapped

    1- 2 per file

    There is a standard mapping algorithm to port the code or file. The number of story points required is small, but dependent on the number of files to port.

    Custom

    5 - 20 per change or component

    +

    The number of story points required to modify and rewrite code depends on the complexity of the change, the number of unknown imports, the size of the files, and the number of components. The following are examples of how to estimate story points.

    • -

      The level of effort required for "Lift and Shift", which basically means the code or file is standards-based and can be ported to the new environment with no changes, would be '0' story points.

      +

      Port MyBatis to JPA: '20' story points per query.

    • -

      Changing a parameter name or value of units might be '2' story points. -This could contain relative examples like:

      -
    • -
    • -

      Porting a web page (or similar concept) from one web framework to another depends on the complexity and the number of components. You could estimate '20' story points per component.

      -
    • -
    • -

      Porting MyBatis to JPA: '20' story points per query.

      -
    • -
    • -

      When you don’t know if it will need a migration: Could depend on number of unknown imports, size -of the file, …​

      +

      Port a web page from one web framework to another depends on the complexity and the number of components involved in the migration. You could estimate '20' story points per component.

    -
    +
    @@ -2137,7 +2230,7 @@
    Create a Maven Project
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> - <version.windup>2.0.0.Beta3</version.windup> + <version.windup>2.0.0.VERSION</version.windup> <version.forge>2.12.1.Final</version.forge> </properties>
    @@ -3783,7 +3876,7 @@

    Windup Models

    The complete and up-to-date list of models is in Javadoc.

    -

    Windup Models Graphic

    +

    Windup Models Graphic

    Meta Models

    @@ -3820,7 +3913,7 @@

    Custom Models (coming from Addons) diff --git a/html/WindupUserGuide.html b/html/WindupUserGuide.html index fedd433af6..11f3b4304d 100644 --- a/html/WindupUserGuide.html +++ b/html/WindupUserGuide.html @@ -739,7 +739,7 @@

    How can you help?

    Write a short description of these problem migration areas.

  • -

    Write a brief guide describing how to solve the problem migration areas.

    +

    Write a brief overview describing how to solve the problem migration areas.

  • @@ -748,20 +748,36 @@

    How can you help?

    Try Windup on your application. Be sure to report any issues you encounter.

  • -

    Write an Windup rule to automate the migration process.

    +

    You can contribute Windup rules.

    • +

      Write a Windup rule add-on to automate a migration process.

      +
    • +
    • Create a test for the new rule.

    • +
    • +

      For details, see the Windup Rules Development Guide.

      +
  • -

    You can contribute Windup rules. For details, see the Windup Rules Development Guide.

    +

    You can also contribute to the project source code.

    +
    +
      +
    • +

      Create a core rule.

    • -

      You can also contribute to the project source code. See the Windup Core Development Guide for information about how to configure your environment and set up the project.

      +

      Improve performance or efficiency.

      +
    • +
    • +

      See the_Windup Core Development Guide_ for information about how to configure your environment and set up the project.

      +
    • +
    +
  • @@ -770,14 +786,27 @@

    How can you help?

    - +
    @@ -913,7 +942,7 @@

    Install Windup

    1. -

      Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently windup-distribution-2.0.0.Beta6.

      +

      Download the latest Windup ZIP distribution from http://repository.jboss.org/nexus/content/groups/public/org/jboss/windup/windup-distribution. This is currently windup-distribution-2.0.0.Beta7.

    2. Extract the ZIP file in to a directory of your choice.

      @@ -935,8 +964,18 @@

      Install Windup

    Execute Windup

    -
    -

    These instructions are for users who run Windup using the tool extracted from the ZIP download.

    +
    + + + + + +
    +
    Note
    +
    +If you used previous versions of Windup, delete the ${user.home}/.forge/addons/ directory. Otherwise you may see errors like the following when you execute Windup: + Command: windup-migrate-app was not found +

    Prerequisites

    @@ -949,7 +988,8 @@

    Prerequisites

    Windup requires that you specify the fully qualified path of the application archive or folder you plan to migrate. This is passed using the --input argument on the command line.

  • -

    You must also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. This path is passed using the --output argument on the command line.

    +

    You also specify the fully qualified path to a folder that will contain the resulting report information. If the folder does not exist, it is created by Windup. If the folder exists, it is deleted and recreated by Windup, so be careful not to specify a directory that contains important information! +This path is passed using the --output argument on the command line.

  • You must also provide a list of the application packages to be evaluated.

    @@ -993,7 +1033,7 @@

    Start Windup

    You are presented with the following prompt.

    -
    Using Windup at /home/username/windup-distribution-VERSION
    +
    Using Windup at WINDUP_HOME
     
      _       ___           __
     | |     / (_)___  ____/ /_  ______
    @@ -1002,9 +1042,9 @@ 

    Start Windup

    |__/|__/_/_/ /_/\__,_/\__,_/ .___/ /_/ -JBoss Windup, version [ VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] +JBoss Windup, version [ 2.0.0-VERSION ] - JBoss, by Red Hat, Inc. [ http://windup.jboss.org ] -[windup-distribution-VERSION]$
    +[windup-distribution-2.0.0-VERSION]$
  • @@ -1088,6 +1128,28 @@

    Start Windup

    +

    Run Windup in Batch Mode

    +
    +

    Windup can be also executed in batch mode within a shell or batch script using the --evaluate argument as follows.

    +
    +
    +
      +
    1. +

      Open a terminal and navigate to the WINDUP_HOME directory.

      +
    2. +
    3. +

      Type the following command to run Windup in batch mode:

      +
      +
      +
      For Linux:     $ bin/windup --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      +For Windows:   > bin\windup.bat --evaluate "windup-migrate-app --input INPUT_ARCHIVE --output OUTPUT_REPORT --packages PACKAGE_1 PACKAGE_2 PACKAGE_N"
      +
      +
      +
    4. +
    +
    +
    +

    Windup Help

    To see the list of available parameters for the windup-migrate-app command, execute the following command in the Windup prompt:

    @@ -1126,6 +1188,18 @@
    Archive Example
    +
    Windup Batch Example
    +
    +

    The following Windup batch command runs against the jee-example-app-1.0.0.ear EAR archive. It evaluates all com.acme and org.apache packages and creates a folder named 'jee-example-app-1.0.0.ear-report' in the /home/username/windup-reports/ directory to contain the reporting output.

    +
    +
    +
    +
    For Linux: $ bin/windup --evaluate "windup-migrate-app --input /home/username/windup-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-reports/jee-example-app-1.0.0.ear-report --packages com.acme org.apache"
    +For Windows: > bin\windup.bat --evaluate "windup-migrate-app --input \windup-source\test-files\jee-example-app-1.0.0.ear --output \windup-reports\jee-example-app-1.0.0.ear-report --packages com.acme org.apache
    +
    +
    +
    +
    Windup Quickstart Examples

    For more concrete examples, see the Windup quickstarts located on GitHub here: https://github.com/windup/windup-quickstarts. If you prefer, you can download the 2.0.0.Alpha1 release ZIP or TAR distribution of the quickstarts.

    @@ -1528,7 +1602,7 @@

    Reporting Terms

    diff --git a/scripts/windupDocUpdate.sh b/scripts/windupDocUpdate.sh index 0359a2bcfc..2b7a26e22c 100755 --- a/scripts/windupDocUpdate.sh +++ b/scripts/windupDocUpdate.sh @@ -114,6 +114,7 @@ cp ../windup.wiki/Install-and-Configure-Maven.asciidoc docs/Install-and-Configur cp ../windup.wiki/Dev-Get-the-Windup-Source-Code.asciidoc docs/Dev-Get-the-Windup-Source-Code.adoc cp ../windup.wiki/Dev-Build-Windup-from-Source.asciidoc docs/Dev-Build-Windup-from-Source.adoc cp ../windup.wiki/Dev-Execute-Windup-Built-from-Source.asciidoc docs/Dev-Execute-Windup-Built-from-Source.adoc +cp ../windup.wiki/Execute-Windup.asciidoc docs/Execute-Windup.adoc cp ../windup.wiki/Review-the-Report.asciidoc docs/Review-the-Report.adoc ## Understand the Rule Processing

    Try Windup on your application. Be sure to report any issues you encounter.