From b4edf6b1eaf8fb67458e69caf8996dc5ae4ee50d Mon Sep 17 00:00:00 2001 From: "PMD CI (pmd-bot)" Date: Sat, 14 Nov 2020 09:20:07 +0000 Subject: [PATCH] Update documentation manual job execution in docker --- 404.html | 1440 ++ css/bootstrap.min.css | 5 + css/customstyles.css | 1179 ++ css/font-awesome.min.css | 4 + css/fonts/FontAwesome.otf | Bin 0 -> 93888 bytes css/fonts/fontawesome-webfont.eot | Bin 0 -> 60767 bytes css/fonts/fontawesome-webfont.svg | 565 + css/fonts/fontawesome-webfont.ttf | Bin 0 -> 122092 bytes css/fonts/fontawesome-webfont.woff | Bin 0 -> 71508 bytes css/fonts/fontawesome-webfont.woff2 | Bin 0 -> 56780 bytes css/lavish-bootstrap.css | 5898 +++++++ css/modern-business.css | 93 + css/pmd-customstyles.css | 86 + css/printstyles.css | 160 + css/syntax.css | 60 + css/theme-blue.css | 103 + css/theme-green.css | 99 + feed.xml | 13 + fonts/FontAwesome.otf | Bin 0 -> 85908 bytes fonts/fontawesome-webfont.eot | Bin 0 -> 56006 bytes fonts/fontawesome-webfont.svg | 520 + fonts/fontawesome-webfont.ttf | Bin 0 -> 112160 bytes fonts/fontawesome-webfont.woff | Bin 0 -> 65452 bytes fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes fonts/glyphicons-halflings-regular.svg | 288 + fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes images/credits/MD_logo4c_120x120.png | Bin 0 -> 2406 bytes images/credits/ae-logo.gif | Bin 0 -> 4060 bytes images/credits/atlassian-cenqua-logo.png | Bin 0 -> 6294 bytes images/credits/bb-pmd.png | Bin 0 -> 5860 bytes images/credits/cougaar.jpg | Bin 0 -> 5304 bytes images/credits/darpa.jpg | Bin 0 -> 7429 bytes images/credits/qasystems_logo.jpg | Bin 0 -> 3088 bytes images/credits/refactorit_logo.gif | Bin 0 -> 2535 bytes images/credits/yjp.gif | Bin 0 -> 6198 bytes images/designer/bottom-ui.png | Bin 0 -> 28418 bytes images/designer/demo.gif | Bin 0 -> 221144 bytes images/designer/designer-top.png | Bin 0 -> 79215 bytes images/designer/designer.png | Bin 0 -> 86884 bytes images/designer/empty-tests.png | Bin 0 -> 13562 bytes images/designer/export-example.gif | Bin 0 -> 185192 bytes images/designer/hover-selection.gif | Bin 0 -> 290234 bytes images/designer/parents-bar.gif | Bin 0 -> 27446 bytes images/designer/property-defs.png | Bin 0 -> 12588 bytes images/designer/property-edit.png | Bin 0 -> 23927 bytes images/designer/tests/add-violation.gif | Bin 0 -> 183286 bytes images/designer/tests/all-green.png | Bin 0 -> 7447 bytes images/designer/tests/export.gif | Bin 0 -> 281571 bytes images/designer/tests/failing.png | Bin 0 -> 7689 bytes images/designer/tests/import.gif | Bin 0 -> 251411 bytes images/designer/tests/load.gif | Bin 0 -> 87311 bytes images/designer/tests/property.gif | Bin 0 -> 164420 bytes images/designer/tests/toolbar.png | Bin 0 -> 10841 bytes images/designer/usages.gif | Bin 0 -> 72909 bytes images/devdocs/designer_screenshot.png | Bin 0 -> 22056 bytes images/favicon.ico | Bin 0 -> 1150 bytes images/logo/pmd_logo.jpg | Bin 0 -> 23211 bytes images/logo/pmd_logo.png | Bin 0 -> 11778 bytes images/logo/pmd_logo.svgz | Bin 0 -> 11112 bytes images/logo/pmd_logo_small.jpg | Bin 0 -> 7475 bytes images/logo/pmd_logo_small.png | Bin 0 -> 4671 bytes images/logo/pmd_logo_tiny.png | Bin 0 -> 1247 bytes images/pmd-logo-big.png | Bin 0 -> 11778 bytes images/pmd-logo-small.png | Bin 0 -> 2015 bytes images/pmd-logo.png | Bin 0 -> 5034 bytes .../userdocs/designer-overview-with-nums.png | Bin 0 -> 132019 bytes images/userdocs/designer-overview.png | Bin 0 -> 103341 bytes images/userdocs/screenshot_cpd.png | Bin 0 -> 116898 bytes index.html | 6362 ++++++++ js/customscripts.js | 55 + js/jekyll-search.js | 1 + js/jquery-ui.min.js | 6 + js/jquery.ba-throttle-debounce.min.js | 9 + js/jquery.localScroll.min.js | 7 + js/jquery.navgoco.min.js | 8 + js/jquery.scrollTo.min.js | 7 + js/jquery.shuffle.min.js | 1588 ++ js/mydoc_scroll.html | 1674 ++ js/toc.js | 82 + license.html | 1684 ++ licenses/LICENSE | 21 + licenses/LICENSE-BSD-NAVGOCO.txt | 27 + news.html | 1435 ++ news_archive.html | 1436 ++ pmd_about_help.html | 1460 ++ pmd_apex_metrics_index.html | 1514 ++ pmd_devdocs_building.html | 1530 ++ pmd_devdocs_development.html | 1478 ++ pmd_devdocs_experimental_ast_dump.html | 1548 ++ pmd_devdocs_how_pmd_works.html | 1494 ++ ...devdocs_major_adding_new_cpd_language.html | 1593 ++ pmd_devdocs_major_adding_new_language.html | 1640 ++ ...cs_major_adding_new_metrics_framework.html | 1493 ++ pmd_devdocs_pmdtester.html | 1462 ++ pmd_devdocs_roadmap.html | 1583 ++ pmd_devdocs_rule_deprecation_policy.html | 1552 ++ pmd_devdocs_writing_documentation.html | 1699 ++ pmd_java_metrics_index.html | 1793 +++ pmd_languages_jsp.html | 1493 ++ pmd_next_major_development.html | 2763 ++++ ...jectdocs_committers_main_landing_page.html | 1532 ++ ...docs_committers_merging_pull_requests.html | 1611 ++ pmd_projectdocs_committers_releasing.html | 1678 ++ pmd_projectdocs_credits.html | 1954 +++ pmd_projectdocs_faq.html | 1487 ++ pmd_projectdocs_trivia_meaning.html | 1456 ++ pmd_projectdocs_trivia_news.html | 1573 ++ pmd_projectdocs_trivia_products.html | 1504 ++ pmd_projectdocs_trivia_similarprojects.html | 1511 ++ pmd_release_notes.html | 1486 ++ pmd_release_notes_old.html | 13042 ++++++++++++++++ pmd_rules_apex.html | 1653 ++ pmd_rules_apex_bestpractices.html | 1952 +++ pmd_rules_apex_codestyle.html | 2525 +++ pmd_rules_apex_design.html | 2482 +++ pmd_rules_apex_documentation.html | 1513 ++ pmd_rules_apex_errorprone.html | 2166 +++ pmd_rules_apex_performance.html | 1709 ++ pmd_rules_apex_security.html | 2123 +++ pmd_rules_ecmascript.html | 1529 ++ pmd_rules_ecmascript_bestpractices.html | 1651 ++ pmd_rules_ecmascript_codestyle.html | 1793 +++ pmd_rules_ecmascript_errorprone.html | 1574 ++ pmd_rules_java.html | 2093 +++ pmd_rules_java_bestpractices.html | 3731 +++++ pmd_rules_java_codestyle.html | 4654 ++++++ pmd_rules_java_design.html | 3987 +++++ pmd_rules_java_documentation.html | 1763 +++ pmd_rules_java_errorprone.html | 5277 +++++++ pmd_rules_java_multithreading.html | 1949 +++ pmd_rules_java_performance.html | 2569 +++ pmd_rules_java_security.html | 1500 ++ pmd_rules_jsp.html | 1511 ++ pmd_rules_jsp_bestpractices.html | 1542 ++ pmd_rules_jsp_codestyle.html | 1459 ++ pmd_rules_jsp_design.html | 1550 ++ pmd_rules_jsp_errorprone.html | 1471 ++ pmd_rules_jsp_security.html | 1492 ++ pmd_rules_modelica.html | 1460 ++ pmd_rules_modelica_bestpractices.html | 1534 ++ pmd_rules_plsql.html | 1540 ++ pmd_rules_plsql_bestpractices.html | 1500 ++ pmd_rules_plsql_codestyle.html | 1784 +++ pmd_rules_plsql_design.html | 2424 +++ pmd_rules_plsql_errorprone.html | 1569 ++ pmd_rules_pom.html | 1473 ++ pmd_rules_pom_errorprone.html | 1540 ++ pmd_rules_scala.html | 1453 ++ pmd_rules_vf.html | 1473 ++ pmd_rules_vf_security.html | 1478 ++ pmd_rules_vm.html | 1494 ++ pmd_rules_vm_bestpractices.html | 1468 ++ pmd_rules_vm_design.html | 1582 ++ pmd_rules_vm_errorprone.html | 1468 ++ pmd_rules_xml.html | 1472 ++ pmd_rules_xml_errorprone.html | 1472 ++ pmd_rules_xsl.html | 1480 ++ pmd_rules_xsl_codestyle.html | 1463 ++ pmd_rules_xsl_performance.html | 1506 ++ pmd_userdocs_best_practices.html | 1475 ++ pmd_userdocs_cli_reference.html | 2094 +++ pmd_userdocs_configuring_rules.html | 1501 ++ pmd_userdocs_cpd.html | 2458 +++ pmd_userdocs_cpd_report_formats.html | 1652 ++ ...serdocs_extending_defining_properties.html | 1651 ++ ...userdocs_extending_designer_reference.html | 1690 ++ pmd_userdocs_extending_metrics_howto.html | 1776 +++ pmd_userdocs_extending_rule_guidelines.html | 1480 ++ pmd_userdocs_extending_testing.html | 1756 +++ ...userdocs_extending_writing_java_rules.html | 1608 ++ pmd_userdocs_extending_writing_pmd_rules.html | 1472 ++ ...serdocs_extending_writing_rules_intro.html | 1590 ++ ...serdocs_extending_writing_xpath_rules.html | 1870 +++ pmd_userdocs_extending_your_first_rule.html | 1579 ++ pmd_userdocs_incremental_analysis.html | 1555 ++ pmd_userdocs_installation.html | 1608 ++ pmd_userdocs_making_rulesets.html | 1558 ++ pmd_userdocs_report_formats.html | 1809 +++ pmd_userdocs_suppressing_warnings.html | 1659 ++ pmd_userdocs_tools.html | 1899 +++ pmd_userdocs_tools_ant.html | 1878 +++ pmd_userdocs_tools_ci.html | 1465 ++ pmd_userdocs_tools_gradle.html | 1508 ++ pmd_userdocs_tools_java_api.html | 1724 ++ pmd_userdocs_tools_maven.html | 1723 ++ report-examples/pmd-report-html.html | 67 + report-examples/pmd-report-json.json | 39 + report-examples/pmd-report-pmd-nicerhtml.html | 223 + report-examples/pmd-report-summaryhtml.html | 74 + report-examples/pmd-report-vbhtml.html | 42 + .../pmd-report-yahtml/Benchmarker.html | 15 + .../pmd-report-yahtml/RuleContext.html | 15 + report-examples/pmd-report-yahtml/index.html | 20 + search.json | 5838 +++++++ sitemap.xml | 675 + sitemap_generator.sh | 56 + tag_devdocs.html | 1949 +++ tag_extending.html | 1973 +++ tag_getting_started.html | 1907 +++ tag_languages.html | 1883 +++ tag_metrics.html | 1907 +++ tag_release_notes.html | 1883 +++ tag_rule_references.html | 1955 +++ tag_tools.html | 1919 +++ tag_troubleshooting.html | 1883 +++ tag_userdocs.html | 2039 +++ tooltips.html | 75 + tooltips.json | 29 + 210 files changed, 242199 insertions(+) create mode 100644 404.html create mode 100755 css/bootstrap.min.css create mode 100644 css/customstyles.css create mode 100644 css/font-awesome.min.css create mode 100644 css/fonts/FontAwesome.otf create mode 100644 css/fonts/fontawesome-webfont.eot create mode 100644 css/fonts/fontawesome-webfont.svg create mode 100644 css/fonts/fontawesome-webfont.ttf create mode 100644 css/fonts/fontawesome-webfont.woff create mode 100644 css/fonts/fontawesome-webfont.woff2 create mode 100644 css/lavish-bootstrap.css create mode 100755 css/modern-business.css create mode 100644 css/pmd-customstyles.css create mode 100644 css/printstyles.css create mode 100644 css/syntax.css create mode 100644 css/theme-blue.css create mode 100644 css/theme-green.css create mode 100644 feed.xml create mode 100644 fonts/FontAwesome.otf create mode 100644 fonts/fontawesome-webfont.eot create mode 100644 fonts/fontawesome-webfont.svg create mode 100644 fonts/fontawesome-webfont.ttf create mode 100644 fonts/fontawesome-webfont.woff create mode 100644 fonts/glyphicons-halflings-regular.eot create mode 100644 fonts/glyphicons-halflings-regular.svg create mode 100644 fonts/glyphicons-halflings-regular.ttf create mode 100644 fonts/glyphicons-halflings-regular.woff create mode 100644 fonts/glyphicons-halflings-regular.woff2 create mode 100644 images/credits/MD_logo4c_120x120.png create mode 100644 images/credits/ae-logo.gif create mode 100644 images/credits/atlassian-cenqua-logo.png create mode 100644 images/credits/bb-pmd.png create mode 100644 images/credits/cougaar.jpg create mode 100644 images/credits/darpa.jpg create mode 100644 images/credits/qasystems_logo.jpg create mode 100644 images/credits/refactorit_logo.gif create mode 100644 images/credits/yjp.gif create mode 100644 images/designer/bottom-ui.png create mode 100644 images/designer/demo.gif create mode 100644 images/designer/designer-top.png create mode 100644 images/designer/designer.png create mode 100644 images/designer/empty-tests.png create mode 100644 images/designer/export-example.gif create mode 100644 images/designer/hover-selection.gif create mode 100644 images/designer/parents-bar.gif create mode 100644 images/designer/property-defs.png create mode 100644 images/designer/property-edit.png create mode 100644 images/designer/tests/add-violation.gif create mode 100644 images/designer/tests/all-green.png create mode 100644 images/designer/tests/export.gif create mode 100644 images/designer/tests/failing.png create mode 100644 images/designer/tests/import.gif create mode 100644 images/designer/tests/load.gif create mode 100644 images/designer/tests/property.gif create mode 100644 images/designer/tests/toolbar.png create mode 100644 images/designer/usages.gif create mode 100644 images/devdocs/designer_screenshot.png create mode 100644 images/favicon.ico create mode 100644 images/logo/pmd_logo.jpg create mode 100644 images/logo/pmd_logo.png create mode 100644 images/logo/pmd_logo.svgz create mode 100644 images/logo/pmd_logo_small.jpg create mode 100644 images/logo/pmd_logo_small.png create mode 100644 images/logo/pmd_logo_tiny.png create mode 100644 images/pmd-logo-big.png create mode 100644 images/pmd-logo-small.png create mode 100644 images/pmd-logo.png create mode 100644 images/userdocs/designer-overview-with-nums.png create mode 100644 images/userdocs/designer-overview.png create mode 100644 images/userdocs/screenshot_cpd.png create mode 100644 index.html create mode 100644 js/customscripts.js create mode 100644 js/jekyll-search.js create mode 100644 js/jquery-ui.min.js create mode 100644 js/jquery.ba-throttle-debounce.min.js create mode 100644 js/jquery.localScroll.min.js create mode 100755 js/jquery.navgoco.min.js create mode 100644 js/jquery.scrollTo.min.js create mode 100644 js/jquery.shuffle.min.js create mode 100644 js/mydoc_scroll.html create mode 100644 js/toc.js create mode 100644 license.html create mode 100644 licenses/LICENSE create mode 100644 licenses/LICENSE-BSD-NAVGOCO.txt create mode 100644 news.html create mode 100644 news_archive.html create mode 100644 pmd_about_help.html create mode 100644 pmd_apex_metrics_index.html create mode 100644 pmd_devdocs_building.html create mode 100644 pmd_devdocs_development.html create mode 100644 pmd_devdocs_experimental_ast_dump.html create mode 100644 pmd_devdocs_how_pmd_works.html create mode 100644 pmd_devdocs_major_adding_new_cpd_language.html create mode 100644 pmd_devdocs_major_adding_new_language.html create mode 100644 pmd_devdocs_major_adding_new_metrics_framework.html create mode 100644 pmd_devdocs_pmdtester.html create mode 100644 pmd_devdocs_roadmap.html create mode 100644 pmd_devdocs_rule_deprecation_policy.html create mode 100644 pmd_devdocs_writing_documentation.html create mode 100644 pmd_java_metrics_index.html create mode 100644 pmd_languages_jsp.html create mode 100644 pmd_next_major_development.html create mode 100644 pmd_projectdocs_committers_main_landing_page.html create mode 100644 pmd_projectdocs_committers_merging_pull_requests.html create mode 100644 pmd_projectdocs_committers_releasing.html create mode 100644 pmd_projectdocs_credits.html create mode 100644 pmd_projectdocs_faq.html create mode 100644 pmd_projectdocs_trivia_meaning.html create mode 100644 pmd_projectdocs_trivia_news.html create mode 100644 pmd_projectdocs_trivia_products.html create mode 100644 pmd_projectdocs_trivia_similarprojects.html create mode 100644 pmd_release_notes.html create mode 100644 pmd_release_notes_old.html create mode 100644 pmd_rules_apex.html create mode 100644 pmd_rules_apex_bestpractices.html create mode 100644 pmd_rules_apex_codestyle.html create mode 100644 pmd_rules_apex_design.html create mode 100644 pmd_rules_apex_documentation.html create mode 100644 pmd_rules_apex_errorprone.html create mode 100644 pmd_rules_apex_performance.html create mode 100644 pmd_rules_apex_security.html create mode 100644 pmd_rules_ecmascript.html create mode 100644 pmd_rules_ecmascript_bestpractices.html create mode 100644 pmd_rules_ecmascript_codestyle.html create mode 100644 pmd_rules_ecmascript_errorprone.html create mode 100644 pmd_rules_java.html create mode 100644 pmd_rules_java_bestpractices.html create mode 100644 pmd_rules_java_codestyle.html create mode 100644 pmd_rules_java_design.html create mode 100644 pmd_rules_java_documentation.html create mode 100644 pmd_rules_java_errorprone.html create mode 100644 pmd_rules_java_multithreading.html create mode 100644 pmd_rules_java_performance.html create mode 100644 pmd_rules_java_security.html create mode 100644 pmd_rules_jsp.html create mode 100644 pmd_rules_jsp_bestpractices.html create mode 100644 pmd_rules_jsp_codestyle.html create mode 100644 pmd_rules_jsp_design.html create mode 100644 pmd_rules_jsp_errorprone.html create mode 100644 pmd_rules_jsp_security.html create mode 100644 pmd_rules_modelica.html create mode 100644 pmd_rules_modelica_bestpractices.html create mode 100644 pmd_rules_plsql.html create mode 100644 pmd_rules_plsql_bestpractices.html create mode 100644 pmd_rules_plsql_codestyle.html create mode 100644 pmd_rules_plsql_design.html create mode 100644 pmd_rules_plsql_errorprone.html create mode 100644 pmd_rules_pom.html create mode 100644 pmd_rules_pom_errorprone.html create mode 100644 pmd_rules_scala.html create mode 100644 pmd_rules_vf.html create mode 100644 pmd_rules_vf_security.html create mode 100644 pmd_rules_vm.html create mode 100644 pmd_rules_vm_bestpractices.html create mode 100644 pmd_rules_vm_design.html create mode 100644 pmd_rules_vm_errorprone.html create mode 100644 pmd_rules_xml.html create mode 100644 pmd_rules_xml_errorprone.html create mode 100644 pmd_rules_xsl.html create mode 100644 pmd_rules_xsl_codestyle.html create mode 100644 pmd_rules_xsl_performance.html create mode 100644 pmd_userdocs_best_practices.html create mode 100644 pmd_userdocs_cli_reference.html create mode 100644 pmd_userdocs_configuring_rules.html create mode 100644 pmd_userdocs_cpd.html create mode 100644 pmd_userdocs_cpd_report_formats.html create mode 100644 pmd_userdocs_extending_defining_properties.html create mode 100644 pmd_userdocs_extending_designer_reference.html create mode 100644 pmd_userdocs_extending_metrics_howto.html create mode 100644 pmd_userdocs_extending_rule_guidelines.html create mode 100644 pmd_userdocs_extending_testing.html create mode 100644 pmd_userdocs_extending_writing_java_rules.html create mode 100644 pmd_userdocs_extending_writing_pmd_rules.html create mode 100644 pmd_userdocs_extending_writing_rules_intro.html create mode 100644 pmd_userdocs_extending_writing_xpath_rules.html create mode 100644 pmd_userdocs_extending_your_first_rule.html create mode 100644 pmd_userdocs_incremental_analysis.html create mode 100644 pmd_userdocs_installation.html create mode 100644 pmd_userdocs_making_rulesets.html create mode 100644 pmd_userdocs_report_formats.html create mode 100644 pmd_userdocs_suppressing_warnings.html create mode 100644 pmd_userdocs_tools.html create mode 100644 pmd_userdocs_tools_ant.html create mode 100644 pmd_userdocs_tools_ci.html create mode 100644 pmd_userdocs_tools_gradle.html create mode 100644 pmd_userdocs_tools_java_api.html create mode 100644 pmd_userdocs_tools_maven.html create mode 100644 report-examples/pmd-report-html.html create mode 100644 report-examples/pmd-report-json.json create mode 100644 report-examples/pmd-report-pmd-nicerhtml.html create mode 100644 report-examples/pmd-report-summaryhtml.html create mode 100644 report-examples/pmd-report-vbhtml.html create mode 100644 report-examples/pmd-report-yahtml/Benchmarker.html create mode 100644 report-examples/pmd-report-yahtml/RuleContext.html create mode 100644 report-examples/pmd-report-yahtml/index.html create mode 100644 search.json create mode 100644 sitemap.xml create mode 100755 sitemap_generator.sh create mode 100644 tag_devdocs.html create mode 100644 tag_extending.html create mode 100644 tag_getting_started.html create mode 100644 tag_languages.html create mode 100644 tag_metrics.html create mode 100644 tag_release_notes.html create mode 100644 tag_rule_references.html create mode 100644 tag_tools.html create mode 100644 tag_troubleshooting.html create mode 100644 tag_userdocs.html create mode 100644 tooltips.html create mode 100644 tooltips.json diff --git a/404.html b/404.html new file mode 100644 index 0000000000..29fd3ea54b --- /dev/null +++ b/404.html @@ -0,0 +1,1440 @@ + + + + + + + + +Page Not Found | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
 
+ +
+ + + +
+ + + + + + + + + + + + + + +
+ + + + +
+
+

Page Not Found

+
+ + + +
+ + + + + + + + +
+ + + + + + + + + + Edit me + + + +

Sorry, but the page you were trying to view does not exist. Check the URL for correctness, or try using keyword search using our search bar.

+ +

Back to the index

+ + +
+ +
+ + + +
+ +
+ +
+
+ +
+
+ + +
+ +
+ +
+
+ + + diff --git a/css/bootstrap.min.css b/css/bootstrap.min.css new file mode 100755 index 0000000000..7b4112f07e --- /dev/null +++ b/css/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.2 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{/*color:#000!important;*/text-shadow:none!important;/*background:0 0!important*/;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/css/customstyles.css b/css/customstyles.css new file mode 100644 index 0000000000..d505dbd8de --- /dev/null +++ b/css/customstyles.css @@ -0,0 +1,1179 @@ +body { + font-size:15px; +} + +.bs-callout { + padding: 20px; + margin: 20px 0; + border: 1px solid #eee; + border-left-width: 5px; + border-radius: 3px; +} +.bs-callout h4 { + margin-top: 0; + margin-bottom: 5px; +} +.bs-callout p:last-child { + margin-bottom: 0; +} +.bs-callout code { + border-radius: 3px; +} +.bs-callout+.bs-callout { + margin-top: -5px; +} +.bs-callout-default { + border-left-color: #777; +} +.bs-callout-default h4 { + color: #777; +} +.bs-callout-primary { + border-left-color: #428bca; +} +.bs-callout-primary h4 { + color: #428bca; +} +.bs-callout-success { + border-left-color: #5cb85c; +} +.bs-callout-success h4 { + color: #5cb85c; +} +.bs-callout-danger { + border-left-color: #d9534f; +} +.bs-callout-danger h4 { + color: #d9534f; +} +.bs-callout-warning { + border-left-color: #f0ad4e; +} +.bs-callout-warning h4 { + color: #f0ad4e; +} +.bs-callout-info { + border-left-color: #5bc0de; +} +.bs-callout-info h4 { + color: #5bc0de; +} + + +.gi-2x{font-size: 2em;} +.gi-3x{font-size: 3em;} +.gi-4x{font-size: 4em;} +.gi-5x{font-size: 5em;} + + + + + +.breadcrumb > .active {color: #777 !important;} + +/* make room for the nav bar */ +h1[id], +h2[id], +h3[id], +h4[id], +h5[id], +h6[id], +dt[id]{ +padding-top: 20px; +margin-top: 0px +} + +body h1 {margin-top:40px;} + +.post-content img { + margin: 12px 0px 3px 0px; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; +} + +.post-content ol li, .post-content ul li { + margin: 10px 0px; +} + +.pageSummary { + font-size:13px; + display:block; + margin-bottom:15px; + padding-left:20px; +} + +.post-summary { + margin-bottom:12px; +} + +.bs-example{ + margin: 20px; +} + +.breadcrumb li { + color: gray; +} + +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} +th { + text-align: left; +} +table { + max-width: 90%; + margin-bottom: 20px; + border: 1px solid #dedede; +} + +table > thead > tr > th, +table > tbody > tr > th, +table > tfoot > tr > th, +table > thead > tr > td, +table > tbody > tr > td, +table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; + text-transform: none; + background-color: #777; + color: white; + text-align: left; +} +table > caption + thead > tr:first-child > th, +table > colgroup + thead > tr:first-child > th, +table > thead:first-child > tr:first-child > th, +table > caption + thead > tr:first-child > td, +table > colgroup + thead > tr:first-child > td, +table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +table > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} + + +table td:first-child { + width: 150px; + /*font-weight:bold;*/ +} + +table.boldFirstColumn td:first-child { + font-weight: bold; +} + +table tr td { + hyphens: auto; +} + + +p.external a { + text-align:right; + font-size:12px; + color: #0088cc; + display:inline; +} + +#definition-box-container div a.active { + font-weight: bold; +} +p.post-meta {font-size: 80%; color: #777;} + +.entry-date{font-size:14px;font-size:0.875rem;line-height:1.71429;margin-bottom:0;text-transform:uppercase;} + +/* search area */ +#search-demo-container ul#results-container { + list-style: none; + font-size: 12px; + background-color: white; + position: absolute; + top: 40px; /* if you change anything about the nav, you'll prob. need to reset the top and left values here.*/ + left: 20px; + z-index: -1; + width:223px; + border-left: 1px solid #dedede; + box-shadow: 2px 3px 2px #dedede; +} + + +ul#results-container a { + background-color: transparent; +} + +ul#results-container a:hover { + color: black; +} + + +#search-demo-container a:hover { + color: black; +} +#search-input { + padding: .5em; + margin-left:20px; + width:20em; + font-size: 0.8em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: right; + margin-top:10px; +} +/* end search */ + +.filter-options { + margin-bottom: 20px; +} +.filter-options button { + margin: 3px; +} + +div#toc ul li { + margin: 8px 0px 8px 22px; + font-size: 90%; + list-style: square; +} +div#toc ul { + background-color: whitesmoke; + padding: 5px; + border-radius: 5px; + max-width: 300px; + color: gray; +} + +div#toc ul li ul { + padding-left:8px; + +} + +div#toc ul li ul li::before { + content: "– "; +} + +div#toc >ul::before { + content: "Table of Contents"; + font-weight: 500; + color: #555; + text-align:center; + margin-left:auto; + margin-right:auto; + width:70px; + padding-top:20px; + padding-bottom:20px; + padding-left:10px; +} + +li.dropdownActive a { + font-weight: bold; +} + + +.post-content a.fa-rss { + color: orange; +} + + +.navbar-inverse .navbar-nav > li > a { + background-color: transparent; + margin-top:10px; +} + +.post-content .rssfeedLink { + color: #248EC2; +} + +footer { + font-size: smaller; +} + +/* FAQ page */ +#accordion .panel-heading { + font-size: 12px; +} + +a.accordion-toggle, a.accordion-collapsed { + font-size: 14px; + text-decoration: none; +} + +/* navgoco sidebar styles (customized) */ +.nav, .nav ul, .nav li { + list-style: none; +} + +.nav ul { + padding: 0; + /*margin: 0 0 0 18px;*/ + margin:0px; +} + +.nav { + /* padding: 4px;*/ + padding:0px; + margin: 0px; +} + +.nav > li { + margin: 1px 0; +} + +.nav > li li { + margin: 2px 0; +} + +.nav a { + color: #333; + display: block; + outline: none; + /*-webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px;*/ + text-decoration: none; +} + +.nav li > a > span { + float: right; + font-size: 19px; + font-weight: bolder; +} + + +.nav li > a > span:after { + content: '\25be'; +} +.nav li.active > a > span:after { + content: '\25b4'; +} + +.nav a:hover, .nav li.active > a { + background-color: #8D8D8D; + color: #f5f5f5; +} + +.nav > li.active > a { +background-color: #347DBE; +} + +.nav li a { + font-size: 12px; + line-height: 18px; + padding: 2px 10px; + background-color: #f1f1f1; +} + +.nav > li > a { + font-size: 14px; + line-height: 20px; + padding: 4px 10px; +} + +ul#mysidebar { + border-radius:0px; +} + +.nav ul li ul li a { + padding-left:40px; +} + +.nav li.thirdlevel > a { + color: #248EC2; + font-weight:bold; + padding-left:20px; + background-color: whitesmoke !important; +} + + +.nav ul li a { + background-color: #FAFAFA; +} + +.nav li a { + padding-right:10px; +} + +.nav li a:hover { + background-color: #8D8D8D; +} + +.nav ul li a { + border-top:1px solid whitesmoke; + padding-left:10px; +} +/* end sidebar */ + +.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { + border-radius:5px; +} + +.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:focus, .navbar-inverse .navbar-nav>.open>a:hover { + border-radius: 5px; +} + +span.projectTitle { + font-family: Helvetica; + font-weight: bold; +} + +.footer { + text-align: right; +} + +.footerMeta { + background-color: whitesmoke; + padding: 10px; + max-width: 250px; + border-radius: 5px; + margin-top: 50px; + font-style:italic; + font-size:12px; +} + +img.screenshotSmall { + max-width: 300px; +} + + +dl dt p { + margin-left:20px; +} + + +dl dd { + margin-top:10px; + margin-bottom:10px; +} + +dl.dl-horizontal dd { + padding-top: 20px; +} + +figcaption { + + padding-bottom:12px; + padding-top:6px; + max-width: 90%; + margin-bottom:20px; + font-style: italic; + color: gray; + +} + +.testing { + color: orange; +} + +.preference { + color: red; +} + + +table.dataTable thead { + background-color: #444; +} +table td { + hyphens: auto; +} + +section table tr.success { + background-color: #dff0d8 !important; +} + +table tr.info { + background-color: #d9edf7 !important; +} + +section table tr.warning, table tr.testing, table tr.testing > td.sorting_1 { + background-color: #fcf8e3 !important; +} +section table tr.danger, table tr.preference, table tr.preference > td.sorting_1 { + background-color: #f2dede !important; +} + +.orange { + color: orange; +} + +table.profile thead tr th { + background-color: #248ec2; +} + +table.request thead tr th { + background-color: #ED1951; +} + +.audienceLabel { + margin: 10px; + float: right; + border:1px solid #dedede; + padding:7px; +} + +.prefaceAudienceLabel { + color: gray; + text-align: center; + margin:5px; +} +span.myLabel { + padding-left:10px; + padding-right:10px; +} + +button.cursorNorm { + cursor: default; +} + +a.dropdown-toggle, .navbar-inverse .navbar-nav > li > a { + margin-left: 10px; +} + +hr.faded { + border: 0; + height: 1px; + background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); + background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); + background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); + background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0)); +} + +hr.shaded { + height: 12px; + border: 0; + box-shadow: inset 0 6px 6px -6px rgba(0,0,0,0.5); + margin-top: 70px; + background: white; + width: 100%; + margin-bottom: 10px; +} + +.fa-6x{font-size:900%;} +.fa-7x{font-size:1100%;} +.fa-8x{font-size:1300%;} +.fa-9x{font-size:1500%;} +.fa-10x{font-size:1700%;} + +i.border { + padding: 10px 20px; + background-color: whitesmoke; +} + +a[data-toggle] { + color: #248EC2; +} + +.summary { + font-size:120%; + color: #808080; + margin:20px 0px 20px 0px; + border-left: 5px solid #ED1951; + padding-left: 10px; + +} + +.summary:before { + content: "Summary: "; + font-weight: bold; +} + + +a.fa.fa-envelope-o.mailto { + font-weight: 600; +} + +h3 {color: #ED1951; font-weight:normal; font-size:130%;} +h4 {color: #808080; font-weight:normal; font-size:120%; font-style:italic;} + +.alert, .callout { + overflow: hidden; +} + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background-color: #248ec2; + color: white; +} + +ol li ol li {list-style-type: lower-alpha;} +ol li ul li {list-style-type: disc;} + +li img {clear:both; } + +div#toc ul li ul li { + list-style-type: none; + margin: 5px 0px 0px 0px; +} + +.tab-content { + padding: 15px; + background-color: #FAFAFA; +} + +span.tagTitle {font-weight: 500;} + +li.activeSeries { + font-weight: bold; +} + +.seriesContext .dropdown-menu li.active { + font-weight: bold; + margin-left: 43px; + font-size:18px; +} + +.alert-warning { + color: #444; +} + +div.alert code, h2 code { + background-color: transparent !important; +} +/* without this, the links in these notes aren't visible.*/ +.alert a { + text-decoration: underline; +} + +div.tags {padding: 10px 5px;} + +.tabLabel { + font-weight: normal; +} + +hr { + background: #999; + margin: 30px 0px; + width: 90%; + margin-left: auto; + margin-right: auto; +} + +button.cursorNorm { + cursor: pointer; +} + +h2 { + font-size:24px; + line-height:29px; +} +span.otherProgrammingLanguages { + font-style: normal; +} + +a[data-toggle="tooltip"] { + color: #649345; + font-style: italic; + cursor: default; +} + +.seriesNext, .seriesContext { + margin-top: 15px; + margin-bottom: 15px; +} + +.seriescontext ol li { + list-style-type: upper-roman; +} + +ol.series li { + list-style-type: decimal; + margin-left: 40px; + padding-left: 0px; +} + +.siteTagline { + font-size: 200%; + font-weight: bold; + color: silver; + font-family: monospace; + text-align: center; + line-height: 10px; + margin: 20px 0px; + display: block; +} + +.versionTagline { + text-align: center; + margin-bottom: 20px; + font-family: courier; + color: silver; + color: #444; + display:block; +} + +/* not sure if using this ...*/ +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #248ec2 !important; +} + +#mysidebar .nav ul { + background-color: #FAFAFA; +} +.nav ul.series li { + list-style: decimal; + font-size:12px; +} + +.nav ul.series li a:hover { + background-color: gray; +} +.nav ul.series { + padding-left: 30px; +} + +.nav ul.series { + background-color: #FAFAFA; +} + +/* +a.dropdown-toggle.otherProgLangs { + color: #f7e68f !important; +} +*/ + +span.muted {color: #666;} + +table code {background-color: transparent;} + +.highlight .err { + color: #a61717; + background-color: transparent !important; +} + +table p { + margin-top: 12px; + margin-bottom: 12px; +} + +pre, table code { + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + +pre { + margin: 25px 0px; +} + +#json-box-container pre { + margin: 0px; +} + +.video-js { + margin: 30px 0px; +} + +video { + display: block; + margin: 30px 0px; + border: 1px solid #c0c0c0; +} + + +p.required, p.dataType {display: block; color: #c0c0c0; font-size: 80%; margin-left:4px;} + +dd {margin-left:20px;} + +.post-content img.inline { + margin:0px; + margin-bottom:6px; +} +.panel-heading { + font-weight: bold; +} + +.note code, .alert code, .warning code, div#toc code, h2 code, h3 code, h4 code { + color: inherit; + padding: 0px; +} + +.alert { + margin-bottom:10px; + margin-top:10px; +} + +a.accordion-toggle { + font-style: normal; +} + +span.red { + color: red; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} + +h3.codeExplanation { + font-size:18px; + font-style:normal; + color: black; + line-height: 24px; +} + +span.soft { + color: #c0c0c0; +} + +.githubEditButton { + margin-bottom:7px; +} + +.endpoint { + padding: 15px; + background-color: #f0f0f0; + font-family: courier; + font-size: 110%; + margin: 20px 0px; + color: #444; +} + +.parameter { + font-family: courier; + color: red !important; +} + +.formBoundary { + border: 1px solid gray; + padding: 15px; + margin: 15px 0px; + background-color: whitesmoke; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #444; + } +} + +@media (max-width: 990px) { + #mysidebar { + position: relative; + } +} + +@media (min-width: 1000px) { + + ul#mysidebar { + width: 225px; + } +} + +@media (max-width: 900px) { + + ul#mysidebar { + max-width: 100%; + } +} + +.col-md-9 img { + max-width: 100%; + max-height: 100%; +} + + +.post-content img { + margin: 12px 0px 3px 0px; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; +} +.col-md-9 img { + max-width: 100%; + max-height: 100%; +} + + +.post-content img { + margin: 12px 0px 3px 0px; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; +} + +.videoThumbs img { + float: left; + margin:15px 15px 15px 0px; + box-shadow: 2px 2px 1px #f0f0f0; + border: 1px solid #dedede; +} + + +@media only screen and (min-width: 900px), only screen and (min-device-width: 900px) { + .col-md-9 img { + max-width: 700px; + max-height: 700px; + } +} + +*:hover > .anchorjs-link { + transition: color .25s linear; + text-decoration: none; +} + +.kbCaption { + color: white; + background-color: #444; + padding:10px; +} + +/* this part adds an icon after external links, using FontAwesome*/ +a[href^="http://"]:after, a[href^="https://"]:after { + content: "\f08e"; + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; + text-decoration: none; + padding-left: 3px; +} + +/* Strip the outbound icon when this class is present */ +a[href].noCrossRef::after, +a.no_icon:after + { + content:"" !important; + padding-left: 0; +} + +.btn-default { + margin-bottom: 10px; +} + +/* algolia search */ + +.search { + text-align: left; +} +.search input { + font-size: 20px; + width: 300px; +} +.results { + margin: auto; + text-align: left; +} +.results ul { + list-style-type: none; + padding: 0; +} + +/* algolia */ + +div.results { + position: absolute; + background-color: white; + width: 100%; +} + +.post-meta { + font-size: 14px; + color: #828282; +} + +.post-link { + font-size: 22px; +} + +.post-list p { + margin: 10px 0px; +} + +time { + margin-right: 10px; +} + +p.post-meta time { + margin-right: 0px; +} + +span.label.label-default { + background-color: gray; +} + +span.label.label-primary { + background-color: #f0ad4e; +} +.col-lg-12 .nav li a {background-color: white} + + +.nav li.active > a.subfoldersTitle { + background-color: whitesmoke; + font-weight: bold; + color: black; + } + +a code { + color: #248EC2; +} + +code + a > code { + margin-left: -7px; +} + +table th code { + color: white; +} + +ol li ul li ol li { + list-style: decimal; +} + +ol li ul li ol li ul li{ + list-style: disc; +} + +.post-content table th { + vertical-align: top; +} + +table thead th code.highlighter-rouge { + background-color: transparent; +} + + +.box { + padding: 10px; + border: 1px solid #888; + box-shadow: 2px 2px 4px #dedede; + width: 100px; + height: 80px; + background-color: #f5f5f5; + font-family: Arial; + font-size: 12px; + hyphens: auto; + float: left; + font-size: 12px; +} + +.box:hover { + background-color: #f0f0f0; +} + +#userMap { + overflow-x: auto; + overflow-y: auto; + padding: 20px; + min-width: 770px; +} + +#userMap .active { + background-color: #d6f5d6; + border:1px solid #555; + font-weight: bold; +} + +h2.userMapTitle { + font-family: Arial; +} + +#userMap a:hover { + text-decoration: none; + } + +div.arrow { + max-width: 50px; + margin-left: 15px; + margin-right: 15px; + font-size: 20px; +} + +div.content { + max-width: 110px +} + +#userMap div.arrow, #userMap div.content { + float: left; +} + +.clearfix { + clear: both; +} + + +#userMap div.arrow { + position: relative; + top: 30px; +} + +.box1 { + margin-left:0px; +} + +button.btn.btn-default.btn-lg.modalButton1 { + margin-left: -20px; +} + +div.box.box1 { + margin-left: -20px; +} + +#userMap .btn-lg { + width: 100px; + height: 80px; + +} + +#userMap .complexArrow { + font-size: 22px; + margin: 0px 10px; +} + + +#userMap .btn-lg .active { + background-color: #d6f5d6; +} + +#userMap .btn-lg { + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + font-size: 14px; + } + +/* + * Let's target IE to respect aspect ratios and sizes for img tags containing SVG files + * + * [1] IE9 + * [2] IE10+ + */ +/* 1 */ +.ie9 img[src$=".svg"] { + width: 100%; +} +/* 2 */ +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + img[src$=".svg"] { + width: 100%; + } +} + +h4.panel-title { + padding-top: 0px; + margin-top: 0px; +} diff --git a/css/font-awesome.min.css b/css/font-awesome.min.css new file mode 100644 index 0000000000..08e68ec0c0 --- /dev/null +++ b/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('fonts/fontawesome-webfont.eot?v=4.2.0');src:url('fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"} \ No newline at end of file diff --git a/css/fonts/FontAwesome.otf b/css/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..f7936cc1e789eea5438d576d6b12de20191da09d GIT binary patch literal 93888 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 z -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 E0UHWiZ2$lO literal 0 HcmV?d00001 diff --git a/css/fonts/fontawesome-webfont.eot b/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..33b2bb80055cc480e797de704925acaba4ba7d7d GIT binary patch literal 60767 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%0DKehr}RFC`2XTB_?==0w^)u1m5PYii@6f)6_5Ydu zv+NIZ_(Rt}Q++LT5!n8!J4x!>sE&v_3*cXat{Zq5;17w;B6$epw}$Rg`0nFJg5D-L zYvw@(goc5TeJjM($AJAZxZHZN}RzBcP0=_>ZI6WVGU zO#Nk-YqZTa3{!84P0K~GsI#32<+_AsXU43wILwZS(8n%S9)lP!Dg$$e2$$9$E?^Nj zql4do#+a8qEP(bD2)DpP|$dp<`TZ#bY6^~7Xv_Lle)77^OsVhMOm(@ z??8O8kA%}ZWpR&2v!7qFSw@TF6d*=9YT^Rtk(n8p=CQWvt1Om=n&5uP;GiT6 zMRvbm39kbp*KB`qoVg12w52Z)T}`X41P>D|q_%K#zuhwb+BpEogY0E)KnSy#@+(m5 z20@LG@LUEvk`I|OIUV^^0_YtG9AElBS!Dsh%k^P9r0moJ25Lkm-gh#igwBDhAOj0!EF&8MxV^-m1U1MEd?H7} zL;r;tfFIT|ei3-Z@gyM=!%Ba7Pa626JRAA`V<2D<{RLRT@0o=bE)XF)nFtUL67`2L z{?_Qz_`Yy2t+I)?9&z#z__Q%L3pnhN}U z_rN#WU)kD59D4whbSYERHY01jM7id50EuI1ctl?<_IT=Y5vP>(sNNkB&U5&F&^kBhm5y{o!y!F+4wdxXoy;!4$W`?_nL(+bK_QDAMUV1O0AwZ| z6j)s}9YEZbY-C^Y)9Ej`aS&~{sXCG2SS3ce$EY;Yv-c8TlrD$C85ATlLZpGP_YWfi z`RQ?z1@zIfa{yqfsUDMEPpwuX%XHdO+ASb3EPi1fBPocvfgsC0xa^CG2SWBPWQ&GS zpCXPti8b>WkYbf#Vg%A?&_UwUsUQE_t4GX?7QqUpKJ2Iw#%)Q4Ft(`9Ja&Yk{C@38 z@%T`)#wWy(kKfEH;ZBQ(m*Iq&L=<)4D7tNO{SsA4Fp4D?(Ex6nQS&f3TK|atgj`fE z2|OX0(&(ZqxJd~IANX&dvX?U14_<~h2(lP6k^H8ep;2HW6oPo?U%v{M>|{sU~;p zLTv$OTx3H^4zNUn4wUfo>j{CEvTC@C+cw+cW*ABH6u@!M2EdBL?1GbL_#e;7YDBas zic?MTazk(khXSyPeDom_I~wkLv?Wr8<%egEfM!*M9^kl$>zsVzaP}S!gcD3;Czy#58RTm?`p)RTS8I<-sC3+*n{A)P*rU!@Npj`e{x9xsif2v zTW`{q3p^?A!Mk60Q{(FLt(&TVe9z z0-!PiOV02JcNeq?AbJaI+B9xC;LB=}Ho0vH(@;Qe0zq~-8ckOa!(u@Wou`p_TR|QT z38H`lJE$G{q1egUX@&v$x7wNLWD#j*!D58GLv^bT+jpdKBrK#SsQsWK(+RO40VA^w z0nA7MN1Y1Fc#5JkwD5TtHG1t;lo=i)U+kFG?1Jh11h9382!marrRE2eZh;JGh`wNO zQA_~n?%97HOKLA^#oG(5*bgSllS%rOc(S%Yj00cYR;!D9G_90{pfq7D4I*$k?byOV zR|epi%oIJ{ou`5zS!-_dnxOa{uNv)(luMo^5TCOItq}2}sxCztLEzBGS)Mf6dzaw< z!GweAgvFYJu&mH(Vl9HJBV%=Jz~~i%nDGIF9ncTET-AQ=fv{L11&K_;ei!iht(!De;ym|y7ksL|^5Ko~B-vSh80++s?unD}bZaYa@ zPH4M$&fw;xEGN3_H1vHW><%-+dg7dfW)F8$bB+h7sThoOtteO(v{&-+iK}r$%G))# z*Nhx^!ZMj1VeG?EkWg+0CYQSX1t96fV9^3c+9C393LU&CHsFCa1q99$`zTMsEWwLc zxsw1|A?k8-m8HCrk6;K7dhNDJN3R9iws%6vTq_}PtR2CZ8TG;ltZ4I}sU+^s8`P3F5QxrypG1-{ zGlr^7$Wsy(lo=xfC~BpKfg<2z4OEeEF@~x{Pi7O#CvqMJy+f+}=CB_$&IuEslB@s# J000000038FvZ??8 literal 0 HcmV?d00001 diff --git a/css/fonts/fontawesome-webfont.svg b/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000..1ee89d4368 --- /dev/null +++ b/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/css/fonts/fontawesome-webfont.ttf b/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ed9372f8ea0fbaa04f42630a48887e4b38945345 GIT binary patch literal 122092 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 +|+&Vdls@0SAya!5R?! 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
6YuX1v{q9=vI}{pN+P4FW!CI?#11< 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 z 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 literal 0 HcmV?d00001 diff --git a/css/fonts/fontawesome-webfont.woff b/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..8b280b98fa2fa261aa4b0f8fd061f772073ef83e GIT binary patch literal 71508 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 literal 0 HcmV?d00001 diff --git a/css/lavish-bootstrap.css b/css/lavish-bootstrap.css new file mode 100644 index 0000000000..c2af93e598 --- /dev/null +++ b/css/lavish-bootstrap.css @@ -0,0 +1,5898 @@ +/* CSS generated by http://lavishbootstrap.com */ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} +audio, +canvas, +video { + display: inline-block; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden] { + display: none; +} +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} +a:focus { + outline: thin dotted; +} +a:active, +a:hover { + outline: 0; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +mark { + background: #ff0; + color: #000; +} +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} +pre { + white-space: pre-wrap; +} +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 0; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +button, +input, +select, +textarea { + font-family: inherit; + font-size: 100%; + margin: 0; +} +button, +input { + line-height: normal; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +textarea { + overflow: auto; + vertical-align: top; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + /*color: #77777a; */ + background-color: #ffffff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +button, +input, +select[multiple], +textarea { + background-image: none; +} +a { + color: #248EC2; + text-decoration: none; +} +a:hover, +a:focus { + text-decoration: underline; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +img { + vertical-align: middle; +} +.img-responsive { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #bac9c2; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small { + font-size: 85%; +} +cite { + font-style: normal; +} +.text-muted { + color: #f9faf9; +} +.text-primary { + color: #74ab50; +} +.text-warning { + color: #c09853; +} +.text-danger { + color: #b94a48; +} +.text-success { + color: #468847; +} +.text-info { + color: #3a87ad; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #f9faf9; +} +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +h1 small, +.h1 small { + font-size: 24px; +} +h2 small, +.h2 small { + font-size: 18px; +} +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #bac9c2; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.428571429; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .dl-horizontal dd:after { + clear: both; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #f9faf9; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #bac9c2; +} +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +blockquote p:last-child { + margin-bottom: 0; +} +blockquote small { + display: block; + line-height: 1.428571429; + color: #f9faf9; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #bac9c2; + border-left: 0; +} +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} +blockquote.pull-right small:before { + content: ''; +} +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #444; + background-color: #f0f0f0; + white-space: nowrap; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + word-break: break-all; + word-wrap: break-word; + color: #77777a; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.container:before, +.container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.container:after { + clear: both; +} +.container:before, +.container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.container:after { + clear: both; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.row:before, +.row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.row:after { + clear: both; +} +.row:before, +.row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.row:after { + clear: both; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} +.col-xs-1 { + width: 8.333333333333332%; +} +.col-xs-2 { + width: 16.666666666666664%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-4 { + width: 33.33333333333333%; +} +.col-xs-5 { + width: 41.66666666666667%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-7 { + width: 58.333333333333336%; +} +.col-xs-8 { + width: 66.66666666666666%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-10 { + width: 83.33333333333334%; +} +.col-xs-11 { + width: 91.66666666666666%; +} +.col-xs-12 { + width: 100%; +} +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1170px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} +table { + max-width: 100%; + background-color: transparent; +} +th { + text-align: left; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #77777a; +} +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #77777a; +} +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #77777a; +} +.table .table { + background-color: #ffffff; +} +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #77777a; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #77777a; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} +table col[class*="col-"] { + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: scroll; + border: 1px solid #77777a; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #77777a; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +input[type="file"] { + display: block; +} +select[multiple], +select[size] { + height: auto; +} +select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} +.form-control:-moz-placeholder { + color: #f9faf9; +} +.form-control::-moz-placeholder { + color: #f9faf9; +} +.form-control:-ms-input-placeholder { + color: #f9faf9; +} +.form-control::-webkit-input-placeholder { + color: #f9faf9; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #4aadd6; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #bac9c2; +} +textarea.form-control { + height: auto; +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; +} +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm { + height: auto; +} +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-lg { + height: 45px; + line-height: 45px; +} +textarea.input-lg { + height: auto; +} +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} +.has-warning .input-group-addon { + color: #c09853; + border-color: #c09853; + background-color: #fcf8e3; +} +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} +.has-error .input-group-addon { + color: #b94a48; + border-color: #b94a48; + background-color: #f2dede; +} +.has-success .help-block, +.has-success .control-label { + color: #468847; +} +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} +.has-success .input-group-addon { + color: #468847; + border-color: #468847; + background-color: #dff0d8; +} +.form-control-static { + margin-bottom: 0; + padding-top: 7px; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #b7b7b9; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.form-horizontal .form-group:after { + clear: both; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.form-horizontal .form-group:after { + clear: both; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.btn-primary { + color: #ffffff; + background-color: #74ab50; + border-color: #689a48; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #618f43; + border-color: #4c7034; +} +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #74ab50; + border-color: #689a48; +} +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-info { + color: #ffffff; + background-color: #347DBE; + border-color: #347DBE; +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #015CAE; + border-color: #015CAE; +} +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-link { + color: #74ab50; + font-weight: normal; + cursor: pointer; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #517738; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #f9faf9; + text-decoration: none; +} +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs { + padding: 1px 5px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-briefcase:before { + content: "\1f4bc"; +} +.glyphicon-calendar:before { + content: "\1f4c5"; +} +.glyphicon-pushpin:before { + content: "\1f4cc"; +} +.glyphicon-paperclip:before { + content: "\1f4ce"; +} +.glyphicon-camera:before { + content: "\1f4f7"; +} +.glyphicon-lock:before { + content: "\1f512"; +} +.glyphicon-bell:before { + content: "\1f514"; +} +.glyphicon-bookmark:before { + content: "\1f516"; +} +.glyphicon-fire:before { + content: "\1f525"; +} +.glyphicon-wrench:before { + content: "\1f527"; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; + content: ""; +} +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #77777a; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + text-decoration: none; + color: #ffffff; + background-color: #679DCE; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #679DCE; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #f9faf9; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #f9faf9; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} +.btn-default .caret { + border-top-color: #333333; +} +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} +.dropup .btn-default .caret { + border-bottom-color: #333333; +} +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar:before, +.btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-toolbar:after { + clear: both; +} +.btn-toolbar:before, +.btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-toolbar:after { + clear: both; +} +.btn-toolbar .btn-group { + float: left; +} +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px; +} +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-group-vertical > .btn-group:after { + clear: both; +} +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-group-vertical > .btn-group:after { + clear: both; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified .btn { + float: none; + display: table-cell; + width: 1%; +} +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group.col { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #bac9c2; + border: 1px solid #cccccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -4px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav:before, +.nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.nav:after { + clear: both; +} +.nav:before, +.nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.nav:after { + clear: both; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #bac9c2; +} +.nav > li.disabled > a { + color: #f9faf9; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #f9faf9; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #bac9c2; + border-color: #74ab50; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #dddddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #bac9c2 #bac9c2 #dddddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #4aadd6; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} +.nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + margin-right: 0; +} +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 5px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #74ab50; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + margin-right: 0; +} +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} +.tabbable:before, +.tabbable:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.tabbable:after { + clear: both; +} +.tabbable:before, +.tabbable:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.tabbable:after { + clear: both; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.nav .caret { + border-top-color: #74ab50; + border-bottom-color: #74ab50; +} +.nav a:hover .caret { + border-top-color: #517738; + border-bottom-color: #517738; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +.navbar:before, +.navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar:after { + clear: both; +} +.navbar:before, +.navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar:after { + clear: both; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +.navbar-header:before, +.navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-header:after { + clear: both; +} +.navbar-header:before, +.navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-header:after { + clear: both; +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + max-height: 340px; + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse:before, +.navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-collapse:after { + clear: both; +} +.navbar-collapse:before, +.navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-collapse:after { + clear: both; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + z-index: 1030; + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + margin-left: 15px; + margin-right: 15px; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777777; +} +.navbar-default .navbar-nav > li > a { + color: #777777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #dddddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555555; +} +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777777; +} +.navbar-default .navbar-link:hover { + color: #333333; +} +.navbar-inverse { + background-color: #74ab50; + border-color: #5c8840; +} +.navbar-inverse .navbar-brand { + color: #f9faf9; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #f9faf9; +} +.navbar-inverse .navbar-nav > li > a { + color: #f9faf9; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #5c8840; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #649345; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #5c8840; + color: #ffffff; +} +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #f9faf9; + border-bottom-color: #f9faf9; +} +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #5c8840; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #f9faf9; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #5c8840; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #f9faf9; +} +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #cccccc; +} +.breadcrumb > .active { + color: #f9faf9; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #bac9c2; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + background-color: #74ab50; + border-color: #74ab50; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #f9faf9; + background-color: #ffffff; + border-color: #dddddd; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.pager:before, +.pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.pager:after { + clear: both; +} +.pager:before, +.pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #bac9c2; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #f9faf9; + background-color: #ffffff; + cursor: not-allowed; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #dde3dd; +} +.label-primary { + background-color: #74ab50; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #5c8840; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #f9faf9; + border-radius: 10px; +} +.badge:empty { + display: none; +} +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.btn .badge { + position: relative; + top: -1px; +} +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #74ab50; + background-color: #ffffff; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #bac9c2; +} +.jumbotron h1 { + line-height: 1; + color: inherit; +} +.jumbotron p { + line-height: 1.4; +} +.container .jumbotron { + border-radius: 6px; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} +.thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; + display: block; +} +.thumbnail > img { + display: block; + max-width: 100%; + height: auto; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #74ab50; +} +.thumbnail > img { + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: #77777a; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable { + padding-right: 35px; +} +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #356635; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #2d6987; +} +.alert-warning { + background-color: #fcf8e3; + border-color: #fbeed5; + color: #c09853; +} +.alert-warning hr { + border-top-color: #f8e5be; +} +.alert-warning .alert-link { + color: #a47e3c; +} +.alert-danger { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-danger hr { + border-top-color: #e6c1c7; +} +.alert-danger .alert-link { + color: #953b39; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #74ab50; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-object { + display: block; +} +.media-heading { + margin: 0 0 5px; +} +.media > .pull-left { + margin-right: 10px; +} +.media > .pull-right { + margin-left: 10px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +a.list-group-item { + color: #555555; +} +a.list-group-item .list-group-item-heading { + color: #333333; +} +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #74ab50; + border-color: #74ab50; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edda; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-body:before, +.panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.panel-body:after { + clear: both; +} +.panel-body:before, +.panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.panel-body:after { + clear: both; +} +.panel > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item { + border-width: 1px 0; +} +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.panel > .table { + margin-bottom: 0; +} +.panel > .panel-body + .table { + border-top: 1px solid #77777a; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} +.panel-title > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; + overflow: hidden; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} +.panel-default { + border-color: #dddddd; +} +.panel-default > .panel-heading { + color: #77777a; + background-color: #f5f5f5; + border-color: #dddddd; +} +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} +.panel-primary { + border-color: #74ab50; +} +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #74ab50; + border-color: #74ab50; +} +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #74ab50; +} +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #74ab50; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-warning { + border-color: #fbeed5; +} +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} +.panel-danger { + border-color: #eed3d7; +} +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} +.modal { + display: none; + overflow: auto; + overflow-y: scroll; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-dialog { + margin-left: auto; + margin-right: auto; + width: auto; + padding: 10px; + z-index: 1050; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: none; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.428571429px; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.428571429; +} +.modal-body { + position: relative; + padding: 20px; +} +.modal-footer { + margin-top: 15px; + padding: 19px 20px 20px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +@media screen and (min-width: 768px) { + .modal-dialog { + left: 50%; + right: auto; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity=50); + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-control.left { + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #ffffff; + border-radius: 10px; + cursor: pointer; +} +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #ffffff; +} +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.clearfix:after { + clear: both; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.visible-xs { + display: none !important; +} +tr.visible-xs { + display: none !important; +} +th.visible-xs, +td.visible-xs { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} +.visible-sm { + display: none !important; +} +tr.visible-sm { + display: none !important; +} +th.visible-sm, +td.visible-sm { + display: none !important; +} +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} +.visible-md { + display: none !important; +} +tr.visible-md { + display: none !important; +} +th.visible-md, +td.visible-md { + display: none !important; +} +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} +.visible-lg { + display: none !important; +} +tr.visible-lg { + display: none !important; +} +th.visible-lg, +td.visible-lg { + display: none !important; +} +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +.hidden-xs { + display: block !important; +} +tr.hidden-xs { + display: table-row !important; +} +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} +.hidden-sm { + display: block !important; +} +tr.hidden-sm { + display: table-row !important; +} +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} +.hidden-md { + display: block !important; +} +tr.hidden-md { + display: table-row !important; +} +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} +.hidden-lg { + display: block !important; +} +tr.hidden-lg { + display: table-row !important; +} +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +tr.visible-print { + display: none !important; +} +th.visible-print, +td.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} diff --git a/css/modern-business.css b/css/modern-business.css new file mode 100755 index 0000000000..58dc4a2d60 --- /dev/null +++ b/css/modern-business.css @@ -0,0 +1,93 @@ +/*! + * Start Bootstrap - Modern Business HTML Template (http://startbootstrap.com) + * Code licensed under the Apache License v2.0. + * For details, see http://www.apache.org/licenses/LICENSE-2.0. + */ + +/* Global Styles */ + +html, +body { + height: 100%; +} + +body { + padding-top: 50px; /* Required padding for .navbar-fixed-top. Remove if using .navbar-static-top. Change if height of navigation changes. */ +} + +.img-portfolio { + margin-bottom: 30px; +} + +.img-hover:hover { + opacity: 0.8; +} + +/* Home Page Carousel */ + +header.carousel { + height: 50%; +} + +header.carousel .item, +header.carousel .item.active, +header.carousel .carousel-inner { + height: 100%; +} + +header.carousel .fill { + width: 100%; + height: 100%; + background-position: center; + background-size: cover; +} + +/* 404 Page Styles */ + +.error-404 { + font-size: 100px; +} + +/* Pricing Page Styles */ + +.price { + display: block; + font-size: 50px; + line-height: 50px; +} + +.price sup { + top: -20px; + left: 2px; + font-size: 20px; +} + +.period { + display: block; + font-style: italic; +} + +/* Footer Styles */ + +footer { + margin: 50px 0; +} + +/* Responsive Styles */ + +@media(max-width:991px) { + .client-img, + .img-related { + margin-bottom: 30px; + } +} + +@media(max-width:767px) { + .img-portfolio { + margin-bottom: 15px; + } + + header.carousel .carousel { + height: 70%; + } +} \ No newline at end of file diff --git a/css/pmd-customstyles.css b/css/pmd-customstyles.css new file mode 100644 index 0000000000..7683ae54d8 --- /dev/null +++ b/css/pmd-customstyles.css @@ -0,0 +1,86 @@ + +.panel-body { + padding-top: 0cm; +} + +.landing-page.cat-title { + margin-bottom: .5cm; + margin-top: .5cm; +} + +.landing-page.cat-description { + margin-top: .4cm; +} + +/* Offsets contents by the height of the nav bar */ +#topbar-content-offset { + overflow: scroll; + position: absolute; + top: 50px; /* height of the nav bar */ + bottom: 0px; + width: 100%; +} + +details { + border-radius: 3px; + background: #EEE; + margin-left: 10px; +} + +details p { + padding: 5px 10px 5px; + background: white; +} + +details summary { + font-size: 11pt; + vertical-align: top; + background: #d2d2d2; + color: black; + border-radius: 3px; + padding: 5px 10px; + outline: none; + cursor: pointer; + display: list-item; +} + +details summary::after { + content: "..."; +} + +details[open] summary { + background-color: #347DBE; + color: white; +} + + +.hiddenRow { + padding: 0 !important; +} + +.xpath-fun-doc .fun-name { + font-weight: bold; +} + +.xpath-fun-doc .fun-details-header { + font-family: monospace; + font-size: larger; +} + +.xpath-fun-doc .fun-ns { + color: darkgray; +} + +.xpath-fun-doc span.param-name { + font-weight: normal; + +} + +.xpath-fun-doc span.param-type { + font-weight: lighter; + font-style: italic; + color: darkgray; +} +.xpath-fun-doc .code-examples dt { + font-weight: normal; +} diff --git a/css/printstyles.css b/css/printstyles.css new file mode 100644 index 0000000000..5e55e57651 --- /dev/null +++ b/css/printstyles.css @@ -0,0 +1,160 @@ + +/*body.print .container {max-width: 650px;}*/ + +body { + font-size:14px; +} +.nav ul li a {border-top:0px; background-color:transparent; color: #808080; } +#navig a[href] {color: #595959 !important;} +table .table {max-width:650px;} + +#navig li.sectionHead {font-weight: bold; font-size: 18px; color: #595959 !important; } +#navig li {font-weight: normal; } + +#navig a[href]::after { content: leader(".") target-counter(attr(href), page); } + +a[href]::after { + content: " (page " target-counter(attr(href), page) ")" +} + +a[href^="http:"]::after, a[href^="https:"]::after { + content: " (" attr(href) ")"; +} + +a[href] { + color: blue !important; +} +a[href*="mailto"]::after, a[data-toggle="tooltip"]::after, a[href].noCrossRef::after { + content: ""; +} + + +@page { + margin: 60pt 90pt 60pt 90pt; + font-family: sans-serif; + font-style:none; + color: gray; + +} + +.printTitle { + line-height:30pt; + font-size:27pt; + font-weight: bold; + letter-spacing: -.5px; + margin-bottom:25px; +} + +.printSubtitle { + font-size: 19pt; + color: #cccccc !important; + front-family: "Grotesque MT Light"; + line-height: 22pt; + letter-spacing: -.5px; + margin-bottom:20px; +} +.printTitleArea hr { + color: #999999 !important; + height: 2px; + width: 100%; +} + +.printTitleImage { + max-width:300px; + margin-bottom:200px; +} + + +.printTitleImage { + max-width: 250px; +} + +#navig { + /*page-break-before: always;*/ +} + +.copyrightBoilerplate { + page-break-before:always; + font-size:14px; +} + +.lastGeneratedDate { + font-style: italic; + font-size:14px; + color: gray; +} + +.alert a { + text-decoration: none !important; +} + + +body.title { page: title } + +@page title { + @top-left { + content: " "; + } + @top-right { + content: " " + } + @bottom-right { + content: " "; + } + @bottom-left { + content: " "; + } +} + +body.frontmatter { page: frontmatter } +body.frontmatter {counter-reset: page 1} + + +@page frontmatter { + @top-left { + content: prince-script(guideName); + } + @top-right { + content: prince-script(datestamp); + } + @bottom-right { + content: counter(page, lower-roman); + } + @bottom-left { + content: "youremail@domain.com"; } +} + +body.first_page {counter-reset: page 1} + +h1 { string-set: doctitle content() } + +@page { + @top-left { + content: string(doctitle); + font-size: 11px; + font-style: italic; + } + @top-right { + content: prince-script(datestamp); + font-size: 11px; + } + + @bottom-right { + content: "Page " counter(page); + font-size: 11px; + } + @bottom-left { + content: prince-script(guideName); + font-size: 11px; + } +} +.alert { + background-color: #fafafa !important; + border-color: #dedede !important; + color: black; +} + +pre { + background-color: #fafafa; +} + diff --git a/css/syntax.css b/css/syntax.css new file mode 100644 index 0000000000..1e651cf79d --- /dev/null +++ b/css/syntax.css @@ -0,0 +1,60 @@ +.highlight { background: #ffffff; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .o { font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d14 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight .sc { color: #d14 } /* Literal.String.Char */ +.highlight .sd { color: #d14 } /* Literal.String.Doc */ +.highlight .s2 { color: #d14 } /* Literal.String.Double */ +.highlight .se { color: #d14 } /* Literal.String.Escape */ +.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight .si { color: #d14 } /* Literal.String.Interpol */ +.highlight .sx { color: #d14 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d14 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/css/theme-blue.css b/css/theme-blue.css new file mode 100644 index 0000000000..64cc6c387e --- /dev/null +++ b/css/theme-blue.css @@ -0,0 +1,103 @@ +.summary { + color: #808080; + border-left: 5px solid #ED1951; + font-size:16px; +} + + +h3 {color: #ED1951; } +h4 {color: #808080; } + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background-color: #248ec2; + color: white; +} + +.nav > li.active > a { + background-color: #347DBE; +} + +.nav > li > a:hover { + background-color: #248ec2; +} + +div.navbar-collapse .dropdown-menu > li > a:hover { + background-color: #347DBE; +} + +.nav li.thirdlevel > a { + background-color: #FAFAFA !important; + color: #248EC2; + font-weight: bold; +} + +a[data-toggle="tooltip"] { + color: #649345; + font-style: italic; + cursor: default; +} + +.navbar-inverse { + background-color: #347DBE; + border-color: #015CAE; +} + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { + color: #015CAE; +} + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { + background-color: #015CAE; + color: #ffffff; +} + +/* not sure if using this ...*/ +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #248ec2 !important; +} + +.btn-primary { + color: #ffffff; + background-color: #347DBE; + border-color: #347DBE; +} + +.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { + background-color: #347DBE; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-color: #248ec2; + border-color: #347DBE; +} + +.printTitle { + color: #015CAE !important; +} + +body.print h1 {color: #015CAE !important; font-size:28px !important;} +body.print h2 {color: #595959 !important; font-size:20px !important;} +body.print h3 {color: #E50E51 !important; font-size:14px !important;} +body.print h4 {color: #679DCE !important; font-size:14px; font-style: italic !important;} + +.anchorjs-link:hover { + color: #216f9b; +} + +div.sidebarTitle { + color: #015CAE; +} + +li.sidebarTitle { + margin-top:40px; + font-weight:normal; + font-size:130%; + color: #ED1951; + margin-bottom:10px; + margin-left: 5px; + +} \ No newline at end of file diff --git a/css/theme-green.css b/css/theme-green.css new file mode 100644 index 0000000000..f6b0d8b1e7 --- /dev/null +++ b/css/theme-green.css @@ -0,0 +1,99 @@ +.summary { + color: #808080; + border-left: 5px solid #E50E51; + font-size:16px; +} + + +h3 {color: #E50E51; } +h4 {color: #808080; } + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background-color: #248ec2; + color: white; +} + +.nav > li.active > a { + background-color: #72ac4a; +} + +.nav > li > a:hover { + background-color: #72ac4a; +} + +div.navbar-collapse .dropdown-menu > li > a:hover { + background-color: #72ac4a; +} + +.nav li.thirdlevel > a { + background-color: #FAFAFA !important; + color: #72ac4a; + font-weight: bold; +} + +a[data-toggle="tooltip"] { + color: #649345; + font-style: italic; + cursor: default; +} + +.navbar-inverse { + background-color: #72ac4a; + border-color: #5b893c; +} + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { + color: #5b893c; +} + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { + background-color: #5b893c; + color: #ffffff; +} + +/* not sure if using this ...*/ +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #72ac4a !important; +} + +.btn-primary { + color: #ffffff; + background-color: #5b893c; + border-color: #5b893c; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-color: #72ac4a; + border-color: #5b893c; +} + +.printTitle { + color: #5b893c !important; +} + +body.print h1 {color: #5b893c !important; font-size:28px;} +body.print h2 {color: #595959 !important; font-size:24px;} +body.print h3 {color: #E50E51 !important; font-size:14px;} +body.print h4 {color: #679DCE !important; font-size:14px; font-style: italic;} + +.anchorjs-link:hover { + color: #4f7233; +} + +div.sidebarTitle { + color: #E50E51; +} + +li.sidebarTitle { + margin-top:40px; + font-weight:normal; + font-size:130%; + color: #ED1951; + margin-bottom:10px; + margin-left: 5px; + +} \ No newline at end of file diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000000..1977f33fae --- /dev/null +++ b/feed.xml @@ -0,0 +1,13 @@ + + + + + Intended as a documentation theme based on Jekyll for technical writers documenting software and other technical products, this theme has all the elements you would need to handle multiple products with both multi-level sidebar navigation, tags, and other documentation features. + https://pmd.github.io/pmd/ + + Sat, 14 Nov 2020 09:11:39 +0000 + Sat, 14 Nov 2020 09:11:39 +0000 + Jekyll v3.9.0 + + + diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..81c9ad949b47f64afeca5642ee2494b6e3147f44 GIT binary patch literal 85908 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 uQr82 literal 0 HcmV?d00001 diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..84677bc0c5f37f1fac9d87548c4554b5c91717cf GIT binary patch literal 56006 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�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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..96a3639cdde5e8ab459c6380e3b9524ee81641dc GIT binary patch literal 112160 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 zÄXa(OuVc#WCZ;~FHG?TQj@WhocSr0db5Qw1U)oLzzS$XI72bG_luVebFjW)Zk z^NpQ7-#a*a_QCJG%VIvDa^HFRlIsr`^YjM|f^m5dZhsX| zO&)(R$GUOZ>P-O1g%S;RzQ4-9B3!F*7C#o`oph!E0|63!H;H#z}z7LzM0eCzaEQK~cCy7!c(9Ce8krwjgq&kfQEQFd6e{=g|P z%jjnJ%+*i@YY^f`$tMPjWGrh*&EApq8f12~AH{GvvYF+XiWS669QTKPx>_5ot7kFZy@5(= zFre&{XSB{ZSlTtCb*q*CB)q_PJJkF7l#{;jym$5Az5vqUb0!QHtbk$rvHH_<&K&g!S*SM^zXKivBJnud6jK45Ci(kxc%m|3DQk;n_S zp;pzzl4!}Dx721w%a1taiy7y~0dh*K203;y58`pL1Op^Db<3-_z-~8l)y#0a78dSpI+3_yr{+u1Tbl`i z2L<8v6@svWm{PKLfQ~@s&_inwq?{TuxHIasFgS=|$~v+*Wkv!#h;#duTR23G$n8Mz zKtP~RI!StP0XkX?-*Q-v(A!yq6!4zWPaYes1z=3kJ-sZ%@25@reB3`jjXs78gKEkk z^OMDf^`IL>Lgg#LPo<#gD23LXWJ>C~82UgJBYm0Z4>z}9`szqdg5Zp0R2V`vA=Lnn zk)~%kN)YYgwTB&v4ua6{3b;1bQ$1=|PV1ex>B@swZkpI(9A!*d-m#>x??|n!Y-yFM z^YSV!W2@X<%evfEV=a|=dDT*DOXb?d*FX9FC$C>Dq7ht{s#?4)G`)Vx?pc+UvvyBe zJBdT5X6kR3XzWCwg5L zvsw8e(orUPI?8UOmQ=wmPxMl;M8 zMdWf+CQfb<^a6ucFSYGxxQdNXsdL2%nN+dT*Ef1YjTiu=YA4QsTUt3e8g?Fw*OQ-W zp)~0HqME~{*x`!@j$C}$6m9P5@HS6^X>9VCyaQ~~fxPucLI{HjL50Wn6I-C~GwM5F z(=aK08CMqo`+-dDx%lA0i#zrn*|x-1-|>QbRU5F&y4qH`UuZAt=_zVY9$CM*pp0gD zS;1mL=omWd*ja2GS5#l-vMt$mWG`&fKYIIZpsk@Ti0?^d+5$SxEdK@o9-YGt0O~f_ zXu0!Jtq-drk60Tg&faD zM{9)Q+QLQ0nf`cDn2sZ@4x=^@d+TnxG-fhdhfu%qFWJ7rqwF~P_S;7fxPNts!*>*x zfbVlE7jO;dVJA*X3I#Y$X%79$eSly5if2VTnugQj6!@VOdYq)$DCQ0P=wzsGGixYh zr@D+-SHLnj?Wm9HHKz1(;crKR0?#On%9Lxi1wU$H%-b3I3LN`(obHJTi=-I3(0# zz?NqXni+33ZEAB@GTHT?k9E+#oYbs8qD#JgG$l4to8(T(qK=V38F= z2ad;R@y^6Rxu7LbadzjT4$unbFmA*m`gD#kmz%bMXQAqnu39Fw|n4 zmgaXTR~4Aq81o6I1U`ZFp3sP(~@2oxqYwstKwrL39z$e(w3m`)R~|-tQytA9?=&`uQ*V-pKkg@P2CC zK1Ri9xKGG0vF*=R%=OQ~qrnR1TuTrA{P{=!TQ@3a`pi(tPTWA?ru`}dm*YN7+RM+GGf!%M ztNG;r{Ve&Pj8futLBzn-4vp75&SnzJ17zA5<|zer60{+FVCt~c(@`#lKJ?Kl{evbF z`bUg_(>r~!WP1}#IbWVt-h^*e?hZYw+OIQRo5A{4UV#1Ds{b(} zg*0HnrmcSg+&XtN=%;mN@DP#XfxfIwJ4Iw5;CjxL4D_m29RBDuGGz<8ADfNoV_Zjv z%tcn`@b}Owg(@=t5Q|5DSpKn;C-FA!(+{2l%uPneLiigs@R%g5voBNiFU1vd>FEqr zgndP$Xp|J^ex$yWeZ526Vh9%*d0?EOHXnX26A2ED;ZLJWNhxlr&{~)-qO#!SVghD4 zT_jFc$3#5QNY>i~+=g&90TTv1l*<{b^T~kt(50C2w$j_5RDL^=n!md@ne6TB4uw*E zeW_5WyN}Mh>6eKtn(SxYOh&j-GKBvjhgl6F*4rQI3+eqSzaIO3)*HfA@W!ELWF;Y9 zH{+wDg}wuPUKkXjjy&ZE(jwuAH-;O-V3UN@Db2J5>`q{vkG`D@vHpXKfGi@5@k_KHSz(Wd3eDD@YyrOe@b=W;zp4~i|IdTmPB}hTW4U> znJx<3jJ1GBRH_h@_c{)0jYefByP6$5Mc8!o$7O^UB>VgutLrdf1WLu zYER_;Kgc)3lRNrQE;8MYxG2n}GO3@t8eibwVy~lIXSyuRP^&;yLE$NjB~^r8Ks6hA znaVXo^Hr%%nmeq$hUcJgs_ixWqEz=qwayfp8k4<_WOpbC%c%hsi(Poe%e=j2XpW&= z+thLm*o`>=^Kx+vhlb!kPy%a&R;=*%-HhXHbiNlpujvD3tCeBeNDZY9S=zXQUdTTg4gVrWc*vW+9?u zZS9IJL;4Ebib`pQd_YL{O$O{K%P_C^9QFhm{UivhD z>-dwsKqTd#KZ(!F-MuQjRj;_&Ztq20F6`(63Zx?KirqsBZr8xvZsK#gu}V?du*{%< zDXaxLL;%51nYA|3s&IO%4HY{Ri^9H{X#oqh1{@)VaQfD8EmOa$Q68YeiZ2awX5{T6 z5^F)<<{tZJ`?|oJpoIqY*7C!MtMTDe}v(!OHL*KS+UPmWj`Bz4kIvRvV(cO_WwH ziUS6R+h&MpI~rH_?wH?DWTv2Iej9BFIaWFU3ZjSL^HP}iG|y@@i%>7X{KB&mlo*-& za*lmuC?m%b>|h!w6fq~-MHh@?@D-?%$o$2vVXB^-)aVok0exm(+q||s+6Z48Jbe1# zg`;kr{NUtU$}c>aTygk{Irq)E;_!-Oe_QOz8-93X>CDu<2d`QmZoev6xAE=`H{5mO zfpvFps0&`jdb;Lybj%yR*?rM{9+Sy)-$je|PphIX;XEZV+i*1Sk)&dfF27tZdb{u`P{K0?aOP+6KrpG$4IbxaGaHQBeOJdny=ddn(qL`pNN4`Pm~^Oug6V`5G-AYi{}N(DHt5BWvtH# z-_MZ)c)7TR9C**4Bu@5~E(s{VaVB6hU7E*Y&XZpesnEPgWYGpZ=plJbmGbNI!xK*S z4JMOr5@*2 zxgh#8R>Rp$l#daA3^_}{BrU0$_4TP?l5IuBJ94FA)*nc&?(s0^^`qZ%~G zxW4PlS1A<>q#@HGA~_XMV*kCGs765c_J8R++B5X{T3)G) zN7oz5BIONWFI2Gm80Zh|RrrtVL5LPdz%RETR+0SQH)wWh_VZ|*6ua%|!Qc69L$?n*&0bbC>e~RirT(s=*KVfw|0kt`2IfCN z&qER}Y}sah$HzI_bnc0ItmIzGoMd)P{mIT>U{`vn79ZOwCU+o3fAk@dw$y!uFNy+y zo_mpVZvpy>%*UV!SUMfBAr}f9Ljj!SFf(Ds8kmh3B(y>9k%>i>l4+2eYc^&O#65NY z)pN$Kx^LOBcRxAac;3p!#{7yg7o9vmf^48ktFs`2K`Hk|jJn_4yl7H>a?W8iBvjLQY5M*xwrF0^>J_&{njI&tG~T6u zIGV|by(2BhowBq&VhtDOFKRaET~XoPh}%=%7He;GZ8pnxCqzc=VBKYK6J^NAJ4v&Z z=Al;SX>jo^j^RxhuQH%H$QulykREScEq+8J0T28COS6c{$6t8q(Ffo7rTCY>-sE=4 zO_o|$RiGkL;q?VvYaZX=a+lRybnO1CE5kRQeDHtNR)W9JzWV8I_VBa%3%|EXX?kjV zWj}zk^0j`QOKXxO@%POMgZ8*X(0y--{+TlN;s2~5NtdM2rntVKgyP9gQyO{Qn2H&h zRJBA1om?w2QU@bdB1Hwpgwra5fC-~W=P^=AWDF>k{1)1%W4Q9v4Z69~2hanQP<9=j zw{$R;jqBLFZU8kAf;s>i+F>Ov1m4RTiYct4ubrl85hf~Mk$mQMi$!8P)C1wGXRN^0 zR3lZzl+n0w9g7q`@d+MwNIr{fQV-HSXRcgEmc*R=E--sqIQ1l6JHuNOmM4G)eaMWC z^jWwZYjk3|f=mv($%9XUmF1{DD!UCB8)cizrL`27C-Sv=_>1NVQZOmxCdC#6EvxDga?9e@vXIV~;xKBBe|HEU{CjxMPj{(!E zAJL+vs6!>%UUc|m5&2|Y9M?8VUY&62WZ4Y#U6Cpbka9YY9fLh@e0XcMJb%LbS^6tyWorAn~(w>6~Irz@e=kr;8xJE z=k6O=Z^(v6IuO(v%UlDGJR~t4d~hRlh~&vmIYxy_VJ=J;bJNG9RMucK&^ydhA1jDq9apC2R@6h1 zt*^-J8df!qn_d=o@KZm3N_vX#rtocd{o*|3?Mq|jrR@^~d5h~wP{$>)e&|@S1%M$I zEo+^XxtNvLVFf_;nE>)YkJFqBWS|}3M2IHQR8d0-ylx)}t6bku>jixGAj2q=VvXQ>BzZ+KwxOF0I@yi6kVubRiHKPN(17F1v$DP+!e%KBY1F2S3ORr!;&lAV3vEqAn*0x}T?%>b;1tgxD-k#HoB3WGdtk zbA9B&rxpmyoXnYlAyPj4*n=W1xR5`fe8;m+O-ZH6dF4IBKBm%yZcLN`%sU&8W#e-r zI~kylBZ@}8eWb+VQv`AeiINcFiMDa#?L@X_LFn^?qw(_%Yb}aTu85Cn#F@>rZ)QvF zxozXhBU3C+v*m7!tcNbI>#lusm_Pe~UzpOctfe*R_07w36h&Q?b8mWr~Y2&b5*u zZRqud`7BPSahA`bWQ~ooP(Qt!Hj*~2p<|J@oN8%+)4oAdOn4(vPlQkpA_S!ba1ECj zNrX8NL|wyJ0f9`S3#LTwKn$RHwTI#mmC+0c(3F7DAzt>`Q9tkp4My8-ijsQv>8p{; zM)2T@sL#8Gu{}?{D7>FmM5%t}IWy~9M%7hWz3T$ex$7>ts%F}v>5bxh_ue~DW-xo) z{uB4I2(#b!juZoCr@8E%`;>rcUzN>m+{3I{huJNaFB1b#1)hs);LCO_jc&O22+NSjkSW(fD-} znmgiDApqb&-nta?M+D{8M9ELxOR5(>0r@krKtz@&_~(ql&SYu%~rVbLuUQ572`X3^a}+4qpVF2hdkw@yP>sFuPPW6YZ$%95rk4k~!sFHDkP$6%oH60W*|Inh}p? zN-`z^(lYF8oCcgqNwlWK$=;3mr_oVlhdK?3mrcYpL=m|9T@%V2(<%_+t3b#L)Tm$o zn*1NLItHfsweo9nli*oQaBxa0!c`Phod)bEt1{ReOn{|@-srEG9M_@Ia|(G{1>(?>4q-od-BGx( zQ};33Y6`=U)+sk1KhW6Fecnc-Rl$YR>a*tpU~C)bAUzhbzH^MqCFvWEA6RpbFl+VN zO=<-aLZNbV>cDYVcOAgw)N8p_wR9*(JQ<)@&>nA~8eXW9uK+prCjC?Q$c0( z(4tsOPGI^CId_Vhp<_z^aUw-lC)mPZ0A%V8S5lIukA+AqQo!;#tvSatPjWMqjBPg= z?Yh-1Oj4j1BHAql9$W|1r9mHZl#|a}3a}4*hC9!~V+8^9nQ2X#f=R)~5I#j+ zL8?%_$Hi}&frBe5Nt5-IX4CcRVz*~ysAcoyHn-#`wOf1+v+Qabx2`DTH||o+dw~!bTPF4{=!YwEmOn#h|XN=H-@H-o9Ha7pt^;N zOirO2V8c|ml2akhZ|h(IAFLaokijg7S{(@&7}5|g29K!xjSVH3ymBvRPMQDaM`mwD z2&j_MAunIjBF|U;kMcKBYc(Vt=6<7{?dtA2&gL=M>XuY4m8Jfp-1KNyw{p4N*e@B9 z;J@80Z$2|5U2c{_Xy?}1-@Vp_@_?2?CVowoF&Ltu0A^86`!N1QlmRk^_O-i}M;@`{ z2b=DHQF-J=<&U)enl!NbJ1wnc!pXEOCYwUxfyv_2^v5R8?(F;ly%u~)#@EFSf}@E7 zt{+lW7PFsZLvL-ac}M)}8iZND#OhqGH6+C~BMkmISG{n>2z@hdLx_7F?yJX*bRWN2 z_~i(t^2qPw(_n`QdWEvs5<36z?+Y*CbL#8xT2`mL#0w%$8u@)H6%|b_=1aJb3i3tY zN5m8VJ{Cg$=|-%I!|E^b`e$mx->p`Xjcfp>w!p~3vXKpNhCawPKfGtuh8R%>vGTNf zshu!V>Hh(51hmtz4ik2sp%0QgKEy#%ENjHbBFLVIORh^qUEw(LF3C}8y?x-CYGIZ4 z*=H;ddD(i2t*uS(wkb_=DwY0z`bXje52fFKCy}^Dd4CmKDTE$pZ=P6j*IlR|)0j^s zwf_RmB`m$LL2!k2GT!Tg+Zc1nZ!7;Ecq=_=G8ETpUw*%2`(0{00Pah{L;u^PJvKY_Zsccc|l`T8Z1@ySy4T{0Q3`4)iL$UcF#A_qu!Uz3yCqYx5u7F8it_d)&g6 zoLm1!@s3I4@i=Km@i+K|^u_KyOIF!kZl^l`Io}XL`;myCatu^K1YOl*;${RL@XzF5 zB8A9a#jS3op$umbNb=NYLuN3JiJauQ&7P)e(ASkdG%0irS(>2A^_*MD+CMb*SV(L4 zhF~Me{GH8gr9$~KZzjHpou_c6KUeubIAmu!qq$0WUxn^H4-riCyfBaK1*)|mz4r?( zRa}PxDFO{Fjt@(smdp6OT&Wv>qXo^wQP30)4po#JDk zdzOqW2LTFZWmGEH$n)HC{o-u$vMpEX}C>N2g_E1EUj5RO%&PUV%*7t zqCN{L<$6OjCR8!tJ?PZyUdgHcaC#0%L3Ime-?AuAy=QehEVsU8VopoS;s(y)n(zEY zdHYtY!RWNS$d9=ml;QDt?bmu`o9tbTZRhw^|%-%dM>FFW*@sGi1M| ztGd^eyI-_8jRx_hkv@^xv1&ryG{Z81a8eFIfwJpBmJmi}i+F_GsEWeK9B+5nPRk&W zzS%j|$&xOoE1FJ4U3vrhvf)%h`-1#49J$D&%ODS}7PL^RYTyP;LS05xQ-pN{31y&= zgP_owenxqQtrOORAX5&O^bxFJ$Z{ioWnf2iLv(M`=H8|~(Wv+poa~{Ky-}%Ec_vMm zv-A|!Gh~&)Q&>umIECv5wny<$?`GV$Au1k>;vt;uiEcnU46UoGtWT0PZ0qFC1G(-D z**vpOvE(Rw1`kzLr7+whm5*({Zm6+Dr)w0xz;}z3l9WUm8hUU)!<@DVL#mIXssd3< z=*Q10Z>zv8N$eYU?-KV7-E%*t8O=8FgnTJ1??5u=ZX~EQflq?0V*vntCl5>J6;C)z z`zXlDqt}~z4R)67D|I@c)o`|>%Y))QQPPsaH?$8}$I)mJOL@I;{-&u+d@#PDq0#07 z@5S{sU>8WI-bmy)%z4Fz5V?5um6imRKD-o;#twWEDlJp5#Q;D!mv!LIsUZdLWvQZA zR7jcntZp!SL;Xhf2gv1FR%|fgj+e0LxR{<5RfJ;#)_Bg2RsNi_IWC4XaZT<_`vCW- ztQhW5Z@$$fUXeSShUmT))ZL?c!ZDwY9M3s~0&hR0>mV)(3^ACKTsejG1?YKXR z>sE*IJBP*U0QRqPQV1#i>3%V_G(Z2A{I2|^LT_%t*n_v!cQ>*Bvd|+|3q6uf3L%EM zsq_ooOYy`l`T0w`b4!}rPI=@Dja87ww@wSx>!RUggCf<`hB$_1n(hd z&}@m181~()ADH{23J&2u-g3APp!z~tZb^pvD@rlj#5!Xj5a}$oVo6bz7;ypGM|e`w z*~rclKVaRU2faYJ+4-aW=QV|m_Zn@03KuKZSKW6_so5M5V#Av2QQQwo&`qY4-uT$% z-IuIxef$q*q%>hGcGg$-!ipmF#QZyG5j+6w_?DLARMntno zmMkuR5FOxpU%6}Sa_Zahf;fQ+wPFH0uYb)_WQq~XMXyDYZ0@{Zk#+C$wd@VM!6^FW zpyEfGm=|o|5d6>qD0@b~aH+GTDBpuLGZu^a&qvK3N>_svOvt~(z;NS^2faqkJB_GZL&AHKt|isDrN-K4x(_tq*I9!)11@(|y>6 zyjP+#Qs7(A5vYg5~wzx;y$PKKHnSPx|fw$je5_I?FQxLK0teHK5(a3nNNMg?ilm)>#1nO z*Ep?zsdhX7X|QaK)p_VK_an-!cBj+KHoa)DTxxMGnB%nKhb=D4<#aC&+vbwY2hE{) z3grd29wv1;g`ZOyp(P$P9H}e^tleH8#8(&T1`!QL0c7ehQ*nd%fOBhwB@bdy^wVGh z5D?%0LivGSZ*>01W&EWpY8<8ef!^~2htZ%{e)3B`=6=tL)jg`hraG-_Ew1@aYmdbx zjJMnEPGwBuI!koc2rJq+GWdEUdQgklMy;-w#KV9iZynOI^aqaWF zl_a}U+54{xM>?&8Lo&6CS5>YBBCu^7mv^d z0OYC{R2fm^BSwtyeJm~xmUf69ikuZhzd%<z*Y4kaCq1Y!2kX~5~*9#P&3 zu{*yKnZ%CHylXbDYziyCEEd2Yzj?RLf7Gx0=4a3 zd=6WCp3cA5uUo;+KUWT1Z8sX_C7bA$>x&-+&6p2(pf?z(o6H_WbY2>wG_qO9uwSra zsZY#on{Kh z74lL77})JRkwkIa69JTHIctRY<)}kSbQ~vqwT+27PeUCx$Rk}}B>|})K%=$oS~|hf zfRlEube;329osFsx|!QAopWnf*{#kguIGz3)gn2b(K3D08_Dpkb4qWWbxBX#YlRh) zTNl;N((9XJ9W~>sY6@MG^GaH4JIlxE-%Jqu7+{vk_P^kll`P< zAXEoT7qS;*-&=}#GXkoT1LUkzSH&?7130FSyTt1F(mU^unxkYJu{!DNa zxzH1IER|TjROIwCL#3reDQOx!s%*vvVJ4h8hopZfMxFMct&EUq#%t!FMs<)M5)mC1 zBcx)>_(^c_Ni}eAsR}041VdyprEiJEzU2?Nx^U1<2&=WLqayQlVM6dJmznmjDoCe@{yx#Rx@90py$%&oxlo_!xr`{Ahq!c z+lJ~tvX*CW4{l`5X%E+k_8ECDp*BMmP(o*J4WV~Lorkr?kOn3+Si!AlY6`Y>@b|Me z03Y-6%bB@8fxLjDpiz_#8{FmD$9xnHJEWkA!$FGfY>Z$bASZzaVz_8RK-rC~EaXH& zd0FJ~i(2a2J3DG8rN4fbN`Dw=>e?}}y~^*5+w9TUyw!HWGrMB_6^G8>b$6jselJ7v zO=tU@zFmJ9yMF4{=?x3cROiO_o#)S~vFmkPbdqJqLSO!MtJfX=o>0AYD|=Yym+fYY zvw6YO>8*qFeX#D0+yi>3?w?QRMpV!BdCl=9>i%kO{eJv84IyPJfAU*rs{O#oYRYwI zY!BiCNWM>k4wnp_xmwnoe16|HWUr>M5Hwa_1%UQw*|yRCd2P+Mrw z7UW04+k*SQWXAGH2|nueaA_DRo8jKVA&aX7$cwx^vQ0wm(IR4IATKnvoBM1Hv96JA znW_9$(pyESFPXs>uI{V~xZL?Boxu=rhC6C{{COp@KxEg9g}0A)OfR`S*=&g09F8hc z%(g`O&nlD_Z;yxC7R}shb^Eo^(it&-VQXn^k;mn3t%#RJTb<#B$*qDA%@ZzzHyA4q z1dD{}6E{c4py8&62x&g6^D%J$&~i;1M#d`ScDY9Lbd6}(GrkcZZN(n= ziXpjQBmw-kM8=3$mr>t4Fc7$554RBeNLmKEq8j@kFL1|K0G}XuthTYfp`LO(Q4mNi zt0$-CSU3caK<+n0Sfe36&cNR5;*>!f@2aDOuOL<2?x8B~2yBDLFhKl57BhY^EAVHv zuj0)G4j2#$o*F+s{cP9Nne00g;?b}{J01yn++H?TXC4&^PnZxY8D-X;6hw0{QD5M3 z7pw_-E-&_LnQ~b&DR^AQ@#R+`b>RnBRg5#b-GCRrT8Lc@XmNMia?Z56#7uoi7cos` zVNXF#UC`qR*3}ev9-lCQLsn1Fn(%h^X|9^^FL%@;D&&FUy1Mr!DT~>?llCgtmsaN6 zW2{*DhhMN2G5@B+^`5d(CG3McOUpb@7z(UjXK5_ha#>3-7Rzs*KCUjn%pQ~2bbDRh z?e%H#J98^qWSdQHsaSaI;d$k)blh4#50Q|iKmM_Asc&uLPcPcnTo8*DH1l1sm2Fl2 zTx1vg4C!*CPB^6LbG1r*b^urD&sZyl#>Wz1-0aa@t+`F}5SP=jCQ#^z4Cb%CHd;rR zxsJN<8M-Cgc?pb;1dXSLXd=P~3_{mW>saW8G29@C)$&ZhI&Fv#5kzqk^$C$N%**OT zbUIQ<#Oqwyu}6#wQ6(P$`A;9A;tO$~*XxV3Ip>@+(7Zu;e%&e-TD-Ur$&uM&y}4?1 z13P8_MsE4y#g(HQ;L|;43CLR2qrv!uj(C1SeBu-cDnhz7TF2F0S!M+m=1s8E9(wb$Z?C#>U`WOP#S~;=;AFqIGrA zS;w$T1cL_gN3Tzu`1+*u!uPkgbZI>vZCA_Y59wIvcI$8~Sz#FeJF`taxOSfMpGgnR z#?!H`hq~w`a}-Nsd(>aY4l37&1#daqLppmkfAGIyJ&U7vk;j=dERC*OxSSGCPo^0i z^JJAWtbx%*VZQOxVC*B0+n8qTPWU|gJ}M1}KQo!qAG0o#(dhlC%C3M?=FcdxkG zsZ6aZrj!ooLYu9Ut+IOt&SB}VxgEAj;ewEOExGt))+>_#sVwm12a$kq$}I>Uq`UFr z!;Oqzfxk9CYlt(5BjoN)9BX#^3&-|)ik@;J@A;l*knr06bdgJJ)H%Le=u%cg+;)ea zav~G9GQhs3|84FB1-JaWVw2hNE2ezYYPFPzv(1roTu{Oh2-xf`Cj8uf)$r+}>QkVz zAfIPgA2q6_A#2`5-X&TmLE-pVrd%ErjF}nDh(gd5Dw?9=aM*4`NIVqwg3V@MKl%3q zdw)N9gWYNqGUwvH%=wb34wiH~ow0N(=0tA$H{cIuoi}G#7DYhxED1TyOm3KBOzr~GMh&Oh#eE41p$~)4pls_r2GOO|r z;U3Y)FtB&u3$(! z9(5t>d~doKPbo=(4`9hH%=vOw}52Y^aiIep#P*W+XBbeQ~`{CWY z9~K_wJ9$`spn?17r_8_Hc`0C3@ZdYHuv}+gb&cU+ZfKgHDi;V1%anwYSk@yL*~t<9 zU*ciq<$mGO^o(AH)KRC$F?Y$A$=`rJf+7_sXx8F8UZ}T86%Nv0Me_)20H%)%oLGqr z?vosn!G*ct(Z~aykuW4amVu3c@10A_F$|C*5ejwa&ne$TV+mr73Yl1~-;szHTQPQ;DBZAh$tCZ&r&QD^zf(RauSz-#mo~P(^VZnJ(gk{(rJ`iPE6=X2nmi}z z&I@Use-Ik`JzD$Yf%$Spd3Zp%^|Qk^k44rAhKMI%5DSW%N(%QJXS>*_+gj~RxM%G2 zkYmmqhtu5R*s!%C|Kf>DQhNO@!X?3oL0?^?GZqK(BL-bTzFr?0a0XUS=yZ>+79Dzb zaU#p~INC6WQ0r!ibzb4totd3@ef{h|ZwMWL~B(sfU`C&VjmyT2kf!DFc^E`09w za7k^GNw(do^xS2Z1Gefr{_|*Yq3ue8qkQwPl)oQX7Avol^xhIJ(`%iUb&oRfaeq;f zG@6y>(rDq<@+z-;ofBDJ#$RAwI-zEfyJ!w;_5`%D8=9*;x67}CflJoqrA1vlPg=iT zYreHL(|K^1&N%Bw^$p1=^sNF>(+4>W*j&B+jNPZ5UcwA@GU%=m*4!@Cs>W|qOUaq9INDU$q*nDoUyd^&G zvQ*8I1>@Rg&#t@WrW>|wesIdVp5n?CYbNhpR$o6WGVY-Ac0u9ThKA?_aoW^}8IlvS zaeMYW6AFckaU%cYox_I;3yX`#l_V$BE!(pDIq8zNY176wI8EA{Hf|Ut+Tq5n`lxBR z54MQ4+r&LZ9Z|R_P&B=|7rvEVK!4iQzz%Ym5}fHB%MjuCf70g*iS*8a5BCT+i5CpK zE8Kzl6Kw)_C-24EZ14wa1Qy&9T(2eXEUjD0?19}(-jpgkhfsbnr07o4M?#E5OT`jo z)JZrfXpy|u;T+IVL_S2IVi=?}Gt_6HrDDGe`FtTSJ09|SL%xBNWvwj>T3e-A$;xT1 z3tA7hmY21%sZ~kg+Z$2?D^nXM>&zD2l;v+MpQ5vvb?gZJ-da}PDi!$XJ?g(#TFaC< z<*lvd?Av9nuJoF!9^fYS?7<5e76E4=sj6txp@%p;9bHbVmmc7)l4R6}Z>+@pd4! zgLXrR2Cb$aaip$vF_3XOp@kE_c;Oh7zygRIjuB)Jic{iy+>VtLzv~cM7HjY!TnDef zM`(!!mB&|TNq~J>{ct>{t_WB@DJa8AnvfWcPOHF4B0fV`8XI7e#$)O~E!JmG0~Q$2 zE4&h4Qwz%Nq7AeJ)wP3|!LdEH?{$NQ-Xa4Vt=c>(dZLJ{T-yphUC+AMl2)dXd4$2n@< zh;u4h1Kq^Gk9)Cb@;BqPXd!CU%!@PaTqp}Sn+!dWYmWgg-)kT+A_)KO2pVWFppCC8{udReln3=v)G-(Y24E>@>WZw`B z4y|mEwSs6Za~e#K8O@?qhXja{zDc%-Hu&0!0y7E{RAPE&w+fAJub}h$qJfw`wmjdl zCg$`Riwi3jxTd=+CYRLZ7u=n6B}>Zvvay)K`;-~23mk=hPa;%TY_K>5GrT~GMX}g@ zS;W6;oUgoGbh?cfkM5{6Ng#aALLIV##@rWJ&5}^x6(5&aUovJQ@T!VeHZHb-)i4=@ z!G>aI&}py=-k8(wb{U(_DQ#)%OpG?gL*cM!Wma3j9+Xxy7t^9D%qE&FT4fH?1NKU9 z6qwzJ3}EPPLAllGx8()x1;%1sxjgy;w|nee+e-zh@{+1}YZ3el+UFFOcs=8a^&&Dl z*48s|e4Yz2=SjJ+)MF6!du;|$(v5+dYD|%>qDT-;23Fwm7P7Ju$!0bCm^C2leKt6i zIGEYsFj%!HiKs1-ToSlXxZoiDo!RcP86<-M-x#e3Os3X=+0 zqxXA?#^&cEc4pjab4c=CX|Pq5inf-TDu0LGt`}s3uHJ5&64Ps|@+SBSm}`5;vu<&~ z84a1lGDkpwOAE8Pf22n$YS9R5p91sk(iw30=JQo$@T z>BRHqJfGJKPhzL!ni{n0oQ47~hA}!RKa|H@fKjn(U*aB?hx(bQTwPhTXDg zv6X54X0OTCVRaa^d3tTgDrzh0$Hg7rub*0M@Y}rwlqq~oLx=mi`pwUsv#Z?03W8-v zJC^U3~LdK}s;F&3A?v_kvTRKuVoAQK@u28A#pxjIYSWDaf5(C@%zFB>>9h84n|R6OR@*z`VPEWu>#$mw{EIj58TXHyKWZ)d z=-p|57SCtw`nz4l^4-Gg41vV39KhFt;zuD^BYPisS;P`i#&s;&Rj@TtYf}8Eny?BNODM%L4^jh1 z1g=Q(I-y_oN;k!u7tN^YDal$KNks>f`8u)8C*X+mu3g4V<5ctc&|>SouJ z)fUv&{pjX18{R&;uV+T*b;`-_ZL)V|PMAz5?ANt(8!G%JzfNbj2OKl};bMQX zvT<=$(b!F$ZA)6C))KGPT^g?oRaS;tE0^w%PTFzk=-XZPP2Xekb)7SM_NgbzNjgCr zh?)w>4KHAQkH90X1Fe8;eb7;n=Q|;kaHRp(8M>CWv^F$qjaX+ST+(U50}O`Cz(u7Y zz{K~Wa=s_sr6)4nFLrz70$&oNCn&qI(P;H z(uow=eq?O>Bn|QU1GHt=3Mo3_Hd4_#bW@DVM0_%%P06772sr2*G zh)GIa0zCchfz7-muPUQyFCJ2Q`So7FY_OMx%8}x8)C1g0__VhJ4gkyzx7<_-V5z*m zk{lW(%4``7D%GV6+WaN0EhYZ81*589WRVt)ATaN}8xrU-eM@e8^Zhq(TcYmRCdsb6WwBY6w;nTwjE^aAS#1{OEx4Z=9(&9n zOLkU*A6dy`hGN5Ga2&K*SV`tb!8G(5ye(mqyOo#W!KGdHnZ@$iGA&%ZSZ%j#bC^H- z%wor{tXBQiY*v3&UdFF>%V(dNd7r1`?;{4ni4m%a5?v#*rsWh687`wdn=8-e-cZ8X zWS%V?K7%*`X3mEVO;0F4d#vZDrx2pG?+_Nu*fQnv{@W=v>$Yc^^J^6jXL!Mq!zXUM z@PbiAR^4Avn}#R)?rBxN{mXp-5Zv|S7yfz4%Pjx)uQA_?d$hu+QAIOf*>>ZJ!*$Lg zYboZmsv}nI#O2f*dXeK~|*#Od&10J;d%4VBg!@lh zdl8z*V(NqHYn0yzn#;fYT}<#(@Y&bxktS=dzzHM=RgUx36$#)51PFSvHip#^8cfOO zh9deCS0H3@1R8KHv`W&pP^?AJHY6N)YVoOn(GQshifT|gXhRDbq!NCJP-?Jn#ZGtMs>{Vp4HRgyEZZSs*V=lb)E zk&QiHZPkjBt&BO%URk#5-SswmK|^_IzD3YF4Mth8>a=;S7N^6L_^&w$cM$wNczUhF zs&^KbwMSd4C2-|})@@{=c&%3aEctFIv8rfPsizHv*nf^}ixuWcvfFI-ESOjgeU(2l zvD}uYm0hAVYTN|B-&lHWFVlY2?v=GJ@SBoo^3-m~FKAs3EB|*dTaa zrhvfAvZE;6T)#MGYA>!XG6+(jd`WxH#YP)UI`}8ZHUqhqYEFGi`>8w)I%cAJ)reMI z2g|o6Iw%v3HF^O`g71 zifjeY1bJNY7c@Y=#7psN^dzp~o%l!o+Zjl-R4BI{XLaw^l1O8Sve_>tRP}>mD=a;m%Ke#Y| zw7DpM*FOe|C)uolaPh=Y@HR_O29Q~iRW>bK(_K>h^zw6;1`8fzLKRa~jGr3I(4k+iX{3Y{$ zmreXdx=eZRmn+%P0ruy@UnrQO&>s^2a0z%dMCmcBNbIUs1JwvtU(jQ#0ObPEVFh0U z9m{kqL*bODlA(~3tPpcRqS~k#5?Gw08n-r{ihYPJ4pT|2j5%f8dKy)7hK3-gS|ca;CIKrD~FdEDyM zTPmjRom=gW%$#1azn6)E=qPBKx@}Uv!!@d9?ARKc{gO_td*am1TfW+n*V%Q>qPdeA z;6Jb=p!1DQG#3fJnU~IKD|BN1h&NoN^R-mPgc{h&Jn$|4E9{-*q3z~zOPtGsR*)E3 zsN@{<7lnJ6%DhN_-8OrSGLZgg_BQDkC(E*b+h&V1XK!P{@$+{o|74b(^T)GEr{DlQ z1)FOoOqjQGXAZBK2W|-~Cy%=U#UHMSg=E0IX9=2;Qkf*6*#wnp643iUFMvw8_6)f| zANagLs+@64c|v(vRj)xV*+3J`c}?;%2RG+DYgsAZClzogjVbH4xN&PH^C_SUmO4ICO8rr>ThLnl)?(-CF&D(md*C#8;e*#D*N zy#wQ@uJ+-*Gqb(-U2W59t9n_jR$Z%NNtPvB#Z|U!x%b}t8ryVJj2mFE0Mkn-rWgzn zHH4l3N#I9u5+H#<=*6~n_?|l}*|JGu-akH<*_k_c`n~6#d(Ly7)APzhA6!r52OlO` z)!R!x+zCRU3*Jv#kwEUD_q{e&sY{F0OsyL+UCMu$Ncecnb5eSxpu<-P%s}wgQ7Z#A z`qICGO%&q{EhSPA!C*|IItNq+;V%ZHSjjIudE6(uK=DQTg8J$*U3`fxsg;fGFcT*A9B( zAfw@sNQe`{T-wBNsVSW>U7_=5Akv4gr;yt&Ob=*ehg57HTG5x#6up>zTe!rN{ITEm zX$*g6B?`IP`svWGL4!iFR-0x;UX|3(F~SL@O#g5BV^0FJJhP5S6uN{}*3@%)?IfL{ zKDJp3!GW<+dD*%|_=-J&!kPY8G5+Ku#y+_V&1LxWU!a zn>P{QQ%;j#G}2FA9FVUfeerm{*Jfw*Ha%mvdGq6OsfE=>a{M_FEo+eu_?P+J1$zqk zKLxW25KM!q0C|HPCvQ+FE2s9_&F%5Qeg=t&XaQiS(RR$>ksLHzVZ;}oS*2}|K7S1y zlBZWOeZ^2%WWj9p%qsQqQQ@H_MgZRetXTYIbyv?lrP8q#`EA-5|58jgwlcp}8@twJ zuIh;89GrhJ%~IJJ%ef(%+5sR|iEJFL9KG3WsT^0CbHn_@wt)dsGM|5m`KhC7y0_wX zb6UmtlH6Mt9JX2M$}LfOdlgO^C1oYD4to0NA)B>wTuE-<{61PGmUB}~GNvMTq_%{A zu2jaKoKGq!b-}Q)m}2NLW2bL{4jX8+0_+OB(p1byd}RpTgV4dhLDbBUfe40D+8!iD z)#6y7nhXb{u%LX%cs@F#u5L!&Z}U}IiqbF}50}O=2l~UMRe}76L#$KdG}_E2v(1P# zmMDESXJb}Q9VbV8Cd(H8h!N@Q(`7*!-wLA#Gdr`qG#nUXPhXM77-2D2h{X#07@7O5 zW9W0?qYlPKh|!vxL>;2(qUB%_zbhUS6x5z&~WM zaJ|^g^)ko!=SHjg>$8I?Vrke@}T) zc0iX3n42gOdsu@Hq(#US=o)+8~vUE!3d^ zb;L|#N{+9KNjaUy#|DKpbUOBJjW%Q|)77&&Z*=a`u9EywGiOK27fz0?&Zu4x&+16a zGi6szDh_nmqsz!mm+TnTTG%+EFy1{mUf9I{t8d50<^D-6+lfBiW6rbedAYf!^{waa z1^#?%o~i&&P=9GpMd_4^OnqAMRQ5o{&dr@6Z^i7qxpO;L# z0-r%lm;~c(OJFZ9#v6nXgVcv)x1iNhHf8KX1UEIp4YpNWUI6a0H65j8on6a1$lhfg zbd{~CE*4+1Z8QJd-`vmtcGI>?#0BL$rgqi-L?&LyIkaT5rKhxQ@#41D#e{!;6>0i3 zK4Iz({)_H-ygPoPH&VFWpI1FW{KsW$*DhPdzYQ_<_9|f=T17MdUs*Pxx-hUk`Jpo1 zqMZ32^WIFQC0*Hej5)?smbSO!2Joj$SnH{t=k_|+|G%-F6DD+yeRqQ^;F(=9bw}(* z3AtUPWjl+i7hktzQCkbYTXUd%2eTbF5bsV-tIyd!&pshJY2@QC9UVEUqhr*_qc1&9 zSD2c-rs@gK`MgqT@hWG|RC+DSHhe35q``TY1@q=CWEWi|T7~a4__i4IZ1igSx|pKV zX{3ZNm{JwkbBEj^`s859h@lmpH36Rro+F7A6p8dRQST&OaIiAt>!2M_KSMG5h}5i+ z)?P`-m2sI&YL*smBxJ)!#Vy6fEligyE6e51%5qW`(g9F<9^1iw>dR@4R0j7S?|O|i z6&5u&7x^o-f0ygoX~%EymqnUGUg;ju&-?d@e%`~crDrK7mq;}hDOIxIZb^^u3X)O70!xodnY229R+}Mslt$WXPe9-ak7UU1^K?}eLgx)uJ)3kG9_@Q?u z=u`BjrD7Baomg)L!kF&jf|X+{2OfCv6lumv@;CPnJWH-5&8HrGU|{>RC}B(2P{>m9 z;BS69^&nC3CjmCfW)|K3&3E@)Tz(V(!-J7?6mS{_Q<{dNRJ9bDcGHqcTdACKGX= zz)2^^I7f4>xnL#9#PieP)@w(6Ik@rltT_@jVmpezKw#@JB%fJtekJ)iY2HY#ef8B> zI~jBGU!<9Tj22wSn6Rgb2ZQED?vsH`<|y_p=dVPaCgvz{zXImXfzDex52p%Gui|co z`XjY9`tUvCxKsMVh4_|XYdR{{ATp);SQO2Q5w?A)jb9i?EUnROhche6e?PdwY`K54 z$!LvD*z{(kZu9LAY;LK4{LNU^X4X3V4KfXhZp2aRNk?Kb{Y@4U)l=-~@@bOfj?CAL z%zSM62Oh&J`RVNUs}N=WESJ6t@p6IanCKw*Dz90 zzfg3qTMCB)HiPt0sVY$oUjyVgobVJ6MF&SZG(x?=5H5@c!XQ9rD~v?wRv2P&SO_8| zgyF$0w#GCd56P1P?UjYozyum|Gd0AF(V|*b1DhyR7+jDJ!Yn-@?ucHS#H>=PDMLd5 z3ORzVNp~6}D2f*olUPHpU9MEqXT)FCE7IUEpokGuYH7&TP^ul z<;U_B4cX$(>YP}X$*i!cir8?jk5q~EQjJ6*m2*;Unjv4aWwI{ZP~&QnsnXLeD$9?X zoH?2H42@5jEt4{tV+M|BN^|sV_K%^XC31($YG>AOtcvp|3KowfH?h95NGZq{#?(6b z5xo*cuFCkPN0G^{C%}afW*VE{xORGT>4I35J659$9K83~-suc{l;VKYrE=Q?7H?Wj zW-Ho+Lg#6*sLQI%Oj@*O%e5vhZJ9-N|wGi!70;C^p1YRop%u*r{UGpyHsjMfgg9 zAAvrHLx8-d?T8`_sh%ew6{)i;W*VGbfxcWE6Pj#naIVQ+DK@%Sv}}uuWlF7-$TAkr zD9W6WEmh?hP1b0>%~hDDk?XCj7M#F3jZx|FDP;<=!b-Xo)?BwYae?14a?HeKv6Y7z zrqxy7ShjD?hV-=2wM`~pe!9~Y-Sh_kFa8bwleZJ0iq27;`9@8PugdMuk!>r>xhLD~ zA6MTM3l$kPmW)Eo)=Y|YC(CkPhg7vAU!zs1a%?7<)WoPc1+ZF-R-@HRI2Fma1*5IzN;Du^)w?dbKPr)`G5R&(aPTuXWyjTH!U9(cPV56Q`qL5 z)Ny^#HQJ%Jjc8u8q^zwyV<$x#aYx=qbI4&JM@Y;p;iYALbz~H3|c3L!i>fyp%1b|rd1?sD#?Ock6j(;#y z;b0%F6@!}*^@_xZXAJ1Y#L9*scCAFL$0rP-7BwUe+L(l6Y1BSC7vS1-$`dNaz(%hV z(~FC8(22}?<_aLnO*z@p2Clxo!^U}7NvnCAM&H25=Ey>DV5o>j@~x-hq>vWS&$Ff`1~`F34u` z7#IyIK>P6$i-EA=_Ptb!s>KB#s_F3 zz>sF9s7zec;gl3JKvy5vs;ycTYt^Qq8**?~?*4mL^4foLvQLvG9_DIK@}Hh1wQR*> zWYbB#y05Owt{R;ul|ytGm_VV+FV({+kvR4HA0*!*aRFBXZc#d*CSF*w(9BO2Vyod~ zMmx|7@rzBO31|sxMHh+oi*6S^D(XjjNU88CdoOwxG9sO2MT3$>b61(EUWiJkUZ{|GU01Mb!-7UOHv^Owfh+I7pTk4D{7a1&vN$xEGX=;bgkN@AO|6MD$;G2|LcW zzZXcRWP$@N>6vWNw`8mtkrXZ1ht%7maA_E~(HlOMNKjiiT@Yb;?kfKuONZ4xZv}D% z0bHz)hsFp!5*8fcyHiYDjc5#Hz)~O!t`r?Y%=B+XuZuo}CiXMY!g`ob5MTHU>nWxr z6cPwehVY%iIQ)OwX3x_;&ewj<-A~&SMe)ITBB1!r-T!~x{=c@*^POKDr^dBYBDy5~ zDXOD0Oh^B1E%9qBo~g&6!46A$^xw{W<^W-hHsd&Lfd7Yu1Wwfxg3VBZC4c<%q5L=J zTYd0!g<%{|=UqKTDVS2+In0?GJ?~)y|A)H6P6l0s0nSXv^^1Fj*&nR0nB3CIdIa&M9q5HZgfG=`ggFTUDxl&FsyqnJF5&<-)ovMv}BtQ*ogQ^sCGgWY6RqLioEZa6#@^_7GYu(-`EXbv6h~cq}n!4^snm0!;tZcb{C6*%(uAH~Fz2)H2HSH}oEQMV*ju^Xs$Rir73*8Jx zWjf--jHyS3V$Jlgn3l`r{d{2HW!k0KXyEy)6W`u&!?*Zs zf~`e#It~nec`?lNpau zeqc!YEjbpZKbY4;dYDb0F6VikNs4@xdPLG8s83(%V@2UQ4H3y?AW^EL*B9c(WmLWn z#i7yIaqJR92f}@bsV+o+Lqps2zQmw^2559}W$*?89mTvBcPR|KSb$X*?Iuq4@Qe6G z;cyJYDls@tx{`XrE4cPC?CJ*|vdizQF;br&U zdv9{r(Av6NiQ@3GC!c&WS;hDIt98dUn&aRmW9YB0+E4m|aoywODlGdIihf-@$S-?b z7f;y>d6`IzJTI`Dc;K_hL(V%92uHjuWpE9$(C#9PHv@BV;1lTNTIw}f0^TApxWI5i zk@h|>HicA9bT{~%ywXx0L81fQ%OvE0;kKGJ`uAt?NB@*0;@2*HbvBb+vhq|33BUR~ z{*S~ydh%2J0RJzhbHc@|YwlUGs<3NCqA_^`ckd?tkMp~qO+FfrfqqZ+=QoJ);twv- zyO*vny8XygBipX}v$KB7*T_9pUI4}7t5`Hfk{%gV-N z>G@|K>z>L#@Xqpi>8&FarX3I5bHPQ2f142|OE#3&5e2pF3iB+1yOQ$xhoA$TMz090 z0aTZ#`acXTboPp2e&`uWVkVJ~M*L-9s-PERwq+FvdqtAGD_^?u%9oP6cF%J-=C##& zJO^6Mou>3PP4n0{9@?_?p@+6^d1xR1{V{%&>X{wuAGd!(c8-~Z?xNSVd%F4u*R0vQ*v!7=E5@`h=U=>SWqEn@)=@aEoqZ~kEq{}c(VC2s*%!uQSEwd=(zc8S2M{_}Xrm%yQ`VUf+n9C;KxC?dG; z;TOW!!sN-~z-*ZXjcp!H7#Rxziw8vxvoqF6-vB660wE*jyKXVfd@4mqVh|-UHV~sg zLU9Q+dJEg2W%w!R`%0-+p23XHIdV@tx|8O**re^8Go(IhbS}gVX~AgxL0Sf zun*Somp`E*vpi0YF7}#dA=-Ds2_{&V=CtcT5k6=aCq19HU z+DIJoDFF#hZMyY?Z3KpDq(RD~i3=stAr1xC(i!uY5OLIAtq{n6%OrBD!Z z9O&-J*(Ttm|^PN50$rgIt zRKPc8%Zx@@(w^FcD;7`~nqoAOS^^`JK=rB^|}#C<4D)YAHSrI7|^y`0aeZ-LD{gQCiSQc7H4^pQpfjJ&^U}n$wE}xb<;BkY6k;hRGVUC>!`LiYXdo{YpuBDia~?OJXRc zu~9>%=|ZUyrGCMdI8+Wm2C7$+Veu>6T=&!b&g-%q7IFHHrGL8{7z<~w?+gC-*X}Fu z*`@9c+lciKHjUl4D7=M#@cvi&te#Ad(zWxxLnL>u+33oC^&B4%X-qe+%#dfBTr$U8 zrQ`Fkc~_P?V)x0so76s{&$o^ol`jprJz26qLzOCX@;Q#6Grk9k!7LYzrkRrlTb=M> zsKERM4%0Z4+o1}GA#|A%4ni2#p-@mbGzeN0Z1}8jRN!zUg`ERQu)4gXqx_VGF2#9a z=P3(~%;7$Bh6j?z7_(A($|6-Vzk7?*ad#2rZ%Q4-@&4&cnQEzW++6-${w9g4_S11Y zW+VY*}LGZl!k7nif*X(!F%}289Zh z1VdX0^|TnJg~C3@7{zEw8!}RRqwfg{DJ>9L=}BO-(h;>nuF+_ST5cg(N|hR+xX4wD zz-kRr{GR&UgiLmfUe9PIrlm15xz#F{k+frWyHdfJ&5S}h)oNu_YO`6b>czH3A~%`j z5)IkLe`q!*Njr3(I}GNf2~j# zzsa=dWQdN|Ns>>Je-VXLDVM6rqQn-td`m*!`1;Fo#Y?ZtAyoeL{TE8*7vHPI1K+9D z-wmiepZ$QOfj@jEk@FU2F~8#nsnYNR*2FKhy?;dc|r6jZH2U%M8gqt8ZltYIZw< z%=r`jmfO(uQe%K%!&O7yp)9!~0JUNelN63qg&4vAxy4bK>0s6362?g0B?s5OhD7DP z{Ee@zB?r&5eU$W(8Lti1e~lH5AA45{lXKVDfxCunkgQ=FTo&piQuXj7U_mg7LCzbI zAKQo6+nJ)(qJ-#TNES$Z48W%)ixt2OM>h=jJFQx=Pl zIbotZ2~-~tehJtNcaU`o75_UGnMs2elOm9GV z@~PuAa;7-e;J2yON{^XXRR%fbR#3%wNAbAGNU{wPe3+3^x)T-IbkSbMB5sX1O5My_ z+p5+A4ae;eY=iXbl-WD%Y~U|;sYsdXqye#&VbXU}#B`*&rG*yE3<(K_y|xPeq*O&X zMOt`nt{jAHf;g(rM%EM?y7G{JICcU29ErcC2$47bf2(HlRbjos&FZOZeq8Wq~i@S3MI%PZZuOj!p@I zOgir)aESp?KQ-92_btN|;8)x?L3*!#dPoBGm-SIr)1mi2WJ~e^i4_yI2n_fD2>~eN z0-T-xn$Q1Te3Sqm5LJq(gA|4MGa`io#&c#+^=A?ZU_|MEw(@_9z626GF}oJZuKwU^ znR#Ynj3wikkcW>$YKYT+$ob?~A^{2Z2mTg^y=(E}F1w?Kv;k+zry)Q!SWLea28XlS zUl}q7Q;vpTA%g(a7|Q60!2zBMgi*jd4^>MC5rkf7wde%uo)C&Cy)P|6%Y=%0-Y-j_ z-N-nV@;0Q-L86@7bmWM~xNV!R#AFuhXUzi7u;EFEX~G0UNf11B#YV9M?GQO|$Sl$8qvnnLGaJoOopz6@XQ0Q(_@kz>J!Ph-f$E~?_ETyx z{&jEZ9D9~{=&cD%rJy)E?+7Slh~|YQyNJFPjhz3H$dTyu*E}+EOs9?|I0Mp}Cj060 z6Gb;spzZ(S`^RAKnEWfBteQq3L)KcUuOD*@gg|*gO(Eozf@uUHuCR|ly@i5+`8=&l zcZSaU#H3f2ri>_A*&~n0SgfSU{-(jhYBYa4x13+2)-sne7In?w@2`3zICBtZ`u1C# zIfyHeT!eBP`8UrkPfBoRmY!OHm4TvA7@BE^fgpc-r z|7QQ8t%OsB(&u(e=$<+G@jnk@5Cq>di*KyJEXn}uznyYS7~%aF$B;ofFk~c`BlWI0 z0L=vbIh7?5R+yCW-tre_GXEg|@Y7GT5v+a7KiEce7`(o^jEqj+%DwtD|1eP}Z)GDH z1FxEM%mc4xWUvvepa9mVC1mc0{%zX^-Xpt@e0bp_k37=zA(_iB;lJEQ82=Hno4+N`GH!^WLPs9NEE1i+{#sFqYk6=E*n zn~_lOWD!*|X*J;^xWyFpNiC0*9W?b-urrnOOt$or&u{0n?5QS1gx~e~k}0agtEaV% zBB6(FBeq+}$ye^!bje&@jjFya*47ry>8Pz8*|EHK{q1*bymE%d6I9f-7Pq&QWsj+? z8`-(EX2V^~K;G{*9R8Fj{&DM)$4f%lD{n5p?$}NI=eI~~{8t;Um}wfRsjV-GHe@w) zb~a>Pxpw^(({=tFRlF`zHX>EFi$1a-lLv7Fl*g4uR>e?$PT+_?9r05|))>GefZj=v z>le$6kkpV~BIN%SgH$LawV0Tfei{D3^z%FJex~!T&Sy@2{fyK3OgB?UHl+$)BB^w~ z?5tCj&=zQ7LtqsWUdcm|kd z@W=ELq(pWz>DAO-5u(xC(qY$niA?+R`~3SLxDYZ4^Y6d^XEN<2Ch^E%{7UO1ACPS) zJp4c|-}eb6wV+fOpOD^M!g)^cTj_g57%IlLf8%w|M5`|`#EJ^hBRK&GBTynhGErg$ z%>8K?4>euW;7%>D?0`Vg70P-74h4ZeA&)(Ri-M>yte{ka9Ck zF|iOgv zp4X9pKs7$+j{G21+;!5Y-#mi@cJS8{ivo9+a#UH(XaK^(%|zf}q@Xs6 z9L6G4VvJBbehi%1dXpH(AjJd5!${Oe%UqbPQ9&Fr1A_sQq8 zmvfbV!s;-SGk8jaasI`EW<(JbGP8!`t3Rr%iIctK#&$;nn_aFIf;)*$Ce}0E*WD30l;)ejBL-dS_}AfMe_CL&c8CNJ54rE{%Wv^yb~y?2-=u; z!POJ+M@za=uBOwR!4hx=izLS&hv@sIcFaXUfgw`KmqGJjuyk~yE3{|Oi379-ycn@r z=LNeB-f5IhB%;EIhrzCh_-I5xC_-Z!0%p8iN2qTpRL=yDICge8b7`%m)|>L!;;!Z>T8;(J#~3+=M3`52OReS z$MiJKt?n*z$w0>_F$a4kf0x{?Ez^vfP?h{@bXj@(n2K`Cta-E9DOH_UUqoJgNu|in z-1?AJ77Tfi1=5|{RmQ(zFI(7hYbBRCZn2ZI-Pv*3(fom@awjpS-p?cU&#D!_?KsVOl#=SjLRwtW-M>IG%fiM-^PA@&NpL3 zW#F~=9ln`M;G?372ep4uj~+FJ1pzBg=^sTL+zQwUEf-Ed=pWS#9MuAy9pwo{RSFbA zP$=87VoYVEI{ITSahSyz`84KWV?(&ANw>U@{QDsP?TztzGkEm;=1AG}2NSKWi3gv- zPq9KB%v8jC4*q4$jYQ3v`j-3Z$MCy&o5jmGOk2MF?ZX#Tc8~I9wJ*;@NB{1iMjSxL zVyRt53E-4?~IJ3Q6+*PkBRuQq7 ztoZ$+>=jy5y4eE*&UGV9fxIlvCYf%q7{v_Ca=9S6Oe+b5LoUVwQdYPmo~&j~ne`k} zMCTEjmQ~Qjs-c5EBk<6Bp+AolIErbXP5GUMyY89)Tue}z1GyKCamZss(wLvJ)=>6B zipH^0ZPg#t30ka$X(-CfuB*$=WbKi#BRAI(j(lF2Dq-#^4$+cOG5>=nbSMAOEmog5 zt)SY`DNi=@A3RIip1+@zy~!-SWOeL!`xCqXBim1>se%j;Nq&YNnI=j<>#9P6K6=%` zYl4(j3?S~X>n6YE|737!ZJHHJKq3 z+iyOp5oZrPe+jd7;O~R?kQyh81(`tg5q!DSJU2o$#lg-`VGh(BK4@MS=%|IyjR}@e zm@<|Ko^DVri$Kcx(ZPH8mlh);;Sz;bCms3L+Idf2+R<_8lk;XAX}pA{5$Az$42Rqo zEF{Kj4ie{U$&*7s#Nz_2kahAeQvSEAcPQ+#OXZAW+B_Wo2F}t{cPSE=Q(Pp?sJ?CX z(haX2NM+ZHgV&-L29~p)O$!}RBudvXIzcxFIn7y-aTo9dDP>zw%jeupu0F>RDi%Q# zA6|)n^c-I&5miH;KO;_vc0#`#MAHdU5)y>E?(p8=yo2w~jR0LVsvusdFrfqb0x|~g z4H7922sU9@gUCfggUq4`dL+Jr4E9o41V1nxKIy)5YY69+?9O>0H|PEwTUtg=xz0<7 zI*{xMs*$@y7cUCiZTUy@vhT{W+C7;iTI_|4l4<1H$~?c#mUlES>&`5@JtMnR>%)O* z%oAYsAU;D!#BRqav+v2a+kLs^*qNcL%=g<8Qfa2$4Dhk zgfql?=|IO?xb+y9J1qy_kBDrDi{|l;v6YhI5a2>MB!&K^K$fXBbX6hf3*LlGI4C(j zU@PL%B&^@Q$nL+=m$oR)cg>6~b@7Q4*DobSf~M z`AU^vzJB!;x2;=~8So493ff;NPH!l?3q?cM1L=hvFWx9cOAa5t3CfJHpwi!81h<}3 zmu8!y=|xE|-^cV*km4YBVBbLB@#7LvGX40OLKXuB^<0K$iS2=2;lt|S#*+gw8j|aa)czuI2xdhGacoSiDJx*#3fum z7y$Vno?!R`Q?_7r=awmC9z!Vw=_-E!PKJ3?7!j@V#7>pv$auPI{1J;Pbr{xcC_JmL z21HSj2-#eq`GsI&jnRglQl>FYL#GkUAwt0KX++kLYAqIRo;bGZYliu{YV5?#oA2Mk zd|lmzm5E)|Un4+~Y#y#LCGX!-zD}pntt&_9;^v7`-MX^P_irv+r;|?H%pM=EItkcJ zVJ@kM)uI~K2SDE3*t4+s4}2$MU{w zFdE~NmOja!;{Qgee+A0kM{bH6qsE3)3YA(hSuR(kDY_N!DQ(Jbg+lI-PnM?xuR~4I zy_)+BP6Ph!pG>PNP%RDl?5`^_DRORGWG_&N!(+E)D9OEf-!|Zc@tYnI=!NMuVE+WS z@T9oW*g$dy55$=rU&`rHE|feWoV#!EQU=3_q3h$0Qn*{;-ExRAz?X*wkM%O=n1u*} z2BZi84~DGbKujV9Q~|HZ8WS6(ppXa|1I%<7J3Nc|8^ph~3vrA0&iSh5!hK&x`M>gi zjefcBqUx{a>~)jI%T}%aVfCuZNF(#c8*lLUbBX^j;XT#-@+o%GaZ;~(t##9(Lz`M( zQ}It8pTwSec}JN4(}+-L1j!1cB_NdqoeDuVQLGD<2s8uje8J*yGja|dqtYSug;N71 z%`STOHkD{pdi}Tk0lLeJO1|^eJpX=gv{=l6sSRp82fKrtLomi!7pL2Fs0Z6!e+oY@ zBr`s<%EZsC537-U#u;Ropo97OKkoi7N0CI5=P%$dNb>qf`>uz8x~?XwBfHuo`ZH$< zI{1VmNRyeQ%7$fy<%cDRJ+rzy=-9T+5lsFc4k4GS74sM}TcOq$w~lHn4+P5FM#0%I z;mlRX;*>Zs{oI28L}#1lYa7U%IdF z7QW&rzwcqPU{n4reft36UV!ptpOLGBTyM();J8sGf0Iz-D0!Y%xjN9Y5Qlz7t_t88 z>_4j{|G@QVR;_Zxicz$_pyeReUQmQm>dYAqFt-@G4}ci>i>w`P2Jx;Esez94(7##O z3_>(okPh&moDY^ztiYgY#jKB&SlIbnAKZ$6(qLCRtTA5 zrq*+x)=xEuvRG%=+O=I{*Q^;k_{;yqTt8uC!<6JSYla2Uw;XXwSbN%Jnw5c-D0Nnk zZSP$E??;yV((@zBNh7SDguib^QGU9A#S!9|yEjnmU=%F#Nb{UI&B+$610GCHGz+@q zLA*2SztzISfmY>1GxF(;G5mPV2zDgkdx2Zl$R@64JXc?xJT;y)z5|7MH2*l5gH|l& zM)RY|gY7K0d@!0W~6 z31M6iAU3E5s%^0LXUn8_ zMgnP?yYe;2&ssp%ygXXwOm>Sa%1ikRWsXeJRvwnKLFRharR86!w;_?5#_c98n~UVm zK*2uAJ6l1Joi3A4&C;4x8b!-PjYg$h5&S5o4NYV+>_x2)H!y831AvbFv64TTG-d@c zx0#E~*?JPHb4V>r#~hP>A~W9S$nMc9e1_!HFNREtR;>)&zn1(knSFPi#HhEvPw`YV z2NLz~B!q8A^9iN2L?3k4QhY~zJwd~xLV;>}!~fGDAp{*$ehLIR45y~>MmZpSq0c1~ zH0newf**a@e<*lxeoNpNSBeqal33P$0w`dDhQud+hVsXXgyXO_=%*Kc2jXo1K%7bn zE`F-t>j`r2o)U1kTs(n8vqWm?pYR+sDx-`>68Q&vt=SZVu_Qx4^9$Bd=qS{>0@fyq zSVa5YYk7?a{!PZf%VZUPZ=bwB&TCrdBvr={O zKM#z%d+V%nM!!!1{1i!$bvqRMz&7&`zm+fLw?3p)>i2`Vnq$%!?g_&|$oY6Q-qnPAS{h|WoMQGBMMe1k*S?_c{%@vgA42w!^Wm~%0(y1{Fl z%Y#S~qbOd2ye$0isUH?4_&2!q9}C%0t@B#(j~_aID6CM7fkHU?<<{bpf;V1_WmEuV z2<4;5%fbeq`Wf8%kA+FJ&*IiW&ph+9a2T?o3PX`F*Whmz%2?4!5v?boOZ1Xf$hsqV z=XxO1JJCamp#w>zEHy+SS`>LQ0J!i{>jO*46on>)83FaaSCDiOjK&t}FKa-5z=YW? z<|cm8m>!eXFd4S!h_wrlGb9HU$+3nNTW9rD2e`UJ*&hCLvC`&AD_uB-|M8Zau>G7r680!! z`Cd}#Eg*3s-ZpwlIsen)n{qt-^ZrOEU8WM7{SlcZSTk+|mG5iu%)5kV&V%io#$vb` ziBvEEK)PB2U|be#lITznnR#F?fq=!FA6BVgh_Xn~!O>!Lv*5&qVNx(rf#zI@-eynu((-ZdJ@iP6wq~bCUzCjX?ccugz9$|$+`T@K{SfoC zzV@!i;dcL)fB43Nn9g%){T3qq%bWYQMkTeoGE5OFLg}02 z#P4uwiV<|f{CG$~gZWLt;dGvp#K2^F_ZQ;=pb5ZetFNXy14cb^fmfRJCu%J}+~<2sti294?w^EaF2fR8d9IKnIYVq6a1-h=Q}~ui zjcZ*z!)!}#VJ^@))=Zt#Z1tPn>0aek8D!n81r7ELv&Bp7vg=EdM|v$S>@%l?lZk~s zqdWa>knj(-LqB+<$H4z`foL!I7>mM@YA4& z342&yOzI0sK~ZWAP_hQ!5K$batq2+wGNnVDV~fte(JiS|4}oZbPR#|J9`&bLBT^qt zcY}$rFk!_Jv53_Krhn8Dic)$Wbh#kC2KGwv8HFi*DyCs@fS?yT_cnlbz;{dC#F^tk zNKRrA+}5WD3Dm~v`RkcmOG@*H|Z_p z@@kmHSczQfWK608S`v2~ZBCQ@SMm{kGt*+vHjhqm_%PkGM zS`NxAMu%J}~lbMa#jEuF!o|i6V)9h}i-0hea%kpJj z20Xk$R|>^8!fLFq$ek8X*kLz26i!QSw5c@hc}~sc5mU(OjO0V_z{O-i*T`KOsa3Bp zWsQnrq{X_SG&{;#U7kQJ;IVAH`qZ9>ui2VYl(S+57F(}*c+aV;g|c9v4=mbl29BcxKFHc9>nZjLfo}N`GEJW^`H#tXVltkvOpgG7D>J z^0I^BaLe2|Em_=;wTIwQyOTHZyu_Op9JqJEz6A^R5$39NC?ZO4t&jmEit2(=@lBl9mF-jn+l~OGCI=3@1cO13MhXd7P217EvNgHzc_aVit8N z5?XMt31#pYutFhHTMGMzZWHqel4`&>45~WXV+ATu(Ou#uF|$Ny+}MXCENAv1q+LJs zI)ISC5g9=Z=xL#a#e}yLT{|h4scmVz<%%mv)yyZuW4khmH>+1}t?` z%ckzIUu17w)w^WDxHjg1Qtz~dY?<;c?On(c!?kz5zLWim z@L5R_e+!uqD}K{l;ki#H;~0IJ=Z?x`uFYaM)Y>ve)LvIm&i~79PSe+du}ft&G{&zj z#Ju7!f7!oh5C26S^W&T?TQY!Y$tVtAu-5M@EcAV8i*MfSwFj~T_Goz98h`niJySO9 zNW0KJYTM2lX_nRl+G2;_HD&tZnJd`wi;@?P8B-W58NKA4O7DoUtBQQ%sthj5=f8dn ze<~}97P$(@V~-`@GPzBl5F?YjyNPzvq=8bREyHoiKYSb;GbYB|R#lakm!ChAXvSL+ zlEhS1m6wwZIrwA2pXt+cavmZV(VEF_T0sAlm-81^R7_IOnaRl}*lee)VYxiRRg&v9 z&m>wmtVY=Ox}$QR)}oNk0Qk$5T!pKa;;PJ@{MSUATs6Mju2V>Xhsr9m>)>MyXlDD$ z?P|E1l>s*`G=ajoj{oN6mn$oGURuErR-tzpgW+GA86-OeUpDd!A(N<= zbvs)WGB^x^(MnHo(3Wj=Ak?sws8}gWayhcK#iAD%=5S&M5lbaXiCU~h(33bUW~#zf z+V2&gZ9~>$bWycfjlEKim>IqD^wrV|f(j`olaVmJ3T_4KlgLt;R4(Or%caT@ zBeWS!h5jO|tXG1lCgk&!$iyzBP?GtTG$aL(Uq>Vm%vP)QQkhH%iaoJJ{ES-PA+|~< zjv`#!Bs?I8dI(;4E>|Zrj?<~_U>==zl2fEid64Myyvi$OgBIsjD@Xmg^bF`57=D5wc=6UBT{EilEYFwUri zg2}{!!hpd7B%wHqQP4O-^aLmpC^=)N6^K;mFivc>prwXzJm!Rvl5^Xiq{?jcS`98| z8F^%hq$qOY^STCqda%6CP~X{>S5R9Y@)Wo_J%;Aqj)DjY8GE-G^7Pd?!IA0t>8dPp ziB_GSuTX5?msYCF-?xuhk{fP{M`b(q`O~{1ReVlfU0z-tdw)UE)ZV2vu?4d$bY)H1 zCad@-=Iq(e`Vj%2{J4Akj87|S?P?3sFD*+Ch8oLjZ5pf2V>c|%3}h1D(u>S1WOM)D zSif7jMq2c|{W3P)UCP6I>*0Sx{`|p)vf|SGL8c%2;@= z$7sygFb@p>Y_Kh8fYbd3^K2!!R45~r0qMtlUTS|1iHk6$fT~7EMPxY#-~&)uitZ00 z?LAG2Le)47*Cq_Wu!e(T*i!WctQ+xtZ|y~pn@(3TE`2T+krBmD_bVK-u~>QBSkyVO zD)iY?GNdh(ZF(w7ZpI$w9{%8q#jOkW?OpJj^l=qB-N?C;xWXYnahHry^rFH|=^0s5 zuDR=*%MK8+(`cfBdnTh{TMt=?3RJ!#N#yD0ut4vDQpBCP`G_2lUkFadtb=8J@abY8 zPKg<46vKHRj7vSr$mEag;;e^v_FUUt!1WJ3=w9ag+p3mUk$U=k|NBAjAAC6SFXpF- zt7~Q~itq_Oo_g?YPY~U7{vdY;p7+;1IDKyFUr7kLL{dJr7)2?8Wdo`Zly6wjsN_B0 zHu0isc)^f^5rCox@rI}dhi^~)Y!NT)D-@OKfyQN_L|Ad^E5Twoz18sbHz5n@wtVXF^&SswvF*6(ksliMPmOnfLH6h?3s)?9F zUnoQdpO0F&&>amBixw*#u<_x6MG|a;5%gA_$cqDk?V-aqJ|%n(f>kV)jKUvD7qPD_ zoLaMCM%BXUy?x`D;+Bn&+KjW}e4Mg#03&7%ldK@5zIA!3#^9Gm*rc?!iJ z;mV(%yfqMg`Dal)5nv|IPnFI4uxH?TCf=Xymxzw>KlXe$4;BBY5bA;|O7wD6s4JAs z`|H$`aiMO1>V70VWU5Z!wiYC$Xvnrtkgpz&c#8;_Kqg9Y&`9Md8PhmFmp`&|`uZ&o zPhqxH3_KpXsEcs?_kZ5_)XH*cLus`(Q)90MfL|i&X{?!;ylms-qgxYWnfj7bKeR5g zG`-D#*K_kLYs5vNj6hvag`Wmwp7FhAVVuS%03o!3Zb)IObR$)s zS~p^9100p0Z3^6H|9OK>yD)R29=E~2sp*%{7}4y`I52;?Ar+kv<+cZ%?(D|QbeF$9 zFSp(AHd{kBU$)yBZ0{C!`7(r!T%S-SH?Q3f8%dZ}`Q;J9UU#++}LM!MuNJJoDQ4AVsY5hoG!cFsMA=m?Hnw`8j1G{JDq8%o#)g`vpX#P za4Yrm@uC0ASY2D!sHiK)mhLGJ?rHt68$!ED2!1g!oiBKiJ}&}Hr5FEYqMt+%aYS?? zLHe0ER!=54(LjPhn@jeKL>R|04oJ{Yaik8uN}#0$kRme6_#=SJA_on=J7-`;OvVEK z;~S8r<+azy^gleoiq|bVoD}_mOn;5JF!{lvbtok_V=F1Tf&X{`b2BRf(C@5!1M^$z z-sn(4dl>CzA)#l{;6FN42=^-$g>>ta7opR9%J=p&Bk2lxW4%sqCJ%w^MtFwfe4AM> z)EcUksuO}igW$PfiXKdr8O2U`^+Qi7ll{_BTsMk1HT5i<{e) z=CrmHHnMSv&z0!_lIZK*PX|h-wQn7Bp|fND#PHGwd;7keRuest;U@=fgl&BOOZ%q; zt7pu*aOLij7pJ#pRi=BaxfSypb^0ZTfpE@JI&#G`3t>&E!z*BfZ!5z1MtNi@Cl0(F z$eoTSgZ}KZK!p~(id5IdlhOgtLI(vJ?1tD|b4upNhK2}Xgm8mb`xm;f_`qjAe^|~j zh5izlM~poog?B`xeG{XbKFbv@a*(cy>5bO1(1L&$L%^YL)hnb7V9Uoz#| z^}stOIxB;;pHhZI)#xlf@a5dSp#(*~`Gde6{3ptz&; z>uBEyMWEgTA7Qa_LJ|WS-$2`ppf99Dgrw8_cpy2$@JUq*l+d{v#5z?7&0d)9gf&W1 zheQY``4_@I+p*eank8iA{kJ@BC?m^BI-fpszF90jwxhD@KCQx{HTw+r^&BHIQpum- zui#INX{_ZB8NAP12ktC zXK~QUF9S4I7#jtS6p9}40NXK&ww<&6)Q!;-H%gx`Y34nvw~V(`jN7CUOsT zIwwU~B~w~m$;ruE6VXwlqKVX! znY?T%d13UL%E~pP`SLl!xNtGXl%FszhoO@k#<+CEL!<~&l~rB)zcPymUCAjEvk2X zDQ*frQ{kqMT54)qYA(8HuKSb<_YFIC_q_E;7H-}B53%YL_k|bU*Ym~)D~0o2cZE!e z>JL`-eD$uI-`#NG!LTne7joYYf&FLX9_;3U#e9!UzNNI?`swz>^b( zoL7*9ALWUq2woNsX6P3vhFR*|V8B_fTsmX!8G!2+xQB+<-FQ|)qtxM6hm^xY?I&JT z#=L~G`jrfvg4dEkZRQ8jiO1EL(PVx~&D=Y>p=bRt^Qe)zm8bOl^3LMn1(Q0?sp{AN zyw+7C^9Ppajc%Aaw13T(K|lKE9Ut9x3)cVjJ+Guk<>sE+eDS!a z^YNvoYjPYT==|C__mA*6&aKZKx_juUwd#cn%Q`0y9e4MfSt}3V-Svs%rcF6-)LC=x zoP6Hs{Dlv6-;zw-^qyr+&yxeh3)AYmQ?nhFgUD_-uMYIg$Mz_`_fP5mvSR!C!TF`L z%4Y`}YkTe(cgBtPJaE6DQ>$hcS9@L7VIw_d{jgh1zkU^EgG)*$u03;jdRQ)Yih7;w z`Q90~pFeU$V{W7)544RJSBriWxY$}+WSux{ z|JNoe-17LxFCX~puC0wN9hs`>(<-k0E@I{rZ@fI&ky}h>oM9=*b4+^aSBGAj?8wiz zjwo-!P6#=ZUNpb<4J@30SQo&NEyB8BDE3K{PgTl?KjeoNu{1LhJks$TS`l{i;*rk} zg5%r}H(B7(vI+Bt^1G&6Q$3$a04M5)u0FC_bge#ebx#$ap>M_MeqjnvR{}6^=qZ#Z z^Pi=*{;P{2E6&YV9}zRUH-M`+-@IR*)SI@Z%qc)nQ}&@eM=!ur3K#I3*=T>MV)k6z zDsSM7w2$UX7dU5!lG&{9ON|0Kdt+SWkd*RD$9J#pS%(iPeYLc#42K~-B~9Md&1GfH zE4)nuu$$+gg{5T!YD>yW{aEqW4WM(UdV9Y1P6aspjOV;lm#57B>eFc-g zG`aBb27ZS|hVTS}9v?q`9J99UT8G}Z$N(R{A@~8$=g2>fccNHQpP%S4ci~HK_z~|M zxL*$}{rdt=6HGQp$i{3!qDvPl1@8yUt0*}7&*HN&^I5tieqvJ{S?8Sqg%VwTzEOlo*g473j2Ch@q$Dr+-Z^I5E&}B2if^1#>i?~tJbeX)6 z<&|aVvh%ncSyq>+Gb@Ml8ON~^3JscUTGj!13uFK->nQa^jJ9lKJ_kZynNk+=InLtE z*)(FtSrGT;1D13~oYhtKg$a4MPKWmNWofu?q@Ku=WkC<*kpcIXDe0NNZ|E`&U^?(y zv*jCoU1-E<;DteB>C4MFgaVEwzDw#h1Zgh+L^)lia+bw5z=66>HO zPG^I;OV>fRHSk$_mdhdAMh1Oj7RP$@=Am4f4|>Sy)e*8LAmmxPOy_cdZW9oC)7dhR z$9=5V3oz?qE7#L3SEhlJ^hiq_LwWCK$W~J&9#--Hdn<^e`a=Aj8T5 z^g`wV5Bj|9_ylYQzT&%Of=AXL_*~Ajbm{tVn+OAD8sybxX;HqJ1E>E}U_FiCF|Pn@ zHd$C7E(dXaFK-vVdWitM48V_+p-Zo)K{o_CaUCT;Xd78aBTvTJG|Fsdycz!-m{yi) z$TR3%SzhQeo?+IF^<^0J634vIt=!&q{5Z>ybX}5mK$gEZ2A*LHVlKmh0N$)TsW*>( zV|%DL%1he!>-o%wzLT_B|6u>hG_F@R=Ob_$e5@1KPu7d&_3{`rpeG0K*5 zvbg^ckKr;|2FFI|$1(FDmhB9E8UPpfrOV0$ehTtSvuT4bE30oj2(%&O&o}h0M4Izw zA}nFOzb}9`pF_6qzbikhQ#R&&hB;*0f???B;+XTZG63?g$z zCYoffFt4yox4dro#yZKm-P&!NYddHU+q-esZlmMFoas3`a(bL|oEx0)xyHLT=Qigq z&3!emHt*8Bd-9v}cNCNq%q-YmIInPB;U9}Ci?$VyE$-^)?oa&}_TP(-btmu&x$dR&=vc|H-WlxkH z8`?Z{&Ct(=O&|91@QK4$3_m!$yWCTrDBn^3$%siK){i(a;_%4Ykt;@ia>~L}cAU~v zv8LkfQR7D)9lc`o0o)LoJ*IQa$737EhQ>ZH_QP={<66dTANOA6l*;YnZR3|sD4wu$ z!kZH-C$63N&S~YREkEu3s^;pF>Q1-Cz101H`&dn=W>3xAp1GduJ%_v=?=9X>YiHFS zteac+dHsrpVGXf{Cr`JWK4x|=tgS>MvXrM>0oS#!_YKYiZxPi9P?5uUMX#Z#w_*oRT@(oX_U2yYR(}W?%H= z#m+=TB3(wm#uV?<)`E%wko4R57!xr7{Z}fNhKMtH7xFv8PSQ1qIF=lrY)|e_Ia3=`$1aaueo!5)YU$GSru2TTQrn&>&unckZ{M<{Y{|BzqdRIl zCw6L`uU|3jiqI7gFUwulxJHv%l9rna@C}(LRTGI@#M;RE8kny zvTDPsqpK@dFJArOnyNM0n!{J$v$lQh!`HN2v+SBT*Nt7Lt=n^L?zJnfJ+i)K{r>Bw zUbpM|#P#=F|LF}gZ&k&2Rnm(5<0cw{0%n z+_<@GbN6k5+upqW^xJpcG4qaxx0G*5Z8>(Qx^>T8{qH)uExhgM-LvoBe$VK8_TD@C z-hJDPw`IGr{IUrR+~J~wj57W#qd{dI>D8eDFyE! zE5I^$2$U_5o`B3I?8L))NmCs09E4U}C5l11YLuSFvyFyt(DF2Ski%^1! z@}jc*a;dc&`c(Bws`&v)v!Rs&y|^A+KgAT5vdU45BrqDU>P69o#zaotds<}I28nS+GtZ18199>t@?ev#{H?Gg-^$u zpr@fGdinm7_$JDd{(H*P&_cR43E4`g;Xa81owL%*VI|zsb5RR!sV2m&h~2oF#CdLL zQ;qkxPRF~|brP@J6^|tRj(74dg#Z4N*#hGYJ3*PQ$8%2Wusi(*(~a168ZYeOsXpxL zfhTUA!i7z!^Kcct0C!+Fnr;w=VQyTOT?w( zGO=BQO$He2}34CMVN%54}E1nk5h-bw<@f=>OdR`n5FNlNU=i){2l6YCXB3>1*iC>6c zir2*(;*j{2cvJjZyd{1k-WI9_3R36;cruQ$OlY1E_=snnqG74Z@pxL#T{~5;nJ{avDJ+v1wHW zjiS*shQ`u3s-#nCJWZg9bQ)DrH9inuLmu){E!9yyHPGqwBbr2$X$qY|jnqU_X&N=t znbbmO(R7+YXVW<}lg_1CbRNy7^JxxUKy&Frx`-~Oc{HCE&?R&!T}BJZM~lc$0n?il zq!1|-rdEnjlonGP#VAe*N>Yk0CzaBqQHI)S2`!}#>ZB`Z8C^-s=_=}?AJYn2Nvmiz zt)Z)FEnS0cTd$?{bRAt!H_!&Ukv7s#XcOH;H`7n)7P^%-(`|G+-9cOEPTER$(Kfo9 z?xA~WJKaY+=ze;D9;BW05bdJf^e{a_d+1Smj2@>a=x6jKJwF4w!y+kk5EA%S8M!%q6((CjF9im^+oAhgXi+)3I({Je=dY9g#-_iT@0Uf5_ z(}(m2`XhZrN9a#ST~(_iQq{gpnUztN|rP4-M8T2<9l#j(4pDjQcDX}1yA7_rBQ zy+&MX#C1koZ^R8o+@#0u7CrXrvA1QKwKe8Xr>*f!IvTX46~7vcIFv-Y5=*8OYXoV{ zlGgmHlMg;6p3*ujnY5x>!qHgVp+$T#zuKyh7O^uNO>2~Fv#Clv*{;|-lgYR*nsCTC znbFM2aM+fPwkG^Bb1>Oz)l`2vVu>Wingg*}^S4?M(w0Cn+2-Iw+^@D-Q))D!*@FJK zqWUf2WI{uJEM$vn{#Z2V(v+o|FQP9YLLRv{UhgGqG5%0jJ~sSgcT48jShl{$8~#tZbf@06i3h>QxYM+YE%7*P%>^0CgXARw=M2(O(>c( z+g_PeZ#%MnFn4WtgBY;6VOXJ}>V>(C1glVBDBiB9S`;M~8RK5-q;cC*{rgT^^n$r$L<#e7F$;1O`Una#3 zS74-AT~6mnM-uVJ!Y=7ubf0494uy-zi$xP{FiyRP?Ws&Uf@yt|}{>jmX!2d|!VN&?AjH!AGN*43sbu{Nx`io+N?0hOvn~c{O}OwU`9h%raGJ{e@fa*nrWm{p~z_TaPmUL2uso@~m>=MG@ z$Qf zTM!eKqF{ze!YlJkDW?;zLLd{3VYIY5z?|ZFC&wR0>Hb7evBi~8TU2v}StXRRSb^#a z=7ET8cT2b`tQ3Wk8FZ8ndg929S$q;kx4)B6u)mYi+$+u#{4O1oj1C=Uk1FLesXe5m z+c0g|V*V6I(onSAcrw8ClA|%#uy<*1&dW1NO;^pOgL*%swuuBPqtjY3`^P$*hATkB z6!vw2+=c~x+#si&%F+}MQGn=ObYLni7a-Pj9Ew=Om?0A8xDv6qVs=mYLk_q(X%`M& zOE6o$1f*+$U56ZKW6WOu7)DS?$&m_yELPC#?+gb7XQEFQa?o3X@M1a4;=^>=#?A&- zY4N%18eDy57FRlh5sBd&O~I@)0UZKaeNApE)7i;w7gd4^CQug0tDO83ATM-m=}1(G zh4Ql#jjl}*Pf^+)FN7KF&6H-wxE<0&id^J@ySTbPg$4c2S zlR;n9HoJ0QnTE@kNJmV;a+ZCD4oHiIia~ug%aLxKML}}4+o@0aoaRXw!&!|>MC>JoE63-U5q$>|-lh0+fNI-p`I;tya% z`fA(_#l2V!?lh3mlyu3zqqtgmS+w-QMJJ^=AL42}eDLOWU^dMJ6n$zl5|*Xt<{Umq zbT17zrac6^!J-;29Sgv$^THYn=~mSrw}r8$ZBxzuP{InTt<>ITU7|z- zNt`$&@DGAIcfPDUhJ)_88Rr?GS0FnF$MhvQXVvD1l2{MO(+{KZ>*{mcu@uLuRO$q( z`l>vAW|IhCl2L9x)bN4(s@}_oT0YeAp`H)&w5_GOsS0iFuLh=pnHp+1$xIE*)WA#) z%+$b44Gk8br%G}J7y^f<3dMM;bRIXE~c)QiGvJrF?GyQ&m8s4!FJ(cyYR4Gc-SsHY!@E33lH0cr=B?)n4^I? V*eEM;|ho{trTA6=?tf literal 0 HcmV?d00001 diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..628b6a52a87e62c6f22426e17c01f6a303aa194e GIT binary patch literal 65452 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 q%u^)w#YX9ZIvhtu?9Cy6YRi6f6G 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 literal 0 HcmV?d00001 diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/fonts/glyphicons-halflings-regular.woff2 b/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/images/credits/MD_logo4c_120x120.png b/images/credits/MD_logo4c_120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..c641799fa9dd8a825b4d437e5c8ffb5183ddfcfc GIT binary patch literal 2406 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 literal 0 HcmV?d00001 diff --git a/images/credits/ae-logo.gif b/images/credits/ae-logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..827163e931fe5cd53691a4ff7f20edfb3795dbdf GIT binary patch literal 4060 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 x#Wmw}C>1DBphk@vCr_T-uwg^aKU1*szf)@3 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 YzKGw$oM2N%_D`tzcZ>bg*`DYBAB>Cmt^fc4 literal 0 HcmV?d00001 diff --git a/images/credits/qasystems_logo.jpg b/images/credits/qasystems_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..541119905216bf81c52bd6a4aa9d94edcaaaacc6 GIT binary patch literal 3088 zcma);c{J1w7sr3I*p=*Sma&9{v5qB-r7U9^W<>U#vSgi54`nNiEtJB9u|}8_5sfv* zR(6psOR^+;N%MN2_c^`qpYQjcd(OT0d+xcPKQDEHItQFFzGQR>0D%F({UiYDI>4$Q z>UKRG00B_o-$Q`937kf{2e^6w?&OmRh&lzt0-*n2;QtEpNB^vYL7)@&B>x!yZ$Tvk ztn`37pbP=A0$^4UgcU^X0P0ToAW+B&<{!~8FoGboOkgM-2n2wj5YQh703aYJ4IP-C zf%Xgl(1O4aC=Kl?n!o-3G;{zxD;t9doSg&4$;Hix4jfVp=0&=s7qnWsk{)12vaB=O z#Kd_{001Zy3SyvvGX1j+utK0BY&5iRBs(42B`_VPFvP({e@8cy6I&akSZC>aH=`}a zJ;Z=pmHH82K7j(WLRbN9fY6l|V~8XQ51sL$SBec}kMNMASUow0=}>{Nw8Tf9lJt*s zo}OKR0YU`B%XR}VPPc|k(`^{-*2M~j6Lw6gKr&%yh}Gie`^em<+6qLWVIu7A-XmP2 zzmPid=T%)6&A}ffRG`az)rY=L&i1e;^>ILZn+@WScpRdA-B3?`Z-b(miyqdvp<*8# zQ2XJ+mj^uA(xaByI6CKK&K)fc|6LwqI9k;dxf}FM#V)ON;O;x&RLJR~XK+++vcF)f z&puyu*e+fhQ((N@Rb=m3iqzBvqq{94#9ldKQ@7n!BlvEMQHHVPV_iCol~kfA{_C`Lu<;aI%dn7p zxMpcLA~~GOACnXw$s#ot-^A z)oB)P{c|%i6-Osnm)w84G=t=4yxw>rU17k)+Q<2!wMy4wvGBI)jwHe+l3gTO*dfS$ zM2dN_%3v7~KF&q%1b@eyygVA6zrYoLFJ}n<-z* z8orDb$2Z_0}{vUZK2bU@U7%ePnG|?BknuDW5d0wZR-s z@*E4hWaGE|l?|<$P}70{=T{m@CM8;e^WKTN#Tb|T8RNuB<6Nd>e5YZW%wXP)+I~8| zJ-eCn0=GUr;0mjRpG}kb@O{ZhrEhcpD^YO`{)R(`-Jm0>kn>&#FCmCQ7;Zrc&c2W3}U+)GGX*ajnZ0xM6^k2}k@=xsUj)jF9uB@9zy@Gj|RgR?)YmU)jCJ$>*btRT=A)FVex-_(kqLxE4pyw}+G&nu!HGZ_QCmX8 z^uuq1R6zM>dQ{}^z2=^Xn6w$W`kB!q?!}{)XXAnowQ+H)xUe<;v8pYnwWx&OUN5x2 z|K5au_3CSkqP$fOrCXY%`_4-R%7+J^9JSQ>;tuipOhYSL0&O(H{M;NU7yz8>M{LEN z)|N_k27b9!ZaB?9+CEtAW}m^IVK$2-EN;SNkHyqKkErCud%Uu0ws$;G^^@=&rbkv% zWEDmgFC~!>iqB{)9SgK7(Bq7v<4Mv>9E=rawzB0vK)O7|<{bDfiZ>}#W>8qd`W8}P zyv?4LRwHu8kv!|)?1yXVe9dK74$g*>E?h#2hlbE(JY}scDvW3&#>)vH!7|1%}z!_GN7xc%4hg!6qRd)vFYz2M=5u=AH94n9|EKu)^yY zr}5Y5oDWbbx2~nZ_K_vLqS?32Gqyi>JX#me9~}z|>zX`@v@bV)UJ%gW+qznYwJ>mH zXYsCFbktLOV!{)omCR^o}yPVeR?teW`xKyZ&W2k<7atHFCb^ z2UKqnp~z&f!I<7u&MP)?pan=-8CGSPIEwGQd=3cO$^cJ`0RTbMxv6!sYVFh6V-K8l z@ym;Oe(CfB$EeEIXEhda!D(Qr{#GPBV}owt&Wv*8#UY^pg`oP|Q?0!+6e_@y5@_nk zwmjQ^2_dFG&9*+4s!?26+$vf&K}kz`dQR?)Drn@s<9^PS=aesWm7J)Rg@&BZy=@l` z2t)B7s_L)H_FgV}4OpQ@tI*{c^nFBuA?6qC>B8Obp0HS$<;;%}^9($C2RtG4DPHw=aCL~3H*GgM=UJ@EV07m-1A*xvDoa6GucBeCQcev ztab)TxR>;O%6~QL!%97EF=6FmprJN;`mmLv=qg%XE4(j7&vsT%Ja6Y*gl$s->~K~ZeXDZ=UG_6q|cqEmf!Pf9xqF;iKg(76nGw3LJ+Oq5)nP7u+n z-=Zzgx&`(89rTF`RD9LGU-hlcd|JGIaI5j%zW3WNyOb8NkeWXg7!4Kb7(4i^S{8yN zW8KshBMh99x_U{$RNyj)mdlfTK@Eeq3pcQ&HwArqfl>{0XVy=NX+jO`LN}9=3tNi+ z`XQjcT#Z=@R8#2Ra#4iA+2N_E-4n7W?P}s|C3h}2+}G(K>TG j_df}He;g6zUjMCt2;2PM2lJ{>wfTDX@vc&A6m{}nmTPEw literal 0 HcmV?d00001 diff --git a/images/credits/refactorit_logo.gif b/images/credits/refactorit_logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..d304d7f33504c19505e6fbad8f22f3249cfef811 GIT binary patch literal 2535 zcmVk=PGfmtbB48A9h9N1#$X!B(bV4M=8Tu4GcY#p^6)7`UJWWqOksBTa1i+V`gxC{ z;%O9-o~q#G8a7h^A3!llVgMC4|8x#FDkvT~Rg$2s zv%bXn{P}W%lJIU4ovyl8Yk&WG3T1YPyj&c%!N%6z-t6w|`f(3iJS@G%%iiMU+~VS} zyTW{poI_f0o~pHTMk-W0Fu}^t{BjQiB0)wmDoI{+02@5;^zyyN%N#shikYQyg_Rp9 zJAjg-m87r$9759C-2ZhA+GZ8^`1t@5G^DS&B05%#o2OH0edp}!=IZNEW_{G!-qhLK zD=s*0fRVz?(dFyvzsSwv=jnQinPWaFHBM$1Gf)5;I{+I%^7r%T?CSsxFzIU(^=}X^ zE;g&Sza>ChBr7?Fm7>GT(R78C&|?^TM+kNIsIuhh z=^rUOmZPpjSZs2PQ^-kDY&xn-v``>unRCthHu%i84)RB_S*@MP7rEpa2ju z031IhB{6|XCpuJXH&18=BSQusKmY&z{Qvs^9YW~t>;N7?kesJBOJ&E<)DImovAn|r z9X@_T9{m0NNjNg_^6|RB#kklYLc!-wy{QF2? zc9Ec~Dm+*0@9;NJXs^G>lu#p-P9%bur~ns52pKN`8br9m$pafZiJh(lAV7PJn|qF( z$=@8{`}?X>r`lbsZ$uay~K!@qs-IRcZrwj z?d<>m{{SFBA^8LV00000EC2ui0C@lv000R80RIUbNN`x4gTn|aT*$DY!-o(fN}M<` zNu3#$TxcX@k)p?sAVZ2&Sm#3y2ve9au@R#LvtUU^%A85_V=xz-K(xCPV-gb(cWmfN zSX1DO6ngZqDOxkw!I&TGm_gGHmZ~PNUNt$wMP-*dMPH=5N36pvM>E;nN-=X7vm7}v z#XMLirlTbT2D}(R5&#GXx!$lqCvHfcE|i$y`2bbs3pO46Mft^GiA**lo;2Vqa@YzE zR+v-@_Rmb29C94_m{x@s5g#uICRw58!<;t$atnCy2*64gq#eF!Z1hF!fsQQjK-B2c zh1f}q8*dnW`anH}{E4wlP&#pi!~YHc!-NIP5dw8qOad`w#Q-J53P7_Ihb=)|kErBs zVd%gwe>8j&1PEn}6U>1|r7%DWDfBW!f+<`;#08G<^@1cY_#;aZ10-?R3koPe1S=^l zB~TIz&On3$Lge+2BYMPg!X>xFc2o*NtT@9GCLXn53TdQ~L=tjPK!F^?oU({YB~z1aQRyh6j4Mg{4Y~oJ?lH9^bH*LWGAjI1ih~N(clE~xFGsP^Wz$2re!9)o&1S5w}9DGn0L%jsR zLmLA4BLE7lK+p~VP5|T25Fs#uhAxcFa5NGXfN{+dL+X*C2n{qKi!2Qg;|~IL->t_# z11PXSDLd?7j1lylP=zFZu&v-gY$$LEoXBJ|!T`RUL0OI0VSPm}9+-lJ9z(tmj4pTF zp^H;y+`)taGkiDD1xDlsNd^8u@sAGeID#iOz=9P3&;Y?mNKBT10e|#icmhd50#1Mf zL1^KETBslpBw>yySfD~ZXu%00fB*!jKp!4}1QKqshhL0=I|F%)BO0-V2&5qemjJ~+ z{&AcL!oeTfAb~&sZh*dlB%uUM-~u!15DaiI;SM#V&l{ z3TyZS2q{>_;P67pNL--@+OUP-{DBH3EWvIS(8n5jP=!+P02B-0VE-oIgAYUiVOQA2 z7=Vxnf52f0jUWX(($K?TgaZTwI*1Ea!UYgOKu8c_!vzN6xmEPy7)@wGE*h}`iWLHa zODMqHAZV0y0HGQF00uCA;e}KTz!7ISgcH~>j1R=(Kfn+`1%NOC4QSwjy~uBZvSMTnvL31&9(6fJA~31b4U$ zh^{t}z^H#Dp%)hD!3bia7ZOCb3YWOykbcXG9{ytnD~Rudyh{K~P+$cFuwO$`P=!C_ z=D)e=hb@E-ypGd(AWJ+5}aU*eMsOCEkJ}6oWLWd*!adp`A{Q9pnwHk630LeGD89a06V+vLFWJf literal 0 HcmV?d00001 diff --git a/images/credits/yjp.gif b/images/credits/yjp.gif new file mode 100644 index 0000000000000000000000000000000000000000..862d058921dfc21d76dc689e319ebeeddacd1646 GIT binary patch literal 6198 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 literal 0 HcmV?d00001 diff --git a/images/designer/bottom-ui.png b/images/designer/bottom-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..64015fb7e8ba4f053f58ac4ae618d1b749bdbc4e GIT binary patch literal 28418 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%0D`WHm23@`dbNG>c9|s1%*Hjz#JMXrdM-P7I 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�>|37y;Gnxl`L8%(ou`0@XW^-i!Cd`g5g^^J z>U9elEW-3B^$A!0b}pU`piicJJ&x3` zWEI}Oz)qcLlv+}&97d^}MgiY81EpVaHN&@4ytav$RkuD3*6oi)LlvRIZ*iNDuQX*j zR1Fx72IA|BQP)lW*W=FW+PgF~6*%ebGOY*ARD3j(K0To4WcU{0V^hmVTq*DVLx^zn zr@OB8Yk+2m+cQdU4Y){)h%i8PfM&hj=;1<_0{p{d%yVy4q%t;Pf4Bi(L zR?D%xiat~-DYKo1?k04+KUVl?oT}i&+ny7elHUg;#1ABQlCH|Vn;s)w{{oP@mAZXOx_*X|ww7GO^3X_$)7Z^RyECpb z*}^Z)%d95{(*hGqj1rozUoC-;`9~l(BM^5XmzPM?yCk`V2)Ywh`m7tB6RPwMrc{?A zxB^pu9Fn)zidAhEG~qw=Be5KodYt}PswFh+#w`wh6gO?c7`6p5hN2m3M!3FH{J==u zaN4DS!kY7FBf2MCof8s(S9H3gH}#SpQ&A6%a@=;f-WllDIO?k#{e_i}#I7Xv8CWY((N$nH2>3U`+8ZyFku*TQ15scZX{paQJ*-&=x6_ zwlYr=9DQWtsPz?jaIGyxKw#y@L6S8~vJEiZzRc&YuLS>fZ9ZKJ-bHC~aILN61EGK| z8@g4YN7t_v56o?*%yIbJe{qyrG_kvMgoPCg);thcjkUj!h%47(5vzBP2X1hi@H$C5 zy7)gxQ{_#Yf1r59X=`vhkl9J~iqoUp&f02D5x1R_YMmbXyF}pgO>Uq70G?kEC^Y~8 z5IKi@0|5a*0Duw#074-Dz0e8v2VPjfFBZ-Lz*BZPBu+KzaJN!laF^5;bq-^s7vd{QL63>r*-DS1V0<&*q?H><&*ikEfOE} zlFPpX(M6rsA@8Z8;1R%8cKW%bQoY`xn)QgE)|FO& zdg-QE2F9+37AX|6fdz0eJ}GGpufaoYa|o7mqUu`uTU{z1p1(H_+9);Of0`!(*za?p zZ?yLtU)Dt@IT))qdebKd+9P zOl9q~fR%RNc3Q6{TcivH{X)NRBfx7x9cl<@mH_>2GiH~|GK0&FlK=n}0HktEy;Wnp zMSZ%-o*-tR@CylH&j2wjXm48d=j;dSA`#qHsg#M5H8v^?P`2n2&**{7S9WqH3 zU=LVQ=qBf>2cI-~KUpQ)Y5H#dE#!?gz$*ALt24J3^Kn)o0dPPw*9vxEW6C*qP=+&n*vt`fP9N?w||+>hTIv2~wpgUX{elp_k3Csh5FU;q|?v zPO25w#ax%znRVV*8Nyx}{&{r$V*k=JFUh^AP$dWK*?pllcm7I*wNS8<1NQ(tOLp@5 z+V6JeKP{ccJhJNN9?Iygm#zuTAl(Xo5&>YNdD#E*W(wBZ-lBeYKCkF01*Q@{zToG@ zl(g})Uu69|xRi^qB9Mg#cp8}NQFw4_eDAIlP;uQb^^*gNl%Jx8X-p=$a*=7{=_Qb?eiQWUOFDv#Fj7CDAN7Bh_1HED-YS9cy*GWucKsu3D->6H% zr>GW=lihLqb#BYHPP(RU@N0-M(fP)$+(Xx)p z)Cd3u{hI|KP%wXi{WGI(&bJAoe(tgp$H(}R77F|yr{aH&`~SMI0IUNrfhPWQj>_-B zNTinkC-c#Ds=G43>nTb-f#c3@wr+}`X_-||Rbk%?G5g-EjJ+JgOgZ0;sh)SmpL5Z& z-gQ<@=Fbx+6z36;f93$-S>-x&YF8iP2u?7uQjzzJe4`=!t z)&~Yj>Q8LsgZ^PY3Z)wjynpoLOND*kirfD5=J$HvA2S1ubvv`oQ8e5}P4#<=-KoO& z2b&rWR)_NSbB#W{|M_F$-NV_z4~@q=b8Sz~xs5+I{W@41eSQD)#}9vwcNhC|jX!-n z`*U*eWA^i>PZz{J3c)!XgxPs6f|9>vE|OMeZ7vF_B{(0=blZ78hV?_o}%%=85p2E=L~MXv>Pmq zP+mJtHB!Yyr@pnIKFx>7>oEB>Q)|*Devxg#9vB1ln!ryamWCF^ZlBMoCpW|^!Z za-F7be@6e+y1|_iao+_N3XA>F&ZgBpPBXx6k%TJ%6~hqZbbkL)TD0K7o3kt>|019 zPJaGK)Bk&VpF;W4nWWw%s5^~(^9>IW_}`ED|C;Xqb>T8V9v%12KiG9U%W8goruX{WD>7Upe)RX7i9*2arx=^O^V+h>Zv75xI zrQTFY`cX1}Hv2JVjeHaWj z__BU?A%pHYaQE&168n&IffL<36aO>z#-X)=ST@WFV6N|N?)l@0^PezMI0R0Kx(VWO zMyal>!AR(v01^#gWiJ0S`t(woZ8WPwASM%zf9&$}27l_=fyf>>p-_)&5uPKk&QG zzKZ(II|KxKtG&|fynJ{Ca6}9FtXjg)m#FMs?$rGb@&&wBT?`W5uCM3~`thIG&oAq3 zH|}-{?=*d)79I+Vy&b|;2ax)K@de#{w|E=G3-MBgj?z5)NG+?h{d!YNWUrm+>qbQz zt5f-2CkL;CDB#3jWWSs5#i?-nrQ-7aUXgnNl|5ozA_x7pVH^_wLA}!EP3?b1!#-^H zDY3X84qy3hATnYgyLH&4Y;0l7nTlyLzAm38hW9%=1;z|v@!6ci#xLBDCZnz;9es1F zJF^)Z-dgMd^7l)6E6KJ;Bux*mpI_*;?O-?L{2UtpLA`1h_%9^NZU?G)sarf{yn`js z5YC(I2NgS(s*L6TX!ueq=Y3kBA^g*h?E44MeC+?n%(sPqLJAKTsVo0$tP(E!)mXgf zQ*yGfjWN=%bVYGP4?O058` zE_;SDIac|*22z!s&R&cHU2R7NK+q>c=r5;h)=J435GoNx$*d3!#*vhNbM8cJ=-C|d z>$DK%-$t_bqxy@!a(tS^a+MPSXSH>>z6b>HK43)I^%!vwHqX6^YFXZoxY;kQ%_&62 z!2^guTeLQ(1Z3jz`S1C7M1Py7>TZ{a99bcp2o6PbYtlTVY`He07kRn=74zbwmg~WL zPj(mPROa?TYKfJJ=My<}n7Txm+%ESqWe5A%P_*D4IOIUC3wq-?D?q1>%~O6F;aH;f zFEEtI&2ZjAOR?L6cX3mv!vPa*P?6xb?_TjAM{9}&@25s@ToKgP?N#;0#4}K~u`UrJ zr9BW{yZ1UFezMJM^?3*r%Y2o8>ZbLgspnqW0(`fqbdjbEnE-yIueXK<7DXE@7sVd* zH7b0qjX_xlO+on#A*6w(LQ@LR%jg;z!3&fM4T=@!d3ztdKghm6k5$eTixQbQprt`} z3cm!Of4tKnUd_501R)#F(@PusyNA%wxHzvXl;> zH*r$=lQAf<8c`=dR84i04lA91t1+w^1p4b-z!oK>^DMZ=di9V|zf13S^p{l|ec{)4 z`xHJLi4V)43AV$?&rR=a402g{;ixUKv4|Nl=p^{F$)90LXdnRWLgeQRp1bJIZ3gpV zo5z1Yi(?9G1~CNATgWQrkSl(^6E+lb)_y%``q+v4dvh$^OG!BOF1^xgO}rHP8%NN& zoPF)*NxY<4-{g!BzMz0^n^{wMYT@y%ME?X{=ID*@D-`hh&Loe+IN|9H6J*1qNIXN+ zP|_EL<3^RJibq|2avLefP04K@*{Ab}-S@K23z~03hab%R`u4(oBkb*CdG^^qzmJ`N zp1s9oq|csRmMb{pBu6?i&p{PgouJC(=r_bU*u8ptx{u^o?W1eKfhTP!cx9Zn!2-j} zlXgL)$^?u41?I++4zc9Q#QRqBbl-_KY#%F=*~jPE{+x87;Z+2@!O|6)hE7Ez39?W5 z62FR@yjF5mTCu_MwR`g2I{sDZ79C61LmJF)eyk#P8LUXWl<&Orw<_~|Y+1Td{v2bg z{4Q(NU{yh1e!z3^UGTT^RpoaAgZ}Vp63ozniG#?cYkk0&(R@@*i91NP=BY&Ya75hcA_PbqW&c( z``IkMPCVgWX#LFbQJu6A4(5T4dNnBql_6}|g)v2f%W^uQT6Ehfvy<=E&W+@YE*0*l z8*5B+RoKX60-%W5sE})35lXGHADJiesn&iptIy7Vyxph%_z(#L`|QmJuAwLoy}G!W ziIMmUb(V#D5%3FqSpab!aMcTVY0euYoHhr`cwYNt%R72=IKRk3tYPYjh{ub2-=_Rw zGX0*(;Gk$S`)2(wklg&!M{^*ccQIaxytmyG7Qq>u6|J%v0WFctkKRds&uVbdt*UX0 zD-F@AoE{MvJXb@pQZI9Jjvh3|qG*arhY9)Dw^5G)xKW+oSqiq`Lg=vVW|+_PL5_11 z1-$Wsr4(Ybl5fFS3*SMkFuCFlCXhACYV9|B~qqc9M zB}O#np`hzbi|UN#M%^~OKWFO(gJwA4G`j65yK$biI31$%#*y#OG^n{4^unt$BA{R9 z@5e}T4gDG@OM;ziBTh(u2CKG7`_OF^#V|`qJvIu(8ZK2IEQ)-nYZ1=PkEpm1c921V z^^v+rJJ1AphXN5KiO{r+yXGIQU-CeY7#CLLF?U|)A@k@la|sP=z3){%1Ud%%cZG^s zOl8MEsF#5*{o*pzM07R-zGxvPy{HxO05xZX$(*~gv%4p2R4dx99v{NXk7yDLJoBR5 zaf)kowu|eIyH^|6dGes`2p&TQas(iJuEv{F0=r`^;9?*VTx>=FoEa4@76_Ot0f>>I z-AC~Mkl*ONpxW9%hdCe*30UWh=ed9ppl|W%gxjy#nG^$ULt!ghO{A z!Ii>S>JBlPO$OgUTr4D} z$lp);MI^G>DBsBl*2>5VvU!n_@hU^&*{_Vw<%}X1>pc0)ayIe8jLeppOfsAG>&eX8 z_#1EKUy`oAd@p2G6ZEoKSGZyFrEAB_cKN##($W$&HjTR!gTJ!8nyF^Yg)LI0VOQnJ z%vr*cSzYqCJ14Ur##s5BtIJmZZk`XUp{M5p2VwAz(`jVrBK$U06-(kI{*@26y6@dmv<3MSokr3##-8J z7(+e%=x&v|Vr`USwIBH2BSaCBM#Mp}Ju0{MRqo$ACTH^b!ZB77c?m+Y0- zM$uab%6pP3MXJ+96?4$2tk* zQIPTyVi<7ibA(y>do#nIW*!2?O)+Z)G)pud1+$R#op^o(mIi{N(T` zRBYt6@QbPaJEj&?V-eONE5~H%{jy{*Pb07~UxfssBtUfaC}JIfOeorNSI#JNOZ;=o zTkLqJ5(^>J(?-)fFP`5?=@YPe*$^JoF!D0llJlx(_sx|x$373&Tk#ot3MDmNT}Pc!dWw=x7SDLra7#sc__b`%Sx3li*qyP z<49f$dwr#k(uoII7fba=ahr=%W*cH!I}1Wk2mwsl2^N`-TDC!B{m zMum1O*mo!QOTz1ETroYaND4k}haE95t|OZ3UMWJiU0ru69uiy+y%08Sb|qH6DE?kg zEbJrp!EAHdEq^-GIiQ(>T@Gz8VZ8g9fh6IyPd?wHzZ+N*AO#oyDBAyiX%COswazG860p92bW`d3rR$%^yCrx8?4J&=EZmK8W2d`=N#{fVa z#eo2UFy>X;EOjM>1?}Zy+dUc2og;YJE}#WPw@L0nIMEbh!VZx`MFd50C$CL1ypQZR zVSpQF8U7inNEg=oJ;@}-5Dg!F-4xH!jPS1?hk-Bq|>w%Wr-^8>d z6onj$E^*bCcGc^*o2TfO-9CWMkN}w(a=kV%!ks>tQ0Gba=E)kCM%vJ6llJpf#{RpU zlKZDX&@Xtwkm>#|4GYG7&#O>P41~eLU6Km#QjcJ+6>1F8ZIHl}a~C$j5z#=p3lD_~ zV9a3)cB|!T+7`Ld22L*GRzfGn%wBFdZSmDgBFew$#q~)btMD=g!1_W9*0>2K=$vzzYf{TYiOmMjdoe-&T0 zoo|Lau)q#bjuN7zhSfIt0*#ktl-5Ma)}T83AFFbzyQrPe3Oj-xOEhB54A0R(a^=$mGXc zU$x-Y_+CQz$qU*Z(x6_lHkZ~$(Z?c)tjaDKtce=dJ_Zz$9@n6s`E*X(<%rvU+~VN< zd?;c!6bI0)&>s0^OV=1VF9nhPLUEbXBJ1nyI!6$?WMLNsuDjvh1$&IV7Sa=vDSE?S!s3!5gtt^k^vX6I#R>@~7mX z&Gy#au`Rt^@%uMZ_J?%h`Dpji{<<|-Qa(TmPAZhi7J zl$$B!wxHcMfkK{y59$VsAqia{%SP&h?@!GBx=q7?OMQ{tr8|4b)_z#>+1`Q6uD>2Q zgZwi?a{cNBw(ts$_)2lT*>7!*Mz-!xf(7kvQo^4h+LTN`e%9qpYj_8<=5fvrw2Nwq zOqYZLre+RoT%2g9!r1e(%`hFr_n~>2Kky{%@htvm2_HP%-lTdx$3dzzzxhfmu^NbK0Wyu7l_lOm?g zB}q9k#Z#cY1?34;Od;k6Aeh<{q}^xQGZ>qV0J&*n25p*~&4O z%{R=-%-`5_WSajNb;`x118dCxMZM-|zPv!a*188pUIWjqG^$ZCaMXWq<6_}JUT}V@ z-f}U+csZ={oIDdi2p+*DpRW%(5tk@a(AC;208nTrN-XhfyJ`Z3?~x|lgglcZf7s61 z{2HLn;eUL-c1RLm^y&`z4mE-+Ckq+>P^}>{ zgytR6UOmTun?-U&@mOwep>yNSFS%Xx#0QNgQ;m9w$00_4kFrojPVYA=9uB%M*jT&LykRh_+J+=1wh;)e$NXaSeKHNagFdtyjb~FIhNLYO>s)qQ21} zR_&4-+5c?yr2{#r1mzdkLUCp32sonVzck5DT=TfgP#l0u>*5J|MHQ=s&siGQb&8Bn z=@blKs_co)F&ohnu56;}xx%hyl0iKXovK0?9$9ImxYI6ae6vI1nE?3+B89n_$Y#=F zThw4Wm)Br%tiGkq9V2C;E1vZZqc7SaWolTs;ajXC3zaszrG52qNZ0$lz*9LR#~O2s z`!Scs^>hnsZr}4y~TpdD7S&-SzIedaUVkOGMWC(bqGv@1C&!Ra^PQ z_PK?Bx^4RXSow)KK$?T$)P6C9!@wK2j|}P5wuNyVyJ!Q-7AfM z?Ao7S%=K{ak5F`kVA(_tlJGN+H!gg$l$Ry3=QA{P?WhU$_W-&e+(Z216VZhLLLz+jDOoW?V5oA@*cul49$81;D$vWKV_OpwiB|NZx5EM3`<+& z-VwV(AuU)Lz_iHR@*M`)oliEwevbT$)29B2QuJ$Hh-ZwlW*qq1ZsHdew>+UO6?vk{ zttXP?m^MvgFV_~{RLR~>V=vy%QWa*lc<}{b&+_TyDSgFT?vB71QH*nfjQ>^;Lv%qa zid9!nAu*D>9>t>z1pZS~WI;hx_);%M>`AJpC|e~PF{;qrMFboWiI5XRnEzJ4#2JU9 zxr=UF9TR6@oXA#&1N)eUniDIc3q=Na4D2o+aP!R&A=)X78(?%^2pxPSNw!n+Bpq{ zib^p1+yQXq9ZYN2d#vEbBQ^`p+}jzI$n*Zs+)V&}CCjL%j|q0*m2Nw2O8LQ{Kn9?1 zGoER3gUaBqRI#=cUPVba!srGs-$|S{wUn2(b*NUFT=VR?ypC8rL|LXP^{24r)mRjb z-}pN=0)NMtYUIt08t%|+{O?n78czQkkLb~sNLBo}dK1O2at zWTO)`&{YFl8hcA_(6|U=;e4V~T75fD`GoWN`=@{Z9!mn5D7n=XZMK7DQw>9wJRVI+ zygi|^R;2KGFX-G7?tGg&hBCfghn#$(+FzIgh@(zo5FT-U4$isH~u&JKS*085<9m| zuJo-7gIqUI@f<_xUnw>mIB1b0j8P*#--Vhf*Mo`UQpMlN9}^n#8BeChO^F`Z&^;!E#V<@2!D`ZE*UAmFYz)XGX> zf;4)oNF+|ke|dd>B(ylJ5_hI5zG!mTCc`S*p%ZC+0}Z4n9(F~VDu}yQ!9$h`0&*7J zoi&7m#zqaql&_p2&L0~nR7DpS9SauCKX>-;VTr;c0|C+T#!b+J84;J&Tb{4Ee#$(r) z!BVQqU-<*sQNsO=YTpK+o;eONz>my2quj%!N6^v_K*_%!*uA<~m6^B~;y=9qc;fu$ zy9!ql+jjmXWMJ)=;=z-`W!9BkZnG*?mEWqjhHiYJ1BG~_6l-jNub%6w37a?Om*XW4bsi{L zg#KutPi#S7J~{J@r|MRaMMXF7D7#D+YG-EHCPFFu{_yfO5AAl{wEbgUWpTXthl^50 z{dGSmsgQAOn^Z8|-*Lz?ztbqnfFz83*@>-ao3t2o#C=tO>z*ClYV`d{e@3 zd6*XkIFmK>q#0SB&nVS!rI9uKBo<4=)3>ww5n@>&`A%Y2I@#;!Lt##WczQEcu4>h1 z!y+7GszF|{90jb5?XkRBFQ30^zD9d9{rjaC?^>_-Gt!(A@u^v2Ol{(6te+QKB@dBQ z8g0^>$aB#{;$v*I96?Q@piRLIEz{n1=~kQ4QrkN(^`{x?icIaQS!&;Wnw2%$YbV++ zWLo7X>T1#LI%({ZZtZ$YOd?s#`eW@?ff~Ap?Z#Og*QVNUO(kgZb(kt87(qJB9W=A^ zG|ZwqNMaq91s&Ox#K@M5GD64gppLuI9d`~jEt@*5`8w^Sv@WlAVEHt$W?Cj3o%R=_ z@X?(PZd!&8ovvf;PHCO)OIne6T5fLb42;?FFt`YDJW^jmQ1P2-P3zr(86MX@>9jJzlF@a{+DEv$G&ZkeLE>OXd zasy*l12v3@VB3$<)tt zr3;Y*6+1AR?23FY!(ArDMNYuXhIoPlVQ#qi;AXKo4V3`rx<~@v#|x%V65)aR+{3`Q z;$XCDmS94}=XFzrk(pfqQ6k+SCD!h(_UD`Z8t`e2VK>|m4<(rXno?klC7R+IIG0NY zcH1(J*A{A27RSvK%l=`Qvy?K3Y+S1WGnnha>Gp4!;ZW=RYC!Gh?qrTPM^Vl0YaAO$ra00b=uW+4KlC%`VpWSMD4x#{{VoO+U0G9aam;!&Z89fut zxtN)?Y1T(>GdgxN8!-i|&;LQa_AqH~hBf?v-iM9MY)jA17S8OsqxQ`2ZwSpE#N5Xi z%pN6i9Tnam2%0_la$hHF_Rj#vpP#e6J+o(5=M*+)0S`C;TG;matQjg!nO(kVs*I`0 zJc4cyw`KYGoovtww)NKxbmlsg!uDexYO7L6v?TWrFvH3B-7}ZodxCftj`#4Qd5P0G z`r7OCo%4-sRR$LbO9?!`nmGTpScy#5HO7pP34IT-d?`J?1s;R=2AFAF46-^OU2dzZ zG{-s4&bhKs<0A8jhRlY#N@MvUFthkP_XO))$khAfosx z8GK_I%UO+-Ng>VAvY06Tz>1<*VCISFxk)m0Bl)_Xqq$7Gg@=&Z_{wXxD(V#lv3}S% zMoP<9YB|p#J|fmsU)t<-w5i~O@zz|=Y@pm)lxmF9H$}54sUm%FtzqK>H~w0WB0dj( z=hAgsaT%D{;Zyku6)Js|ihS1da4%>=e*N9$h^m*)LCJNE;7YdbEG%7QblU=sza6c- z_F8-`jXzUN+3qk>F$7Czmf5IY(&)#m+VP_~Fz0Hx7{#yM0wgPWZ38bFoQDE%xBlR0 zmR!HB;gX)7`8;+b*V`qY%4xq3&xzqW2mu}PzGsHB*>iE<5WK@I7L{jH7=i>ty&{m< zo;{wZlb4^0Y&wc_TwgugXndRj>?9&KRkJ7Y?r~}i4p$tpExZzH?;mJ3j{nH*`O$fs z?c?puo*V5Ev2FuFn|&UvJw=;?+ZpELn{7RtLt3nZN1LO{Y@PgDc($!C+bpA6TNBJ| zU;N#5eU`u3a7?6cO>eWFf9u=|ciEb)Wtm>tTIgh*W!{cy*jk!lpLjmK>VIkJ!FCAM z_WBK$3+(G=I@5aX_M_76ZDy9u@$EeirfrHHpI_St70i45J4ZzwvVqx|DZe+Ro4yDM_0;GR}8& ze#I~g!jhJBXLMI~CErIKc(NpzBZmu|+wnzx>-Ze49F*C#QsW>(akj2YaI4|}| zZ%KgQQSz0zhSPDvic@yr)DtGpRqhY!@HQNxl=dUdUqVYtct;0krAR3 zFe_xqd3>C(FB&fshZ{$kt6}k{?Jz=U;C%8`gDa~9o?;eDa z0J90inZ(6dmOyEVkla}@{=%vx){)FW29Azf1&=5%h4i&sM0IF?DN~P1Po%wk5_)dA zdxJ4xk}Mj6;rTNs`utrnOj6VI+{@SdH{cAp7p%xI9!YiH{q(L}ga8gKj|A>AovIDt zECCF}6H3*nsE*^H>H5E$vyU}zjc6C)M}OlUlO)B#k%|XFTF^)t$MXa)m>z&q7X)*? zroA)Q;>*WB+=!=CXO(l}qHNSI)>hY2VQ41WzwMz$U5P-dI`8xKrd_kBa$DbD)(1!c zLrr83_y@BT0`@o84+MrtYIuh0u7`pn1$r+e+&2z|#!9qu!`|PaNE`dVP_NlkWwe0j zJJexV{7^P4J8Y+>rP5;(5_LHD0i|I)Q%<+CHtDMY*hepgWiWmW%Texbg95)RrG}nu-&AF{T~GTOy*pR=>NtUQVmG5H zt8Z$#|E18~_Q0XsMm6MiM~usv!qMh8)0y%+M~WxA3tg$Ao{yExUt50u59;+~zc9z} zrH}i)=zYKIa~htRlo!*GeUNF9Bak}ITg=kdV#qv7901NLi}sE7A9AEE9cNZjHx?8HOTgI?XN$YiDbcH97 zpa!w{|5&>3cq$+Ff8b|09Gr6;vgZ-W-efx{n}kq`W0k$L%dz)NWrSlZWbbwCk)4dJ zV~^}4B7WY#&-dT+_jMkR`@Zhi^?X@3@>dUey)?)e*OV2g{eJs#q4vwC%>wlceqT2- zW^z2V!hf`?z$90=ICkWY=OdiGjve!2&Gv6|-j&&s{IRRFD(Y)4I%2rNE!?sDRj8A+ z{$#fvE_*55O|T%x)=`=Ui1aetrTNmy;(sa9&mJ=`(#4n&AUeqK@R{4-wLtTwdo6Q< zoY=6$TtIcTsWQ3PsQiW8(%{d3a^m9;V(yBKXz;a)f8+SzC_ec}3;uY_!1T4m)C2Yf z@#*LO|7x`!zLdXN`Wio%{9&inDly~K{7-VkvPAyg0#EkydyBpfLz45aFaCK~yZ@Az zTAo^bF0~S+WxAvoCwnEemZYU1z5dShjr2yEL!0zwrvH`nR*t`5!%9I0!t?P9vez;{ z%ewj+wkp3W$nMq7y^-CoeY-Dn(3cv>Bf_PeYh=BD9Auox^i&%M#JW-P^k-9QmT=2gPV{Z&s^t_@!+Z z%>9NdaLl2+bJzjmI!f^HL=$`DE3fXdheM%C#5!9*h0CKD>QVv;d@OI%k0w+^pDM!U z83$M3`(ADL32P_u6(*h)3afcLR@dzg#l$U&KR3LwEeLu3SeNc>ytJ8z{swY;j*xaac4^0q4;j;zK-UPj0u^OYW^qQhsmx|ohJ zOmAE*lCKF7^nQc{8#&zn?eoa{Te}!We25kHqTv1P25DC(Y+?mGdXY*VIN}0Yi6z?+ z>VH;jIDJmC|9AitFI)H#rreL9M-oc}RZZPo#f_6{7%HRQ6?gNTX^?naRTmtPZz);X zH%!_%yb^8QuA@p%y_xDHoWAWU!6GBpZ;VA>uPCdSTRN}-1eJ5OSNB0fm?Xbs3%2h3 z#YBHA`}_&_?BC~%aPG$2Mjk~ooJxWl%L&<2*EXzwrHDXK5sDZ0Ke07zVc}Pl2`p%( z@V^aVB5V-}9b`rY{5`yuwMCCBMC-K7ocOJW-;TXIrY^IGd{-2;DSmdP!q(%Cr|K5g z2ozt17An&`zW4Hbca@QEOdP-C=&zZXiTC^rHP0|PXR+>UQ*L4B!K;^*aP$1S+TP~` z2ZxgRsv)n&k%d7gtCtBfFwiY)T)$hjf7hBqee*NBFWy~WQ?{aY*|3qpRGk3*y{h`4 zc^aXB4AA1)gg5sZ%>wUSi8)DIecRQY!GLQ%Oy<0IJF%)`AW119lgOuoOz<#><8qWp zwxJVXTM_n;+=A32HJN&(B3J~ra&`=Nz2;I7iGFgtOnGhG&5v-2GT>ij06X^x6_&@i zT+Y*fYv@xrO^AmlHHxmW`M$HeV?yZ~k3pKXX*4QD>~f7?#c1&H zm1t^tx3%E3*H>%ek`G;_8xj$FgD<@*(w15tw+&d)IUcIL-=|c5KWPQ6SBjEcyfG(c zI_RV>RGZLVaXda)C|GPj=&7Edq|3`8_i)FLLIMVDBD|wfH}5abhnsIB!9dkWFei42}T z$jf4}{{b+afm*17-9za+IAv$LuC7(3vlg5jWCv%A#UmRisU8?`K24NLB$iyOiF-7! zys$z1panM`%IRYz{GGKf_lhd+QHrJ1zbZ(TLs_!vfnQ0JbAz~lCR?as9=P2NKy#HF zL#%B9VYdysvla=k8NU-Rw*{bt-G{T3qDaIl;PSk0j$*&5FvFyD6_LQ8RMX1@cu*eM zGyJbKhmWhQB#r&=9#A-m=Mc#y0%+1FgP;vK$ihw7R4N@*LJ_%o$F?KS+%kd31O*bM zZyM!0VT^D!gfMRP%FxdC6URPXCb5v}w)uP5a?fDpLOCL6ZG7-qjVg#a_-5yih5J@m z?m78z$`@C%d%FTj)*B-3UUS{wU536f+QsyO+&kiZm^*IBHuX)r@8MSjhQmOHfMts8 zvz~idY8;{wa-S=a-BLvo49Hgb3S{VOeycU^0TS9!9_`_bZWa@)a^ulWklR~@h3-sS zYKDDMYG{?EHMX|%Xv8~Y|Mg|s$%O`PoJ3+x2^30?BnkzlyR%v|S1ZF1^OlrM)^8EFO57WeUYyP=YM`A;nKz3z*k+QavDrGM$J@)Iv-khle=nmSl#l zFmV`C{a!zqwYOJV4=aT0+WYqrenKi=9CGnJnr~`;SYoLtj<|@LLs+u+4Rs{{6pr=B z4NcyoA>OAXhl3BMv*d=#<|`pC!(9#mur(B18K}T%l{=Q6HyKP+)9dhTl{+~%qhQ57 zCs*$HTCdy*dvA>cAg3OR>I~&vVUgjW-vGT5#s-Rmb0aZ|x=_XU{hMKCdE)ts>FOey zYl8oN9(oU4`N!> zRr>p77oW>baX5|VJuK8Kzk>$d&=Dvs4jG+;BGZ(#GMCTW8OBr0XizouNH8lw_zTQ! zrwXA~@u@_{x5-MvY*<9|RHrQCW1p7}k;$8cP%r~LsJ~WnlB1svaB>wC0&uy-DrAOO zGAV3c8TivjqtCmX@+p>jS(JKQg^+@@Jp9+2)#;x*T@}kJ@;wLIy_@vd=701Eo>Q!u{h4x4gkFu;VK-b?wLt(l6-H~Tj(-KZ@JG! zAyDW_rRQ?ROJ$3JTgJ#`dywtY1>k~if zsPig*6Bt$G_w=D}*4+TXS?{_csuixUV|UA=9!KnLJ}$WXW`x53>h9In-9Xx6 z(eol~) zS+?64?wi)HQ`h2Xg@@6-+$$BuF^k0xY20yDW3l_(#8I}cZh9_ZBjPo91y|%_r|U!x z?4xyTB2-6L4hH0W{0RDeL;-+yTju_SFHShsP4MDb)cdx31{TxCDjtHoBoN2z-`7vT za2q>4yKk$dM!Vf1AMHO`ZgZ#Vj(ynQo{!uXdeFrO>s#fX6PVGX)=645iInbEv7*04 zj~GyZeiowt_U^qE&wse&cz&C5fn@P*HcQ(p%kvPeC*;F7qun=~nG6f8xaK*F!9%qx#O-m0^ z=pIvC`-oXn`9`WlGKRk;68@j!oXX4V=0NJh*Kh?Ee4@mm164Q#+wfddaY#?3IO{4T zb^ufGWO_k2okNP44jSwZ95!HTx6pLVyXm@J@m@Dul7E)EM6n{6`xBTfAV~2rg4OP` zO?nq^ZL;tsIPWTCcpaoL26f%*Qux>9Qt3d3R)6{E{UC9&MMLTKo(i8Hk?3-=;8C)W zG~yUy0O4O^M(Y+6fB)+B2!9iH_#RUH4=g)uaF~?W>5S-7=3kNHpR&}c%zZ1NNVw2<`{@26L+6RZ#m6$YpXeMEgU+FN^ey*Gu3pL(-DNzHfss7x_3 z|AG8=*_HBr9qQc3-7Ilx9&NmAY$Pmc5r$V{QxAe8qdwlgwZ9{H@K=y?y$dmS_T7mG zwqt`VD0|-#g;Gt>?n-872to>*bMl~$3zTDmB?5e4xT(Odb~`B*5$GBUXZR*77b3kj zC0OpryEjE+FrwfH&N0&!VXIy>*;vtyR}4@Q9_kYA(^cemcG(LNA&v=6Nk9s|A-D{j~_-k=qnIAE}aW)|LPBtEZt_ zp}krTEIxi&t)vo*rVy8=^HjcoDJyz*@r$eURjFu+58W46_5SMLTcj2<^uWdQt8I^oN>*L~*T$Up0zqv`G+(?VgJbH9GYg+N0tRW1i@2iZ2kv^-2bG|I|FP zQd6g>?Sac`@8hP|RH2*zgQfur@nzq$iBVC}2J70(BjCF9o}B|&Twj2q?@r*+Ue+h(=$AZ#(p%)ETAVxS98 z^Xy$i2+tX+(l_KIb%rU{v}xG1a~$kqZdz9fmTdsvMlUK|)@dBpDQTOw`((5}ploaH z!Yj?0n{<&9fcG$6GLyCVIAu;+QyKL~FQW_FjxyS%y;Yut=23%N;V>E0yy>-x?FY%) zM9J6L5#0>kKcb1hNwZ82faicga{|$PCeLohXRDxJsoQ$s6B>cVRR6_dFqt=B3yg2y zm)pWx>PaCTpWhS`X1S$=W~gNMKl|Y{PaUwJmhV7fvQW8SLawJ|bBmZk3R^G3D7yuM zcs?V$%<_tTKAV{tW%bO@>Y8Z#-Hon!bHmW3(4Wciq%L9j&ug`q*AJzA=Q$)DRc_m| zTB6nW1&Ad0yOpf7Wg-C)^i|soeZgwPmM0M>waQ@EPK=L=gB)NPl5L62+IpNvpNh_0 zYCPQQ>K%}lKbeco>%wTW3DPf_V_wM9ho5S2$Qzz2R48wyfh8jGbWj

(Y#7)weE%$(_?zOMf1xrI?`XofRiG)@N&!s9qHiXQ_ zcTo02ghqOKw%J~eUZ-D{g~4}Y@ucg;W!gAu#x2*GT9pXty!|66ZO!M@Ti*pxp{so%d*IG2Nrh%>93b3%?q ze^uU=NNuP?^;HVD{*x}XfK+tLRLp}nw^W;^!)@9_WcEoOTtZ~egM+_)uUzgM zk$i%$DgpW}`u~~YTQv;pq&Eh#Z0Bhv9$XEd<^O>^L*ocbJv4(V>;!zClhr*CiB$Be zshqhqZ64p7Ye{)@1cO|Z13o<6=Jm8c>2$)CG0r?oj_P?pesVvjj=qYyNom!j%B@Mf z+*tqay`a@7;*_%p5rogXQsnN9+^+Suxk|3b6MQVop z03Kvje{mQQ2#CbubLHq;HCc(Y3PZIP&7$)ECikoG?c!qak-CF|>JBAEI4Daeo;FC)cig;lcpUI^ z;VBQU!}Yuasf*Exq06FB$#t5}4urL7z01-M4|fRXqdfJ^`Mhr`S-cQdRpCgLgy&*x z`ZSZSWFP*Idex>t+W@k&o=ml*dAuCWR*ImNPxrL@R`jUIs5SkS!*sbt-+TECubr3K z;vayIGrV1v+Ji{w6h8X6t@a6o@PaY!rgbM{lwGQ+E0WvJOV3^SC>8{~j#=}x!kwPa zdEw`2SO{ut(jL4hHek#E)*ER+=Y{<2`g1yQ3XL>ZRkoOm5dhkJJ{$ zYqaZGf?)dn>`|QK-SkP?`U7{;9Q6knV*W?HCfBm^U5pP3H11Al-A?e-9}*eh|E5is zbE!WpG3$6snIAYdF)Y1Z`b~GLQ_f&i{(RSCNc;e1IHvS7)Ie96Qpa$d_t(j{aW(ch zPf;{o+2n+lns|zew)EcQH&Ui|hLevp7T!)ge5CXE`;7SW@869r9t?K}+LnEvGIbk% zJpJ5v@B6fQ5Zq|SB1&Lt#wtnRbkZcvY3jRCW}MN}$1ioJemGPP8_hX2?itP56v2(3 zDdn)-P_GB2Q**Coou(JOms@F{d2W||7FyEg4p9tR-&c_8kS>3xOA6erT0x5B6tu_){-BK8Y55aznkI z{#pCrHqt2i{?-2MX6kPsQT)9~t{-vEhe}h~&tV!*jlCz%ltP>v_BJWFKXOTC@yJyu zP1`*cF50N9Y@OY#mfc|3t2KyEW0TH}T!9kj7F&{9B<~d^Qf$n=OCxdSDLQcaecEL5 zdaD@72s853zCP-idY#+2p4nQ3 zm||;8Mim__+mydctF{%|pfM*l&N}PA>(V|ocrW34erUbCeR0HYp(t_8jwS-MxJ*g? zUv84`EQn|$vBpoF9i;3Eps}s5_rgS zMASS9MX*t8V-%?x`*ow^lF9oYOuT2;2$%tr>)}ZFIJXl#La`BbgCw;4m>@EuZy;#P zJK38w?Rdcm+qbhN#oo)&MPL*2x64N^Atw=n)KB{PQVxkda5Tmn zfP`Cw9J=m`uv={v0|2VrKnkSI)+OaveI%H^9gh}7Y4U0QK-r~~0)^G1p@>5jn35h3 z9qeV(4FXy;;?paZ-=XmIpMF}+peoz-Vq(NC*AusRD*&4h-2_Q&P5#}5jkTt8ow7HB zG2w(&;|@ln%J_GsHWELd+)%Hwe%}+mEt9f@2^c$}`?)bdkV;wX`BZ5refkOv72K=B^Lid`>D#B)KE>}*C!VEY3v>L7r1NbYA_R&N{hi+y|mXr;huUvB@=bn*1OzotpI}8)K z?A?67k>IMsMk$K|#=jSaMBgt^qpSyhKEDBAXE^n`wH6(D=ARvNeNijDlPNfb6S|~n>yH2v=67sQz zzd1|;(=5Zv(}tbAeq}5(_rc$W<1Q{-6&i3l;ZHjtJhphRJ*Dt=6G9*%&h6fo$f}CI z3JDFpk|h_t*}Dm)sv3hR5`9#V&DJTV<=M{6aL+PmQJaTRruZz+dyFjGj*h|YJ&~`NBFD*)CSBx-3Z4aQ%V3u2 zrV%yg<1rlbb(^AFwefRZZm?JYcT1&vrofU7IDve3(416ulK-N8{&+Y zfA$Q0w%ebanOk>FLlht+DL60;EwgE%2P8?o0zNfSDbzxOpwIvqm8%kwDge+M|4XhM zhDQT$qagF6S2F0MlrN+^qX0@hU^4=yi~`9405up`>_c)q0B{@4&+SYGAdoO)K=Xj> z>ywA%WB58w91(1U41oQ2+ZA>n5G6>s#5= zHhW!R{D580u_Nq01tsCEyZC26inQAGZ))PmM`5x@A~gPY4ofR&T!_fkM7pK`5X&)` zh~V-Y+?ABj*2v8$3NGuTwhr}j#xEvLyOj z&QNS3g`&`MEQ-F&?fgm@G>a$mb4Iuv{2atxPgGnpSHzA9(`rJK_rd- zBRg6a6(OfOim{%!HNedZb|>AgG|YGB{dBC+l)zRwp@})-;nV(;1prbf{2Zy+jIE^m z<9f|JiYgO1YO_UK=I>uw+y*Hdaj+ABZUz@Jd&U$s35Ci10nAR<1i1y|cRsK#@Ye zF&g06*{ROu;zi)Xz~Fe2KjjFPV-B5T@}nH)DI8cEP2NHv^~4GNJU+d>FU3+0dp|*r z{C0GvM-Fh~mqq|WMJVQ|WWDw2nS^eUyTe*BWHLv4>Eoh0Vk4s8#3X--%~s3Hi;1g= zDJ*rftrDR|J%(opFa!>8J^>U&L;H_8{6*G00YK=UbQ}W8j0d?^@mHfDw3DLv4pC|x zSHgi32lXyL62On;4no3Y@IYn&F?Nin3nz8WhXrL-!%_eMYSdOPCPd$WAbJe!*cW8M zfz(q(`}%nfJfM?5K&w%Bi@-8MzP;NwLZaq5uH1 zVR}i5}%Ejjc&thIf*OhI%>%}`RkE26DLx`IRirt3Dd`2h87a!cixFDc06u=^{n0A z;BAP}vNG$7WgyoIPX(TsQ-$?Q2YGOFS#AmTPi|+IDxSaS`Z26js-~o?(0lP3L3-` zt#oTEgmn?f6kcR&Ln|BI@sh!sZH(QXyiTlA!lFk~ye0D4^ogmw%CliFr#)_71{EP~ ztiU3WQWD3!*m3JN02+YmzxGlNGenVWb;8^9 zGAfl9M~tf%c=5qYTFf!%5BAkG83_u2XiyGMVY&IXhr_a@cD!3Nq6R3zN6^XhIdB3E zCy}w+0`S%(8h#xQFcYKWM3LDld4INKr?m%yxhw*Hc97x-=1L&Ozi9X|x_e5A4uz)w z_>Np5n6)_Q>sBfsX;GCdEYiKZ{UTS#NLt& zYCmA(wPG=3P=-Bb;UrL@7&s?`h@eWWYaR4bGaNsZU6ttEKh`GGdLw2!Q%vaTBrRFz zS8T77o(N{4n`Igz#k^CSl~@x=$v&PlbK~j0SR^pz-S$DX4?by6#zjA5cvmg;eqmPJ zq>)DKFf*b{Z$SyhkBaQbv);~OjVA!5K&eXfpf&dQ0ZOcI*oltmS(VW}c;jRg9jh0X z-wQ-NV-cVf%s_=3+?{6L2T~$!dANKtn$JP*%dA7_+uXVIEmH!x4=D?l*y%DW9jlc{?+R# zRU)S1LKoGwCe_l-HBpn*4>H(PWNU*y)aYE)I(U->eyDZwtF`lYe9lz&%AfbqMP12Q z-D@Tb5C8h83-vkahQ|yINg0L_%?+7zkNo@_U341@G9HytuvN-#K5lMr zk7_5KC%cx#)66d{Uf|Wf<5?~*r~*280x-mKoj*xBMJ_iEU;57I_@}-Yy6m92b{=BQ zCA^F6vBzPIoj1F9KMn~7blp?yvSD77A#vjsaN$%p-ccexbY@crVh!f0U>!XUVSQ#T z3zjXt0ujAw%)>I9S#CI1jXqC3wO1y6uL|#ay?FT+VaKGMZl}U(qzu4 zWd5i~QMgcx_wYf3)96G|;mYRP<(t!AJ9}W6w-TZeEM_ zMEXK~*6Sb7Re$_mc=P#Re+X!djj#MP+T$Nt1^#vI7Yi~O6v){zPwwu53xrX|q6S?; zrMqmj_HQila)KCPE5G}^8&IC;)!9J zL-O{M7?PXym;S%X-jc=g{#Az35sj-0RfTP#B9D_^qKTr&`}|{CL(ICRO!|&JPaWTe z^V>CjK;lX#F8Pe>1pNK_Cz1lT`lh!OS+~>PG&P^?ZC_BktTV==fY(ps+49k&+>xV~ zurZ=C&YRreq!P*dr|f^j8BVlWvbJ4=7Z)SmuvG=O&9JsFnC&;q?u#t7Z@)3FBgvcK zn|;4$)T=XaXi+rN$C`-ELq{F+Ww$E5`Ni;J+ot{HmhQRgNRhnWIA&SDOQ>jmf6S-?J3rVyfAAf@X;Z*8saWAqnz#cM(PLsj zYo?t4-%C>Q;<23jF^uvz_Vq-8c81LBLFyc(48xMAt?bfks}LD14&6GEtTi!*}A%p%#}+-yKC zB0fCWvWUEG^ui*XD~o<1oa0M>?h{lU)GF5cU8H54WO`w4tjs?5w-~uAD5tjgqPlgG z$2z@rvgV7m)nr`--|<9MU5x?*b>%3V_h5-nHXqD1pV*{YQoXvlI|tohruMuytf_OG z#=|s+kpate&qW5S4A*^)f{#8|(m9z}#E+b;09L=e>`=j-Y+S5@3@#^9*FHBl(X1&e zFV%S`D?jB;I;0K37FM_~uRxIyh9HlI=Rw zZ)iG3e_5n)tZMxC*|B@9T&4i*LxC8&=}AoEtZ?Vw`X2 zg0Ifa`)%YdE&KWV_5QGspyc5$J+6T zfDij>J%sN@Ivs!GIU|d;ArIKo6F;2UZK{yVZ{Xb<#A&+{@?S){;yA0 z+FSqqY4LMut6EMNeKWIO#K!mc5ZwIc;#BM3)n(COd0^S^B?^4bdU@c-6*i#7@AjMH zycb|OLIG?Gtq<3FO07LwdAmUjYUyfls}x7V_6-lG(hRvBYDl6OsoWG=5gK@#ot*Af zC-tD7C|$sE-!oekbdPJe+%p}x$C)rQ=tx&~H;3|FRVRCvMx^F51Ih$wPcCO=)N{+* zG{Yy|-1d~*1}(SWmu@`}uyKpAp4Xu3+Ts+x&ZX3};$Nj5ZRq9vBoeP>pU0F3Rg<~0 zy(#HPW;yWbmOFi<7QoDza0TsWC7VbT=H=wD3GKf>;+mB3EQy0}HdkF!G%TgtI#O_Z zfYQ$WE!(a&w=~h9fuC(kekqRUF;9+RXR>msV?m9X^jG2m(GL`#3j|`qw9LqCKXh^? z3I(Q>U}&oqyPs_Y#z$!z@q9}=w&Rl61`pc?+ow-ECP*|hWINiw)t@ISDn0CBc%AlE zZ-x18?qK7{L4a7+iUt96@I=&SLQMA8{HFJA)F}3;cJ`H{t|ECl3zp0?hlGP$Il*Hr zLQ*XUR#uE>=6$qsUp%ibr}%*)qfo5-jeoI~A19;s<4!`bXTdHNkET`i_=gSE0{*h? z#%H_+)7|1lbvd7O0?F#xj>Y5dJRZ@@UNgY))|yJm@4WQdnVjN$^$G1{Zzux(UK0G` zvtjKgL%*Zgis)CR)&eC@MsLa%Kffw-bSg1jBAad)eD%e%tmOGY^mNP4tMY)opQiqg zZh{IR>LPka3sQ%f?%Q6K5l*F+EMI5(G$pH2!b)xK`p*tpdR3?IIlfT*`ee*cvL>IU z%w5@uZ4O{2d@*RA%p(+%qw9fC~`}Ns=)rWT2 zhH#AUkhP%LyLUhse}?a{qjPmeQS1we_Vcf9S=E^bEgLeczM}#A)!7-Pn~LOqV;G}w zF7e8x`+al+vBcBLmN_tG*+x3;_chlALUG&LFVmP18{vhDI<~r9o!?SvB|a&|?FeSb zd@psbO*P)zF)2@DN*4~xby-+c{rMC{%J85-U@z88N@c2Bu&&ad-O-AVX{evot1zQ= z*F;73$E51-nv%G^yC0Nq#p7%1$D4nu@)6Oxzpr`cpS0&$axpv#Aa0t@-1BN@`gR=d zUHH@KAYh4M>90|p7~B^X-ScyOmN)4&sl7LELbF39p6t44AHuJBS_s^L=079s;aHQr9s}vfk5~6ry*j@S+ zCjAjr7D=~1cRe^5JI;>p(I16Sb>|EPu!U?c0LX+Kte|dCwN>EqxiB>M7_&&c{8i3( zs=4jZMzwA+bKbZAo-`8{8X{EO5@#x&#`MKDNF0BoHBAOX+6b?AjM+A3J>D!%l*^lB z&!3M*EHZsRIF<;nAQhNnz4&l=NsnGy+xIxXSial7l#M5GbTvPFf>6lWQ(QkqZdD1!J%mTc|44z0+4|XXh#Fv>1-yD z9(u&^7s&reRZJpCqXO=P0lzqf$6*1ghr~u>!24KN-eR~c075$B<6a#6)C+#E0%B+U zVonbVLqZ-Az*Me~CA~;}uSj}&n;*CvLkglv07KD4Nkukpk>Gb*HnZr+`97#4CfaNR z_HxTQ*5?|)jJ9u21i;4LJPs#ECI&B!ks(pu1216|1oHI$s4Qr7u1TPiUbM9rTu7KC zwjN$G6aD-&TC*=Q9vYQ=2G2K%dvqF`DrGZ06C8IInIsjpxMj0E6EyD)r8*>X0T7D< ze4A5)4SM0HXK~K&6IyJe*S4&;^q@@mgoZ=FJerK0K%P$w*T;ef&#XPv;`E6TyEDN< zGts>>QQ7p-=3Y^I^e;x~;}!vMD_61?#EFp9MDkf{_<5pfFMOB)sVA|aIR~xuzowVA zVT_7pX^g*zeT(5rCZd1Q4RBqOfRJNC7uO*-OTQfnVgWrfdlc|#MT+zmSX1510eKCA z1HdX{Kq&6r_PXwm`(ZR6f<9LOZKGi77>GF(LBLR$AS3lv?TSv}Sz~|BH=gt!;^dP+ZB*S0Al`-9FZ7bk4#NJj0ie|cjMtbdZhK(fH6Eo zN)L8Imzse0tE`9TR>0d`fr+SqY#y?7*90Bf)R0+gLSlO9-9#c%L~#RfCJ|dkN?N}S zpT$W=+_XsCi~*k|0vU_mhk4_Se!GwFNK%6}QX96@aE*yQiJ5s%(u+tDgRU7d zpGX_%vU2RAD>mR;Xc9gw5Yr#Y=L+2WlNOQoChibW0D#RO#*AXF$rG{fqcuqPq=Rt` zFk*&GtW@TA-^?<*46cSu>Dk!E^UPl#(je+tbc}EBVo53!gLgh*cNt<*eQ~6`zL~U% zV4k$jD0s0{MDnLxxL+#tC0qy>HviHC0?pGo%@F%R++~;7oR-&R43ph~%m2-rL&Gw7 z((>!z0A5_fc4n4W0gwz%a+T?G+W6At^V`vT3W*(I~ zLYk{9&Hdml$qJ0?Y`VS-(tuNjMF~XNHW;_^L3#>bb=dMaWEMo^r>G>)TdG& zvLbBYr@#3^s81<_1v0*${uFi7l`o z#jWQ?SODnfmjl0dB&I|*3_36EUd-YlN~p*$5#Zj#uw^`ao|j@=|SSWFnSJa!FJa0T4KgO;#R{hwesHb{@JmLrjffT=TR zhRow5Yv?~Z0YEyca2Y)iFB0g6bsbIw-8lq{VL^*{7&Rb#5e>hKBvFY8n8OgaoWW~v zBwFFR@Ex+(U%?k?@H^y)yBSq{8Nm-6AT%g2hOf>#1`&5teAW#2#DY<&(4-6y10Wn1 zQ!~$P!%AM|{sUyK=kwzb6pM`+I440=fOzm#!#FV6e}E)T@h7N~Jluh#x$0|19KPlb z210?%32JDFV}d0xHNIs+OxoQP1~z^ysp6k&LC=Bmzk=V&ejp(L1#ePoJgq%^&23vP zV-C>`Ofeqm*kY;rMW5^T%MAESbc;g8`_cXn!>(W_?`F1(c2_<;<6uU4OgqL0Puha- zAEEq>%(C#LuVCm{-MM<~KB~SiqMA9TEsGq1`w0{! z#F-COS;T^rQH}Hc4F$yk%Y0qYUtcehcdcl(@ib?%NyBMw3{3*StG-Q%9Ii9g$WLBL zD%{Q<0QSJcwT8et{P3R_Et5uCCh(jWXN)N;i0IEt6QxQOv!XPU2m-D7_8vrpG638Pw zJU0(qOApaG1gOr8959dWGJ_}yKv<0S%f^JKrx6*(*sp(Za6D;OAB?Mafj>>rALlR~ONrxYWK$0rLE^|*`#Si8 z%(oss;{{UV##ltYbiJ_C_ef#jplx_1*8c?n)PMt0Gy%V1W0r7a2o}WMIj_I!IH)UR z9tT%LRSqMImjG}};rf!N<9TJR*6`q$t)zAWaEFB{7nW&{=hIAkF#=BA_jO`!H#X2q z&x8#_xW?vk9hXKAnLVaJ}j4PCn`V==%O87R9w3BBfX?F#g>UHaG%r}rO zJd*!T>$p%{_G2Emu-v!M@poaF1@XEJAdDnV#Ack*BU;kNGsvfwaMuY0*9QC7P{+6# zb^&7FuW-l+{4*N(v0_$t%&QFWBUk4KXe8#}!aSwZqGxmlDQS3!)6^V`-Q1ynif{HJ zCgB-J=$D^9i-wrZk;KC*oThB!K*S?c&hTmHuW%I& zU$=AeKj*WqdrQfU<2r~qH-`8v)CvK;Li=Ste|V;wFw-yq6GB8X{7joSo}3^1hKcNv z6$}8xuTJ4s*Hr@1mt?+%Vk5|X(Pl`SbV^g(|knc zv^BTQb-3-44djTKm;?82uW3lJ0=WOQOY76{(av*=3hcC_Up1f*w4K z(Pk(0KOgnU7!gGjISfmD5)sWH4E?i}?9(_=hHGWd*q8#O==8#VFhxiTr#Z(F7YdW* z0H&nMus6c&a$iO&j@SxK{KJ&MReW%{f1rnNfD04bV<1!&5Pw#Zev)E0*9JvRIQ7D~ z)xRx6nSe4pU@>tvL6|I0kDQLMc)%Kyp7C)Ju}@(KkBsrpaXln$pLD0k-*LD}#`!f6 z#*UrGewzh7e6c4&1~Q2x@zf{|#ng&d9Oq%Lq0B#L_ZMTr^uS7NFnX<%7kddT|9)T_ zGKl<+dD@Q!u8%dAdi$sMmRR?RKDUyc!DSK-e_X^W?yQOF+d-^IIV>4Nb@7QrQSE!XGs(`DK6&?zNAL@S_V8R(N03M z+Aojm7@n;~a@;Y0d-lETqa{};ey0Cgkl3*O*qH6CW#IScgpYdR=k78egQ1nl3DFW2 zm)DwY$16%QdbXrTo91l9MCMf<vFVob^X-~rwa|A1-z51nqZ8UqAFjA^cd^C_n4eDj`8u&PA(@| zoc7vObWr_&&1{6;Xp3G4p_NeZOY$*#;oB?Xt-KONV4O=kAqsbozGHV&B%@ zlIGceT{vLKfVY{#2|wy30}BLo(Tg0f2GI)XND@w`9D zb<=-;w@x01Uu^J%usn#M$2H!$c4G|DA(YU)bEU?4l?4WY^Bc8#2Qama(E-8UX zct$frTpx`J$LND{WRj3UIG)r=EwX5rs@tJ=UeF${qk>z~3PWhHNXke){hgpY&Yv5x zw_K`3z#$@wQX%X#D(PEYNVS&EOl2tyX)#3d)1zF{B5BRLS@;3oc-Xg$L#E$NrdXzj z%=B&$j(jESkZ`WtQH9Hs)lnt~vxbTuI;)Q&N@7q@L|e988upHBD)7^gnApj>%<24F z+YDve`$SMONoki`w&{_W`>5!{!go-1$E_U3hS{nn8Kw$PaMUwD{D->_j;#lI%ZJ>* z3SO5!91#9fLOmh)JoJ(3b@=;$J|?O5M#I)$oUe+Jw_1`Caur&4kNR+uZbb^bo77Vy z_e1F44^ivec6_k=!+Sbv)e6*q@?t&z)(@`yg8p>-auy?b=X4EVgp1kEaogpyxO<)Z zrPP#Pbq?1ynDiwHsvLK56`PR{)c8A%HJ?W#o1NU?;@@o>{cJ-*Lg*U|jPLs>$H{Th zYb^#N$5D4~ndBM|MP523A%uUjRBPAcH9mL$J(i&1DUf`htob?!udgMzZg32#m$^Bh zm!kIbu`y0i@FoF)|M+S+C3(wm(cw+11?*; z^rWvjhfkZ#;G-bPcU#wn3A#V55+6)Gl`lSjo1URluuLQWq4MX0TWV&_!!aCO&ATMT zCc?oHkQ$6iL?<9)rBX(}A6q#*sHXxFpfXh9^B5j?|w6+)YOUpkGi)Ei?Uz4hi8VF zVTgetL|Rg5k#2^RmhO@glvWUs7`j73xD=``OQj{T|Qr zKi=a#j`#ER?RTwfo#%O->$lcZ4#yv@1Z4X9Jj%F;#q7RJfzST@8Hu`SeRA-Cy;sR; z01gF`@m?Zg5bIA>1;=#rem=fUlBa8O4>Q-tj9WF}#6jI=svjcV@52aijv?w2Y%t!j z4XLLlSP$k)40ykPFOnYXz$f|^0t$ZxCIJ+3WEzH{nZ6hO3c~W|)Wksx4s;`%O~L{* zP;>~riLQXDp1Y5`#|Tn8C9Zq|3FuDMLC@);?G#YqYYcXi&vRS4JYx7eN0|LIC9AxfW$m+Agih((K*X*6vY3I z(Dxm7$KpJW@3{B?qtmd;w^)B^yz{* z&2GL^KIp&_UJd8--+!2HXKV?-?pqUr|e>WHa&O)I^n+V)d zAEbBXWm2&dp`h^3)X&7QQXXX>`5Hf}T9}eRNx_7CtSLwXV6ArJcCXjV!WSk-UV5$4 zgl_=5!Mx>N(S{zM3;oaU@zli8Mg;u`?c|Y}Vg-!Mk%Gou;uh)U&k45XK0qUT2vu*+-f;>rL8BE5C@8dv z)e8Kh7;_5XtxLU}mph-FF3Hr5y`Ve=DB?%PFQ`JRm6cRd;j(n*1n@dkA5&c*rx+G_ za-6iiP73&oH5Reeyc99H9=>Dw4-NM#d)uvdeIB%e&7VE`0y1C(&W=E;`PEpW9o+{X ztp+LDa>_q6=_@AF4lv_)1bXEFBNhnao+3WW2iz4a0!y}y7yT&BMg=%_ zbz4-uq$z^&iuCNUa*R3TALNdL^bfq}^r-+LJRBxTv$q)AlCYVixeQf1d&X8_3f6|O z6jbiE{wO*)-dCs1k|#I^qA7vVxlKR&eQQ9esOa=adOYav7yb4h^$!Ij*6?Hlc&75- zX$z&rKhs}Pu@(a=6$$z@h0=K%#;bAMRX_T)-YeBHdtTHeVFwj*?o@= zNQTK@JFVsjK+50}kOT3d3~(JLOfFd%k~-%z1d>PxrkL$Ej(Zf06_4k6hg{UM|o1~N3ora&V7favydd>U9}vs7=F>i?6{G5=D<-Z2F3V$mywXG4YIG1$QcrzQ0|T&A0hU$ zA@X5jc&nsrEgubPV=l33skKowWqlA8@loE!uNn9Saz0*q*4D*H_JKO^J;x#0ju8Y94eSehgQqmJ?%<3lQqj1K)vBx8wXE(`)U}pXxAd?Qy1LkohR_ z1e}c!LIrV45~`!7LAk1}F`C?vCNH>vP#_jvbO%Zdy9q#F%~q3F`UQqb1OnjY0Pdwk z%>Y5z)d1*aR2f?!hXN2A`KbXn5TTBOC8Ef}XfVBWgf^;y4T~G*AHgA#5~Y}$(f@It zUEjPWYM1gHJ=@&vO|8d zhB={vwdvynq?DX(mEH#h>+imA7aO=Y-`@_FE+8dyG*@n98j7YME0tBQZyjul3(-eG zavs&j3xh`ODju3s+p&Z+fT_9`m3zg8BSE4KR@C!Du&h><;|~NQ zKZXwIhCXM+PLk$sSVc%I4vlmZtY?s|@Qr*|ANk;&P?{K0*3JADrBpK1ujV;Cn@Gq@ z{B9k+DKfq(vXfZ8UBF~TP3~;2+#IKNH5;OrqSjYOm$|6y+oj|Sib*g^Q_`TM%XI#NL|!W!*xi76?LYS z%58Tc&^oSY6M8B;mJ!v`ZLi+L^aNHhdUSR7n3^eTQE{bP{rGK2L7GqpH~XNcFeCHC z3`&^6N0=Fc|G;M=JaU5h9F*3o$uX?S$sE(h16ji;LBJerW3)sASh4GP1z3}Id+HNR zDkoqqA(IgTw-H(swIhx(p|%(&L@@6z$90gFVCJM~p_VA;uvli8mBOTqiMEV`wiNni zNPa8pv8wV1D{Uu*se-_%BcdsREfTrtskOu@bssI|^O48as{EW&;pVX_cXTwDv{gBE z^dUN0;#0`_DJ{+^^4!&(AKI^lHCfw!7A4!X~LbZwa@I5Tyh zSLmiJmOaTKu!2k-0ipWN84hqg7aBcR$fUhOV5{elE9bP^jcOOuqjacD^HJnB@ZL=DHkRrKR(>|6;AETx_GujagjhRMq^+qk{`mMu8?ItsAM+*g8 zA(|eL51htb4z#tZ#yu6&kr05zrDi|{lR3b6pu#vpJ;XG{cu>_4<6jzkv^WgWAA_4r z3{Q@8nxyE2WQZG2Ll$~`OlAxFd-)+29*~7Llf_|^r6rT)r6v7clU2Cs8ja~Xr|E{c z>87gbmWk;$e0jyebT`^`FVl3@$8=xL^q|f3XlZ$S*!1|u^b~IPP16T*LSuF&zOo(+ z(L$PC^epxIm|aGjU1gg6sxbTAW_CSncC%!5dt`>bG5hk>Xo|+X@2t{o^;7EbED6ZTR}3<|zN1d81_!_lXEVeUt2%(p z%OO*zJhc|&0B-$DMsD*$zA)3y9DsVrQ>Z@!OFYr;)(WZ&E73VHg_#ZT0BUsK&W-7J&>M)V@Dx_+MAlaO$EoKQK$eP%<4tdYij-VGzls(Gdr z^7|nQ*Q;9S{ecO%WH+!=`GM8h3962JSsv`c3(I3n#f68D-+SWg-I-W)SY3_v00nW9 zw|Ekx_9jQt6;N=lF=e;3?HYiPArSwu8aOId!Hh|8$H5I675Nc0p~%tge5QDBk!3CuS3*^_7~LlX1RJKISTabXgdRGmX`8mnRFS zD9!#@i$HvQ(IO^YYQ7O40w_m4cx*WGZ8MwH?d4dG2X2=J^52jY1|k5O0^R<8%LRU*c#U^forRY!0UI zI%OIg)b5Pt1iRW$x76)T(mXbjA8x6C5nO6Em_;KZaJ0}wbEbozVtu^QF%y4%ml+iw z|H=p3Y^0TK1Q-GP!NlIwe10I1EFEm5x&QodwJQ>RSh_n*CA96Qdv~CJ=;`IoQhTZi@?p~ISD86aijcB3m;*A)wi`|V_B$RbCPL|AW^R2@D zlFfJ(fxXQHb$QmUL~UKWtt5S$lC5{f?t5Fw<{_-xDOT_7wo`43O19JN8}_!-oqJh# z{uS80ljVJ}xAU*S?%mw5`=z^iQ33;26xKq&s0!jr>G$mAY^6#HliPKrVF+815O8LT zt~|Nuta>jwKm}k|QcO|w7KHsiB8RO!_bU(ymG4t3qa?P?-J@gxbU-UpRCCoSOsS<_ zkT*z+^y1*s_}kl9quv54EK#KpssYLuNA)Qht6f#ZfHf2Ze>O**gg^)B_%uyZspPKd ztf-UK#l?YB!EcF+lMVp3J^ANb%0u!_9CqUrdcjz*l!C|N;MBJ|Ye`n2WIk2POo??xZ}5@B;QI zHT=n%zgx5cJ;>IRtJW_1lQnOW{9_ggv45xh zf;IYmwxmza=fLlK2P>nWKB3Y7JLu{*jfAu0>90o+74EKwbM*F&MRE<;GDfq`voOZ6 z?e{Una{szyjFCRRw0J8&9kv;##AUz`tyT%MPGrJpG{baFujpe99dWFZX+X^cDbx{) z+aWetsZZ0MTl87~JNqbMULhIaF6I?p06rJ~lYIdCU#g$V0G4kRnI3$*$L+XB{oJbW z$P5LHhk`ra!^oSXDVx`R>oFq}liry6%k0HbaVuWR$57-K&nTwhe|8DnBD(iPpWGj+ zI^$A+;gLR8a47=Nl;@=4U)JKxI1?tK>`)Q${lz$bcBc!c(fMdd&U9N-T;xWi5+=)BrjX!IqH9%YJVaQ%%90B}3vQB?+# zo1+SVz*AO`yxK;KKKfb*2T{15rMIebQChcS*7wMg^qj3kV@@Ug(zUbG_WK%p&U1N} zjk#(DKqCE0N<_){o>q?L>u9Ns$R&|7^>2#7WVX0(UAHHfn{_9I0R&3S#zM1Op(Pl+dty7eU|sj7}>4 z!1mjEM-;7c)|5Vvg-oowVWn|0oCHOAsF{{w%T0qa#Bm$pgK2LKx_vi1mMy7X?94rk zBKV4fT0)w)HTf^#I#L46p1c8G{)}Cm^$QPZIXr*Z0Z_yOt%`Po$_M{GV+>8Ox+Tbi z)$N`bdFyIN(P<(qs`TOs0x7V<)1O4f5|&X|H#0Xr3tdS8y(a}UjpZw6zhh6UoA`QZ zSSEke!fZcRWyh}ig_Cb*5Ha~Sniz>=pr1(}|3VZ=1ZI90IOSHZ3Rm~(p}UcLFb-(^V&V{!EFJ>p~F72q{s?QeQSFp~XsS^#t9FI@k< zvfsy?-)f5?&K&=gLQO$`0*f%2*ku`{;VlcMvU_T7eSTeP98u6;`+hW3VCJZXArQAS zTOpx{x``*f#QZRZEmP?$!(<>sq3+TEf3Bd@p4jsvrFW(Jf!330;$;n-6SbC019CX8 zE0I?&tlVx0z3unU(~ZIGC!gAHeqWybU(w@#s_ednG6X_m z-xbtE1`E$d<2LcH2)P#lsm5=C_;mdM;A%dMdy@rwBu)p6fJmSZzu^iEyv2%Qx|9{} zC6D-_Y3;h_j5R1}!v<20mvY5=An`n^b2x3#gkp=T2sM|HeF+YCoYNim^0^mv0v3xjGSTk4=VFp^yKq5rXbdfG6oXSM@NtD! z>2u@sj@IwE9PJFO`z|6EyNq%F{(=2R4ypzA0IPv{e`BefN+FI8_17%$AG<_d4h7eo zz62JnQsaM=S{@EX&7$FSp_luM{k1y^X;7bkbcy2rP`QD+lF9e#xorFte@d->ZHRVh zec4QvdHn>w@}E*G{3Xw1u%W^z>iNn*rgE~wVvEPweuWnXOP^4$FW{IiaV;T`kll1h zh+(ETj`49;i(1XrU=XV%21}LOBRMkJHyju&l@~lIGhO=e=>G>;`v0y=@bUGm}A%`bGCGhlbUV z^sh~>i7$?IHlBYxZk{drc=S=vrItg&$@@FJjZ*O}TxC<6GPn$ViG?S)dHP$sBZo~I zP!jPYzPeM@zjj};TKm^1Z52w!MQam~-$&)tAyvcBp>q9A1M~3=u~&6~c)1q~YI(Hw z;;=?WL=!B}hDrauY5b26Uj%A`LV>b>LmbfbxO!FGA4bCV9|xhkl+>Qwf9Ud`5Wk}s z6Qo%CH^d8ACs#+Zk$<|$A6BCQatUlE7>Ez&GiNIO=_Yl8d8(c-4b-!bl$&-%&?sLp z%+_EAA^02jiiJk!gobELH@TGj@??K$P|tF?9n(#!UB0ef>vCIRHN7VIu<_+Zvzy^# zOgHHk$NS>KtNCnuH0Qm0J7y5F%gg7?HXWvXwm(o|Ip}!h^?yN^r~jEQpFDX?kl}~k zEXZF$!7&`?ze#t?6Y5>jPRv^Y}}Sxq^gWQmo8L z3Q&x({FOmJQ?ki(jIsPrPhsZNGhhkRTY@}_Y=5*Y5sDc5`)pDAv7!))0c=d3|JI{n zXDv*KR)0O!zw&+FU)+~Z0ZJ?O5&)eIuvZ%otY#)?&ae2bf@k;K|3?J)A7OI=5C-6Y z^FV+9C81WR#&q5PPq1P1rBwW@%Kj5Jf6veVV#fEQ*+Me^oS*-O&G?flFU7xy5X}6H zfz2Og`~#c6h7ipBjA6!w4^A{+a3h5M zen~+X6W8DKbD>W*OTyjQdtYtyWiDm6Rh+4O!qt0@V zJ+@08NIM+=H9ya5Ck2o_-_5;u5&ma>o@dF8k!Ra0pl4OuD@?H|WhzK>-`{)x&X;Y! zxL~3OGc_0edRAQ8u)kkMl8MGWD6iw{e_qkFU0Pb+a%op>LeK5GT#f-K5IDoqNc;gk5^63E#MU zp_6QO>0_Gw<cxB%XL_2hyUe>*h8aK>)}tpe zSKBxyBc20keq1fctXNvt-J+MKUi;MfBVJo&pG-d-)QHl)IYLav{9bE3$*MkX$69`K z3dVZkz1($grRv+jV5avOCJpgse)NfC)sN`}6Q7G?i_x2z1;6adpX-)1zE|tcfR;QusG|F4__R_W?V&!l42&HSkFaDEds?Pa+!~xoKKS%lE~S@mo-tugMvsSq{9PWi7Hk z$?dMqdX@J;LedpI>eH*3eY>e3iPdr+Ma;*DCBB=8U#k8*sWx}gf<^X0{8+e%Vjfwr zf*fxeQW(8%-mU}4^qyXMFR$qIi$&CF( zrST47yYD zlyKo~x9_VDQA=T#!nkvNHdZwh73J3Vl4ph|cAPVFU%BM! zD;;3Z>2Vik(Ogyy@QMlt(V6)rO1Z{%ewgDO+{M-D{w6P0E>|G;Vj$by=3(aDm(f&9 zC^f;Ruje~%KIuz7j;|Y+dUjqrP%V4K2sUgb?Rc7`FTbvQU4LY~^G20w<<*E_-8uh` zk9hiu%kk^l8_13yC)KJWflv)(dfT5Oef0&`Wi`BVI}k$k)K2ZP>W=Sr@b9#zHjesL zG-}(SCzKW#x9>`3+U@X-Gz;^}*$U3%t;iWlOOp}u3jX%3=)p8g!(;Mt@tCdHkCaw= z1O{btrdw~z(yX+(C`whiwi1#ltu@prN_1{FlOofs)f^3qO-448{U~jeV+`I~XKkiB zrP(M{rlN}+95>S~DWA!W%oVyxY-Z}EJ(E7BDD)xN%vPqfl_W4M2wvXEl}xi0<4Vhq zuH4AyrL+@Po6k$~-6(vJW+&iCnU|@y@t%tEId6<%ZXxYP31QlE?#i^BisSV%EXo(0 zBlFqy?dugkQ(v$hQ)aittXCaS*gqgJ%IYy)|FDv3&%~9UIn1?QJ4xX{ueOl!^>(fP zOR58{BUQ%I$Xeq^3P-9Kqx7w;wdSf+NAk*#X-AH09}6j*?u`6SJ(pN(OHFkmJ{C>A zAz1qqP2o&P;GF_lS^eyv>Wt6TnhdX6?Q)}V!BM+@cgJtF$1c?c>L~V(=E>?86AD+X z81E!z^u5)7jZ{}aWoshm$;zM{#mk%F>jeH!E5pL6FMl10C5XqajB--E`U&@mmor-# zr%!$LgR||e>cf@EI}~o;RBz&R(92(OQr(Un#N$jxmuGIs-4CLDVy&~6=f0)5?^d+M zI5;gYY>~g-8or5klU!b!OL@J1Bp&TUxV$nT6W`jy2a z&y+VqM-riJRf{JMq)ZsU+^)o9 zTS2keK$;$uTCs*Ic`zd+SR1CPx#btgcBsPAPciaabpC@e@nEW{%$EF~ECziU z7DpcLMoy&IB%#9)o{|!t))byG8=iF;oB38CmI zSmf|-l!kQF*QV&j+34lVXdjR0+1Y?su$ZspFmnXdBL!O-5oQO#a<2}JQU}?hLjAcR zkB~TT!eW$iz#0gsqk0%B4$CAb%m*2Em=cOL2l00fMV*5E)gi#Em~SlDPfz2vZDZDj zVkGoqD1@V*bpX!wLz4l3M~E;_b8rA%>;v_<*W@rw=lD0aIDl%93>}yiBlzWE4U3`! zJ*|!polW4v3G?rOP{f5sp+NYap`l11Dkm`_F5X=|k#7tJN5tNni>B&-`y?f4vJXZx z7UPxz15_tswBGx+p}wow{y9)!Gq(FB^m#SZoh1>K1J%b#5S@GHgi1oif#lRf{o|ld z?Lxi7lLAVhJ|!^e)D#c96#FZva}La(F8P%~s3#prIS1QUJ@lDysyi$hg@DR=CWh}p zpIjxpPJxm-ZNg&_Q&X0hxPA3r$JJbNsa7=>xC?it2bdMW8zh#|8l4iUSd; z$N8%#Fs=e4PO%$sU=pi9wlN^ZSgLtH7A*ikFcy~K&9q0Wk_HqMF3adf~E*fV5C3U|R?e+sT)D1A88t3QRM8XS*+Ss^n-O0!fb zftMwz0mwqqj+CbqvHs@Riv4kxB3S@L+_Tfn1K|QFWy%#r5O>R(ig99r zsmJ+MmnGsrb45z6l~T)<@)+h4UMZ!@E0!`ChDNOdO8Y~z(u!k6qNC=E>GPtOenr|K zfnFW&1NtFEIba=b2pMI8s6m01VS)w%lBZPEW*CaXWMcvn_z*CgRR9-vH5VP0tvL=2 zst^+|49DPDxtgcCniP;YU78qZ0F*&MbUTX5Ba))xKg~ z1(#>VTubOeOYO2(t^(D-kvM$H1yQ0YWX|z5&ntoz zGYvl0P#eZSHb?{@D!eaSd_P95v@|{wYW)NQ;8Z7*7y_62o1~uCMO0TXmjD=1Ko#Yp zJ9J=1KubkgG7TCRKxPgEbb#EE2{<{eMBG?1lu07yZ8$maHBv!$0Dzy(<(>%89d#h` zw081i+1EF1bD|Aor%g3RKpX(p-F<-CK+RJ;z&Re+v87C~nlH4l$HALy)#s_%7BLEygcfGG8<-zpMv-@v)3>#3%M%<45SJPF zVmTldIMAIx5MSG$F+@}u#am7-R%^^#e<<3h!rR;``Y}VentG7(+aUMkV3W)cr{z$6 z;1EatP)*lR4#`kw6wz1|&&ajNS7V-;A(1&1o`npNC2x@lv0*Zz5xTSCBFhn)z>)m? zkqX|CO%B7XjF3YPk>iX<=hwnNqaIzAi=5eq+_Vb+785@0R zb%fwXM{{$D3-Oz93v!Ba_ymjI2nw5s@rY026HNinCcQ1E0D)6|latzgQy%$KgS=C+ z6$s7Yhw3JRdTkF4j>Obxf=yIq%#MPd9tjxHh-;gCg}F@s)SRB;ofhAne%>|xgJI^G z%*;%}^m9&Q=ivbN3UQwsl%KeO2j{~;xIpj?S14SkKYt3&Omsxu5uskEZ4BlMo>sc1gU!Df72r;hw4qVo8SecMs378tcRGs=o z!+EXB3#3J&#U~-l99XoxIKEui?c;D?B%$LNk*NX+?dTm}4m<*>V+UiZWgd!UV# z;gS}oHF`YqNG?l?QDRt?;NcUlA&nSz<*Y|Kw^CZPgV_kYfzvH>+HDJoZ7b7l8{ci) ztnKIR+xE-bjSAy?4HQDOr1I?Ry!^ds(-8IkfwE68i}N7KGXvsp*;?MI8tN6WWItF*`K633gS$J@TgyIIHk?Z=19$H%wFr?e;E zB~E^ro?Q5zTxOm8YCpMNKDoU;0o*$UNuGkuPN9CMu|mnSH-6iL{RU&i3g$$I5pu^mp!iXFO=hGd{C3 z0lzb$>@$&1XJRX766iDJy&uw&KV;2*$ou_J$o?UEhYS#q*O3d-R3ty`QfLf4WQld~NpA zpmsOr|F=N58u`;HKO{t#^_hXy;L0YKy`G5`Xn zl}%A!lMaE?NCc5%Y-A$taGG|fXl%&GfCn@7$u&0>;+a*mWK%V_l-_Zgv@>~@;;W?b zJ1lpnYCY(U74^9VQ)=(3=gCDkBzkJ^X%?wwsvTZw?`xOpRG9X7@!08BnzZ=_lixYi zudyD^l2dkhVTdu7m?!ZcA`*q^4#0-d_O4P;8O_AN4w{9^=O%o4Vgwi9Se9p z(bG{>m(J@wj1vM`8CA|(!w9Lm`WI(MGeLf4=-avWEA%H;NdPtz_xoSCvg(XL602&d1cF!GouOoj)zWwm z0#2pj;vhR2LdiN783bp6vn&ZG={H$yW$h0=V69g~Qe>6|ZzaiJfSu*3Uq_wD)1FU$ zdraSd=Av*Fz{k^n5TUIp&XgXcDSSVl=|qvO>e@kxqq){q`JwgXcjbc?(%PZJYu=ZV zJd;)lwcHCTj;caC8HcJOp$TVd;zYGCN0+|;;2mrKMOr6-#FHaM^YfA19IMOUQ;k$t z(0TbvQ~7iJ56ua-uXU4UJm-nLYBJ1US=E($?6tM^IQO-6>9x*v418SObbBr8`Dgmb zzVZtizk#?H8V14-^(O<7=F{)e~lF7)8e3?m#$^}+K(xp78x%8 zsEc@3-GAeC7}+GSFjzBL1aoMpGX8xOw)l=}py|Lp%&|40_037}j|-!|cC5!R=g!yE z*QWvadKtalRCmK%`i#7(UHczMe)!(|@Qb(X@SUC3GeSv8u~*}QOqtG;Pd;&@H44`VD+F5 z`lsV69@5JN>bC4wxsJw{yyU%O0=%0Ba0gfs{&BSf^^e?nFY@kYignV*vKGWiO|tg| z#>1ZkS&$YA$+78PWJ$dx z^jKtiJmz(`CGC0BV~LCLSU<289Yk0`nrtF2RMv{&PP2l%z{J~NE5^tFBeBhY-1GeJ zAN&OHgRn5^3;)y2kW9p@Fr3N%wln{uto+Aj$a6f2!ywV)zi);n-(!{uznY(uPW@3< z{%bQNez~*r1gZPw@6Ax7^Tt5tphluWX`aOR(qQACojFFHw&=WHs`J{nrBt>Fvrvp< z#CQ*SZZMaAuuru%{-^$8_*H4Sj@Pi4YhrTUKX&F+NQ+XyVH#ZLANq?Kwt*i{G*HL7 zH2=_FJiFf9tK@jnJG!6rxBkM+5?#}do5=b-uk$bc#hb>tCs^O@Zel7h%1Vs>0=><0 z0APEj!7T^X-P>%t4~4sl4l{ZL4i1Yw z=g$rVKObKm*3aIi?(p@u)Y@a#<;o9IFRnj>1i?#e$1R7Niud`2?ceT}4mG?uX;WIZ z9Hr*~YsIx(LOGn{em0RPvARr)o_6A|G}*OG3vhhvW|6q&>>+=qvL<>$XC=i!8Org! zk15&ydq2zj^6vv2jfdX{xxa9n4e`y`pJ6sb>I(a0J6 z4>$rLSUkPt&ZlctYU7uhSAxkwE)mFbs({K>{tb{6cid3VKD7rBLiz(#C{&Dl#XqFsO zZ58H1bCMB(QZaShM>!;@7Ycy2jJHhB-U6CL{B#1cb-ji23Zbyc=s} z2#rIvl#t;#iq#_rvRo_&(~S$nvj+kCY^A{-t0+!yMk0D=6kgca&@=f2s^!%pK_h3h z9QZT`tm}dLG|@cb{_AbJn!Xe+Pj$G1`y_;Z48`o40|Kk(x^{5*ZCAPwe) zq=~=Jp@O*Ta{1fr)O?;2a$s%=vMU7etD6TCUn41*Cv(^f5O4ay^qq-4=SP)aUZ!}M@3THee3LcU!1C@*? z1j}c}{MXyxN}5^8;5Om2f@mKj7M=!D4FEcB5TE@&?7wSlU+NYVd!+Bg#|Y-7Q4nhX z*5hp3g`=0V4UHS@*tk&d!8b*+4wP!O*4bc`l5omp@&yt}R z>Y~2oxB|3c=t#ojE$r2(@PK`~@7b@Kh5B7HC-Z6y2o8vm5$JgQ4943`glD_!;8Hd~ zx*<$uk>ejC;U5Mk|LHDab)SX@Ddo>1*t1gh*{#A8dFpTmykiBa#QAQ+m)J>~dkG}9 zxp{UxJ>LPUpk}>~sytZtDr<)}kdTSS>2jF6^!jupy9}$a{y@@A+5#RFkGJl~{ptmM zhBSU6!sU-z!*6oDPayDfZ!3UcidEM|0JL_@=zRAsJ`#)84>lOUR|_H?tE+!o<~VTl zafLT}`KE05L1XN2*KfoxQ=ob+4yDERX4BSJg|Pd-;Wx46qh%AH{WTKs$gr zFG3!owiju`#EXWTS5-xNY+lidAf5(L%Sg-AHvt}$yG#u{+L-?yV$3R49jzJI0$mdl zwA3*Friy1jA?`s-$6TRCmqG)ZP+9)w1&ih@Kms2*pAsFmu1hOOaQ3MWz9Ey zVgeg#^JUPUsB88}_={_aOZ{XIAr`K-NVAV`)@FOqe}bnTns@!`@C!WUU%cMQ7Nk<8 zJDWPg0rua`+p-Q3J`~G6x)^b!#OJmk8IvB6dtLsF&|(a0M+d$iY<!=Vsvn zHx3N|cBwd=I{4MenDqjDVeoHfuhK&B4V-aTPH~=GJYVa;O*zM7IE4&9)5KWju{5Zj zKR_rpXv=Tn%@zP}za!f_Opgn37g#_pap4}tp^9|yjvs*LF_pt6i-tI<`c+7xj9Cu^ z{;4=9{0>;04~~QVTv^u*h79WChVCSab&_K*$7$n@#j@{OG=5>NtB0TRIW5p(+n-v` zki|5T5;Uj_%|L+5fas(II7_M#9opIC^;Z+@tH`G6_)pHt5AW(?a*!WbN3z@Dn9{*V znuKk-S&^)XIqwn*ob~efW6hj{FJ@c?`k|Nzlu-mcc?^7i3+~hanazQBKC=>y1Md>U zb+uvB+HS;g&v1l1m^zG9r=MP?nDAO9?(oBB1pKhO{S%6@IB}kr)x$$ieJtdn*7E|^ zu;N`-B~CYiWOTp)Fx<)+K%xtGD>24h1=4ft550ooa)V&2?}n_P`NCK{axotI+9Io% z-`oac+z{Lx5N@1vw}5VONtz>tmp%*P(<&Bj9MCRD=p+Z;(w~lVmmm!FB5p>tpg*SD zGujvc+2w(I;)si=18LFRSa%*1OsXfp-$q7rr`OIqUFt)aPz$arGlGwr;?rMzC$osklxYbr+LJ2D~f6VI$oiPUI)&)7aJ4tE; z=0Nf>x41d3q(H~DRo4Xo9_RgF4G+mGq_9LC+-+ZGSsg!k(m0kC@rDxbW>RJxf#+_B z5D$8PrvM>?o_QK(RV>aF{PxRxzh431r;^oJcukD&LH>@xzr-eMg~eZqvFQ>{-VbJn zzE4Rj3Gg!Q!V=CK@THVTB#1bdc;Tf`mRQsmc^L}plEMp}MH*X5-wk*Ndlh4A2ro^F zb0wER`H(#bJY((mm8DOcC#7@u;VX!WND=WhWGQ@H2Fz4!N6C}aLb?Kgy~u&tsV4_C zBHro|?WC3C1L2nD*qHt3>3PcA7NTzh-Wd@@H!TR@0U5-o(xywq8~}cT!mb@ad{PGw zxoC`I+aYWHFPsxD<(xP>;R753bDGR6AR%Ar7cmx3Mx+e>DYHuE60qavY z;9BgYa-u}iFNoC3NHimBc}eg@7izH8W$%3UqWq1}{8&%$O?-_c*jz9Wf4sr{cRlzq zfhxO;tbZf%S_5Ld&U~T40*{vq0l@0OLXOoKR5#%G%Xqk3o@q%Y%_|mmC^aDErP*a_ zU<7e>@3Z*oDt;*0-&M-zD_*h0;s@iJyixoiQywWRC9V8e_BT@7N>0B(?#cbSMRR#u zuyXjOtIhH_KSLW?7N)0eW=A-pCKQNxH)y%|-*sA!wXi#Eu3Yd3q-!a?2Zvesbq z3!aFvnmeZfoT7jZZX$|$4VoSm>#xd%Lb`q^08>41F-KQxOWiFAB)Vr%1JPXr5L7c8 z)%_pp-Ycr9hws*1Y4n6pq^lq;AYdrck={WNq$9n9^bSJk9RdPUmEJ+Rpp?*yG!+mL z=>j4uDjhT@`u^Wo@1~%prKn45++ZdRQF7i-TOoXs*f` zzJT_E>J-+MZf`~R_6!G0}s2GU-mD3?nko>K-mUf zGYG-01B2%SY{EoR zW&}cm!u~TSg}ggJ=ZutaVNr<_ck;Zt?IHBc{WuP;HKMq>@2eAUxr$Bq{5*0y#BTvW zEZl`ux{;L)gO;#uH%DGl5_{w6JS{m|#|B<@n!B%HCx-p*`zH-#hK@-Vw2dW=N>hvt zxOT4;Oupai%F^oCn3xo)8)Fl0k&*(M&^=OSpj1s{&k*UhA4a-7i28js$v74o5w^gc zzsU4*9spkJzXacm%x7)oB7ym6wys$X8%z0-FoAwwygV1fC~3~@iiHjZgpO7ED>KU= zoO;1*2nrmjNZnNWQh#Dy_ZFUS>QizTn*Ytay#e8gsT`I!Us;4C&DtFd+Ch!PNWo|s z+SrV($ow~Ts%l6thJHBXISr)<{ z41`{uWwa$z`2qr4&%!Y6Dggtjh^&xEnW6hjO!qR6)empx5gkM|?|#oqALt04BX zY0ODEHF^=>cF*jU4G!R*Gc3}6Id#%DKa*|D46lL%H6Jo=kXHDsJya%FQwqv<<_YZ$ zeIqzI`LcF${=sPKuZ2YXuQv&W-Qtr|(p?|E@V%oh1*^ya8I8m$mjQ!Sq)evOy82^j zr3~4;+>nn7#L2m}%EgSUPwGE-voIlq$BH_ap!UHPkzM8Btl|5B$)%5uHV<;o`1>&$ zW$n&-+`CVJT@bh?9VThrMy|uO7%xi}5Hm0ueSdkIZ!B$MVfB1nKx=IM%bTzVABK~b z;XjveEjP0xsaA@r!*&%sO&dKDYnenh2U!i{ezk(6r4^+b<}Png=GXM?x2gZGT*cYF za*@40TsbJYS)Vw(DpwPJ(Rf>GlfPopvaroPY~%CZ8=_YW!sgos%-bIdk+Wt42?HK;(CLB_(NtN%(^|FNnW@`%P@l-;cc7Y7DJ=8_zp0*B z?65ziFb4IMF4I-t-mUAQE51$tbb0r`k|A0ziJM;H2`yEU-&@LfC14}e&zGr;UP?TE z({v*pULq`M+em~eYvu9UvxSjZprzjF66dueSBhH4Q$G)s_=_}2b^ny=V>cWsmF8#r z%2ND5)q!S?9dZXFqlr;Sj-_5Sk})&S^qWL3&V{TB@Tx*(fBbxY{80A%O=amGb` z`=K29tQ-f2e7%D_pPdrRrhL%mJ~gF$Ly`h%tAhJoWWo79hms=24S9)HMLj251tq2U z&0A3X4duK>CGAY5Tr*W;QDp;PWs_Fr5MNa*-ygQL%H1I<&aEo@0vO~_JqIviie0evR0so~4K zA1b8T=BwE$($@pk>Zk1=j@BCIkoNM^5%SkguFzSby&bC@2_3rq6{_EM?I25zb;;q8u$S(Db-wA-DdRP#@x_$<|G2B zB8X$T!~xIRIqR4-qUeqo2=c!rLziX3pp5@}G8E0I?=bH9Zjf&kYPA@ny?po1C@EYs z!?T0+gp63wMpQt3G)8gc3o}mvkeARQ~c{T2d|pF~5zU-MrmSG?z&nrE4{03yrOJ(qe2|*Ku7K{I7&2Gu|{#$)`N>Jj-y$PJxxhSo%4}hvpV;a zK@>~CAaFaMdA%`#NMGv|nhsBlWX&0IDPf1Gg_Sw0cREQv{~~xFAbMGxf`g)mGAu)n-zqId)us3`itCX%r=RU7-$4CK}}mNv?HJiMG8Zxy=rP*^qo8K`om; ziW2Mg8cCL5)17@tIIkS#B0#)xESA{E}g&&VtR66&;f7 zwv}T7G&gsSIaF0v^kE*pXRQfL9eGUN;!H6d7&SLwm7Tj4nU<}0JF!9H+Ok+)6-ZPi zR1Jt_2x&mEI3NOVUh8~Vl20?vKO!xBXCT*K+LZ?`RB*3CjTL-DtB%EMBK*p)xx752 z=RIT>+j}?v4=GL#sL<3mu}dtT@8h*?p6N)4e~FlV%r=C)F+yfcHLJ&!(FbWSVF7pF7=&x*PO$Y&7grR#sKq* z+#$Fxrj&^#kHohzuEEMpkwP#(ZK$f1mM8P}wHk(nm!6F|p7I#a&()(h{fnYW2H8w9 zGuFzB;%Rvz<4nH+a(h?2>#fi_5l3DzP%OQ&gqJd57}^F*8dKQp z3@hrm(5}l_X9K_u1QBhEA{~HDkI@g^p!wX%aGj~B*D`*Uyo8xcEbKco{CTak`l^OV zXcH?OI&iBUzYn|jqcqW4NChfW!v?hGK%GSti77{6HZ?pfZo#E=7RZOj@d`N;b7+t6 z$j4a9z)GM()5VOCrQ`84;>3NsAslB4hSfj9)wk@F;pFkA7yQCecm_i2yj)A#a(;u_ZnOZAi zb~U$LFRzLK$O^r_AUnh57EQ4v_)VT%V+J@u|0=}gr_Vt zOiVT^$0Ys}alb0NZG?>Ynw;VQkydf@oCuqKQDcrX7DJQ!N**SShPb5LGBJYn(LJw7 z#w~DUjN-|R!TZ_9mqnq7cu>};JVPULxD~BSBX&0(piC}GT6S^+-`jNa!r1Jt^Vg23f zVTy13@!(14MJ8LpMx$Zx?6xj@fnMmf8x(QO&p_ns9QK}l5tG*k4|48ToeD0aR8*gM zZ^h#z=)P)bh}bkaByyBbI=v>5v=gS1d3qYNktAHWf}(OmePnJV87@$)q?M74mN8c+ zJGe%j8Z5Uv)6eEp%K2kQs#lpOyzgMzLO6YsGx$wfPfXRMbjOWe#%p>BDm-BE7QNoB-^|#Xam}@JU*SV74XT7l@S;0jeMuBen9@Pdru(X{reT7fR3U1 z9sC0b(p6W9N$4Oug(Hn)ljumLNRUVhYC{$z(UNPh{#AV-gyU>}w6SpWn{qbNe2G{! zu>VqzXY8|0!ng?p`4|&t;IT=s?75MlQUm3T2AL4ajtvPfduBXZ+T>OZ8aL?S&=%%l zanfqTn)dwQ_)mrt1kwgu{%I7F5E>+&8(i8}@{t0=Eapy)Z1QmwS2dE=s7i(s=&#!> zRW;cTr?JQfQ>c5Fsi&hfE2OKNIbS}yZu>lw)Td%HPuzL8t5cX;C+j#8%%G7O$5Nv9 zFXoOwBbWX~HUBzm{wrDi!`zvaDP;X%@F6gFf0NaJn7iBB`Lk8af0NZeH1a@v98tIG zY#}d`!~)mjKjII9v&OY&oF0(o@VapSH`%UvZ-N1{LHFLA#o!;Z{mDmW$}zey*TYX& z{*vw0r|UM~;TWgQzhwL6uQtG8g&QO9i|2pI_7t7GcDiIM#kZ+{$@b0U&*|!VzDMVO z$o99_58j@Z*mkflh5b!d&0zMFj7qGBERh6fjdirVHe`Scp&|OmSu?sUb98ZMPztfQ zy+&}>7_-D@a=dvI%lpS!Q|4!Q^{=zWTC{?ABlVB7#_SumiWccX@yA({H5cB^E#o=RgS0Mi{l&xYS%m0o``nMj(DWh}$1(FkR$-k6sYt^e# zwSXGoz_gK^vj6_*ZkE4LK}UXou#Vh&`&T#g2bUx~I*aJI=uu;O;9%^3h2qI`g}e;; zP)W{-e~03AqF1Q7c8JD{|4T}cqN%bTVY~F{^1r17^Cli-DHD0$QVRc(5+pTnLMUZp zb_~h?krEWov%j$kIQW;8pm5_Ui&tjAKT?9`4{Wsu@c)Zag8%y>qR^=XWzI z$hu8;E4vhet4lh5YgEg1(7kYO>?4zMQ>deMt$R9tq*2}aQiZ&}Wo~!Twd}dKR9$=3 zwUD}}%>w5x4IgaC>npL@=l9!NM9CXES{GezsC}4{YUs)M@wuTFFbm;ab& z%4x(m3L2jO7L~ry@?G*mpqJWg$-U*+fA3BoUN7Y9D2GSg_ZDK+&tJxf=AMm zUXnkRuJ2lP=yD%Aea+H5EfK=!tFos;(KMzCc_~;2t-NUI>+i241XYjfJZIJ-3w)ky z1>8G$P4hJQe*fz$g{>3f?B?HQ+%$cgCq>Lc{HNsx>V4-d&O`lhA=CH|t)q+m$&Cx7 zFYgDehP&3ezfXQ4BiNWEe7AWZT8zc7S6+&_WvXC6=5R>LCp4(rIXvuVXS(;5!0q%$ zQqMc(o}`K|z7=&ppL4{YHCMa?Y}CXP6!eLK6>~y@?yY_IzK;V*bg4drtn5_Qn0QP2{SY*_|ir~ewL~b z7Xhgr3nkP=ND{F;FR=8%H3r^j70%G_iV;es)P)@}gp+@*oo5vD*uIJ&wS=NmJczhk zSLKkan$(?RJm{m3#UX9;pCmkHP(PMK7KE@@BW!R%0kOn831$~A%zcfeTs<)0wznc{ z_Fx$ozx{|QS7KaWqcS&R8{AAfGW}71xxkHbRh7sA<~n1!-_e9m!K_RRguRu7@)w>? z8$@2nc`;-}l%~8_&~i~MsjFj0j9hBL$&&d*RV=5uq#v<+J#2&-aWlT#;A?nC5gnOw%+c8 z@r+_%m3Ja8UEn}>t%@z*?at?{l|*jF(+aR6DFWiHi6mAdz%KhQW1MV>4OmD-s??-) zW>@vru-t6Rc_cSF+Dsor+?RL!obG|gUIQ^3TZs3_6C;pMYm8QhwSgiyw;TxIJx~#^ zO9wN#A!}~2sEKx9q27CR%v#c4#iW}etk7>eKNrY}zqg9=BzTm8KwcL8q)2}A?;_C7 z2#vSZ@~+VsB0U*fh`7A8p3@uVNo3z8|9A|4rY+l!!BhP)SBtGLIutA)>XppW^?a_d zk*qDmDuMRNFF-|?V7D4&`qJS%;zn!_4`b}xNHNalKo2R8HH#rrsCil;J+#WNZ`tlhT|N(E}i+r`eh1niN*^Wm?qD{bGJVkO&=b zHT)>MX7jPen=FJ~bKlNE*>v?rgd2p$ZWL2@?iwj%v@!hpCWL&i$m}Qe={rN`OUkQA z41kMde}ly^=@z{{pi_X9qJ})5dPOrv%fqz}W68SR2z9z#ELiY{$ZISZHYiuaSwQIj z9e=z8mYe9qSW{-cfD2mzL1Bnkv!}&Tg4gX{Ab`lh2&-uAgY!p)0v_UfUQkpcHp+R^ z+L1Q^>i^`LmN#k2X$wmsY=sVSkl zM=6VY>f2PL=Z=kR`K~g;hHiukDW31@MdT@$31VDot=Kh(BJT58$s@c0=5|Av{g~JA zT}wz|dUuD`$dYjkYiY^gbtrs-bu;OqZAC$29mPN~f@b{n?0M+`g|A%nb8?RP-c2I% zj{?3x;6}1`d22aaV^=hCd4CD**Jp4WDZ#z@5hI`kpUQzg6O}xWv>X*hyaE`wp>Gvb z*`5XnU;}%s5ZB9zNX7g7E4Y=IQ9C#1A5msSm@1LZHMCz%rby>>T;+P>_f?TS_*~Lw zgPu+85byZn*GKKZjczOPghrtJ0L{*&2dsd=? z!@DHd+f~P&aX27wm12CA;&Ob*qfEqL%ytvLm4?9jGc> zswU)vIe!4^MD@l~{}wG`5_g}lbHKrD$ueJVXS2Vs8_ zR91zb`Znw3=Jea}Z$wsq;=@L}`+*=sEC}$|#}Gy2&!B(`$h|6HiZcLw3{S^r!5xbT z=_){iBJ_?7<7VQ*18F9)aR?)a!6Dea9Y9w%0$mxrwolGOh*0;TVp%?~{6Zx?0b(pb zj04)^T*2JPCvD-64SdfPiSDu@I~qY`#in26op1X`PsB&7t5N-vf9c*gk<&J<J<7It2+<{KHiQP^LnKJ~vy?Y-5P*B=Ru2SD>Zn-(hPDaZ8@Em`@D_KFzVz%DB6tY}#(@(xRM={T+NP*iw8 z`1LS7D2No|I z(MQSesAW!(=JbTOIC2!@gG-GMxga+%r&)RLvchP^0dVNk(9nn^|_z$irG~3U5i0Qio&4^M3&|_ zZ8}*o{Dxe~!*--EnPs`J2C0{t9)287n+0_ygGYHjkyRmiy zu#)C-rbP)^m5d~}>>`qoz1$_LCu6OjH3cPl>axhguc3)`=&XEZoQ3xx0yCfjdxvnO z7xPDQJ#M#U!r&2-IQ!bWe z_2uWl)#VVWkC6*A&JZy}mMl1w**dHZ%%kf%B389mhFro>5VkfM(6%eO21Z$Tm-gWa zRt6D6q=YsFD<{MYPq4lapjLo1b;RsO4d{n@azUkml!3LtTi`aXDbm2!a0mj6h5sgN z1n28=m4h!G`2^bEMaaonZ{OAZNUro!pO+9hzyOn%5VOy1RFz=4^SiF(t)~tS1hiAy z3Z%pu#QeVLeQTX(358j4{SRUQu0i5hrhW6sW_gB8I}~HNhV3j^ zg;$(glN9L<8Qdd4tr^^=LD&|ZnOk1I`urgzOm}09_7T}oFknSF?3YH^MYTeLsc=xY zYDa#2epH7)eDctI{i8Pt0DJ8kxyIpodDyb#h56ds=9w&Hp&^9tfSjXIf%KzAhj=&} z^3Ku>iI{_>MnLarZTjTC%`J{Qla0N-9CvtI;lGD0L84Y2`!BXOq5UtPT}dvBAn%VH zN!syM5y3h=!H}@*Yf?M{vtsdh$@xpBTYg<1`_J|Bre-2=?GqjtzO$V?!n&UXCgCZ zkwprcEU@bQICd9!6lS~UIfHX)5VhqIl}&N50K||l=PVNF$cAA~kt$ALdA-yle=+=d zVt5xU;sT;;g;6dd{qBI#EFw)g^!Kr%RKBpyq6^kHAG)&Fhk2nlxmrY98&Z@7XSnGl zrwetDDdu5_qsR_m#d%S!jw=ChZH%=v3&kepWrI2N9eR|WR`D@+VERX!7X+BJk?{Q{ zbjXOg5NM~gmoku4%{_ovLmb3{?s<~66L~ebL0{wU6>=hs?Yeb6(@J0@5@yhWd1MDt z`B#PcgV10ZK7DdlAB3)t*t2la;Ax>4H^?2h;m7e0!=6u20UO)_B;8=LU+_=40M)AL zkT8r;E=tY!=-Nv^5sR#G94ghyqwCajZ6$q9XVMiLMD+=ta&wpg4eQ4rS)FJ)i(`Va z9fQ)cgXBiS9<{!4j|oZ}y;~NoSZyDy8LA#9=l_U)mT%Vh+TJSY4Zr zUQ;m+>kYxvhDeWQpd*~f?x;Ca>1l*u&%L97D`qa<=F^TMoR`km>GO2=KHJ#q0*&|=^fhh zy6e<@&$AA0&BLP-elt6)QZ-?%@$OCJfL$U9PdvQ0ek3Y5%(K8v5G(7yNlsIyJ#&sY zn!Beb=0FkX2Nu**Lt1R@~%B2d!Zg~j0M;| zfygWio0;H2nCY5G?3Kn>y1JAf?_10RldESCUJUTL6E2#%!8lKH*>mGQ3~q-7cy^lE zJU6I4)8Ao+cmW9M3uIwc+~^#X(1_wbFP70&P0felLYvk7r*+E z?2fxf-zwbxfw{x*GNpX6jPEp_Yo)xx(4C}}r9H78pA&khO+<{1{Cwo$`)onDmN452 z(8|R;op0{Y4UuRw;9+g@Hd-;h_etc^Ht#ABpb4)H+-4r}{s4T_ zuQUI758oORzDJUp{Rp+D8?f34-yq@pbaFjl9y08%ooTa|xS1j=n)(riEDGMk*;>59 zWq%OQTM*K0(v_JyLQ&nN&l8Dq zly78mOcVt>Uk65gUKIM#OmnMiOxeC#+;$@?2tT06uOz|w7)8(hGcP0cZK>#uPv70V zZ)MZS+u7bke@a=w61z1%d{dT)Y7y!MUb3bYPLl{MB4L$C^u4m5 z+i%{|6lXkq!eyYcKm?|rwGks_u&P!vecyszVLH{)V$w}HzoqC0n z1XA&a($j)oiCZ_ausX-FV`vjw8MMT~=D`_e<**Ph!ftzJOe1RhB&9T*%lU>%-PQA; z8)9iuXHk@A0$0!SEl(;+rKZA9UrnFQuUs@A3mX%vC?~Q38 z<=)@KWxqF`N;X~n?Q%`!xuVLh`!_)kJLeU#f8mk%aLGJ_&wp`A7_;HtLWT5Lm^Pzu^qRXbfj-wG&860N82fLO3 z-(-7G!r}iOIP%}uV-gIrSR`bmW0kAkN--9}u268&SfZ3fd&6a7l&W+j<*HO93s1A% z=tGV>d0J!M<(gS&v*A#l7Ou&BVV}j>1fR<3$8terhY3hrcZf1*bS?d_hV*|r{J(24 zN#nXaK>Obh|GOzQ?K`i#{~%TWI{ef8%;&OwgA3NT>QMXl;eYwUU{NMet$l|k@b)mp zl~Rd+D{bE_N-1s>%9*1VhW}C8Zg>j?PhU#5I@|kIonC%_|F6=vC;#eqAI1HhB>J-( zhyPOAdK{xR`2hx>AGiOdwB?rBZMZ`Y)R=}o+_=_u@yGaW<)->U7)~*SO^?2{2mdRp zXUH*K`UHyhzfk`xt4A3|oL+#SFte(?ai_C5_lOU_-H2t<O_D5Fl-IjWdAgiz7 zaQQ#T>Vup0x1N0G`7vD-{YSR5yu%vn%;Ey-5A}>k=Rz;r&+SQC+20P3-E>GZKd4 zp^jJvp)WjKmdrQ+6k4$V61@__BS!Ir`TJyS(`UFMz2K4HM%d;N z8w89PWQ93RPiUXR3g91bG|T&M2c*6P6VOj>4;cnWRJg32Q$>s zAGJQa@hu1~u=+k%WcXRD%Y)nGjf%yi@x$%&S$!lVGm%g`-PpNHnAjT>a_h-63YS%q zB4)|V8Sx}y{Oq_@ANu4)$jc%ONiYI*XTzGxJg1L${IlM8kvXyK=uk^EmTjEX5;P7# z%HTyXWz1zTQdf$y=h34KAA^(@OD}eHMm#5)Q9)5}Y+@k@0x?Tt>#|QZ}bxXPdTU%XQ1pVeWd)sJj}j zfU=owYpbpZ9nK^6CST+p-2zU=y~Rn^cfFP36+9R%05B&l!oC=dSoGfr*nd;;ekK<` z5$5nRV|vt->xueI{Xvb*YuXKz_IAwMCO#(>23x4zjE0wnmHnp;X0Rb0hD41V#1P2T z_WMq%v$d5y1dF+;GbWU_NL9Y*hEiqTna(pLFA{lgAxu85U&G?-`1$~X>gE)4zm(e^HtwDUJK&u$nMB2<9O{l8+vl%x_Q6KXzg0- znDK>i)1&5MGCouGq_<->M=eG0`VtXWqbZH~+WRtmC8Ja^sN`bmw8SA2l2x!ezKM@u zy{DCWe5WcHSE{?)7+2z+Z}y7mkzQF$opaExi4qSxAfVd^@Uo_<1j&(30jg#D-zlA; zaxY@^1_825X|^Y}y2s+No>W8kzC|8)>_52c{it?+>k2O;2m`xCxGSQNWLKY@KxIhg z=0RP3j7to&!W@ERUlC+1dkl9a`{hxNP#iP<0TBxkHrWxoarKw(x1cpI3I+a-zL;io zEGf*IRR82EK<62nB4v5zJ=YW4e}j+cQVhiN89hu~4oozYBoA5xK&*0L%swSyrVtE6 zVT6h7BLw#sVB5dq5=oVlp%mJqCMR*Si-M{0ZHg>W-a?t>=4<5iHTZF(BVuff)+S@z zJmt8!tMh$xT^4!`!mngSpsFq!q}m5TUzr8K@+f19ldA$&KV(-g(oj`Jlh?U216%mE zd|GXBBUK|sEHYJUwr7)u4F~1?x;q-|i&IaAS{`S;+}1wJ)y4cKW&vX;J)l;U73iTW zMA|4YI!`x)L6KI)^OJg|B$Qnvg zPFFxz#XG7m+%9#MEFVuD_q@7iV)B$=N>r&gqssccvkqYa;dNC?l4VeqI;U6V0{vim z@aRQE;u5JqCP&TvDzCsZ7Jf?HOWWJ4z-Fkfuvjy>Zi9Df)ci&y>{R%}FUpIs68bwN zfE#`dbcLcrKgRT+sGkaR`=XQ{6nK-;<#P(iDoFQ)0mDRbDG8wMd^RFJEHi9z)KdAY z*ZaooBL0;>U%;==z247lihE3|r5^5{z~#Dm)~uWZSpgUcri^&V`wHTSMBKZ>Yj9j;SWD~{o0a!a*`w#wvoP~{IL}O zYoEC8?06!K^11BqlWp;hPnP(vjQ*6T^qBo;#HoIvzqV!Y+!(T|K&ZGY@u)Is2Zq|o z5q{!Dm>j%TNdbsQumqZipu=1JBgAMT;$D;9L6S#ZBfT@@n^pq$wBqT3nSYK!4Jz|^ z%$V9*`KM6BG-e_)encQpk-r~BFbASc(4lxN0Kx_)+kjlK53qU`CfOFkPN*-3_cCoj znp@x(#4)kW#2%|r>ELKORP;T?$k+@RogDBRprAtn89)H&$Y~D;AC#j2RIJI0h{k3} znTc(Ej8V&2!~rWQioxaxZPR*8$?gB(4dLziT-4edWvli!3XgW{8j7db3I_HmruQxQ zRpVpTP<#8N8T&RgYOzF4vFvKm2^p|UI7s5EDTEc}BWkDI9_&#CCesB7)nr~dfEW!( z`TNVqCPlA<Lz?4GVmvtM01c4g_bJ=d+;LoPQSHQZfX{DbpaKj0_T!1#a+L{kk17G@i=h@O z?k{CWE<1QK@wk)UalfT*-!BFz=eWIe@YE)PzTM7@rG^b3SzkU$z2JVh8yOpu0b|Ed z+BOoO0C5Kn9w!wZVY;B-0Mq~(P%7tqKm-KkdYy@)u6SlfH+vq=cv2F3f{$J1<6Wd3 zycnK6qA~=@S&>bz1|!9CW4trAMsuS25i)cDJCH~=n$5P8JqCUh4NkJIB2sj_q-36%5ojl^I25lgEN}aD{h2RC-%{N=V61(m_DUoNFn=$Mh zbAqLSAswpm3=bO_1)C*M-nqe^qkb00lvZyag)`JL?n zL2d8uJ$e+RRgsTLpzO{Cq%o2(R(KS3C~6%0`&~|u5vrX&xRf~H`AA4lT(C%D^n6hE zlabOWA-jw?Nl_P+#(of}2pqnUciAwOHBVqW2z6q0e`^HQO+*p*x;(l00VUUiJjX%%9B)$XH-T% zuWG{ER2e2#)s|ExOIDYzSNW4w=luw`P^&Ir;ti3bh)b+a=k*@jk1PzXDFYL4^3;?{ zruiqJ1l3S|$~@AeD1kuK%??!EM^iILvy6bSl4i3kFmb&B><%){@w6z(zB+uoCcMO` zJP)N8PZ+o3v08}MAqo2s6O;7A{MF5Sb1)vG(Y)eo7FiiEIjdkf-DujxjAR%wY@u#S zgDcj)CN45Q(a9zs6<-n`iJwV$VvI^rLxn8Fg;%9x)Dk4yEq@(aMvU5I=_W@-5{!JP zDC79wH3=vpTc%;_E25|aG}+nEQ-=3B?6{C<1w;l8uF+Wdjp^xqiKjMtPZQRY9q_RZ z+M+3L6*(_+f+B@dA*&6m9W6Li@}Riau$rTCwyVsM?MO$8i4mxh`#uSGiYp;w*lCdn zX~WOhTV?~+M`RFB0EPurAGK+!p%A;liG+!reY>yEjrW;qgv_`^l2FvA&UmCtsY*tE zWd>!g&xvj^yNOGNA(mJ@*QgpBpY2MxWnTG244O&BTal@Sq;sB9VqRwCya>v#XxECR zEEvNg#xkP3n;YmK~g{_w7y zrZRI&)Ty)GwYwr~dl=GXmMdwL^&$j?bM<_3j(u=U>9T68ecI((Yc+vSNYCfxtI>GY zbp6FowHLALIamo)F^^ZGbKaNWq72gB=mawwv$nYE+TdFilE={O0e?pEvS z%coKpzJPDfc8mwP{YW@ zfO~a0V&g+JXOw;c0ecCQdsu)nxHv`uv1~=KMZt&s02wt3HT+2f!^NN}^-!Eph-7eC z$JPX+tY&U7^J#}xr?PNjyLvu2R#==>*q=S%C$2Efd*CYB z<0^?7#3U{lq3$oD)+oZ}V=1T5m5xkdu?mzpbh-EY(U;Pkv6o`2Os9*yt+tq_Cki4C z+@^m^^PKDro)vIRUQ82pqsI82LQ*(>hRz^9pg{E#*}2 z+OIF_Py$vyr9utSLiKpLnEA!&g!SmRakC%D?!8vN_r9%u)0A)HFy{7`H~TEJEHbkR zLV)c7aD0zx_(&E@ci!*tvLT$?pqt*db6H|4HCi#GNe(Pw}nBGgs-H?=q$(EgtwzZwM zC&cX-<>xJd-D%f5Nxj#x3iC5~#^B0GLpbUf%zYcTXfUvyj!TFKDt%zil^176WKc}~i;`e=QCi}6|M_2(H5 zAUd?w+e=5t|9B+U2xZJ?ft2;b;k8E^g#-=>*I&|kJ72D_r7jY z?BR^nD-wm)s0%l*d#^=<7grw*D=e*fy&Mo5>5sv`?voeum6Yy(@4VA1f$9qy;7`s! zxtGi(RuK7Y@OtvVT1bD3Tho)d8v zBup3E+{R)f$Fyp`73_^w5RYH{9#mPsEYq<6m5wJ!-x1EgoFkv%;-z$uX+}@}|?M^&+6N*~4niP3jF?DR2 z*gSdf^CTbTl<;(gI%Pn?R`AD*A0;JU5A$g@ z3;baf(-G~hBPP8ghm~rl-ffqwY;G$@nP*3zuN)(Vj(w-A{Cf`rzp=*N91g)xyR7bp z<5^#oQFs&)C9Rw!<4;nro?>NBGb~Rt!%wrHoaXeN=B=C-;7=c4Ju8wuE3rIFwyZSs zJu&#kcP*2m8%h4uimY^owAGR{YlgJ_$@%l%^RAWi9{f4(>P5fo#h~TIaQMaOlZ(!@ z^VSv8QY*5jNb+v1GMMvq%?;MVG721$yb;fOUb;^@dG+_Y?C(v>-&^6ocb@#-?ft#C z^7||P_x_XLPtau3SAXH;el26q-u52V-M9tF*U|IoSE!_%Wj4O~KgsqeXu>3ok%l*H zrpmm2(xsY90tDF}0jb*hw`_0w_G6jfNZB!>*E@W$SPROj@%a8@b_14UF`0uSvlW{+%Px&Bil>4`ZPqcV7I3( z7jFCRL?SFS9-2;AS8e59&l@$2;P)4N`s8#41hm#0KZ?cOt< zhW-Ba3r`Q{nav3qX0(rIBVxckwr!Lrz8Z~IAmuJ2$o6gwq7~s{n@9y1)!pHqhg~3d zPC!RVQ2CNkt9s{bj?0vsy+c`(3bV(cpz7s-%_h~W;ZPwp0#fCz>ZruxRljQd7pdZy zRGzcSta$3!Fes$S|7^2a^F}XJSW9q(qeV-2TB+qFZ|&yRvx}l=;oB116uYfudil-T zGVi6Ubt--z2d0G*F*9IBzww42PlbddF(>ve>Fl-ZZg) zWZ!P$_#{Tu)VZ>}-PHBzkpDZ|6i$C5t6rGc(z-%hiUNI9`+vvaBBNeEdSrV**{h^#-8Y0!YbXL0=Plv&yO>uf4cj5EhwFe zzXfoEO8s<$KUTEEt=quu7k~D0+=iYiPZF$X*?V)X_X$?Ckc0cif0o4VJJWyt)7^L6 z`)u^5yH89lP|(q2+m+ON>#SZMFnw%ys#aw@v*EWIM^Y-F3iNK zy7qYjZ++`o4YH`Yr^YT9_bbuvv8DTXO;gty@Aak@qH|Q)3nsGq2G7X6>KxUhv(H7Z z-IMA(67+oe^H=n)-*3s;a^def;CjAQ_H)bhYt{JjE`RlUh162z?s7hV%TjRdx4uRd za<|s5U1r|FMS&WZ{tt-HH(KBEb}iLhdKdhu-YCzkYVfl=1@4b@Z2Soyb3c6O%^B%O z(Pz=*Q#TdeA}2H7U!)JVL6kQ%#TkB{zy+5V$kClTG)CTiM5TLmbA}_5H-Q~mZ-7M1 zom~aqR+B6wfP^Ye6@**-1hZ)?p2FGPGNT$Z-nT{!EV9z$cSYHRk6(UW#f?kt&r>;v z?6eRIH*Bmk2?z5P8#aHQ5sgt|?PFQ%U?)N-8|jgWJ`E%6Mi2Q?PmH%atxw9mU-+Sh zwyyml$1{jU;6zL0*2#hSF1R*lPgm-Uuxj{23ZQyL0U^I8_cQ1Q;hi;wzmT?9=nY!< z!vtyI0kxKRdQ#qZuWQ!@Hq{J!YR<+2TDpAM6PZfI zG!xBp5z9-v3edN*viw^S76@U|!$pYU+apNec2VS{`#7=;T?v~)K8Y>%4BV|Ba7he? zi93GaSM&k}t@+yJ*N}+sP@5FwEQa|VItsc@*gqd;V|lO341`61fRg*6Yeht4?Q+lW zTa_j|UZ_y{5o4y>`iS_o2(Bu&QBtILK%COrFPHu2mRP_&cq#Hax{=i5Vp2_?BWHF( zr7X)A4pmx`6CFN67)q}?t>K2iVca<8!3dTWRv0vu2+nQ3=GP7kGT>Mv#Y(<70iK-v zV>!ySLK~pksKVt@>l6nthOvc1Z8;d1LihC*Z3RgTP0?zKM@I=5(V-xQKZ2*CTr&-7 zDYmrsM`ZGfiB|Rpi8|QuSZ6eb21$V58!hc`GBF7jv+*4CumtgVxIA#Myv`Vu%yjrpHBQMy-gxGO})hh5)0AWp)ag zxTGa}Y!JzJMx5G@uN=q2?~4=@rBOVdjwQoHDfIa` za$EziW8iM?k)iVo^3)CvB7LT``An0{s+Kcjo?7hrkZRXAuNfeK#WcN;IgYD`p4gpG z3+F9dZ%!_!eTV1bwBYdi+-Yd@KI>9H^yy1`aJ18H^1vbp-%d?x`oYxwzE4Q7`;8fA7jPPu9XfatH8`Z9HA~N%Or|R+zz$u z!Ep^bkivX^6qEU3`N#!wWof>Gt|`1*{qFO&g_Ispl35W_L(TRQnHYttF|^c~dFs_q z05@tgxb6s`uaN2URY}G~d59#b@C}P$JAOG0ndq~OE*;LtsHcul8G7QbEcFzuiaz`F zW^pK!MThHZkTt^JdxhFTlt<^?xX6HaIvipbtgdBo7;H3ttNdf0_MWr4Kz>fl#M3eZ zSNx>Wly|CT)=hM&+tfGm@~D$rZ|do#$~L%Ql!2tEf6jsLrS)jd@xzq}nn&wLa#a zZX2ojs&LEfBjP}fJby(?buEQ2v|C57WDDxT)rB=@GoKbD+wE8iN>6?NKwBE2|I>k^ zLOa7Lz2Qz`rJI4**VCUnuMazI)$1BZncmf=8cJ<3J>Q;H`tB-|s)!8c*}O}7$E}cK z>X+Vut@i7Bj|3%w2b}NNM_^MY(h?4ZpXun>?%o)YE%v)-x1K&P%~N@`bZ(e?Jgnv=_t_&*}tnn_E2W-(R; zjQl?$T+8rye2M*SxobO%e?_=VVj_Dh1i0n6uLl3Z1^tGgmwPJ%I~;!%_na8NhGGyQ z>pK0vS_2*vPhSNSzhci`S!$4i=_d2Cg$xg&|kV`{A5;iP<75ArK4~BIq+y5%= zK~qzzw^#ov?n|Was)-Z-Roqk6FRMtg|5fzm91TY*+%$dhw>4m{g|_>DqPVxz387OB zkuXm;3DYpA<|ZUoVKEA#kx9IEmAHElNMs|b-=ML9CP!9zCe|z)nb-xZ-sgTG9Pu+d z*m>bK-n?^l0$yIcMiFfsjV`yE-Nkam!_(9Fo8?&n=AA%fh>cxD6P0cV%V`1wFV@dS zrTe;+LVpqM$TJ>g0zMCwpxSpy1ibmE2Z?s{cB9VZSSfY+2SB{0Ep?TQ=T&teQdQKk z<>)<(t6pYL&+)?vlP%KgZ=9a}ffph{M8J$qpdCx{mmngPu#u#fhQUxo`7e1NwMKFS zfRWS%mqYomg#rL@t@TT17rGEu4iM&v6+;N9B>>QY6L)Mcy&CUm7d?p)5kPwt-ha-# z4sa0=;h0A~Rd2v}#~AKxAG!OVt8zZ`ZPz2tC6$F$fCw7(-q6!YE^f~Nd2ROz#^5Ma z|8f#u7YFu>2M(JCE(vkp{C`oRuEoKiZ9KPiF6rR&{As)YGIA8Z}8| z_}PoN3=G%U)zpK4KnN*dP_(_I>g7Mb)J!Eh8fsc~)g_I-CA_=C@38s&F)gC>S{I3O z5s_2Fvx^$(R;Ct}>{}W^kd|8$plWIB&-D^~tv*kF6c*kw$X=xbp{GY~pa>wOoJKq# z{-Sv=vd_sZ{uhTe-qdQFpB=LRVr{)Fx zI`1*Q(5~G3+;7&wgZWyk3|u!Fv9W}hJ8~YyIIU0-#(c+;QRD-3t>q9fAOSE*@n&*K zf!M{;iJ0>1av?mxwJ^pxGcx{HgUfeLG1*YhlShgE@mwDv1@}o%115FvU5W-V3nGH; zfDyBXA!;0O3YStztr1=j`L4#P!TTn^%*CBo`_wES?3ond;%=wDTbp>L=sUW>y>QMU z5#=@ngTPZ|YiR zLf@hWE@Gk2FbXxrFGXHqJh@C=Jsi(oKs%aDOHN};L@xFwCh%kT3Kxrrc;ULUU)bHM zqi&L#vB~TB+tpW}di*=b@8CS71M>z@pq3Dt%$Icj*Nfz-ROb&teUIFneFg4!BhC6@w z6a9@6cr4GD1E?MYn{d5cb=2sohf8)f1h`Kj+4AW=5Y==Ic*!H&hp*~+biOz18>@cZ zG_0LeUD=A+W1@V~e*3v{xy?G9L%j7Y*{!ozo8AzGTKk~&q$XG;e_&%)ZI^m$~rKgd& zZj348GE)deXahYXknfG%a4@KxWy9|ns$WimWqY3M$9nicBq(L}0H|&nmDJ*L-7zvW zc*`Gpv(c!aoHmRVv>ToR56COf3X~Cs0wa39Kc!hd>_uIV0PKXiSS(~f(-5Z>iXg^? zDgf5H^o0Ex_+^?<+d;w%z@(W^{I=Ya=xrYZV;_AxbZ}re7wU-{I_AT( zwq2&t$4l;-(Nk1=MnYqJAkex^$YWw)@ew3U!5d3G7wo&)UIlFZKS3M(NL+@7@yE^0#oIB zP+KNy+PdCM$LJWTXek<_6STv{7C|C)YF82H=On!r0ks}iY7{#x$Q&9Htj*-AZ)k4N zWv+v9r5>g;%DSohNXjYAN)JTfUF`~~sf#K*a%{JXY&+JAlyZ-AHRuNGrxocB{?Jc! z)v3MO6P?zcucErjQI0SX_9o$Nq`*@*A(2&0!4qSaNfXYeCgcTyt3OmWeyEUhz0N!~ zJ*#^yogK@>W<*2`kUUkJ4Ks$Z8>?v;hiUjw5gSuX8k5dwQ=Yi&xSDWInLd9ScQsH* zhLv5G!9Dhj};ZQ@*5VV(Y(I3sR3s;;nQOJJ4igL;LGct+c;--Kt7sf$a=w>O`Ggho&7{xLr>b)R5M$Zo>}JNd1ruC}?u| zQJ-3DVgH~oSZU2Uan*j2-GK(>14o9(aiz3ON7R3&U=naHzv(1W=fvLNIEE)q4Y}cX z#OD}AoJqv-TJyv)EG3DTBaz>C;=krV+~pTtln z2F_yml+Q?VoOrR9iO5^x(0r9e(8I=j6Mio)A$eJWfY|Q@?CUC~FaRc-%;@1CJ>f?^ zt^LEDnx@g$FvXVb$hVfY^!B>SN%Es}tK3TQ+{AC zYx+y+8>w41{l!QEjKF1kCnl`DC0YH(y6_UK{b2jLaD7aevTU$GFZBx#YFc!#Fq@hh zXP}sFAiudwxKQvTsUYdFAld0a;+D#TW@@52*CXzm=QbF)Y}L(y;O*3EhL&o^xoW20 z)y%iv-xYn&s`s9~<#q-P+{H$wvY31I0};?zDgQ~uI8;p$zXy#8yGh7E^N8nW8zxNL z`@Lg4c!}hy!(*!9kA4vmF1;77BA|iDMw`^t=JnQ!rG=^Q)f}Viu4FqpMg$KD{}z>G zHT25ZVE+`AO3VW?!MZv5?(^%~qohDzW8^xgt!-bfqEHaKRlTNFooz#qs<%@fgB zBO1}DK38Y`PZJ3SHsu2h?#43^12=@~uh0+hE|gKn=uUXktz#(nswsLA3O$2vu)%H! zXOdg^k;){~z?<*Vh7mNmrCVz}mrp^bwP<=bMvHRj@PT{*B9d5$nJp5I)bpq($twMi z(h;9Uh#Jy9-16~JqOMz_BK{Z}I-9H}XH_+zN=oZ7xYY_5M4KNurf+CI-*kDd+n6Ay zxqHQHZq?nCfG!8spmEl%Gj`ra1R>7OL`LLfNN0SN?Z>A$sl%MrTdBF4HV!{h*5p+W z8dx#^K!-k=E|-3 z-`%O&zQ!lz4(6r(Yrk zD;f)j`6DXP`oZ}6@Np@qfUE&U#6azK&E51yeZ8(Z{b3@5QR26wq#2{+ZKIH{qf~!J zVfSgcTHfEcy&1ATRHLBjYeoHZj#~IPwdX0ZqyX_Z;xQ(H@RVt^;oiu#x2%#|)-rQ! zaswK|c#VP2$KfDjJC$3Sf5Li&%?ZeGJzut|S%WpAZmFHOj7i)Yy-#`XwLEaiTt7h3 zXjNKo_nXYYJL(Njw1Ae&maLBZZ)j*@!(H0+#nFb1(UKC^dWixeCMmlYV4zD#ZLAkP zaylXXi7Jbk%&+ugglPLRqua_w3-{M?B2d#+3~zL`Ae`2e*5Z;$(M-tR40_S*;M#ng z-@FXOeP3+e=|cKxV)0d`*BsSC z$lV%Zz})5C+Sk(ReAfC|wCzeLxgVP}JJ;$`T<{QWZq!G)xMij+{UMjcUWQ{LpAA>H2!u5Lhe$Nqunl5emle}TD z3ut>Jj@-_bN+E4%vaN^=$g%#^?4GXc6 z7~QK1U20OhHe>H;)OW4O_Fvwsp+oJ(0uzbHeF?40n6kdS(4siVfQwg4E~DqwVpbYy zF;iWC`8KqY_sffJRS)v7Zn~Pu93Sz!WOrnsB&d8%$g25+)r<7+$(iGr1tvoU)sJO^ zLF|LV3WH)sWjzFg)p=jtGS!A#)kekC###;V%0tZTCDVqrL6?Jb{k~o$)V1TK?qRAV zRW5H@<~l1{0LtOhpWO;=+gsP%)>}vRE;P0WsX@PnPtP@P@O*?)B%S$C-{}dZ|5N$2 zF??EJR635T4VQeQa{Jla?Vpg*ODdNCZ=BKp{vG3AGHDt3Pclii3i~2pzVWtxZ&h|j zDC{0QUG`DVb+$2XoB5)>1@UO+f9+Z=O8K&>IUSy= zuBPG=Mjm$6o=FQxY+DMV`?y|c{0Y?fHsJOqW>!m3fs}BgLrGS+8j!SsU zVgL`?kvEF|qkLo!!n_Vwr_@$yf@sjHWqDm6X7C;38@B78^T8H1iKN{{CN(FZDg*LX z4}~m?XD4F(RtGoXq%0jY7e3?D*VW2!fyRIWVGzom?1>_k1m~v?NCRme8lpx-8ps~j zhoyUg*P(l*6m{)UEH{0lh0@&z9;7)EM|p9tPv|6V)UO$SU-8#O~kpG$ZobOO6+>B>F-1fLF+Lk(z&zMfnj?)GL}7 zqrd?Jy(Ce7Ke_YFL8ulX*nK`rTwrRAnwz{cGVG%9E@9ZiOj49+32u}c7`>2QrcS+#yyARJqF3TXXQ&S% z!n}91JAGNCgrHGFhgR=r?k8vj`F1ZxhI~0s!-#^+=dh5N zUJHsRZG$KKdE+4zQFBWK*kPE*C|*;!i||vRB(3<(bhBdT>p@3`I@Wiy%5YCVB#Ziu zN~EP<+q86*O#pd~zyL$|}0X7&l@cfR#aj8Dh{$LSsTH0wpsL79k(lh9~bH^)q3L*ODT zjznig0_{o{XjKu*+Cv8eaD!ph{;{Oy!+gG|Vg*b1m(Q|gnPeQ<}e`* zC!6(iu+x}J?5q4jK1tQ&lJNrmqhdr9w|XJ>M2YHAiRKWuW<$wDh0{@~AtjG?13CI_ zJYha9TZwd(m%10~WpN=OrN72K)jW1o;Wor$cv3R;VgIPomy*|rglD?_`f*i=BCp9= z$#_=$a@k8Z8|A)hRLGw zEVcW_tv7|AJg$Fju=(s0flfRKTa*AMQC%X}@-mxjbk-=*Piz_gF`Nj^v#)TWQ~`_f z3D!Akw7b3&ol;vQyfuxL5iS@oSQDAL1~=mJ9BNtE5V=df{nf!|V9xMtGWo;tkfVM$ z1)v>tk1=*=T{o~)wQy6j#>v%Ijbw>*@WaukXk@1^<>$pj_6eAeRh3g#tg(zfE%k;g zQuX#D(n1EUiXZD`s&cIcx(Mfiw;b|)df-|@h4SsQ>CCY_NjR9#&l4RrTMYce#;_c~&F)yNKL~R@Mk@dT^9lMjf zbjJC{bg$H2Y#S+y`OjgsJLs-QE~+&ik-2IYHz)R!u&HB4A8A$;>!jKv=YD?z1SLOi zL0%WA&ds}8abqjXZ7VniVro2D$n=8_Yq$$UJezu&)EB7+!k(mEiI2aJ8`F7gPBe1F_ zjf}jl?=Jepx7bwsm3qgn`xBwdrro;g>(M@F>}$ir6W84-XUZS@{f6Jih6J94WgPQ5 zr|&rUZK@85EiiEyE}8;uwETDrhvnAZB@3^1GGAwUONN$VsRx`m3KK=-ZECKQbNuF= zbdO#6w~$iypL<)(M<*{YzJ*l1O8ds^T=QJud&BF>gtt4pA%gB%^P}FklI<2o-AJJKzB>%?^s_Xg2V#MS* zlj?9j(gGT=ygRv4l?~NoK;fv3v#ZCjlzm7nIQvM`w8|&N((rY%4kd}xL2%G{h%Id0 zp>vgzfkb~v8RcMUt0@Zw7L9CUZIY9~&J*rPHmgE5+rp~g02+tnWQ+GSX62T;NC`dD zSQ|LX`Va-xZqx~Zg*w%{CbHXJ$LKyOByzM0k%l>7ZW5C<=xij}c(A)#;c39|Dq_bU zqyfZ%Ay0{+oaS}z&O7YpcP;!{-GW*sUoQZ`Ha&0jEl`6T8p;~R%N9l!v=J54w%3o} z*2@~x6d2Y$4cBilnHJP&osN*4G7UO*)0EZQlnSaNK}&nsy5)zf3cQvQvYS`7E3{HC zUU#b@F?E?xotJuj_c&a!JDjrc^qN775QD(O*c4bTPUWv z-g}}~??Y&mdaqTRrrT?TUa zf{5hei0QRDG|`trsFhfB<)Ws-so7~ykWpcDV||cGVYC8GjIoTj3f|53kj|Sh#qU!+ zTCpfnH2hr$UDP1P`v$$;;VwC=XB3AHic2TdEezon237M!Xjvz2<|VpLC#r`hYBVJp z&?gyjB^vc5n(8DP7bn_TC)rMRD@$jpVm82(z;w zHZpzAndCq@6?79KfGY|D8Yz_)Dnh-yYpc`h;by)gQ9;rVr?QoYkw+ivTfGGY1v5!}V9!X@J9%d|Yr5q3e3$aSM zSkm2M(zYtZu66R{OxmfOa=&%dV0h}b8FUSn`3p&Pf>J8jCEI;MoQOj#Vu>~YB|>uO zE|O|DHuE3|y0C~Pxk;gd&G^Ym=8d)RHX`3zA@PQ(?$l<53L9NEA@-3}KaD~GhV+F| zihe9&1pu}I$QTl_y+OGWixBY2UC+bLGfTfL$==L^^y8@3o?yYV&^2YKT3;R_6|o`# z5l18F&$0S8xk4qmV(0miUWf%gauuApAso7mg^a)oM4R&u`G|duvNr(8l2Hz4KO(;` zi+v_%E00PY4&8-8*H%bWu*5pC;2pdt!lsHu18K>1Mt(IK7n)iWF zMJkIBI|iyoo8oeY%vCRhhgK*OORVNuDy3U^h$Xd=fGX>T0&r*yx95cyq7nvnL_;^p zOKjm4bDkBTw2H0siXY_F)ym+_C&b=Hp$rj;Hq6!AxC-Zz%C!V=FFBRUD9LmQV%975 z>n!2~N%b36^BaX|!!wgz*i=SuR&3-IK8>ic!Pb~!N!L2F^%+W5utb%MkYOWoI0}k~ zLjeXVI6%=qTB{@vMdE5?S_%%4HNv8aG0h00TeWI^*;+c{6u-%I7R$Esh+%2jQRl?^ z5#{&ivL4PMh;*U5Cg7YuI#XiBq#z}KY)0aRvXpdx-ZgP1p}{3*1fnoS8v3@ zZXOZd3vqq6?Qpkkt(Ih}88JK12Ip(Lq9xWPKa6`L#!C=z3CNl{nT~QxNg4tffvDE2 zaBV4cztuW?hWLr4THB>sOQ1TLD+%u}{WDjSw23?Ap}ZzmsKM;%82e$38cf<>ie!c! zR#8<|F%o$}kAPfI+6Q*K&}uA^q)65}Q9I=Yj!vO5$2*Y*@=1i363*OmH!|2oB+-$t znNop@AuX3pzIGl4X4-B6M`FOTIX`QmYe*`sVp4cj(GeOUlU^OmX=^{wWjNpH2(xNI zBMO);*T|{v@K|zqmFSdFJ%U4*U_Ef7;!|cae;TmZTsNG#+#((PTE9Zp2N8_-=}l$; z=MGT1Cl$@LbhLV1qg^6#TZi~v5OZ&}teKJHu7l|5vf$6|tdj+wZ^Y4{x>(GrJCZqz!K~j_gM&|Fpx+ zh>e`4kDREFOm8C!kRyb_nd{UUUv#i1K^e1s84G0LW!pI`)|qR4qaH<5=4(7aqfh-;C`)R~om7#$fR58{`$oLD|`GWvdnh37%VpZm6809PxIS zcze7c3!SeEFW7w2^w6v4u}y&yI^U!@|M~gAt5k$EI?td5p-KKhMI>KKXF}qB;UQm> zLB{xA%lONoe5;azXS(Q*g9Q$$Z2*j_Ep~Fx<;xOe)OX;^W?ordN$YQs(mIARjnN{5 z+g}1~LW8}Eo5`o!$jcMRdmGWkwynh(=U)tWN~*j{is8^w?vgxRuoHKwhgK;rjO^w-QzZp$8D=;$55H`IdKF7SpW9aP~;bvw+KdY48uTml2;X3X$94-%Iuw7 zA0E%|@M`ElDKpRe!`Q}-w-pCy=#f|Dql}i{vz2%>lz^wo8!u56L^1E$Smpn8>3nCK5}jU-*xa16SB?sYCvxj^md~8?4ubJ*mW?;Uu5`{-uU&q9ORctTsNMj=@XsQo0&(|)(rxl@>xbVCVT-0$ z+pe>p4_T*%Qs#7j6Q9uI=rx~mNu#0!m3<0W!p9~GnI&6evn!CQSp0WGoew)w+cXwp^c^vSeJ`sm;cy*Je7x@ z^LTm#%iCKYW=e@ZMnXGnTenMF54KtxBEC~cuQ}VaP2;^0Ti$C6wiDmy8dhvS4BYDS z{Lr@l`$ORH`ao&Nk^K7FA9-r!D^*|C)iJf#3~z-D zbl@&KUTkmNSLnouZ629z3b!>U`CP;CmBp12&qY8JcY8RRdqotW0g!6#vaagcu8^`0 zW5|SQnZ@stU!h{e){Mm{#a|9S2qdGG_jcv7a*w+Ll;UBJ_C`+tO)uHQUq(}NwC~ZxA`ud={wZC>dw;_EX zRd_%v74e}pO;`yd^Q(O4a33V~^GU@BC;FT6on_u{t7?8n+9L==){%bJk>0l>qso!j zcaF{OjF`SYwo)3l%tCZxN%dwa&{YR}d822Nqw8i+;vobmDG@j5FR2 zaRyfD?#}wpyfL53V~y9SuYHJkoMkz=6;=L(eFjYN600)QuRGKR`b;6NJI?P#^@M!# z`EVy&YeCkx)7t{%F(Z_59}(}a$nIY~tCBP6iof_UMG4Ru+vDQqhlSyPN)P#_gKUaM z-p;BSG*Zd1pYmh{<)^|>Qxlpv0zTTErKxZ>)}GZi#$|CqRd|Y>&wzguwLWP zpYqWP z$fM;U7k47P$=@jxlbI@hS8+kK0s70IF{_46HJH+VLwixtRPYOGC@ zazmA(a#GkwzLt`Vu%`2(x!Y7s->)jZLv9?E+0s_3^(S8KT8X(N2o|fCnLW5XjxiLGR#dYIAR z++`z8RI4r3)pn}VSdoU2j09+Ntzx7~AYHUiOmkceQ@@wl>UruD+N|dOGo#l99`^Yi zJNmmM`umOaq~#*CVEa4E4r3Ix>HQuh2xwoEyvAYnzHfs&om_NO za=C&ZXf&27c4=hU?B`9~m&xNhxGR&omtfK}nBD5~UQv)MaI9wg^F;IGcdO5*n; z)ZmcP`NzsHNQP=gC^iOT@yb%P=C#d5IbsQL(Odbos`BCdE(p1YKWe{7KhAiMP?BNO zP*TRHQ*)S5$4TcIQZKzP7F2cZ&-k{V)062P&7d0onCrLXH7Qm(i>pGMXVo~nk`(o5 zHmeRl2b++cO(cS^W-a~kw=)VZq}_YF$VW+Ppx!)%N6I>aDPL=AAC&+|$nJO5Re7L& zDMa4fVJ!TXiEsXi{32jPg3;Ue{`QwN!vuPpN9n!7H+bG96gND2{?de#F^(~0 zniUXwFHDiHc$aLQ z(=b~m!|P=L2UFYyj1MofW(8`f&S283TF-TUnZ)FffWp`al+kS5^fZw4g65}CDbI82 z+BX#^H^GxRtBhvuQ6O>mti>>1g8`X>aCAW0Bk~^0p4jf)SG(U2(e3nJ(_|zlT(`WC zf&ir;t!=lYQ(0m9UB9x%h=OQP)5tf{45sJPA(i_B;>XKTv10^{Kl7e>st+sg{iFi? z`$b4OV`YQvk0PxOIEzwb8EoQdlQbIaU*B;S1a$tOFC<=KR*j*+o5aaomRV zUr+K;4a#43_I;n0RrjM6?yr8EP1Roypy^vNf7o{}Z$zwy>41cJ=gl#gkrvVTMDoyA zUnet$1k$A!LGc_my_5(58^((bHs60m{)gH8`S&Kpd)A(gpOWOf|V=9&tW;&`zZ)bbl9Xx_X1G1H?-4xQ7_P`?X8=D$n?i7rf-x|5mY2dlKxg%ZkR<;6Rk6=$Dz z&yV+2bv#UL5xzDww2CIFzmUDJ;0&K3@=ro;5GYFVqLY>`IpgUkdRYbgKSv|K=Q@F{ zWu-(^<8>vQqbR|NBB}<|3A^wsgN&;VO!*gsaDt5Vrf-t5nri(x8}EH{1=Dt!lpvji zCr1xb?&9TWQl4?V&oO%^HbxpM7-}7F@;>%fJfo$^Tdm=x47H43k}RSPq)J}(3Yl?b zme1r|mAJFjvhe!U&tu4x1D>L@mKOW#$eWd4y58kp8a1(k^+zGp$8%`AtfU2+RifRf zbF+4>{`Ku8jpuPl70caWP;m+(WIXfgew^&39m`bBe`HT~Mqp9xcACkmP$@f;n=RAr!x{_<<)!%D zs+UyUiUI}XpX@9IT6BipCTp_5_Eu7&x?@R`wS`hUR;K;qiz+|3-M=CXO-1x(CnxJ0 zy6hcXTl5x=CmTM39gxAI`rn>CeI1v0-A?#jWzW;8rjcL=mwZu!P0gw1sV)b%x)y_< zZdxrpQa>#LfFax=m}hXP)P17G@VI`e?N_j)OJQndQP31OK=&&l$7bPRZ0aK(j6{LO zj6k&0I1*`Oz|B@8V!>%#dK_Afi-+xERgmYtE0@p{h%uG>bjKayH(^p@CfAdvJ2|A^ zpfy@euG?yNETM{ax$Txpf=YX;W_Fi$rdLMVDL&D=b(wJ) z^FA|sH}bWf>8P8n49-HGH8Gv{uY8FCD9PX8fhDKa%P z?B4C1dDLq8tV4LnCTZWcZ_e^1?d)i%v`fy-9g7#0grhOTj=5~&)^M%avE*)-0)aMb zg!}B5EMnJumfJ9Z<&5ZRBK8W90uwXS_y(|^O{K%KlI__)dJ5IF{{l52q^T_|iES)#!`~Hntx_T(-iQDf++NgP{TaOjU zWIYHj8MmJBItjVLEbB_ADvdh+VwPnySDu~BpybMbGY=HBna}F3Fw6h)?1+tL)YtDm zm~qmJsaWm_Ba{D6Mbd&o(w#Y7rU40wWS`mjuR}xsFc0!s3tzsjElw|?X92D(P9Sz$_1~VI^)K?1h2;zYpV4U1 z1I30%0L*^p^E61Q4gYs3@rrqPY4-KW%SPN)-BZB1FECsGI@;Dg+d}D@+zJUmwad8{ z%?%FW{2s=dWcA%E^vAu?>oK29gC#Tp78onex-pn_k&I|WaDYG=9>Z~^NQ#xDv0j0< z57- zT~2nHv|h{b=^Cj+>Tc zkL>p`_ml*GxE$>DGDqn1_i?7B^Y^iY@+t{$V`}#XpG?^uNNiNS8y?sIMh}Lc4;<7C zi~Qbp7Lmo(9wz=)=p?m1M`u zv-QHt%k%AqUzfjkdmiF14yPRPe@@pb@s}4Tzpg%k5G+6+Z*62J_ej`}z=G`|q%jd`=m;e$~|d zgd&A}Zmqt4&F1~Ys>pm^OSu8v+5M!(!TbmAeFKK)`^h*+0bi)xpb5hPrdOeWKe=zv zLge6o%p(hhdgO+kQV;&eJhJfFNgsa1_xvCWp#0A~l2ozi<^Lt~ApQ5R|KB{4vRGCI zJ{F&Pn8&GD4A=S}^2jfl=ZA$7lqJfc@bMgmqasJbP5(F;r@JaUSRGArv{LJ5_M9ff`h2X%(?b<*4Fg|)dY!Z^QdWBO$S>@tp0utjR(eehEF3qVwCzS! z`mD)+JD)xIa5_}!dou9t^8DoEm9ia0qOb_Mb&As}mt4|+-RgszK&scebB)ui)|Mf*KzeUlsRIXCW5?M28zP&XTd#2;Vo2J84N z;|J-wnVGsGy|zK{Rx98S%+*iV9e!CtVPbw@sBVDpS0 z)1$D;pLRBAg{VoL8eDzq{S$u&8C{dUrm!Y5cQ))XT$6b+xc2P#*$9fN7E7YI{_@uO zXc*#2&QbBYwCMTg*y!3k4#f?)-uW2P;z@zv&<4W${0o+86X(T<$SVnxURyz%~Eeb2aIH{eOM#`RvrwT>P6JQPu{V7-P1%KPgna; zNCNy6$xL->RA1jPv|}K8Yj|F}2OAz6T-&HYJkfu8CqGih@$v-JM&l zYG^qb`sJ&1K8KGL%<$(!5fEV)Nh;gZt3MGSa7_zub{jf55PK4Y`iss<#Jnb-DYOrB zmKQKJd_s#6LVh^dCBCS!Uu$?@p<`~CF8P4-c#$M^PK?I+flSA;oug~R#hQfUN!ObA z8mIQ+x@-fA;r(q(A0J>2k8$e@L>!eo_FnfGe)?r&koX3M@Qz%O|3nYM&A`-P^ne*e z^2`Wim+)r?=_i1LMn&m&{`u+QC;05(YO>MY`=>9obG2( zKpJBHFXrKSSO~H=*k(P%MLX0D6&D zMOO(0mI+1luc50wA{rb0Ya1gzT1GUTM&K|gY3-nTnaEbz;7q#6{>DghkH}#mpT6G6 zF`+1bPM_}6NYC|%@y4imZQtqBs1n+!uR_r)>rsmy(J9FMkf?T?+C>l za$4?s#KdyM95u#lhs9j>dYt#hfINLHJ)+V$f{D*i1j4b96mR@#Y*<4qrEpv(NgNGV z9Cb>ZuVox8JdWWk&b=oNx)H~$6K}>5kC%;SZ;F2r8h?4!is;#q=rldb$& zv{p)@p`5K=c(lP;qS={^v1hcY&Q$> zWD2Jilcv^krsk!jW?7}ygr%08rN#<{`EX$>$kOVq!^-;5b)IRho}r~eX`D@IZNlj} zn6y03^v;xYQ>*kIuIT==bX0G8Zdm%LP6mQABV9IQvMJ+bSVme=#yoxIQ@n?_oX1<7 z&bwi*%+2E91-bCWrp#UIfF0rRU-VhW#r_97drlDO<})hvOs7Qo-1ub7)#0! z2<8qWNX1e$2UE-@(;i}}(E-=EvuV_`8Q=l$Q?e+VvzbeLX&FM%eHeBdtB;;uYiAk0 zo;eR}tnZPBvYqEVnYCPK$`KXH6==@&pvkqK&JknC3ti0xljXhi$_u!<{3*(n<<48- z@)EM~Qn5+=Vx6bxmG51UXV9Cct()5|oZn%UZy-|OQjqV&Szwl0fHx{o>&>_6$Jn7` ztuMK-!c!XkxXA2##Qseu8rMYd-} zvHeBy&AADi0dZc%W+}z@8;jF76OA^DyGTp2(TTb65;3ci!p(%@l9EvmEQ?4f@#$53 z;C%;P+RWe!@hJV>@S=sG3>@b70sZ!pqpbJbuT!_|C0SYDdD)2!Y;e|xiKu*%!LLoQ zyiL1&YPNj45H>5~eQ%|FCDr#_y<%P0cP+JIo7{J6wqmy#bw*vecV2OrT5;@E`6IRR ze6##wwsPvc5}+stiB|RLRuS`*{r_EKEx)R2D>9W;1T@iG5 z7UnS3xjiv|YpgSGmc`@$_1GAn*O&D7v9W2N?P{IJc~jr&YG6N0LeA~H`_W%LD+fDQ z>J=)VcZ_=U7G75}T&!7RV?X13_1Jh@m~xx^%B&mqX`YPLyS`j6*zQ|DxF!6XZkh9e z!-ODB<-$kZWf0SaI^R-<4COt;?SrqP-LdZ~^l1NW*1baIYt}}vum0C{p6oAigfeMQ zn_Q|)@pFm}C(n)Mk!#2EqBuZ~5VWX96giI^S#;APgMq(&6tBdI|5BjBu=@1(M6Rlg z51btjZ8Uy5r!~A*wzwu-Xc?n4#ObiQ>=<2f5yiE0{-*oRvr7UxtOX&B$D;2cSEG>y z+2sjy5G7n_$^06F2aDOkk$V>M)`O&B2Nfc0r^7FQy1T|*lvq-N{v^5g zV${$nv?(g7p6sa!#lp0y4x3<$bSEddwN&E;uBmjd4_%g7_J7EVbONZ(Z>EPZ^;_f^ zR?o2K>Ijn;Cq*D^67!M_;RV_M{o~~avIo5+VEE_g%WlcWGNb-aHwOPc`o~u*wbiDb z0n8*`|252{^N3aUUq>%jQ=l01fMVgF8-rUj1kA|}w>#5`{kgAJ5;g{1@r~kymg6j{ zafrXeOd5AZo$zA>_g2eoUga5lDKVH!xZUUnANvH-JkFM{zq&C<>>Hl@2!i*v<=DC{ zeQmqCuAiJfd1&-0Xe31cuUjEFio#0sx`Ts3$Ge9SOl=K&s4s*<(985)zKyA>hE!>B zK(=`z7#tEk)N(R1Q|m8bQT{vs*K)5l2+Blt@}jmcSN^%R2oBhqBq6<~5V<)q|D_}1 zOXc*`w~g(ti?iP+&^uL@QkBtJO3zI^w{817bqdOSqqa4|4DgcshE&6O2PDg)4z-3x!b zwHT;|xPMG{``HGtn|(K<*V#ZQ9(WfW{p_h+7Wy!9Opdn``K6C(o->E_9l}lc_OnBe zSCRY+sAYwRm9R62sJ_<*yAyZFJ1X(R*kuTBCFcz)amQma4$LW$7mLv1;7mbQ7!!vT zmh8W)nX3qqAVz@ppK~6)A?tW`&LsaFRC_3l0{$cn`SrQO2u?WYYE(@!XuJ21JV_*` zA&QaAix&f%f6lh?fAIF!QB}45!tPwaT8m~OozmSP-3=mA5+WTUA}!J^asf&=0#X9f zT>{de(yeqiEE+{vXFboe-@U)R&-;z>opHuFe*GW0gT1s}BC za_5FElx1*8EhVRWus{AFFG0v!S_ju>UA3JcZLQydmtp4KW%;_kPzXm=n}ZXbxizcK z%cJQ4tX+e8$5{-V=QCT6%0Q5fVJZ2@$JW%VzGrVzTm*ye?rwXa2PTqTcc&PjL^4D2 z2Y#d(zHF!WfxcXYbrLH1K1pMr*)Cm?Qi|uk(Q*iK-cz`U+^RH|w@s;DZRfT1XwmKH z6#J4ZhOsgG*B_Gp&~PG)tfS>uD%l&m1nfA*k~_7<+?xGOu}dY|HIZ)n^@#UO$18nr zi?(CZgT&aXQcQ6=p`6eK_Wb4KO1@qeh~6 ztt0>c%3Jc+p39FR`L8`US2?Qw-|e}7FTDTQb2Z#;70{yt{|(h`$+H?R{rFE*M~8dH zg5Gogqh=nCo(Awk@40{1%pa8g2dbOC#wi}DaX>G;@0YBy{^vXGDU=G1^Pm4hb?@Wp z0oR3zU*S8ID+V3tg=fA%dS43IO_pF5yJpnxN7u}k@JTErLw2n>3-HGUwkJ#U%W@*) zXyNGP8pT#2FgKi4=CQxj-g5DBZo@LBQrdOWsC!(sH?xdYB(KU06-8-51l^)KprN3(CmMXWu z*v;VBCT~_kVXEmmZ$S7uR^gb~jPHeaS3<|&_t2=$x8m12T}0nCT0(No(L>;70vB9+ zC*o{m9WD=m=y`0~Y7i{du4j~r2lyuI3F?(wrhhHuhvB<_FJx(9^F(9&s7x2A`nsAp zJr**8Gld0nMAH4mr>)HNU-sYFZP3bi@V@%mkR*NWr|leH9|$}x+LI|Rd{rGo3*paJ z>hSbBS3;A$2G;Y4-OsgPFwcjtbhpU3Mk!XL9bhI9>+H3TzMle9icQEuqdL8PU~%h_ zL&2nNH{ zq)+MPejb)ygZF3tkN!nQKoMBR%J>JYU(efNFMkOF?)?j_Q_yGa#9Q~g z;2pZS!DP+<=Y;e>1NPst(6`CIPe}i@S~cq|@`%oOAlcs4*7^~5>5l}8 z5yI5t?pl}te3_6REO4zu((Q(>=|W|1<7L}vby32kvq`M;ut!X^1Pw&K{?SW+I{ciC{mVEp6img0H) zt8NJMBMfthpK>FAPHIH_Y$(mlx`z~~q`M-D4r>nWqkz1=GV}iP?kYd_AF#fKUakI@ zy*4oDC#7zWo7__ccMjHW5gK;&a#PVbd262iNJ$4rdk)nSzI-;+bcgzs|Y32;LVO23yJ z2@J>~cUC%w*DJ-JWbu`jqrv){!;4w-w+Hb(`0Zy}5~Od34=El^Z$6xelHm4Iyj8a$ z>~kL_xcnDbA9Z|87iy`f8sH247g(>~!&E2L46EVX_z$pd{uCa@di3l61F+6E%I9>g zL?lD7*ppy6QJthCtpvju=jTmcmnGe=a?wNKfEbiJf@9*(M}syWqQScN=Qp(BbQlJM zQh-$?x>3Uzde*13VTEu1Xbc8b&Q-^v?7D1N<+_iR6F8rP zN>(cnz03lLmOA?-Q3s8(o}@}7U@dj%=R76)2qkKrWQf>?THLF5OaegefK+uJg^sOm zIG3%ut1Ckc#>7}ehz64k_Moh9ZV!1A#{k}6V4aIE;-GoprL|2k_1HRnrW=Ba5CAB2 z80pvZ)gDMzV=S|TQ30J020sR(C(ZI;K5P&s+p6rtkGbGQV+0?yK=?gdtap|M>a0?K zSr+Bv(4S%uZYbaqGT0{`#3S6(CxM$ECup#~^%Yq%0N%g=CMl;_HW~SD#xWDZTni+2 z7~?>jiu7r_{VYc6M1CT{*yo)p5PvH|KTAgJ8)FDYWv=2=M|CB#63~x(`2!5)Rq0us z2x)sO)I)$L$=EG@K#GM$%?dr}gWW(zzc>z|sU}kKn6noqnHaiIC?Iki3>}zD7=A_n z9Y1&DF@ZTTo-soR=4tvpQDmN?Cv5$rz#|9|Mg9PNd0ZahM>aW^PgFk05Y3uM6cffvn5wewh#si2ZFIrJNvLQ zKPoze?N#Jq^hw|TDDV?{Qhb}WA*Ex*sr7>E(_diyN1cJ+1ZMu@m@VOfO+sK!_!-9- zm(lPA;S(K(59ce7i8d%YleKec4?V#|B@cc&vRZ|om+#*{<{~oG;$XA};L@HTkQFM@ zwfZlxuA)D8p)f_4DRDs9QQcv`S3vLpj>p6z0CiFXXp$y2!KCk1Yyh6OKg7eIe+J3l ztDUl9^~}X7`l>_9jAD;QSX@_f>gIR9@_o-T26-nF$M8t)TM4 zzK&hQv1}-_ke;Y>1xtj1;&>$kss{_^F1)B)e6$IovL?7sy8^l}h-4sJL5nu5>P{UZ zh@!pfLw;WM3B(E-Ze_xJcx-!)8B{^c&5ATq%5OWdAy_@>Dv`N{EH`rz{Qe7aK2Azh ze5p0b#aeciVMrFE%G%VXq0KWVN>ZO0Rpa{ytbhK68vZ{3>-G5*!~X@= z33h`!t@Ljgupj0ZP{vQ$V5^vE6w~CBYNEmVQ(;Yv_#$D+Ie0(Ys^=$Wp=KLrU#-HN z2c>U@_g_=lf$5WC%Lr=G0`@gQ=ntqkU`f$NdPAvlgcQ!e`TKOEZ2-&J zgoa1`1<9fszBX}$k<`LgY;*4m+hl6kchjCFM0z8bv*hE7iz1>kw`E5$XQO+00-OLfX2o3UeE$2iHnXB3GR$m>yR~9 zNl5ZbM*!dQe64U!aZsvo^&@`(&JXNW!tR13vD)p!Rq-z^KLSQB8_W7RMAOwmk(Log z1MAqraHac&NJlrEs1F)$(8B&`kXH635FGV{5!n>gHqsIeEP593V|dbKTk|UT1&# zrPy`%3Jx12AxyXBPI>7eM0|t9pNkjqID56QC9o=X&sxcYXaL4Y8O)I$VkhXMtw7&e z6e2(w8qgiWM(NDX5h|V@Dv=1kr%NpP4_FruQ#KAmgLU=vFwK9!`gNEN8mx0kCLS=is(PLh?|vOwdm%UrBHd->ZsIg4a_Qv{`)m#GJ(y<{*# zD8UXt4`D?a`J=$X&iJ196l|Y_NT?cTN*VV7O8y@7Tp`>+p(8BPJ6%&66v@Ae5G#rb zxsI9?R-FI;Brqtr4_IZIi)pGwS`V8 zPm#*aGrT=rQS$C2kV>^$m{Pr~v$FHH`@#{^bYa)Yp_qk@7#p-16_4@9j$RR$E}POE zR0dh85XlQcFYLjrNK9fFbdr?lkpL~BJouVb=?adWnvX#}M)0Rg&ZLm-Ksjb<=W&+` zkD;r^Js32^6JWJepDeUmRF5Bu)Fj`Hp~y(cxrUKSBv7{`tWqX^R*GD32e&BeAYmBm zPfUp7@$gfgosZ#%<`b#u67C5w?W0K0H!5AwhP=QJ+rlw-a@b=YG6a+g-bmM(yLS6~o@yLXE@02G$(k(Jl z;xufZ?WU(h$s6vzOXo<<`Xptmp}XFVzoky3{eq~c0qq{d0tB!sjgq#}ab_6EK!>n* z?cr2?@?=0pb;zc<;i`1s_he02nHZjj`f z9z~Tk@FM0GCp(iWS4Shmf+{0>5Rr(J3;q^^<(N(AD78K<_jW_Dj|@XgLgyk+jTdHk zs)Ik*Nxr#4D6UNKuFt^4Ad!4mpo2;=Dn+G-6CV(GW+0J~wUd&un=rAPFcuXFGO(rf zDG--TAd)Pso>ZbYyr01e*7_=o1OP(;D*_mF&xXiW-kRJp*6R}?rw$065>~b(Jg~%n z-Xgm#koj#l;kqR{62}Ua0xU@6O8RE#w`2`nr;D^^uy$oB?4>CGEUwij^85q~L=b+1 zC7c5aJ7aiN;s|Y&7oJ9ak~)$>^982vF7b;kn9}73pWiX=lJ_!q3!eIX;?0W+7mq^g z9ZJs#8(pz^IZG6nEKqg3DTc%eUBw zTruqjf0mE@E+3<=n2?>w`E9NpQezsPiryG}kSFBK1u1QvIJgwaFt=!41wCjgQ z1^eYsx;`fM=Qs%&W2}-;sNz)!T`sQtQ_6nuw94vv;LB}4F1JuTwQ8y0s$bM0xbszn z51C<5|1VboSdo4Xv+%h$!DQTldCY+l6jkX)A<68uB&Lp%+ri)+_zI%-zErK)Rkgqk zJ@IEaQnL<(@~aa!t$VRunW`3OyY0%pUw7c^!}_x7b5q?>rkCL7`kfj$Wmz3kvPQ-< zq+_5?e!pInyWZq|-Tm(k)HhZ9H}wi-by}v4rGoXcru9i;)pBL^l-!NVH;vBojbih4 zSTs#`10he}H$HyZ82FMJ>y6iqW|PRkt0z)Ti2Vl5mtJq*HyhB@y3U7Szif)yZw&Hl z$*u7SD{B;f8LBbgLUq$%Z5nF!(&G(YtqpereVLc&^Wda;c=dh_dU!X)M-8wn0_AFCsURRboKjO^00l}v_1K4d+pom zX4589sn58m>vr>-whdG2XLx~S^L}{j%`EdBd;6_i4_nn}yb4t*xw)%XXvB8+TMtY- z?r5loZ@ysA8vl~&gg6c5{68`Cg(RSUF?jn8GMeg54nbk$z)01sZUWI-4#qJ6IE(|hUA+~5tgC1XlfEY8Qun;kivOGnwHzBV z0U$P(c!(^RW)|%2!eD+i2(To$0*1N{zSU|KdzZ%OWDPkkI3PP+_&PE9Rxr2$oarH0 z)KEX519jDUy!^}_uRt(c@g5z*(vJJ+bJ;6sHaWOW5OFSup$|ibX zHi;CN;BTLNUqFyNG%0^8F1lrdlNYTJFm;q4ty%%oBp@#3klTk%tIJGB*G(A&OdDrU zKW(3Wwm5BmJMCiMqS+IA_TC4CKjUyqW=+>&OF;blY3B>NSrfs!RQAs|+#!lIjX8cZ z?u)YzK&@@_wJgN7MtHM<0doSxbN%1z=1qMTu4>=W)JMwvkPL2^{yrCD)|_VM0a5#r zb34l>)i(36wX3Pg^yWtiFA03H;k`^q8+%jn+qO?K^PDw5f0#C*CsQ&4+7lnmcbLuR z#ndLuztVX)S9LQ#NbvLg{Txekl~?w{7~SH8%;J>U;!MEeT=wG6_Qi$8#U<43;tJi; zn#|IM+0s_P(oXi$Ui*^kWtKp2f5zOXLuw3YcnRMr<_Xa-&W$)6BG^*e+X8Hq=w!+OX*w4(#`7Mr2YQ8qMLeTU|nm~&TrM| z#fYIv|C;|w4*oLnU4n&eF-u^}nsfo#i*?3pvC_5Woi%a7brH$+pto7LnX8Q2 zD?B4>w3Wqo1RH*|n|F^k1YT|k1+LE;k4WWgN_|^}Qun5P9ktZRR@2^0ms&BZETEv@ zO6SP%d$+21(DTg1)==xazvQaDb|v{pk6TBv(9wFjPZ3+}^83u8pq%Xn)Z6W+zgAE@ z%YzFA9yu$&Zr4}e?W6|orswQtcI;*??dII==F;!w%kCAL?-d2^mE`P|cI=fe?N#3G z2|CQ-%+FNEj@O$1@Hg9E&YJZ*{Mk;p&`Lig!rh=v^Rk});Ft8l8qI>``~5-luLZAu zmfyB!FSd>zP1MM=_nG~)++UcDov5KZnm?MUIy_j8?ODrd=zJM0<8ZjGJ+Uj>5uM$6 zaCf9%A%?#nvgLf76tM8ed9n8PcrxGs!vYBjLSlbF;(kHmFCz(2NZ9?8dvYhF7ANFE zCzcN1a~ykeIJR#BMhbrJFvOi$m7Lu9kI)^TJjmM#*WQiQJ~iW5fuQ&bgK{=y+D0)u zMx~zay2_sMKJJ(Jxgzi-yysw3ll~li7S}o0e3Y|BbN@VD`uu50k9y9A8qqrY((0qp zbY{ZM;K1!Lz6%46Gpx$oXR)hB_ebanceIys(M2K~={0Nqa0&i?Gv~8x{2izJ8_t!> zE*2NIvR6+WHr+U(c=Y~B%Yd-uSRjAy8xdG;yVljHWV z!MNRg*o0EZwkZMh-vajM4iO;)%Z2`}=)M~QM@sa4=GKq?XQ=P_Y}uw)&P(k9C|5F{VNnU#$PUv zWJ>?>|9x?|Jn+Fn?&=&lzSQejdv4Hk$oPGV+f@!sVf#;ls5_P;>762GmB+Cl-VYM3 zV#2OO0cBz}mKtS}e-cEtH7XPqVS=hu&;M2 z)xS*;2|s!;Yg_k7Z29j5QDL37)Zc?XR~vPYzF=Co-(p~MFtpp zOrKAi_*^_N)^-D5&ZscAU(8y2JZV5Dh*ETnt>1i{nR2X}o}O|dY8N$h`E2*v)G4ll z%tW^={ z%(Wd)X}107m(=p2_(O!GgMW2u0Rd?5u@2=>7%xT|`A$wKXMDKfC^DF24Wi8RD@qFX``@_y(*^ArU zzw@(G9!J(_`|ViN-BNlsRBY1DXTQ|``D8ldfv?Sb6NL2TkU(*}*SyO>fMXlYoA$E= zAEM9a?nz#B*CXtwEjx8~&*|$HJ|JX$cZ&z!6z9I?r7`NVqF8WxD)Z=%%fQ3eS$>C% zbjvqK@1LWD_E?Fq-U%!X+u-<5!n+84s5n6}Z!j|y@i`c)t~t@ZZ|qQ-Yj7m3C!=M6 zw*}Vzj4ZBUHPgNFc`C{kIWIFs6jZR&i2fZz zgMg3n%v^NPA2K&6$(JYuMXNIsG+jpsV=#eLER7h@Pu1-Cx&%(jt8^DlJ>sQZ?+$Up z$d>`ANQmycgKweOskuayrCr!)$Xn+lVmyS-wsEgRVSYg$Vu1K;%rQX%Qi6uuoYGVx5I83>?kcIY%flb$bkSXs#+e$AQ#Rga*9uU9Sju$u<5)z!HmdFR(}8> z^0veY6vvd&9|KT7;-O?5AR-Bgv7i?dxe6>C-!FAQAqGImv7<8S`(LVFKEyHhgK#Fk zaV!Xj4)JqwRyJwJD7wxBVx(;vWISF~MF0c*FkYEq&{gxHPQBUoK@k&}Q6IOyKI%7K z7~M0jzT8@F0t%fKsz|CwakZ0$O!4_lrz-%P!xWTCh7*rEL#Og`KiA@;rO^{nNXR=z z^Mk@*rispB@o$W{nn(rA1K>Ml)(OmAg_&~cw}Qf4JdVES?!9+7-NGU(u`cRLSYs>w zl7Y#fV2%Tn70HcmTP$&@J{A^bvLzTx97&Wiyl-wZW<=UnTYV_m3%TVooY}%Fud*|L zsau2<%wc72p9`l~rc&cmmdAOLjv*(esT7a<0L&e!NGi)=P*RHr^VDJ_z_5Y<&7G}$ z@gV9foJU?6d7#OPqt|x1*b7_nW=bhG;0PF)o2Q}rxoxjo(tarAb=Uii;Z7==ab4MO zGha?aUcv8QEr*$;nZI*|lX2-xr)nnGI>YUr{&+nbmvb*>03VBl>OhYTKdtt;6NQb( zpfmR2X0x{Ko~*(_Om@?xpx@k2{`ZpBVH!>4fsjnKE>UKXGe z>k(wAt`UgCNxJYI2gEQl5)+Or>`4CfY?1><^_^vSuui`4@ehRbH9W)YuJ&F=bGIxu z8JJGCi2T!MEKO3ek9w&EVEMthGf}s%vK($f;eRX`C?w57y-Z}M(?@Z=<+1gaO2Ww8 zjHJAEK+K(;g5gg=jPE)zh;u!tHPR8J#+?{|WiZ{-bT}pp1BNiN!~m2F04(xldXE&q zJe|XNnh&tZN&pzS^zOH()RUR9HQ>^$ZCn-ra_b2|iFr+xj6R!8dOf|rBGBiz3ra-Y zc(v7|4Vp1D;Xh+3(iM34WqLE=E(~IgI8Lv8KWHvp^}p$W8oC7PYc8W8-ksaiE~pTc z#tKxexr6gwZnS@i0QE#<4;|A<73soSriOR_1HO%Lr2!_=rWgc6AS3>(oi+BW@BL3Y z+-uCk(6;|!_q$NaGXquGZ&BDj^y}2=1q<7*Rz73l+RAB0YNGEL$KZ*CG}r1_yAR$B zjeaB~`)IVdXEfkD)6ns{^3CGD1=Me@Pu8n8ZBdA>Y8d{f;Pre7-Iic6ETn(p{L`!% zr~QE6(nZIcj;qDvAgKRJyZL#4$<_{jlkdXwrJM$eu&sy1BR>vhf8}8>ou&==Z$0?p zGxElKH%u*dgy@TRlM@bo1Arj={B`LBd>FE*TMq+T*Wp2zW5S!ceRXK7{%TT6^}Q?{=MJPjVT`) z|0Qh&Mj$BvCsaQ1Ms8;xp(B9he~le92UZh+&ZS3?@5rY{A{f)d5_b@CaEy!-nWjyNCd#N)xC=21w9go>^}RR+U@uH`+(}(ByQcOXHau*!0I~EzY~K7P7u@#;df9>fg>ocyW+;6lGqp-B~TPydN5BU#(jA> z3#HOrBvd$Aq3m;yu;;r#jxeHKa6G4Mo|*;m(5yHVzOYdIqsm#k(2A zZ5(_*9(cTgFyrZ8{~ZkBQ1HX5289fQ{Q*_0KTy|BsQ(W1F`yjv4BpW;sJ;Mo zLPi#ms(Pz~NQ?&!2fIa{DJ7iu1~P!d|9r=v3J1d=!z@E1B2aDR{-Ah-&$WgDOaF^p zzzT`5lLtDTh6X$_tp0or(t#4Ehx!acQGx=&KJi1;JMy7f(7+W8S_fr=ctCMb$sY;z zy@u{R8zSsQ_#hF|y$`qRz90WdIC>`QCmup-3&G{+4w{3ST6PH!sz=p>sCowp+n`!N z0UJ_LI}0<;yI*3gk0E^+$^o_pA}l)L&(IeKt*VVN5Htn`vFc#4zPDbKWgOtBOmeYd@$sJf!m404jWr{TiuLp8oixP#HO;OV_14 zKM&PQhx<8%QV%Kw$YbGSW6Fq!!ln_T#!7MNqu$~nRPa#Q_>gO!p8G>kAU#y%02Cw- z27nMjFa|R$V)PtaAOMaEz}6Sy)%TYN6Rr$=$bt}ihseZ-lFW_TMJnHA>4{ZOTr2Ae zr0B=Npyxvq6kz4o48hL^yPj)3OluyezZjrvFrdks`dOeWv!fiRJ_Q^`umw!?Wev-Q zKlYDAXx}34ruz8JB5-f9MQ)*f@fal62qUs_5%BmkvnRr&6YSwoqCTkXVW-|;$K5nLrpOFb42Go2Ehb`Z|R0Xnob~ zQx6h|;5kRUzy|S52NUc-Mr`#YcY>cRg19&)Op)K|nlXH?Bg|Gpz#LuPJF`J5({%6< zT4kumTo0R_HYz|Ii?4lJ_O+3B%IvkW{#4cz&XQpBTZIiQqjiyq?Rs786*ZS9vd-Z@ zDBOO`c^Cnd(}50HzTI#UOFj16$Y1qPK39Ou5+vL?L86XnWew~&Ox-dCYv@GqGmrP@^*PiC zI~c1vIABbJNC!?n)~y^c6Pi4MjfAt8=)O;%$_V(8{`wi2)xxF{^aZwZ+8p9lC*}R9b@}wcGL|j&mtFJIA4?}+mnvRFBgvLIrI&vAX={!MZdY)}ICWZBqHxa))*t!IOtoRt@Nx~5y!5u_2;lPT5>|x1@7K4-DT4ST0-qt zQJX%I8071sUhCg2vpW^A<4!1#53Tt{KZL2j7u#BwyleYx=%vZ+J9smr#hC%UPxYPX6lS8Qtc zmAM69W7Al4{&_Do}fgY``tFPnYlx4+)XnexS) zx!T#L+B1quHkjH^?ZoexwnMYFoK>wR%bLsT;)zb0cd?&4Uv7E!ugt;P8}^Bk&WHwH z;{DLs_N}z?Qk7hrhpm6#S~VrIY21dJKlfLaZ?V}LtFxO*dcGJc73}4(!zy$5c?&hD zw2YDUywz{#9l6Ci!*=5OPW0qXJfE$T*H+eNhXmDKdA8kXwyk8Z7xH|&X{oyzMZ1}e zyYKsVvu1X)w{~+bcRxV(a>@7d*!J>8_Xd8m6z#V*?tkvzZ=2a~ z-`elE-2VbO=p;YrVms&-J?K$A=rug(vp?wfIv9vJ7)(V+xDUQH9(?aV7@9d4-Z~h$ zJQ#%>j*%aZvmH)|9!{zrP8l9f+aJz&9nMA^&ZQpyC_4PvcsSpGxG;0LxOIqHx;$Kl z9IcQat+E}hi5{)19&H#NZQ37gc^z#>9POkY?G_#FH6HEvA05mb9c~>RT^=1nj*;ZY zCv3;3qQ_^d$LEH}7xu@OUdLAv$JeRHzlx53Hy+>gAOD#-zTG;$yF5lgkN^b|#E!&x zoS^3oCXE7PLSH@_3loAPvD1(^#Yo&HB;EiLe-=rA7KbgnszrjWkrBk~C-=loNYqY9 zjZVm(pODMBLAGrl34n=;PpF$tXa-JbpNHzf!4y{~_o1f@MsAeL8+v0{YJ(>%MyIUL zPYGtjjCCN4X{VgU?j-E)kGvpIms8&DQ@$oQHI8uel2bu;kNaQTQIAsHM3JWto}Y=v zxzeXWTsh7piaqYhooRK1Gru{L**;@^gJlUjk)-ex`f{c<6K1q?rflR%^gPsf=R^T< z&dKkoCF;(Ca1|B6U`j^{mVgMGLU5Xq0t_JDbXR_P43cJ7eu0oD&x4t&-E`S6Xs<$8 zX2Z-~A@@)b4=qDo7~Gua!2Bx^2@5ypl5lcth?UsMOUjT(0w=GoLs@iAoPaPvN=#Z@ z2>P3rhinkuI3y|h8ym~jUH;8%n} zn6IC|p?-YzdcX|^jWA~i14ytlrJF-Mx@6@|z8ztY3_(4YcXMrqxZor1Ek}rUf^5ay zUX6h$y~})TXE8|*ipiC-Y3%^2oT#0voKvJqho13wb?a#{InSnd@pTz@XYl=8%-I$RS7k2vms zR2{A@?(Kq>-rsj?FZPp|g&;OBTwKEm;UN)k{%y^;nl_BbJSto;bX=~+*)KR< z;rDg`i1F12L@=%^T&Ow(Iu`Ok9fZRH0^k5j?>;7uYcO{F(^S;2Tz*Ue9XPf+Xr}6x zF#Y#L@$Fw>cBr=iHmK+JQcyhjH8hkk5+IWY3a>8jyTWl?L+3|t7u7=VivtU4uekwW zI_ORi2Fh=P*Ybz5$DQ`OV8Z0DU4TeMn&to{(qKd!#I4(oMA#+_&$*caD|Dt1iwNKi z39gG!9K^j3RQk``L!jc$4U%C7l-l!z91ER3!Wt*@-%|0uv}gts17o?0h`{CXN_guC0KqBwUOP-(gj$b7w3qRp62pIwnF>lQ z$g{X_3lhp>YV+hBnKxVV!E(O0;;#vCP^MMRUkh8(1q~R(X@85qH?L_EMD^o$vbhM@ zxij}yura|Fs72?J?@<62%g#QS#ltwHE;D-du;oY$_BXF|^e|y+KO2>(s~@3M&uF;E zd^{}zZ*)Vu$>&__$U_MvuNlIKHN_dj$)0*MMo>96Ga~3PF5a;fg*8HOeM|(6pIK2_ z^%8mdjAKFFOilnR^Ku7eT)_xN44bHv>ovOqAKfqt&9MfXxNr~yHDHcU)t6Yn2r;6( zcV3cDtYrLkBU!XE-NqWle$HV>D#L zasTxwO!<*3N2 z*fDmIV4q|2T1S9d_|xDQdp2=4kzZfNd(supzp^R>s50zS*}S3+eOG(!>`J<9sC=1J z?JY-D-#0ufJUn!vD(ZAMD_Rlpz+j;7b<2Lh59=N-0$e9_h=M|(+J&?iUx(qdW}%9- zY^y7~IkV#|W?BL-J;HF}k0e|-KAyf4Ic%5@lsanJ?~po{V_#3rG~clV&3g#jd({kl zS^-uCPLrwT7jwxFYz{fravyE(4wF zn;1G41*^<>h*l%=opo3~&f;qSb|M3Tf`Xz9ZP>G8YmOeOiRuW^Hb%l1M!5PS1QO51 z=iy49$IgnnK!idKS{PjqZArK}Hl24Gw^VjbqRn~o5 zi=#kwSj#Hl*$EhkwUm8+G2 zPE5*b46y%r$+s7{(j8+Fq_hGUl&-5f9OxadG7{<($;UdJyN(UWhd$g}0pz1P@8v61 zqx20KQbdpuB7q4ZPq(VmI{vT z?i+iqiMw5-MT|vW6L02$|8yu^s6LM{fJ2%2X`bl?EQ`FILshtRJjUHK=pzF}LaB8$ zI8(oniFa2<&2a*Cau#$ifK$tcYZ7fc%KPZ8q9Ro~nSEMcOc&6{U09=+lC~p{`clJo$0xsLiwfNv%FNAP81!(>)Fd{P+c#+PIEPO+)S?l149>cr%+WiHdd z3!bV@Z7=^sUG`(xy|FImBaBC@X38iTgZzUGucLn1&*_OV(rj;DCmZhh9}|s@jqSY7 z9%b{3r(R7TU|ja0rp7b(nwtA%_}r7q7B+>NT1Eo+JPWuNclDZDXWIF^>dF=m-J3oy z-ST<&a4(%CHnnZZ@cT}dEnU<$wI2oW`>%5^|C(s(xNPSSJS$tiJ#G4OcgqjQ8FlL@r9R22Q@(zIr;qp}ikLDiwJAp_go;Bj6=3W$=tYEZ$ z`5IYWb01%z;5!?hb*jnce$fuWSda2`y0hj1**n4bP@WA&l9oYLS)s(F@(otumap1@ zLdgX@o1FSB-wZp1QtQe$c|BUbo8Jkg_wZ~9CbbON%L->smTx_%YZ-P96wX@b*_N1W z8S&~6&N(aJmN{z~4ZIW1#pK;lAZZSLLzhdu6UF&pZ;Dd4--hIBH{F%m%2bCTb`(|gYvmJL2 zszZ4XtVll3^~;LZCRH5R34i`E5-3_JR_m&=u zW72KOinablsOvs29tDcEt@9rHOnzRvL?=DZDvkrrJ}=+hiJ?EvKn9bvtw3g*gk^(Y zDZv#bSi!S~qb zyVc!k%Bb{~NSefmOQpyAv$ieSQJ+ya=SZPM{F0>f$wF|Z1??cosRF)>PobZ8 zRpfkql41{wX!7^XQIc~#e3vyz?FaU9Qa>jvFB|IG(Q}BGmdW-buMbj_QA{UW`E5-as?uS+|QrQqL4 zW4Rtm>Nqb#zakb3x)===J5N*#ctTL~Xl}COve-yw-DKJKqgvqkz)9bR)VGL;I>zGg zVkk}Zig%X<$9K zkFqJSRK$_@0doe3Vk%Hd0V2=!(!GySiX+-!bAUc$O+Pb_SwZe%-lz_h)fBxa}i2)B!)aoM?0|;MUXNrMPHILMK3Q}YQ zJzaSn%zz)8n@Ji>jEzT09ef(DDnxq!84R*b@-vql z0B~{pn5Vu+!@4L93nVj_9z@TwONWYT&kA2#UT~spbgGqf%6p<=8ow$EvhUW4iv-0;?JgIC~!gFb~8Gtzu-kbs*02Ym0RZ=a~ zpk7iAG*Wq5=wW4h+_k*eSE!XqCz~8X92QIwkExT4nIIm*Jj9{{`KUw4s!RS+wlRj5;s?T+)Vq1%J(57@ z(=|#X!WBK=P4||`_JNM8NaP%;ynI4iQC;F-4^*MZ7s|j`^vM zMbt0J3to0?J?~>H9cB}qDSG8a?wph9+{)~7xn+M_^a)%nPsr{jn(CHH?XFko&bMv- zfc=w9v8HOVCmZ?e*v!|yvzqqXuO@7syVE}lVRwpVf00;hk-7ciRdEUW!7PB?kDT4N zvdEWj%ilNEFM`_NJopZpdM7#!+my^ZFGB;%5rNnL6@mT4ZdANlHmkw!`a>CDDmwZ|yVR>QTJwFEJkG zD4O2!T;zyVO^G$9j?+wwyW7zRfBHy(df`d-DM6Gh(J(Vnks?WSS5JoXqsp$wBhHkG z

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

fL()59+>y>)Gd+TjvaSZ-|3G=60 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 %P$8GlS&H}TmN`rdGHn-uz@6b`1DVdj|yBcfGi z67v6~*pyRf%2|mtCOU;0QZA)xs%BGW<2qvHHA>?;&Sp7^BURGoZMtJs?j~;Xrf&8o zHln3G!lfH##s9$}aVBST@ng#,_Uf|_AltU%B0VF_%)m=upDbM(!#!&{(gHh3H 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
Ur`(Yh6t*X-NRqUk`UBO29c)tlL(p`@A3CCz3o zacca^j$1l(zFvNH*D)KrbYDB3U1-!8fUolWLX8G3o7IOk)4>#6G#lH!K`*is2Msa+ zw@;mlB#Dk0M~uN3pu7b>&WFE5tOm~F1F&Hz3#yO<7TI<{YfLv1FN zYB#r1VQNbUO&nEi9R~`e3ooM4+-JEV2XKm!C|I8u0ceKLU%!6*@@ZVZo}WJU?z*){ z*9{-P`uzCG`=*~h`1F&HR{FsMU_bu!#~yqRJ_!F|gc43jVTBf6h@pl0yrYjW5BdY5 zKNO8fVu>c6h+>K=uE^p-4IJ=dj4-xHV~sZ6h+~dA?#N@0C0bX|K|T(dVrYsD){#Zs zSag<2i}eQ5W-+k?4>VaB2h>&y8MzpAz{TbcGf(kF=2s9M)lNG~-ZbSx>2RY~La-GD z&68Rxlo3e_p~DmasO1@rI3~4o)Lh2!DNaX;+SCxAqb=%GqHLXcBvh`!!%d%1RjQgo zUB!uKpb4Qf%xGnCl-Ea^^2rchphAVrNrQ3o%{N(P)J;x$x`|OU-$lg`nrc=BPg1ph zlbJk$CMumqQ)(+)ol!jqdo9EGD^hW`EwaKHjzxM7DMhDc<>3NOsCLozl{K#UDfOmW2)UyN~z zKpMnb#zeY<3~i4p=FUhZ$(qndR#j;eN6|2&=|kv*tPngd!~B;}XCa8&X&sMBTTg5< znh449^ItpqNQX~8=NU%&Bs zG*CL{4orOU#vhL^haNf@qKF)IdT0%zcZ{WxkQ3RSkOb zlWVg4R8ZeR1UNIV;yYGJV%{|M*5Hr5=4K#u78g)uL|S1ATcfZAw5Q<3HkoQiTr$EZ z

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

6lwPfWEs7< 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 qaqD?2R{Vf9`x-;pcF`j#agOm6# literal 0 HcmV?d00001 diff --git a/images/designer/tests/failing.png b/images/designer/tests/failing.png new file mode 100644 index 0000000000000000000000000000000000000000..96f8f14842b79669753a0a755e14cd5b91d1fd52 GIT binary patch literal 7689 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 Q&0IiLNmH@vmG#H}1r{70^Z)<= literal 0 HcmV?d00001 diff --git a/images/designer/tests/import.gif b/images/designer/tests/import.gif new file mode 100644 index 0000000000000000000000000000000000000000..4aac308cce25e005d4f7c0170e6c07ae679b4f40 GIT binary patch literal 251411 zcmV(+K;6GbNk%w1VGaZc0`~wh0RI3A1_cbhOArbO6bS_v5Dyoi)*QiBA0a9rBPk*v zA|fR$C>skYEH)~0WiB&6E;(l|nanUXLNO*5F)}qWKwdJY<}*fNG&x2zN@q2lyf;^r zI6O-@RDd{NsW~$+Ic~r@KS?@3N;^t@JA~RiJV!k;Dm^_=JwaDJ#pgdnP(VddKu2Lf zgw{bzYeA6JLPt|VqSQl5S3^ozMNnr(J48l2SVm2PMqP+Tf6GTWB}ZtUNI5e|S7S+i zX-ZpXOHfoxd$de@q)%36P>;+|l;TjBu2hz;RzWjZI$>HhHd;+oT3TLOkFQ#v*ju2l zTsuTuOFLYBw_TRRURF+Dd6r;ae_*reV`N`tNlRsCYHDn3Z9X+^q|G%k&us(xx$ga<&oC)lAxxNroocB&y}E(n6B-anVFncH=Sls zo}8PYprE0AV4{4iqQustprfO?%A|Qnq}=kQVLGLxqot~{rj>)Jw6&?z;j3I@tgoi5 z(7&;-tg*4NvR#9-jbyW~p0l{Zw1k_qkI1#IzqYlww_#|vgL}AUI=Gx^xTT=FrGvb! ziM+L3dzQ4Y{#>u|y`M=EKz>EjLzqY`@z`?=6!oa1&vxmi%Eyc#g z#+FUTV`Iq3$jQmc%T`;=!m7>1yw1$a�Zy*yYgc=F-s7((?Gzy|2^3(bRlr)RAJ; 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 s-3Q?DcT?M!c6o5y+kP$hO4`7fA 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�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Ձ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� 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

ID!!<;-?WC%MAhMOHq8;547 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 z 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 O1r%k~WU8e;2LB&e>>1hs literal 0 HcmV?d00001 diff --git a/images/designer/usages.gif b/images/designer/usages.gif new file mode 100644 index 0000000000000000000000000000000000000000..d637f46f14326ee3b383bbfe5cdb20e1309f4c2b GIT binary patch literal 72909 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≷2w`=#MO=vu*=Hma}$e)Bst zdPI0yKg<`e=BZN-iof5hPyKivtlhpq-yxzp#S!530VvD*9d1*1?aGBj>f!Vk43DYw zuG0~W=vG)47klC=9DYlysNAyo)^FS)Tu7N_%cPZ1O?+CtC3*lX##;L$#*c znz_FT{hgoUT!%<2w1$g?UdYG85v($f)-P;MR=)tQl**otrLZJqa5mY^V2K0z=rdLi zaF1l`@?5zOKh#Pw?h}-D&^JXNYU4!qLkA|uHrUQ7mx`;;8PNHCpA2VZ`qrZdziEw5 zc$ER^LYCE;J?}!9M!Vl1=^ys5k~rG;?cJFnR7cYd=d7AAj+4-z``jWn(;6_lE(B5e zp0H^L^Bu&PE7UUW*y{xP)8DmNBS%wPfmja-RM&^B)gPu8N!cQQI)_@&B?h?!2V?&{ z(!Jw@`lF>cthHl&RBj$%ntWKk3`7WfvSYH{ABCVge`>@-kV-MXR>b&1$Yw`Y4S>En z#qH0IXCE+)=Ea6mH+jg<3wPZn(bNom_S66^i?2C;$z^p>j!bv0{Fq$}^&P%rCQIXY zXdgPWiWJAAaCp1I^W@R zx=J@MN?jhu<^zNha8QleN1wA0_Em68Z00%v!H%ItRs!ext7udxq*Y=JK$iI&7iAoQ zcVDTKIY{zXqTMN~IQiN403iN8P?LQeoKAe%2>G2}Htyh_gQAED7D3Am2P5ig}m)6@;g`FMTba$*v^wvFgMLMGhkGil~AsU3DX<^vDUq5Vh_n@DO zBFl6(NNjqQBq)xkQ%sjKA+>3WZ=|c~`xl*z-%Zy)A2k2!YQAx^04lT)N3?8uy==Fq zKr-<-zNS{iQcwRDBCIk(t+mLy+xFXT2{}M`WkoiytmSydFND@y)h-+k*)`W@Vy(72 z2ps#V*NCS&wG#EouQKa?W#;#3Czd@xoQ7?c_1Egl%m-}mu{=E3M5%H4G-kKRxmU$k z%s;-HEInnR>zC`0u#aYb)iDQuu*!HJPrnC6vZ0x391tO)!p6JLOBLQ2_%Z1-^7Ot; z_`Iq&c!tJBDE0J1M<$s55R@+anI~~otWvFW5q%QJYdZ98)V^sBB+CcP)C zv}g7(!YZ5ipW*I^>-m1_AY8IRySCJ z&95?Wp3TfPYxg{xHi+5?gOT!A=96(W{ERg`P=96=HNW7^8rhG}9WoV7m=C}8RXsvE z`prT@)MCn;#YcY^vu}OQkNPb0#Ok_glAgC)r03XDd;((a`2}B1x)A@;5JX8__PL)` zR9(z2z*k24*sk`N1_Ay`9nTI$%ot?bs}I2xqL7ieSKG0)CML9lZ@y8lGe%UESZ}=h zN-BsL+N`os5&p}I@0gW~r;b+?8G8opnEECZE&M9yO_{hyC9+o~Krk)LyOkRZP512K z?mIx;oVR*?2!W1SMX)A~2Hc2i#uq znsntO^fPqg1TOMPqktY^eUDA_S%0Sq0MpSL{R5hpTQdPd*V!fQfMZf+OftNs^2b?t|O@C%Za?+uxIkQ3URAlpkKwu^R@0h~N>-(HMtyilp0 z$kk7xHr5KZbYs6q8sc21;JFqVvi2>SEl z6d?iBokkAyburQ0l5((!b|;Fhq-QzPp2UMXr;(Gmem@Xf>cLn&r2$F>B-u|RU3s4- z56e0md$xM_lZ6J$(T~7nDPTH#RX?&5FebT5LkH%JR=(5&6X^p%0R#m9%1q<-Q3$k7 zSaOk~V(h!V0YLSeFxkZUceSlbLhl2Ck(L`q;R1 zf9VK;UOnz85k7V8X8cW(qLfXEW=v(iH_SuaYrl|xwf7OL(AsA=-{hPqO$p>zQr|lu zrQ^j`fpOTTNHocMj81>1O^>(~TP=qP(aO7*UQ}J4oy|+;A!o7dLGa=TDD!(DuypiK7LefQ-`w|_boI|{$rVs znv;HY@VVV{srQjW$KltWh^v28ik-)+Lut&)8H%q@H{X{kEIi5pCrLjinb8{r7?g_M z3m9c1TupM1ukXKQqv()H6l;SdvgVdqDf1CbuOS@{Ar;d6y zc1*n`Atci0l#PL$hG{0zp{)i)y+$0ipqo#1`6Q++z4Mbb1^Gswlnh&ZeU-Q9QzQFp zY>kl&3-k#H9(lT(h^3n|x6XjN2fUXM=wYbFP7f`@(3Q3wPL9nOsUd3KUG;`1p4j>t zhqbBu*Za?Xv~`~3|Fk5_zT@Fi^!~no(}Yj=VK0Sm&*?`!-#1<^wEf(q&@nnSO-;$h zuyu8ncdtl3NTh%cmI6Pp}tT2U?|1@N~s2VPtChB1$sqAS=!%VP&ug! zRm-EHUb2*0A?az7f=TBH&1PBbnjbrYq+XW5jd|6)nDlw-dW;;usM56dUn$Zts_XeI zoldO9TxH}}iBUdB%J6tEytpDby?EnV@hIfW{pJrLOFn~41_H;&ar&+6UVUKwsYp;iv!JTOua1$dsJB=3)vEB%JJcWejC_y7~k+LFo-N2Yq#O(H1Xy8?4gswq0Uk7$2^NuG2w;Y=Ag_tPhf4|neVsE zhyQ*beR_E9F%d@z;jIKA>|+&kZc`uyD?#Lt*sx1HC7mEDj0FAZ)vQQ=>zkwmp)L8;NGZ|*?2A+XtH&0Lm6n#v{I16IZt1qXxV9Q}p2w!mdK{uB z+a7j?jYIg2jWS3n6SBEI=HQhe9ICBT9Y;a2ND#L#N=3HdVx(j%u{&a9OxN=&dLG8~ z_L?ssJKd{>gPm+Vf_0rC zAud_*x7awQZP;EkF4<~qHO-|cTgDnQuyB?=UUbZH!!{LpmA%SL%35bwT%;59kkGrg zd@B8`vgTbt8`OqP|L%{<%>~Dq_Lq65MPhPOLV+H+zlTQH%&Hg#m5gaGW3WVyX*Du$ z$v*m}29|lsBYfZQG6w;G9uwo-ev^zWcOQL1Ni$6en*^roOx6hPIoJ6RKGV5usN_cW z54=y#;|kyp!c%(JtFd=AMaT!RL`=qk|Mi0qnE6IcF)rFp#WTu+mkZ;WT-uyCM za?H^HHDpdbSi-3~!vbzDvj-Ve%*}-<{2`FWK1I<*_YpC+YOq?@*LY2?rq~Qf)p(gc zH7g~z_^h4(^!6Kr+a3JOuexYuO-_{UH5lr?$7w-h!g!q^!;(__73nrTRgRocGZQS<*WMfR{s?^XLt zA!fg4OTowU9Sh{b)+5;ECCdxfqrO-MN#?m=_bTWu-FGb8oh9q^&H|lq)N4T??_L?Gb(`o>Ra}*fF)+HVmeuc z?2MRV_I1vK;rsM?-h&%ohB{w*1JieS|5!-m$_;t>NMuVjWLVP-AO`9mi*cGjH1fQY z1u}HxIr~!-jA^M^x)V5WXSYQ(R?&Bi5plPOF$ddYDO4b4*YY^~ban!YEWa#C{Pqx$ z%Abw@w$2T!Bo;H~o{{D4r(f1xe|c~}x&^hN8iF8K52~WBDWe}5+PP%;*?|w^cP`6F!FK%CyVrNqz{u=Rr{u{CkJ6Z$Lh~uD|Auy zY7_z>)tp2S*krlK&-Cj62l>bDqJyX1%(n84GDCXLaT6sS*$Y=f5ZyyYk4M~URf%;ZE#x)ZX8l50T0rdW)b?=Dt8FqJ9IO=xn*)GLCMklA#l8Z7NR&<3 z3s|s;TFE474Lx-e5;09geIya1zaFbR3VU%UqN6ZEycLL@q;TsbdmIC-1pwuaA+#g( zQ;wq9>yknyZ1w$QDdwS>5NqEN_Bj+JOB2>rNpg?{>oO)|F@sdYsrg++TQLx8V!Nyn zWMLoVz8EyH#YGD#Wi@+^ur}3dSk=rmVO$Kta3j3QG$kjcBE?_OMYX0Kwm{lY&R2fW zL=?vbfjrM1ZearbvcRxo4|&_-Dli2b#F5-s0q$f$IwxWCH(hH3uoWE1_9Dpv0ovOK z+pLTxa`nlzOmRw1DH%&ChonYIrwX~I`r}d~@u`hFscEYra6Ag8E=F0%p|nb?H3s`- z!fU6=;L#WBOOy5!5J@6N%`ys@nj}`v0*|49>(#LLj)GK^6f$sdTs9MJ0-PA3Oa_GU zhA>wl=>tvZL$m24rsyBy6Kku5>@?Glh#7ORj0G`_b_hBr6Qai_jQDJ0Us~r8>E@WvNo?3ilIFOR6#2zX;Q909WBn^t6U?CP9!Hzl;RHs#2zgHsDInTnzA5O zaH?S`=A};3F2{#A)}B$u6s>TI50j(|#?V|pst?Ab3j``}6=r)KB}Xz^m+%6Q*VLY$ z3$zQ+e&Ip^<46yW!mwSsj1-%g0KPhqFFKh^ik2)9 z&eyc>Dm~Bupu#j2(Ja6?i1l+TD|fxT9oA>04kH+=C|Y&<7K6NO6^9HW@8=0e8=OHh+w1Uo0 zDE3vzmQ->MjH$$TD5ffJKH90sTZrv(z&M2ejK4rMNDPWJ?F9)As0z-u*^jqf3tsC4 z^Ff5BO~vLwdgSs&%K-x3$3lA?!W*aYbwGjL0mCiR3g)McDhZ`Nzu|2!9WPo6U=A=( zM(Q~g(#Ov55T-%_D@gHVVkq2aus7|F(=3NsSQW++vTT#Z~wy`*bN-5)aJ@vbs2 zo>|Q3SXN67l+f4?CgZ#4+#>WzyBmG?&F=q}3^i`q^&=}*Q5r`<-cG{ijI(mZprI(r z?=3>lFGG103JZZu7T}V64}t9pg4*Y znL;%}%PQXy9MKWp-4S)waSHE@v+fM^>&%F$EAHrgbj98{AsJ`Z*}g94 z;-EmOLLQW>Jr{UOhQsCU@Z+>>>fluXTMAl509f5kd3@tA3ApAzdgpJ3e-lMA5)MCh!BM>Z_JMTO3f*hX6Jo+ND} zo{~K11s_=82txM2@6o%(<{xz_gO#KS_r~)2{>zRu83%b_PX+^1WGvE=G4m^qz>XHj zl3O5pR?zqECGNO~UiiVNr9ovuHdXy0O-ccso*{!j*Fz@y^lJBPz3hkGi--MMhR^V$ ze-Kz|bLt-`HA!bR?0aH~Jb+=CrbnKZtN@!FXe8Ji#(xYVp9Pqssg(6{+6Yj=pa*p0 z4ZH8iK^cn8jYcsY{yc%K8j%=3onv&OmF2l3n*;6g?hQIr0FN24l zt3WqUFy~rR6Db`L61^Ag7Tj1Lk{9}KfYX6Q(~St&zNqENph2hqxB!-M-;c7Jm%BH6 zirE{^D)g?3Wx744fYWI-it{es_}Z9It+|-Y zf)<;j2G4QUMFt|D-ObuQ40}5)eK>*IOoGo{&nfY*RS8dexq7h6W1~F%l%750196dw20d~WC^4h1TrNvqNfC^Ljugu^um}F zq4EXpvwCw3ler;>tt9(Yu*wcyL)(fln?Aw#tnp;5`Ir*8%GZPr*F>6F1fc5@hU-#> zEGhTb<(k$N4!J6B1N+9-vBDctz0h>24Xum~Vdz(#j~fPu8%EGg6X8uW!%YjH%{v*J zcZJ`LWUUA`ZQ4P%WGKI>p}slzY`OI|UOw9L{J6#Z`7!ESs@g`f=B- z8m0u@cr3hEEi9s;)KrtP*T81-^yBs3^TWMn=zgp4{tLtXmp=O<2`hV1``sV+iE5!I zZ#LctAJjB$4f-6s`L`v84#hGd#^tp&}5!SDQ&rwpRm4NA3i)mvu}(GpK>*y zaQdF|U9ZhIoeEW~Ek~aSi~N8HA4>TCV2?hOY5oDX-BmdH0a^K>EOG{D+Ew#CJNteF zczCAQ{Eg((nUT>qa@bEZqn{SO*q?VYf8K5WY5nP^&CyRg*tvtqxs%bk%MB5odG67C z?)mB5`{>*kcHu8_5omM~?0XTKc@f@x5%K9F>geJS3IC6&N1I{mZ`Ow6Ib!Pd{Lz9~=7HmS9)eD=V83)0g+%BzF`&|8U0H8{ z0PKTgYvI`8dS}3_c-B#QfaE{DJ`f;DiwbZY*CFhRdq_Ff60~59qIh&An{0)yWdkUI zrY`@~&62POYXH5}-t{k%OBgawOK`v7uV~SjNNp427QlIGPhDb?TI+`@tRih@w&@N( ziIxz)Kiki`ch7E=L?#kK(89st+qN{9eomuB5g8vmA$JI^DFGMaL!n-ov!bT3U&!UG zG7&qCp9AZ9+C)9xpyu83Q6`lSi5OyJ`P!>6f7Ow+Q*TSIa1#;`5$J#9*8`dW-~jp? z1+D?WzT8l%Z!g0aNkEok#w%}=F4_JmXl8uvjiS0HhWsxD`nx-izo@YRqZPf@_e*-y z7`DT^@CY28kgOj`czhflgkrilQ5lRKr(x1HDQ})pqGdPj8`2igt}9}*q*3D22@TNFWmjz`y4R`TAMs_K#sr() zpL409t$lVti8rs$3}04-7z-%)ep}pDRUegg(C^4vqBy=f_E%!g_8#Q8P=OJMc|U%4 zn9qRWY2dr#;+Y3t>*NPK$FmxGHswP$ekY%^I!`lfX2F-}cW_vg#ed_*w??<_(rBM< zi&X$78@>3BH`yfJ2XIP~Sz@o9dQGpU)w5Ym00)aU-I|AAUWG3a-jKBTR`jmOMO^fD z`mS)Y_a}^Qf~~iG>Npuv5qyPd_g){%zMz8qj~IGDgPSN}yb%VBFv&Tu5(5}~seK-LLam0X0*Io!5C2O83(;`5IG7E9Q6{8) zL(f(((Tpd_K{_~h>8>N3+4BK@0kznRlnzn?KpC!#?`50vt z$vQEXRXvy|H`teVcaC2vQiEQdFep+nCI2Vu{8;#YMPbM zoOdajliE{vC+?;uUixzkz7aNJ%4l%==>ZXPUslZUdWr9n%w?c}#wxwe?W+f@!H_0$boC^>+D)^V;*eI>wR`2Cp zJ0GmH`SGnK`(^1_*MY}Z?U(Ykt#|`KJW10Aqb9e(GwHjK$Z@lYYIfN$0AWYV9uANN zj1h?v)9HNn-}3LVmrQ?UdO}Q40ke`_ah4_~Rk&;`@_;?98r= z#gM%?I7Yv8<_`P7lDzz=c(jFrYRDJ>AXjgO>|B*;UZ@Rj0P6oipoWHs$2ii-dZlWH zrAz8#4N`p9hPQ1?ADjh43>YK<1D2T6;h+avAsZRLtY8G{k*B%MP28a$&U<3Mn9YDI z#X1LZ|6g8}ZU8a>Khf|1GxQ+;`^khFG2g{g976v$lL@(oqP|(J=IBT;4~JCG6V{U9 z-`L?i<&?|x2Sa4+OC)PQV%;i+{gj&IygGiMdS!0dn!%qFe1IYgVB`zTK8JpZgxi-h zZQ6x?KYGePPazUBB~6fveB?lA`hs6%0>d!(L%Sdj>?%wkE#=*!j`{H6LMvdFD#$i~gl0k*$Xt3X8fw6F&*}?^VL*CVuRGxO;Nu|j$ z0LU11S!ux+_axpqnJgCk2ogwpRv}0wFJqrft5jn^0S@y6M1ZCiT(C#OcUW#5ye_tM z_WgCH9;%OVe3B{c+_9xuqIyCP3V3>h@Og@ZsUo83%(t-zobr=VG>tEf#E7#nlMf9l z&FgAltYa0}E6MwCB_SI4Rt)i_Ju#Kc$Ll&H4n{UIKr$qZm&2K!WfJI|FdaT6BktY> zSG4W3zyC-xzM+KP5L9U-F!5X67CXdrWs&pUV^}-glr9j!S6Py@rCXs}V?;wESe>af zFs8F>MX4db?WbMh=c`lxyv|$wB4%`p`DRjGzosrwx73z3l{Ai?ttjh>G+e8PERGNviB=c`SMIW8WJq( zw0%_{xSFU?clAEc7q#^hN;FHyUWZ6)dgi^?8mG^kBX38gSqNgU+?^8Ox6k;5(n)TS z2xf3mxXxJImLw|{yox76yB8}q#hZijc{yLDv5yOtJ_$4^F)cpk+E9AJjE?y-Uhxwj@T}h!VbKE7N^$~I5hwS(RFOMBSYamN z_(>}=Pv6t=pa*_@r1rg?;M!oQmYl z*`-Ez$hYRbCyn$YHyO$zbC2Q*w`J5TaSZL^@Q4eG^(dq50f5FD4HL3*SpZ*7NK8dR z0asSZg7x%oeV%A5be+PEuQh?mM2q@TxBzoLxF1#XY%@T2%&;Y`e)|{y81t1R<47BG0jn%f%=^J+nc&R7i31eJi)N_o0oXc2H&uB3RQP(p z3bFhXSm(7OkMcK5B86A+Gm{}3rV!ICpbrPks+WS9XjSX!z!`fCReT$Ghq@_8b><2A zP(D@h6GSl`WmNWkcEjV%T0>NtU$Q;pr~AS_}tN?XHb{N{ZO=Jfs&)^c~AjA1Dn0C z!-kkcTkolM5hm-#8I(`AzZFr-HA>uO`c~y`q9}_5B+X@iLXQ|ZLYX7>PGx^Ev4x0< zo)-X&M7_Ql^wUl(N~EPb2;CH>wV>g(@F|h9NpN zF~62t{pv?Ta1F(=9^@CS(*Byhfc<#vaMO#TmaS7W5=)gxsW>SB4&!Rob*?ha zOa1iuX`(&7ws?3~ItKo@q3Vs0_|qM3Yp~@i4Tr>mo8_O1av%OzcKvzJP)d~mEHF;=t$KMtVD$`}5AQZuJgc8;xcJq}mqN;94%Q{^Iy;H8 zFH_6?GgCIgV_o9a?7kR_KqP})hoyX9L5780uw$HM`T!^sjpy<|Zp=+y%~8 zy2Wo*o$Dy53z3E~6n{|CDY_Sv^>U_fe?bQTe51o&pJVv{ylS(!JC@l%DfC5!-jW%7 z6-<2r@$$)Vn*e`4`3(gyRyW1Keln}km8rxl?_@7zp1qt2Vksn9Q!9FRgAe5YUFN*r zS1fdH2g<8>gDfv@`%DOT6rVqW#sWyr_@@xSb@r$y3(8(^EzVcFCAj(|SDq*5UB7u5 z@B1WufLwfXEBg8a1$BE}KR8pyfAucgB_`!SO(%!JQcdm+OMyA{mLkfJ`8z;hKhR$n zVY~GbE+<2ya2{|g2~jXY)xsU1%JZN@T=$>JT~VGG6)jEG3nU4hWm%oTrzy+)3-@(@ zqhVBV5(X~r8Z2T$el0`ugur3B5WGAqcrj};;TOk(_B-hyafu1eXmj)4jtX(mh+lAZ z)C}FHj->*^RB9Q76V;8lVYpL9o-w!OAYkgt7^maF(zdWN^Ejpfwj4Sn$$a&qD(Og~sW) zk4ykDr&L?qUdPA6Pq1bYJBo#pnh?Cr2^e{i$N2>V^Vd|`4Dp$xmuH*A&@Hfo&)p6E zFqaZ8<7+$;19!YbF$%KIPTPY2T787YwFAani#0gX%^c&@ef#}vYfQnfr(%Hz8#+GFH(7=ioQ2N;)Mn?Lnr%c47JUwCx@}}ltn0K z11+DcCoJz+P zblXpo9Gm*JmhB5FZAu$Xwxx&+^!c1++hWPew$3d%?2}Dmb$HajAugVug2r_iqJHT98O7%;rtgGe*PrszV>jg?;jb68-;DEn zCV^`O4odi76uo+CASf_2pjeeTPs(mv%nZRB*d81vbRA2rc*36Y=fnUaLz!w;5KLJI z^&rUkO@K~FVg^Aj=lC@|P93#JZD)Evg(<#5E!$E1H$~I1uH2T`yHz5ITG}t7ji^4` z{yxsVA6cb?aSJ~qWyPNvXZ^2P%6d~2HIH|UVYrI1xkZv*S7C2RyVx8yIuO!8k|9G+u+#2B1+V&fl zOD92be<81w6~Y@NQZ4lu(q9C` zO0^xs+f4R}jl1AL5S`RBHghpAttxE&97^~Hl@FFhP~b&7_60@&VWWEMxhB0&nw4!F zMMDEy4G7?>K;!2`Yu(*?Y5KD4#&?>zt7-!Gf3Wt}L2ZBS+HVK}5;V9&a4+rwf_srt ztUz%oP_z^+?iO4N!L_(sgF6LEaayb`P-w9hE9KB<_VeuDK6Bog^UmzQBQxLoURf*a zTI>2;48KSy=b8^fyUM#sV0jSb;+X1h@g>q67Au6oAtuZ@9o~Z7J!{>4H{IxO#36Ha z{nA|l)K za^^y zkLKZdKpB2vnfr6eA3JjQhl-y_Wp`L89$Lz3gvw$nnIDFaTDOTr-~BSZETL3@3Ja$R z0ay_r10fD!D7X}XpUz%(j3Bms>^3Xe+@}4>U7or{)2{>s%rCM}w+C5C8tQTy2}*>` zDeeEne!qj|>~0}XktC zl^xaf(jn}T`rMDHc*_C;YykpnkDgjhFHhB3XsOoyBA0ut`f{PjPTxS49AEu~o%T{M9X>)-^}JdiNrJi(9p4~Q(E?d1(W5xnE8E6u3UoV#}=PA0E8?waT2L> zWAGTSBS&mYP&R~KB}8D66)4-F?2LH*Zhij2?R-&KJtvJ+;~iG0AVq^{RHwwRq*Z<4 zvM^yj{YZuKnYegcjS*YMal+~s$$DaTm3DU9DR$<|c2C7nQio6P%I6%*?FBq_q-}&@ z7t9uv{@0PjxR0rXJ#E=T@GLB`G>{hD0XjuiNahf{T1t-;E~qtKo>_FW!0l29{c>`a z=kqmBJB(0Saj%}QNwN{41RY)iS!CZK0i^QYDwO7QDc)io-o;oMI_-Q9)LvvL6K|Zm zi8~rv^Ah!*Kh(3feuJN4%QsiA?yG|2pG4!;;x3VlQVIbc6sNr!vDQ8$bF=;_AF?2GZVUN9RNww+ZAZ)w7QO zar27y&Gs_$XJ6xU3B`l4Bu0thh7a%KgBY}n>f)6a&_&7lOUaiIfJC>wdvtJb6&4kJn_;idDc%p@8fUEENSqT>TG~F(2#c>T*j&S<}Y=yLV0g@Hgy?3 z!`9bH#$LPm&&<0zVF(wL=oa9(7yQu+J)rh`yHaqZwxW1}eWp(K(*(EZb8^MJcY&(- zm)k-NZt-zx?u}m1otyssC}m;CUZ3X*?M5hS&d1gpoVLp>(*gW>LE zF|U{Hs=qa$+eWHO`m6%t_X76m^ugWf`?a2lJB;4pZZa_BOrr2is=kjtnE$x%48eG= zAa}0x^jszQT&?h2xMli&8*cn(WYasOh?8AE zD|Ac>TD$PqGo6=D=5Px-2j9#NQWA4q*!QJp3FLQX3;(9pw9*h{8C_0?#NU!H7ttT| z4`4O@ihFzM?Z9W&u>|4&eiU#KjMw}Gz5{Cba?+HYc*7w!QYZ87vRLl=yS)6V?L<|P zR8nzDnu0>rzH}RD2G4@Rb61)yuj{4~`F^xK!}%G&?Io7?ICZBG-461xh*kpEWZ1%=;p!AAQlv6?OeMl=JB8!vZPNI2gI!y^WbU zvoY<0Ls{9+qQKygYARyHM+o}e*&%{i1f@{_$81D!9TK6G$ozQX`O~T@K=rS~ed1EJ zK)x8dbH`22?zli4rdjYCKtUoU7gol<|$)&uCGuZPl5ny2ExaK6cz{mg5bU~GER z^SyTrYukJo%(Qdw)qgxYue^qdK%MVg>Qm;1TE<40m69^ZJ>DD!=@XZWWs?gzWoGWT zIW`@kY(Rz&ofgFR+*Knd)1K~GDhJ}BNf;?cvgake{yUlQ_0n_IUNWZoDurH=&^XZ^ z$L{I2P2>)kxA7tPyTq*z?F=k10nLKGKEB>-8aOO=DGX}y3y%VFcCZ&8aw2DX*u|cG z1(Gf{096Ddyr!f9tdIBy@m}sWsxk(Hgw&X(aq$M*7NxWcH#i)1<5Y5`I;?{y;U+a*=1p1G=AyWiA|ElLeX1_`mzBk zF(Kf3KBvaw9X}u>Cxu1%#G|OTZcl3d3t6kI#(76)KIaxFB=CgW~q+hG3EYu*9k>t<$Q z;!1=7*f`U^>Lqb>x2LD65<&{)q}VMJxcRC4^5Xi6wrpuhchk&Dl2xRf%7WK%Xw9xy zaTv|&)MxJ$lXw%xoSfN)u>p9|%;V16>ut$KmL4A0$$Rdkj-L^mvRiM#DYF?=2Rdll-H9lL^1}c)gRuk@22W z<>>W(ucIpS;)9Vx?~A3U(K0?O4i&vVYi^@5FE?I(?S1(v7)RE3E1ILvcPCj@*6(wc zL!aN*!f09l{fde{|8Mo9vH?f!U;6@nyv30VJQ?M98+i6kRW9h~lEd4ei%-#VudcpU zynS`^V^l8q_Tnq!sn23Vme#M6#3x%}8nRa^JnlsZ?CM08yBp;@R*C*A&QaE_$LEvkD(^dRWX#Mdz-- znICIsKgOqmwv5SJQzdrpP#Pvz#mDL&rFkfb;At7all9&1kASk6Fiqkr9AhxXruC4&bUlLw!X& z!Tcd7Qjuoil<7zalkJ?NQwvb(n0#E_P@k_KipeG%3sq#+hX=xJ;*MV+*xOE1!TN;K zrM6*@Y!$FUTr-d%OXU|@z)y@+v=zyEl8mtF0T{$56?25qlk$qUD@^mgZ`!QSkhRrigsBW#CG*Y8S6@j(L$7@-MBrYL zri_GzyZ?&fRypo>?K$ojyJgC!@Ceh~_!UjL5{0@Y3F93Q%owI{!n&w_ayO?@%-tiv zYDX!nJnXO8%*bc;2%S77dq^xY%W!BGK)zC&gEJSe=KMaILpD?dV za7?1u{XX#JxT0}By5|{+l(p9L9d+P-Hrs0oZ!Km!Djmp4?@A(T&>kak!=kI)BC{Fhn+O~vBa{st6cfwV7D~NZy%yIssdjQaTe8Pik=d^ygqQP z;5-PhFe%>N(OWKprp*J`#ci7T!0)g0FY2ZCZ$pXe+CJ~{3mW*yRC*M7Rw22v9>76BoRBi z%_v_a5MSb>2uDnRiNrHt=82dUOMzyh@7On%?MeC_n(LT#)0l=sTs-*(=IEuK;ixi7cU3%?T=aMO0#g} zIS2A8p<=vKezW}#UNqGw9rQFhX{;`nHrtQ%$odDYd?u9SP|%ArFsNWVX&n~zoCFo^JiWmRS09<6L`1L)Gy9Txlse%6av@9kPF3Tybu)G z8Nk}rhw3@ieKif=JK%xPr9JPi6CJBNI(Q(yhQ==9Bgo^IPk6w;-khF2blo&Wx5h7b zUe5*+zzrYN`<)4N=Al0i0R@m?r^VnrDh7x5F`Er=R5s%C;1fzq+^R8g;R|x}HlCg~ zjx`80#S)n2ppF`lT=PA^7E zE2yUR$s=L^UD2e=*62{G3CAYa0Ev{qwz*T)Otd;QL@d}g{#mzJWu^M_Z#?v#W2JPd zEIVQ zPyS{`i%#k0RPXj0p_7hYPgR~m>m8BJYw+sBS|8dbfN3!`?0YC3;Dn9|iA*;7gzyfL zQvG_a5zTb{&mc9g!_hlt`W6N0mRq&4a7z(YJUw2e7B9{B4@lK);E%o@ju+ZKde$s< zkWQJWG&B`69!=a<+@tPrrv5r%UiQsQ3vUNGZdzMyUQ}A?Fd0gcN%KvufqKSlp0wak zTbATBj_XYWJ^By&#**o3Q&~12Ot4bNN7kgyH zH1V|oRIjWc_%w^wk%qaB(v*|9uT7)~5*A℘nHiW156x-6g}}ER0B&+|p2C>1=*| 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 literal 0 HcmV?d00001 diff --git a/images/logo/pmd_logo.jpg b/images/logo/pmd_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b94df4507ffcce0c82043987ebf06d172b368607 GIT binary patch literal 23211 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 literal 0 HcmV?d00001 diff --git a/images/logo/pmd_logo.png b/images/logo/pmd_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bdff9acc5637baace4978752fbf7ac391167e899 GIT binary patch literal 11778 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 literal 0 HcmV?d00001 diff --git a/images/logo/pmd_logo.svgz b/images/logo/pmd_logo.svgz new file mode 100644 index 0000000000000000000000000000000000000000..3250b51a592e7aa0e08ac4f4f30210ba9d39021b GIT binary patch literal 11112 zcmV-uE0@$CiwFP!000000PTJIa~sFC=I{9{uuN@jTnh~Q{h%e?%C&PJRdI4Fc53%m zh=e30Ai)bjmgK*FzwdO<0GJtyqC`9922$C=^vv}1uhut<=Vv$TvwwND3ITr@X}-TAjaeB0fespe{Tbx=(^`bXbAnv$FO z^MR$yPi+yS=_@+Cf{~%wMh+vzPPBzrWtB-`=1(H;Z@2A78w` zU2k@?SIgC+RB--geZ4r}E$`8Coy)a6c)i%oujae?{@J!9NlkbJ6nOEM zZ~v`a;rjCO;{U8Sf3KJL!w2Rs*KaX)XD_z-a3wi3Wpe2&?N+pL>^T&R-4hZKV zJvtt&+rGvTf<*nx;&!vXdV9&%ACJ|S*Zu8syW1>Zz8$T5v-t0~OVsqamH%nI z!@xXxwZGrp-Q+JFj>TsAqud~6Y!9jza;fA|rOx?**m-u|3MIL^TD;os!SDh;We>;V^FH?V$k+7v*L?T2 zXXnSg{`e>k2Fd2^?;51`dw3?^GY}(Pd?kO5yQuFTq=S#;d&c1tKZf!Ayg_<6so5Ov z9K}zZeLXh&W3+~E#b1ur@U{GSv}PW{kfQ|j>7!&G#*ueW(5H@)c|49x(ca6EDf)+V zTT$U7UbMa=g02cf0$asE?C{^lizpjOUy@8H= ze)e{|*nCgm^5>hsZWsHHX>?wj#(L}avg!j$ja7|L#_xygy?K6?Qj?=0L3YogR6E;X zh*TbY{fEu`W=r!LRzH8PfPa6drZe-^e)N8ZaUyqqY@B>P8i84CQt(FWqY=>AHQtBg z0dT(YN~8FA0Fr7jRN6jp_@UWu;7TQ^miHu^3OI+|-4}8R(8_()dKq&VTiZll(JM zqM)UZf~nZ!LHqAUuu^_?Za}*5u6|rD-j&*J=dTxH ztza~Y{Z~Kpa=p1)Y}#8v{v6$^2F>0GT8o!uw_YvK7~*K%8e^|F%d64yx67-=*o|%$ z*}TDrj_z*X%&*q(V0ZLyzFXel#;m$WbvA>_>l3ZVRBPW=LO*CbP_7nk->l!UC(qAb z%~#!YNGbcVJudIQA~$C*U#{PCn%)lX|Fm9TkMxZ!tdncB>%idt9tR_)#)Q}jxPGtR z?``4!tq*tKx}LvZUN3)IT#dEp?Pde2o2}*_7N80Fr-gib`jYOpl)B!KPUpMg)t>H+ z^V{`ySxT)+2jv`Hslh6D0J=WEb{)rS_xcfPH__fvyM2t>{av;D2i2~odZczWwQjWX z_y|qcMvXQ-x$qdZYja2K=}`v8=rmTlSC3M=PG+=r(+TaNtd{cEeZjI>zrDR)Uo9#x z9>^}a9x(7~{&KN;e)hxsH5J=rw|Kv6g;>F^SIg}!UcI#B|YTw!{c9(D3 zXV}Kse6@UibFtmcH@mOdrK&eB*rTski`{OqnbmGyD181MwB&KY1~hQ{@)+Ip0z|aE8};&xLm$k zUJ5I8PffmCTrJ;T?N-;|2c31Qn)y z{aHL1?%}~=Gi_UDyPfaej99Wan9$vNGlK^HalU)ISsePg_$|JN9_JHl{6ehpcuc@p z^~9*gYNwT+8kZVnee{#d$xJtXG4s=zZCnc4PG+i!Hm0Pfv(Q+touAAMB`;vebe0;Q zeNKGM;g^Y1-VETI32N}l0Lw{TfW={g8ngkV%xzJctR}PA*r>b@P z>qA6qW1|z^!viWRtEag^|6}G8AxCRH^ciG}^iZMo(M(MfjZqkH)P~X4zAIU=o`7MZ zsW~D1YR3oFvoGy9P*!O-wP@1>&{5k!1Fwn7VbEL?F%pI!(%R}YDNWI63Em5tm0?!V z5;PzyOkgQUfY1%}ZaApWlq(}hi21*f= zbqpd!Qt+TIFjb6Ri4^fp1x-%GbQ>>BreNf_g?ut-Y7AY0#vr-?5ve9t#w=^fF7yM^@~G?R zhvx?j#9ojg^BDZn1WF}5%n_R$jWa`LMR-BpCzZk4hJ7fL#^FO-8F@+~yR31j3eRZg zL>J^Dt2{(!&QcPfCz1@c(;>8i$pp%?V4NrdMe&&TCHNA0W&pJ~$QDBq48>?L7_EaB zX5Aa*J2A;v;6qLt6RpysUsOmYwMFRFtZm?m(lM1mVjn@4Wvn#5fC)qgG5OP(SbK(3 zdR&8>lrMu&>X$i1?4e3+^W3E0U`k3$NeS{IMKWlWy@jxrE?T|-Lic{!K3~5=*=tgU z{!=fwP%kehfhG~iOOMdk*gRXhizyw)HeygHKst!kkMd~o{0rk zHl|ooz&p_gT6eKAO3{+j9)zxw*lh+zPtg6>X{We>fp$>b+GqH_g8@?tXKiWwtgS{2 zjYy{<)M%R8lryVM+KXudZiv1$cVN0@A6p|4!t&8Lz@IqaiE;qQKEi;u!T||(uizOg z0-t6$tZQlru@k6ILh@pm(4!s2iqBRX(P=Q=EfE55;;*Peyr$$Sn{AdCL(z`4NYsy^ z!CmcbT!Nex6fY_SJ%{ccSm*m!TQ z%EPt~jdLMq^c;^+xv?79NK_~WTusk62FJo!!3`)eTd&DtFtvy%G+U3xqhZ;}AVl=D zdw$lwu-bnX5&{}k$F52MXF!4 z94zRFlxnl+@n&+Dsmf4z8v_P3gXW^P;3yC1?Pz=NXe^?VA~Ix%(j)51lke||@?-{` z1P#M#3VH&2L?zCvT)~mfA&RcF03}(lH)c|NS9C53PidnIMvU4*!H9pYIInb8N+3L) zN`YuD0~`_H!I(4IYw?m{*Z_Y-N7^9X03tFa>Lsga9gFtt2o$fRNkJ1Y$&1R1a?C_P ze$U0V$crzM>;RRXq-SU%_}z%6Q?-#a2dMkdXhi^L@JnlfeSAcW07!r&ZbEcbszKi) zp|*y|f&E-di25+55MnLr)2Jd)<5B=x6eJgvCs>Z&D_uoWL4Bxz9ygsev^70_8rYT} zrS~-fgL9hFo{_6594G;;42=Vjk5zouL7{6Cf|8S~=#Gs>#vI?w#TQACDnM4j2oYo+ zAX-XM5jK1r7K#=_fMQCf53>-;EZ}i@F9Dv$S|Y9-6I|A|+Cs4OP1KrJ4Fn%42Y@9p zU5XGmSM&}9jsfLp02>Rz8O}20T8fZ)ZAqes6{63$O0=jWfySyq;^?Ar8k9xRinazk z?h~)8Jhym56OrHn+Fuq>1C$#BT{QGKS$ahSADNV%D9U5ZnG-ax0ZurLq^B?;_5wii zor42Y1V*8ARy@P5omX*zVBmZ$u!+7T7v+%I6bKXR#r0V(TMaPQghIH?BrkjSLtyqlJSy$eM%totKc~~*ncP#4G7Vm>@ z2Nm=>)_qP>Izh)wjvCjM&JKHWT=C->s_x|0e5yQTAWp5b{qWLQaA_D?`jp7hAh0wH zD;-6ZY(J>f4=D{IO1>XZ@?AVh^+HL5NYXulq}+=mrCt~*?4wBiAW}bs6nhb*FbE)x z#E%Z6M`k2;GzcBJe&i_k14p(WH?o7U(LvN`5HzyGn9(p~)Q=e59WE+_)(aQ)qDB2s z(I8T!`+*`mh!Y)!iTY8Zevs%WMr3;dBJ*>`huq0K{!|62qaO5PNbLOqf>ezJ-p%7n(tIdM-93^t{sSfH zDW36EC8>|#cMUck#4|?18DSsI=m#^*VJxE;%CNZ~$+$m|VF!VXK^()3hB3lO7(+iK zig6IcFo!XW*bia!A{f3Gz=*y0MI3}L^do}8Q}p7ga$r)-#|2~=a9|z@DBjJ1`Xe0Z z2BE~yh$IdeP=9h9ahw6eCC2IF}QZx#Ty@L=u zW8$GkBR!vpg0`WRk}WH73@l316|AHPnk)8b8ddoaV^t^A2%TpN;<`l80HcMOB>|@m zE0+AYnxG~jIfer9mdS$lN(31n&Auv=y*8Xdgk+OSbibCiz6nN9loF83>@``ck_q$q zEEtWLO(kVqo1(`yKqrST$Do6Fv$7h-PTMG^#3$SSmQgUVD(@`$tCyX7&K`qGCKKig zDmm~9_CV>A(@Ttlmr<#Mcwq^QwN=(glO#uhsW8vqLS3)D(vA@h;+TWXY zul+K*`{eg|s(j-kJ>5>3cDhe*=LhKR`~`YD4)yk!lpBKoed(R5+djVPJ~_Ugst5{+iJdAP zr|q^u>f^NCUe>M~ChZ>O><$xlhxxjLblqXH?l4z(kg7Y#)D8PYUDZ$09pvcReu}QS zH$!)rpnH^`+fUE!XXo~lb9=eDd61f`M>BH|6LUxMatCR-d61QxKP4&m6LNBoQgTf{ zBX^LGJ4navXXEBB8CUfZas54cxV2b06x`g)zfHaLThq(FwY}t9x6i#T z(aC=DZ9n%`-=BKh&%EvD-Nu8o+hNx2AnA6PbDIY#w{9%sb|m5UWBInRpKjaFw(TX` z`lDQ1-^;W;ymm6sZJupE%T^DPYzH~EgB06G&#(}5RLnpl#``s*`M5^Z zkEs&FFR2o9PbKR9f|UMxl!vOszD9I?jp+Isaj+ESpIjyChwDW53+TjCi0P^7#Oy&% zj@gsH;tOMB_UVjcr6Uz7NspHblcsh(`7xGLM)S6;2_dr%Lvi9#F9> zcvO4I&^sWr2sLWc5k0oS7@=G_CnOwbrVzCgy<@ob715aNzuE>gEqCN8ste?q>B;1- zMzLrnrtfK{0VXlNL06IhUkjiqpv&qq@W4$8#So3K(M5HG83lz}fNZe#}4#5=J@3&yoe!EzA%kVT+~Z0EY!`dQe2(Kf@m(DzUX-9XNLc zWJ7TIV9zQV`6|jNSUjD@ zdn^T3ObZKQ({<;`vMdBYl+VJeWl0OEJQsV;i2s*Aw5-}yRG_|#L%Y_aF7XE!L~5`; z?kPEI0|L@erAt5oJm{pNvc)E3PmH!K&CzumF{P69MT`4&R>W0tFGH4y6~y)(2Do95 z#Z)X%%RTa{1uB9V3|98+3OtC1LKQY$u}LwmVp_D8ljRw36KR1FcQ33??@<5~GnUo@ z^Mz^_N?<2@E_oI|d&;d>w)4Al*>4U!)u6ZCoT7h+Ap`2jr?7d-X%zJ zyzctK+^k2(lw223?C^+CvX6H@)*eZL)R#%H4-s9)Ndw_-Bj1m+~L} zzb*f@zX!Tf)XT!EORanALrT(P&Ojgngk3(MESsI0yLS`lb*giCZ>e6n&P>R`5R6Mq9%DBg*!}Q?0xlqiW=32X68ZJo^XnukzhBm@89xvIRUY z4(JdjK6o)J!;4FfZvgL8P8z1GbH9BE#;iEGZGjEt+oEw2cVKQ)(6s|%Rc&+R1e|1L zNty%dm$;p0TGYNo)vDU}W{zkgcPrfn6&BSTc*d?1B?O5~%+Z!8P=NL{{^+hTR!L9! zZy8>O=&dbz1tcx}5hoQ0Q^v)4;v5J`&4~k@N9Iq+`d2=$xc5S&Q62$)rpXh$!#0TG zwJ;E#k)dV_r5?DA0?cv{JT*0U#7GgcJi0vf6!s9+6P}st4J{Xsdms>yzRH+K1=dG0Gh*%IQ0XK!y_r%ZTCnj2WX8n`-{j;u(uj60)PO z;aaTBgb#W$oJJdXY){~XLDQlnbK4MQGqXs*D%qO^L!d4CX<(6q4G+#YyvLmXGQnx@ z5S;D7vEzsAEpN&xWFwOGKqkK3tbR8*2w0`B?y$k-yZ^z zKmVD4wkNVi1Qu7(-$p|9u91yoIF$)hl!CYeH8*pgP_1gor{Tm4%@0cM_zqMS?Pz{P zjyZvGBASu(;*&(vQc7~rlC+nvTV330V0eMq;?bN5foNv*o3bAcPqgyIYZk@x2Gtsw z)4^j6gi)nsQyTe-&W5%C0+?T*TJWMKRJPH#VoWjZh=L!`m|+MAeLD$sCwfLl*b~Cb zEE{a04_q}K6Ys_{rc^0W2B$3;9~&m6SXl?o9^>qpV#ZQBC-j%v(fTwrPOU#&gL_{&w|`iT~o z^j}hJlEPg81lC>!C+#HTTcx6*eJS0ATmt>YCBTy;oKs|QeZvNh?^reTnWsoQGKW|< z3r=!4m@QN&eWx2J6z~;QvBV&Q3fh72XPQUF7gnBzMNh-LQIc>4J60@I`lk4(jH{}{ zDjp_@4ntE1-+h`EVAkDbeXZ9mR|dQGE0iu7`dsC>HeLK#1W!y}b9Js}V!Pn8uqn!@ zqoO49l$uJiGf8dIPCDU=LyaC@If9^I)zS-@c18elkTfe;!%h}=1K|)^5b7v4CJS4E zghc}}n8?g5DiWjV&x*`z%5;GTW;!{*Ox|`vnN&thmzf3_2R1=W%8xh#1eQwpBugB@D}H9;gei|7QOt}>Rp3eqJ5HvdnJLr}I`Tk2lI)h87c;@ih8rr7 zgHk1>DwCPZnU&n4(-cI)IVOHfoLJLI@FF2#wn!u}$1Fz~7CwqRe^D-6)s@A3&TMs+ zZ(7V}@mIhaln4#vSE_yjwrH<;AvLr#LR{x1xsS(P5o*RPgI>wBRi$(4v2z%anBG%F(H0G*h&BCFmIVPCNMx8%Dqg zf77eOU?mM2%$TR76xV1BD8qLkjDTgu8iFjxca+Ys+Jck??zBfI7xxNh)~ptyfi^1j zBwBb-WNGSnrf25-gVr2121FV0JiZS>NaM{hV>~Jnje@+$)=eFWfHs5|?nY;(1kZ*> zUZPB}+>#tcKq>S*!9*0S2NvW=Kvfdxt_p|)J^~mDjc_gZM<@0LJ%ZVSY}u2*OB`0O zof16>wPXbR3wtDFo5BrcC-38(QgNsX3OJz57!9woLN2 zOaTtXujbiYTk^hblCfbTIm6-Lyv)F?O^mISgI5#A593M^Z80AarYBXLgT)FS=l=bm z3nEX=CE>h)xe7(cFDNZs(Zg!a)9pdXisIbSi zVjPUeC($Slj&4Ia8a&Z^;!6sGp}#WwV(@61g05~jNE^XOY@WI8{0TcCi;-@EFKgns zU7!_(VR?Rm_(wnx*%kaj%xh9{ILk&gNu+d?W0oLwi7E`e?=gZ>Gj}nJvLhx1CfzzH zgU}6_#9Tac3*XCFx=pMaegpov)$p)?P_nZPQ85y8`gwTciJ%(CV@E5a-bgBur_72)5= z{4bsy4C5}rYyb&GLw_wEgT~eLJtR6If(I+Y>|uR$$A?V04x(WQ7&8RL68SNkU{;XG z9MHxzQdE$3QCEsEs;9}&>7oLfK83b-n(7U|L62H9>bMffrb&@?2|*~^_wnp6%1VzB zHHs&oWWyyK+@#Y>ZU!4cdm&@)$S%C_23oO3R&?^RIWUbhNJZI(QUjK00X37;f7AwF|Y4-TimG?;_sl8-2NkqQ%|%XzcuPE@B+)D|w5f=}lVMVT5`iz4srVjcQ{3p~ z+-`}3;ZG`!2=uJ@7GtQrjS2HClo%!WOi2PkBsh_v7)Hn0&SliJ@1%lV7}dyuTh%f# zC}ues44sfe_n21X8I4!ff6w0k z3-dLQTr@WX;w4AvoRup6qf~%xF<2Syj4%>p?Fha1^daOZ#y*%)0)wIYak}{e8h6yO zW^cv|So((LmPvBJBQ!xE)uWD6EB+$!thP875F2xusN!j|M3~>10F4g%siURN^ABM_ z$o#ot_*S5A8TOK6{!+n5HVJOgvSak#pCt1^k`y4L%1S(*#LoY#5|n0#_^2;u7%C&d zH)9oaDN#9%76~^dC9BU0I^?21F=b3ybc1()KZ@RD~!F;p$Umi|K! zKMfRtS*=TzSwrQhB-AFpw8HlgOrBBR_S%=BEaY97vg|X<5W^SI=WCi|CwD(bhF($+fu%k^oVpNEGh_$Z{H~7c9ttqMzH5 zgWed#1Q-JbK$(nTG*w(Cj8-mrA2e;nDPVFmCG6#d?oA~ht^ue_4}+?lK&Dd462yn} z(Xk{S>nw5l+QKrXOnnicA!!}JV2t!LyP+gh;GPq|NbyptV{Iqn0$Vzo63q|H^k+qM zL51RmWfq8P=dl$|^j_ppO0uN6DsOq7s<38A#vV8bdhIEysc4xA4fUZIoTu}wb*`~fo>?TOo}q4Kn|n!;5Kpq> zf`>@Aeaq;@c96`Sx`bI1Y>5Oe!{Q-<%c2e4l7$xdNh{WKxn*SXEd^{8e-uO3xU#uc z{zthq!ii#}K=er34R{MkQj8SZ9A#FO$Vk=tTma}tF!cby$1r_JqH>7M2FimIyoazm|%P_r} z@{loM_$_FJcoNL*ZAq3g$&mu-`3$+_CzSz*N!RvIkNK=TkCkn0Ok?5`)ME z3YN)r65on}yj^r#>w+!Ld*d=2mPit?)xBe)EjN4@vmC;PAXefnGFdLrbc zN6yKTWJmPs6@Va1ijII8U!0+`Q#SKEB9{u=7&#nF0pdv)E0;p?zfaDoX zU1I_1ARav;<&pqrc?#^L(qHTIl^wN}D*_s#T2AHQNgri<1d0|B^Ho-gd>Qej=4c=2 zOZ^D`VvzcySj*?HjMdkkT$?*4~A%;gV06*+THkU56{A< zptAuu^CxU}!e%FIcEV;SY<4d;8v--;3Ak(omfeHO;%9)eAtW>RAu=}vWDmh(132c7 z(O3_Rxjq!r_am_Z5Ht7TumKFaABFvsfUp4uy9a^|5ZL_y%sm``eFFSSee~t-17CgY zN-bizv~ymZ1#C%kmRODDW^!b?vG zFPVQfy!4<@Qm|hTO1d|aHS$RZlk~3DnesTFo3HjQ%wN*NQ%2$`Bk_ddPAKk#;!Y^; ul#zJKNIYdEo-z_o8HuNi#D9W}#PrZ$nJhVbcE0@)|NK7%nNSao(*OYN>uOd2 literal 0 HcmV?d00001 diff --git a/images/logo/pmd_logo_small.jpg b/images/logo/pmd_logo_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3a65423eacd5fbaa572a1e62b37aa914430ea83 GIT binary patch literal 7475 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 literal 0 HcmV?d00001 diff --git a/images/logo/pmd_logo_tiny.png b/images/logo/pmd_logo_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..d7267fc3924b63ff6bc3e96d4d43106dac4921be GIT binary patch literal 1247 zcmV<51R(o~P)>?)UASBWh z7_P3a@E|4R6d9YFn;97y@gXO(v$Nh99OE4!x3{-h8XL>Y%ZP}G-y0yq3lQ<~@syO5 z@+2zG5*N`65aAOTzX}e)3J=l?58)gk!3+@WUt-P@7U@Dp&=VJXdwUZO4&xmnzY7o0 z6ByL4ZTAtvS?Bl09E?jk3{4H3%`6~_+~$q*FiA0*}x z7S9tG-5MU$6&hJtS?3=l%n=ph93kZ%Bjg<-;2R*;78}S96U`D9$`BOW86DLY8q*aS z`O3@B3lG^C9MKdQ+!-F}ASKur9Nroq?II_{4H5AqDZmR4+87#tste zAtv*bmc9xO00030|Nk5u9036VGBPp*1Oy}_BS}d~6%`fr_4PhJK2T6l5D*Y8EiE)O zG(0>!{`~wQAt43^1`7)d|Nj1LY;5Zp9v~nfJ3BiL4i5PD_xjq}FfcGTH#bK|NBPap z_OrC<7904(#6(0ylzvw2?z*MQc^K7F)J%8`q9$p zIX%V2#V9B!?(XhlVqzvHCZM38R8&-OZ*T1zAnqO{*Vos;z`#vSP3|5eIXOAxgIyxmKCE(!T z_qx2IqN3(VJb1s$RY3lEu89uy2sEeVSh%(tESV?{5NVSz;H!Mb&js30f^BDR)- zvOs7~&For2*dLa8_W3=`FuMf*gmX@S9Z|hx>e&`EQqRt-cJ)||gj-&emeYkV%0VM% z(2Rn-3CZ?zUNer7s(r|_m|=>sKow77GDR+h_5HO-3T}^=l!TRN%@U%owpn0xEs$Nt z){>vt&)!p}bR%-K#W)u^RJ1 zbq-_RktBOR-()VltgHml>kOdcn845=C3$h4ZXsV#SsFmIKZ#0|f>KJ#j2-AUKHRD_ zBoQB@xS+IMT86PB-Ddn9%5+rDOOqijjBV-`k5Yx|djVDZ{VAHJ9c!9g#7j|j2wT6& z1KGkhd(Q#aW_*>??DOswFcJ2!A!iDkr)FuuXxX%nyY8-2d;`;BZi#hk#^wM3002ov JPDHLkV1gEW`H27k literal 0 HcmV?d00001 diff --git a/images/pmd-logo-big.png b/images/pmd-logo-big.png new file mode 100644 index 0000000000000000000000000000000000000000..bdff9acc5637baace4978752fbf7ac391167e899 GIT binary patch literal 11778 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 literal 0 HcmV?d00001 diff --git a/images/pmd-logo-small.png b/images/pmd-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..342834742667a25b45a5a22ae834e13c5ab0d3bf GIT binary patch literal 2015 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 literal 0 HcmV?d00001 diff --git a/images/userdocs/designer-overview-with-nums.png b/images/userdocs/designer-overview-with-nums.png new file mode 100644 index 0000000000000000000000000000000000000000..2851fd8ae667028af3e55aefbb9e6f821ac53aac GIT binary patch literal 132019 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%0D`gyWsJ%}Azt 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 z³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
+ + + + +
+
 
+ +
+ + + +
+ + + + + + + + + + + + + + +
+ + + + +
+
+

Documentation Index

+
+ + + +
+ + +
Welcome to the documentation site for PMD and CPD!

+
+ + + + + + + + + + + Edit me + + + + + + + + + + + + +

Overview

+ + + + +

PMD is a static source code analyzer. It finds common programming flaws like +unused variables, empty catch blocks, unnecessary object creation, and +so forth. It’s mainly concerned with Java and Apex, but supports six other +languages.

+ +

PMD features many built-in checks (in PMD lingo, rules), which are documented +for each language in our Rule references. We +also support an extensive API to write your own rules, +which you can do either in Java or as a self-contained XPath query.

+ +

PMD is most useful when integrated into your build process. It can then be +used as a quality gate, to enforce a coding standard for your codebase. Among other +things, PMD can be run:

+ + +

CPD, the copy-paste detector, is also distributed with PMD. You can also use it +in a variety of ways, which are documented here.

+ +

Download

+ +

The latest release of PMD can be downloaded from our Github releases page.

+ +

Documentation

+ +

The rest of this page exposes the contents of the documentation site thematically, +which you can further scope down using the blue filter buttons. To navigate the site, +you may also use the search bar in the top right, or the sidebar on the left.

+ +


+ +
+ + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
Getting started
+
+ +

+ These pages summarize the gist of PMD usage to get you started quickly. +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Installation and basic CLI usage
  • + + + + + + +
  • Making rulesets
  • + + + + + + +
  • Configuring rules
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Introduction to writing PMD rules
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + + +
+ + +
Rule references
+
+ +

+ Pick your language to find out about the rule it supports. +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Apex
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Ecmascript
  • + + + + + + + + + + + + + + + + + + + + + +
  • Java
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Java Server Pages
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Maven POM
  • + + + + + + + + + + + +
  • Modelica
  • + + + + + + + + + + + +
  • PLSQL
  • + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Salesforce VisualForce
  • + + + + + + + + + + + +
  • VM
  • + + + + + + + + + + + + + + + + + + + + + +
  • XML
  • + + + + + + + + + + + +
  • XSL
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Scala
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
Writing rules
+
+ +

+ These pages document the process of writing and testing custom rules and metrics for PMD. +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Introduction to writing PMD rules
  • + + + + + + +
  • Your first rule XPath
  • + + + + + + +
  • Writing XPath rules
  • + + + + + + +
  • Writing a custom rule
  • + + + + + + +
  • The rule designer
  • + + + + + + +
  • Defining rule properties
  • + + + + + + +
  • Using and defining code metrics for custom rules
  • + + + + + + +
  • Rule guidelines
  • + + + + + + +
  • Testing your rules
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Writing a custom rule
  • + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + + +
+ + +
Usage and configuration
+
+ +

+ Learn how to build effective and versatile rulesets. +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Installation and basic CLI usage
  • + + + + + + +
  • Making rulesets
  • + + + + + + +
  • Configuring rules
  • + + + + + + +
  • Best Practices
  • + + + + + + +
  • Suppressing warnings
  • + + + + + + +
  • Incremental Analysis
  • + + + + + + +
  • PMD CLI reference
  • + + + + + + +
  • Report formats for PMD
  • + + + + + + +
  • Finding duplicated code with CPD
  • + + + + + + +
  • Report formats for CPD
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + + +
+ + +
Contributing
+
+ +

+ If you'd like to help us build PMD, these topics may interest you. See you around! +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Developer Resources
  • + + + + + + +
  • Building PMD from source
  • + + + + + + +
  • Writing documentation
  • + + + + + + +
  • Roadmap
  • + + + + + + +
  • How PMD Works
  • + + + + + + +
  • Pmdtester
  • + + + + + + +
  • Rule deprecation policy
  • + + + + + + + + + + + + + + + + + + + + + +
  • Creating XML dump of the AST
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
Tools and integrations
+
+ +

+ These pages describe solutions that integrate PMD within your build process. +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Maven PMD Plugin
  • + + + + + + +
  • Gradle
  • + + + + + + +
  • Ant Task Usage
  • + + + + + + +
  • PMD Java API
  • + + + + + + +
  • Continuous Integrations plugins
  • + + + + + + +
  • Tools / Integrations
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
Major contributions
+
+ +

+ +

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Adding PMD support for a new language
  • + + + + + + +
  • How to add a new CPD language
  • + + + + + + +
  • Adding support for metrics to a language
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + +
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+ +
+
+ +
+
+ + +
+ +
+ +
+
+ + + diff --git a/js/customscripts.js b/js/customscripts.js new file mode 100644 index 0000000000..8c9fb4cb9f --- /dev/null +++ b/js/customscripts.js @@ -0,0 +1,55 @@ + +$('#mysidebar').height($(".nav").height()); + + +$( document ).ready(function() { + + //this script says, if the height of the viewport is greater than 800px, then insert affix class, which makes the nav bar float in a fixed + // position as your scroll. if you have a lot of nav items, this height may not work for you. + var h = $(window).height(); + //console.log (h); + if (h > 800) { + $( "#mysidebar" ).attr("class", "nav affix"); + } + // activate tooltips. although this is a bootstrap js function, it must be activated this way in your theme. + $('[data-toggle="tooltip"]').tooltip({ + placement : 'top' + }); + + /** + * AnchorJS + */ + anchors.add('h2,h3,h4,h5'); + +}); + +// needed for nav tabs on pages. See Formatting > Nav tabs for more details. +// script from http://stackoverflow.com/questions/10523433/how-do-i-keep-the-current-tab-active-with-twitter-bootstrap-after-a-page-reload +$(function() { + var json, tabsState; + $('a[data-toggle="pill"], a[data-toggle="tab"]').on('shown.bs.tab', function(e) { + var href, json, parentId, tabsState; + + tabsState = localStorage.getItem("tabs-state"); + json = JSON.parse(tabsState || "{}"); + parentId = $(e.target).parents("ul.nav.nav-pills, ul.nav.nav-tabs").attr("id"); + href = $(e.target).attr('href'); + json[parentId] = href; + + return localStorage.setItem("tabs-state", JSON.stringify(json)); + }); + + tabsState = localStorage.getItem("tabs-state"); + json = JSON.parse(tabsState || "{}"); + + $.each(json, function(containerId, href) { + return $("#" + containerId + " a[href=" + href + "]").tab('show'); + }); + + $("ul.nav.nav-pills, ul.nav.nav-tabs").each(function() { + var $this = $(this); + if (!json[$this.attr("id")]) { + return $this.find("a[data-toggle=tab]:first, a[data-toggle=pill]:first").tab("show"); + } + }); +}); diff --git a/js/jekyll-search.js b/js/jekyll-search.js new file mode 100644 index 0000000000..04d6a0d3a4 --- /dev/null +++ b/js/jekyll-search.js @@ -0,0 +1 @@ +!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=0}var self=this;self.matches=function(string,crit){return"string"!=typeof string?!1:(string=string.trim(),doMatch(string,crit))}}module.exports=new LiteralSearchStrategy},{}],4:[function(require,module){module.exports=function(){function findMatches(store,crit,strategy){for(var data=store.get(),i=0;i{title}',noResultsText:"No results found",limit:10,fuzzy:!1};self.init=function(_opt){validateOptions(_opt),assignOptions(_opt),isJSON(opt.dataSource)?initWithJSON(opt.dataSource):initWithURL(opt.dataSource)}}var Searcher=require("./Searcher"),Templater=require("./Templater"),Store=require("./Store"),JSONLoader=require("./JSONLoader"),searcher=new Searcher,templater=new Templater,store=new Store,jsonLoader=new JSONLoader;window.SimpleJekyllSearch=new SimpleJekyllSearch}(window,document)},{"./JSONLoader":1,"./Searcher":4,"./Store":5,"./Templater":6}]},{},[7]); \ No newline at end of file diff --git a/js/jquery-ui.min.js b/js/jquery-ui.min.js new file mode 100644 index 0000000000..db0af4c4d5 --- /dev/null +++ b/js/jquery-ui.min.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.12.1 - 2018-05-27 +* http://jqueryui.com +* Includes: effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e="ui-effects-",i="ui-effects-style",s="ui-effects-animated",n=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=h(),n=s._rgba=[];return i=i.toLowerCase(),f(l,function(t,o){var a,r=o.re.exec(i),l=r&&o.parse(r),h=o.space||"rgba";return l?(a=s[h](l),s[c[h].cache]=a[c[h].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],h=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=h.support={},p=t("

")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),h.fn=t.extend(h.prototype,{parse:function(n,a,r,l){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,l],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=h(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=h(t),n=s._space(),o=c[n],a=0===this.alpha()?h("transparent"):this,r=a[o.cache]||o.to(a._rgba),l=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],h=s[o],c=u[n.type]||{};null!==h&&(null===a?l[o]=h:(c.mod&&(h-a>c.mod/2?a+=c.mod:a-h>c.mod/2&&(a-=c.mod)),l[o]=i((h-a)*e+a,n)))}),this[n](l)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=h(e)._rgba;return h(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),l=Math.min(s,n,o),h=r-l,c=r+l,u=.5*c;return e=l===r?0:s===r?60*(n-o)/h+360:n===r?60*(o-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=u?h/c:h/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){if(l&&!this[a]&&(this[a]=l(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[a]=d,n):h(d)},f(o,function(e,i){h.fn[e]||(h.fn[e]=function(n){var o,a=t.type(n),l="alpha"===e?this._hsla?"hsla":"rgba":s,h=this[l](),c=h[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),h[i.idx]=n,this[l](h)))})})}),h.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=h(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(l){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(n),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,n,a={};for(s in i)n=i[s],e[s]!==n&&(o[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(a[s]=n));return a}var s=["add","remove","toggle"],o={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(n.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var l=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",h=l.children?a.find("*").addBack():a;h=h.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),h=h.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),h=h.map(function(){var e=this,i=t.Deferred(),s=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,h.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function n(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function o(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function a(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(s)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,i){for(var s=0,n=i.length;n>s;s++)null!==i[s]&&t.data(e+i[s],t[0].style[i[s]])},restore:function(t,i){for(var s,n=0,o=i.length;o>n;n++)null!==i[n]&&(s=t.data(e+i[n]),t.css(i[n],s))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("

").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(i,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(i)||"",t.removeData(i)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(i){var s,n=i.css("position"),o=i.position();return i.css({marginTop:i.css("marginTop"),marginBottom:i.css("marginBottom"),marginLeft:i.css("marginLeft"),marginRight:i.css("marginRight")}).outerWidth(i.outerWidth()).outerHeight(i.outerHeight()),/^(static|relative)/.test(n)&&(n="absolute",s=t("<"+i[0].nodeName+">").insertAfter(i).css({display:/^(inline|ruby)/.test(i.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:i.css("marginTop"),marginBottom:i.css("marginBottom"),marginLeft:i.css("marginLeft"),marginRight:i.css("marginRight"),"float":i.css("float")}).outerWidth(i.outerWidth()).outerHeight(i.outerHeight()).addClass("ui-effects-placeholder"),i.data(e+"placeholder",s)),i.css({position:n,left:o.left,top:o.top}),s},removePlaceholder:function(t){var i=e+"placeholder",s=t.data(i);s&&(s.remove(),t.removeData(i))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function e(e){function n(){l.removeData(s),t.effects.cleanUp(l),"hide"===i.mode&&l.hide(),r()}function r(){t.isFunction(h)&&h.call(l[0]),t.isFunction(e)&&e()}var l=t(this);i.mode=u.shift(),t.uiBackCompat===!1||a?"none"===i.mode?(l[c](),r()):o.call(l[0],i,n):(l.is(":hidden")?"hide"===c:"show"===c)?(l[c](),r()):o.call(l[0],i,r)}var i=n.apply(this,arguments),o=t.effects.effect[i.effect],a=o.mode,r=i.queue,l=r||"fx",h=i.complete,c=i.mode,u=[],d=function(e){var i=t(this),n=t.effects.mode(i,c)||a;i.data(s,!0),u.push(n),a&&("show"===n||n===a&&"hide"===n)&&i.show(),a&&"none"===n||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!o?c?this[c](i.duration,h):this.each(function(){h&&h.call(this)}):r===!1?this.each(d).each(e):this.queue(l,d).queue(l,e)},show:function(t){return function(e){if(o(e))return t.apply(this,arguments);var i=n.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(o(e))return t.apply(this,arguments);var i=n.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(o(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=n.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):a(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,l=o?a.scrollLeft():0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=a(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var o=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},l=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),l&&l.css(t.effects.clipToBox(r)),r.clip=a),l&&l.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,l="hide"===r,h="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(h||l?1:0),f=e.duration/p,m=e.easing,g="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(g),u||(u=a["top"===g?"outerHeight":"outerWidth"]()/3),h&&(n={opacity:1},n[g]=o,a.css("opacity",0).css(g,_?2*-u:2*u).animate(n,f,m)),l&&(u/=Math.pow(2,d-1)),n={},n[g]=o;d>v;v++)s={},s[g]=(_?"-=":"+=")+u,a.animate(s,f,m).animate(n,f,m),u=l?2*u:u/2;l&&(s={opacity:0},s[g]=(_?"-=":"+=")+u,a.animate(s,f,m)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,l=r||"horizontal"===a,h=r||"vertical"===a;s=o.cssClip(),n.clip={top:h?(s.bottom-s.top)/2:s.top,right:l?(s.right-s.left)/2:s.right,bottom:h?(s.bottom-s.top)/2:s.bottom,left:l?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",l="up"===r||"down"===r?"top":"left",h="up"===r||"left"===r?"-=":"+=",c="+="===h?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,u[l]=h+s,a&&(n.css(u),u[l]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,l,h,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,m="show"===f,g=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(l=g.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=g.left+a*_,h=a-(d-1)/2,p.clone().appendTo("body").wrap("
").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(m?h*_:0),top:l+(m?c*v:0),opacity:m?0:1}).animate({left:r+(m?0:h*_),top:l+(m?0:c*v),opacity:m?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,l=/([0-9]+)%/.exec(r),h=!!e.horizFirst,c=h?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},m={clip:t.extend({},p)},g=[p[c[0]],p[c[1]]],_=s.queue().length;l&&(r=parseInt(l[1],10)/100*g[a?0:1]),f.clip[c[0]]=r,m.clip[c[0]]=r,m.clip[c[1]]=0,o&&(s.cssClip(m.clip),d&&d.css(t.effects.clipToBox(m)),m.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(m),u,e.easing),i()}).animate(f,u,e.easing).animate(m,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),m=a.position(),g=t.effects.scaledDimensions(a),_=e.from||g,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/g.height,x:_.width/g.width},to:{y:v.height/g.height,x:v.width/g.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,l,n.from.y,_),v=t.effects.setTransition(a,l,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,h,n.from.x,_),v=t.effects.setTransition(a,h,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,g),_.top=(g.outerHeight-_.outerHeight)*s.y+m.top,_.left=(g.outerWidth-_.outerWidth)*s.x+m.left,v.top=(g.outerHeight-v.outerHeight)*s.y+m.top,v.left=(g.outerWidth-v.outerWidth)*s.x+m.left),a.css(_),("content"===d||"both"===d)&&(l=l.concat(["marginTop","marginBottom"]).concat(r),h=h.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,l,n.from.y,o),a=t.effects.setTransition(i,l,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,h,n.from.x,o),a=t.effects.setTransition(i,h,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,l=2*(e.times||5)+(r?1:0),h=e.duration/l,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);l>u;u++)s.animate({opacity:c},h,e.easing),c=1-c;s.animate({opacity:c},h,e.easing),s.queue(i),t.effects.unshift(s,d,l+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,l=2*r+1,h=Math.round(e.duration/l),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},m=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,h,e.easing);r>s;s++)n.animate(p,h,e.easing).animate(f,h,e.easing);n.animate(p,h,e.easing).animate(d,h/2,e.easing).queue(i),t.effects.unshift(n,m,l+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l,u=e.distance||o["top"===h?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[h],d[h]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[l][1]]=d.clip[a[l][0]],"show"===r&&(o.cssClip(d.clip),o.css(h,d[h]),d.clip=s,d[h]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var o;t.uiBackCompat!==!1&&(o=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)}))}); \ No newline at end of file diff --git a/js/jquery.ba-throttle-debounce.min.js b/js/jquery.ba-throttle-debounce.min.js new file mode 100644 index 0000000000..07205508eb --- /dev/null +++ b/js/jquery.ba-throttle-debounce.min.js @@ -0,0 +1,9 @@ +/* + * jQuery throttle / debounce - v1.1 - 3/7/2010 + * http://benalman.com/projects/jquery-throttle-debounce-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); \ No newline at end of file diff --git a/js/jquery.localScroll.min.js b/js/jquery.localScroll.min.js new file mode 100644 index 0000000000..48a6e168f6 --- /dev/null +++ b/js/jquery.localScroll.min.js @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2007-2014 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com + * Licensed under MIT + * @author Ariel Flesler + * @version 1.3.5 + */ +;(function(a){if(typeof define==='function'&&define.amd){define(['jquery'],a)}else{a(jQuery)}}(function($){var g=location.href.replace(/#.*/,'');var h=$.localScroll=function(a){$('body').localScroll(a)};h.defaults={duration:1000,axis:'y',event:'click',stop:true,target:window};$.fn.localScroll=function(a){a=$.extend({},h.defaults,a);if(a.hash&&location.hash){if(a.target)window.scrollTo(0,0);scroll(0,location,a)}return a.lazy?this.on(a.event,'a,area',function(e){if(filter.call(this)){scroll(e,this,a)}}):this.find('a,area').filter(filter).bind(a.event,function(e){scroll(e,this,a)}).end().end();function filter(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==g&&(!a.filter||$(this).is(a.filter))}};h.hash=function(){};function scroll(e,a,b){var c=a.hash.slice(1),elem=document.getElementById(c)||document.getElementsByName(c)[0];if(!elem)return;if(e)e.preventDefault();var d=$(b.target);if(b.lock&&d.is(':animated')||b.onBefore&&b.onBefore(e,elem,d)===false)return;if(b.stop)d._scrollable().stop(true);if(b.hash){var f=elem.id===c?'id':'name',$a=$(' ').attr(f,c).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});elem[f]='';$('body').prepend($a);location.hash=a.hash;$a.remove();elem[f]=c}d.scrollTo(elem,b).trigger('notify.serialScroll',[elem])};return h})); \ No newline at end of file diff --git a/js/jquery.navgoco.min.js b/js/jquery.navgoco.min.js new file mode 100755 index 0000000000..4ba4475332 --- /dev/null +++ b/js/jquery.navgoco.min.js @@ -0,0 +1,8 @@ +/* + * jQuery Navgoco Menus Plugin v0.2.1 (2014-04-11) + * https://github.com/tefra/navgoco + * + * Copyright (c) 2014 Chris T (@tefra) + * BSD - https://github.com/tefra/navgoco/blob/master/LICENSE-BSD + */ +!function(a){"use strict";var b=function(b,c,d){return this.el=b,this.$el=a(b),this.options=c,this.uuid=this.$el.attr("id")?this.$el.attr("id"):d,this.state={},this.init(),this};b.prototype={init:function(){var b=this;b._load(),b.$el.find("ul").each(function(c){var d=a(this);d.attr("data-index",c),b.options.save&&b.state.hasOwnProperty(c)?(d.parent().addClass(b.options.openClass),d.show()):d.parent().hasClass(b.options.openClass)?(d.show(),b.state[c]=1):d.hide()});var c=a("").prepend(b.options.caretHtml),d=b.$el.find("li > a");b._trigger(c,!1),b._trigger(d,!0),b.$el.find("li:has(ul) > a").prepend(c)},_trigger:function(b,c){var d=this;b.on("click",function(b){b.stopPropagation();var e=c?a(this).next():a(this).parent().next(),f=!1;if(c){var g=a(this).attr("href");f=void 0===g||""===g||"#"===g}if(e=e.length>0?e:!1,d.options.onClickBefore.call(this,b,e),!c||e&&f)b.preventDefault(),d._toggle(e,e.is(":hidden")),d._save();else if(d.options.accordion){var h=d.state=d._parents(a(this));d.$el.find("ul").filter(":visible").each(function(){var b=a(this),c=b.attr("data-index");h.hasOwnProperty(c)||d._toggle(b,!1)}),d._save()}d.options.onClickAfter.call(this,b,e)})},_toggle:function(b,c){var d=this,e=b.attr("data-index"),f=b.parent();if(d.options.onToggleBefore.call(this,b,c),c){if(f.addClass(d.options.openClass),b.slideDown(d.options.slide),d.state[e]=1,d.options.accordion){var g=d.state=d._parents(b);g[e]=d.state[e]=1,d.$el.find("ul").filter(":visible").each(function(){var b=a(this),c=b.attr("data-index");g.hasOwnProperty(c)||d._toggle(b,!1)})}}else f.removeClass(d.options.openClass),b.slideUp(d.options.slide),d.state[e]=0;d.options.onToggleAfter.call(this,b,c)},_parents:function(b,c){var d={},e=b.parent(),f=e.parents("ul");return f.each(function(){var b=a(this),e=b.attr("data-index");return e?void(d[e]=c?b:1):!1}),d},_save:function(){if(this.options.save){var b={};for(var d in this.state)1===this.state[d]&&(b[d]=1);c[this.uuid]=this.state=b,a.cookie(this.options.cookie.name,JSON.stringify(c),this.options.cookie)}},_load:function(){if(this.options.save){if(null===c){var b=a.cookie(this.options.cookie.name);c=b?JSON.parse(b):{}}this.state=c.hasOwnProperty(this.uuid)?c[this.uuid]:{}}},toggle:function(b){var c=this,d=arguments.length;if(1>=d)c.$el.find("ul").each(function(){var d=a(this);c._toggle(d,b)});else{var e,f={},g=Array.prototype.slice.call(arguments,1);d--;for(var h=0;d>h;h++){e=g[h];var i=c.$el.find('ul[data-index="'+e+'"]').first();if(i&&(f[e]=i,b)){var j=c._parents(i,!0);for(var k in j)f.hasOwnProperty(k)||(f[k]=j[k])}}for(e in f)c._toggle(f[e],b)}c._save()},destroy:function(){a.removeData(this.$el),this.$el.find("li:has(ul) > a").unbind("click"),this.$el.find("li:has(ul) > a > span").unbind("click")}},a.fn.navgoco=function(c){if("string"==typeof c&&"_"!==c.charAt(0)&&"init"!==c)var d=!0,e=Array.prototype.slice.call(arguments,1);else c=a.extend({},a.fn.navgoco.defaults,c||{}),a.cookie||(c.save=!1);return this.each(function(f){var g=a(this),h=g.data("navgoco");h||(h=new b(this,d?a.fn.navgoco.defaults:c,f),g.data("navgoco",h)),d&&h[c].apply(h,e)})};var c=null;a.fn.navgoco.defaults={caretHtml:"",accordion:!1,openClass:"open",save:!0,cookie:{name:"navgoco",expires:!1,path:"/"},slide:{duration:400,easing:"swing"},onClickBefore:a.noop,onClickAfter:a.noop,onToggleBefore:a.noop,onToggleAfter:a.noop}}(jQuery); \ No newline at end of file diff --git a/js/jquery.scrollTo.min.js b/js/jquery.scrollTo.min.js new file mode 100644 index 0000000000..d9f9b1599c --- /dev/null +++ b/js/jquery.scrollTo.min.js @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2007-2014 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com + * Licensed under MIT + * @author Ariel Flesler + * @version 1.4.14 + */ +;(function(k){'use strict';k(['jquery'],function($){var j=$.scrollTo=function(a,b,c){return $(window).scrollTo(a,b,c)};j.defaults={axis:'xy',duration:0,limit:!0};j.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(f,g,h){if(typeof g=='object'){h=g;g=0}if(typeof h=='function')h={onAfter:h};if(f=='max')f=9e9;h=$.extend({},j.defaults,h);g=g||h.duration;h.queue=h.queue&&h.axis.length>1;if(h.queue)g/=2;h.offset=both(h.offset);h.over=both(h.over);return this._scrollable().each(function(){if(f==null)return;var d=this,$elem=$(d),targ=f,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=win?$(targ):$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}var e=$.isFunction(h.offset)&&h.offset(d,targ)||h.offset;$.each(h.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=j.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(h.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=e[pos]||0;if(h.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*h.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(h.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&h.queue){if(old!=attr[key])animate(h.onAfterFirst);delete attr[key]}});animate(h.onAfter);function animate(a){$elem.animate(attr,g,h.easing,a&&function(){a.call(this,targ,h)})}}).end()};j.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}return j})}(typeof define==='function'&&define.amd?define:function(a,b){if(typeof module!=='undefined'&&module.exports){module.exports=b(require('jquery'))}else{b(jQuery)}})); \ No newline at end of file diff --git a/js/jquery.shuffle.min.js b/js/jquery.shuffle.min.js new file mode 100644 index 0000000000..d103127199 --- /dev/null +++ b/js/jquery.shuffle.min.js @@ -0,0 +1,1588 @@ +/*! + * Shuffle.js by @Vestride + * Categorize, sort, and filter a responsive grid of items. + * Dependencies: jQuery 1.9+, Modernizr 2.6.2+ + * @license MIT license + * @version 3.0.0 + */ + +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-csstransforms-csstransforms3d-csstransitions-cssclasses-prefixed-teststyles-testprop-testallprops-prefixes-domprefixes + */ +window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return F("transition")};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),i=k=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,e.prefixed=function(a,b,c){return b?F(a,b,c):F(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document); + +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery', 'modernizr'], factory); + } else { + window.Shuffle = factory(window.jQuery, window.Modernizr); + } +})(function($, Modernizr, undefined) { + +'use strict'; + + +// Validate Modernizr exists. +// Shuffle requires `csstransitions`, `csstransforms`, `csstransforms3d`, +// and `prefixed` to exist on the Modernizr object. +if (typeof Modernizr !== 'object') { + throw new Error('Shuffle.js requires Modernizr.\n' + + 'http://vestride.github.io/Shuffle/#dependencies'); +} + + +/** + * Returns css prefixed properties like `-webkit-transition` or `box-sizing` + * from `transition` or `boxSizing`, respectively. + * @param {(string|boolean)} prop Property to be prefixed. + * @return {string} The prefixed css property. + */ +function dashify( prop ) { + if (!prop) { + return ''; + } + + // Replace upper case with dash-lowercase, + // then fix ms- prefixes because they're not capitalized. + return prop.replace(/([A-Z])/g, function( str, m1 ) { + return '-' + m1.toLowerCase(); + }).replace(/^ms-/,'-ms-'); +} + +// Constant, prefixed variables. +var TRANSITION = Modernizr.prefixed('transition'); +var TRANSITION_DELAY = Modernizr.prefixed('transitionDelay'); +var TRANSITION_DURATION = Modernizr.prefixed('transitionDuration'); + +// Note(glen): Stock Android 4.1.x browser will fail here because it wrongly +// says it supports non-prefixed transitions. +// https://github.com/Modernizr/Modernizr/issues/897 +var TRANSITIONEND = { + 'WebkitTransition' : 'webkitTransitionEnd', + 'transition' : 'transitionend' +}[ TRANSITION ]; + +var TRANSFORM = Modernizr.prefixed('transform'); +var CSS_TRANSFORM = dashify(TRANSFORM); + +// Constants +var CAN_TRANSITION_TRANSFORMS = Modernizr.csstransforms && Modernizr.csstransitions; +var HAS_TRANSFORMS_3D = Modernizr.csstransforms3d; +var SHUFFLE = 'shuffle'; +var COLUMN_THRESHOLD = 0.3; + +// Configurable. You can change these constants to fit your application. +// The default scale and concealed scale, however, have to be different values. +var ALL_ITEMS = 'all'; +var FILTER_ATTRIBUTE_KEY = 'groups'; +var DEFAULT_SCALE = 1; +var CONCEALED_SCALE = 0.001; + + +// Underscore's throttle function. +function throttle(func, wait, options) { + var context, args, result; + var timeout = null; + var previous = 0; + options = options || {}; + var later = function() { + previous = options.leading === false ? 0 : $.now(); + timeout = null; + result = func.apply(context, args); + context = args = null; + }; + return function() { + var now = $.now(); + if (!previous && options.leading === false) { + previous = now; + } + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; +} + +function each(obj, iterator, context) { + for (var i = 0, length = obj.length; i < length; i++) { + if (iterator.call(context, obj[i], i, obj) === {}) { + return; + } + } +} + +function defer(fn, context, wait) { + return setTimeout( $.proxy( fn, context ), wait ); +} + +function arrayMax( array ) { + return Math.max.apply( Math, array ); +} + +function arrayMin( array ) { + return Math.min.apply( Math, array ); +} + + +/** + * Always returns a numeric value, given a value. + * @param {*} value Possibly numeric value. + * @return {number} `value` or zero if `value` isn't numeric. + * @private + */ +function getNumber(value) { + return $.isNumeric(value) ? value : 0; +} + + +/** + * Represents a coordinate pair. + * @param {number} [x=0] X. + * @param {number} [y=0] Y. + */ +var Point = function(x, y) { + this.x = getNumber( x ); + this.y = getNumber( y ); +}; + + +/** + * Whether two points are equal. + * @param {Point} a Point A. + * @param {Point} b Point B. + * @return {boolean} + */ +Point.equals = function(a, b) { + return a.x === b.x && a.y === b.y; +}; + + +// Used for unique instance variables +var id = 0; +var $window = $( window ); + + +/** + * Categorize, sort, and filter a responsive grid of items. + * + * @param {Element} element An element which is the parent container for the grid items. + * @param {Object} [options=Shuffle.options] Options object. + * @constructor + */ +var Shuffle = function( element, options ) { + options = options || {}; + $.extend( this, Shuffle.options, options, Shuffle.settings ); + + this.$el = $(element); + this.element = element; + this.unique = 'shuffle_' + id++; + + this._fire( Shuffle.EventType.LOADING ); + this._init(); + + // Dispatch the done event asynchronously so that people can bind to it after + // Shuffle has been initialized. + defer(function() { + this.initialized = true; + this._fire( Shuffle.EventType.DONE ); + }, this, 16); +}; + + +/** + * Events the container element emits with the .shuffle namespace. + * For example, "done.shuffle". + * @enum {string} + */ +Shuffle.EventType = { + LOADING: 'loading', + DONE: 'done', + LAYOUT: 'layout', + REMOVED: 'removed' +}; + + +/** @enum {string} */ +Shuffle.ClassName = { + BASE: SHUFFLE, + SHUFFLE_ITEM: 'shuffle-item', + FILTERED: 'filtered', + CONCEALED: 'concealed' +}; + + +// Overrideable options +Shuffle.options = { + group: ALL_ITEMS, // Initial filter group. + speed: 250, // Transition/animation speed (milliseconds). + easing: 'ease-out', // CSS easing function to use. + itemSelector: '', // e.g. '.picture-item'. + sizer: null, // Sizer element. Use an element to determine the size of columns and gutters. + gutterWidth: 0, // A static number or function that tells the plugin how wide the gutters between columns are (in pixels). + columnWidth: 0, // A static number or function that returns a number which tells the plugin how wide the columns are (in pixels). + delimeter: null, // If your group is not json, and is comma delimeted, you could set delimeter to ','. + buffer: 0, // Useful for percentage based heights when they might not always be exactly the same (in pixels). + initialSort: null, // Shuffle can be initialized with a sort object. It is the same object given to the sort method. + throttle: throttle, // By default, shuffle will throttle resize events. This can be changed or removed. + throttleTime: 300, // How often shuffle can be called on resize (in milliseconds). + sequentialFadeDelay: 150, // Delay between each item that fades in when adding items. + supported: CAN_TRANSITION_TRANSFORMS // Whether to use transforms or absolute positioning. +}; + + +// Not overrideable +Shuffle.settings = { + useSizer: false, + itemCss : { // default CSS for each item + position: 'absolute', + top: 0, + left: 0, + visibility: 'visible' + }, + revealAppendedDelay: 300, + lastSort: {}, + lastFilter: ALL_ITEMS, + enabled: true, + destroyed: false, + initialized: false, + _animations: [], + styleQueue: [] +}; + + +// Expose for testing. +Shuffle.Point = Point; + + +/** + * Static methods. + */ + +/** + * If the browser has 3d transforms available, build a string with those, + * otherwise use 2d transforms. + * @param {Point} point X and Y positions. + * @param {number} scale Scale amount. + * @return {string} A normalized string which can be used with the transform style. + * @private + */ +Shuffle._getItemTransformString = function(point, scale) { + if ( HAS_TRANSFORMS_3D ) { + return 'translate3d(' + point.x + 'px, ' + point.y + 'px, 0) scale3d(' + scale + ', ' + scale + ', 1)'; + } else { + return 'translate(' + point.x + 'px, ' + point.y + 'px) scale(' + scale + ')'; + } +}; + + +/** + * Retrieve the computed style for an element, parsed as a float. This should + * not be used for width or height values because jQuery mangles them and they + * are not precise enough. + * @param {Element} element Element to get style for. + * @param {string} style Style property. + * @return {number} The parsed computed value or zero if that fails because IE + * will return 'auto' when the element doesn't have margins instead of + * the computed style. + * @private + */ +Shuffle._getNumberStyle = function( element, style ) { + return Shuffle._getFloat( $( element ).css( style ) ); +}; + + +/** + * Parse a string as an integer. + * @param {string} value String integer. + * @return {number} The string as an integer or zero. + * @private + */ +Shuffle._getInt = function(value) { + return getNumber( parseInt( value, 10 ) ); +}; + +/** + * Parse a string as an float. + * @param {string} value String float. + * @return {number} The string as an float or zero. + * @private + */ +Shuffle._getFloat = function(value) { + return getNumber( parseFloat( value ) ); +}; + + +/** + * Returns the outer width of an element, optionally including its margins. + * The `offsetWidth` property must be used because having a scale transform + * on the element affects the bounding box. Sadly, Firefox doesn't return an + * integer value for offsetWidth (yet). + * @param {Element} element The element. + * @param {boolean} [includeMargins] Whether to include margins. Default is false. + * @return {number} The width. + */ +Shuffle._getOuterWidth = function( element, includeMargins ) { + var width = element.offsetWidth; + + // Use jQuery here because it uses getComputedStyle internally and is + // cross-browser. Using the style property of the element will only work + // if there are inline styles. + if ( includeMargins ) { + var marginLeft = Shuffle._getNumberStyle( element, 'marginLeft'); + var marginRight = Shuffle._getNumberStyle( element, 'marginRight'); + width += marginLeft + marginRight; + } + + return width; +}; + + +/** + * Returns the outer height of an element, optionally including its margins. + * @param {Element} element The element. + * @param {boolean} [includeMargins] Whether to include margins. Default is false. + * @return {number} The height. + */ +Shuffle._getOuterHeight = function( element, includeMargins ) { + var height = element.offsetHeight; + + if ( includeMargins ) { + var marginTop = Shuffle._getNumberStyle( element, 'marginTop'); + var marginBottom = Shuffle._getNumberStyle( element, 'marginBottom'); + height += marginTop + marginBottom; + } + + return height; +}; + + +/** + * Change a property or execute a function which will not have a transition + * @param {Element} element DOM element that won't be transitioned + * @param {Function} callback A function which will be called while transition + * is set to 0ms. + * @param {Object} [context] Optional context for the callback function. + * @private + */ +Shuffle._skipTransition = function( element, callback, context ) { + var duration = element.style[ TRANSITION_DURATION ]; + + // Set the duration to zero so it happens immediately + element.style[ TRANSITION_DURATION ] = '0ms'; // ms needed for firefox! + + callback.call( context ); + + // Force reflow + var reflow = element.offsetWidth; + // Avoid jshint warnings: unused variables and expressions. + reflow = null; + + // Put the duration back + element.style[ TRANSITION_DURATION ] = duration; +}; + + +/** + * Instance methods. + */ + +Shuffle.prototype._init = function() { + this.$items = this._getItems(); + + this.sizer = this._getElementOption( this.sizer ); + + if ( this.sizer ) { + this.useSizer = true; + } + + // Add class and invalidate styles + this.$el.addClass( Shuffle.ClassName.BASE ); + + // Set initial css for each item + this._initItems(); + + // Bind resize events + // http://stackoverflow.com/questions/1852751/window-resize-event-firing-in-internet-explorer + $window.on('resize.' + SHUFFLE + '.' + this.unique, this._getResizeFunction()); + + // Get container css all in one request. Causes reflow + var containerCSS = this.$el.css(['position', 'overflow']); + var containerWidth = Shuffle._getOuterWidth( this.element ); + + // Add styles to the container if it doesn't have them. + this._validateStyles( containerCSS ); + + // We already got the container's width above, no need to cause another reflow getting it again... + // Calculate the number of columns there will be + this._setColumns( containerWidth ); + + // Kick off! + this.shuffle( this.group, this.initialSort ); + + // The shuffle items haven't had transitions set on them yet + // so the user doesn't see the first layout. Set them now that the first layout is done. + if ( this.supported ) { + defer(function() { + this._setTransitions(); + this.element.style[ TRANSITION ] = 'height ' + this.speed + 'ms ' + this.easing; + }, this); + } +}; + + +/** + * Returns a throttled and proxied function for the resize handler. + * @return {Function} + * @private + */ +Shuffle.prototype._getResizeFunction = function() { + var resizeFunction = $.proxy( this._onResize, this ); + return this.throttle ? + this.throttle( resizeFunction, this.throttleTime ) : + resizeFunction; +}; + + +/** + * Retrieve an element from an option. + * @param {string|jQuery|Element} option The option to check. + * @return {?Element} The plain element or null. + * @private + */ +Shuffle.prototype._getElementOption = function( option ) { + // If column width is a string, treat is as a selector and search for the + // sizer element within the outermost container + if ( typeof option === 'string' ) { + return this.$el.find( option )[0] || null; + + // Check for an element + } else if ( option && option.nodeType && option.nodeType === 1 ) { + return option; + + // Check for jQuery object + } else if ( option && option.jquery ) { + return option[0]; + } + + return null; +}; + + +/** + * Ensures the shuffle container has the css styles it needs applied to it. + * @param {Object} styles Key value pairs for position and overflow. + * @private + */ +Shuffle.prototype._validateStyles = function(styles) { + // Position cannot be static. + if ( styles.position === 'static' ) { + this.element.style.position = 'relative'; + } + + // Overflow has to be hidden + if ( styles.overflow !== 'hidden' ) { + this.element.style.overflow = 'hidden'; + } +}; + + +/** + * Filter the elements by a category. + * @param {string} [category] Category to filter by. If it's given, the last + * category will be used to filter the items. + * @param {ArrayLike} [$collection] Optionally filter a collection. Defaults to + * all the items. + * @return {jQuery} Filtered items. + * @private + */ +Shuffle.prototype._filter = function( category, $collection ) { + category = category || this.lastFilter; + $collection = $collection || this.$items; + + var set = this._getFilteredSets( category, $collection ); + + // Individually add/remove concealed/filtered classes + this._toggleFilterClasses( set.filtered, set.concealed ); + + // Save the last filter in case elements are appended. + this.lastFilter = category; + + // This is saved mainly because providing a filter function (like searching) + // will overwrite the `lastFilter` property every time its called. + if ( typeof category === 'string' ) { + this.group = category; + } + + return set.filtered; +}; + + +/** + * Returns an object containing the filtered and concealed elements. + * @param {string|Function} category Category or function to filter by. + * @param {ArrayLike.} $items A collection of items to filter. + * @return {!{filtered: jQuery, concealed: jQuery}} + * @private + */ +Shuffle.prototype._getFilteredSets = function( category, $items ) { + var $filtered = $(); + var $concealed = $(); + + // category === 'all', add filtered class to everything + if ( category === ALL_ITEMS ) { + $filtered = $items; + + // Loop through each item and use provided function to determine + // whether to hide it or not. + } else { + each($items, function( el ) { + var $item = $(el); + if ( this._doesPassFilter( category, $item ) ) { + $filtered = $filtered.add( $item ); + } else { + $concealed = $concealed.add( $item ); + } + }, this); + } + + return { + filtered: $filtered, + concealed: $concealed + }; +}; + + +/** + * Test an item to see if it passes a category. + * @param {string|Function} category Category or function to filter by. + * @param {jQuery} $item A single item, wrapped with jQuery. + * @return {boolean} Whether it passes the category/filter. + * @private + */ +Shuffle.prototype._doesPassFilter = function( category, $item ) { + if ( $.isFunction( category ) ) { + return category.call( $item[0], $item, this ); + + // Check each element's data-groups attribute against the given category. + } else { + var groups = $item.data( FILTER_ATTRIBUTE_KEY ); + var keys = this.delimeter && !$.isArray( groups ) ? + groups.split( this.delimeter ) : + groups; + return $.inArray(category, keys) > -1; + } +}; + + +/** + * Toggles the filtered and concealed class names. + * @param {jQuery} $filtered Filtered set. + * @param {jQuery} $concealed Concealed set. + * @private + */ +Shuffle.prototype._toggleFilterClasses = function( $filtered, $concealed ) { + $filtered + .removeClass( Shuffle.ClassName.CONCEALED ) + .addClass( Shuffle.ClassName.FILTERED ); + $concealed + .removeClass( Shuffle.ClassName.FILTERED ) + .addClass( Shuffle.ClassName.CONCEALED ); +}; + + +/** + * Set the initial css for each item + * @param {jQuery} [$items] Optionally specifiy at set to initialize + */ +Shuffle.prototype._initItems = function( $items ) { + $items = $items || this.$items; + $items.addClass([ + Shuffle.ClassName.SHUFFLE_ITEM, + Shuffle.ClassName.FILTERED + ].join(' ')); + $items.css( this.itemCss ).data('point', new Point()).data('scale', DEFAULT_SCALE); +}; + + +/** + * Updates the filtered item count. + * @private + */ +Shuffle.prototype._updateItemCount = function() { + this.visibleItems = this._getFilteredItems().length; +}; + + +/** + * Sets css transform transition on a an element. + * @param {Element} element Element to set transition on. + * @private + */ +Shuffle.prototype._setTransition = function( element ) { + element.style[ TRANSITION ] = CSS_TRANSFORM + ' ' + this.speed + 'ms ' + + this.easing + ', opacity ' + this.speed + 'ms ' + this.easing; +}; + + +/** + * Sets css transform transition on a group of elements. + * @param {ArrayLike.} $items Elements to set transitions on. + * @private + */ +Shuffle.prototype._setTransitions = function( $items ) { + $items = $items || this.$items; + each($items, function( el ) { + this._setTransition( el ); + }, this); +}; + + +/** + * Sets a transition delay on a collection of elements, making each delay + * greater than the last. + * @param {ArrayLike.} $collection Array to iterate over. + */ +Shuffle.prototype._setSequentialDelay = function( $collection ) { + if ( !this.supported ) { + return; + } + + // $collection can be an array of dom elements or jquery object + each($collection, function( el, i ) { + // This works because the transition-property: transform, opacity; + el.style[ TRANSITION_DELAY ] = '0ms,' + ((i + 1) * this.sequentialFadeDelay) + 'ms'; + }, this); +}; + + +Shuffle.prototype._getItems = function() { + return this.$el.children( this.itemSelector ); +}; + + +Shuffle.prototype._getFilteredItems = function() { + return this.$items.filter('.' + Shuffle.ClassName.FILTERED); +}; + + +Shuffle.prototype._getConcealedItems = function() { + return this.$items.filter('.' + Shuffle.ClassName.CONCEALED); +}; + + +/** + * Returns the column size, based on column width and sizer options. + * @param {number} containerWidth Size of the parent container. + * @param {number} gutterSize Size of the gutters. + * @return {number} + * @private + */ +Shuffle.prototype._getColumnSize = function( containerWidth, gutterSize ) { + var size; + + // If the columnWidth property is a function, then the grid is fluid + if ( $.isFunction( this.columnWidth ) ) { + size = this.columnWidth(containerWidth); + + // columnWidth option isn't a function, are they using a sizing element? + } else if ( this.useSizer ) { + size = Shuffle._getOuterWidth(this.sizer); + + // if not, how about the explicitly set option? + } else if ( this.columnWidth ) { + size = this.columnWidth; + + // or use the size of the first item + } else if ( this.$items.length > 0 ) { + size = Shuffle._getOuterWidth(this.$items[0], true); + + // if there's no items, use size of container + } else { + size = containerWidth; + } + + // Don't let them set a column width of zero. + if ( size === 0 ) { + size = containerWidth; + } + + return size + gutterSize; +}; + + +/** + * Returns the gutter size, based on gutter width and sizer options. + * @param {number} containerWidth Size of the parent container. + * @return {number} + * @private + */ +Shuffle.prototype._getGutterSize = function( containerWidth ) { + var size; + if ( $.isFunction( this.gutterWidth ) ) { + size = this.gutterWidth(containerWidth); + } else if ( this.useSizer ) { + size = Shuffle._getNumberStyle(this.sizer, 'marginLeft'); + } else { + size = this.gutterWidth; + } + + return size; +}; + + +/** + * Calculate the number of columns to be used. Gets css if using sizer element. + * @param {number} [theContainerWidth] Optionally specify a container width if it's already available. + */ +Shuffle.prototype._setColumns = function( theContainerWidth ) { + var containerWidth = theContainerWidth || Shuffle._getOuterWidth( this.element ); + var gutter = this._getGutterSize( containerWidth ); + var columnWidth = this._getColumnSize( containerWidth, gutter ); + var calculatedColumns = (containerWidth + gutter) / columnWidth; + + // Widths given from getComputedStyle are not precise enough... + if ( Math.abs(Math.round(calculatedColumns) - calculatedColumns) < COLUMN_THRESHOLD ) { + // e.g. calculatedColumns = 11.998876 + calculatedColumns = Math.round( calculatedColumns ); + } + + this.cols = Math.max( Math.floor(calculatedColumns), 1 ); + this.containerWidth = containerWidth; + this.colWidth = columnWidth; +}; + +/** + * Adjust the height of the grid + */ +Shuffle.prototype._setContainerSize = function() { + this.$el.css( 'height', this._getContainerSize() ); +}; + + +/** + * Based on the column heights, it returns the biggest one. + * @return {number} + * @private + */ +Shuffle.prototype._getContainerSize = function() { + return arrayMax( this.positions ); +}; + + +/** + * Fire events with .shuffle namespace + */ +Shuffle.prototype._fire = function( name, args ) { + this.$el.trigger( name + '.' + SHUFFLE, args && args.length ? args : [ this ] ); +}; + + +/** + * Zeros out the y columns array, which is used to determine item placement. + * @private + */ +Shuffle.prototype._resetCols = function() { + var i = this.cols; + this.positions = []; + while (i--) { + this.positions.push( 0 ); + } +}; + + +/** + * Loops through each item that should be shown and calculates the x, y position. + * @param {Array.} items Array of items that will be shown/layed out in order in their array. + * Because jQuery collection are always ordered in DOM order, we can't pass a jq collection. + * @param {boolean} [isOnlyPosition=false] If true this will position the items with zero opacity. + */ +Shuffle.prototype._layout = function( items, isOnlyPosition ) { + each(items, function( item ) { + this._layoutItem( item, !!isOnlyPosition ); + }, this); + + // `_layout` always happens after `_shrink`, so it's safe to process the style + // queue here with styles from the shrink method. + this._processStyleQueue(); + + // Adjust the height of the container. + this._setContainerSize(); +}; + + +/** + * Calculates the position of the item and pushes it onto the style queue. + * @param {Element} item Element which is being positioned. + * @param {boolean} isOnlyPosition Whether to position the item, but with zero + * opacity so that it can fade in later. + * @private + */ +Shuffle.prototype._layoutItem = function( item, isOnlyPosition ) { + var $item = $(item); + var itemData = $item.data(); + var currPos = itemData.point; + var currScale = itemData.scale; + var itemSize = { + width: Shuffle._getOuterWidth( item, true ), + height: Shuffle._getOuterHeight( item, true ) + }; + var pos = this._getItemPosition( itemSize ); + + // If the item will not change its position, do not add it to the render + // queue. Transitions don't fire when setting a property to the same value. + if ( Point.equals(currPos, pos) && currScale === DEFAULT_SCALE ) { + return; + } + + // Save data for shrink + itemData.point = pos; + itemData.scale = DEFAULT_SCALE; + + this.styleQueue.push({ + $item: $item, + point: pos, + scale: DEFAULT_SCALE, + opacity: isOnlyPosition ? 0 : 1, + skipTransition: isOnlyPosition, + callfront: function() { + if ( !isOnlyPosition ) { + $item.css( 'visibility', 'visible' ); + } + }, + callback: function() { + if ( isOnlyPosition ) { + $item.css( 'visibility', 'hidden' ); + } + } + }); +}; + + +/** + * Determine the location of the next item, based on its size. + * @param {{width: number, height: number}} itemSize Object with width and height. + * @return {Point} + * @private + */ +Shuffle.prototype._getItemPosition = function( itemSize ) { + var columnSpan = this._getColumnSpan( itemSize.width, this.colWidth, this.cols ); + + var setY = this._getColumnSet( columnSpan, this.cols ); + + // Finds the index of the smallest number in the set. + var shortColumnIndex = this._getShortColumn( setY, this.buffer ); + + // Position the item + var point = new Point( + Math.round( this.colWidth * shortColumnIndex ), + Math.round( setY[shortColumnIndex] )); + + // Update the columns array with the new values for each column. + // e.g. before the update the columns could be [250, 0, 0, 0] for an item + // which spans 2 columns. After it would be [250, itemHeight, itemHeight, 0]. + var setHeight = setY[shortColumnIndex] + itemSize.height; + var setSpan = this.cols + 1 - setY.length; + for ( var i = 0; i < setSpan; i++ ) { + this.positions[ shortColumnIndex + i ] = setHeight; + } + + return point; +}; + + +/** + * Determine the number of columns an items spans. + * @param {number} itemWidth Width of the item. + * @param {number} columnWidth Width of the column (includes gutter). + * @param {number} columns Total number of columns + * @return {number} + * @private + */ +Shuffle.prototype._getColumnSpan = function( itemWidth, columnWidth, columns ) { + var columnSpan = itemWidth / columnWidth; + + // If the difference between the rounded column span number and the + // calculated column span number is really small, round the number to + // make it fit. + if ( Math.abs(Math.round( columnSpan ) - columnSpan ) < COLUMN_THRESHOLD ) { + // e.g. columnSpan = 4.0089945390298745 + columnSpan = Math.round( columnSpan ); + } + + // Ensure the column span is not more than the amount of columns in the whole layout. + return Math.min( Math.ceil( columnSpan ), columns ); +}; + + +/** + * Retrieves the column set to use for placement. + * @param {number} columnSpan The number of columns this current item spans. + * @param {number} columns The total columns in the grid. + * @return {Array.} An array of numbers represeting the column set. + * @private + */ +Shuffle.prototype._getColumnSet = function( columnSpan, columns ) { + // The item spans only one column. + if ( columnSpan === 1 ) { + return this.positions; + + // The item spans more than one column, figure out how many different + // places it could fit horizontally. + // The group count is the number of places within the positions this block + // could fit, ignoring the current positions of items. + // Imagine a 2 column brick as the second item in a 4 column grid with + // 10px height each. Find the places it would fit: + // [10, 0, 0, 0] + // | | | + // * * * + // + // Then take the places which fit and get the bigger of the two: + // max([10, 0]), max([0, 0]), max([0, 0]) = [10, 0, 0] + // + // Next, find the first smallest number (the short column). + // [10, 0, 0] + // | + // * + // + // And that's where it should be placed! + } else { + var groupCount = columns + 1 - columnSpan; + var groupY = []; + + // For how many possible positions for this item there are. + for ( var i = 0; i < groupCount; i++ ) { + // Find the bigger value for each place it could fit. + groupY[i] = arrayMax( this.positions.slice( i, i + columnSpan ) ); + } + + return groupY; + } +}; + + +/** + * Find index of short column, the first from the left where this item will go. + * + * @param {Array.} positions The array to search for the smallest number. + * @param {number} buffer Optional buffer which is very useful when the height + * is a percentage of the width. + * @return {number} Index of the short column. + * @private + */ +Shuffle.prototype._getShortColumn = function( positions, buffer ) { + var minPosition = arrayMin( positions ); + for (var i = 0, len = positions.length; i < len; i++) { + if ( positions[i] >= minPosition - buffer && positions[i] <= minPosition + buffer ) { + return i; + } + } + return 0; +}; + + +/** + * Hides the elements that don't match our filter. + * @param {jQuery} $collection jQuery collection to shrink. + * @private + */ +Shuffle.prototype._shrink = function( $collection ) { + var $concealed = $collection || this._getConcealedItems(); + + each($concealed, function( item ) { + var $item = $(item); + var itemData = $item.data(); + + // Continuing would add a transitionend event listener to the element, but + // that listener would not execute because the transform and opacity would + // stay the same. + if ( itemData.scale === CONCEALED_SCALE ) { + return; + } + + itemData.scale = CONCEALED_SCALE; + + this.styleQueue.push({ + $item: $item, + point: itemData.point, + scale : CONCEALED_SCALE, + opacity: 0, + callback: function() { + $item.css( 'visibility', 'hidden' ); + } + }); + }, this); +}; + + +/** + * Resize handler. + * @private + */ +Shuffle.prototype._onResize = function() { + // If shuffle is disabled, destroyed, don't do anything + if ( !this.enabled || this.destroyed || this.isTransitioning ) { + return; + } + + // Will need to check height in the future if it's layed out horizontaly + var containerWidth = Shuffle._getOuterWidth( this.element ); + + // containerWidth hasn't changed, don't do anything + if ( containerWidth === this.containerWidth ) { + return; + } + + this.update(); +}; + + +/** + * Returns styles for either jQuery animate or transition. + * @param {Object} opts Transition options. + * @return {!Object} Transforms for transitions, left/top for animate. + * @private + */ +Shuffle.prototype._getStylesForTransition = function( opts ) { + var styles = { + opacity: opts.opacity + }; + + if ( this.supported ) { + styles[ TRANSFORM ] = Shuffle._getItemTransformString( opts.point, opts.scale ); + } else { + styles.left = opts.point.x; + styles.top = opts.point.y; + } + + return styles; +}; + + +/** + * Transitions an item in the grid + * + * @param {Object} opts options. + * @param {jQuery} opts.$item jQuery object representing the current item. + * @param {Point} opts.point A point object with the x and y coordinates. + * @param {number} opts.scale Amount to scale the item. + * @param {number} opts.opacity Opacity of the item. + * @param {Function} opts.callback Complete function for the animation. + * @param {Function} opts.callfront Function to call before transitioning. + * @private + */ +Shuffle.prototype._transition = function( opts ) { + var styles = this._getStylesForTransition( opts ); + this._startItemAnimation( opts.$item, styles, opts.callfront || $.noop, opts.callback || $.noop ); +}; + + +Shuffle.prototype._startItemAnimation = function( $item, styles, callfront, callback ) { + // Transition end handler removes its listener. + function handleTransitionEnd( evt ) { + // Make sure this event handler has not bubbled up from a child. + if ( evt.target === evt.currentTarget ) { + $( evt.target ).off( TRANSITIONEND, handleTransitionEnd ); + callback(); + } + } + + callfront(); + + // Transitions are not set until shuffle has loaded to avoid the initial transition. + if ( !this.initialized ) { + $item.css( styles ); + callback(); + return; + } + + // Use CSS Transforms if we have them + if ( this.supported ) { + $item.css( styles ); + $item.on( TRANSITIONEND, handleTransitionEnd ); + + // Use jQuery to animate left/top + } else { + // Save the deferred object which jQuery returns. + var anim = $item.stop( true ).animate( styles, this.speed, 'swing', callback ); + // Push the animation to the list of pending animations. + this._animations.push( anim.promise() ); + } +}; + + +/** + * Execute the styles gathered in the style queue. This applies styles to elements, + * triggering transitions. + * @param {boolean} noLayout Whether to trigger a layout event. + * @private + */ +Shuffle.prototype._processStyleQueue = function( noLayout ) { + var $transitions = $(); + + // Iterate over the queue and keep track of ones that use transitions. + each(this.styleQueue, function( transitionObj ) { + if ( transitionObj.skipTransition ) { + this._styleImmediately( transitionObj ); + } else { + $transitions = $transitions.add( transitionObj.$item ); + this._transition( transitionObj ); + } + }, this); + + + if ( $transitions.length > 0 && this.initialized ) { + // Set flag that shuffle is currently in motion. + this.isTransitioning = true; + + if ( this.supported ) { + this._whenCollectionDone( $transitions, TRANSITIONEND, this._movementFinished ); + + // The _transition function appends a promise to the animations array. + // When they're all complete, do things. + } else { + this._whenAnimationsDone( this._movementFinished ); + } + + // A call to layout happened, but none of the newly filtered items will + // change position. Asynchronously fire the callback here. + } else if ( !noLayout ) { + defer( this._layoutEnd, this ); + } + + // Remove everything in the style queue + this.styleQueue.length = 0; +}; + + +/** + * Apply styles without a transition. + * @param {Object} opts Transitions options object. + * @private + */ +Shuffle.prototype._styleImmediately = function( opts ) { + Shuffle._skipTransition(opts.$item[0], function() { + opts.$item.css( this._getStylesForTransition( opts ) ); + }, this); +}; + +Shuffle.prototype._movementFinished = function() { + this.isTransitioning = false; + this._layoutEnd(); +}; + +Shuffle.prototype._layoutEnd = function() { + this._fire( Shuffle.EventType.LAYOUT ); +}; + +Shuffle.prototype._addItems = function( $newItems, addToEnd, isSequential ) { + // Add classes and set initial positions. + this._initItems( $newItems ); + + // Add transition to each item. + this._setTransitions( $newItems ); + + // Update the list of + this.$items = this._getItems(); + + // Shrink all items (without transitions). + this._shrink( $newItems ); + each(this.styleQueue, function( transitionObj ) { + transitionObj.skipTransition = true; + }); + + // Apply shrink positions, but do not cause a layout event. + this._processStyleQueue( true ); + + if ( addToEnd ) { + this._addItemsToEnd( $newItems, isSequential ); + } else { + this.shuffle( this.lastFilter ); + } +}; + + +Shuffle.prototype._addItemsToEnd = function( $newItems, isSequential ) { + // Get ones that passed the current filter + var $passed = this._filter( null, $newItems ); + var passed = $passed.get(); + + // How many filtered elements? + this._updateItemCount(); + + this._layout( passed, true ); + + if ( isSequential && this.supported ) { + this._setSequentialDelay( passed ); + } + + this._revealAppended( passed ); +}; + + +/** + * Triggers appended elements to fade in. + * @param {ArrayLike.} $newFilteredItems Collection of elements. + * @private + */ +Shuffle.prototype._revealAppended = function( newFilteredItems ) { + defer(function() { + each(newFilteredItems, function( el ) { + var $item = $( el ); + this._transition({ + $item: $item, + opacity: 1, + point: $item.data('point'), + scale: DEFAULT_SCALE + }); + }, this); + + this._whenCollectionDone($(newFilteredItems), TRANSITIONEND, function() { + $(newFilteredItems).css( TRANSITION_DELAY, '0ms' ); + this._movementFinished(); + }); + }, this, this.revealAppendedDelay); +}; + + +/** + * Execute a function when an event has been triggered for every item in a collection. + * @param {jQuery} $collection Collection of elements. + * @param {string} eventName Event to listen for. + * @param {Function} callback Callback to execute when they're done. + * @private + */ +Shuffle.prototype._whenCollectionDone = function( $collection, eventName, callback ) { + var done = 0; + var items = $collection.length; + var self = this; + + function handleEventName( evt ) { + if ( evt.target === evt.currentTarget ) { + $( evt.target ).off( eventName, handleEventName ); + done++; + + // Execute callback if all items have emitted the correct event. + if ( done === items ) { + callback.call( self ); + } + } + } + + // Bind the event to all items. + $collection.on( eventName, handleEventName ); +}; + + +/** + * Execute a callback after jQuery `animate` for a collection has finished. + * @param {Function} callback Callback to execute when they're done. + * @private + */ +Shuffle.prototype._whenAnimationsDone = function( callback ) { + $.when.apply( null, this._animations ).always( $.proxy( function() { + this._animations.length = 0; + callback.call( this ); + }, this )); +}; + + +/** + * Public Methods + */ + +/** + * The magic. This is what makes the plugin 'shuffle' + * @param {string|Function} [category] Category to filter by. Can be a function + * @param {Object} [sortObj] A sort object which can sort the filtered set + */ +Shuffle.prototype.shuffle = function( category, sortObj ) { + if ( !this.enabled || this.isTransitioning ) { + return; + } + + if ( !category ) { + category = ALL_ITEMS; + } + + this._filter( category ); + + // How many filtered elements? + this._updateItemCount(); + + // Shrink each concealed item + this._shrink(); + + // Update transforms on .filtered elements so they will animate to their new positions + this.sort( sortObj ); +}; + + +/** + * Gets the .filtered elements, sorts them, and passes them to layout. + * @param {Object} opts the options object for the sorted plugin + */ +Shuffle.prototype.sort = function( opts ) { + if ( this.enabled && !this.isTransitioning ) { + this._resetCols(); + + var sortOptions = opts || this.lastSort; + var items = this._getFilteredItems().sorted( sortOptions ); + + this._layout( items ); + + this.lastSort = sortOptions; + } +}; + + +/** + * Reposition everything. + * @param {boolean} isOnlyLayout If true, column and gutter widths won't be + * recalculated. + */ +Shuffle.prototype.update = function( isOnlyLayout ) { + if ( this.enabled && !this.isTransitioning ) { + + if ( !isOnlyLayout ) { + // Get updated colCount + this._setColumns(); + } + + // Layout items + this.sort(); + } +}; + + +/** + * Use this instead of `update()` if you don't need the columns and gutters updated + * Maybe an image inside `shuffle` loaded (and now has a height), which means calculations + * could be off. + */ +Shuffle.prototype.layout = function() { + this.update( true ); +}; + + +/** + * New items have been appended to shuffle. Fade them in sequentially + * @param {jQuery} $newItems jQuery collection of new items + * @param {boolean} [addToEnd=false] If true, new items will be added to the end / bottom + * of the items. If not true, items will be mixed in with the current sort order. + * @param {boolean} [isSequential=true] If false, new items won't sequentially fade in + */ +Shuffle.prototype.appended = function( $newItems, addToEnd, isSequential ) { + this._addItems( $newItems, addToEnd === true, isSequential !== false ); +}; + + +/** + * Disables shuffle from updating dimensions and layout on resize + */ +Shuffle.prototype.disable = function() { + this.enabled = false; +}; + + +/** + * Enables shuffle again + * @param {boolean} [isUpdateLayout=true] if undefined, shuffle will update columns and gutters + */ +Shuffle.prototype.enable = function( isUpdateLayout ) { + this.enabled = true; + if ( isUpdateLayout !== false ) { + this.update(); + } +}; + + +/** + * Remove 1 or more shuffle items + * @param {jQuery} $collection A jQuery object containing one or more element in shuffle + * @return {Shuffle} The shuffle object + */ +Shuffle.prototype.remove = function( $collection ) { + + // If this isn't a jquery object, exit + if ( !$collection.length || !$collection.jquery ) { + return; + } + + function handleRemoved() { + // Remove the collection in the callback + $collection.remove(); + + // Update things now that elements have been removed. + this.$items = this._getItems(); + this._updateItemCount(); + + this._fire( Shuffle.EventType.REMOVED, [ $collection, this ] ); + + // Let it get garbage collected + $collection = null; + } + + // Hide collection first. + this._toggleFilterClasses( $(), $collection ); + this._shrink( $collection ); + + this.sort(); + + this.$el.one( Shuffle.EventType.LAYOUT + '.' + SHUFFLE, $.proxy( handleRemoved, this ) ); +}; + + +/** + * Destroys shuffle, removes events, styles, and classes + */ +Shuffle.prototype.destroy = function() { + // If there is more than one shuffle instance on the page, + // removing the resize handler from the window would remove them + // all. This is why a unique value is needed. + $window.off('.' + this.unique); + + // Reset container styles + this.$el + .removeClass( SHUFFLE ) + .removeAttr('style') + .removeData( SHUFFLE ); + + // Reset individual item styles + this.$items + .removeAttr('style') + .removeData('point') + .removeData('scale') + .removeClass([ + Shuffle.ClassName.CONCEALED, + Shuffle.ClassName.FILTERED, + Shuffle.ClassName.SHUFFLE_ITEM + ].join(' ')); + + // Null DOM references + this.$items = null; + this.$el = null; + this.sizer = null; + this.element = null; + + // Set a flag so if a debounced resize has been triggered, + // it can first check if it is actually destroyed and not doing anything + this.destroyed = true; +}; + + +// Plugin definition +$.fn.shuffle = function( opts ) { + var args = Array.prototype.slice.call( arguments, 1 ); + return this.each(function() { + var $this = $( this ); + var shuffle = $this.data( SHUFFLE ); + + // If we don't have a stored shuffle, make a new one and save it + if ( !shuffle ) { + shuffle = new Shuffle( this, opts ); + $this.data( SHUFFLE, shuffle ); + } else if ( typeof opts === 'string' && shuffle[ opts ] ) { + shuffle[ opts ].apply( shuffle, args ); + } + }); +}; + + +// http://stackoverflow.com/a/962890/373422 +function randomize( array ) { + var tmp, current; + var top = array.length; + + if ( !top ) { + return array; + } + + while ( --top ) { + current = Math.floor( Math.random() * (top + 1) ); + tmp = array[ current ]; + array[ current ] = array[ top ]; + array[ top ] = tmp; + } + + return array; +} + + +// You can return `undefined` from the `by` function to revert to DOM order +// This plugin does NOT return a jQuery object. It returns a plain array because +// jQuery sorts everything in DOM order. +$.fn.sorted = function(options) { + var opts = $.extend({}, $.fn.sorted.defaults, options); + var arr = this.get(); + var revert = false; + + if ( !arr.length ) { + return []; + } + + if ( opts.randomize ) { + return randomize( arr ); + } + + // Sort the elements by the opts.by function. + // If we don't have opts.by, default to DOM order + if ( $.isFunction( opts.by ) ) { + arr.sort(function(a, b) { + + // Exit early if we already know we want to revert + if ( revert ) { + return 0; + } + + var valA = opts.by($(a)); + var valB = opts.by($(b)); + + // If both values are undefined, use the DOM order + if ( valA === undefined && valB === undefined ) { + revert = true; + return 0; + } + + if ( valA < valB || valA === 'sortFirst' || valB === 'sortLast' ) { + return -1; + } + + if ( valA > valB || valA === 'sortLast' || valB === 'sortFirst' ) { + return 1; + } + + return 0; + }); + } + + // Revert to the original array if necessary + if ( revert ) { + return this.get(); + } + + if ( opts.reverse ) { + arr.reverse(); + } + + return arr; +}; + + +$.fn.sorted.defaults = { + reverse: false, // Use array.reverse() to reverse the results + by: null, // Sorting function + randomize: false // If true, this will skip the sorting and return a randomized order in the array +}; + +return Shuffle; + +}); \ No newline at end of file diff --git a/js/mydoc_scroll.html b/js/mydoc_scroll.html new file mode 100644 index 0000000000..292f6e984a --- /dev/null +++ b/js/mydoc_scroll.html @@ -0,0 +1,1674 @@ + + + + + + + + +Scroll layout | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
 
+ +
+ + + +
+ + + + + + + + + + + + + + +
+ + + + +
+
+

Scroll layout

+
+ + + +
+ + +
This page demonstrates how you the integration of a script called ScrollTo, which is used here to link definitions of a JSON code sample to a list of definitions for that particular term. The scenario here is that the JSON blocks are really long, with extensive nesting and subnesting, which makes it difficult for tables below the JSON to adequately explain the term in a usable way.
+ + + + + + + +
+ + + + + + + + + + Edit me + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + + + + +
+ + Tags: + + + + + +
+ + + +
+ +
+ +
+
+ +
+
+ + +
+ +
+ +
+
+ + + diff --git a/js/toc.js b/js/toc.js new file mode 100644 index 0000000000..a54d172efc --- /dev/null +++ b/js/toc.js @@ -0,0 +1,82 @@ +// https://github.com/ghiculescu/jekyll-table-of-contents +(function($){ + $.fn.toc = function(options) { + var defaults = { + noBackToTopLinks: false, + title: '', + minimumHeaders: 3, + headers: 'h1, h2, h3, h4', + listType: 'ol', // values: [ol|ul] + showEffect: 'show', // values: [show|slideDown|fadeIn|none] + showSpeed: 'slow' // set to 0 to deactivate effect + }, + settings = $.extend(defaults, options); + + var headers = $(settings.headers).filter(function() { + // get all headers with an ID + var previousSiblingName = $(this).prev().attr( "name" ); + if (!this.id && previousSiblingName) { + this.id = $(this).attr( "id", previousSiblingName.replace(/\./g, "-") ); + } + return this.id; + }), output = $(this); + if (!headers.length || headers.length < settings.minimumHeaders || !output.length) { + return; + } + + if (0 === settings.showSpeed) { + settings.showEffect = 'none'; + } + + var render = { + show: function() { output.hide().html(html).show(settings.showSpeed); }, + slideDown: function() { output.hide().html(html).slideDown(settings.showSpeed); }, + fadeIn: function() { output.hide().html(html).fadeIn(settings.showSpeed); }, + none: function() { output.html(html); } + }; + + var get_level = function(ele) { return parseInt(ele.nodeName.replace("H", ""), 10); } + var highest_level = headers.map(function(_, ele) { return get_level(ele); }).get().sort()[0]; + var return_to_top = ' '; + + var level = get_level(headers[0]), + this_level, + html = settings.title + " <"+settings.listType+">"; + headers.on('click', function() { + if (!settings.noBackToTopLinks) { + window.location.hash = this.id; + } + }) + .addClass('clickable-header') + .each(function(_, header) { + this_level = get_level(header); + if (!settings.noBackToTopLinks && this_level === highest_level) { + $(header).addClass('top-level-header').after(return_to_top); + } + if (this_level === level) // same level as before; same indenting + html += "
  • " + header.innerHTML + ""; + else if (this_level <= level){ // higher level than before; end parent ol + for(i = this_level; i < level; i++) { + html += "
  • " + } + html += "
  • " + header.innerHTML + ""; + } + else if (this_level > level) { // lower level than before; expand the previous to contain a ol + for(i = this_level; i > level; i--) { + html += "<"+settings.listType+">
  • " + } + html += "" + header.innerHTML + ""; + } + level = this_level; // update for the next one + }); + html += ""; + if (!settings.noBackToTopLinks) { + $(document).on('click', '.back-to-top', function() { + $(window).scrollTop(0); + window.location.hash = ''; + }); + } + + render[settings.showEffect](); + }; +})(jQuery); \ No newline at end of file diff --git a/license.html b/license.html new file mode 100644 index 0000000000..5b866d2611 --- /dev/null +++ b/license.html @@ -0,0 +1,1684 @@ + + + + + + + + +License | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    License

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    This product is licensed under a “BSD-style” license; see below for the full text.

    + +

    Part of this product (mostly the package net.sourceforge.pmd.lang.vm) +is licensed under the Apache License, Version 2.0; +see below for the full text.

    + +

    BSD-style license

    + +
    +Copyright (c) 2002-2009, InfoEther, Inc
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +    * Redistributions of source code must retain the above copyright
    +      notice, this list of conditions and the following disclaimer.
    +    * Redistributions in binary form must reproduce the above copyright
    +      notice, this list of conditions and the following disclaimer in the
    +      documentation and/or other materials provided with the distribution.
    +    * The end-user documentation included with the redistribution, if
    +      any, must include the following acknowledgement:
    +      "This product includes software developed in part by support from
    +      the Defense Advanced Research Project Agency (DARPA)"
    +    * Neither the name of InfoEther, LLC nor the names of its
    +      contributors may be used to endorse or promote products derived from
    +      this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
    +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
    +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    + +

    Apache License, Version 2.0

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/licenses/LICENSE b/licenses/LICENSE new file mode 100644 index 0000000000..e04b3d02e3 --- /dev/null +++ b/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Tom Johnson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/LICENSE-BSD-NAVGOCO.txt b/licenses/LICENSE-BSD-NAVGOCO.txt new file mode 100644 index 0000000000..7fdefc3903 --- /dev/null +++ b/licenses/LICENSE-BSD-NAVGOCO.txt @@ -0,0 +1,27 @@ +/* This license pertains to the Navgoco jQuery component used for the sidebar. */ + +Copyright (c) 2013, Christodoulos Tsoulloftas, http://www.komposta.net +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/news.html b/news.html new file mode 100644 index 0000000000..cde532d205 --- /dev/null +++ b/news.html @@ -0,0 +1,1435 @@ + + + + + + + + +News | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    News

    +
    + + + +
    + + + + + + + + + + + + Edit me + + + +
    + +
    + + +

    RSS Subscribe

    + +
    +

    See more posts from the News Archive.

    + +
    +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/news_archive.html b/news_archive.html new file mode 100644 index 0000000000..ebd22d5d2c --- /dev/null +++ b/news_archive.html @@ -0,0 +1,1436 @@ + + + + + + + + +News | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    News

    +
    + + + +
    + + + + + + + + + + + + Edit me + + + +
    + +
    + + +
    +

    This year's posts

    + + +
    +
    +
    +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_about_help.html b/pmd_about_help.html new file mode 100644 index 0000000000..dfdd4f764d --- /dev/null +++ b/pmd_about_help.html @@ -0,0 +1,1460 @@ + + + + + + + + +Getting Help | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Getting Help

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    There are numerous ways of getting help:

    + + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_apex_metrics_index.html b/pmd_apex_metrics_index.html new file mode 100644 index 0000000000..3d86c8a424 --- /dev/null +++ b/pmd_apex_metrics_index.html @@ -0,0 +1,1514 @@ + + + + + + + + +Index of Apex code metrics | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Index of Apex code metrics

    +
    + + + +
    + + +
    Index of the code metrics available out of the box to Apex rule developers.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Index of code metrics

    + +

    Cyclomatic Complexity (CYCLO)

    + +

    Operation metric. Can be calculated on any non-abstract operation.

    + +

    Description

    + +

    Number of independent paths through a block of code [Lanza05]. +Formally, given that the control flow graph of the block has n vertices, e +edges and p connected components, the cyclomatic complexity of the block is +given by CYCLO = e - n + 2p [McCabe76]. In practice it can be +calculated by counting control flow statements following the standard rules given +below.

    + +

    The standard version of the metric complies with McCabe’s original definition:

    + +
      +
    • Methods have a base complexity of 1.
    • +
    • +1 for every control flow statement (if, catch, throw, do, +while, for, break, continue) and conditional expression (?:).
    • +
    • else, finally and default don’t count;
    • +
    • +1 for every boolean operator (&&, ||) in the guard condition of a control +flow statement.
    • +
    + +

    Code examples

    + +
    class Foo {
    +  void baseCyclo() {                // Cyclo = 1
    +    highCyclo();
    +  }
    +  
    +  void highCyclo() {                // Cyclo = 10
    +    int x = 0, y = 2;
    +    boolean a = false, b = true;
    +    
    +    if (a && (y == 1 ? b : true)) { // +3
    +      if (y == x) {                 // +1
    +        while (true) {              // +1
    +          if (x++ < 20) {           // +1
    +            break;                  // +1
    +          }
    +        }
    +      } else if (y == t && !d) {    // +2
    +        x = a ? y : x;              // +1
    +      } else {
    +        x = 2;
    +      }
    +    }  
    +  }     
    +}
    +
    + +

    Weighted Method Count (WMC)

    + +

    Class metric. Can be computed on classes and enums.

    + +

    References

    + +

    Lanza05: Lanza, Marinescu; Object-Oriented Metrics in Practice, 2005.

    + +

    McCabe76: McCabe, A Complexity Measure, in Proceedings of the 2nd ICSE (1976).

    + + +
    + + Tags: + + + + extending + + + + metrics + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_building.html b/pmd_devdocs_building.html new file mode 100644 index 0000000000..0214039150 --- /dev/null +++ b/pmd_devdocs_building.html @@ -0,0 +1,1530 @@ + + + + + + + + +Building PMD from source | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Building PMD from source

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + + + + +

    Compiling PMD

    + +
      +
    • JDK 11 or higher
    • +
    + + + +

    You’ll need to either check out the source code or download the latest source release. Assuming you’ve got the latest source release, unzip it to a directory:

    + +
    [tom@hal building]$ ls -l
    +total 5716
    +-rw-rw-r--    1 tom      tom       5837216 Jul 17 13:09 pmd-src-6.30.0-SNAPSHOT.zip
    +[tom@hal building]$ unzip -q pmd-src-6.30.0-SNAPSHOT.zip
    +[tom@hal building]$
    +
    + +

    Now cd down into the pmd directory:

    + +
    [tom@hal building]$ cd pmd-src-6.30.0-SNAPSHOT
    +[tom@hal pmd-src-6.30.0-SNAPSHOT]$ ls -l | grep pom.xml
    +-rw-rw-r--    1 tom      tom          36482 14\. Nov 17:36 pom.xml
    +[tom@hal pmd-src-6.30.0-SNAPSHOT]$
    +
    + +

    That’s the project configuration for maven… let’s compile!

    + +
    [tom@hal pmd-src-6.30.0-SNAPSHOT]$ ./mvnw clean verify
    +[INFO] Scanning for projects...
    +[INFO] ------------------------------------------------------------------------
    +[INFO] Reactor Build Order:
    +[INFO]
    +[INFO] PMD
    +[INFO] PMD Core
    +...
    +... after a few minutes ...
    +[INFO] ------------------------------------------------------------------------
    +[INFO] Reactor Summary:
    +[INFO]
    +[INFO] PMD ................................................ SUCCESS [  3.061 s]
    +[INFO] PMD Core ........................................... SUCCESS [ 25.675 s]
    +[INFO] PMD Test Framework ................................. SUCCESS [  0.457 s]
    +[INFO] PMD C++ ............................................ SUCCESS [  1.893 s]
    +[INFO] PMD C# ............................................. SUCCESS [  0.619 s]
    +[INFO] PMD Fortran ........................................ SUCCESS [  0.609 s]
    +[INFO] PMD Go ............................................. SUCCESS [  0.103 s]
    +[INFO] PMD Java ........................................... SUCCESS [01:08 min]
    +[INFO] PMD JavaScript ..................................... SUCCESS [  3.279 s]
    +[INFO] PMD JSP ............................................ SUCCESS [  3.944 s]
    +[INFO] PMD Matlab ......................................... SUCCESS [  1.342 s]
    +[INFO] PMD Objective-C .................................... SUCCESS [  2.281 s]
    +[INFO] PMD PHP ............................................ SUCCESS [  0.536 s]
    +[INFO] PMD PL/SQL ......................................... SUCCESS [ 10.973 s]
    +[INFO] PMD Python ......................................... SUCCESS [  1.758 s]
    +[INFO] PMD Ruby ........................................... SUCCESS [  0.438 s]
    +[INFO] PMD Velocity ....................................... SUCCESS [  3.941 s]
    +[INFO] PMD XML and XSL .................................... SUCCESS [  2.174 s]
    +[INFO] PMD Scala .......................................... SUCCESS [ 11.901 s]
    +[INFO] PMD Distribution Packages .......................... SUCCESS [ 11.366 s]
    +[INFO] PMD Java 8 Integration ............................. SUCCESS [  0.560 s]
    +[INFO] ------------------------------------------------------------------------
    +[INFO] BUILD SUCCESS
    +[INFO] ------------------------------------------------------------------------
    +[INFO] Total time: 02:36 min
    +[INFO] Finished at: 2015-11-14T17:46:06+01:00
    +[INFO] Final Memory: 63M/765M
    +[INFO] ------------------------------------------------------------------------
    +[tom@hal pmd-src-6.30.0-SNAPSHOT]$
    +
    + +

    Now the source and binary distribution zip files can be found in the folder pmd-dist/target.

    + +

    Notes:

    + +
      +
    • The rules that have already been written are specified in the src/main/resources/rulesets/ directories of +the specific languages, e.g. pmd-java/src/main/resources/rulesets. +They’re also in the jar file that’s included with both the source and binary distributions.
    • +
    + +

    A paucity of detail, I’m sure you’d agree. If you think this document can be improved, +please post here and let me know how. Thanks!

    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_development.html b/pmd_devdocs_development.html new file mode 100644 index 0000000000..d8765c7e34 --- /dev/null +++ b/pmd_devdocs_development.html @@ -0,0 +1,1478 @@ + + + + + + + + +Developer Resources | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Developer Resources

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The next version of PMD will be developed in parallel with this release. We will release additional bugfix versions as needed.

    + +

    Source Code

    + +

    The complete source code can be found on github:

    + + + +

    Continuous Integration

    + +

    We use Travis CI as our ci service. The main repo and the eclipse plugin are built for +every push. Each pull request is built as well.

    + +

    The maven snapshot artifacts are deployed at Sonatypes OSS snapshot repository.

    + +

    Ready-to-use binary packages are uploaded to sourceforge at https://sourceforge.net/projects/pmd/files/pmd/.

    + +

    Documentation and Webpages

    + +

    A snapshot of the web site for the new version is generated travis-ci as well.

    + +

    Contributing

    + +

    First off, thanks for taking the time to contribute!

    + +

    Please have a look at CONTRIBUTING.md and +BUILDING.md.

    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_experimental_ast_dump.html b/pmd_devdocs_experimental_ast_dump.html new file mode 100644 index 0000000000..fb5dda8236 --- /dev/null +++ b/pmd_devdocs_experimental_ast_dump.html @@ -0,0 +1,1548 @@ + + + + + + + + +Creating XML dump of the AST | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Creating XML dump of the AST

    +
    + + + +
    + + +
    Creating a XML representation of the AST allows to analyze the AST with other tools.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Command line usage

    + +
    $ run.sh ast-dump --help
    +Usage: ast-dump [options]
    +  Options:
    +    --encoding, -e
    +      Encoding of the source file.
    +      Default: UTF-8
    +    --file
    +      The file to dump
    +    --format, -f
    +      The output format.
    +      Default: xml
    +    --help, -h
    +      Display usage.
    +    --language, -l
    +      Specify the language to use.
    +      Default: java
    +    --read-stdin, -i
    +      Read source from standard input
    +      Default: false
    +    -P
    +      Properties for the renderer.
    +      Syntax: -Pkey=value
    +      Default: {}
    +
    +Available languages: apex ecmascript java jsp modelica plsql pom scala text vf vm wsdl xml xsl 
    +Available formats: xml                           XML format with the same structure as the one used in XPath
    ++ Properties                  
    +  + singleQuoteAttributes         Use single quotes to delimit attribute values (default true)
    +  + lineSeparator                 Line separator to use. The default is platform-specific. (default \n)
    +  + renderProlog                  True to output a prolog (default true)
    +  + renderCommonAttributes        True to render attributes like BeginLine, EndLine, etc. (default false)
    +
    + +

    Example

    + +
    $ cat Foo.java
    +public class Foo {
    +  int a;
    +}
    +
    +$ run.sh ast-dump --format xml --language java --file Foo.java > Foo.xml
    +-------------------------------------------------------------------------------
    +This command line utility is experimental. It might change at any time without
    +prior notice.
    +-------------------------------------------------------------------------------
    +
    +$ cat Foo.xml
    +<?xml version='1.0' encoding='UTF-8' ?>
    +<CompilationUnit Image='' PackageName='' declarationsAreInDefaultPackage='true'>
    +    <TypeDeclaration Image=''>
    +        <ClassOrInterfaceDeclaration Abstract='false' BinaryName='Foo' Default='false' Final='false' Image='Foo' Interface='false' Local='false' Modifiers='1' Native='false' Nested='false' PackagePrivate='false' Private='false' Protected='false' Public='true' SimpleName='Foo' Static='false' Strictfp='false' Synchronized='false' Transient='false' TypeKind='CLASS' Volatile='false'>
    +            <ClassOrInterfaceBody AnonymousInnerClass='false' EnumChild='false' Image=''>
    +                <ClassOrInterfaceBodyDeclaration AnonymousInnerClass='false' EnumChild='false' Image='' Kind='FIELD'>
    +                    <FieldDeclaration Abstract='false' AnnotationMember='false' Array='false' ArrayDepth='0' Default='false' Final='false' Image='' InterfaceMember='false' Modifiers='0' Native='false' PackagePrivate='true' Private='false' Protected='false' Public='false' Static='false' Strictfp='false' Synchronized='false' SyntacticallyFinal='false' SyntacticallyPublic='false' SyntacticallyStatic='false' Transient='false' VariableName='a' Volatile='false'>
    +                        <Type Array='false' ArrayDepth='0' ArrayType='false' Image='' TypeImage='int'>
    +                            <PrimitiveType Array='false' ArrayDepth='0' Boolean='false' Image='int' />
    +                        </Type>
    +                        <VariableDeclarator Image='' Initializer='false' Name='a'>
    +                            <VariableDeclaratorId Array='false' ArrayDepth='0' ArrayType='false' ExceptionBlockParameter='false' ExplicitReceiverParameter='false' Field='true' Final='false' FormalParameter='false' Image='a' LambdaParameter='false' LocalVariable='false' ResourceDeclaration='false' TypeInferred='false' VariableName='a' />
    +                        </VariableDeclarator>
    +                    </FieldDeclaration>
    +                </ClassOrInterfaceBodyDeclaration>
    +            </ClassOrInterfaceBody>
    +        </ClassOrInterfaceDeclaration>
    +    </TypeDeclaration>
    +</CompilationUnit>
    +
    +$ xmlstarlet select -t -c "//VariableDeclaratorId[@VariableName='a']" Foo.xml
    +<VariableDeclaratorId Array="false" ArrayDepth="0" ArrayType="false" ExceptionBlockParameter="false" ExplicitReceiverParameter="false" Field="true" Final="false" FormalParameter="false" Image="a" LambdaParameter="false" LocalVariable="false" ResourceDeclaration="false" TypeInferred="false" VariableName="a"/>
    +
    + +

    This example uses xmlstarlet to query the xml document for any variables/fields +with the name “a”.

    + +

    Programmatic usage

    + +

    Just parse your source code to get the AST and pass it on to the XmlTreeRenderer:

    + +
    import java.io.IOException;
    +import java.io.StringReader;
    +
    +import net.sourceforge.pmd.lang.LanguageRegistry;
    +import net.sourceforge.pmd.lang.LanguageVersionHandler;
    +import net.sourceforge.pmd.lang.Parser;
    +import net.sourceforge.pmd.lang.ast.Node;
    +import net.sourceforge.pmd.util.treeexport.XmlTreeRenderer;
    +
    +public class TreeExport {
    +    public static void main(String[] args) throws IOException {
    +        LanguageVersionHandler java = LanguageRegistry.getLanguage("Java").getDefaultVersion().getLanguageVersionHandler();
    +        Parser parser = java.getParser(java.getDefaultParserOptions());
    +        Node root = parser.parse("foo", new StringReader("class Foo {}"));
    +
    +        new XmlTreeRenderer().renderSubtree(root, System.out);
    +    }
    +}
    +
    + + +
    + + Tags: + + + + devdocs + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_how_pmd_works.html b/pmd_devdocs_how_pmd_works.html new file mode 100644 index 0000000000..9cb548b7bf --- /dev/null +++ b/pmd_devdocs_how_pmd_works.html @@ -0,0 +1,1494 @@ + + + + + + + + +How PMD Works | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    How PMD Works

    +
    + + + +
    + + +
    Processing overview of the different steps taken by PMD.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Overview

    + +

    The processing starts e.g. with the main class: net.sourceforge.pmd.PMD

    + + + +
      +
    • Parse command line parameters (see net.sourceforge.pmd.cli.PMDParameters) +Also load the incremental analysis cache file
    • +
    • Load rulesets/rules
    • +
    • Determine languages (rules of different languages might be mixed in rulesets)
    • +
    • Determine files (uses the given source directory, filter by the language’s file extensions)
    • +
    • Prepare the renderer
    • +
    • Sort the files by name
    • +
    • Check whether we can use the incremental analysis cache (if the rulesets changed, it will be invalid)
    • +
    • Prepare the SourceCodeProcessor based on the configuration
    • +
    • Analyze the files. Either single threaded or multi-threaded parallel. This task is encapsulated +in net.sourceforge.pmd.processor.PMDRunnable: +
        +
      • Create input stream
      • +
      • Call source code processor (net.sourceforge.pmd.SourceCodeProcessor): +
          +
        1. Determine the language
        2. +
        3. Check whether the file is already analyzed and a result is available from the analysis cache
        4. +
        5. Parse the source code. Result is the root AST node.
        6. +
        7. Always run the SymbolFacade visitor. It builds scopes, finds declarations and usages.
        8. +
        9. Run DFA (data flow analysis) visitor (if at least one rule requires it) for building +control flow graphs and data flow nodes.
        10. +
        11. Run TypeResolution visitor (if at least one rule requires it)
        12. +
        13. FUTURE: Run multifile analysis (if at least one rule requires it)
        14. +
        15. Execute the rules: +
            +
          • First run the rules that opted in for the rule chain mechanism
          • +
          • Run all the other rules and let them traverse the AST. The rules can use the symbol table, +type resolution information and DFA nodes.
          • +
          • The rules will report found problems as RuleViolations.
          • +
          +
        16. +
        +
      • +
      +
    • +
    • Render the found violations into the wanted format (XML, text, HTML, …)
    • +
    • Store the incremental analysis cache
    • +
    • Depending on the number of violations found, exit with code 0 or 4.
    • +
    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_major_adding_new_cpd_language.html b/pmd_devdocs_major_adding_new_cpd_language.html new file mode 100644 index 0000000000..95f8588eb1 --- /dev/null +++ b/pmd_devdocs_major_adding_new_cpd_language.html @@ -0,0 +1,1593 @@ + + + + + + + + +How to add a new CPD language | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    How to add a new CPD language

    +
    + + + +
    + + +
    How to add a new CPD language
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    First of all, thanks for the contribution!

    + +

    Happily for you, to add CPD support for a new language is now easier than ever!

    + +
    Pro Tip: If you wish to add a new language, there are more than 50 languages you could easily add with just an Antlr grammar.
    + +

    All you need to do is follow this few steps:

    + +
      +
    1. Create a new module for your language, you can take GO as an example
    2. +
    3. +

      Create a Tokenizer

      + +
        +
      • For Antlr grammars you can take the grammar from here and extend AntlrTokenizer taking Go as an example
      • +
      + +
         public class GoTokenizer extends AntlrTokenizer {    
      +        
      +       @Override protected AntlrTokenManager getLexerForSource(SourceCode sourceCode) {   
      +           CharStream charStream = AntlrTokenizer.getCharStreamFromSourceCode(sourceCode);   
      +           return new AntlrTokenManager(new GolangLexer(charStream), sourceCode.getFileName());   
      +       }
      +   }
      +
      + + +
    4. +
    5. +

      Create your Language class

      + +
       public class GoLanguage extends AbstractLanguage {    
      +        
      +     public GoLanguage() {   
      +         super("Go", "go", new GoTokenizer(), ".go");   
      +     }  
      + } 
      +
      + +
      Pro Tip: Yes, keep looking at Go!
      + +

      You are almost there!

      +
    6. +
    7. +

      Update the list of supported languages

      + +
        +
      • +

        Write the fully-qualified name of your Language class to the file src/main/resources/META-INF/services/net.sourceforge.pmd.cpd.Language

        +
      • +
      • +

        Update the test that asserts the list of supported languages by updating the SUPPORTED_LANGUAGES constant in BinaryDistributionIT

        +
      • +
      +
    8. +
    9. +

      Please don’t forget to add some test, you can again.. look at Go implementation ;)

      + +

      If you read this far, I’m keen to think you would also love to support some extra CPD configuration (ignore imports or crazy things like that)
      + If that’s your case , you came to the right place!

      +
    10. +
    11. +

      You can add your custom properties using a Token filter

      + + +
    12. +
    + +

    Testing your implementation

    + +

    Add a Maven dependency on pmd-lang-test (scope test) in your pom.xml. +This contains utilities to test your Tokenizer.

    + +

    For simple tests, create a test class extending from CpdTextComparisonTest. +That class is written in Kotlin, but you can extend it in Java as well.

    + +

    To add tests, you need to write regular JUnit @Test-annotated methods, and +call the method doTest with the name of the test file.

    + +

    For example, for the Dart language:

    + +
    
    +public class DartTokenizerTest extends CpdTextComparisonTest {
    +
    +    /**********************************
    +      Implementation of the superclass
    +    ***********************************/
    +
    +
    +    public DartTokenizerTest() {
    +        super(".dart"); // the file extension for the dart language
    +    }
    +
    +    @Override
    +    protected String getResourcePrefix() {
    +        // If your class is in                  src/test/java     /some/package
    +        // you need to place the test files in  src/test/resources/some/package/cpdData
    +        return "cpdData";
    +    }
    +
    +    @Override
    +    public Tokenizer newTokenizer() {
    +        // Override this abstract method to return the correct tokenizer
    +        return new DartTokenizer();
    +    }
    +
    +    /**************
    +      Test methods
    +    ***************/
    +
    +
    +    @Test  // don't forget the JUnit annotation
    +    public void testLiterals() {
    +        // This will look for a file named literals.dart
    +        // in the directory identified by getResourcePrefix,
    +        // tokenize it, then compare the result against a baseline
    +        // literals.txt file in the same directory
    +
    +        // If the baseline file does not exist, it is created automatically
    +        doTest("literals");
    +    }
    +
    +}
    +
    + + +
    + + Tags: + + + + devdocs + + + + extending + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_major_adding_new_language.html b/pmd_devdocs_major_adding_new_language.html new file mode 100644 index 0000000000..b0facf01e3 --- /dev/null +++ b/pmd_devdocs_major_adding_new_language.html @@ -0,0 +1,1640 @@ + + + + + + + + +Adding PMD support for a new language | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Adding PMD support for a new language

    +
    + + + +
    + + +
    How to add a new language to PMD.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    1. Start with a new sub-module.

    +
      +
    • See pmd-java or pmd-vm for examples.
    • +
    + +

    2. Implement an AST parser for your language

    +
      +
    • Ideally an AST parser should be implemented as a JJT file (see VmParser.jjt or Java.jjt for example)
    • +
    • There is nothing preventing any other parser implementation, as long as you have some way to convert an input stream into an AST tree. Doing it as a JJT simplifies maintenance down the road.
    • +
    • See this link for reference: https://javacc.java.net/doc/JJTree.html
    • +
    + +

    3. Create AST node classes

    +
      +
    • For each AST node that your parser can generate, there should be a class
    • +
    • The name of the AST class should be “AST” + “whatever is the name of the node in JJT file”. +
        +
      • For example, if JJT contains a node called “IfStatement”, there should be a class called “ASTIfStatement”
      • +
      +
    • +
    • Each AST class should have two constructors: one that takes an int id; and one that takes an instance of the parser, and an int id
    • +
    • It’s a good idea to create a parent AST class for all AST classes of the language. This simplifies rule creation later. (see SimpleNode for Velocity and AbstractJavaNode for Java for example)
    • +
    • Note: These AST node classes are generated usually once by javacc/jjtree and can then be modified as needed.
    • +
    + +

    4. Compile your parser (if using JJT)

    +
      +
    • An ant script is being used to compile jjt files into classes. This is in pmd-<lang>/src/main/ant/alljavacc.xml file.
    • +
    • Create alljavacc.xml file for your language, you can use one from pmd-java as an example.
    • +
    • You would probably want to adjust contents of the <delete> tag: start with an empty <fileset> and add there <include>s for those AST nodes you had to manually rewrite (moving those node classes from autogenerated directory to the regular source tree).
    • +
    + +

    5. Create a TokenManager

    +
      +
    • Create a new class that implements the TokenManager interface (see VmTokenManager or JavaTokenManager for example)
    • +
    + +

    6. Create a PMD parser “adapter”

    +
      +
    • Create a new class that extends AbstractParser
    • +
    • There are two important methods to implement +
        +
      • createTokenManager method should return a new instance of a token manager for your language (see step #5)
      • +
      • parse method should return the root node of the AST tree obtained by parsing the Reader source
      • +
      • See VmParser class as an example
      • +
      +
    • +
    + +

    7. Create a rule violation factory

    +
      +
    • Extend AbstractRuleViolationFactory (see VmRuleViolationFactory for example)
    • +
    • The purpose of this class is to create a rule violation instance specific to your language
    • +
    + +

    8. Create a version handler

    +
      +
    • Extend AbstractLanguageVersionHandler (see VmHandler for example)
    • +
    • This class is sort of a gateway between PMD and all parsing logic specific to your language. It has 3 purposes: +
        +
      • getRuleViolationFactory method returns an instance of your rule violation factory (see step #7)
      • +
      • getParser returns an instance of your parser adapter (see step #6)
      • +
      • getDumpFacade returns a VisitorStarter that allows to dump a text representation of the AST into a writer (likely for debugging purposes)
      • +
      +
    • +
    + +

    9. Create a parser visitor adapter

    +
      +
    • If you use JJT to generate your parser, it should also generate an interface for a parser visitor (see VmParserVisitor for example)
    • +
    • Create a class that implements this auto-generated interface (see VmParserVisitorAdapter for example)
    • +
    • The purpose of this class is to serve as a pass-through visitor implementation, which, for all AST types in your language, just executes visit on the base AST type
    • +
    + +

    10. Create a rule chain visitor

    +
      +
    • Extend AbstractRuleChainVisitor (see VmRuleChainVisitor for example)
    • +
    • This class should implement two important methods: +
        +
      • indexNodes generates a map of “node type” to “list of nodes of that type”. This is used to visit all applicable nodes when a rule is applied.
      • +
      • visit method should evaluate what kind of rule is being applied, and execute appropriate logic. Usually it will just check if the rule is a “parser visitor” kind of rule specific to your language, then execute the visitor. If it’s an XPath rule, then we just need to execute evaluate on that.
      • +
      +
    • +
    + +

    11. Make PMD recognize your language

    +
      +
    • Create your own subclass of net.sourceforge.pmd.lang.BaseLanguageModule. (see VmLanguageModule or JavaLanguageModule as an example)
    • +
    • You’ll need to refer the rule chain visitor created in step #10.
    • +
    • Add for each version of your language a call to addVersion in your language module’s constructor.
    • +
    • Create the service registration via the text file src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language. Add your fully qualified class name as a single line into it.
    • +
    + +

    12. Add AST regression tests

    + +

    For languages, that use an external library for parsing, the AST can easily change when upgrading the library. +Also for languages, where we have the grammar under our control, it useful to have such tests.

    + +

    The tests parse one or more source files and generate a textual representation of the AST. This text is compared +against a previously recorded version. If there are differences, the test fails.

    + +

    This helps to detect anything in the AST structure, that changed, maybe unexpectedly.

    + +
      +
    • Create a test class in the package net.sourceforge.pmd.lang.$lang.ast with the name $langTreeDumpTest.
    • +
    • This test class must extend net.sourceforge.pmd.lang.ast.test.BaseTreeDumpTest. Note: This class +is written in kotlin and is available in the module “lang-test”.
    • +
    • +

      Add a default constructor, that calls the super constructor like so:

      + +
          public $langTreeDumpTest() {
      +        super(NodePrintersKt.getSimpleNodePrinter(), ".$extension");
      +    }
      +
      + +

      Replace “$lang” and “$extension” accordingly.

      +
    • +
    • Implement the method getParser(). It must return a +subclass of net.sourceforge.pmd.lang.ast.test.BaseParsingHelper. See +net.sourceforge.pmd.lang.ecmascript.ast.JsParsingHelper for a example. +With this parser helper you can also specify, where the test files are searched, by using +the method withResourceContext(Class<?>, String).
    • +
    • +

      Add one or more test methods. Each test method parses one file and compares the result. The base +class has a helper method doTest(String) that does all the work. This method just needs to be called:

      + +
          @Test
      +    public void myFirstAstTest() {
      +        doTest("filename-without-extension");
      +    }
      +
      +
    • +
    • On the first test run the test fails. A text file (with the extension .txt) is created, that records the +current AST. On the next run, the text file is used as comparison and the test should pass. Don’t forget +to commit the generated text file.
    • +
    + +

    A complete example can be seen in the JavaScript module: net.sourceforge.pmd.lang.ecmascript.ast.JsTreeDumpTest. +The test resources are in the subpackage “testdata”: pmd-javascript/src/test/resources/net/sourceforge/pmd/lang/ecmascript/ast/testdata/.

    + +

    The Scala module also has a test, written in Kotlin instead of Java: +net.sourceforge.pmd.lang.scala.ast.ScalaParserTests.

    + +

    13. Create an abstract rule class for the language

    +
      +
    • Extend AbstractRule and implement the parser visitor interface for your language (see AbstractVmRule for example)
    • +
    • All other rules for your language should extend this class. The purpose of this class is to implement visit methods for all AST types to simply delegate to default behavior. This is useful because most rules care only about specific AST nodes, but PMD needs to know what to do with each node - so this just lets you use default behavior for nodes you don’t care about.
    • +
    + +

    14. Create rules

    +
      +
    • Rules are created by extending the abstract rule class created in step 13 (see EmptyForeachStmtRule for example)
    • +
    • Creating rules is already pretty well documented in PMD - and it’s no different for a new language, except you may have different AST nodes.
    • +
    + +

    15. Test the rules

    +
      +
    • See BasicRulesTest for example
    • +
    • You have to create a rule set for your language (see vm/basic.xml for example)
    • +
    • For each rule in this set you want to test, call addRule method in setUp of the unit test +
        +
      • This triggers the unit test to read the corresponding XML file with rule test data (see EmptyForeachStmtRule.xml for example)
      • +
      • This test XML file contains sample pieces of code which should trigger a specified number of violations of this rule. The unit test will execute the rule on this piece of code, and verify that the number of violations matches
      • +
      +
    • +
    • +

      To verify the validity of the created ruleset, create a subclass of AbstractRuleSetFactoryTest (see RuleSetFactoryTest in pmd-vm for example). +This will load all rulesets and verify, that all required attributes are provided.

      + +

      Note: You’ll need to add your ruleset to rulesets.properties, so that it can be found.

      +
    • +
    + +

    Debugging with Rule Designer

    + +

    When implementing your grammar it may be very useful to see how PMD parses your example files. +This can be achieved with Rule Designer:

    +
      +
    • Override the getXPathNodeName in your AST nodes for Designer to show node names.
    • +
    • Make sure to override both jjtOpen and jjtClose in your AST node base class so that they set both start and end line and column for proper node bound highlighting.
    • +
    • Not strictly required but trivial and useful: implement syntax highlighting for Rule Designer: +
        +
      • Fork and clone the pmd/pmd-designer repository.
      • +
      • Add a syntax highlighter implementation to net.sourceforge.pmd.util.fxdesigner.util.codearea.syntaxhighlighting (you could use Java as an example).
      • +
      • Register it in the AvailableSyntaxHighlighters enumeration.
      • +
      • Now build your implementation and place the target/pmd-ui-<version>-SNAPSHOT.jar to the lib directory inside your pmd-bin-... distribution (you have to delete old pmd-ui-*.jar from there).
      • +
      +
    • +
    + + +
    + + Tags: + + + + devdocs + + + + extending + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_major_adding_new_metrics_framework.html b/pmd_devdocs_major_adding_new_metrics_framework.html new file mode 100644 index 0000000000..6150704680 --- /dev/null +++ b/pmd_devdocs_major_adding_new_metrics_framework.html @@ -0,0 +1,1493 @@ + + + + + + + + +Adding support for metrics to a language | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Adding support for metrics to a language

    +
    + + + +
    + + +
    PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. Most of the functionality of this framework is abstracted in such a way that any PMD supported language can implement such a framework without too much trouble. Here's how.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Internal architecture of the metrics framework

    + +

    The framework is pretty simple. On a high level, a Metric<N> describes some numeric computation on a node of type N. +You should wrap it into a MetricKey<N>, so that it can be cached on nodes (implemented by MetricsUtil).

    + +

    At the very least, a metrics framework has those two components and is just a convenient way to compute and memoize +metrics on a single file. The expressive power of metrics can be improved by implementing signature matching capabilities, +which allows a metric to count signatures matching a specific pattern (a mask) over a whole class. This was originally +designed to work across files, given a working usage resolution. However, making that work with incremental analysis is +harder than it looks, and has been rescheduled to another project.

    + +

    Implementation of a new framework

    + +
      +
    • Implement metrics (typically in an internal package)
    • +
    • Create some public enums/ utility classes to expose metric keys
    • +
    • Implement a LanguageMetricsProvider, to expose your metrics to the designer
    • +
    • Use your metric keys in rules with MetricsUtil
    • +
    + +

    Optional: Signature matching

    + +

    You can match the signature of anything: method, field, class, package… It depends on what’s useful for you. +Suppose you want to be able to match signatures for nodes of type N. What you have to do then is the following:

    + +
      +
    • Create a class implementing the interface Signature<N>. Signatures describe basic information about the node, +which typically includes most of the modifiers they declare (eg visibility, abstract or virtual, etc.). +It’s up to you to define the right level of detail, depending on the accuracy of the pattern matching required.
    • +
    • Make type N implement SignedNode<N>. This makes the node capable of giving its signature. Factory methods to +build a Signature<N> from a N are a good idea.
    • +
    • Create signature masks. A mask is an object that matches some signatures based on their features. For example, with + the Java framework, you can build a JavaOperationSigMask that matches all method signatures with visibility + public. A sigmask implements SigMask<S>, where S is the type of signature your mask handles.
    • +
    • Create utility methods in your abstract class metric class to count signatures matching a specific mask. +Example
    • +
    + + + +
    + + Tags: + + + + devdocs + + + + extending + + + + metrics + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html new file mode 100644 index 0000000000..bc20c8a843 --- /dev/null +++ b/pmd_devdocs_pmdtester.html @@ -0,0 +1,1462 @@ + + + + + + + + +Pmdtester | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Pmdtester

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Introduction

    +

    Pmdtester is a regression testing tool that ensures no new problems and unexpected behaviors will be introduced to PMD after fixing an issue. +It can also be used to verify, that new rules work as expected. It has been integrated into travis CI and is actually used automatically for PRs. +Regression difference reports are commented back to the PR for the reviewer’s information e.g. https://github.com/pmd/pmd/pull/1265#issuecomment-408945709

    + +

    Run pmdtester locally

    +

    Install pmdtester

    + +

    gem install pmdtester --pre

    + +

    Verifying your local changes and generate a diff-report locally

    + +

    pmdtester -r YOUR_LOCAL_PMD_GIT_REPO_ROOT_DIR -b master -p YOUR_DEVELOPMENT_BRANCH

    + +

    The regression difference report is placed in the YOUR_WORKING_DIR/target/reports/diff directory.

    + +

    For more documentation on pmdtester, see README.rdoc

    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html new file mode 100644 index 0000000000..b6904117e6 --- /dev/null +++ b/pmd_devdocs_roadmap.html @@ -0,0 +1,1583 @@ + + + + + + + + +Roadmap | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Roadmap

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    TODO:

    + +
      +
    • Update
    • +
    • Future direction
    • +
    • projects, plans
    • +
    • Google Summer of Code
    • +
    + +

    Future directions

    + +

    Want to know what’s coming? Or, better, wanna contribute ? Here is the page listing what are our plans - +when we have ones, for the future of PMD. It also give you hints at part of the code we would like to clean - +that you may want to clean to contribute to the project!

    + +

    Of course, an easy way to contribute is too check out the bug tracker and see if you can fix some issues - +some could be quite easy, we simply have not the time to look at them all!

    + +

    At last, if you want to contribute, register on the pmd-devel mailing list, and come discuss with us!

    + +

    Roadmap

    + +

    This roadmap contains all the different ‘workshops’ PMD’s developers are working right now.

    + +
      +
    • Better symbol analysis: See below.
    • +
    • Data Flow Analysis: See below.
    • +
    • Code Cleanups: See below.
    • +
    + +

    Please note that, of course, there is no warranty about when those ‘features’ will be finished, if they ever are.

    + +

    Better symbol analysis

    + +

    Currently PMD only looks at one source file at a time. Instead, it should resolve symbols across classes. +This will eliminate some open bugs and enable a lot more rules to be written. However, it’ll taken some doing, +because it’ll require parsing of class files. Lots of work here.

    + +

    Data flow analysis (DFA)

    + +

    Raik Schroeder, a graduate student at Fachhochschule Stralsund has written a DFA layer that should enable +us to write some more complicated rules - stuff like common subexpression elimination, loop invariant code motion +(and code hoisting suggestions), shrink wrapping, and partial redundancy elimination. The code is currently in the net.sourceforge.pmd.dfa packages, and we’re going through it now figuring out what rules we can write +that use it. We should be able to use it to simplify some current rules, as well.

    + +

    Other changes we’ll like to see…

    + +

    These are things which really should be done, but just haven’t been gotten to yet:

    + +
      +
    • Enhance Rule Designer to allow testing of the violation suppress Regex and XPath.
    • +
    • Remove the type resolution specific rules. Merge these back into the +standard rules. In general, a Rule should use TR when it can, and fall +back on non-TR approach otherwise. No need for separate Rules for TR/non-TR.
    • +
    • Reconcile the util.designer and util.viewer packages. Two versions of the +same thing. Designer is more up to date, but Viewer has a nice MVC design.
    • +
    • Need a JUnit test to check for “dead” Rules, that is those not used by any RuleSet.
    • +
    • Rule JUnit tests should verify the Test class follows expected naming +conventions just like the Rules need to.
    • +
    • Do we have a rule to style check for multiple declarations and chained +assignments? (e.g. int a, b; int a = b = x;)
    • +
    + +

    These are food for thought, perhaps future items. If you think you’d like to +work on one of these, check with pmd-devel to see what the current thoughts +on the topic.

    + +
      +
    • +

      CPD needs work on use of Language. It currently is hardcoded to only +handled Java 1.4. Integrate CPD needs into core PMD where appropriate. +Otherwise, drive CPD behavior based off of core PMD, instead of duplicating +some logic.

      +
    • +
    • +

      Need a more flexible and powerful scheme for classifying files to various +Languages. At a minimum, should have the ability to specify which +file extensions you want to be used for a language (e.g. not everyone uses +.jsp for JSP extensions, some use .jspx, .xhtml, etc.). Also, consider +hooks into the LanguageVersionDiscoverer process for classifying a +File/String to a LanguageVersion of a specific Language, one could imaging +using a ‘magic’ system like Unix uses to tell different versions of files +apart based on actual content.

      +
    • +
    • +

      Should we change Node interface to something like ‘Node<T extends Node<T>>’, +and then declare the language specific node interfaces to be something like +‘JavaNode extends Node<JavaNode>’? This could allow anything on the Node +interface to return the language specific node type instead of generic +node. For example, ASTStatement.jjtGetParent() to return a JavaNode, +instead of a Node. This is a rather huge change, as the Node interface is +one of the pervasive things in the PMD code base. Is the extra work of using +the Node interface with properly with generics, worth the omission of +occasional some casting?

      +
    • +
    • +

      Should multiple Languages be able to claim a single source file? Imagine +XML format JSP file, for which you’ve defined a ruleset which uses JSP and +XML rules. Stating that certain XML rules also can map to the JSP language +extensions could be useful. This means Source file to LanguageVersion +mapping is not 1-1, but 1-many, we’d need to deal with this accordingly.

      +
    • +
    • +

      Additional changes to Rule organization within RuleSets as discussed on +this forum thread.

      +
    • +
    • +

      Figure out a way to allow Rules to deal with parentheses and blocks, which +introduce certain repetitive (and generally ignorable for most Rules) +structures into the AST tree. Some rules are making special effort +(e.g. ConfusingTernaryRule) to detect these AST patterns. Perhaps a +“normalized” AST structure can be created which will make the AST appear +consistent regardless of how many parens are presented, or how many blocks +have been created (e.g. default block inserted, duplicates collapsed). +This should be configurable on per Rule basis similar to TR and SymbolTable.

      +
    • +
    + +

    Code cleanups

    + +

    Some of the code is a bit sloppy:

    + +
      +
    • RuleSetFactory is a mess. It needs to be refactored into something that has layers, or decorators, or something.
    • +
    • Cleanups would be welcome for ConstructorCallsOverridableMethod and DoubleCheckedLocking
    • +
    • The Designer GUI is a bit messed up; the bottom panes look funny.
    • +
    • The grammar has some odd bits: +
        +
      • BlockStatement has an odd hack for class definitions inside methods
      • +
      • enumLookahead() seems like a bit of overkill, can it use Modifiers somehow?
      • +
      • The whole “discardable node” thing seems wasteful
      • +
      • Does ExtendsList need that ‘extendsMoreThanOne’ thing?
      • +
      • ClassOrInterfaceBodyDeclaration has a monstrous lookahead to check for enums
      • +
      • ClassOrInterfaceType gloms together dotted names… is that the right thing to do?
      • +
      • Some complicated annotations are currently broken
      • +
      +
    • +
    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_rule_deprecation_policy.html b/pmd_devdocs_rule_deprecation_policy.html new file mode 100644 index 0000000000..0f49224d38 --- /dev/null +++ b/pmd_devdocs_rule_deprecation_policy.html @@ -0,0 +1,1552 @@ + + + + + + + + +Rule deprecation policy | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Rule deprecation policy

    +
    + + + +
    + + +
    Describes when and how rules are deprecated
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    When improving PMD over time, some rules might become obsolete. This could be because the underlying +technology a specific rule is checking (such as a specific JVM version) is not relevant anymore or a rule +has been replaced by a better implementation.

    + +

    In order to remove the requirement to maintain such rules forever, these rules can be marked as deprecated. +This means, that such rules can entirely be removed in the future. +However, the rules must not be removed immediately, since that would break any (custom) ruleset, that +references this rule.

    + +

    This policy tries to establish some ground rules about how and when rules are deprecated and removed. +The main goal is, to maintain compatibility of custom rulesets throughout the deprecation process.

    + +

    Renaming rules

    + +

    If a rule is enhanced, it might make sense to also rename the rule, to reflect that enhancement. However, +simply renaming the rule would break existing (custom) ruleset. Therefore the following procedure should be used:

    + +
      +
    • Rename the rule to the new name (and also the rule tests and resources)
    • +
    • +

      Add a deprecated rule reference with the old name, that points to the new rule name:

      + +

      <rule name="OldRuleName" ref="NewRuleName" deprecated="true" />

      +
    • +
    + +

    Note: When referencing the complete rulesets or categories, +these deprecated rule references are ignored, so that the rule is not used twice.

    + +

    Moving rules between categories

    + +

    Every rule is in one category. It might happen, that the focus of the rule shifts and it makes more +sense, if it would be in a different, better fitting category.

    + +
      +
    • Move the rule to the new category (and also the rule tests and resources)
    • +
    • +

      Add a deprecated rule reference in the old category, that points to the rule in the new category:

      + +

      <rule name="MyRule" ref="category/java/errorprone.xml/MyRule" deprecated="true" />

      +
    • +
    + +

    Note: When referencing the complete rulesets or categories, +these deprecated rule references are ignored, so that the rule is not used twice, if both categories +are used.

    + +

    Deprecating rules

    + +

    Before a rule can be removed, it must have been marked as deprecated:

    + +
    <rule name="MyRule" class="...." deprecated="true">
    +...
    +</rule>
    +
    + +

    This has the effect, that it is automatically disabled if the complete ruleset or category +is referenced. The rule can still be used, if it is referenced directly.

    + +

    The reasons for the deprecation should be explained in the rule description. If there is a replacement rule +available, then this rule should be mentioned in the description as well.

    + +

    Removing rules

    + +

    Removing rules completely can only be done

    + +
      +
    • if the rules have been deprecated before
    • +
    • for a new major release.
    • +
    + +

    Removing a rule from a ruleset or category will break any custom ruleset, that references +this rule directly. Therefore rules can only be removed with the next major release of PMD.

    + +

    Rule property compatibility

    + +

    Renaming or removing rule properties is not backwards compatible and can only be done +with a major release of PMD.

    + +

    In order to prepare for the change, properties can be deprecated as well: If the property description +starts with the magic string deprecated!, then this property is rendered in the rule documentation +as deprecated. However, there is no automatic check done if such a property is used and no +deprecation warning is issued with the log.

    + +

    Therefore, the process for renaming a property looks like this:

    + +
      +
    • Create a new property with the same type and new name
    • +
    • Prefix the description of the old property with deprecated! and also add a explanation +either in the property description or in the rule description, which property should be used +instead of the deprecated property.
    • +
    • Adjust the rule implementation to first check the old property. If it has a value other than the +default value, then the old (deprecated) property has been used and a deprecation warning should +be logged. If the new property is used (it has a value other than the default), then it takes +preference, but the deprecation warning for the old property should still be issued.
    • +
    • The deprecated property can be removed with the next major release of PMD.
    • +
    + +

    Changing the default value of a property might have some results, that make the rule +behavioral incompatible: E.g. it could find many more violations with a different default +configuration and therefore lead to a sudden increase of violations after a PMD upgrade. +It should be judged per case, whether the new default can be considered compatible or not. +If it is not compatible, then the new default value should be configured only with the next +major release of PMD.

    + + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html new file mode 100644 index 0000000000..61fd9b73d8 --- /dev/null +++ b/pmd_devdocs_writing_documentation.html @@ -0,0 +1,1699 @@ + + + + + + + + +Writing documentation | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Writing documentation

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    PMD’s documentation uses Jekyll with +the I’d rather be writing Jekyll Theme.

    + +

    Here are some quick tips.

    + +

    Format

    + +

    The pages are in general in Github Flavored Markdown.

    + +

    Structure

    + +

    The documentation sources can be found in two places based on how they are generated:

    +
      +
    • the ones that are manually written (like the one you are reading);
    • +
    • and the ones that are generated automatically from the category files. All the rule documentation +pages are generated that way.
    • +
    + +

    Handwritten documentation

    + +

    All handwritten documentation is stored in the subfolders under docs/pages. The folder structure resembles the sidebar structure. +Since all pages use a simple permalink, in the rendered html pages, all pages are flattened in one directory. +This makes it easy to view the documentation also offline.

    + +

    Rule documentation

    + +

    The categories for a language %lang% are located in +pmd-%lang%/src/main/resources/category/%lang% . So for Java the categories +can be found under pmd-java/src/main/resources/category/java. +The XML category files in this directory are transformed during build into markdown pages +describing the rules they contain. These pages are placed under docs/ like the handwritten +documentation, and are then rendered with Jekyll like the rest of them. The rule documentation +generator is the separate submodule pmd-doc.

    + +

    Modifying the documentation of a rule should thus not be done on the markdown page, +but directly on the XML rule tag corresponding to the rule, in the relevant +category file.

    + +

    The XML documentation of rules can contain GitHub flavoured markdown. +Just wrap the markdown inside CDATA section in the xml. CDATA sections preserve +all formatting inside the delimiters, and allow to write code samples without + escaping special xml characters. For example:

    +
    <rule ...>
    + <description>
    + <![CDATA[
    +   Full description, can contain markup
    +
    +   And paragraphs
    + ]]>
    + </description>
    + ...
    +</rule>
    +
    + +

    Custom Liquid Tags

    + +

    We have some additional custom liquid tags that help in writing the documentation.

    + +

    Here’s a short overview:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LiquidRendered as
    {% rule "java/codestyle/LinguisticNaming" %}LinguisticNaming
    {% jdoc core::Rule %}Rule
    {% jdoc !q!core::Rule %}net.sourceforge.pmd.Rule
    {% jdoc core::Rule#setName(java.lang.String) %}setName
    {% jdoc !c!core::Rule#setName(java.lang.String) %}Rule#setName
    {% jdoc !a!core::Rule#setName(java.lang.String) %}setName(String)
    {% jdoc !ac!core::Rule#setName(java.lang.String) %}Rule#setName(String)
    {% jdoc core::properties.PropertyDescriptor %}PropertyDescriptor
    {% jdoc_nspace :jast java::lang.java.ast %}{% jdoc jast::ASTAnyTypeDeclaration %}ASTAnyTypeDeclaration
    {% jdoc_nspace :jast java::lang.java.ast %}{% jdoc_package :jast %}net.sourceforge.pmd.lang.java.ast
    {% jdoc_nspace :PrD core::properties.PropertyDescriptor %}{% jdoc !ac!:PrD#uiOrder() %}PropertyDescriptor#uiOrder()
    {% jdoc_old core::Rule %}Rule
    + +

    For the javadoc tags, the standard PMD maven modules are already defined as namespaces, e.g. core, java, apex, ….

    + +

    For the implementation of these tags, see the _plugins folder.

    + +

    Building

    + +

    There are two ways, to execute jekyll:

    + +
      +
    1. +

      Using bundler. This will install all the needed ruby packages locally and execute jekyll:

      + +
      # this is required only once, to download and install the dependencies
      +bundle install
      +# this builds the documentation under _site
      +bundle exec jekyll build
      +# this runs a local webserver as http://localhost:4005
      +bundle exec jekyll serve
      +
      +
    2. +
    3. +

      Using docker. This will create a local docker image, into which all needed ruby +packages and jekyll is installed.

      + +
      # this is required only once to create a local docker image named "pmd-doc"
      +docker build --no-cache -t pmd-doc .
      +# this builds the documentation under _site
      +docker run --rm=true -v "$PWD:/src" pmd-doc build -H 0.0.0.0
      +# this runs a local webserver as http://localhost:4005
      +docker run --rm=true -v "$PWD:/src" -p 4005:4005 pmd-doc serve -H 0.0.0.0
      +
      +
    4. +
    + +

    The built site is stored locally in the (git ignored) directory _site. You can +point your browser to _site/index.html to see the pmd documentation.

    + +

    Alternatively, you can start the local webserver, that will serve the documentation. +Just go to http://localhost:4005. +If a page is modified, the documentation will automatically be rendered again and +all you need to do, is refreshing the page in your browser.

    + +

    See also the script pmd-jekyll.sh. +It starts the jekyll server in the background and doesn’t block the current shell.

    + +

    The sidebar

    + +

    The sidebar is stored as a YAML document under _data/sidebars/pmd_sidebar.yml.

    + +

    Make sure to add an entry there, whenever you create a new page.

    + +

    The frontmatter

    + +

    Each page in jekyll begins with a YAML section at the beginning. This section +is separated by 3 dashes (---). Example:

    + +
    ---
    +title: Writing Documentation
    +last_update: August 2017
    +permalink: pmd_devdocs_writing_documentation.html
    +---
    +
    +Some Text
    +
    +# Some header
    +
    + +

    There are a couple of possible fields. Most important and always +required are title and permalink.

    + +

    By default, a page toc (table of contents) is automatically generated. +You can prevent this with “toc: false”.

    + +

    You can add keywords, that will be used for the on-site search: “keywords: documentation, jekyll, markdown”

    + +

    It’s useful to maintain a last_update field. This will be added at the bottom of the +page.

    + +

    A summary can also be provided. It will be added in a box before the content.

    + +

    For a more exhaustive list, see Pages - Frontmatter.

    + +

    Alerts and Callouts

    + +

    See Alerts.

    + +

    For example, a info-box can be created like this:

    + +
    {% include note.html content="This is a note." %}
    +
    + +

    It renders as:

    + + + +

    Other available types are:

    + +
      +
    • note.html
    • +
    • tip.html
    • +
    • warning.html
    • +
    • important.html
    • +
    + +

    A callout is created like this:

    + +
    {% include callout.html content="This is a callout of type default.<br/><br/>There are the following types available: danger, default, primary, success, info, and warning." type="default" %}
    +
    + +

    It renders as:

    + +
    This is a callout of type default.

    There are the following types available: danger, default, primary, success, info, and warning.
    + +

    Code samples with syntax highlighting

    + +

    This is as easy as:

    + +
    ``` java
    +public class Foo {
    +    public void bar() { System.out.println("x"); }
    +}
    +```
    +
    + +

    This looks as follows:

    + +
    public class Foo {
    +    public void bar() { System.out.println("x"); }
    +}
    +
    + + + +

    mvn verify -pl pmd-doc. This only checks links within the site. HTTP links can be checked +by specifying -Dpmd.doc.checkExternalLinks=true on the command line.

    + + +
    + + Tags: + + + + devdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_java_metrics_index.html b/pmd_java_metrics_index.html new file mode 100644 index 0000000000..134ab9fd73 --- /dev/null +++ b/pmd_java_metrics_index.html @@ -0,0 +1,1793 @@ + + + + + + + + +Index of Java code metrics | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Index of Java code metrics

    +
    + + + +
    + + +
    Index of the code metrics available out of the box to Java rule developers.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Index of code metrics

    + +

    Access to Foreign Data (ATFD)

    + +

    Operation metric, class metric. Can be computed on classes, enums and +concrete operations.

    + +

    Description

    + +

    Number of usages of foreign attributes, both directly and through accessors. +High values of ATFD (> 3 for an operation) may suggest that the class or operation +breaks encapsulation by relying on the internal representation of the classes +it uses instead of the services they provide.

    + +

    ATFD can be used to detect God Classes and Feature Envy. [Lanza05]

    + +

    Class Fan Out Complexity (CLASS_FAN_OUT)

    + +

    Operation metric, class metric. Can be computed on classes, enums and +concrete operations.

    + +

    Description

    +

    This counts the number of other classes a given class or operation relies on. +Classes from the package java.lang are ignored by default (can be changed via options). +Also primitives are not included into the count.

    + +

    Code example

    + +
    import java.util.*;
    +import java.io.IOException;
    +
    +public class Foo { // total 8
    +    public Set set = new HashSet(); // +2
    +    public Map map = new HashMap(); // +2
    +    public String string = ""; // from java.lang -> does not count by default
    +    public Double number = 0.0; // from java.lang -> does not count by default
    +    public int[] intArray = new int[3]; // primitive -> does not count
    +
    +    @Deprecated // from java.lang -> does not count by default
    +    @Override // from java.lang -> does not count by default
    +    public void foo(List list) throws Exception { // +1 (Exception is from java.lang)
    +        throw new IOException(); // +1
    +    }
    +
    +    public int getMapSize() {
    +        return map.size(); // +1 because it uses the Class from the 'map' field
    +    }   
    +}
    +
    + +

    Options

    + +
      +
    • Option includeJavaLang: Also include classes from the package java.lang
    • +
    + +

    Cyclomatic Complexity (CYCLO)

    + +

    Operation metric. Can be calculated on any non-abstract operation.

    + +

    Description

    + +

    Number of independent paths through a block of code [Lanza05]. +Formally, given that the control flow graph of the block has n vertices, e +edges and p connected components, the cyclomatic complexity of the block is +given by CYCLO = e - n + 2p [McCabe76]. In practice it can be +calculated by counting control flow statements following the standard rules given +below.

    + +

    The standard version of the metric complies with McCabe’s original definition:

    + +
      +
    • Methods have a base complexity of 1.
    • +
    • +1 for every control flow statement (if, case, catch, throw, do, +while, for, break, continue) and conditional expression (?:) +[Sonarqube]. Notice switch cases count as one, but not the +switch itself: the point is that a switch should have the same complexity +value as the equivalent series of if statements.
    • +
    • else, finally and default don’t count;
    • +
    • +1 for every boolean operator (&&, ||) in the guard condition of a control +flow statement. That’s because Java has short-circuit evaluation semantics for +boolean operators, which makes every boolean operator kind of a control flow +statement in itself.
    • +
    + +

    Code examples

    + +
    class Foo {
    +  void baseCyclo() {                // Cyclo = 1
    +    highCyclo();
    +  }
    +  
    +  void highCyclo() {                // Cyclo = 10
    +    int x = 0, y = 2;
    +    boolean a = false, b = true;
    +    
    +    if (a && (y == 1 ? b : true)) { // +3
    +      if (y == x) {                 // +1
    +        while (true) {              // +1
    +          if (x++ < 20) {           // +1
    +            break;                  // +1
    +          }
    +        }
    +      } else if (y == t && !d) {    // +2
    +        x = a ? y : x;              // +1
    +      } else {
    +        x = 2;
    +      }
    +    }  
    +  }     
    +}
    +
    +

    Options

    + +
      +
    • Option CycloVersion#IGNORE_BOOLEAN_PATHS: Boolean operators are not counted, +nor are empty fall-through cases in switch statements. You can use this +option to get results similar to those of the old StdCyclomaticComplexityRule, +which is to be replaced.
    • +
    • Option CycloVersion#CONSIDER_ASSERTS: Assert statements are counted as if +they were if (..) throw new AssertionError(..). Compatible with +IGNORE_BOOLEAN_PATHS.
    • +
    + +

    Lines of Code (LoC)

    + +

    Operation metric, class metric. Can be calculated on any of those nodes.

    + +

    Description

    + +

    Simply counts the number of lines of code the operation or class takes up in +the source. This metric doesn’t discount comments or blank lines. See also +NCSS.

    + +

    Non-commenting source statements (NCSS)

    + +

    Operation metric, class metric. Can be calculated on any of those nodes.

    + +

    Description

    + +

    Number of statements in a class or operation. That’s roughly equivalent to +counting the number of semicolons and opening braces in the program. Comments +and blank lines are ignored, and statements spread on multiple lines count as +only one (e.g. int\n a; counts a single statement).

    + +

    The standard version of the metric is based off JavaNCSS’s version
    +[JavaNcss]:

    + +
      +
    • +1 for any of the following statements: if, else, while, do, for, +switch, break, continue, return, throw, synchronized, catch, +finally.
    • +
    • +1 for each assignment, variable declaration (except for loop initializers) +or statement expression. We count variables declared on the same line (e.g. +int a, b, c;) as a single statement.
    • +
    • Contrary to Sonarqube, but as JavaNCSS, we count type declarations (class, +interface, enum, annotation), and method and field declarations +[Sonarqube].
    • +
    • Contrary to JavaNCSS, but as Sonarqube, we do not count package declaration +and import declarations as statements. This makes it easier to compare nested +classes to outer classes. Besides, it makes for class metric results that +actually represent the size of the class and not of the file. If you don’t +like that behaviour, use the COUNT_IMPORTS option.
    • +
    + +

    Code example

    +
    import java.util.Collections;       // +0
    +import java.io.IOException;         // +0
    +
    +class Foo {                         // +1, total Ncss = 12
    +  
    +  public void bigMethod()           // +1
    +      throws IOException {     
    +    int x = 0, y = 2;               // +1
    +    boolean a = false, b = true;    // +1
    +    
    +    if (a || b) {                   // +1
    +      try {                         // +1
    +        do {                        // +1
    +          x += 2;                   // +1
    +        } while (x < 12);
    +          
    +        System.exit(0);             // +1
    +      } catch (IOException ioe) {   // +1
    +        throw new PatheticFailException(ioe); // +1
    +      }
    +    } else {
    +      assert false;                 // +1
    +    }
    +  }     
    +}
    +
    + +

    Options

    + +
      +
    • Option NcssVersion#COUNT_IMPORTS: Import and package statements are counted +as well. This version fully complies with JavaNCSS.
    • +
    + +

    NPath complexity (NPath)

    + +

    Operation metric. Can be computed on any non-abstract operation.

    + +

    Description

    + +

    Number of acyclic execution paths through a piece of code. This is related to +cyclomatic complexity, but the two metrics don’t count the same thing: NPath +counts the number of distinct full paths from the beginning to the end of the +method, while Cyclo only counts the number of decision points. NPath is not +computed as simply as Cyclo. With NPath, two decision points appearing sequentially +have their complexity multiplied.

    + +

    The fact that NPath multiplies the complexity of statements makes it grow +exponentially: 10 if - else statements in a row would give an NPath of 1024, +while Cyclo would evaluate to 20. Methods with an NPath complexity over 200 are +generally considered too complex.

    + +

    We compute NPath recursively, with the following set of rules:

    +
      +
    • An empty block has a complexity of 1.
    • +
    • The complexity of a block is the product of the NPath complexity of its +statements, calculated as follows: +
        +
      • The complexity of for, do and while statements is 1, plus the +complexity of the block, plus the complexity of the guard condition.
      • +
      • The complexity of a cascading if statement (if .. else if ..) is the +number of if statements in the chain, plus the complexity of their guard +condition, plus the complexity of the unguarded else block (or 1 if there +is none).
      • +
      • The complexity of a switch statement is the number of cases, plus the +complexity of each case block. It’s equivalent to the complexity of the +equivalent cascade of if statements.
      • +
      • The complexity of a ternary expression (?:) is the complexity of the guard +condition, plus the complexity of both expressions. It’s equivalent to the +complexity of the equivalent if .. else construct.
      • +
      • The complexity of a try .. catch statement is the complexity of the try +block, plus the complexity of each catch block.
      • +
      • The complexity of a return statement is the complexity of the expression +(or 1 if there is none).
      • +
      • All other statements have a complexity of 1 and are discarded from the product.
      • +
      +
    • +
    + +

    Code example

    + +
    void fun(boolean a, boolean b, boolean c) { // NPath = 6
    +    
    +  // block #0
    +  
    +  if (a) {
    +    // block #1
    +  } else {
    +    // block #2
    +  }
    +  
    +  // block #3
    +  
    +  if (b) {
    +    // block #4
    +  } else if (c) {
    +    // block #5  
    +  }
    +  
    +  // block #6
    +}
    +
    +

    After block 0, the control flow can either execute block 1 or 2 before jumping +to block 3. From block three, the control flow will again have the choice +between blocks 4 and 5 before jumping to block 6. The first if offers 2 +choices, the second offers 3, so the cyclomatic complexity of this method is +2 + 3 = 5. NPath, however, sees 2 * 3 = 6 full paths from the beginning to the end.

    + +

    Number Of Public Attributes (NOPA)

    +

    Class metric. Can be computed on classes.

    + +

    Number Of Accessor Methods (NOAM)

    +

    Class metric. Can be computed on classes.

    + +

    Tight Class Cohesion (TCC)

    + +

    Class metric. Can be computed on classes and enums.

    + +

    Description

    + +

    The relative number of method pairs of a class that access in common at +least one attribute of the measured class. TCC only counts +direct attribute accesses, that is, only those attributes that are accessed in +the body of the method [BK95].

    + +

    TCC is taken to be a reliable cohesion metric for a class. High values (>70%) +indicate a class with one basic function, which is hard to break into subcomponents. +On the other hand, low values (<50%) may indicate that the class tries to do too much and +defines several unrelated services, which is undesirable.

    + +

    TCC can be used to detect God Classes and Brain Classes [Lanza05].

    + +

    Weighted Method Count (WMC)

    + +

    Class metric. Can be computed on classes and enums.

    + +

    Description

    + +

    Sum of the statistical complexity of the operations in the class. We use +CYCLO to quantify the complexity of an operation +[Lanza05].

    + +

    Options

    + +

    WMC uses the same options as CYCLO, which are provided to CYCLO when +computing it.

    + +

    Weight Of Class (WOC)

    + +

    Class metric. Can be computed on classes.

    + +

    Description

    + +

    Number of “functional” public methods divided by the total number of +public methods. Our definition of “functional method” excludes +constructors, getters, and setters.

    + +

    This metric tries to quantify whether the measured class’ interface reveals +more data than behaviour. Low values (less than 30%) indicate that the class +reveals much more data than behaviour, which is a sign of poor encapsulation.

    + +

    This metric is used to detect Data Classes, in conjunction with WMC, +NOPA and NOAM.

    + +

    References

    + +

    BK95: Bieman, Kang; Cohesion and reuse in an object-oriented system. +In Proceedings ACM Symposium on Software Reusability, 1995.

    + +

    Lanza05: Lanza, Marinescu; Object-Oriented Metrics in Practice, 2005.

    + +

    McCabe76: McCabe, A Complexity Measure, in Proceedings of the 2nd ICSE (1976).

    + +

    Sonarqube: Sonarqube online documentation.

    + +

    JavaNcss: JavaNCSS online documentation.

    + + +
    + + Tags: + + + + extending + + + + metrics + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html new file mode 100644 index 0000000000..ee669235eb --- /dev/null +++ b/pmd_languages_jsp.html @@ -0,0 +1,1493 @@ + + + + + + + + +JSP Support | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    JSP Support

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    What is currently supported and what is not

    + +

    In short, JSP files that are XHTML-compliant, are supported. +Except for files that contain inline DTDs; only references to external +DTD files are supported (having inline DTD will result in a parsing +error).

    + +

    The XHTML support means that:

    + +
      +
    • +

      opening tags must be accompanied by corresponding closing tags +(or they must be empty tags). This means that currently a “<HR>” +tag without corresponding closing tag will result in a parsing error.

      +
    • +
    • +

      attribute values must be surrounded by single or double quotes. This means that the following syntax +will result in a parsing error:

      + +

      <MyTag myAttr1=true myAttr2=1024/>

      +
    • +
    • +

      < and > characters must be escaped, or put inside a CDATA section.

      + +

      PMD creates a “Abstract Syntax Tree” representation of source code; the rules use such a tree as input. +For JSP files, the following constructs are parsed into nodes of the tree:

      + +
        +
      • XML-elements, XML-attributes, XML-comments, doctype-declarations, CDATA
      • +
      • JSP-directives, JSP-declarations, JSP-comments, JSP-scriptlets, JSP-expressions, +Expression Language expressions, JSF value bindings
      • +
      • everything else is seen as flat text nodes.
      • +
      +
    • +
    • +

      Java code (e.g. in JSP-scriptlets) and EL expressions are not parsed or +further broken down. If you want to create rules that check the code +inside EL expressions or JSP scriptlets (a.o.), you currently would +have to do “manual” string manipulation (e.g. using regular expressions).

      +
    • +
    + +

    How to use it

    + +

    Using the command-line interface, two new options can be used in the arguments string:

    + +
      +
    • “-jsp” : this triggers checking JSP files (they are not checked by default)
    • +
    • “-nojava” : this tells PMD not to check java source files (they are checked by default)
    • +
    + +

    Using the Ant task, you decide if PMD must check JSP files by choosing +what files are given to the PMD task. If you use a fileset that +contains only “.java” files, JSP files obviously will not be checked.

    + +

    If you want to call the PMD API for checking JSP files, you should investigate the javadoc of PMD.

    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_next_major_development.html b/pmd_next_major_development.html new file mode 100644 index 0000000000..0214a360a5 --- /dev/null +++ b/pmd_next_major_development.html @@ -0,0 +1,2763 @@ + + + + + + + + +PMD 7.0.0 development | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PMD 7.0.0 development

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    We’re excited to bring you the next major version of PMD! +Here is a summary of what is planned for PMD 7.

    + +

    To give us feedback or to suggest a new feature, drop us a line on Gitter!

    + +

    Summary

    + + + +

    We decided it’s time to have a modernized logo and get rid of the gun. This allows to include +the logo in anywhere without offense.

    + +

    The current tasks are listed here: Integrate new PMD logo #1931

    + +

    API

    + +

    The API of PMD has been growing over the years and needs to be cleaned up. The goal is, to +have a clear separation between a well-defined API and the implementation, which is internal. +This should help us in future development. This however entails some incompatibilities and +deprecations, see also the sections New API support guidelines and +[Planned API removals](#planned-api-removals] below.

    + +

    Full Antlr Support

    + +

    PMD 6 only supports JavaCC based grammars, but with Antlr parsers +can be generated as well. PMD 7 adds full support for grammars written in Antlr, which allows +to leverage existing grammars.

    + +

    The current tasks are listed here: Support for ANTLR based grammars with Swift as an example language #2499

    + +

    Documentation

    + +

    We have quite some ideas how we want to improve the documentation. The goal is, that the documentation is +up to date and nearly complete. One big task is, how the built-in rules are presented, so that users +can easier see, what exactly is available and decide, which rules are useful for the project at hand.

    + +

    The current tasks are listed here: Documentations improvements tracker #1139

    + +

    XPath

    + +

    PMD 6 supports XPath 1.0 via the Jaxen library. This library is old and unmaintained creating some problems +(one of which is duplicated classes in the package org.w3c.dom which is a Java API actually). +Therefore XPath 1.0 support will be dropped and we upgrade our XPath 2.0 implementation with Saxon moving +on to Saxon HE. This will eventually add support in PMD for XPath 3.1.

    + +

    The current tasks are listed here: XPath Improvements for PMD 7 #2523

    + +

    Java

    + +

    Like the main PMD API, the Java AST has been growing over time and the grammar doesn’t support +all edge cases (e.g. annotation are not supported everywhere). The goal is to simplify the AST by reducing +unnecessary nodes and abstractions and fix the parsing issues. +This helps in the end to provide a better type resolution implementation, but changing the AST is a breaking +API change.

    + +

    Some first results of the Java AST changes are for now documented in the Wiki: +Java clean changes.

    + +

    Miscellaneous

    + +

    There are also some small improvements, refactoring and internal tasks that are planned for PMD 7.

    + +

    The current tasks are listed here: PMD 7 Miscellaneous Tasks #2524

    + +

    New API support guidelines

    + +

    What’s new

    + +

    Until now, all released public members and types were implicitly considered part +of PMD’s public API, including inheritance-specific members (protected members, abstract methods). +We have maintained those APIs with the goal to preserve full binary compatibility between minor releases, +only breaking those APIs infrequently, for major releases.

    + +

    In order to allow PMD to move forward at a faster pace, this implicit contract will +be invalidated with PMD 7.0.0. We now introduce more fine-grained distinctions between +the type of compatibility support we guarantee for our libraries, and ways to make +them explicit to clients of PMD.

    + +

    .internal packages and @InternalApi annotation

    + +

    Internal API is meant for use only by the main PMD codebase. Internal types and methods +may be modified in any way, or even removed, at any time.

    + +

    Any API in a package that contains an .internal segment is considered internal. +The @InternalApi annotation will be used for APIs that have to live outside of +these packages, e.g. methods of a public type that shouldn’t be used outside of PMD (again, +these can be removed anytime).

    + +

    @ReservedSubclassing

    + +

    Types marked with the @ReservedSubclassing annotation are only meant to be subclassed +by classes within PMD. As such, we may add new abstract methods, or remove protected methods, +at any time. All published public members remain supported. The annotation is not inherited, which +means a reserved interface doesn’t prevent its implementors to be subclassed.

    + +

    @Experimental

    + +

    APIs marked with the @Experimental annotation at the class or method level are subject to change. +They can be modified in any way, or even removed, at any time. You should not use or rely + on them in any production code. They are purely to allow broad testing and feedback.

    + +

    @Deprecated

    + +

    APIs marked with the @Deprecated annotation at the class or method level will remain supported +until the next major release but it is recommended to stop using them.

    + +

    The transition

    + +

    All currently supported APIs will remain so until 7.0.0. All APIs that are to be moved to +.internal packages or hidden will be tagged @InternalApi before that major release, and +the breaking API changes will be performed in 7.0.0.

    + +

    Planned API removals

    + +

    List of currently deprecated APIs

    + + + +

    6.29.0

    + +

    No changes.

    + +

    6.28.0

    + +
    Deprecated API
    + +
    For removal
    + + + +

    6.27.0

    + +
      +
    • XML rule definition in rulesets: In PMD 7, the language attribute will be required on all rule +elements that declare a new rule. Some base rule classes set the language implicitly in their +constructor, and so this is not required in all cases for the rule to work. But this +behavior will be discontinued in PMD 7, so missing language attributes are now +reported as a forward compatibility warning.
    • +
    + +
    Deprecated API
    + +
    For removal
    + + + +

    6.26.0

    + +
    Deprecated API
    + +
    For removal
    + + + +

    6.25.0

    + +
      +
    • +

      The maven module net.sourceforge.pmd:pmd-scala is deprecated. Use net.sourceforge.pmd:pmd-scala_2.13 +or net.sourceforge.pmd:pmd-scala_2.12 instead.

      +
    • +
    • +

      Rule implementation classes are internal API and should not be used by clients directly. +The rules should only be referenced via their entry in the corresponding category ruleset +(e.g. <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />).

      + +

      While we definitely won’t move or rename the rule classes in PMD 6.x, we might consider changes +in PMD 7.0.0 and onwards.

      +
    • +
    + +
    Deprecated APIs
    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +

    6.24.0

    + +
    Deprecated APIs
    + + + +
    Experimental APIs
    + +

    Note: Experimental APIs are identified with the annotation Experimental, +see its javadoc for details

    + +
      +
    • The experimental methods in BaseLanguageModule have been replaced by a +definitive API.
    • +
    + +

    6.23.0

    + +
    Deprecated APIs
    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    In ASTs
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the Apex, Javascript, PL/SQL, Scala and Visualforce ASTs:

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like VfNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The implementation classes of Parser (eg VfParser) are deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    • The implementation classes of TokenManager (eg VfTokenManager) are deprecated and should not be used outside of our implementation. +This also affects CPD-only modules.
    • +
    + +

    These deprecations are added to the following language modules in this release. +Please look at the package documentation to find out the full list of deprecations.

    + + +

    These deprecations have already been rolled out in a previous version for the +following languages:

    + + +

    Outside of these packages, these changes also concern the following TokenManager +implementations, and their corresponding Parser if it exists (in the same package):

    + + + +

    In the Java AST the following attributes are deprecated and will issue a warning when used in XPath rules:

    + + + +
    For removal
    + + + +

    6.22.0

    + +
    Deprecated APIs
    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +
    In ASTs (JSP)
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the JSP AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like JspNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The class JspParser is deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.jsp.ast to find out the full list of deprecations.

    + +
    In ASTs (Velocity)
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the VM AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like VmNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The package net.sourceforge.pmd.lang.vm.directive as well as the classes +DirectiveMapper and LogUtil are deprecated +for removal. They were only used internally during parsing.
    • +
    • The class VmParser is deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.vm.ast to find out the full list of deprecations.

    + +
    PLSQL AST
    + +

    The production and node ASTCursorBody was unnecessary, not used and has been removed. Cursors have been already +parsed as ASTCursorSpecification.

    + +

    6.21.0

    + +
    Deprecated APIs
    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +

    6.20.0

    + +

    No changes.

    + +

    6.19.0

    + +
    Deprecated APIs
    + +
    For removal
    + + + +
    Internal APIs
    + + + +

    6.18.0

    + +
    Changes to Renderer
    + +
      +
    • +

      Each renderer has now a new method Renderer#setUseShortNames which +is used for implementing the “shortnames” CLI option. The method is automatically called by PMD, if this +CLI option is in use. When rendering filenames to the report, the new helper method +AbstractRenderer#determineFileName should be used. This will change +the filename to a short name, if the CLI option “shortnames” is used.

      + +

      Not adjusting custom renderers will make them render always the full file names and not honoring the +CLI option “shortnames”.

      +
    • +
    + +
    Deprecated APIs
    + +
    For removal
    + + + +
    Internal APIs
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +

    6.17.0

    + +

    No changes.

    + +

    6.16.0

    + +
    Deprecated APIs
    + +
    +

    Reminder: Please don’t use members marked with the annotation InternalApi, as they will likely be removed, hidden, or otherwise intentionally broken with 7.0.0.

    +
    + +
    In ASTs
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the Java AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and marked InternalApi. Nodes should only be obtained from the parser, which for rules, means that never need to instantiate node themselves. Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. Version 7.0.0 will bring a new set of abstractions that will be public API, but the base classes are and will stay internal. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like JavaNode or Node, or the other published interfaces in this package, to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. We will make those setters package private with 7.0.0.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.java.ast to find out the full list +of deprecations.

    + +

    6.15.0

    + +
    Deprecated APIs
    + +
    For removal
    + + + +

    6.14.0

    + +

    No changes.

    + +

    6.13.0

    + +
    Command Line Interface
    + +

    The start scripts run.sh, pmd.bat and cpd.bat support the new environment variable PMD_JAVA_OPTS. +This can be used to set arbitrary JVM options for running PMD, such as memory settings (e.g. PMD_JAVA_OPTS=-Xmx512m) +or enable preview language features (e.g. PMD_JAVA_OPTS=--enable-preview).

    + +

    The previously available variables such as OPTS or HEAPSIZE are deprecated and will be removed with PMD 7.0.0.

    + +
    Deprecated API
    + +
      +
    • +

      CodeClimateRule is deprecated in 7.0.0 because it was unused for 2 years and +created an unwanted dependency. +Properties “cc_categories”, “cc_remediation_points_multiplier”, “cc_block_highlighting” will also be removed. +See #1702 for more.

      +
    • +
    • +

      The Apex ruleset rulesets/apex/ruleset.xml has been deprecated and will be removed in 7.0.0. Please use the new +quickstart ruleset rulesets/apex/quickstart.xml instead.

      +
    • +
    + +

    6.12.0

    + +

    No changes.

    + +

    6.11.0

    + + + +

    6.10.0

    + +
    Properties framework
    + +

    The properties framework is about to get a lifting, and for that reason, we need to deprecate a lot of APIs +to remove them in 7.0.0. The proposed changes to the API are described on the wiki

    + +
    Changes to how you define properties
    + + + +

    Here’s an example:

    +
    // Before 7.0.0, these are equivalent:
    +IntegerProperty myProperty = new IntegerProperty("score", "Top score value", 1, 100, 40, 3.0f);
    +IntegerProperty myProperty = IntegerProperty.named("score").desc("Top score value").range(1, 100).defaultValue(40).uiOrder(3.0f);
    +
    +// They both map to the following in 7.0.0
    +PropertyDescriptor<Integer> myProperty = PropertyFactory.intProperty("score").desc("Top score value").require(inRange(1, 100)).defaultValue(40);
    +
    + +

    You’re highly encouraged to migrate to using this new API as soon as possible, to ease your migration to 7.0.0.

    + +
    Architectural simplifications
    + + + +
    Changes to the PropertyDescriptor interface
    + +
      +
    • preferredRowCount is deprecated with no intended replacement. It was never implemented, and does not belong +in this interface. The methods uiOrder and compareTo(PropertyDescriptor) are deprecated for the +same reason. These methods mix presentation logic with business logic and are not necessary for PropertyDescriptors to work. +PropertyDescriptor will not extend Comparable<PropertyDescriptor> anymore come 7.0.0.
    • +
    • The method propertyErrorFor is deprecated and will be removed with no intended +replacement. It’s really just a shortcut for prop.errorFor(rule.getProperty(prop)).
    • +
    • T valueFrom(String) and String asDelimitedString(T) are deprecated and will be removed. These were +used to serialize and deserialize properties to/from a string, but 7.0.0 will introduce a more flexible +XML syntax which will make them obsolete.
    • +
    • isMultiValue and type are deprecated and won’t be replaced. The new XML syntax will remove the need +for a divide between multi- and single-value properties, and will allow arbitrary types to be represented. +Since arbitrary types may be represented, type will become obsolete as it can’t represent generic types, +which will nevertheless be representable with the XML syntax. It was only used for documentation, but a +new way to document these properties exhaustively will be added with 7.0.0.
    • +
    • errorFor is deprecated as its return type will be changed to Optional<String> with the shift to Java 8.
    • +
    + +
    Deprecated APIs
    + +
    For internalization
    + + + +
    For removal
    + + + +

    6.9.0

    + +

    No changes.

    + +

    6.8.0

    + +
      +
    • +

      A couple of methods and fields in net.sourceforge.pmd.properties.AbstractPropertySource have been +deprecated, as they are replaced by already existing functionality or expose internal implementation +details: propertyDescriptors, propertyValuesByDescriptor, +copyPropertyDescriptors(), copyPropertyValues(), ignoredProperties(), usesDefaultValues(), +useDefaultValueFor().

      +
    • +
    • +

      Some methods in net.sourceforge.pmd.properties.PropertySource have been deprecated as well: +usesDefaultValues(), useDefaultValueFor(), ignoredProperties().

      +
    • +
    • +

      The class net.sourceforge.pmd.lang.rule.AbstractDelegateRule has been deprecated and will +be removed with PMD 7.0.0. It is internally only in use by RuleReference.

      +
    • +
    • +

      The default constructor of net.sourceforge.pmd.lang.rule.RuleReference has been deprecated +and will be removed with PMD 7.0.0. RuleReferences should only be created by providing a Rule and +a RuleSetReference. Furthermore the following methods are deprecated: setRuleReference(), +hasOverriddenProperty(), usesDefaultValues(), useDefaultValueFor().

      +
    • +
    + +

    6.7.0

    + +
      +
    • +

      All classes in the package net.sourceforge.pmd.lang.dfa.report have been deprecated and will be removed +with PMD 7.0.0. This includes the class net.sourceforge.pmd.lang.dfa.report.ReportTree. The reason is, +that this class is very specific to Java and not suitable for other languages. It has only been used for +YAHTMLRenderer, which has been rewritten to work without these classes.

      +
    • +
    • +

      The nodes RUNSIGNEDSHIFT and RSIGNEDSHIFT are deprecated and will be removed from the AST with PMD 7.0.0. +These represented the operator of ShiftExpression in two cases out of three, but they’re not needed and +make ShiftExpression inconsistent. The operator of a ShiftExpression is now accessible through +ShiftExpression#getOperator.

      +
    • +
    + +

    6.5.0

    + +
      +
    • +

      The utility class net.sourceforge.pmd.lang.java.ast.CommentUtil has been deprecated and will be removed +with PMD 7.0.0. Its methods have been intended to parse javadoc tags. A more useful solution will be added +around the AST node FormalComment, which contains as children JavadocElement nodes, which in +turn provide access to the JavadocTag.

      + +

      All comment AST nodes (FormalComment, MultiLineComment, SingleLineComment) have a new method +getFilteredComment() which provide access to the comment text without the leading /* markers.

      +
    • +
    • +

      The method AbstractCommentRule.tagsIndicesIn() has been deprecated and will be removed with +PMD 7.0.0. It is not very useful, since it doesn’t extract the information +in a useful way. You would still need check, which tags have been found, and with which +data they might be accompanied.

      +
    • +
    + +

    6.4.0

    + +
      +
    • The following classes in package net.sourceforge.pmd.benchmark have been deprecated: Benchmark, Benchmarker, +BenchmarkReport, BenchmarkResult, RuleDuration, StringBuilderCR and TextReport. Their API is not supported anymore +and is disconnected from the internals of PMD. Use the newer API based around TimeTracker instead, which can be found +in the same package.
    • +
    • The class net.sourceforge.pmd.lang.java.xpath.TypeOfFunction has been deprecated. Use the newer TypeIsFunction in the same package.
    • +
    • The typeof methods in net.sourceforge.pmd.lang.java.xpath.JavaFunctions have been deprecated. +Use the newer typeIs method in the same class instead..
    • +
    • The methods isA, isEither and isNeither of net.sourceforge.pmd.lang.java.typeresolution.TypeHelper. +Use the new isExactlyAny and isExactlyNone methods in the same class instead.
    • +
    + +

    6.2.0

    + +
      +
    • +

      The static method PMDParameters.transformParametersIntoConfiguration(PMDParameters) is now deprecated, +for removal in 7.0.0. The new instance method PMDParameters.toConfiguration() replaces it.

      +
    • +
    • +

      The method ASTConstructorDeclaration.getParameters() has been deprecated in favor of the new method +getFormalParameters(). This method is available for both ASTConstructorDeclaration and +ASTMethodDeclaration.

      +
    • +
    + +

    6.1.0

    + +
      +
    • The method getXPathNodeName is added to the Node interface, which removes the +use of the toString of a node to get its XPath element name (see #569). +
        +
      • The default implementation provided in AbstractNode, will +be removed with 7.0.0
      • +
      • With 7.0.0, the Node.toString method will not necessarily provide its XPath node +name anymore.
      • +
      +
    • +
    • +

      The interface net.sourceforge.pmd.cpd.Renderer has been deprecated. A new interface +net.sourceforge.pmd.cpd.renderer.CPDRenderer has been introduced to replace it. The main +difference is that the new interface is meant to render directly to a java.io.Writer +rather than to a String. This allows to greatly reduce the memory footprint of CPD, as on +large projects, with many duplications, it was causing OutOfMemoryErrors (see #795).

      + +

      net.sourceforge.pmd.cpd.FileReporter has also been deprecated as part of this change, as it’s no longer needed.

      +
    • +
    + +

    6.0.1

    + +
      +
    • The constant net.sourceforge.pmd.PMD.VERSION has been deprecated and will be removed with PMD 7.0.0. +Please use net.sourceforge.pmd.PMDVersion.VERSION instead.
    • +
    + +

    List of currently deprecated rules

    + + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_committers_main_landing_page.html b/pmd_projectdocs_committers_main_landing_page.html new file mode 100644 index 0000000000..6834408817 --- /dev/null +++ b/pmd_projectdocs_committers_main_landing_page.html @@ -0,0 +1,1532 @@ + + + + + + + + +Main Landing Page | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Main Landing Page

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The main homepage of PMD https://pmd.github.io is hosted by Github Pages.

    + +

    The repository is https://github.com/pmd/pmd.github.io.

    + +

    It uses Jekyll to generate the static html pages. Jekyll is +executed by github for every push to the repository. Please note, that it takes some time +until Jekyll has been executed and due to caching, the homepage is not updated immediately. +It usually takes 15 minutes.

    + +

    Contents

    + + + +

    Building the page locally

    + +

    Since the repository contains the documentation for many old PMD releases, it is quite big. When executing +Jekyll to generate the site, it copies all the files to the folder _site/ - and this can take a while.

    + +

    In order to speed things up locally, consider to add pmd-* to the exclude patterns in _config.yml. See +also the comments in this file.

    + +

    Then it is a matter of simply executing bundle exec jekyll serve. This will generate the site and host +it on localhost, so you can test the page at http://127.0.0.1:4000.

    + +

    Updates during a release

    + +

    When creating a new PMD release, some content of the main page need to be updated as well. +This done as part of the Release process, but is +summarized here as well:

    + +
      +
    • The versions (e.g. pmd.latestVersion) needs to be updated in _config.yml +
        +
      • This is needed to generate the correct links and texts for the latest version on landing page
      • +
      +
    • +
    • The new PMD documentation needs to be copied to /pmd-<version>/
    • +
    • Then this folder needs to copied to /latest/, actually replacing the old version.
    • +
    • A new blog post with release notes is added: /_posts/YYYY-mm-dd-PMD-<version>.md
    • +
    • The sitemap sitemap.xml is regenerated
    • +
    + +

    Some of these steps are automated through do-release.sh (like blog post), some are manual steps +(updating the version in _config.yml) and other steps are done on the travis-ci-build (like +copying the new documentation).

    + +

    Adding a new blog post

    + +

    Adding a new blog post is as easy as:

    + +
      +
    • Creating a new file in the folder “_posts”: /_posts/YYYY-mm-dd-<title>.md
    • +
    • The file name needs to fit this pattern. The date of the blog post is taken from the file name. The “" +is used for the url.
    • +
    • The file is a markdown file starting with a frontmatter for jekyll. Just use this template for the new file:
    • +
    + +
    ---
    +layout: post
    +title: Title
    +---
    +
    +Here comes the text
    +
    + +

    Once you commit and push it, Github will run Jekyll and update the page. The Jekyll templates take care that +the new post is recognized and added to the news section and also on the news subpage.

    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html new file mode 100644 index 0000000000..deabd5ca39 --- /dev/null +++ b/pmd_projectdocs_committers_merging_pull_requests.html @@ -0,0 +1,1611 @@ + + + + + + + + +Merging pull requests | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Merging pull requests

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Example 1: Merging PR #123 into master

    + +
      +
    1. +

      Review the pull request

      + +
        +
      • Compilation and checkstyle is verified already by travis build: PRs are automatically checked.
      • +
      • If it is a bug fix, a new unit test, that reproduces the bug, is mandatory. Without such a test, we might accidentally reintroduce the bug again.
      • +
      • Add the appropriate labels on the github issue: If the PR fixes a bug, the label “a:bug” should be used.
      • +
      • Make sure, the PR is added to the appropriate milestone. If the PR fixes a bug, make sure, that the bug issue is added to the same milestone.
      • +
      +
    2. +
    3. +

      The actual merge commands:

      + +

      We assume, that the PR has been created from the master branch. If this is not the case, +then we’ll either need to rebase or ask for rebasing before merging.

      + +
      git checkout master && git pull origin master                    # make sure, you have the latest code
      +git fetch origin pull/123/head:pr-123 && git checkout pr-123     # creates a new temporary branch
      +
      +
    4. +
    5. +

      Update the release notes:

      + +
        +
      • Are there any API changes, that need to be documented? (Section “API Changes”)
      • +
      • Are there any significant changes to existing rules, that should be mentioned? +(Section “Modified Rules” / “New Rules” / “Removed Rules”)
      • +
      • If the PR fixes a bug, make sure, it is listed under the section “Fixed Issues”.
      • +
      • In any case, add the PR to the section “External Contributions”
      • +
      • +

        Commit these changes with the message:

        + +
        git add docs/pages/release_notes.md
        +git commit -m "Update release notes, refs #123"
        +
        +
      • +
      + + +
    6. +
    7. +

      Now merge the pull request into the master branch:

      + +
      git checkout master
      +git merge --no-ff pr-123
      +
      + + +
    8. +
    9. +

      Run the complete build: ./mvnw clean verify

      + + +
    10. +
    11. +

      If the build was successful, you are ready to push:

      + +
      git push origin master
      +
      + +

      Since the temporary branch is now not needed anymore, you can delete it: +git branch -d pr-123.

      +
    12. +
    + +

    Example 2: Merging PR #124 into a maintenance branch

    + +

    We ask, to create every pull request against master, to make it easier to contribute. +But if a pull request is intended to fix a bug in an older version of PMD, then we need to backport this pull request.

    + +

    Creating a maintenance branch

    + +

    For older versions, we use maintenance branches, like pmd/5.8.x. If there is no maintenance branch for +the specific version, then we’ll have to create it first. Let’s say, we want a maintenance branch for +PMD version 5.8.0, so that we can create a bugfix release 5.8.1.

    + +
      +
    1. +

      We’ll simply create a new branch off of the release tag:

      + +
      git branch pmd/5.8.x pmd_releases/5.8.0 && git checkout pmd/5.8.x
      +
      +
    2. +
    3. +

      Now we’ll need to adjust the version, since it’s currently the same as the release version. +We’ll change the version to the next patch version: “5.8.1-SNAPSHOT”.

      + +
      ./mvnw versions:set -DnewVersion=5.8.1-SNAPSHOT
      +git add pom.xml \*/pom.xml
      +git commit -m "prepare next version 5.8.1-SNAPSHOT"
      +
      +
    4. +
    + +

    Merging the PR

    + +
      +
    1. +

      As above: Review the PR

      +
    2. +
    3. +

      Fetch the PR and rebase it onto the maintenance branch:

      + +
      git fetch origin pull/124/head:pr-124 && git checkout pr-124     # creates a new temporary branch
      +git rebase master --onto pmd/5.8.x
      +./mvnw clean verify                                # make sure, everything works after the rebase
      +
      + + +
    4. +
    5. +

      Update the release notes. See above for details.

      +
    6. +
    7. +

      Now merge the pull request into the maintenance branch:

      + +
      git checkout pmd/5.8.x
      +git merge --no-ff pr-124
      +
      +
    8. +
    9. +

      Just to be sure, run the complete build again: ./mvnw clean verify.

      +
    10. +
    11. +

      If the build was successful, you are ready to push:

      + +
      git push origin pmd/5.8.x
      +
      +
    12. +
    13. +

      Since we have rebased the pull request, it won’t appear as merged on github. +You need to manually close the pull request. Leave a comment, that it has been +rebased onto the maintenance branch.

      +
    14. +
    + +

    Merging into master

    + +

    Now the PR has been merged into the maintenance branch, but it is missing in any later version of PMD. +Therefore, we merge first into the next minor version maintenance branch (if existing):

    + +
    git checkout pmd/5.9.x
    +git merge pmd/5.8.x
    +
    + +

    After that, we merge the changes into the master branch:

    + +
    git checkout master
    +git merge pmd/5.9.x
    +
    + + + +

    Merging vs. Cherry-Picking

    + +

    We are not using cherry-picking, so that each fix is represented by a single commit. +Cherry-picking would duplicate the commit and you can’t see in the log, on which branches the fix has been +integrated (e.g. gitk and github show the branches, from which the specific commit is reachable).

    + +

    The downside is a more complex history - the maintenance branches and master branch are “connected” and not separate.

    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_committers_releasing.html b/pmd_projectdocs_committers_releasing.html new file mode 100644 index 0000000000..f000958211 --- /dev/null +++ b/pmd_projectdocs_committers_releasing.html @@ -0,0 +1,1678 @@ + + + + + + + + +Release process | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Release process

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    This page describes the current status of the release process.

    + +

    Since versions 5.4.5 / 5.5.4 there is an automated release process using travis-ci +in place. However, there are still a few steps, that need manual examination.

    + +

    Note: You can find a small shell script in the root of the repo: do-release.sh. This script guides you +through the release process.

    + +

    Preparations

    + +

    Make sure code is up to date and everything is committed and pushed with git:

    + +
    $ ./mvnw clean
    +$ git pull
    +$ git status
    +
    + +

    The Release Notes and docs

    + +

    You can find the release notes here: docs/pages/release_notes.md.

    + +

    The date (date +%d-%B-%Y) and the version (remove the SNAPSHOT) must be updated in docs/_config.yml, e.g.

    + +
    pmd:
    +    version: 6.22.0
    +    previous_version: 6.21.0
    +    date: 12-March-2020
    +    release_type: minor
    +
    + +

    The release type could be one of “bugfix”, “minor”, or “major”.

    + +

    The release notes usual mention any new rules that have been added since the last release. +Please double check the file pmd-core/src/main/resources/rulesets/releases/<version>.xml, so +that all new rules are listed.

    + +

    Add the new rules as comments to the quickstart rulesets:

    +
      +
    • pmd-apex/src/main/resources/rulesets/apex/quickstart.xml
    • +
    • pmd-java/src/main/resources/rulesets/java/quickstart.xml
    • +
    + +

    We maintain a documentation for the next major release. Copy the API +changes from the current release notes to this document: docs/pages/next_major_development.md.

    + +

    The designer lives at pmd/pmd-designer. +Update property pmd-designer.version in pom.xml to reference the latest pmd-designer release. +See https://search.maven.org/search?q=g:net.sourceforge.pmd%20AND%20a:pmd-ui&core=gav for the available releases.

    + +

    Starting with PMD 6.23.0 we’ll provide small statistics for every release. This needs to be added +to the release notes as the last section. To count the closed issues and pull requests, the milestone +on github with the title of the new release is searched. Make sure, there is a milestone +on https://github.com/pmd/pmd/milestones. The following snippet will +create the numbers, that can be attached to the release notes as a last section:

    + +
    LAST_VERSION=6.22.0
    +NEW_VERSION=6.23.0
    +NEW_VERSION_COMMITISH=HEAD
    +
    +echo "### Stats"
    +echo "* $(git log pmd_releases/${LAST_VERSION}..${NEW_VERSION_COMMITISH} --oneline --no-merges |wc -l) commits"
    +echo "* $(curl -s https://api.github.com/repos/pmd/pmd/milestones|jq ".[] | select(.title == \"$NEW_VERSION\") | .closed_issues") closed tickets & PRs"
    +echo "* Days since last release: $(( ( $(date +%s) - $(git log --max-count=1 --format="%at" pmd_releases/${LAST_VERSION}) ) / 86400))"
    +
    + +

    Note: this part is also integrated into do-release.sh.

    + +

    Check in all (version) changes to branch master or any other branch, from which the release takes place:

    + +
    $ git commit -a -m "Prepare pmd release <version>"
    +$ git push
    +
    + +

    The Homepage

    + +

    The github repo pmd.github.io hosts the homepage for https://pmd.github.io.

    + +

    The new version needs to be entered into _config.yml, e.g.:

    + +
    pmd:
    +  latestVersion: 6.22.0
    +  latestVersionDate: 12-March-2020
    +
    + +

    Also move the previous version down into the “downloads” section.

    + +

    Then create a new page for the new release, e.g. _posts/2020-03-12-PMD-6.22.0.md and copy +the release notes into this page. This will appear under the news section.

    + +

    Check in all (version) changes to branch master:

    + +
    $ git commit -a -m "Prepare pmd release <version>"
    +$ git push
    +
    + +

    Creating the release

    + +

    The release is created using the maven-release-plugin. This plugin changes the version by basically +removing the “-SNAPSHOT” suffix, builds the changed project locally, commits the version change, creates +a new tag from this commit, changes the version of the project to the next snapshot, commits this change +and pushes everything.

    + +

    RELEASE_VERSION is the version of the release. It is reused for the tag. DEVELOPMENT_VERSION is the +next snapshot version after the release.

    + +
    mvn -B release:clean release:prepare \
    +    -Dtag=pmd_releases/${RELEASE_VERSION} \
    +    -DreleaseVersion=${RELEASE_VERSION} \
    +    -DdevelopmentVersion=${DEVELOPMENT_VERSION}
    +
    + +

    Once the maven plugin has pushed the tag, travis-ci will start and build a new version from this tag. Since +it is a tag build and a released version build, travis-ci will do a couple of additional stuff:

    + + + +

    After the release

    + +

    The release on travis currently takes about 30 minutes. Once this is done, you can spread the news:

    + +

    Submit a news on SF

    + +

    Submit news to SF on the PMD Project News page. You can use +the following template:

    + +
    PMD <version> released
    +
    +*   Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F<version>
    +*   Documentation: https://pmd.github.io/pmd-<version>/
    +
    +And Copy-Paste the release notes
    +
    + +

    Write an email to the mailing list

    + +
    To: PMD Developers List <pmd-devel@lists.sourceforge.net>
    +Subject: [ANNOUNCE] PMD <version> released
    +
    +
    +*   Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F<version>
    +*   Documentation: https://pmd.github.io/pmd-<version>/
    +
    +And Copy-Paste the release notes
    +
    + +

    Prepare the next release

    + +

    Prepare the new release notes

    + +
      +
    • +

      Update version in docs/_config.yml. Note - the next version needs to have a SNAPSHOT in it.

      + +
      pmd:
      +    version: 6.23.0-SNAPSHOT
      +    previous_version: 6.22.0
      +    date: ??-??-2020
      +    release_type: minor
      +
      +
    • +
    • Move version/release info from docs/pages/release_notes.md to docs/pages/release_notes_old.md.
    • +
    • Update version/release info in docs/pages/release_notes.md. Use the following template:
    • +
    + +
    ---
    +title: PMD Release Notes
    +permalink: pmd_release_notes.html
    +keywords: changelog, release notes
    +---
    +
    +## {{ site.pmd.date }} - {{ site.pmd.version }}
    +
    +The PMD team is pleased to announce PMD {{ site.pmd.version }}.
    +
    +This is a {{ site.pmd.release_type }} release.
    +
    +{% tocmaker %}
    +
    +### New and noteworthy
    +
    +### Fixed Issues
    +
    +### API Changes
    +
    +### External Contributions
    +
    +{% endtocmaker %}
    +
    +
    + +

    Commit and push

    + +
    $ git commit -m "Prepare next development version"
    +$ git push origin master
    +
    + +

    Close / Create new milestones

    + +

    Manage the milestones under https://github.com/pmd/pmd/milestones. +Maybe there are some milestones on sourceforge, too: https://sourceforge.net/p/pmd/bugs/milestones.

    + +

    Branches

    + +

    Merging

    + +

    If the release was done on a maintenance branch, such as pmd/5.4.x, then this branch should be +merged into the next “higher” branches, such as pmd/5.5.x and master.

    + +

    This ensures, that all fixes done on the maintenance branch, finally end up in the other branches. +In theory, the fixes should already be there, but you never now.

    + +

    Multiple releases

    + +

    If releases from multiple branches are being done, the order matters. You should start from the “oldest” branch, +e.g. pmd/5.4.x, release from there. Then merge (see above) into the next branch, e.g. pmd/5.5.x and release +from there. Then merge into the master branch and release from there. This way, the last release done, becomes +automatically the latest release on https://pmd.github.io/latest/ and on sourceforge.

    + +

    (Optional) Create a new release branch

    + +

    At some point, it might be time for a new maintenance branch. Such a branch is usually created from +the master branch. Here are the steps:

    + +
      +
    • Create a new branch: git branch pmd/5.6.x master
    • +
    • Update the version in both the new branch and master, e.g. mvn versions:set -DnewVersion=5.6.1-SNAPSHOT +and mvn versions:set -DnewVersion=5.7.0-SNAPSHOT.
    • +
    • Update the release notes on both the new branch and master
    • +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html new file mode 100644 index 0000000000..084131b071 --- /dev/null +++ b/pmd_projectdocs_credits.html @@ -0,0 +1,1954 @@ + + + + + + + + +Credits | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Credits

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Committers

    + +
      +
    • David Dixon-Peugh - PMD core, much of the early work on the grammar, initial Emacs plugin
    • +
    • Philippe Herlin - Eclipse plugin, fixed bugs in RuleSetFactory
    • +
    • Nascif Abousalh Neto - Emacs plugin
    • +
    • Tom Copeland - PMD core, lead developer, JDeveloper plugin, initial Gel plugin, +initial jEdit plugin, IDEAJ integration, BlueJ extension
    • +
    • Jiger Patel - jEdit plugin
    • +
    • Alan Ezust - jEdit plugin
    • +
    • Ole-Martin Mork - NetBeans plugin
    • +
    • Miguel Griffa - PMD core, over a dozen rules, lots of documentation, and other improvements all over the place
    • +
    • Allan Caplan - PMD core, six rules, lots of bugfixes and improvements to the PMD core
    • +
    • Radim Kubacki - Netbeans plugin, OptimizableToArrayCallRule suggestion, bug reports
    • +
    • Tomasz Slota - Netbeans plugin
    • +
    • Andrey Lumyanski - Gel plugin
    • +
    • Johan Nagels - PMD core, JSP support
    • +
    • Brian Remedios - PMD core, properties subsystem, lots of CPD UI improvements, Eclipse plugin improvements
    • +
    • Xavier Le Vourch - PMD core, numerous bug fixes, UselessStringValueOf, UnnecessaryWrapperObjectCreation, +SimplifyBooleanAssertion
    • +
    • Sven Jacob - DFA subsystem, Eclipse plugin
    • +
    • Wouter Zelle - Lots of bugfixes and cleanups, JUnit test XML design, introduced java.util.logging, BrokenNullCheck, +NonThreadSafeSingleton, DefaultPackage rule, UselessOverridingMethod, ProperLogger, AvoidPrintStackTrace, +SimplifyConditional
    • +
    • Ryan Gustafson - PMD core, assists with Eclipse plugin
    • +
    • Torsten Kleiber - JDeveloper plugin
    • +
    • Romain Pelisse - Various bugfix patches, restructured CPD tokenizers, patch to remove redundant rule, +added Fortran tokenizer, DoNotExtendJavaLangError, JspEncoding, MDBAndSessionBeanNamingConvention, +RemoteSessionInterfaceNamingConvention, LocalInterfaceSessionNamingConvention, LocalHomeNamingConvention, +RemoteInterfaceNamingConvention, AvoidFinalLocalVariable, ClassWithOnlyPrivateConstructorsShouldBeFinal, +TooManyStaticImports, DoNotCallSystemExit, StaticEJBFieldShouldBeFinal
    • +
    + +

    Committers emeritus

    + +
      +
    • Gunnlaugur Thor Briem - NetBeans plugin, Maven build script fixes, bug report on JavaCC parser’s use +of java.lang.Error
    • +
    • David Craine - JBuilder plugin
    • +
    • Tom Burke - Eclipse plugin
    • +
    • Alex Chaffee - various bugfixes and features
    • +
    • Siegfried Goeschl - original Maven plugin, various bugfixes and features
    • +
    • Don Leckie - The PMD GUI
    • +
    • Rich Kilmer - logo design
    • +
    • Paul Kendall - various bugfixes and features
    • +
    • Colin Wilson-Salt - NetBeans plugin team
    • +
    • Brant Gurganus - JCreator integration, Swing GUI work
    • +
    + +

    Significant contributors

    + +
      +
    • Pieter Vanraemdonck - JSP grammar/integration/documentation, DontNestJsfInJstlIteration, NoLongScripts, +NoScriptlets, NoInlineStyleInformation, NoClassAttribute, NoJspForward
    • +
    • Raik Schroeder - data flow analysis layer, YAHTMLRenderer
    • +
    • Steve Hawkins - rewrite of CPD based on Karp-Rabin string matching
    • +
    • Daniel Sheppard - XPath engine integration concept and implementation, advice on Jaxen extension function naming
    • +
    • Brian Ewins - complete rewrite of CPD based on the Burrows-Wheeler transform, fixed DocumentNavigator bug
    • +
    + +

    Contributors

    + +
      +
    • Andy Throgmorton - New XPath getCommentOn function, new rule DontCallThreadRun, fix for rule UseArraysAsList
    • +
    • Nicolas Dordet - Fixed an issue on CloseResource
    • +
    • Juan Jesús García de Soria - Rework CPD algorithm
    • +
    • Sergey Pariev - Fixed an ugly ArrayIndexOutOfBoundsException in CPD for Ruby
    • +
    • Chris Heister - Reported and noted proper fix for bug in IDEAJ renderer operations
    • +
    • Ralf Wagner - Reported bug in UselessOperationOnImmutable, reported and noted proper fix for broken XSLT
    • +
    • Caroline Rioux - Reported bug in ImmutableField
    • +
    • Miroslav Šulc - Reported bug in CloneMethodMustImplementCloneable
    • +
    • Thomas Steininger - Noticed redundant rule
    • +
    • Thomas Leplus - Contributed new rules LogicInversion, ExtendsObject, UselessParentheses, EmptyInitializer, +EmptyStatementBlock, CheckSkipResult.Rewrote UselessStringValueOf, nice patch for ClassCastExceptionWithToArray
    • +
    • Paul Sundling - A nice documentation patch for ruleset links
    • +
    • Matt Koch - Added more detail to PMD XML report
    • +
    • Richard Hands - Fixed CPD symlink confusion
    • +
    • Oleg Skrypnyuk - reported a Java 1.5 grammar bug
    • +
    • Jeff Campbell - Found bug and suggested fix for problem with XMLRenderer and SuppressWarnings(“PMD”) annotations
    • +
    • Kris Jurka - CPD patch to accept “.C” as a filename extension for C/C++ files
    • +
    • Florian Deissenboeck - reported several Java 1.5 grammar bugs
    • +
    • Maarten ter Huurne - BooleanGetMethodName, AddEmptyString, Noticed misspelling in AvoidArrayLoops rule
    • +
    • Lukas Theussl - Patch to bring Maven configuration files up to date
    • +
    • Jason Bennett - Rewrite of annotation-based warning suppression to allow for rule-specific suppression, +noticed useless line in XSLT scripts, fix for UnnecessaryLocalBeforeReturn, wrote NPathComplexity rule, +patches to improve CyclomaticComplexity rule, Implemented: UseCollectionIsEmpty, NcssTypeCount, NcssMethodCount, +NcssConstructor, Patch to detect comparison with new Object
    • +
    • Brent Fisher - Fixed report backslash bug, SummaryHTML report improvements
    • +
    • Larry Brigman - Reported symlink bug in CPD
    • +
    • Harald Rohan - Reported bug in CPD GUI
    • +
    • Stephan Classens - Patch for file closing bug, noted missing varargs setting in ASTFormalParameter
    • +
    • piair - Implemented StringBufferInstantiationWithChar, AvoidUsingOctalValues
    • +
    • Christopher Eagan - Reported bug in VariableNamingConventions
    • +
    • Fabio Insaccanebbia - Improvement for UseArraysAsList, +UnusedNullCheckInEquals, MisplacedNullCheck, UselessOperationOnImmutable, AvoidArrayLoops, UseArraysAsList, +AvoidConstantsInterface, AvoidDecimalLiteralsInBigDecimalConstructor, ClassCastExceptionWithToArray, +BigIntegerInstantiation
    • +
    • Stefan Seidel - Reported Java 1.5 parsing bug
    • +
    • Aaron Optimizer Digulla - Tweaks to pmd.bat
    • +
    • Peter Van de Voorde - Rewrote the ‘create rule XML’ functionality in the designer utility
    • +
    • Josh Devins - Reported bug with annotation parsing
    • +
    • Alan Berg - Reported bug in Ant task
    • +
    • George Thomas - Wrote AvoidRethrowingException rule, new AvoidLosingExceptionInformation rule
    • +
    • Robert Simmons - Reported bug in optimizations package along with suggestions for fix
    • +
    • Brian Remedios - display cleanup of CPD GUI, code cleanup of StringUtil and various rules, +cleanup of rule designer, code cleanup of net.sourceforge.pmd.ant.Formatter.java, +code improvements to Eclipse plugin, created AbstractPoorMethodCall and refactored UseIndexOfChar
    • +
    • Max Tardiveau - A nice XML to HTML stylesheet for CPD.
    • +
    • Ernst Reissner - reported IdempotentOperations bug, reported CloneThrowsCloneNotSupportedException bug, +reported Java 1.5 parsing bug, suggested InstantiationToGetClass, bug reports for +UnusedPrivateField/CloseConnectionRule/ConstructorCallsOverridableMethodRule, +and bug report and documentation suggestions for UseSingletonRule
    • +
    • Maarten Coene - bug report for UnnecessaryConversionTemporary
    • +
    • Jorn Stampehl - Reported bug in UnusedModifier, reported and fixed bugs in +JUnitTestsShouldContainAsserts/CyclomaticComplexity/TooManyFields, noticed redundancy of ExplicitCallToFinalize, +reported bug in AvoidCallingFinalize, reported bug in JUnitAssertionsShouldIncludeMessage, +reported bug in bug report on JUnitTestsShouldContainAsserts
    • +
    • Ulrich Kriegel - reported Ant task documentation bug
    • +
    • Jarkko Hietaniemin - rewrote most of cpd.sh, many C grammar improvements, several CPD documentation suggestions, +noted missing CPD scripts in binary release
    • +
    • Adam Zell - Reported bug in UselessOverridingMethod
    • +
    • Daniel Serodio - Reported bug in ExceptionSignatureDeclaration
    • +
    • John Redford - Reported bug in AvoidProtectedFieldInFinalClass
    • +
    • D’Arcy Smith - Reported bug in UncommentedEmptyConstructor, reported missing RuleViolation methods
    • +
    • Paul Field - Fixed bug in MissingBreakInSwitch, reported a bug in DontImportJavaLang
    • +
    • Attila Korompai - A nice patch to add messages to the NOPMD feature
    • +
    • Levent Gurses - Suggested JSP support for the copy/paste detector
    • +
    • Neil Cafferkey - Reported a typo in AssignmentInOperand
    • +
    • Noel Grandin - bug report for ImmutableField, bug report for MissingStaticMethodInNonInstantiatableClass, +bug report for MissingBreakInSwitch, EqualsNull rule, bug report for IfElseStmtsMustUseBracesRule
    • +
    • Olaf Heimburger - wrote the UseProperClassLoader rule, code changes to get JDeveloper plugin working +under JDev 10.1.3 EA, reported a possible NPE in ReportTree
    • +
    • Mohammad Farooq - Reported new JavaNCSS URL
    • +
    • Jeff Jensen - Reported missing XML schema references in documentation, wrote new XML schema, reported missing +schema refs in example rulesets, suggested posting XML schema on PMD site, discussion of +‘comments in catch block’ feature, suggested description attribute in property element
    • +
    • Christopher Stach - bug report for VariableNamingConventions, bug report for CallSuperInConstructor, +many bug reports for rules that didn’t handle Java 1.5 constructs
    • +
    • Matthew Harrah - noticed missing element in UseCorrectExceptionLogging definition, script bug report
    • +
    • Mike Kaufman - Reported abug in UnnecessaryCaseChange
    • +
    • Elliotte Rusty Harold - reported bug in UseAssertSameInsteadOfAssertTrue, +suggested creating a new ruleset containing rules in each release, UncommentedEmptyConstructor suggestions, +noted missed case for UnusedFormalParameter, documentation suggestions, +reported mistake in UnnecessaryLocalBeforeReturn message, +bug report 1371757 for misleading AvoidSynchronizedAtMethodLevel example, +bug report 1293277 for duplicated rule messages, bug report for ConstructorCallsOverridableMethod, +suggestion for improving command line interface, misspelling report, suggestion for improving Designer +startup script, “how to make a ruleset” documentation suggestions, noticed outdated Xerces jars, +script renaming suggestions, UseLocaleWithCaseConversions rule suggestion
    • +
    • David Karr - reported stale XPath documentation
    • +
    • Dawid Weiss - Reported bug in UnusedPrivateMethod
    • +
    • Shao Lo - Reported bug in CPD
    • +
    • Mathieu Champlon - Added language support to the CPD Ant task
    • +
    • Uroshnor - Reported bug in UseNotifyAllInsteadOfNotify
    • +
    • Jan Koops - Noted missing data in MemberValuePair nodes, bug report for JBuilder plugin
    • +
    • Will Sargent - Implemented AvoidThreadGroup, AvoidThrowingCertainExceptionTypesRule, +AvoidCatchingNPERule, ExceptionAsFlowControlRule, URL updates for ‘Similar projects’ page
    • +
    • Benoit Xhenseval - noted Maven plugin bug (http://jira.codehaus.org/browse/MPPMD-24), +bug report for UnusedPrivateMethod, suggestion to add elapsed time to XML report, +bug report for ImmutableField, many bug reports (with good failure cases!), Ant task patch and bug report, +XSLT patch, suggestion for improving XML report
    • +
    • Barak Naveh - Reported and fixed bug in CallSuperInConstructor
    • +
    • Bhatia Saurabh - Reported a grammar bug, reported a bug in UseStringBufferLength
    • +
    • Chris Erskine - found bad link, documentation suggestions
    • +
    • mhilpert - Reported bugs in UseIndexOfChar and LoggerIsNotStaticFinal
    • +
    • David Corley - Priority filtering XSLT, reported release packaging problem, implemented nifty +Javascript folding for XML report, demo is here, +suggestion for min priority on the command line
    • +
    • Jon Doh - Reported parser bug
    • +
    • Brian R - suggestions for improving UseIndexOfChar, documentation suggestion
    • +
    • Didier Duquennoy - bug reports for InefficientStringBuffering/ConsecutiveLiteralAppends/AppendCharacterWithChar, +several bug reports for InefficientStringBuffering, bug report for ImmutableField, suggestions for +improving Benchmark utility, bug report for InefficientStringBuffering, bug report for +AvoidConcateningNonLiteralsInStringBuffer, reported a missed hit for EqualsNull, bug report for +MissingStaticMethodInNonInstantiatableClass, pmd-netbeans feedback
    • +
    • Paul Smith - patch to fix Ant task ‘minimum priority’ attribute
    • +
    • Erik Thauvin - reported IDEA integration problem
    • +
    • John Kenny - reported bug in ConsecutiveLiteralAppends
    • +
    • Tom Judge - patch for fix to C/C++ multiline literal support for CPD, patch for including .cc files in +C++ CPD checks, patch for JDK compatibility problems
    • +
    • Sean Mountcastle - reported documentation bug
    • +
    • Greg Broderick - provided patch for ‘minimum priority’ support
    • +
    • George Sexton - Bug report 1379701 for CompareObjectsWithEquals, suggested new rule for Additional String +Concatenation Warnings in StringBuffer.
    • +
    • Johan Stuyts - improvements to UncommentedEmptyConstructor, nice patch for UncommentedEmptyConstructor and +UncommentedEmptyMethod, patch to allow empty catch blocks with comments in them, patch to clean up build environment
    • +
    • Bruce Kelly - bug report 1378358 for StringInstantiation, bug report 1376756 for UselessOverridingMethod, +bug report 1376760 for InefficientStringBuffering
    • +
    • Isaac Babsky - tweak for pmd.bat
    • +
    • Hendrik Maryns - reported bug 1375290 for SuppressWarnings facility
    • +
    • Wim Deblauwe - suggested UseAssertNullInsteadOfAssertTrue, +bug report 1373510 for UseAssertSameInsteadOfAssertTrue, suggested putting property names/values in generated docs, +UselessOverridingMethod, reported bug in JUnitTestsShouldContainAsserts, +front page and “how to make a ruleset” patches, noted problems with web site rule index, +bug report for JUnitTestsShouldContainAsserts, Clover license coordination and implementation, +UseCorrectExceptionLogging, coordinated and coded a much nicer asXML() implementation, +suggested cleanup of UnusedFormalParameter, Javadoc patch, SystemPrintln bug report, +helped get Ant task and CLI squared away with Java 1.5 params, Java 1.5-specific bug reports, +suggested improvements for ExceptionSignatureDeclaration
    • +
    • Sean Montgomery - bug report 1371980 for InefficientStringBuffering
    • +
    • Jean-Marc Vanel - suggested enhancements to the PMD scoreboard
    • +
    • Andriy Rozeluk - suggested UseStringBufferLength, bug report 1306180 for +AvoidConcatenatingNonLiteralsInStringBuffer, reported bug 1293157 for UnusedPrivateMethod, +suggested UnnecessaryCaseChange, bug report for SimplifyConditional, suggested UnnecessaryLocalBeforeReturn, +suggestions for improving BooleanInstantiation, UnnecessaryReturn, AvoidDuplicateLiterals RFEs and bug reports, +various other RFEs and thoughtful discussions as well
    • +
    • Bruno Juillet - suggested reporting suppressed warnings, bug report for missing package/class/method names, +patch for Ant task’s excludeMarker attribute, bug report on ruleset overrides
    • +
    • Derek Hofmann - suggestion for adding –skip-duplicate-files option for CPD, bug report for CPD skipping header +files when in C/C++ mode
    • +
    • Mark Holczhammer - bug report for InefficientStringBuffering
    • +
    • Raja Rajan - 2 bug reports for CompareObjectswithEquals
    • +
    • Jeff Chamblee - suggested better message for UnnecessaryCaseChange, bug report for CompareObjectsWithEquals
    • +
    • Dave Brosius - suggested MisleadingVariableName rule, a couple of nice patches to clean up some string handling +inefficiencies, non-static class usages, and unclosed streams/readers - found with Findbugs, I daresay :-)
    • +
    • Chris Grindstaff - fixed SWTException when Eclipse plugin is run on a file with syntax error
    • +
    • Eduard Naum - fixed JDK 1.3 runtime problems in Eclipse plugin
    • +
    • Jacques Lebourgeois - fix for UTF8 characters in Eclipse plugin
    • +
    • dvholten - suggestions for improving OverrideBothEqualsAndHashcode, formatting suggestions for HTML report, +test cases for ConstructorCallsOverridableMethod, reported several NullAssignment bugs
    • +
    • Brian Duff - helped get Oracle JDeveloper plugin working
    • +
    • Sivakumar Mambakkam - bug report 1314086 for missing name in SimpleRuleSetNameMapper
    • +
    • Rodrigo Ruiz - bug report 1312723 for FieldDeclaration nodes inside interfaces, bug report 1312754 for +pmd.bat option handling, bug report 1312720 (and code fix!) for DefaultPackage, bug report 1309235 for TooManyFields
    • +
    • Lori Olson - JBuilder plugin suggestions and prerelease tests, +found copy/paste bug in rule descriptions
    • +
    • Thomas Dudziak - bug report 1304739 for StringInstantiation
    • +
    • Pieter Bloemendaal - reported JDK 1.3 parsing bug 1292609, command line docs bug report, +bug report for UnusedPrivateMethod, found typo in ArrayIsStoredDirectly, bug report for +AvoidReassigningParametersRule
    • +
    • shawn2005 - documentation bug report
    • +
    • Andrew Taylor - bug report for StringInstantiation
    • +
    • S. David Pullara - bug report for AvoidConcateningNonLiteralsInStringBuffer, bug report for ImmutableField
    • +
    • Maarten Bodewes - bug report for ImmutableField
    • +
    • Peter Frandsen - PackageCase rule, NoPackage rule
    • +
    • Noureddine Bekrar - French translation of some PMD documentation
    • +
    • Martin Jost - bug report for JDeveloper plugin
    • +
    • Guillaume Boudreau - patches to fix problems with CPD’s FileFinder and NTFS and SCCS
    • +
    • Sylvain Veyrie - bug report for MethodReturnsInternalArray
    • +
    • Randy Ray - bug report for ArrayIsStoredDirectly
    • +
    • Klaus - Suggestion for improving UseSingleton
    • +
    • Nicolai Czempin - Bug report for UnnecessaryParentheses, various rule suggestions, additional PMD backronyms
    • +
    • Kevin Routley - reported Ant task dependency problem, reported problems with RuleSetFactory unit tests
    • +
    • Dennis Klemann - noted that errors were missing from text report, reported Java 1.5 parsing bug with +ExceptionSignatureDeclaration, reported fix for pmd.bat problem
    • +
    • Tor Norbye - Suggested CompareObjectsWithEquals
    • +
    • Thomas Skariah - bug reports for MethodArgumentCouldBeFinal and AvoidReassigningParameters
    • +
    • Tom Parker - bug report for MethodReturnsInternalArray, found missed case in NullAssignment, suggested addition +to UnnecessaryBooleanAssertion, suggested splitting up AvoidThrowingCertainExceptionTypes, +AvoidInstantiatingObjectsInLoops bug report, AtLeastOneConstructor bug report
    • +
    • Ian Flanigan - reported CPD JNLP breakage
    • +
    • Glen Cordrey - Reported bug involved JavaCC string handling
    • +
    • Oto ‘tapik’ Buchta - Patched XMLRenderer for UTF8 support
    • +
    • Arent-Jan Banck - Reported bug with Java 1.5 annotation handling
    • +
    • Fred Hartman - Reported exact location of bug in TooManyFields, fixed bug in UnnecessaryBooleanAssertion
    • +
    • Andreas Ehn - Reported bug with Java 1.5 generics parsing
    • +
    • Eric Olander - SingularField, SimplifyConditional fix, UseStringBufferForStringAppends, CollapsibleIfStatements, +AvoidInstanceofChecksInCatchClause, AssignmentToNonFinalStatic rule, nice patch for DFAPanel cleanup, AvoidProtectedFieldInFinalClass, ImmutableFieldRule, noticed missing image in Postfix nodes
    • +
    • Tomas Gustavsson - reported pmd-web breakage
    • +
    • Payal Subhash - Tweaks to CSVRenderer
    • +
    • Christophe Mourette - Reported JDK 1.3 problem with XMLRenderer
    • +
    • Alex Givant - caught documentation bug
    • +
    • Luke Francl - suggested UnnecessaryParentheses rule, numerous high quality +feature suggestions and bug reports
    • +
    • David Hovemeyer - reported missing labelled stmt images, a nice patch to let PMD process code in jar/zip files
    • +
    • Peter ‘Bruno’ Kofler - reported bug #1146116 for JUnitTestsShouldIncludeAssert
    • +
    • Zev Blut - nice patch to add Ruby support to CPD
    • +
    • Christopher Judd - a nice patch to the XSLT that adds a summary
    • +
    • John Meagher - suggested the rule ‘MissingSerialVersionUID’ and provided the implementation for it
    • +
    • John Austin - patch to fix mispeling in Eclipse plugin message
    • +
    • Paddy Fagan - reported bug in StatisticalRule
    • +
    • Leszek Migdal - reported documentation mistake for Eclipse plugin
    • +
    • Hakan Civelek - an order-of-magnitude optimization to the SystemOutPrintln rule
    • +
    • John Heintz - Added “any language” support to CPD.
    • +
    • Harald Gurres - cleaned up the symbol table code with a very nice patch
    • +
    • Matthias Kerkhoff - CPD suggestions, several bug reports
    • +
    • Chris Riesbeck - identified some dead code in RuleSet
    • +
    • Lars Gregori - reported a bug in the Ant task docs
    • +
    • Todd Wright - reported bug in EmptyStatementNotInLoop, XPath port of +AtLeastOneConstructorRule, ConfusingTernaryExpression rule, reported missing ASTUnaryExpressionNotPlusMinus nodes
    • +
    • Conrad Roche - UnusedModifier bug report, other bug reports
    • +
    • Mike Thome - NOPMD implementation concept, BadComparisonRule suggestion
    • +
    • Ken Foskey - C++ parser bug report, cpd.sh
    • +
    • ehowe - a nice patch to include rule priority in the XML report
    • +
    • aryanto - reported a broken reference in the ‘favorites’ ruleset.
    • +
    • Archimedes Trajano - suggested SimpleDateFormatNeedsLocale
    • +
    • Joerg Kurt Wegner - bug report for UnusedLocalVariable
    • +
    • Bruno - Reported bug with TooManyFields, SuspiciousEqualsMethodName
    • +
    • Philippe Couton - bug report for ExceptionAsFlowControl, OverrideBothEqualsAndHashcodeRule bug report, +UseSingletonRule improvements, JUnitStaticSuiteRule improvements
    • +
    • Paul Rowe - suggestion for improving MethodWithSameNameAsEnclosingClass, bug reports for +SimplifyBooleanExpressions and UnusedLocalVariable
    • +
    • Enno Derksen - enhancements to VariableNamingConventionsRule
    • +
    • Michael Haggerty - bug reports for FinalizeDoesNotCallSuperFinalize and UnusedModifier
    • +
    • Phil Shaw - documentation suggestions
    • +
    • Sreenivasa Viswanadha - reminded me to use BufferedInputStreams, grammar cleanup for Ctrl-Z problem
    • +
    • Austin Moore - Integration with Omnicore’s CodeGuide IDE
    • +
    • Matt Inger - CloneMethodMustImplementCloneable, CloneThrowsCloneNotSupportedException
    • +
    • Morgan Schweers - Javascript highlighter for the PMD scoreboard
    • +
    • Brandon Franklin - bug report for BeanMembersShouldSerializeRule, many PMD scoreboard ideas
    • +
    • Bertrand Mollinier Toublet - Bug report which led to platform character set encoding enhancement
    • +
    • Choi Ki Soo - Found bug in XMLRenderer
    • +
    • Gero Wedemann - Found bug in +RuleSetFactory XPath message variable substitution
    • +
    • Adrian Papari - Wrote the PapariTextRenderer
    • +
    • Curt Cox - some additions to the ‘Similar Projects’ page
    • +
    • Michael Griffel - bug fix for XMLRenderer
    • +
    • Doug Tillman - correction to finalizers.xml examples
    • +
    • Luis Alberto Domínguez Ruiz - bug report for IfElseStmtsMustUseBracesRule
    • +
    • Chad Loder - SuspiciousOctalEscapeRule, EmptyStatementNotInLoop, SuspiciousHashcodeMethodName, +NonCaseLabelInSwitchStatement, DefaultLabelNotLastInSwitchStmt, NonStaticInitializer, ExplicitCallToFinalize, +MethodWithSameNameAsEnclosingClassRuleTest, FinalizeDoesNotCallSuperFinalize, FinalizeOverloaded, +FinalizeOnlyCallsSuperFinalize, UnconditionalIfStatement, AvoidDollarSigns, EmptyStaticInitializer, +EmptyFinalizerMethod rule, DontImportSun rule, improvements to ASTBooleanLiteral
    • +
    • Maik Schreiber - AccessNode bug report, other bug reports
    • +
    • Lokesh Gupta - improvements to the AST viewer
    • +
    • Jesse Glick - improvements to +VariableNamingConventionsRule, patch for UnusedModifierRule, bug fix for VariableNameDeclarations rule, +an excellent discussion on the UnnecessaryConstructorRule
    • +
    • Nicolas Liochon - CloneShouldCallSuperCloneRule implementation
    • +
    • Slava Pestov - Suggestions for jEdit plugin enhancements.
    • +
    • Olivier Mengué - Diagnosed and patched XML report character encoding problems
    • +
    • Hariolf Häfele - PMD-JDeveloper plugin bug reports
    • +
    • Vladimir Bossicard - suggested AbstractNamingRule, test package +organization suggestions, VBHTMLRenderer, numerous feature requests and bug reports, several rule suggestions +derived from JUnit-Addons, evangelism :-)
    • +
    • Ken Foskey - noticed bad link
    • +
    • Stephan Janssen - +promoted PMD for JJGuidelines
    • +
    • Ron Sidi - bug reports
    • +
    • David Koontz - suggestions for tweaking PMD command line options
    • +
    • Jeff Epstein - TextPad integration and tests
    • +
    • Gabe Johnson - CloseConnectionRule
    • +
    • Roelof Vuurboom - posted report of QStudio analysis of PMD
    • +
    • Jeff Anderson - node finding utility code
    • +
    • Boris Gruschko - regression test suites, nifty AST/XPath viewer
    • +
    • Trevor Harmon - rewrote XSLT script
    • +
    • Vadim Nasardinov - xdocs cleanup, +run.sh cleanup
    • +
    • Sigiswald Madou - bug report
    • +
    • Dan Tullis - bug report
    • +
    • George Menhorn - CPD bug reports and suggestions
    • +
    • Paul Roebuck - Ant build improvement, several bug reports
    • +
    • Jon A. Maxwell - Bug report
    • +
    • Erik Lee - Bug report
    • +
    • Joerg K. Wegner - PMD scoreboard suggestions
    • +
    • Chris Webster - fix (and test) for UnnecessaryConstructorRule, BooleanInstantiation rule
    • +
    • Colin Simmonds - detailed bug reports
    • +
    • Trond Andersen - AvoidCatchingThrowable, ExceptionSignatureDeclaration, +ExceptionTypeChecking
    • +
    • Bernd Jansen - grammer modification
    • +
    • Jarle Naess - bug report
    • +
    • Jeff Anderson - VariableNamingConventionsRule, MethodNamingConventionsRule, ClassNamingConventionsRule
    • +
    • Frank van Puffelen - documentation suggestions
    • +
    • mcclain looney - patch for CPD GUI, bug reports
    • +
    • Ralf Hauser - Various documentation suggestions, cygwin-run.sh
    • +
    • Pablo Casado - Bug report for UseSingletonRule
    • +
    • Frank Hardisty - BeanMembersShouldSerializeRule
    • +
    • Randall Schulz - bug report for LooseCouplingRule
    • +
    • Wim Bervoets - bug report for the PMD Ant task
    • +
    • Niels Peter Strandberg - various tweaks to the PMD Swing UI
    • +
    • Ian Shef - documentation updates, bug reports on the Gel IDE plugin
    • +
    • Astro Jetson Jr - a tweak for the ShortVariableNameRule
    • +
    • Paul King - a complete rewrite of the Gel plugin
    • +
    • Gael Marziou - “exclude” rule feature request, bug reports
    • +
    • Philippe T’Seyen - refactoring and cleanup of the CPD Ant task, an XML renderer (with unit tests!) for CPD
    • +
    • Michael Montuori - bug reports on the Gel IDE plugin
    • +
    • Michael Hosier - bug reports on the Gel IDE plugin
    • +
    • Richard Jenson - CPD on Win32 troubleshooting
    • +
    • Daniel Bruguier - CPD on Win32 troubleshooting
    • +
    • Mario Claerhout - CPD optimizations and suggestions
    • +
    • Sameer Nanda - CPD Ant task bug report
    • +
    • Nanne Baars - grammar suggestions, rule suggestions
    • +
    • Adam Nemeth - bug fixes for UnnecessaryConstructorRule
    • +
    • Andrew Glover - the CPDTask, ExcessivePublicCountRule, +CouplingBetweenObjectsRule, ExcessiveImportsRule, documentation tweaks
    • +
    • Robert Leland - bug report
    • +
    • Carl Gilbert - AccessorClassGenerationRule, DoubleCheckedLockingRule, ConstructorCallsOverridableMethodRule, +bug reports, feature requests, and documentation improvements
    • +
    • Dave Fuller - improved resource loading code (packaged in a nice diff, too!)
    • +
    • David Whitmore - parser bug report
    • +
    • David Campbell - detailed bugs reports, Ant task refactoring, documentation tweaks
    • +
    • Michael Sutherland - bug report in IfStmtMustUseBracesRule
    • +
    • Egon Willighagen - PMD scoreboard suggestion
    • +
    • Adam Nemeth - bug report on missing final attribute for local variable declarations
    • +
    • Frederic Harper - bug report and subsequent troubleshooting
    • +
    • Mats Henricson - an XSLT script and several bug reports
    • +
    • Martin Cooper - feature suggestions
    • +
    • Bruce Mayhew - feedback on the jEdit plugin
    • +
    • Juergen Ebert - feature suggestions and pmd-netbeans feedback
    • +
    • J.D. Fagan - feature suggestions
    • +
    • William McArthur - ForLoopShouldBeWhileLoop rule
    • +
    • Ales Bukovsky - pmd-netbeans feedback
    • +
    • Stefan Bodewig - bug report
    • +
    • Sean Sullivan - rule suggestions
    • +
    • Dale Vissar - rule suggestions
    • +
    • Alina Copeland - +PMD scoreboard formulas, pmd-dcpd optimizations
    • +
    • Vincent Massol - bug reports, design suggestions, feature suggestions, Maven guidance
    • +
    • Peter Donald - design suggestions
    • +
    • Liam Holohan - bug reports
    • +
    • Ralph Schaer - bug reports and verification
    • +
    • Damian O’Neill - Ant task patches
    • +
    • Sebastian Raffel - Great job on the Eclipse PMD perspective, new views and dataflow analysis support
    • +
    • Ebu - Eclipse smoothed icons
    • +
    • Jacques Lebourgeois - Eclipse fix malformed UTF-8 characters
    • +
    • Chris Grindstaff - Eclipse fix SWTException when PMD is run on a file with syntax error
    • +
    • jmichelberger - wrote Byte/Short/Long Instantiation migration rules
    • +
    • Edwin Chan - Support for -auxclasspath for use with Type Resolution
    • +
    • Jared Bunting - Patch to add ASTAnnotationMethodDeclaration to Java AST
    • +
    • Lucian Ciufudean - RedundantFieldInitializerRule
    • +
    • Andreas Dangel - GodClass and LawOfDemeter rules, several bugfixes and cleanup
    • +
    • Riku Nykanen - patch improving TooManyMethods rule
    • +
    • Tammo van Lessen - new rule GuardDebugLogging for Jakarta Commons Logging ruleset.
    • +
    • Steven Christou - patch improving DoNotCallSystemExit rule
    • +
    • Cd-Man - patch to improve CPD performance
    • +
    • Suresh - new rule DontUseFloatTypeForLoopIndices
    • +
    • Dinesh Bolkensteyn and SonarSource - Java 7 grammar support
    • +
    • Tom Wheeler - contribute a launch script for CPD GUI
    • +
    • Remi Delmas - change CPD CLI to return a non null value when code duplication is found.
    • +
    • Victor Bucutea - Improved JSP parser to be less strict with not valid XML documents (like HTML).
    • +
    • Prabhjot Singh - Fixed bug 3484404: Invalid NPath calculation in return statement.
    • +
    • Roman - Fixed bug 3546093: Type resolution very slow for big project.
    • +
    • Florian Bauer - Add C# support for CPD.
    • +
    • Matthew Short - Support in CPD for IgnoreAnnotations and SuppressWarnings(“CPD-START”).
    • +
    • Simon Gijsen - contributing a PMD logo with a modern look.
    • +
    • Yiannis Paschalidis - Fixed bug #968 Issues with JUnit4 @Test annotation with expected exception
    • +
    • Jaroslav Snajberk - Make the comment required rule working.
    • +
    • Mat Booth - #1109 Patch to build with Javacc 5.0
    • +
    • Stuart Turton - for PLSQL support. See also pldoc
    • +
    • Andrey Utis - for adding Apache Velocity as a new language and writing up a +howto for adding new languages.
    • +
    • Alan Hohn - for adding Standard and modified cyclomatic complexity rules
    • +
    • Jan van Nunen - for adding CPD support for Matlab, Objective-C, Python, Scala and various bug fixes
    • +
    • Juan Martín Sotuyo Dodero - for many bugfixes/pull requests improving Java grammar and performance
    • +
    + +

    Organizations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + MicroDoc for sponsoring PMD development. + MicroDoc is a software business serving an international customer base. Since 1991 MicroDoc + has grown into a technology oriented software engineering and professional services company. + Our focus on complex software technology and software infrastructure made us a well + respected partner for large corporations and even for other software businesses. +
    + AE for the JSP integration and especially for writing the JSP grammar. +
    + DARPA for funding + the Ultra*Log and Cougaar + effort which spawned PMD. +
    + SourceForge for providing hosting services for PMD. +
    + RefactorIT for letting + their software be used free-of-charge on PMD code + (OpenSource + Community License) +
    + QA-Systems for sending in some + handy utilities for PMD and shipping PMD inside their QStudio product +
    + Vanward Technologies for + using PMD inside their Convergence product +
    + Cenqua for + giving us a free Clover license and doing a nice FishEye run. +
    + YourKit is kindly supporting open source projects with its full-featured Java Profiler. + YourKit, LLC is creator of innovative and intelligent tools for profiling + Java and .NET applications. Take a look at YourKit's leading software products: + YourKit Java Profiler and + YourKit .NET Profiler. +
    + Bijzonder Bezig for giving the PMD logo a modern look. +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html new file mode 100644 index 0000000000..f5433cc0a9 --- /dev/null +++ b/pmd_projectdocs_faq.html @@ -0,0 +1,1487 @@ + + + + + + + + +FAQ | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    FAQ

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Rules

    + +

    How useful are the rules?

    + +

    Have this clear: having a projects with no pmd violations does not mean at all, I repeat, +it does not mean at all, not at the minimum expected, that the project has any quality. +For illustrating this I’ll tell a little story taken from my work (a sadly real story). +Some classes had fields that were reported as unused, (unused code ruleset) as developers +saw this, they wanted to remove the violation, (not fix the code, fix the violation) so +the action took was to add useless log sentences with something like: +‘unused variable ‘+unusedVariable. Believe it or not, the code was worse than the original +and reported less pmd violations.

    + +

    In a more positive way: use the rules as you see them fix, don’t try to remove violations +per-se, try to review the code and see if the particular cases you are using are correct or not.

    + +

    Development

    + +

    In which order are nodes visited?

    + +

    The parser performs a depth-first traversal. +Consider the given source:

    + +
    public class Foo {
    +    String name;
    +    private class Bar {
    +        String x;
    +    }
    +    int total;
    +}
    +
    + +

    The visiting order here will be:

    + +
      +
    1. Class Foo
    2. +
    3. Field name
    4. +
    5. Class Bar
    6. +
    7. Field x
    8. +
    9. Field total
    10. +
    + +

    Note that the total field of Foo will be visited after visiting the fields in Bar. +You must take this into account for certain rules.

    + +

    Is there a simple way of getting fields from a given class?

    + +

    Yes, the symbol table can supply that information.

    + +

    FIXME: add code example

    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_trivia_meaning.html b/pmd_projectdocs_trivia_meaning.html new file mode 100644 index 0000000000..e788a24cd9 --- /dev/null +++ b/pmd_projectdocs_trivia_meaning.html @@ -0,0 +1,1456 @@ + + + + + + + + +What does 'PMD' mean? | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    What does 'PMD' mean?

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    We’ve been trying to find the meaning of the letters PMD - because frankly, we don’t +really know. We just think the letters sound good together.

    + +

    However, in the spirit of the Computing Industry, we have come up with several “backronyms” to explain it.

    + +

    PMD…

    + +
      +
    • Pretty Much Done
    • +
    • Project Mess Detector
    • +
    • Project Monitoring Directives
    • +
    • Project Meets Deadline
    • +
    • Programming Mistake Detector
    • +
    • Pounds Mistakes Dead
    • +
    • PMD Meaning Discovery (recursion, hooray!)
    • +
    • Programs of Mass Destruction
    • +
    • Programming Meticulous coDe
    • +
    • A ‘Chaotic Metal’ rock band name
    • +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_trivia_news.html b/pmd_projectdocs_trivia_news.html new file mode 100644 index 0000000000..490272e83b --- /dev/null +++ b/pmd_projectdocs_trivia_news.html @@ -0,0 +1,1573 @@ + + + + + + + + +PMD in the press | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PMD in the press

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Sites/Articles about PMD

    + +

    Salesforce / Apex Language Module

    + + + +

    PMD in general and other Language Modules

    + + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html new file mode 100644 index 0000000000..d1dc3389b5 --- /dev/null +++ b/pmd_projectdocs_trivia_products.html @@ -0,0 +1,1504 @@ + + + + + + + + +Products/books related to PMD | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Products/books related to PMD

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Open source products

    + +
      +
    • +

      Glean - Aggregates PMD + numerous other source code feedback tools

      +
    • +
    • +

      QALab - Aggregates PMD + Checkstyle + FindBugs and tracks problems over time

      +
    • +
    • +

      XRadar - Using PMD, CPD, and lots of other projects to give measurements on +standard software metrics such as package metrics and dependencies, code size and complexity, code duplications, +coding violations and code-style violations.

      +
    • +
    + +

    Commercial products

    + + + +

    Books that mention PMD

    + + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_projectdocs_trivia_similarprojects.html b/pmd_projectdocs_trivia_similarprojects.html new file mode 100644 index 0000000000..83b46519e5 --- /dev/null +++ b/pmd_projectdocs_trivia_similarprojects.html @@ -0,0 +1,1511 @@ + + + + + + + + +Similar projects | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Similar projects

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Similar to PMD

    + +

    Open Source

    + +
      +
    • Checkstyle - Very detailed, supports both Maven and Ant. +Uses ANTLR.
    • +
    • DoctorJ - Uses JavaCC. Checks Javadoc, syntax and calculates metrics.
    • +
    • ESC/Java - +Finds null dereference errors, array bounds errors, type cast errors, and race conditions. +Uses Java Modeling Language annotations.
    • +
    • FindBugs - works on bytecode, uses BCEL. Source code uses +templates, nifty stuff!
    • +
    • SpotBugs - SpotBugs is the spiritual successor of FindBugs, carrying on from the point where it left off with support of its community.
    • +
    • Hammurapi - +Uses ANTLR, excellent documentation, lots of rules
    • +
    • Jamit - bytecode analyzer, nice graphs
    • +
    • JCSC - Does a variety of coding standard checks, uses JavaCC and +the GNU Regexp package.
    • +
    • Jikes - More than a compiler; now it reports code warnings too
    • +
    • JLint - Written in C++. Uses data flow analysis and a lock graph to +do lots of synchronization checks. Operates on class files, not source code.
    • +
    • JPathFinder - A verification VM written by NASA; +supports a subset of the Java packages
    • +
    • JWiz - Research project, checks some neat stuff, like if +you create a Button without adding an ActionListener to it. Neat.
    • +
    + +

    Commercial

    + +
      +
    • AppPerfect - 750 rules, +produces PDF/Excel reports, supports auto-fixing problems
    • +
    • Assent - +The usual stuff, seems pretty complete.
    • +
    • Aubjex - +Rules aren’t listed online. Appears to have some code modification stuff, which would be cool to have in PMD. $299.
    • +
    • AzoJavaChecker - Rules aren’t listed online so it’s +hard to tell what they have. Not sure how much it costs since I don’t know German.
    • +
    • CodePro AnalytiX - +Eclipse plug-in, extensive audit rules, JUnit test generation/editing, code coverage and analysis
    • +
    • Enerjy Java Code Analyser - 200 rules, +lots of IDE plugins
    • +
    • Flaw Detector - In beta, does control/data flow analysis +to detect NullPointerExceptions
    • +
    • JStyle - $995, nice folks, lots of metrics and rules
    • +
    • JTest - Very nice with tons of features, +but also very expensive and requires a running X server (or Xvfb) to run on +Linux. They charge $500 to move a license from one machine to another.
    • +
    • Lint4J - Lock graph, DFA, and type analysis, many EJB checks
    • +
    • SolidSDD - Code +duplication detection, nice graphical reporting. Free licensing available for Educational or OSS use.
    • +
    + +

    Similar to CPD

    + +

    Commercial

    + +
      +
    • Simian - fast, works with Java, C#, C, CPP, COBOL, JSP, HTML
    • +
    • Simscan - free for open source projects
    • +
    + +

    High level reporting

    + +
      +
    • XRadar - Agregates data from a lot of code quality tool to generate +a full quality dashboard.
    • +
    • Sonar - Pretty much like XRadar, but younger project, fully integrated +to maven 2 (but requires a database)
    • +
    • Maven Dashboard - Same kind of agregator but +only for maven project.
    • +
    • QALab - Yet another maven plugin…
    • +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_release_notes.html b/pmd_release_notes.html new file mode 100644 index 0000000000..da9694e375 --- /dev/null +++ b/pmd_release_notes.html @@ -0,0 +1,1486 @@ + + + + + + + + +PMD Release Notes | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PMD Release Notes

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    ??-November-2020 - 6.30.0-SNAPSHOT

    + +

    The PMD team is pleased to announce PMD 6.30.0-SNAPSHOT.

    + +

    This is a minor release.

    + +

    New and noteworthy

    + +

    Fixed Issues

    + +
      +
    • pmd-core +
        +
      • #1939: [core] XPath expressions return handling
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated API

    + + + +

    Internal API

    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +

    External Contributions

    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html new file mode 100644 index 0000000000..85f38d74b6 --- /dev/null +++ b/pmd_release_notes_old.html @@ -0,0 +1,13042 @@ + + + + + + + + +Old Release Notes | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Old Release Notes

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Previous versions of PMD can be downloaded here: https://github.com/pmd/pmd/releases

    + +

    24-October-2020 - 6.29.0

    + +

    The PMD team is pleased to announce PMD 6.29.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Updated Apex Support

    + + + +

    New Rules

    + +
      +
    • The new Apex rule OperationWithLimitsInLoop (apex-performance) +finds operations in loops that may hit governor limits such as DML operations, SOQL +queries and more. The rule replaces the three rules “AvoidDmlStatementsInLoops”, “AvoidSoqlInLoops”, +and “AvoidSoslInLoops”.
    • +
    + +

    Renamed Rules

    + +
      +
    • The Java rule DoNotCallSystemExit has been renamed to +DoNotTerminateVM, since it checks for all the following calls: +System.exit(int), Runtime.exit(int), Runtime.halt(int). All these calls terminate +the Java VM, which is bad, if the VM runs an application server which many independent applications.
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #2839: [apex] Apex classes with safe navigation operator from Winter 21 (50.0) are skipped
      • +
      +
    • +
    • apex-performance +
        +
      • #1713: [apex] Mark Database DML statements in For Loop
      • +
      +
    • +
    • core +
        +
      • #2831: [core] Fix XMLRenderer newlines when running under IBM Java
      • +
      +
    • +
    • java-errorprone +
        +
      • #2157: [java] Improve DoNotCallSystemExit: permit call in main(), flag System.halt
      • +
      • #2764: [java] CloseResourceRule does not recognize multiple assignment done to resource
      • +
      +
    • +
    • miscellaneous +
        +
      • #2823: [doc] Renamed/Moved rules are missing in documentation
      • +
      +
    • +
    • vf (Salesforce VisualForce) +
        +
      • #2765: [vf] Attributes with dot cause a VfParseException
      • +
      +
    • +
    + +

    External Contributions

    + + + +

    Stats

    +
      +
    • 50 commits
    • +
    • 23 closed tickets & PRs
    • +
    • Days since last release: 27
    • +
    + +

    26-September-2020 - 6.28.0

    + +

    The PMD team is pleased to announce PMD 6.28.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    CPD’s AnyTokenizer has been improved

    + +

    The AnyTokenizer is used for languages, that don’t have an own lexer/grammar based tokenizer. +AnyTokenizer now handles string literals and end-of-line comments. Fortran, Perl and Ruby have +been updated to use AnyTokenizer instead of their old custom tokenizer based on AbstractTokenizer. +See #2758 for details.

    + +

    AbstractTokenizer and the custom tokenizers of Fortran, Perl and Ruby are deprecated now.

    + +

    Fixed Issues

    + +
      +
    • cpd +
        +
      • #2758: [cpd] Improve AnyTokenizer
      • +
      • #2760: [cpd] AnyTokenizer doesn’t count columns correctly
      • +
      +
    • +
    • apex-security +
        +
      • #2774: [apex] ApexSharingViolations does not correlate sharing settings with class that contains data access
      • +
      +
    • +
    • java +
        +
      • #2738: [java] Custom rule with @ExhaustiveEnumSwitch throws NPE
      • +
      • #2755: [java] [6.27.0] Exception applying rule CloseResource on file … java.lang.NullPointerException
      • +
      • #2756: [java] TypeTestUtil fails with NPE for anonymous class
      • +
      • #2767: [java] IndexOutOfBoundsException when parsing an initializer BlockStatement
      • +
      • #2783: [java] Error while parsing with lambda of custom interface
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2759: [java] False positive in UnusedAssignment
      • +
      +
    • +
    • java-design +
        +
      • #2708: [java] False positive FinalFieldCouldBeStatic when using lombok Builder.Default
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated API

    + +
    For removal
    + + + +

    External Contributions

    + +
      +
    • #2735: [ci] Add github actions for a fast view of pr succeed/not - XenoAmess
    • +
    • #2747: [java] Don’t trigger FinalFieldCouldBeStatic when field is annotated with lombok @Builder.Default - Ollie Abbey
    • +
    • #2773: [java] issue-2738: Adding null check to avoid npe when switch case is default - Nimit Patel
    • +
    • #2789: Add badge for reproducible build - Dan Rollo
    • +
    • #2791: [apex] Analyze inner classes for sharing violations - Jeff Bartolotta
    • +
    + +

    Stats

    +
      +
    • 58 commits
    • +
    • 24 closed tickets & PRs
    • +
    • Days since last release: 25
    • +
    + +

    31-August-2020 - 6.27.0

    + +

    The PMD team is pleased to announce PMD 6.27.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Java 15 Support

    + +

    This release of PMD brings support for Java 15. PMD can parse Text Blocks +which have been promoted to be a standard language feature of Java.

    + +

    PMD also supports Pattern Matching for instanceof, +Records, and Sealed Classes.

    + +

    Note: The Pattern Matching for instanceof, Records, and Sealed Classes are all preview language features of OpenJDK 15 +and are not enabled by default. In order to +analyze a project with PMD that uses these language features, you’ll need to enable it via the environment +variable PMD_JAVA_OPTS and select the new language version 15-preview:

    + +
    export PMD_JAVA_OPTS=--enable-preview
    +./run.sh pmd -language java -version 15-preview ...
    +
    + +

    Note: Support for Java 13 preview language features have been removed. The version “13-preview” is no longer available.

    + +

    Changes in how tab characters are handled

    + +

    In the past, tab characters in source files has been handled differently in different languages by PMD. +For instance in Java, tab characters had a width of 8 columns, while C# used only 1 column. Visualforce instead +used 4 columns.

    + +

    This has been unified now so that tab characters are consistently now always 1 column wide.

    + +

    This however might be a incompatible change, if you’re using the properties “BeginColumn” or “EndColumn” +additionally to “BeginLine” and “EndLine” of a Token/AST node in order to highlight +where a rule violation occurred in the source file. If you have logic there that deals with tab characters, +you most likely can remove this logic now, since tab characters are now just “normal” characters +in terms of string processing.

    + +

    See also [all] Ensure PMD/CPD uses tab width of 1 for tabs consistently #2656.

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    New Rules

    + +
      +
    • The new Java rule AvoidReassigningCatchVariables (java-bestpractices) finds +cases where the variable of the caught exception is reassigned. This practice is surprising and prevents +further evolution of the code like multi-catch.
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule CloseResource (java-errorprone) has a new property +closeNotInFinally. With this property set to true the rule will also find calls to close a +resource, which are not in a finally-block of a try-statement. If a resource is not closed within a +finally block, it might not be closed at all in case of exceptions.

      + +

      As this new detection would yield many new violations, it is disabled by default. It might be +enabled in a later version of PMD.

      +
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #724: [core] Avoid parsing rulesets multiple times
      • +
      • #1962: [core] Simplify Report API
      • +
      • #2653: [lang-test] Upgrade kotlintest to Kotest
      • +
      • #2656: [all] Ensure PMD/CPD uses tab width of 1 for tabs consistently
      • +
      • #2690: [core] Fix java7 compatibility
      • +
      +
    • +
    • java +
        +
      • #2646: [java] Support JDK 15
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2471: [java] New Rule: AvoidReassigningCatchVariables
      • +
      • #2663: [java] NoClassDefFoundError on upgrade from 6.25.0 to 6.26.0
      • +
      • #2668: [java] UnusedAssignment false positives
      • +
      • #2673: [java] UnusedPrivateField and SingularField false positive with lombok annotation EqualsAndHashCode
      • +
      • #2684: [java] UnusedAssignment FP in try/catch
      • +
      • #2686: [java] UnusedAssignment must not flag abstract method parameters in interfaces and abstract classes
      • +
      +
    • +
    • java-design +
        +
      • #2108: [java] [doc] ImmutableField rule: Description should clarify shallow immutability
      • +
      • #2461: [java] ExcessiveParameterListRule must ignore a private constructor
      • +
      +
    • +
    • java-errorprone +
        +
      • #2264: [java] SuspiciousEqualsMethodName: Improve description about error-prone overloading of equals()
      • +
      • #2410: [java] ProperCloneImplementation not valid for final class
      • +
      • #2431: [java] InvalidLogMessageFormatRule throws IndexOutOfBoundsException when only logging exception message
      • +
      • #2439: [java] AvoidCatchingThrowable can not detect the case: catch (java.lang.Throwable t)
      • +
      • #2470: [java] CloseResource false positive when resource included in return value
      • +
      • #2531: [java] UnnecessaryCaseChange can not detect the case like: foo.equals(bar.toLowerCase())
      • +
      • #2647: [java] Deprecate rule DataFlowAnomalyAnalysis
      • +
      +
    • +
    • java-performance +
        +
      • #1868: [java] false-positive for SimplifyStartsWith if string is empty
      • +
      • #2441: [java] RedundantFieldInitializer can not detect a special case for char initialize: char foo = '\0';
      • +
      • #2530: [java] StringToString can not detect the case: getStringMethod().toString()
      • +
      +
    • +
    • dart +
        +
      • #2750: [dart] [cpd] Cpd Dart escaped dollar
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • XML rule definition in rulesets: In PMD 7, the language attribute will be required on all rule +elements that declare a new rule. Some base rule classes set the language implicitly in their +constructor, and so this is not required in all cases for the rule to work. But this +behavior will be discontinued in PMD 7, so missing language attributes are now +reported as a forward compatibility warning.
    • +
    + +

    Deprecated API

    + +
    For removal
    + + + +

    External Contributions

    + + + +

    Stats

    +
      +
    • 189 commits
    • +
    • 68 closed tickets & PRs
    • +
    • Days since last release: 37
    • +
    + +

    25-July-2020 - 6.26.0

    + +

    The PMD team is pleased to announce PMD 6.26.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    New Rules

    + +
      +
    • The new Java rule UnusedAssignment (java-bestpractices) finds assignments +to variables, that are never used and are useless. The new rule is supposed to entirely replace +DataflowAnomalyAnalysis.
    • +
    + +

    Modified rules

    + +
      +
    • The Java rule ArrayIsStoredDirectly (java-bestpractices) now ignores +by default private methods and constructors. You can restore the old behavior by setting the new property +allowPrivate to “false”.
    • +
    + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #2610: [apex] Support top-level enums in rules
      • +
      +
    • +
    • apex-bestpractices +
        +
      • #2626: [apex] UnusedLocalVariable - false positive on case insensitivity allowed in Apex
      • +
      +
    • +
    • apex-performance +
        +
      • #2598: [apex] AvoidSoqlInLoops false positive for SOQL with in For-Loop
      • +
      +
    • +
    • apex-security +
        +
      • #2620: [visualforce] False positive on VfUnescapeEl with new Message Channel feature
      • +
      +
    • +
    • core +
        +
      • #710: [core] Review used dependencies
      • +
      • #2594: [core] Update exec-maven-plugin and align it in all project
      • +
      • #2615: [core] PMD/CPD produces invalid XML (insufficient escaping/wrong encoding)
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2543: [java] UseCollectionIsEmpty can not detect the case this.foo.size()
      • +
      • #2569: [java] LiteralsFirstInComparisons: False negative for methods returning Strings
      • +
      • #2622: [java] ArrayIsStoredDirectly false positive with private constructor/methods
      • +
      +
    • +
    • java-codestyle +
        +
      • #2546: [java] DuplicateImports reported for the same import… and import static…
      • +
      +
    • +
    • java-design +
        +
      • #2174: [java] LawOfDemeter: False positive with ‘this’ pointer
      • +
      • #2181: [java] LawOfDemeter: False positive with indexed array access
      • +
      • #2189: [java] LawOfDemeter: False positive when casting to derived class
      • +
      • #2580: [java] AvoidThrowingNullPointerException marks all NullPointerException objects as wrong, whether or not thrown
      • +
      • #2625: [java] NPathComplexity can’t handle switch expressions
      • +
      +
    • +
    • java-errorprone +
        +
      • #2578: [java] AvoidCallingFinalize detects some false positives
      • +
      • #2634: [java] NullPointerException in rule ProperCloneImplementation
      • +
      +
    • +
    • java-performance +
        +
      • #1736: [java] UseStringBufferForStringAppends: False positive if only one concatenation
      • +
      • #2207: [java] AvoidInstantiatingObjectsInLoops: False positive - should not flag objects when assigned to lists/arrays
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated API

    + +
    For removal
    + + + +

    External Contributions

    + + +

    Stats

    +
      +
    • 156 commits
    • +
    • 43 closed tickets & PRs
    • +
    • Days since last release: 28
    • +
    + +

    27-June-2020 - 6.25.0

    + +

    The PMD team is pleased to announce PMD 6.25.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Scala cross compilation

    + +

    Up until now the PMD Scala module has been compiled against scala 2.13 only by default. +However, this makes it impossible to use pmd as a library in scala projects, +that use scala 2.12, e.g. in sbt plugins. Therefore PMD now provides cross compiled pmd-scala +modules for both versions: scala 2.12 and scala 2.13.

    + +

    The new modules have new maven artifactIds. The old artifactId net.sourceforge.pmd:pmd-scala:6.25.0 +is still available, but is deprecated from now on. It has been demoted to be just a delegation to the new +pmd-scala_2.13 module and will be removed eventually.

    + +

    The coordinates for the new modules are:

    + +
    <dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-scala_2.12</artifactId>
    +    <version>6.25.0</version>
    +</dependency>
    +
    +<dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-scala_2.13</artifactId>
    +    <version>6.25.0</version>
    +</dependency>
    +
    + +

    The command line version of PMD continues to use scala 2.13.

    + +

    New Rules

    + +
      +
    • +

      The new Java Rule UnnecessaryCast (java-codestyle) +finds casts that are unnecessary while accessing collection elements.

      +
    • +
    • +

      The new Java Rule AvoidCalendarDateCreation (java-performance) +finds usages of java.util.Calendar whose purpose is just to get the current date. This +can be done in a more lightweight way.

      +
    • +
    • +

      The new Java Rule UseIOStreamsWithApacheCommonsFileItem (java-performance) +finds usage of FileItem.get() and FileItem.getString(). These two methods are problematic since +they load the whole uploaded file into memory.

      +
    • +
    + +

    Modified rules

    + +
      +
    • +

      The Java rule UseDiamondOperator (java-codestyle) now by default +finds unnecessary usages of type parameters, which are nested, involve wildcards and are used +within a ternary operator. These usages are usually only unnecessary with Java8 and later, when +the type inference in Java has been improved.

      + +

      In order to avoid false positives when checking Java7 only code, the rule has the new property +java7Compatibility, which is disabled by default. Settings this to “true” retains +the old rule behaviour.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • apex-bestpractices +
        +
      • #2554: [apex] Exception applying rule UnusedLocalVariable on trigger
      • +
      +
    • +
    • core +
        +
      • #971: [apex][plsql][java] Deprecate overly specific base rule classes
      • +
      • #2451: [core] Deprecate support for List attributes with XPath 2.0
      • +
      • #2599: [core] Fix XPath 2.0 Rule Chain Analyzer with Unions
      • +
      • #2483: [lang-test] Support cpd tests based on text comparison. +For details see +Testing your implementation +in the developer documentation.
      • +
      +
    • +
    • c# +
        +
      • #2551: [c#] CPD suppression with comments doesn’t work
      • +
      +
    • +
    • cpp +
        +
      • #1757: [cpp] Support unicode characters
      • +
      +
    • +
    • java +
        +
      • #2549: [java] Auxclasspath in PMD CLI does not support relative file path
      • +
      +
    • +
    • java-codestyle +
        +
      • #2545: [java] UseDiamondOperator false negatives
      • +
      • #2573: [java] DefaultPackage: Allow package default JUnit 5 Test methods
      • +
      +
    • +
    • java-design +
        +
      • #2563: [java] UselessOverridingMethod false negative with already public methods
      • +
      • #2570: [java] NPathComplexity should mention the expected NPath complexity
      • +
      +
    • +
    • java-errorprone +
        +
      • #2544: [java] UseProperClassLoader can not detect the case with method call on intermediate variable
      • +
      +
    • +
    • java-performance +
        +
      • #2591: [java] InefficientStringBuffering/AppendCharacterWithChar: Fix false negatives with concats in appends
      • +
      • #2600: [java] UseStringBufferForStringAppends: fix false negative with fields
      • +
      +
    • +
    • scala +
        +
      • #2547: [scala] Add cross compilation for scala 2.12 and 2.13
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      The maven module net.sourceforge.pmd:pmd-scala is deprecated. Use net.sourceforge.pmd:pmd-scala_2.13 +or net.sourceforge.pmd:pmd-scala_2.12 instead.

      +
    • +
    • +

      Rule implementation classes are internal API and should not be used by clients directly. +The rules should only be referenced via their entry in the corresponding category ruleset +(e.g. <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />).

      + +

      While we definitely won’t move or rename the rule classes in PMD 6.x, we might consider changes +in PMD 7.0.0 and onwards.

      +
    • +
    + +

    Deprecated APIs

    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +

    External Contributions

    + + + +

    Stats

    +
      +
    • 135 commits
    • +
    • 31 closed tickets & PRs
    • +
    • Days since last release: 33
    • +
    + +

    24-May-2020 - 6.24.0

    + +

    The PMD team is pleased to announce PMD 6.24.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    CPD now supports XML as well

    + +

    Thanks to Fernando Cosso CPD can now find duplicates in XML files as well. +This is useful to find duplicated sections in XML files.

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    New Rules

    + +
      +
    • +

      The new Java Rule LiteralsFirstInComparisons (java-bestpractices) +find String literals, that are used in comparisons and are not positioned first. Using the String literal +as the receiver of e.g. equals helps to avoid NullPointerExceptions.

      + +

      This rule is replacing the two old rules PositionLiteralsFirstInComparisons +and PositionLiteralsFirstInCaseInsensitiveComparisons and extends the check +for the methods compareTo, compareToIgnoreCase and contentEquals in addition to equals and +equalsIgnoreCase.

      + +

      Note: This rule also replaces the two mentioned rules in Java’s quickstart ruleset.

      +
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • apex-bestpractices +
        +
      • #2468: [apex] Unused Local Variable fails on blocks
      • +
      +
    • +
    • core +
        +
      • #2444: [core] Support reproducible builds
      • +
      • #2484: [core] Update maven-enforcer-plugin to require Java 118
      • +
      +
    • +
    • c# +
        +
      • #2495: [c#] Support for interpolated verbatim strings
      • +
      +
    • +
    • java +
        +
      • #2472: [java] JavaCharStream throws an Error on invalid escape
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2145: [java] Deprecate rules PositionLiteralsFirstIn(CaseInsensitive)Comparisons in favor of LiteralsFirstInComparisons
      • +
      • #2288: [java] JUnitTestsShouldIncludeAssert: Add support for Hamcrest MatcherAssert.assertThat
      • +
      • #2437: [java] AvoidPrintStackTrace can’t detect the case e.getCause().printStackTrace()
      • +
      +
    • +
    • java-codestyle +
        +
      • #2476: [java] MethodNamingConventions - Add support for JUnit 5 method naming
      • +
      +
    • +
    • java-errorprone +
        +
      • #2477: [java] JUnitSpelling false-positive for JUnit5/4 tests
      • +
      +
    • +
    • swift +
        +
      • #2473: [swift] Swift 5 (up to 5.2) support for CPD
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + + + +

    Experimental APIs

    + +

    Note: Experimental APIs are identified with the annotation Experimental, +see its javadoc for details

    + +
      +
    • The experimental methods in BaseLanguageModule have been replaced by a +definitive API.
    • +
    + +

    External Contributions

    + + + +

    Stats

    +
      +
    • 114 commits
    • +
    • 29 closed tickets & PRs
    • +
    • Days since last release: 30
    • +
    + +

    24-April-2020 - 6.23.0

    + +

    The PMD team is pleased to announce PMD 6.23.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    PMD adopts Contributor Code of Conduct

    + +

    To facilitate healthy and constructive community behavior PMD adopts +Contributor Convenant as its code of +conduct.

    + +

    Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms.

    + +

    You can find the code of conduct in the file code_of_conduct.md +in our repository.

    + +

    Performance improvements for XPath 2.0 rules

    + +

    XPath rules written with XPath 2.0 now support conversion to a rulechain rule, which +improves their performance. The rulechain is a mechanism that allows several rules +to be executed in a single tree traversal. Conversion to the rulechain is possible if +your XPath expression looks like //someNode/... | //someOtherNode/... | ..., that +is, a union of one or more path expressions that start with //. Instead of traversing +the whole tree once per path expression (and per rule), a single traversal executes all +rules in your ruleset as needed.

    + +

    This conversion is performed automatically and cannot be disabled. The conversion should +not change the result of your rules, if it does, please report a bug at https://github.com/pmd/pmd/issues

    + +

    Note that XPath 1.0 support, the default XPath version, is deprecated since PMD 6.22.0. +We highly recommend that you upgrade your rules to XPath 2.0. Please refer to the migration guide.

    + +

    Javascript improvements for ES6

    + +

    PMD uses the Rhino library to parse Javascript. +The default version has been set to ES6, so that some ECMAScript 2015 features are +supported. E.g. let statements and for-of loops are now parsed. However Rhino does +not support all features.

    + +

    New JSON renderer

    + +

    PMD now supports a JSON renderer (use it with -f json on the CLI). +See the documentation and example

    + +

    New Rules

    + +
      +
    • +

      The new Apex rule FieldDeclarationsShouldBeAtStart (apex-codestyle) +helps to ensure that field declarations are always at the beginning of a class.

      +
    • +
    • +

      The new Apex rule UnusedLocalVariable (apex-bestpractices) detects unused +local variables.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • apex-design +
        +
      • #2358: [apex] Invalid Apex in Cognitive Complexity tests
      • +
      +
    • +
    • apex-security +
        +
      • #2210: [apex] ApexCRUDViolation: Support WITH SECURITY_ENFORCED
      • +
      • #2399: [apex] ApexCRUDViolation: false positive with security enforced with line break
      • +
      +
    • +
    • core +
        +
      • #1286: [core] Export Supporting JSON Format
      • +
      • #2019: [core] Insufficient deprecation warnings for XPath attributes
      • +
      • #2357: Add code of conduct: Contributor Covenant
      • +
      • #2426: [core] CodeClimate renderer links are dead
      • +
      • #2432: [core] Close ZIP data sources even if a runtime exception or error is thrown
      • +
      +
    • +
    • doc +
        +
      • #2355: [doc] Improve documentation about incremental analysis
      • +
      • #2356: [doc] Add missing doc about pmd.github.io
      • +
      • #2412: [core] HTMLRenderer doesn’t render links to source files
      • +
      • #2413: [doc] Improve documentation about the available renderers (PMD/CPD)
      • +
      +
    • +
    • java +
        +
      • #2378: [java] AbstractJUnitRule has bad performance on large code bases
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2398: [java] AbstractClassWithoutAbstractMethod false negative with inner abstract classes
      • +
      +
    • +
    • java-codestyle +
        +
      • #1164: [java] ClassNamingConventions suggests to add Util for class containing only static constants
      • +
      • #1723: [java] UseDiamondOperator false-positive inside lambda
      • +
      +
    • +
    • java-design +
        +
      • #2390: [java] AbstractClassWithoutAnyMethod: missing violation for nested classes
      • +
      +
    • +
    • java-errorprone +
        +
      • #2402: [java] CloseResource possible false positive with Primitive Streams
      • +
      +
    • +
    • java-multithreading +
        +
      • #2313: [java] Documenation for DoNotUseThreads is outdated
      • +
      +
    • +
    • javascript +
        +
      • #1235: [javascript] Use of let results in an Empty Statement in the AST
      • +
      • #2379: [javascript] Support for-of loop
      • +
      +
    • +
    • javascript-errorprone +
        +
      • #384: [javascript] Trailing commas not detected on French default locale
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    In ASTs
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the Apex, Javascript, PL/SQL, Scala and Visualforce ASTs:

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like VfNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The implementation classes of Parser (eg VfParser) are deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    • The implementation classes of TokenManager (eg VfTokenManager) are deprecated and should not be used outside of our implementation. +This also affects CPD-only modules.
    • +
    + +

    These deprecations are added to the following language modules in this release. +Please look at the package documentation to find out the full list of deprecations.

    + + +

    These deprecations have already been rolled out in a previous version for the +following languages:

    + + +

    Outside of these packages, these changes also concern the following TokenManager +implementations, and their corresponding Parser if it exists (in the same package):

    + + + +

    In the Java AST the following attributes are deprecated and will issue a warning when used in XPath rules:

    + + + +
    For removal
    + + + +

    External Contributions

    + + + +

    Stats

    +
      +
    • 237 commits
    • +
    • 64 closed tickets & PRs
    • +
    • Days since last release: 42
    • +
    + +

    12-March-2020 - 6.22.0

    + +

    The PMD team is pleased to announce PMD 6.22.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Java 14 Support

    + +

    This release of PMD brings support for Java 14. PMD can parse Switch Expressions, +which have been promoted to be a standard language feature of Java.

    + +

    PMD also parses Text Blocks as String literals, which is still a preview +language feature in Java 14.

    + +

    The new Pattern Matching for instanceof can be used as well as +Records.

    + +

    Note: The Text Blocks, Pattern Matching for instanceof and Records are all preview language features of OpenJDK 14 +and are not enabled by default. In order to +analyze a project with PMD that uses these language features, you’ll need to enable it via the environment +variable PMD_JAVA_OPTS and select the new language version 14-preview:

    + +
    export PMD_JAVA_OPTS=--enable-preview
    +./run.sh pmd -language java -version 14-preview ...
    +
    + +

    Note: Support for the extended break statement introduced in Java 12 as a preview language feature +has been removed from PMD with this version. The version “12-preview” is no longer available.

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    Apex Suppressions

    + +

    In addition to suppressing violation with the @SuppressWarnings annotation, Apex now also supports +the suppressions with a NOPMD comment. See Suppressing warnings.

    + +

    Improved CPD support for C#

    + +

    The C# tokenizer is now based on an antlr grammar instead of a manual written tokenizer. This +should give more accurate results and especially fixes the problems with the using statement syntax +(see #2139).

    + +

    XPath Rules

    + +

    See the new documentation about Writing XPath Rules.

    + +

    Note: As of PMD version 6.22.0, XPath versions 1.0 and the 1.0 compatibility mode are deprecated. +XPath 2.0 is superior in many ways, for example for its support for type checking, sequence values, +or quantified expressions. For a detailed but approachable review of the features of XPath 2.0 and above, +see the Saxon documentation.

    + +

    New Rules

    + +
      +
    • +

      The Rule CognitiveComplexity (apex-design) finds methods and classes +that are highly complex and therefore difficult to read and more costly to maintain. In contrast +to cyclomatic complexity, this rule uses “Cognitive Complexity”, which is a measure of how +difficult it is for humans to read and understand a method.

      +
    • +
    • +

      The Rule TestMethodsMustBeInTestClasses (apex-errorprone) finds test methods +that are not residing in a test class. The test methods should be moved to a proper test class. +Support for tests inside functional classes was removed in Spring-13 (API Version 27.0), making classes +that violate this rule fail compile-time. This rule is however useful when dealing with legacy code.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #1087: [apex] Support suppression via //NOPMD
      • +
      • #2306: [apex] Switch statements are not parsed/supported
      • +
      +
    • +
    • apex-design +
        +
      • #2162: [apex] Cognitive Complexity rule
      • +
      +
    • +
    • apex-errorprone +
        +
      • #639: [apex] Test methods should not be in classes other than test classes
      • +
      +
    • +
    • cs +
        +
      • #2139: [cs] CPD doesn’t understand alternate using statement syntax with C# 8.0
      • +
      +
    • +
    • doc +
        +
      • #2274: [doc] Java API documentation for PMD
      • +
      +
    • +
    • java +
        +
      • #2159: [java] Prepare for JDK 14
      • +
      • #2268: [java] Improve TypeHelper resilience
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2277: [java] FP in UnusedImports for ambiguous static on-demand imports
      • +
      +
    • +
    • java-design +
        +
      • #911: [java] UselessOverridingMethod false positive when elevating access modifier
      • +
      +
    • +
    • java-errorprone +
        +
      • #2242: [java] False-positive MisplacedNullCheck reported
      • +
      • #2250: [java] InvalidLogMessageFormat flags logging calls using a slf4j-Marker
      • +
      • #2255: [java] InvalidLogMessageFormat false-positive for a lambda argument
      • +
      +
    • +
    • java-performance +
        +
      • #2275: [java] AppendCharacterWithChar flags literals in an expression
      • +
      +
    • +
    • plsql +
        +
      • #2325: [plsql] NullPointerException while running parsing test for CREATE TRIGGER
      • +
      • #2327: [plsql] Parsing of WHERE CURRENT OF
      • +
      • #2328: [plsql] Support XMLROOT
      • +
      • #2331: [plsql] Fix in Comment statement
      • +
      • #2332: [plsql] Fixed Execute Immediate statement parsing
      • +
      • #2340: [plsql] Fixed parsing / as divide or execute
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +
    In ASTs (JSP)
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the JSP AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like JspNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The class JspParser is deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.jsp.ast to find out the full list of deprecations.

    + +
    In ASTs (Velocity)
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the VM AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and +marked InternalApi. Nodes should only be obtained from the parser, +which for rules, means that they never need to instantiate node themselves. +Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. The base classes are internal API +and will be hidden in version 7.0.0. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like VmNode or +Node, or the other published interfaces in this package, +to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. +We will make those setters package private with 7.0.0.
    • +
    • The package net.sourceforge.pmd.lang.vm.directive as well as the classes +DirectiveMapper and LogUtil are deprecated +for removal. They were only used internally during parsing.
    • +
    • The class VmParser is deprecated and should not be used directly. +Use LanguageVersionHandler#getParser instead.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.vm.ast to find out the full list of deprecations.

    + +

    PLSQL AST

    + +

    The production and node ASTCursorBody was unnecessary, not used and has been removed. Cursors have been already +parsed as ASTCursorSpecification.

    + +

    External Contributions

    + + + +

    24-January-2020 - 6.21.0

    + +

    The PMD team is pleased to announce PMD 6.21.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Modelica support

    + +

    Thanks to Anatoly Trosinenko PMD supports now a new language: +Modelica is a language to model complex physical systems. +Both PMD and CPD are supported and there are already 3 rules available. +The PMD Designer supports syntax highlighting for Modelica.

    + +

    While the language implementation is quite complete, Modelica support is considered experimental +for now. This is to allow us to change the rule API (e.g. the AST classes) slightly and improve +the implementation based on your feedback.

    + +

    Simple XML dump of AST

    + +

    We added a experimental feature to dump the AST of a source file into XML. The XML format +is of course PMD specific and language dependent. That XML file can be used to execute +(XPath) queries against without PMD. It can also be used as a textual visualization of the AST +if you don’t want to use the Designer.

    + +

    This feature is experimental and might change or even be removed in the future, if it is not +useful. A short description how to use it is available under Creating XML dump of the AST.

    + +

    Any feedback about it, especially about your use cases, is highly appreciated.

    + +

    Updated Apex Support

    + +
      +
    • The Apex language support has been bumped to version 48 (Spring ‘20). All new language features are now properly +parsed and processed.
    • +
    + +

    CPD XML format

    + +

    The CPD XML output format has been enhanced to also report column information for found duplications +in addition to the line information. This allows to display the exact tokens, that are considered +duplicate.

    + +

    If a CPD language doesn’t provide these exact information, then these additional attributes are omitted.

    + +

    Each <file> element in the XML format now has 3 new attributes:

    + +
      +
    • attribute endline
    • +
    • attribute column (if there is column information available)
    • +
    • attribute endcolumn (if there is column information available)
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule AvoidLiteralsInIfCondition (java-errorprone) has a new property +ignoreExpressions. This property is set by default to true in order to maintain compatibility. If this +property is set to false, then literals in more complex expressions are considered as well.

      +
    • +
    • +

      The Apex rule ApexCSRF (apex-errorprone) has been moved from category +“Security” to “Error Prone”. The Apex runtime already prevents DML statements from being executed, but only +at runtime. So, if you try to do this, you’ll get an error at runtime, hence this is error prone. See also +the discussion on #2064.

      +
    • +
    • +

      The Java rule CommentRequired (java-documentation) has a new property +classCommentRequirement. This replaces the now deprecated property headerCommentRequirement, since +the name was misleading. (File) header comments are not checked, but class comments are.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #2208: [apex] ASTFormalComment should implement ApexNode<T>
      • +
      +
    • +
    • core +
        +
      • #1984: [java] Cyclomatic complexity is misreported (lack of clearing metrics cache)
      • +
      • #2006: [core] PMD should warn about multiple instances of the same rule in a ruleset
      • +
      • #2161: [core] ResourceLoader is deprecated and marked as internal but is exposed
      • +
      • #2170: [core] DocumentFile doesn’t preserve newlines
      • +
      +
    • +
    • doc +
        +
      • #2214: [doc] Link broken in pmd documentation for writing Xpath rules
      • +
      +
    • +
    • java +
        +
      • #2212: [java] JavaRuleViolation reports wrong class name
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2149: [java] JUnitAssertionsShouldIncludeMessage - False positive with assertEquals and JUnit5
      • +
      +
    • +
    • java-codestyle +
        +
      • #2167: [java] UnnecessaryLocalBeforeReturn false positive with variable captured by method reference
      • +
      +
    • +
    • java-documentation +
        +
      • #1683: [java] CommentRequired property names are inconsistent
      • +
      +
    • +
    • java-errorprone +
        +
      • #2140: [java] AvoidLiteralsInIfCondition: false negative for expressions
      • +
      • #2196: [java] InvalidLogMessageFormat does not detect extra parameters when no placeholders
      • +
      +
    • +
    • java-performance +
        +
      • #2141: [java] StringInstatiation: False negative with String-array access
      • +
      +
    • +
    • plsql +
        +
      • #2008: [plsql] In StringLiteral using alternative quoting mechanism single quotes cause parsing errors
      • +
      • #2009: [plsql] Multiple DDL commands are skipped during parsing
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    Internal API
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. +You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +
    For removal
    + + + +

    External Contributions

    + + + +

    29-November-2019 - 6.20.0

    + +

    The PMD team is pleased to announce PMD 6.20.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #2092: [apex] ApexLexer logs visible when Apex is the selected language upon starting the designer
      • +
      • #2136: [apex] Provide access to underlying query of SoqlExpression
      • +
      +
    • +
    • core +
        +
      • #2002: [doc] Issue with http://pmdapplied.com/ linking to a gambling Web site
      • +
      • #2062: [core] Shortnames parameter does not work with Ant
      • +
      • #2090: [ci] Release notes and draft releases
      • +
      • #2096: [core] Referencing category errorprone.xml produces deprecation warnings for InvalidSlf4jMessageFormat
      • +
      +
    • +
    • java +
        +
      • #1861: [java] Be more lenient with version numbers
      • +
      • #2105: [java] Wrong name for inner classes in violations
      • +
      +
    • +
    • java-bestpractices +
        +
      • #2016: [java] UnusedImports: False positive if wildcard is used and only static methods
      • +
      +
    • +
    • java-codestyle +
        +
      • #1362: [java] LinguisticNaming flags Predicates with boolean-style names
      • +
      • #2029: [java] UnnecessaryFullyQualifiedName false-positive for non-static nested classes
      • +
      • #2098: [java] UnnecessaryFullyQualifiedName: regression / false positive
      • +
      +
    • +
    • java-design +
        +
      • #2075: [java] ImmutableField false positive with inner class
      • +
      • #2125: [java] ImmutableField: False positive when variable is updated in conditional loop
      • +
      +
    • +
    • java-errorprone +
        +
      • #2102: [java] False positive MissingStaticMethodInNonInstantiatableClass when inheritors are instantiable
      • +
      +
    • +
    + +

    External Contributions

    + + + +

    31-October-2019 - 6.19.0

    + +

    The PMD team is pleased to announce PMD 6.19.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    Java Metrics

    + + + +

    Modified Rules

    + +
      +
    • +

      The Java rules InvalidLogMessageFormat and MoreThanOneLogger +(java-errorprone) now both support Log4j2. Note that the +rule “InvalidSlf4jMessageFormat” has been renamed to “InvalidLogMessageFormat” to reflect the fact, that it now +supports more than slf4j.

      +
    • +
    • +

      The Java rule LawOfDemeter (java-design) ignores now also Builders, that are +not assigned to a local variable, but just directly used within a method call chain. The method, that creates +the builder needs to end with “Builder”, e.g. newBuilder() or initBuilder() works. This change +fixes a couple of false positives.

      +
    • +
    • +

      The Java rule DataflowAnomalyAnalysis (java-errorprone) doesn’t check for +UR anomalies (undefined and then referenced) anymore. These checks were all false-positives, since actual +UR occurrences would lead to compile errors.

      +
    • +
    • +

      The java rule DoNotUseThreads (java-multithreading) has been changed +to not report usages of java.lang.Runnable anymore. Just using Runnable does not automatically create +a new thread. While the check for Runnable has been removed, the rule now additionally checks for +usages of Executors and ExecutorService. Both create new threads, which are not managed by a J2EE +server.

      +
    • +
    + +

    Renamed Rules

    + + + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #1978: [core] PMD fails on excluding unknown rules
      • +
      • #2014: [core] Making add(SourceCode sourceCode) public for alternative file systems
      • +
      • #2020: [core] Wrong deprecation warnings for unused XPath attributes
      • +
      • #2036: [core] Wrong include/exclude patterns are silently ignored
      • +
      • #2048: [core] Enable type resolution by default for XPath rules
      • +
      • #2067: [core] Build issue on Windows
      • +
      • #2068: [core] Rule loader should use the same resources loader for the ruleset
      • +
      • #2071: [ci] Add travis build on windows
      • +
      • #2072: [test][core] Not enough info in “test setup error” when numbers of lines do not match
      • +
      • #2082: [core] Incorrect logging of deprecated/renamed rules
      • +
      +
    • +
    • java +
        +
      • #2042: [java] PMD crashes with ClassFormatError: Absent Code attribute…
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1531: [java] UnusedPrivateMethod false-positive with method result
      • +
      • #2025: [java] UnusedImports when @see / @link pattern includes a FQCN
      • +
      +
    • +
    • java-codestyle +
        +
      • #2017: [java] UnnecessaryFullyQualifiedName triggered for inner class
      • +
      +
    • +
    • java-design +
        +
      • #1912: [java] Metrics not computed correctly with annotations
      • +
      +
    • +
    • java-errorprone +
        +
      • #336: [java] InvalidSlf4jMessageFormat applies to log4j2
      • +
      • #1636: [java] Stop checking UR anomalies for DataflowAnomalyAnalysis
      • +
      +
    • +
    • java-multithreading +
        +
      • #1627: [java] DoNotUseThreads should not warn on Runnable
      • +
      +
    • +
    • doc +
        +
      • #2058: [doc] CLI reference for -norulesetcompatibility shows a boolean default value
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    For removal
    + + + +
    Internal APIs
    + + + +

    External Contributions

    + + + +

    15-September-2019 - 6.18.0

    + +

    The PMD team is pleased to announce PMD 6.18.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Java 13 Support

    + +

    This release of PMD brings support for Java 13. PMD can parse Switch Expressions +with the new yield statement and resolve the type of such an expression.

    + +

    PMD also parses Text Blocks as String literals.

    + +

    Note: The Switch Expressions and Text Blocks are a preview language feature of OpenJDK 13 +and are not enabled by default. In order to +analyze a project with PMD that uses these language features, you’ll need to enable it via the environment +variable PMD_JAVA_OPTS and select the new language version 13-preview:

    + +
    export PMD_JAVA_OPTS=--enable-preview
    +./run.sh pmd -language java -version 13-preview ...
    +
    + +

    Note: Support for the extended break statement introduced in Java 12 as a preview language feature +will be removed with the next PMD version 6.19.0.

    + +

    Full support for Scala

    + +

    Thanks to Chris Smith PMD now fully supports Scala. Now rules for analyzing Scala +code can be developed in addition to the Copy-Paste-Detection (CPD) functionality. There are no rules yet, so +contributions are welcome.

    + +

    Additionally Scala support has been upgraded from 2.12.4 to 2.13.

    + +

    New rule designer documentation

    + +

    The documentation for the rule designer is now available on the main PMD documentation page: +Rule Designer Reference. Check it out to learn +about the usage and features of the rule designer.

    + +

    New rules

    + +
      +
    • +

      The Java rule AvoidMessageDigestField (java-bestpractices) detects fields +of the type java.security.MessageDigest. Using a message digest instance as a field would need to be +synchronized, as it can easily be used by multiple threads. Without synchronization the calculated hash could +be entirely wrong. Instead of declaring this as a field and synchronize access to use it from multiple threads, +a new instance should be created when needed. This rule is also active when using java’s quickstart ruleset.

      +
    • +
    • +

      The Apex rule DebugsShouldUseLoggingLevel (apex-bestpractices) detects +usages of System.debug() method calls that are used without specifying the log level. Having the log +level specified provides a cleaner log, and improves readability of it.

      +
    • +
    + +

    Modified Rules

    + +
      +
    • The Java rule CloseResource (java-errorprone) now ignores by default instances +of java.util.stream.Stream. These streams are AutoCloseable, but most streams are backed by collections, +arrays, or generating functions, which require no special resource management. However, there are some exceptions: +The stream returned by Files::lines(Path) is backed by a actual file and needs to be closed. These instances +won’t be found by default by the rule anymore.
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #1465: [core] Stylesheet pmd-report.xslt fails to display filepath if ‘java’ in path
      • +
      • #1923: [core] Incremental analysis does not work with shortnames
      • +
      • #1983: [core] Avoid crashes with analysis cache when classpath references non-existing directories
      • +
      • #1990: [core] Incremental analysis mixes XPath rule violations
      • +
      +
    • +
    • apex +
        +
      • #1901: [apex] Expose super type name of UserClass
      • +
      • #1942: [apex] Add best practice rule for debug statements in Apex
      • +
      +
    • +
    • java +
        +
      • #1930: [java] Add Java 13 support
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1227: [java] UnusedFormalParameter should explain checkAll better
      • +
      • #1862: [java] New rule for MessageDigest.getInstance
      • +
      • #1952: [java] UnusedPrivateField not triggering if @Value annotation present
      • +
      +
    • +
    • java-codestyle +
        +
      • #1951: [java] UnnecessaryFullyQualifiedName rule triggered when variable name clashes with package name
      • +
      +
    • +
    • java-errorprone +
        +
      • #1922: [java] CloseResource possible false positive with Streams
      • +
      • #1966: [java] CloseResource false positive if Stream is passed as method parameter
      • +
      • #1967: [java] CloseResource false positive with late assignment of variable
      • +
      +
    • +
    • plsql +
        +
      • #1933: [plsql] ParseException with cursor declared in anonymous block
      • +
      • #1935: [plsql] ParseException with SELECT INTO record defined as global variable
      • +
      • #1936: [plslq] ParseException with cursor inside procedure declaration
      • +
      • #1946: [plsql] ParseException with using TRIM inside IF statements condition
      • +
      • #1947: [plsql] ParseError - SELECT with FOR UPDATE OF
      • +
      • #1948: [plsql] ParseException with INSERT INTO using package global variables
      • +
      • #1950: [plsql] ParseException with UPDATE and package record variable
      • +
      • #1953: [plsql] ParseException with WITH in CURSOR
      • +
      +
    • +
    + +

    API Changes

    + +

    Changes to Renderer

    + +
      +
    • +

      Each renderer has now a new method Renderer#setUseShortNames which +is used for implementing the “shortnames” CLI option. The method is automatically called by PMD, if this +CLI option is in use. When rendering filenames to the report, the new helper method +AbstractRenderer#determineFileName should be used. This will change +the filename to a short name, if the CLI option “shortnames” is used.

      + +

      Not adjusting custom renderers will make them render always the full file names and not honoring the +CLI option “shortnames”.

      +
    • +
    + +

    Deprecated APIs

    + +
    For removal
    + + + +
    Internal APIs
    + +

    Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.

    + + + +

    External Contributions

    + + + +

    28-July-2019 - 6.17.0

    + +

    The PMD team is pleased to announce PMD 6.17.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog. +It contains a new feature to edit test cases directly within the designer. Any feedback is highly appreciated.

    + +

    Lua support

    + +

    Thanks to the contribution from Maikel Steneker, and built on top of the ongoing efforts to fully support Antlr-based languages, +PMD now has CPD support for Lua.

    + +

    Being based on a proper Antlr grammar, CPD can:

    + + +

    Modified Rules

    + +
      +
    • +

      The Java rule CloseResource (java-errorprone) ignores now by default +java.io.ByteArrayInputStream and java.io.CharArrayWriter. Such streams/writers do not need to be closed.

      +
    • +
    • +

      The Java rule MissingStaticMethodInNonInstantiatableClass (java-errorprone) has now +the new property annotations. +When one of the private constructors is annotated with one of the annotations, then the class is not considered +non-instantiatable anymore and no violation will be reported. By default, Spring’s @Autowired and +Java EE’s @Inject annotations are recognized.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #1913: [core] “-help” CLI option ends with status code != 0
      • +
      +
    • +
    • doc +
        +
      • #1896: [doc] Error in changelog 6.16.0 due to not properly closed rule tag
      • +
      • #1898: [doc] Incorrect code example for DoubleBraceInitialization in documentation on website
      • +
      • #1906: [doc] Broken link for adding own CPD languages
      • +
      • #1909: [doc] Sample usage example refers to deprecated ruleset “basic.xml” instead of “quickstart.xml”
      • +
      +
    • +
    • java +
        +
      • #1910: [java] ATFD calculation problem
      • +
      +
    • +
    • java-errorprone +
        +
      • #1749: [java] DD False Positive in DataflowAnomalyAnalysis
      • +
      • #1832: [java] False positives for MissingStaticMethodInNonInstantiatableClass when DI is used
      • +
      • #1921: [java] CloseResource false positive with ByteArrayInputStream
      • +
      +
    • +
    • java-multithreading +
        +
      • #1903: [java] UnsynchronizedStaticFormatter doesn’t allow block-level synchronization when using allowMethodLevelSynchronization=true
      • +
      +
    • +
    • plsql +
        +
      • #1902: [pslql] ParseException when parsing (+)
      • +
      +
    • +
    • xml +
        +
      • #1666: [xml] wrong cdata rule description and examples
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #1869: [xml] fix #1666 wrong cdata rule description and examples - Artem
    • +
    • #1892: [lua] [cpd] Added CPD support for Lua - Maikel Steneker
    • +
    • #1905: [java] DataflowAnomalyAnalysis Rule in right order - YoonhoChoi96
    • +
    • #1908: [doc] Update ruleset filename from deprecated basic.xml to quickstart.xml - crunsk
    • +
    • #1916: [java] Exclude Autowired and Inject for MissingStaticMethodInNonInstantiatableClass - AnthonyKot
    • +
    • #1917: [core] Add ‘no error’ return option, and assign it to the cli when the help command is invoked - Renato Oliveira
    • +
    + +

    30-June-2019 - 6.16.0

    + +

    The PMD team is pleased to announce PMD 6.16.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    PLSQL Grammar Updates

    + +

    The grammar has been updated to support inline constraints in CREATE TABLE statements. Additionally, the +CREATE TABLE statement may now be followed by physical properties and table properties. However, these +properties are skipped over during parsing.

    + +

    The CREATE VIEW statement now supports subquery views.

    + +

    The EXTRACT function can now be parsed correctly. It is used to extract values from a specified +datetime field. Also date time literals are parsed now correctly.

    + +

    The CASE expression can now be properly used within SELECT statements.

    + +

    Table aliases are now supported when specifying columns in INSERT INTO clauses.

    + +

    New Rules

    + +
      +
    • +

      The Java rule DoubleBraceInitialization (java-bestpractices) +detects non static initializers in anonymous classes also known as “double brace initialization”. +This can be problematic, since a new class file is generated and object holds a strong reference +to the surrounding class.

      + +

      Note: This rule is also part of the Java quickstart ruleset (rulesets/java/quickstart.xml).

      +
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule UnusedPrivateField (java-bestpractices) now ignores by +default fields, that are annotated with the Lombok experimental annotation @Delegate. This can be +customized with the property ignoredAnnotations.

      +
    • +
    • +

      The Java rule SingularField (java-design) now ignores by +default fields, that are annotated with the Lombok experimental annotation @Delegate. This can be +customized with the property ignoredAnnotations.

      +
    • +
    • +

      The Java rules UnsynchronizedStaticFormatter and +UnsynchronizedStaticDateFormatter (java-multithreading) +now prefer synchronized blocks by default. They will raise a violation, if the synchronization is implemented +on the method level. To allow the old behavior, the new property allowMethodLevelSynchronization can +be enabled.

      +
    • +
    • +

      The Java rule UseUtilityClass (java-design) has a new property ignoredAnnotations. +By default, classes that are annotated with Lombok’s @UtilityClass are ignored now.

      +
    • +
    • +

      The Java rule NonStaticInitializer (java-errorprone) does not report +non static initializers in anonymous classes anymore. For this use case, there is a new rule now: +DoubleBraceInitialization (java-bestpractices).

      +
    • +
    • +

      The Java rule CommentDefaultAccessModifier (java-codestyle) was enhanced +in the last version 6.15.0 to check also top-level types by default. This created many new violations. +Missing the access modifier for top-level types is not so critical, since it only decreases the visibility +of the type.

      + +

      The default behaviour has been restored. If you want to enable the check for top-level types, you can +use the new property checkTopLevelTypes.

      +
    • +
    • +

      The Java rule CloseResource (java-errorprone) now by default searches +for any unclosed java.lang.AutoCloseable resource. This includes now the standard java.io.*Stream classes. +Previously only SQL-related resources were considered by this rule. The types can still be configured +via the types property. Some resources do not need to be closed (e.g. ByteArrayOutputStream). These +exceptions can be configured via the new property allowedResourceTypes. +In order to restore the old behaviour, just remove the type java.lang.AutoCloseable from the types +property and keep the remaining SQL-related classes.

      +
    • +
    + +

    Deprecated Rules

    + +
      +
    • The Java rule AvoidFinalLocalVariable (java-codestyle) has been deprecated +and will be removed with PMD 7.0.0. The rule is controversial and also contradicts other existing +rules such as LocalVariableCouldBeFinal. If the goal is to avoid defining +constants in a scope smaller than the class, then the rule AvoidDuplicateLiterals +should be used instead.
    • +
    + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #1664: [apex] False positive ApexSharingViolationsRule, unsupported Apex feature
      • +
      +
    • +
    • java +
        +
      • #1848: [java] Local classes should preserve their modifiers
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1703: [java] UnusedPrivateField on member annotated with lombok @Delegate
      • +
      • #1845: [java] Regression in MethodReturnsInternalArray not handling enums
      • +
      • #1854: [java] Rule to check for double brace initialisation
      • +
      +
    • +
    • java-codestyle +
        +
      • #1612: [java] Deprecate AvoidFinalLocalVariable
      • +
      • #1880: [java] CommentDefaultAccessModifier should be configurable for top-level classes
      • +
      +
    • +
    • java-design +
        +
      • #1094: [java] UseUtilityClass should be LombokAware
      • +
      +
    • +
    • java-errorprone +
        +
      • #1000: [java] The rule CloseResource should deal with IO stream as default
      • +
      • #1853: [java] False positive for NonStaticInitializer in anonymous class
      • +
      +
    • +
    • java-multithreading +
        +
      • #1814: [java] UnsynchronizedStaticFormatter documentation and implementation wrong
      • +
      • #1815: [java] False negative in UnsynchronizedStaticFormatter
      • +
      +
    • +
    • plsql +
        +
      • #1828: [plsql] Parentheses stopped working
      • +
      • #1850: [plsql] Parsing errors with INSERT using returning or records and TRIM expression
      • +
      • #1873: [plsql] Expression list not working
      • +
      • #1878: [pslql] ParseException when parsing USING
      • +
      • #1879: [pslql] ParseException when parsing LEFT JOIN
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    +

    Reminder: Please don’t use members marked with the annotation InternalApi, as they will likely be removed, hidden, or otherwise intentionally broken with 7.0.0.

    +
    + +
    In ASTs
    + +

    As part of the changes we’d like to do to AST classes for 7.0.0, we would like to +hide some methods and constructors that rule writers should not have access to. +The following usages are now deprecated in the Java AST (with other languages to come):

    + +
      +
    • Manual instantiation of nodes. Constructors of node classes are deprecated and marked InternalApi. Nodes should only be obtained from the parser, which for rules, means that never need to instantiate node themselves. Those constructors will be made package private with 7.0.0.
    • +
    • Subclassing of abstract node classes, or usage of their type. Version 7.0.0 will bring a new set of abstractions that will be public API, but the base classes are and will stay internal. You should not couple your code to them. +
        +
      • In the meantime you should use interfaces like JavaNode or Node, or the other published interfaces in this package, to refer to nodes generically.
      • +
      • Concrete node classes will be made final with 7.0.0.
      • +
      +
    • +
    • Setters found in any node class or interface. Rules should consider the AST immutable. We will make those setters package private with 7.0.0.
    • +
    + +

    Please look at net.sourceforge.pmd.lang.java.ast to find out the full list +of deprecations.

    + +

    External Contributions

    + + + +

    26-May-2019 - 6.15.0

    + +

    The PMD team is pleased to announce PMD 6.15.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Enhanced Matlab support

    + +

    Thanks to the contributions from Maikel Steneker CPD for Matlab can +now parse Matlab programs which use the question mark operator to specify access to +class members:

    + +
    classdef Class1
    +properties (SetAccess = ?Class2)
    +
    + +

    CPD also understands now double quoted strings, which are supported since version R2017a of Matlab:

    + +
    str = "This is a string"
    +
    + +

    Enhanced C++ support

    + +

    CPD now supports digit separators in C++ (language module “cpp”). This is a C++14 feature.

    + +

    Example: auto integer_literal = 1'000'000;

    + +

    The single quotes can be used to add some structure to large numbers.

    + +

    CPD also parses raw string literals now correctly (see #1784).

    + +

    New Rules

    + +
      +
    • +

      The new Apex rule FieldNamingConventions (apex-codestyle) checks the naming +conventions for field declarations. By default this rule uses the standard Apex naming convention (Camel case), +but it can be configured through properties.

      +
    • +
    • +

      The new Apex rule FormalParameterNamingConventions (apex-codestyle) checks the +naming conventions for formal parameters of methods. By default this rule uses the standard Apex naming +convention (Camel case), but it can be configured through properties.

      +
    • +
    • +

      The new Apex rule LocalVariableNamingConventions (apex-codestyle) checks the +naming conventions for local variable declarations. By default this rule uses the standard Apex naming +convention (Camel case), but it can be configured through properties.

      +
    • +
    • +

      The new Apex rule PropertyNamingConventions (apex-codestyle) checks the naming +conventions for property declarations. By default this rule uses the standard Apex naming convention (Camel case), +but it can be configured through properties.

      +
    • +
    • +

      The new Java rule UseShortArrayInitializer (java-codestyle) searches for +array initialization expressions, which can be written shorter.

      +
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Apex rule ClassNamingConventions (apex-codestyle) can now be configured +using various properties for the specific kind of type declarations (e.g. class, interface, enum). +As before, this rule uses by default the standard Apex naming convention (Pascal case).

      +
    • +
    • +

      The Apex rule MethodNamingConventions (apex-codestyle) can now be configured +using various properties to differenciate e.g. static methods and test methods. +As before, this rule uses by default the standard Apex naming convention (Camel case).

      +
    • +
    • +

      The Java rule FieldNamingConventions (java-codestyle) now by default ignores +the field serialPersistentFields. Since this is a field which needs to have this special name, no +field naming conventions can be applied here. It is excluded the same way like serialVersionUID via the +property exclusions.

      +
    • +
    • +

      The Java rule CommentRequired (java-documentation) has a new property +serialPersistentFieldsCommentRequired with the default value “Ignored”. This means that from now +on comments for the field serialPersistentFields are not required anymore. You can change the property +to restore the old behavior.

      +
    • +
    • +

      The Java rule ProperLogger (java-errorprone) has two new properties +to configure the logger class (e.g. “org.slf4j.Logger”) and the logger name of the special case, +when the logger is not static. The name of the static logger variable was already configurable. +The new property “loggerClass” allows to use this rule for different logging frameworks. +This rule covers all the cases of the now deprecated rule LoggerIsNotStaticFinal.

      +
    • +
    • +

      The Java rule CommentDefaultAccessModifier (java-codestyle) now reports also +missing comments for top-level classes and annotations, that are package-private.

      +
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • apex +
        +
      • #1321: [apex] Should VariableNamingConventions require properties to start with a lowercase letter?
      • +
      • #1783: [apex] comments on constructor not recognized when the Class has inner class
      • +
      +
    • +
    • cpp +
        +
      • #1784: [cpp] Improve support for raw string literals
      • +
      +
    • +
    • dart +
        +
      • #1809: [dart] [cpd] Parse error with escape sequences
      • +
      +
    • +
    • java +
        +
      • #1842: [java] Annotated module declarations cause parse error
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1738: [java] MethodReturnsInternalArray does not work in inner classes
      • +
      +
    • +
    • java-codestyle +
        +
      • #1495: [java] Rule to detect overly verbose array initializiation
      • +
      • #1684: [java] Properly whitelist serialPersistentFields
      • +
      • #1804: [java] NPE in UnnecessaryLocalBeforeReturnRule
      • +
      +
    • +
    • python +
        +
      • #1810: [python] [cpd] Parse error when using Python 2 backticks
      • +
      +
    • +
    • matlab +
        +
      • #1830: [matlab] [cpd] Parse error with comments
      • +
      • #1793: [java] CommentDefaultAccessModifier not working for classes
      • +
      +
    • +
    + +

    API Changes

    + +

    Deprecated APIs

    + +
    For removal
    + + + +

    External Contributions

    + + + +

    28-April-2019 - 6.14.0

    + +

    The PMD team is pleased to announce PMD 6.14.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Dart support

    + +

    Thanks to the contribution from Maikel Steneker, and built on top of the ongoing efforts to fully support Antlr-based languages, +PMD now has CPD support for Dart.

    + +

    Being based on a proper Antlr grammar, CPD can:

    + + +

    Updated PMD Designer

    + +

    This PMD release ships a new version of the pmd-designer. +For the changes, see PMD Designer Changelog.

    + +

    Modified Rules

    + +
      +
    • +

      The Java rule AssignmentToNonFinalStatic (java-errorprone) will now report on each +assignment made within a constructor rather than on the field declaration. This makes it easier for developers to +find the offending statements.

      +
    • +
    • +

      The Java rule NoPackage (java-codestyle) will now report additionally enums +and annotations that do not have a package declaration.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #1515: [core] Module pmd-lang-test is missing javadoc artifact
      • +
      • #1788: [cpd] [core] Use better ClassLoader for ServiceLoader in LanguageFactory
      • +
      • #1794: [core] Ruleset Compatibility fails with excluding rules
      • +
      +
    • +
    • go +
        +
      • #1751: [go] Parsing errors encountered with escaped backslash
      • +
      +
    • +
    • java +
        +
      • #1532: [java] NPE with incomplete auxclasspath
      • +
      • #1691: [java] Possible Data Race in JavaTypeDefinitionSimple.getGenericType
      • +
      • #1729: [java] JavaRuleViolation loses information in className field when class has package-private access level
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1190: [java] UnusedLocalVariable/UnusedPrivateField false-positive
      • +
      • #1720: [java] UnusedImports false positive for Javadoc link with array type
      • +
      +
    • +
    • java-codestyle +
        +
      • #1755: [java] False negative in UnnecessaryLocalBeforeReturn when splitting statements across multiple lines
      • +
      • #1782: [java] NoPackage: False Negative for enums
      • +
      +
    • +
    • java-design +
        +
      • #1760: [java] UseObjectForClearerAPI flags private methods
      • +
      +
    • +
    + +

    API Changes

    + +

    No changes.

    + +

    External Contributions

    + + + +

    31-March-2019 - 6.13.0

    + +

    The PMD team is pleased to announce PMD 6.13.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + + + +

    We are still searching for a new logo for PMD for the next major release.

    + +

    Learn more about how to participate on github issue 1663.

    + +

    Java 12 Support

    + +

    This release of PMD brings support for Java 12. PMD can parse the new Switch Expressions +and resolve the type of such an expression.

    + +

    Note: The Switch Expressions are a preview language feature of OpenJDK 12 and are not enabled by default. In order to +analyze a project with PMD that uses these language features, you’ll need to enable it via the new environment +variable PMD_JAVA_OPTS:

    + +
    export PMD_JAVA_OPTS=--enable-preview
    +./run.sh pmd ...
    +
    + +

    Quickstart Ruleset for Apex

    + +

    PMD provides now a quickstart ruleset for Salesforce.com Apex, which you can use as a base ruleset to +get your custom ruleset started. You can reference it with rulesets/apex/quickstart.xml. +You are strongly encouraged to create your own ruleset +though.

    + +

    The quickstart ruleset has the intention, to be useful out-of-the-box for many projects. Therefore it +references only rules, that are most likely to apply everywhere.

    + +

    Any feedback would be greatly appreciated.

    + +

    PMD Designer

    + +

    The rule designer’s codebase has been moved out of the main repository and +will be developed at pmd/pmd-designer +from now on. The maven coordinates will stay the same for the time being. +The designer will still be shipped with PMD’s binaries.

    + +

    Improved Apex Support

    + +
      +
    • Many AST nodes now expose more information which makes it easier to write XPath-based rules for Apex. Here are +some examples: +
        +
      • Annotation[@Resolved = false()] finds unsupported annotations.
      • +
      • AnnotationParameter[@Name='RestResource'][@Value='/myurl'] gives access to +annotation parameters.
      • +
      • CatchBlockStatement[@ExceptionType='Exception'][@VariableName='e'] finds catch +block for specific exception types.
      • +
      • Field[@Type='String'] find all String fields, Field[string-length(@Name) < 5] +finds all fields with short names and Field[@Value='a'] find alls fields, that are +initialized with a specific value.
      • +
      • LiteralExpression[@String = true()] finds all String literals. There are attributes +for each type: @Boolean, @Integer, @Double, @Long, @Decimal, @Null.
      • +
      • Method[@Constructor = true()] selects all constructors. Method[@ReturnType = 'String'] +selects all methods that return a String.
      • +
      • The ModifierNode node has a couple of attributes to check for the existence of specific +modifiers: @Test, @TestOrTestSetup, @WithSharing, @WithoutSharing, @InheritedSharing, +@WebService, @Global, @Override.
      • +
      • Many nodes now expose their type. E.g. with Parameter[@Type='Integer'] you can find all +method parameters of type Integer. The same attribute Type exists as well for: +NewObjectExpression, Property, VariableDeclaration.
      • +
      • VariableExpression[@Image='i'] finds all variable usages of the variable “i”.
      • +
      +
    • +
    + +

    New Rules

    + +
      +
    • +

      The new Java rule AvoidUncheckedExceptionsInSignatures (java-design) finds methods or constructors +that declare unchecked exceptions in their throws clause. This forces the caller to handle the exception, +even though it is a runtime exception.

      +
    • +
    • +

      The new Java rule DetachedTestCase (java-errorprone) searches for public +methods in test classes, which are not annotated with @Test. These methods might be test cases where +the annotation has been forgotten. Because of that those test cases are never executed.

      +
    • +
    • +

      The new Java rule WhileLoopWithLiteralBoolean (java-bestpractices) finds +Do-While-Loops and While-Loops that can be simplified since they use simply true or false as their +loop condition.

      +
    • +
    • +

      The new Apex rule ApexAssertionsShouldIncludeMessage (apex-bestpractices) +searches for assertions in unit tests and checks, whether they use a message argument.

      +
    • +
    • +

      The new Apex rule ApexUnitTestMethodShouldHaveIsTestAnnotation (apex-bestpractices) +searches for methods in test classes, which are missing the @IsTest annotation.

      +
    • +
    • +

      The new PLSQL rule AvoidTabCharacter (plsql-codestyle) checks, that there are +no tab characters (“\t”) in the source file.

      +
    • +
    • +

      The new PLSQL rule LineLength (plsql-codestyle) helps to enforce a maximum +line length.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • doc +
        +
      • #1721: [doc] Documentation provides an invalid property configuration example
      • +
      +
    • +
    • java +
        +
      • #1537: [java] Java 12 support
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1701: [java] UseTryWithResources does not handle multiple argument close methods
      • +
      +
    • +
    • java-codestyle +
        +
      • #1527: [java] UseUnderscoresInNumericLiterals false positive on floating point numbers
      • +
      • #1674: [java] documentation of CommentDefaultAccessModifier is wrong
      • +
      +
    • +
    • java-errorprone +
        +
      • #1570: [java] AvoidDuplicateLiterals warning about deprecated separator property when not used
      • +
      +
    • +
    • plsql +
        +
      • #1510: [plsql] Support XMLTABLE functions
      • +
      • #1716: [plsql] Support access to whole plsql code
      • +
      • #1731: [pslql] ParseException when parsing ELSIF
      • +
      • #1733: [plsql] % not supported in “TestSearch%notfound”
      • +
      • #1734: [plsql] TooManyMethods false-negative
      • +
      • #1735: [plsql] False-negatives for TO_DATE_TO_CHAR, TO_DATEWithoutDateFormat, TO_TIMESTAMPWithoutDateFormat
      • +
      +
    • +
    + +

    API Changes

    + +

    Command Line Interface

    + +

    The start scripts run.sh, pmd.bat and cpd.bat support the new environment variable PMD_JAVA_OPTS. +This can be used to set arbitrary JVM options for running PMD, such as memory settings (e.g. PMD_JAVA_OPTS=-Xmx512m) +or enable preview language features (e.g. PMD_JAVA_OPTS=--enable-preview).

    + +

    The previously available variables such as OPTS or HEAPSIZE are deprecated and will be removed with PMD 7.0.0.

    + +

    Deprecated API

    + +
      +
    • +

      CodeClimateRule is deprecated in 7.0.0 because it was unused for 2 years and +created an unwanted dependency. +Properties “cc_categories”, “cc_remediation_points_multiplier”, “cc_block_highlighting” will also be removed. +See #1702 for more.

      +
    • +
    • +

      The Apex ruleset rulesets/apex/ruleset.xml has been deprecated and will be removed in 7.0.0. Please use the new +quickstart ruleset rulesets/apex/quickstart.xml instead.

      +
    • +
    + +

    External Contributions

    + + + +

    24-February-2019 - 6.12.0

    + +

    The PMD team is pleased to announce PMD 6.12.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Call For Logo

    + +

    PMD’s logo was great for a long time. But now we want to take the opportunity with the next major release to change +our logo in order to use a more “politically correct” one.

    + +

    Learn more about how to participate on github issue 1663.

    + +

    CPD Suppression for Antlr-based languages

    + +

    ITBA students Matías Fraga, +Tomi De Lucca and Lucas Soncini +keep working on bringing full Antlr support to PMD. For this release, they have implemented +token filtering in an equivalent way as we did for JavaCC languages, adding support for CPD +suppressions through CPD-OFF and CPD-ON comments for all Antlr-based languages.

    + +

    This means, you can now ignore arbitrary blocks of code on:

    +
      +
    • Go
    • +
    • Kotlin
    • +
    • Swift
    • +
    + +

    Simply start the suppression with any comment (single or multiline) containing CPD-OFF, +and resume again with a comment containing CPD-ON.

    + +

    More information is available in the user documentation.

    + +

    PL/SQL Grammar improvements

    + +
      +
    • In this release, many more parser bugs in our PL/SQL support have been fixed. This adds more complete +support for UPDATE statements and subqueries and hierarchical queries in SELECT statements.
    • +
    • Support for analytic functions such as LISTAGG has been added.
    • +
    • Conditions in WHERE clauses support now REGEX_LIKE and multiset conditions.
    • +
    + +

    New Rules

    + +
      +
    • The new Java rule UseTryWithResources (java-bestpractices) searches +for try-blocks, that could be changed to a try-with-resources statement. This statement ensures that +each resource is closed at the end of the statement and is available since Java 7.
    • +
    + +

    Modified Rules

    + +
      +
    • The Apex rule MethodNamingConventions (apex-codestyle) has a new +property skipTestMethodUnderscores, which is by default disabled. The new property allows for ignoring +all test methods, either using the testMethod modifier or simply annotating them @isTest.
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #1462: [core] Failed build on Windows with source zip archive
      • +
      • #1559: [core] CPD: Lexical error in file (no file name provided)
      • +
      • #1671: [doc] Wrong escaping in suppressing warnings for nopmd-comment
      • +
      • #1693: [ui] Improved error reporting for the designer
      • +
      +
    • +
    • java-bestpractices +
        +
      • #808: [java] AccessorMethodGeneration false positives with compile time constants
      • +
      • #1405: [java] New Rule: UseTryWithResources - Replace close and IOUtils.closeQuietly with try-with-resources
      • +
      • #1555: [java] UnusedImports false positive for method parameter type in @see Javadoc
      • +
      +
    • +
    • java-codestyle +
        +
      • #1543: [java] LinguisticNaming should ignore overriden methods
      • +
      • #1547: [java] AtLeastOneConstructorRule: false-positive with lombok.AllArgsConstructor
      • +
      • #1624: [java] UseDiamondOperator false positive with var initializer
      • +
      +
    • +
    • java-design +
        +
      • #1641: [java] False-positive with Lombok and inner classes
      • +
      +
    • +
    • java-errorprone +
        +
      • #780: [java] BeanMembersShouldSerializeRule does not recognize lombok accessors
      • +
      +
    • +
    • java-multithreading +
        +
      • #1633: [java] UnsynchronizedStaticFormatter reports commons lang FastDateFormat
      • +
      +
    • +
    • java-performance +
        +
      • #1632: [java] ConsecutiveLiteralAppends false positive over catch
      • +
      +
    • +
    • plsql +
        +
      • #1587: [plsql] ParseException with EXISTS
      • +
      • #1589: [plsql] ParseException with subqueries in WHERE clause
      • +
      • #1590: [plsql] ParseException when using hierarchical query clause
      • +
      • #1656: [plsql] ParseException with analytic functions, trim and subqueries
      • +
      +
    • +
    • designer +
        +
      • #1679: [ui] No default language version selected
      • +
      +
    • +
    + +

    API Changes

    + +

    No changes.

    + +

    External Contributions

    + +
      +
    • #1623: [java] Fix lombok.AllArgsConstructor support - Bobby Wertman
    • +
    • #1625: [java] UnusedImports false positive for method parameter type in @see Javadoc - Shubham
    • +
    • #1628: [java] LinguisticNaming should ignore overriden methods - Shubham
    • +
    • #1634: [java] BeanMembersShouldSerializeRule does not recognize lombok accessors - Shubham
    • +
    • #1635: [java] UnsynchronizedStaticFormatter reports commons lang FastDateFormat - Shubham
    • +
    • #1637: [java] Compile time constants initialized by literals avoided by AccessorMethodGenerationRule - Shubham
    • +
    • #1640: [java] Update instead of override classHasLombokAnnotation flag - Phokham Nonava
    • +
    • #1644: [apex] Add property to allow apex test methods to contain underscores - Tom
    • +
    • #1645: [java] ConsecutiveLiteralAppends false positive - Shubham
    • +
    • #1646: [java] UseDiamondOperator doesn’t work with var - Shubham
    • +
    • #1654: [core] Antlr token filter - Tomi De Lucca
    • +
    • #1655: [kotlin] Kotlin tokenizer refactor - Lucas Soncini
    • +
    • #1686: [doc] Replaced wrong escaping with “>” - Himanshu Pandey
    • +
    + +

    27-January-2019 - 6.11.0

    + +

    The PMD team is pleased to announce PMD 6.11.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Updated Apex Support

    + +
      +
    • The Apex language support has been bumped to version 45 (Spring ‘19). All new language features are now properly +parsed and processed.
    • +
    • Many nodes now expose more informations, such as the operator for BooleanExpressions. This makes these operators +consumable by XPath rules, e.g. //BooleanExpression[@Operator='&&'].
    • +
    + +

    PL/SQL Grammar improvements

    + +
      +
    • In this release, many parser bugs in our PL/SQL support have been fixed. This adds e.g. support for +table collection expressions (SELECT * FROM TABLE(expr)).
    • +
    • Support for parsing insert statements has been added.
    • +
    • More improvements are planned for the next release of PMD.
    • +
    + +

    New Rules

    + +
      +
    • +

      The new Java rule UnsynchronizedStaticFormatter (java-multithreading) detects +unsynchronized usages of static java.text.Format instances. This rule is a more generic replacement of the +rule UnsynchronizedStaticDateFormatter which focused just on DateFormat.

      +
    • +
    • +

      The new Java rule ForLoopVariableCount (java-bestpractices) checks for +the number of control variables in a for-loop. Having a lot of control variables makes it harder to understand +what the loop does. The maximum allowed number of variables is by default 1 and can be configured by a +property.

      +
    • +
    • +

      The new Java rule AvoidReassigningLoopVariables (java-bestpractices) searches +for loop variables that are reassigned. Changing the loop variables additionally to the loop itself can lead to +hard-to-find bugs.

      +
    • +
    • +

      The new Java rule UseDiamondOperator (java-codestyle) looks for constructor +calls with explicit type parameters. Since Java 1.7, these type parameters are not necessary anymore, as they +can be inferred now.

      +
    • +
    + +

    Modified Rules

    + +
      +
    • The Java rule LocalVariableCouldBeFinal (java-codestyle) has a new +property ignoreForEachDecl, which is by default disabled. The new property allows for ignoring +non-final loop variables in a for-each statement.
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #1196: [core] CPD results not consistent between runs
      • +
      • #1496 [core] Refactor metrics to be dealt with generically from pmd-core
      • +
      +
    • +
    • apex +
        +
      • #1542: [apex] Include the documentation category
      • +
      • #1546: [apex] PMD parsing exception for Apex classes using ‘inherited sharing’ keyword
      • +
      • #1568: [apex] AST node attribute @Image not usable / always null in XPath rule / Designer
      • +
      +
    • +
    • java +
        +
      • #1556: [java] Default methods should not be considered abstract
      • +
      • #1578: [java] Private field is detected as public inside nested classes in interfaces
      • +
      +
    • +
    • java-bestpractices +
        +
      • #658: [java] OneDeclarationPerLine: False positive for loops
      • +
      • #1518: [java] New rule: AvoidReassigningLoopVariable
      • +
      • #1519: [java] New rule: ForLoopVariableCount
      • +
      +
    • +
    • java-codestyle +
        +
      • #1513: [java] LocalVariableCouldBeFinal: allow excluding the variable in a for-each loop
      • +
      • #1517: [java] New Rule: UseDiamondOperator
      • +
      +
    • +
    • java-errorprone +
        +
      • #1035: [java] ReturnFromFinallyBlock: False positive on lambda expression in finally block
      • +
      • #1549: [java] NPE in PMD 6.8.0 InvalidSlf4jMessageFormat
      • +
      +
    • +
    • java-multithreading +
        +
      • #1533: [java] New rule: UnsynchronizedStaticFormatter
      • +
      +
    • +
    • plsql +
        +
      • + + + + + + + + +
        #1507: [plsql] Parse Exception when using ‘ ’ operator in where clause
        +
      • +
      • #1508: [plsql] Parse Exception when using SELECT COUNT(*)
      • +
      • #1509: [plsql] Parse Exception with OUTER/INNER Joins
      • +
      • #1511: [plsql] Parse Exception with IS NOT NULL
      • +
      • #1526: [plsql] ParseException when using TableCollectionExpression
      • +
      • #1583: [plsql] Update Set Clause should allow multiple columns
      • +
      • #1586: [plsql] Parse Exception when functions are used with LIKE
      • +
      • #1588: [plsql] Parse Exception with function calls in WHERE clause
      • +
      +
    • +
    + +

    API Changes

    + + + +

    External Contributions

    + +
      +
    • #1503: [java] Fix for ReturnFromFinallyBlock false-positives - RishabhDeep Singh
    • +
    • #1514: [java] LocalVariableCouldBeFinal: allow excluding the variable in a for-each loop - Kris Scheibe
    • +
    • #1516: [java] OneDeclarationPerLine: Don’t report multiple variables in a for statement. - Kris Scheibe
    • +
    • #1520: [java] New rule: ForLoopVariableCount: check the number of control variables in a for loop - Kris Scheibe
    • +
    • #1521: [java] Upgrade to ASM7 for JDK 11 support - Mark Pritchard
    • +
    • #1530: [java] New rule: AvoidReassigningLoopVariables - Kris Scheibe
    • +
    • #1534: [java] This is the change regarding the usediamondoperator #1517 - hemanshu070
    • +
    • #1545: [doc] fixing dead links + tool to check for dead links automatically - Kris Scheibe
    • +
    • #1551: [java] InvalidSlf4jMessageFormatRule should not throw NPE for enums - Robbie Martinus
    • +
    • #1552: [core] Upgrading Google Gson from 2.5 to 2.8.5 - Thunderforge
    • +
    • #1553: [core] Upgrading System Rules dependency from 1.8.0 to 1.19.0 - Thunderforge
    • +
    • #1554: [plsql] updates should allow for multiple statements - tashiscool
    • +
    • #1584: [core] Fixes 1196: inconsistencies of clones returned by different CPD executions for the same files - Bruno Ferreira
    • +
    + +

    09-December-2018 - 6.10.0

    + +

    The PMD team is pleased to announce PMD 6.10.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Kotlin support for CPD

    + +

    Thanks to Maikel Steneker, CPD now supports Kotlin. +This means, you can use CPD to find duplicated code in your Kotlin projects.

    + +

    New Rules

    + +
      +
    • The new Java rule UseUnderscoresInNumericLiterals (java-codestyle) +verifies that numeric literals over a given length (4 chars by default, but configurable) are using +underscores every 3 digits for readability. The rule only applies to Java 7+ codebases.
    • +
    + +

    Modified Rules

    + + + +

    Fixed Issues

    +
      +
    • all +
        +
      • #1284: [doc] Keep record of every currently deprecated API
      • +
      • #1318: [test] Kotlin DSL to ease test writing
      • +
      • #1328: [ci] Building docs for release fails
      • +
      • #1341: [doc] Documentation Error with Regex Properties
      • +
      • #1468: [doc] Missing escaping leads to XSS
      • +
      • #1471: [core] XMLRenderer: ProcessingErrors from exceptions without a message missing
      • +
      • #1477: [core] Analysis cache fails with wildcard classpath entries
      • +
      +
    • +
    • java +
        +
      • #1460: [java] Intermittent PMD failure : PMD processing errors while no violations reported
      • +
      +
    • +
    • java-bestpractices +
        +
      • #647: [java] JUnitTestsShouldIncludeAssertRule should support this.exception as well as just exception
      • +
      • #1435: [java] JUnitTestsShouldIncludeAssert: Support AssertJ soft assertions
      • +
      +
    • +
    • java-codestyle +
        +
      • #1232: [java] Detector for large numbers not separated by _
      • +
      • #1372: [java] false positive for UselessQualifiedThis
      • +
      • #1440: [java] CommentDefaultAccessModifierRule shows incorrect message
      • +
      +
    • +
    • java-design +
        +
      • #1151: [java] ImmutableField false positive with multiple constructors
      • +
      • #1483: [java] Cyclo metric should count conditions of for statements correctly
      • +
      +
    • +
    • java-errorprone +
        +
      • #1512: [java] InvalidSlf4jMessageFormatRule causes NPE in lambda and static blocks
      • +
      +
    • +
    • plsql +
        +
      • #1454: [plsql] ParseException for IF/CASE statement with >=, <=, !=
      • +
      +
    • +
    + +

    API Changes

    + +

    Properties framework

    + +

    The properties framework is about to get a lifting, and for that reason, we need to deprecate a lot of APIs +to remove them in 7.0.0. The proposed changes to the API are described on the wiki

    + +
    Changes to how you define properties
    + + + +

    Here’s an example:

    +
    // Before 7.0.0, these are equivalent:
    +IntegerProperty myProperty = new IntegerProperty("score", "Top score value", 1, 100, 40, 3.0f);
    +IntegerProperty myProperty = IntegerProperty.named("score").desc("Top score value").range(1, 100).defaultValue(40).uiOrder(3.0f);
    +
    +// They both map to the following in 7.0.0
    +PropertyDescriptor<Integer> myProperty = PropertyFactory.intProperty("score").desc("Top score value").require(inRange(1, 100)).defaultValue(40);
    +
    + +

    You’re highly encouraged to migrate to using this new API as soon as possible, to ease your migration to 7.0.0.

    + +
    Architectural simplifications
    + + + +
    Changes to the PropertyDescriptor interface
    + +
      +
    • preferredRowCount is deprecated with no intended replacement. It was never implemented, and does not belong +in this interface. The methods uiOrder and compareTo(PropertyDescriptor) are deprecated for the +same reason. These methods mix presentation logic with business logic and are not necessary for PropertyDescriptors to work. +PropertyDescriptor will not extend Comparable<PropertyDescriptor> anymore come 7.0.0.
    • +
    • The method propertyErrorFor is deprecated and will be removed with no intended +replacement. It’s really just a shortcut for prop.errorFor(rule.getProperty(prop)).
    • +
    • T valueFrom(String) and String asDelimitedString(T) are deprecated and will be removed. These were +used to serialize and deserialize properties to/from a string, but 7.0.0 will introduce a more flexible +XML syntax which will make them obsolete.
    • +
    • isMultiValue and type are deprecated and won’t be replaced. The new XML syntax will remove the need +for a divide between multi- and single-value properties, and will allow arbitrary types to be represented. +Since arbitrary types may be represented, type will become obsolete as it can’t represent generic types, +which will nevertheless be representable with the XML syntax. It was only used for documentation, but a +new way to document these properties exhaustively will be added with 7.0.0.
    • +
    • errorFor is deprecated as its return type will be changed to Optional<String> with the shift to Java 8.
    • +
    + +

    Deprecated APIs

    + +
    For internalization
    + + + +
    For removal
    + + + +

    External Contributions

    + + + +

    28-October-2018 - 6.9.0

    + +

    The PMD team is pleased to announce PMD 6.9.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Improved Golang CPD Support

    + +

    Thanks to the work of ITBA students Matías Fraga, +Tomi De Lucca and Lucas Soncini, +Golang is now backed by a proper Antlr Grammar. This means CPD is now better at detecting duplicates, +as comments are recognized as such and ignored.

    + +

    New Rules

    + +
      +
    • The new PLSQL rule CodeFormat (plsql-codestyle) verifies that +PLSQL code is properly formatted. It checks e.g. for correct indentation in select statements and verifies +that each parameter is defined on a separate line.
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #649: [core] Exclude specific files from command line
      • +
      • #1272: [core] Could not find or load main class when using symlinked run.sh
      • +
      • #1377: [core] LanguageRegistry uses default class loader when invoking ServiceLocator
      • +
      • #1394: [doc] How to configure “-cache "
      • +
      • #1412: [doc] Broken link to adding new cpd language documentation
      • +
      +
    • +
    • apex +
        +
      • #1396: [apex] ClassCastException caused by Javadoc
      • +
      +
    • +
    • java +
        +
      • #1330: [java] PMD crashes with java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/xml/ws/Service
      • +
      +
    • +
    • java-bestpractices +
        +
      • #1202: [java] GuardLogStatement: “There is log block not surrounded by if” doesn’t sound right
      • +
      • #1209: [java] UnusedImports false positive for static import with package-private method usage
      • +
      • #1343: [java] Update CommentDefaultAccessModifierRule to extend AbstractIgnoredAnnotationRule
      • +
      • #1365: [java] JUnitTestsShouldIncludeAssert false positive
      • +
      • #1404: [java] UnusedImports false positive with static ondemand import with method call
      • +
      +
    • +
    • java-codestyle +
        +
      • #1199: [java] UnnecessaryFullyQualifiedName doesn’t flag same package FQCNs
      • +
      • #1356: [java] UnnecessaryModifier wrong message public->static
      • +
      +
    • +
    • java-design +
        +
      • #1369: [java] Processing error (ClassCastException) if a TYPE_USE annotation is used on a base class in the “extends” clause
      • +
      +
    • +
    • jsp +
        +
      • #1402: [jsp] JspTokenManager has a problem about jsp scriptlet
      • +
      +
    • +
    • documentation +
        +
      • #1349: [doc] Provide some explanation for WHY duplicate code is bad, like mutations
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • PMD has a new CLI option -ignorelist. With that, you can provide a file containing a comma-delimit list of files, +that should be excluded during analysis. The ignorelist is applied after the files have been selected +via -dir or -filelist, which means, if the file is in both lists, then it will be ignored. +Note: there is no corresponding option for the Ant task, since the feature is already available via +Ant’s FileSet include/exclude filters.
    • +
    + +

    External Contributions

    + + + +

    30-September-2018 - 6.8.0

    + +

    The PMD team is pleased to announce PMD 6.8.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Drawing a line between private and public API

    + +

    Until now, all released public members and types were implicitly considered part +of PMD’s public API, including inheritance-specific members (protected members, abstract methods). +We have maintained those APIs with the goal to preserve full binary compatibility between minor releases, +only breaking those APIs infrequently, for major releases.

    + +

    In order to allow PMD to move forward at a faster pace, this implicit contract will +be invalidated with PMD 7.0.0. We now introduce more fine-grained distinctions between +the type of compatibility support we guarantee for our libraries, and ways to make +them explicit to clients of PMD.

    + +
    .internal packages and @InternalApi annotation
    + +

    Internal API is meant for use only by the main PMD codebase. Internal types and methods +may be modified in any way, or even removed, at any time.

    + +

    Any API in a package that contains an .internal segment is considered internal. +The @InternalApi annotation will be used for APIs that have to live outside of +these packages, e.g. methods of a public type that shouldn’t be used outside of PMD (again, +these can be removed anytime).

    + +
    @ReservedSubclassing
    + +

    Types marked with the @ReservedSubclassing annotation are only meant to be subclassed +by classes within PMD. As such, we may add new abstract methods, or remove protected methods, +at any time. All published public members remain supported. The annotation is not inherited, which +means a reserved interface doesn’t prevent its implementors to be subclassed.

    + +
    @Experimental
    + +

    APIs marked with the @Experimental annotation at the class or method level are subject to change. +They can be modified in any way, or even removed, at any time. You should not use or rely + on them in any production code. They are purely to allow broad testing and feedback.

    + +
    @Deprecated
    + +

    APIs marked with the @Deprecated annotation at the class or method level will remain supported +until the next major release but it is recommended to stop using them.

    + +
    The transition
    + +

    All currently supported APIs will remain so until 7.0.0. All APIs that are to be moved to +.internal packages or hidden will be tagged @InternalApi before that major release, and +the breaking API changes will be performed in 7.0.0.

    + +

    Quickstart Ruleset

    + +

    PMD 6.8.0 provides a first quickstart ruleset for Java, which you can use as a base ruleset to get your +custom ruleset started. You can reference it with rulesets/java/quickstart.xml. +You are strongly encouraged to create your own ruleset +though.

    + +

    The quickstart ruleset has the intention, to be useful out-of-the-box for many projects. Therefore it +references only rules, that are most likely to apply everywhere.

    + +

    Any feedback would be greatly appreciated.

    + +

    New Rules

    + +
      +
    • The new Apex rule ApexDoc (apex-documentation) +enforces the inclusion of ApexDoc on classes, interfaces, properties and methods; as well as some +sanity rules for such docs (no missing parameters, parameters’ order, and return value). By default, +method overrides and test classes are allowed to not include ApexDoc.
    • +
    + +

    Modified Rules

    + +
      +
    • The rule MissingSerialVersionUID (java-errorprone) has been modified +in order to recognize also missing serialVersionUID fields in abstract classes, if they are serializable. +Each individual class in the inheritance chain needs an own serialVersionUID field. See also Should an abstract class have a serialVersionUID. +This change might lead to additional violations in existing code bases.
    • +
    + +

    PLSQL

    + +

    The grammar for PLSQL has been revamped in order to fully parse SELECT INTO, UPDATE, and DELETE +statements. Previously such statements have been simply skipped ahead, now PMD is parsing them, giving access +to the individual parts of a SELECT-statement, such as the Where-Clause. This might produce new parsing errors +where PMD previously could successfully parse PLSQL code. If this happens, please report a new issue to get this problem fixed.

    + +

    Fixed Issues

    + +
      +
    • apex-bestpractices +
        +
      • #1348: [apex] AvoidGlobalModifierRule gives warning even when its a webservice - false positive
      • +
      +
    • +
    • java-codestyle +
        +
      • #1329: [java] FieldNamingConventions: false positive in serializable class with serialVersionUID
      • +
      • #1334: [java] LinguisticNaming should support AtomicBooleans
      • +
      +
    • +
    • java-errorprone +
        +
      • #1350: [java] MissingSerialVersionUID false-positive on interfaces
      • +
      • #1352: [java] MissingSerialVersionUID false-negative with abstract classes
      • +
      +
    • +
    • java-performance +
        +
      • #1325: [java] False positive in ConsecutiveLiteralAppends
      • +
      +
    • +
    • plsql +
        +
      • #1279: [plsql] Support for SELECT INTO
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      A couple of methods and fields in net.sourceforge.pmd.properties.AbstractPropertySource have been +deprecated, as they are replaced by already existing functionality or expose internal implementation +details: propertyDescriptors, propertyValuesByDescriptor, +copyPropertyDescriptors(), copyPropertyValues(), ignoredProperties(), usesDefaultValues(), +useDefaultValueFor().

      +
    • +
    • +

      Some methods in net.sourceforge.pmd.properties.PropertySource have been deprecated as well: +usesDefaultValues(), useDefaultValueFor(), ignoredProperties().

      +
    • +
    • +

      The class net.sourceforge.pmd.lang.rule.AbstractDelegateRule has been deprecated and will +be removed with PMD 7.0.0. It is internally only in use by RuleReference.

      +
    • +
    • +

      The default constructor of net.sourceforge.pmd.lang.rule.RuleReference has been deprecated +and will be removed with PMD 7.0.0. RuleReferences should only be created by providing a Rule and +a RuleSetReference. Furthermore the following methods are deprecated: setRuleReference(), +hasOverriddenProperty(), usesDefaultValues(), useDefaultValueFor().

      +
    • +
    + +

    External Contributions

    + + + +

    02-September-2018 - 6.7.0

    + +

    The PMD team is pleased to announce PMD 6.7.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Modified Rules

    + +
      +
    • The Java rule OneDeclarationPerLine (java-bestpractices) has been revamped to +consider not only local variable declarations, but field declarations too.
    • +
    + +

    New Rules

    + +
      +
    • +

      The new Java rule LinguisticNaming (java-codestyle) +detects cases, when a method name indicates it returns a boolean (such as isSmall()) but it doesn’t. +Besides method names, the rule also checks field and variable names. It also checks, that getters return +something but setters won’t. The rule has several properties with which it can be customized.

      +
    • +
    • +

      The new PL/SQL rule ForLoopNaming (plsql-codestyle) +enforces a naming convention for “for loops”. Both “cursor for loops” and “index for loops” are covered. +The rule can be customized via patterns. By default, short variable names are reported.

      +
    • +
    • +

      The new Java rule FieldNamingConventions (java-codestyle) +detects field names that don’t comply to a given convention. It defaults to standard Java convention of using camelCase, +but can be configured with ease for e.g. constants or static fields.

      +
    • +
    • +

      The new Apex rule OneDeclarationPerLine (apex-codestyle) enforces declaring a +single field / variable per line; or per statement if the strictMode property is set. +It’s an Apex equivalent of the already existing Java rule of the same name.

      +
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #1191: [core] Test Framework: Sort violations by line/column
      • +
      • #1283: [core] Deprecate ReportTree
      • +
      • #1288: [core] No supported build listeners found with Gradle
      • +
      • #1300: [core] PMD stops processing file completely, if one rule in a rule chain fails
      • +
      • #1317: [ci] Coveralls hasn’t built the project since June 25th
      • +
      +
    • +
    • java-bestpractices +
        +
      • #940: [java] JUnit 4 false positives for JUnit 5 tests
      • +
      • #1267: [java] MissingOverrideRule: Avoid NoClassDefFoundError with incomplete classpath
      • +
      • #1323: [java] AvoidUsingHardCodedIP ignores match pattern
      • +
      • #1327: [java] AvoidUsingHardCodedIP false positive for “:bee”
      • +
      +
    • +
    • java-codestyle +
        +
      • #1255: [java] UnnecessaryFullyQualifiedName false positive: static method on shadowed implicitly imported class
      • +
      • #1258: [java] False positive “UselessParentheses” for parentheses that contain assignment
      • +
      +
    • +
    • java-errorprone +
        +
      • #1078: [java] MissingSerialVersionUID rule does not seem to catch inherited classes
      • +
      +
    • +
    • java-performance +
        +
      • #1291: [java] InvalidSlf4jMessageFormat false positive: too many arguments with string concatenation operator
      • +
      • #1298: [java] RedundantFieldInitializer - NumberFormatException with Long
      • +
      +
    • +
    • jsp +
        +
      • #1274: [jsp] Support EL in tag attributes
      • +
      • #1276: [jsp] add support for jspf and tag extensions
      • +
      +
    • +
    • plsql +
        +
      • #681: [plsql] Parse error with Cursor For Loop
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      All classes in the package net.sourceforge.pmd.lang.dfa.report have been deprecated and will be removed +with PMD 7.0.0. This includes the class net.sourceforge.pmd.lang.dfa.report.ReportTree. The reason is, +that this class is very specific to Java and not suitable for other languages. It has only been used for +YAHTMLRenderer, which has been rewritten to work without these classes.

      +
    • +
    • +

      The nodes RUNSIGNEDSHIFT and RSIGNEDSHIFT are deprecated and will be removed from the AST with PMD 7.0.0. +These represented the operator of ShiftExpression in two cases out of three, but they’re not needed and +make ShiftExpression inconsistent. The operator of a ShiftExpression is now accessible through +ShiftExpression#getOperator.

      +
    • +
    + +

    External Contributions

    + +
      +
    • #109: [java] Add two linguistics rules under naming - Arda Aslan
    • +
    • #1254: [ci] [GSoC] Integrating the danger and pmdtester to travis CI - BBG
    • +
    • #1258: [java] Use typeof in MissingSerialVersionUID - krichter722
    • +
    • #1264: [cpp] Fix NullPointerException in CPPTokenizer:99 - Rafael Cortês
    • +
    • #1277: [jsp] #1276 add support for jspf and tag extensions - Jordi Llach
    • +
    • #1275: [jsp] Issue #1274 - Support EL in tag attributes - Jordi Llach
    • +
    • #1278: [ci] [GSoC] Use pmdtester 1.0.0.pre.beta3 - BBG
    • +
    • #1289: [java] UselessParentheses: Fix false positive with assignments - cobratbq
    • +
    • #1290: [docs] [GSoC] Create the documentation about pmdtester - BBG
    • +
    • #1256: [java] #940 Avoid JUnit 4 false positives for JUnit 5 tests - Alex Shesterov
    • +
    • #1315: [apex] Add OneDeclarationPerStatement rule - Jeff Hube
    • +
    + +

    29-July-2018 - 6.6.0

    + +

    The PMD team is pleased to announce PMD 6.6.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Java 11 Support

    + +

    PMD is now able to parse the local-variable declaration syntax var xxx, that has been +extended for lambda parameters with Java 11 via +JEP 323: Local-Variable Syntax for Lambda Parameters.

    + +

    New Rules

    + +
      +
    • +

      The new Java rule LocalVariableNamingConventions +(java-codestyle) detects local variable names that don’t comply to a given convention. It defaults to standard +Java convention of using camelCase, but can be configured. Special cases can be configured for final variables +and caught exceptions’ names.

      +
    • +
    • +

      The new Java rule FormalParameterNamingConventions +(java-codestyle) detects formal parameter names that don’t comply to a given convention. It defaults to +standard Java convention of using camelCase, but can be configured. Special cases can be configured for final +parameters and lambda parameters (considering whether they are explicitly typed or not).

      +
    • +
    + +

    Modified Rules

    + + + +

    Fixed Issues

    + +
      +
    • core +
        +
      • #1178: [core] “Unsupported build listener” in gradle build
      • +
      • #1225: [core] Error in sed expression on line 82 of run.sh while detecting installed version of Java
      • +
      +
    • +
    • doc +
        +
      • #1215: [doc] TOC links don’t work?
      • +
      +
    • +
    • java-codestyle +
        +
      • #1211: [java] CommentDefaultAccessModifier false positive with nested interfaces (regression from 6.4.0)
      • +
      • #1216: [java] UnnecessaryFullyQualifiedName false positive for the same name method
      • +
      +
    • +
    • java-design +
        +
      • #1217: [java] CyclomaticComplexityRule counts ?-operator twice
      • +
      • #1226: [java] NPath complexity false negative due to overflow
      • +
      +
    • +
    • plsql +
        +
      • #980: [plsql] ParseException for CREATE TABLE
      • +
      • #981: [plsql] ParseException when parsing VIEW
      • +
      • #1047: [plsql] ParseException when parsing EXECUTE IMMEDIATE
      • +
      +
    • +
    • ui +
        +
      • #1233: [ui] XPath autocomplete arrows on first and last items
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • The findDescendantsOfType methods in net.sourceforge.pmd.lang.ast.AbstractNode no longer search for +exact type matches, but will match subclasses, too. That means, it’s now possible to look for abstract node +types such as AbstractJavaTypeNode and not only for it’s concrete subtypes.
    • +
    + +

    External Contributions

    + + + +

    26-June-2018 - 6.5.0

    + +

    The PMD team is pleased to announce PMD 6.5.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    New Rules

    + +
      +
    • The new Apex rule AvoidNonExistentAnnotations (apex-errorprone) +detects usages non-officially supported annotations. Apex supported non existent annotations for legacy reasons. +In the future, use of such non-existent annotations could result in broken Apex code that will not compile. +A full list of supported annotations can be found here
    • +
    + +

    Modified Rules

    + +
      +
    • The Java rule UnnecessaryModifier (java-codestyle) +now detects enum constrcutors with explicit private modifier. The rule now produces better error messages +letting you know exactly which modifiers are redundant at each declaration.
    • +
    + +

    Fixed Issues

    +
      +
    • all +
        +
      • #1119: [doc] Make the landing page of the documentation website more useful
      • +
      • #1168: [core] xml renderer schema definitions (#538) break included xslt files
      • +
      • #1173: [core] Some characters in CPD are not shown correctly.
      • +
      • #1193: [core] Designer doesn’t start with run.sh
      • +
      +
    • +
    • ecmascript +
        +
      • #861: [ecmascript] InnaccurateNumericLiteral false positive with hex literals
      • +
      +
    • +
    • java +
        +
      • #1074: [java] MissingOverrideRule exception when analyzing PMD under Java 9
      • +
      • #1174: [java] CommentUtil.multiLinesIn() could lead to StringIndexOutOfBoundsException
      • +
      +
    • +
    • java-bestpractices +
        +
      • #651: [java] SwitchStmtsShouldHaveDefault should be aware of enum types
      • +
      • #869: [java] GuardLogStatement false positive on return statements and Math.log
      • +
      +
    • +
    • java-codestyle +
        +
      • #667: [java] Make AtLeastOneConstructor Lombok-aware
      • +
      • #1154: [java] CommentDefaultAccessModifierRule FP with nested enums
      • +
      • #1158: [java] Fix IdenticalCatchBranches false positive
      • +
      • #1186: [java] UnnecessaryFullyQualifiedName doesn’t detect java.lang FQ names as violations
      • +
      +
    • +
    • java-design +
        +
      • #1200: [java] New default NcssCount method report level is drastically reduced from values of deprecated NcssMethodCount and NcssTypeCount
      • +
      +
    • +
    • xml +
        +
      • #715: [xml] ProjectVersionAsDependencyVersion false positive
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      The utility class net.sourceforge.pmd.lang.java.ast.CommentUtil has been deprecated and will be removed +with PMD 7.0.0. Its methods have been intended to parse javadoc tags. A more useful solution will be added +around the AST node FormalComment, which contains as children JavadocElement nodes, which in +turn provide access to the JavadocTag.

      + +

      All comment AST nodes (FormalComment, MultiLineComment, SingleLineComment) have a new method +getFilteredComment() which provide access to the comment text without the leading /* markers.

      +
    • +
    • +

      The method AbstractCommentRule.tagsIndicesIn() has been deprecated and will be removed with +PMD 7.0.0. It is not very useful, since it doesn’t extract the information +in a useful way. You would still need check, which tags have been found, and with which +data they might be accompanied.

      +
    • +
    + +

    External Contributions

    + + + +

    29-May-2018 - 6.4.0

    + +

    The PMD team is pleased to announce PMD 6.4.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Java 10 Support

    + +

    PMD is now able to understand local-variable type inference as introduced by Java 10. +Simple type resolution features are available, e.g. the type of the variable s is inferred +correctly as String:

    + +
    var s = "Java 10";
    +
    + +

    XPath Type Resolution Functions

    + +

    For some time now PMD has supported Type Resolution, and exposed this functionality to XPath rules for the Java language +with the typeof function. This function however had a number of shortcomings:

    + +
      +
    • It would take a first arg with the name to match if types couldn’t be resolved. In all cases this was @Image +but was still required.
    • +
    • It required 2 separate arguments for the Fully Qualified Class Name and the simple name of the class against +which to test.
    • +
    • If only the Fully Qualified Class Name was provided, no simple name check was performed (not documented, +but abused on some rules to “fix” some false positives).
    • +
    + +

    In this release we are deprecating typeof in favor of a simpler typeIs function, which behaves exactly as the +old typeof when given all 3 arguments.

    + +

    typeIs receives a single parameter, which is the fully qualified name of the class to test against.

    + +

    So, calls such as:

    + +
    //ClassOrInterfaceType[typeof(@Image, 'junit.framework.TestCase', 'TestCase')]
    +
    + +

    can now we expressed much more concisely as:

    + +
    //ClassOrInterfaceType[typeIs('junit.framework.TestCase')]
    +
    + +

    With this change, we also allow to check against array types by just appending [] to the fully qualified class name. +These can be repeated for arrays of arrays (e.g. byte[][] or java.lang.String[]).

    + +

    Additionally, we introduce the companion function typeIsExactly, that receives the same parameters as typeIs, +but checks for exact type matches, without considering the type hierarchy. That is, the test +typeIsExactly('junit.framework.TestCase') will match only if the context node is an instance of TestCase, but +not if it’s an instance of a subclass of TestCase. Be aware then, that using that method with abstract types will +never match.

    + +

    New Rules

    + +
      +
    • +

      The new Java rule HardCodedCryptoKey (java-security) +detects hard coded keys used for encryption. It is recommended to store keys outside of the source code.

      +
    • +
    • +

      The new Java rule IdenticalCatchBranches (java-codestyle) +finds catch blocks, +that catch different exception but perform the same exception handling and thus can be collapsed into a +multi-catch try statement.

      +
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule JUnit4TestShouldUseTestAnnotation (java-bestpractices) +has a new parameter “testClassPattern”. It is used to distinguish test classes from other classes and +avoid false positives. By default, any class, that has “Test” in its name, is considered a test class.

      +
    • +
    • +

      The Java rule CommentDefaultAccessModifier (java-codestyle) +allows now by default the comment “/* package */ in addition to “/* default */. This behavior can +still be adjusted by setting the property regex.

      +
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #1018: [java] Performance degradation of 250% between 6.1.0 and 6.2.0
      • +
      • #1145: [core] JCommander’s help text for option -min is wrong
      • +
      +
    • +
    • java +
        +
      • #672: [java] Support exact type matches for type resolution from XPath
      • +
      • #743: [java] Prepare for Java 10
      • +
      • #1077: [java] Analyzing enum with lambda passed in constructor fails with “The enclosing scope must exist.”
      • +
      • #1115: [java] Simplify xpath typeof syntax
      • +
      • #1131: [java] java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/application/FacesMessage$Severity
      • +
      +
    • +
    • java-bestpractices +
        +
      • #527: [java] False Alarm of JUnit4TestShouldUseTestAnnotation on Predicates
      • +
      • #1063: [java] MissingOverride is triggered in illegal places
      • +
      +
    • +
    • java-codestyle +
        +
      • #720: [java] ShortVariable should whitelist lambdas
      • +
      • #955: [java] Detect identical catch statements
      • +
      • #1114: [java] Star import overwritten by explicit import is not correctly handled
      • +
      • #1064: [java] ClassNamingConventions suggests to add Util suffix for simple exception wrappers
      • +
      • #1065: [java] ClassNamingConventions shouldn’t prohibit numbers in class names
      • +
      • #1067: [java] [6.3.0] PrematureDeclaration false-positive
      • +
      • #1096: [java] ClassNamingConventions is too ambitious on finding utility classes
      • +
      +
    • +
    • java-design +
        +
      • #824: [java] UseUtilityClass false positive when extending
      • +
      • #1021: [java] False positive for DoNotExtendJavaLangError
      • +
      • #1097: [java] False negative in AvoidThrowingRawExceptionTypes
      • +
      +
    • +
    • java-performance +
        +
      • #1051: [java] ConsecutiveAppendsShouldReuse false-negative
      • +
      • #1098: [java] Simplify LongInstantiation, IntegerInstantiation, ByteInstantiation, and ShortInstantiation using type resolution
      • +
      • #1125: [java] Improve message of InefficientEmptyStringCheck for String.trim().isEmpty()
      • +
      +
    • +
    • doc +
        +
      • #999: [doc] Add a header before the XPath expression in rules
      • +
      • #1082: [doc] Multifile analysis doc is invalid
      • +
      +
    • +
    • vf-security +
        +
      • #1100: [vf] URLENCODE is ignored as valid escape method
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • The following classes in package net.sourceforge.pmd.benchmark have been deprecated: Benchmark, Benchmarker, +BenchmarkReport, BenchmarkResult, RuleDuration, StringBuilderCR and TextReport. Their API is not supported anymore +and is disconnected from the internals of PMD. Use the newer API based around TimeTracker instead, which can be found +in the same package.
    • +
    • The class net.sourceforge.pmd.lang.java.xpath.TypeOfFunction has been deprecated. Use the newer TypeIsFunction in the same package.
    • +
    • The typeof methdos in net.sourceforge.pmd.lang.java.xpath.JavaFunctions have been deprecated. +Use the newer typeIs method in the same class instead..
    • +
    • The methods isA, isEither and isNeither of net.sourceforge.pmd.lang.java.typeresolution.TypeHelper. +Use the new isExactlyAny and isExactlyNone methods in the same class instead.
    • +
    + +

    External Contributions

    + + + +

    29-April-2018 - 6.3.0

    + +

    The PMD team is pleased to announce PMD 6.3.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Tree Traversal Revision

    + +

    As described in #904, when searching for child nodes of the AST methods +such as hasDescendantOfType, getFirstDescendantOfType and findDescendantsOfType were found to behave inconsistently, +not all of them honoring find boundaries; that is, nodes that define a self-contained entity which should be considered separately +(think of lambdas, nested classes, anonymous classes, etc.). We have modified these methods to ensure all of them honor +find boundaries.

    + +

    This change implies several false positives / unexpected results +(ie: ASTBlockStatement falsely returning true to isAllocation()) +have been fixed; and lots of searches are now restricted to smaller search areas, which improves performance +(depending on the project, we have measured up to 10% improvements during Type Resolution, Symbol Table analysis, +and some rules’ application).

    + +

    Naming Rules Enhancements

    + +
      +
    • +

      ClassNamingConventions (java-codestyle) +has been enhanced to allow granular configuration of naming +conventions for different kinds of type declarations (eg enum or abstract +class). Each kind of declaration can use its own naming convention +using a regex property. See the rule’s documentation for more info about +configuration and default conventions.

      +
    • +
    • +

      MethodNamingConventions (java-codestyle) +has been enhanced in the same way.

      +
    • +
    + +

    CPD Suppression

    + +

    Back in PMD 5.6.0 we introduced the ability to suppress CPD warnings in Java using comments, by +including CPD-OFF (to start ignoring code), or CPD-ON (to resume analysis) during CPD execution. +This has proved to be much more flexible and versatile than the old annotation-based approach, +and has since been the preferred way to suppress CPD warnings.

    + +

    On this occasion, we are extending support for comment-based suppressions to many other languages:

    + +
      +
    • C/C++
    • +
    • Ecmascript / Javascript
    • +
    • Matlab
    • +
    • Objective-C
    • +
    • PL/SQL
    • +
    • Python
    • +
    + +

    So for instance, in Python we could now do:

    + +
    class BaseHandler(object):
    +    def __init__(self):
    +        # some unignored code
    +
    +        # tell cpd to start ignoring code - CPD-OFF
    +
    +        # mission critical code, manually loop unroll
    +        GoDoSomethingAwesome(x + x / 2);
    +        GoDoSomethingAwesome(x + x / 2);
    +        GoDoSomethingAwesome(x + x / 2);
    +        GoDoSomethingAwesome(x + x / 2);
    +        GoDoSomethingAwesome(x + x / 2);
    +        GoDoSomethingAwesome(x + x / 2);
    +
    +        # resume CPD analysis - CPD-ON
    +
    +        # further code will *not* be ignored
    +
    + +

    Other languages are equivalent.

    + +

    Swift 4.1 Support

    + +

    Thanks to major contributions from kenji21 the Swift grammar has been updated to +support Swift 4.1. This is a major update, since the old grammar was quite dated, and we are sure all iOS +developers will enjoy it.

    + +

    Unfortunately, this change is not compatible. The grammar elements that have been removed (ie: the keywords __FILE__, +__LINE__, __COLUMN__ and __FUNCTION__) are no longer supported. We don’t usually introduce such +drastic / breaking changes in minor releases, however, given that the whole Swift ecosystem pushes hard towards +always using the latest versions, and that Swift needs all code and libraries to be currently compiling against +the same Swift version, we felt strongly this change was both safe and necessary to be shipped as soon as possible. +We had great feedback from the community during the process but if you have a legitimate use case for older Swift +versions, please let us know on our Issue Tracker.

    + +

    New Rules

    + +
      +
    • The new Java rule InsecureCryptoIv (java-security) +detects hard coded initialization vectors used in cryptographic operations. It is recommended to use +a randomly generated IV.
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule UnnecessaryConstructor (java-codestyle) +has been rewritten as a Java rule (previously it was a XPath-based rule). It supports a new property +ignoredAnnotations and ignores by default empty constructors, +that are annotated with javax.inject.Inject. Additionally, it detects now also unnecessary private constructors +in enums.

      +
    • +
    • +

      The property checkNativeMethods of the Java rule MethodNamingConventions (java-codestyle) +is now deprecated, as it is now superseded by nativePattern. Support for that property will be maintained until +7.0.0.

      +
    • +
    • +

      The Java rule ControlStatementBraces (java-codestyle) +supports a new boolean property checkSingleIfStmt. When unset, the rule won’t report if statements which lack +braces, if the statement is not part of an if ... else if chain. This property defaults to true.

      +
    • +
    + +

    Deprecated Rules

    + + + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #695: [core] Extend comment-based suppression to all JavaCC languages
      • +
      • #988: [core] FileNotFoundException for missing classes directory with analysis cache enabled
      • +
      • #1036: [core] Non-XML output breaks XML-based CLI integrations
      • +
      +
    • +
    • apex-errorprone +
        +
      • #776: [apex] AvoidHardcodingId false positives
      • +
      +
    • +
    • documentation +
        +
      • #994: [doc] Delete duplicate page contributing.md on the website
      • +
      • #1057: [doc] Documentation of ignoredAnnotations property is misleading
      • +
      +
    • +
    • java +
        +
      • #894: [java] Maven PMD plugin fails to process some files without any explanation
      • +
      • #899: [java] JavaTypeDefinitionSimple.toString can cause NPEs
      • +
      • #1020: [java] The CyclomaticComplexity rule runs forever in 6.2.0
      • +
      • #1030: [java] NoClassDefFoundError when analyzing PMD with PMD
      • +
      • #1061: [java] Update ASM to handle Java 10 bytecode
      • +
      +
    • +
    • java-bestpractices +
        +
      • #370: [java] GuardLogStatementJavaUtil not considering lambdas
      • +
      • #558: [java] ProperLogger Warnings for enums
      • +
      • #719: [java] Unused Code: Java 8 receiver parameter with an internal class
      • +
      • #1009: [java] JUnitAssertionsShouldIncludeMessage - False positive with assertEquals and JUnit5
      • +
      +
    • +
    • java-codestyle +
        +
      • #1003: [java] UnnecessaryConstructor triggered on required empty constructor (Dagger @Inject)
      • +
      • #1023: [java] False positive for useless parenthesis
      • +
      • #1004: [java] ControlStatementBraces is missing checkIfStmt property
      • +
      +
    • +
    • java-design +
        +
      • #1056: [java] Property ignoredAnnotations does not work for SingularField and ImmutableField
      • +
      +
    • +
    • java-errorprone +
        +
      • #629: [java] NullAssignment false positive
      • +
      • #816: [java] SingleMethodSingleton false positives with inner classes
      • +
      +
    • +
    • java-performance +
        +
      • #586: [java] AvoidUsingShortType erroneously triggered on overrides of 3rd party methods
      • +
      +
    • +
    • swift +
        +
      • #678: [swift][cpd] Exception when running for Swift 4 code (KeyPath)
      • +
      +
    • +
    + +

    External Contributions

    + + + +

    26-March-2018 - 6.2.0

    + +

    The PMD team is pleased to announce PMD 6.2.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Ecmascript (JavaScript)

    + +

    The Rhino Library has been upgraded from version 1.7.7 to version 1.7.7.2.

    + +

    Detailed changes for changed in Rhino can be found:

    + + +

    Both are bugfixing releases.

    + +

    Disable Incremental Analysis

    + +

    Some time ago, we added support for Incremental Analysis. On PMD 6.0.0, we +started to add warns when not using it, as we strongly believe it’s a great improvement to our user’s experience as +analysis time is greatly reduced; and in the future we plan to have it enabled by default. However, we realize some +scenarios don’t benefit from it (ie: CI jobs), and having the warning logged can be noisy and cause confusion.

    + +

    To this end, we have added a new flag to allow you to explicitly disable incremental analysis. On CLI, this is +the new -no-cache flag. On Ant, there is a noCache attribute for the <pmd> task.

    + +

    On both scenarios, disabling the cache takes precedence over setting a cache location.

    + +

    New Rules

    + +
      +
    • +

      The new Java rule MissingOverride +(category bestpractices) detects overridden and implemented methods, which are not marked with the +@Override annotation. Annotating overridden methods with @Override ensures at compile time that +the method really overrides one, which helps refactoring and clarifies intent.

      +
    • +
    • +

      The new Java rule UnnecessaryAnnotationValueElement +(category codestyle) detects annotations with a single element (value) that explicitely names it. +That is, doing @SuppressWarnings(value = "unchecked") would be flagged in favor of +@SuppressWarnings("unchecked").

      +
    • +
    • +

      The new Java rule ControlStatementBraces +(category codestyle) enforces the presence of braces on control statements where they are optional. +Properties allow to customize which statements are required to have braces. This rule replaces the now +deprecated rules WhileLoopMustUseBraces, ForLoopMustUseBraces, IfStmtMustUseBraces, and +IfElseStmtMustUseBraces. More than covering the use cases of those rules, this rule also supports +do ... while statements and case labels of switch statements (disabled by default).

      +
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule CommentContentRule (java-documentation) previously had the property wordsAreRegex. But this +property never had been implemented and is removed now.

      +
    • +
    • +

      The Java rule UnusedPrivateField (java-bestpractices) now has a new ignoredAnnotations property +that allows to configure annotations that imply the field should be ignored. By default @java.lang.Deprecated +and @javafx.fxml.FXML are ignored.

      +
    • +
    • +

      The Java rule UnusedPrivateMethod (java-bestpractices) now has a new ignoredAnnotations property +that allows to configure annotations that imply the method should be ignored. By default @java.lang.Deprecated +is ignored.

      +
    • +
    • +

      The Java rule ImmutableField (java-design) now has a new ignoredAnnotations property +that allows to configure annotations that imply the method should be ignored. By default several lombok +annotations are ignored

      +
    • +
    • +

      The Java rule SingularField (java-design) now has a new ignoredAnnotations property +that allows to configure annotations that imply the method should be ignored. By default several lombok +annotations are ignored

      +
    • +
    + +

    Deprecated Rules

    + +
      +
    • The Java rules WhileLoopMustUseBraces, ForLoopMustUseBraces, IfStmtMustUseBraces, and IfElseStmtMustUseBraces +are deprecated. They will be replaced by the new rule ControlStatementBraces, in the category codestyle.
    • +
    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #928: [core] PMD build failure on Windows
      • +
      +
    • +
    • java-bestpracrtices +
        +
      • #907: [java] UnusedPrivateField false-positive with @FXML
      • +
      • #963: [java] ArrayIsStoredDirectly not triggered from variadic functions
      • +
      +
    • +
    • java-codestyle +
        +
      • #974: [java] Merge *StmtMustUseBraces rules
      • +
      • #983: [java] Detect annotations with single value element
      • +
      +
    • +
    • java-design +
        +
      • #832: [java] AvoidThrowingNullPointerException documentation suggestion
      • +
      • #837: [java] CFGs of declared but not called lambdas are treated as parts of an enclosing method’s CFG
      • +
      • #839: [java] SignatureDeclareThrowsException’s IgnoreJUnitCompletely property not honored for constructors
      • +
      • #968: [java] UseUtilityClassRule reports false positive with lombok NoArgsConstructor
      • +
      +
    • +
    • documentation +
        +
      • #978: [core] Broken link in CONTRIBUTING.md
      • +
      • #992: [core] Include info about rule doc generation in “Writing Documentation” md page
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      A new CLI switch, -no-cache, disables incremental analysis and the related suggestion. This overrides the + -cache option. The corresponding Ant task parameter is noCache.

      +
    • +
    • +

      The static method PMDParameters.transformParametersIntoConfiguration(PMDParameters) is now deprecated, +for removal in 7.0.0. The new instance method PMDParameters.toConfiguration() replaces it.

      +
    • +
    • +

      The method ASTConstructorDeclaration.getParameters() has been deprecated in favor of the new method +getFormalParameters(). This method is available for both ASTConstructorDeclaration and +ASTMethodDeclaration.

      +
    • +
    + +

    External Contributions

    + +
      +
    • #941: [java] Use char notation to represent a character to improve performance - reudismam
    • +
    • #943: [java] UnusedPrivateField false-positive with @FXML - BBG
    • +
    • #951: [java] Add ignoredAnnotations property to unusedPrivateMethod rule - BBG
    • +
    • #952: [java] SignatureDeclareThrowsException’s IgnoreJUnitCompletely property not honored for constructors - BBG
    • +
    • #958: [java] Refactor how we ignore annotated elements in rules - BBG
    • +
    • #965: [java] Make Varargs trigger ArrayIsStoredDirectly - Stephen
    • +
    • #967: [doc] Issue 959: fixed broken link to XPath Rule Tutorial - Andrey Mochalov
    • +
    • #969: [java] Issue 968 Add logic to handle lombok private constructors with utility classes - Kirk Clemens
    • +
    • #970: [java] Fixed inefficient use of keySet iterator instead of entrySet iterator - Andrey Mochalov
    • +
    • #984: [java] issue983 Add new UnnecessaryAnnotationValueElement rule - Kirk Clemens
    • +
    • #989: [core] Update Contribute.md to close Issue #978 - Bolarinwa Saheed Olayemi
    • +
    • #990: [java] Updated Doc on AvoidThrowingNullPointerException to close Issue #832 - Bolarinwa Saheed Olayemi
    • +
    • #993: [core] Update writing_documentation.md to fix Issue #992 - Bolarinwa Saheed Olayemi
    • +
    + +

    25-February-2018 - 6.1.0

    + +

    The PMD team is pleased to announce PMD 6.1.0.

    + +

    This is a minor release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Designer UI

    + +

    The Designer now supports configuring properties for XPath based rule development. +The Designer is still under development and any feedback is welcome.

    + +

    You can start the designer via run.sh designer or designer.bat.

    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #569: [core] XPath support requires specific toString implementations
      • +
      • #795: [cpd] java.lang.OutOfMemoryError
      • +
      • #848: [doc] Test failures when building pmd-doc under Windows
      • +
      • #872: [core] NullPointerException at FileDataSource.glomName()
      • +
      • #854: [ci] Use Java9 for building PMD
      • +
      +
    • +
    • doc +
        +
      • #791: [doc] Documentation site reorganisation
      • +
      • #891: [doc] Apex @SuppressWarnings should use single quotes instead of double quotes
      • +
      • #909: [doc] Please add new PMD Eclipse Plugin to tool integration section
      • +
      +
    • +
    • java +
        +
      • #825: [java] Excessive*Length ignores too much
      • +
      • #888: [java] ParseException occurs with valid ‘<>’ in Java 1.8 mode
      • +
      • #920: [java] Update valid identifiers in grammar
      • +
      +
    • +
    • java-bestpractices +
        +
      • #784: [java] ForLoopCanBeForeach false-positive
      • +
      • #925: [java] UnusedImports false positive for static import
      • +
      +
    • +
    • java-design +
        +
      • #855: [java] ImmutableField false-positive with lambdas
      • +
      +
    • +
    • java-documentation +
        +
      • #877: [java] CommentRequired valid rule configuration causes PMD error
      • +
      +
    • +
    • java-errorprone +
        +
      • #885: [java] CompareObjectsWithEqualsRule trigger by enum1 != enum2
      • +
      +
    • +
    • java-performance +
        +
      • #541: [java] ConsecutiveLiteralAppends with types other than string
      • +
      +
    • +
    • scala +
        +
      • #853: [scala] Upgrade scala version to support Java 9
      • +
      +
    • +
    • xml +
        +
      • #739: [xml] IllegalAccessException when accessing attribute using Saxon on JRE 9
      • +
      +
    • +
    + +

    API Changes

    + +

    Changes to the Node interface

    + +

    The method getXPathNodeName is added to the Node interface, which removes the +use of the toString of a node to get its XPath element name (see #569). +A default implementation is provided in AbstractNode, to stay compatible +with existing implementors.

    + +

    The toString method of a Node is not changed for the time being, and still produces +the name of the XPath node. That behaviour may however change in future major releases, +e.g. to produce a more useful message for debugging.

    + +

    Changes to CPD renderers

    + +

    The interface net.sourceforge.pmd.cpd.Renderer has been deprecated. A new interface net.sourceforge.pmd.cpd.renderer.CPDRenderer +has been introduced to replace it. The main difference is that the new interface is meant to render directly to a java.io.Writer +rather than to a String. This allows to greatly reduce the memory footprint of CPD, as on large projects, with many duplications, +it was causing OutOfMemoryErrors (see #795).

    + +

    net.sourceforge.pmd.cpd.FileReporter has also been deprecated as part of this change, as it’s no longer needed.

    + +

    External Contributions

    + + + +

    21-January-2018 - 6.0.1

    + +

    The PMD team is pleased to announce PMD 6.0.1.

    + +

    This is a bug fixing release.

    + +

    Table Of Contents

    + + + +

    Additional information about the new introduced rule categories

    + +

    With the release of PMD 6.0.0, all rules have been sorted into one of the following eight categories:

    + +
      +
    1. Best Practices: These are rules which enforce generally accepted best practices.
    2. +
    3. Code Style: These rules enforce a specific coding style.
    4. +
    5. Design: Rules that help you discover design issues.
    6. +
    7. Documentation: These rules are related to code documentation.
    8. +
    9. Error Prone: Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    10. +
    11. Multithreading: These are rules that flag issues when dealing with multiple threads of execution.
    12. +
    13. Performance: Rules that flag suboptimal code.
    14. +
    15. Security: Rules that flag potential security flaws.
    16. +
    + +

    Please note, that not every category in every language may have a rule. There might be categories with no +rules at all, such as category/java/security.xml, which has currently no rules. +There are even languages, which only have rules of one category (e.g. category/xml/errorprone.xml).

    + +

    You can find the information about available rules in the generated rule documentation, available +at https://pmd.github.io/6.0.1/.

    + +

    In order to help migrate to the new category scheme, the new name for the old, deprecated rule names will +be logged as a warning. See PR #865. Please note, that the deprecated +rule names will keep working throughout PMD 6. You can upgrade to PMD 6 without the immediate need +to migrate your current ruleset. That backwards compatibility will be maintained until PMD 7.0.0 is released.

    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #842: [core] Use correct java bootclasspath for compiling
      • +
      +
    • +
    • apex-errorprone +
        +
      • #792: [apex] AvoidDirectAccessTriggerMap incorrectly detects array access in classes
      • +
      +
    • +
    • apex-security +
        +
      • #788: [apex] Method chaining breaks ApexCRUDViolation
      • +
      +
    • +
    • doc +
        +
      • #782: [doc] Wrong information in the Release Notes about the Security ruleset
      • +
      • #794: [doc] Broken documentation links for 6.0.0
      • +
      +
    • +
    • java +
        +
      • #793: [java] Parser error with private method in nested classes in interfaces
      • +
      • #814: [java] UnsupportedClassVersionError is failure instead of a warning
      • +
      • #831: [java] StackOverflow in JavaTypeDefinitionSimple.toString
      • +
      +
    • +
    • java-bestpractices +
        +
      • #783: [java] GuardLogStatement regression
      • +
      • #800: [java] ForLoopCanBeForeach NPE when looping on this object
      • +
      +
    • +
    • java-codestyle +
        +
      • #817: [java] UnnecessaryModifierRule crashes on valid code
      • +
      +
    • +
    • java-design +
        +
      • #785: [java] NPE in DataClass rule
      • +
      • #812: [java] Exception applying rule DataClass
      • +
      • #827: [java] GodClass crashes with java.lang.NullPointerException
      • +
      +
    • +
    • java-performance +
        +
      • #841: [java] InsufficientStringBufferDeclaration NumberFormatException
      • +
      +
    • +
    • java-typeresolution +
        +
      • #866: [java] rulesets/java/typeresolution.xml lists non-existent rules
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • The constant net.sourceforge.pmd.PMD.VERSION has been deprecated and will be removed with PMD 7.0.0. +Please use net.sourceforge.pmd.PMDVersion.VERSION instead.
    • +
    + +

    External Contributions

    + + + +

    15-December-2017 - 6.0.0

    + +

    The PMD team is pleased to announce PMD 6.0.0.

    + +

    This is a major release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    New Rule Designer

    + +

    Thanks to Clément Fournier, we now have a new rule designer GUI, which +is based on JavaFX. It replaces the old designer and can be started via

    + +
      +
    • bin/run.sh designer (on Unix-like platform such as Linux and Mac OS X)
    • +
    • bin\designer.bat (on Windows)
    • +
    + +

    Note: At least Java8 is required for the designer. The old designer is still available +as designerold but will be removed with the next major release.

    + +

    Java 9 support

    + +

    The Java grammar has been updated to support analyzing Java 9 projects:

    + +
      +
    • private methods in interfaces are possible
    • +
    • The underscore “_” is considered an invalid identifier
    • +
    • Diamond operator for anonymous classes
    • +
    • The module declarations in module-info.java can be parsed
    • +
    • Concise try-with-resources statements are supported
    • +
    + +

    Java 9 support is enabled by default. You can switch back to an older java version +via the command line, e.g. -language java -version 1.8.

    + +

    Revamped Apex CPD

    + +

    We are now using the Apex Jorje Lexer to tokenize Apex code for CPD. This change means:

    + +
      +
    • All comments are now ignored for CPD. This is consistent with how other languages such as Java and Groovy work.
    • +
    • Tokenization honors the language specification, which improves accuracy.
    • +
    + +

    CPD will therefore have less false positives and false negatives.

    + +

    Java Type Resolution

    + +

    As part of Google Summer of Code 2017, Bendegúz Nagy worked on type resolution +for Java. For this release he has extended support for method calls for both instance and static methods.

    + +

    Method shadowing and overloading are supported, as are varargs. However, the selection of the target method upon +the presence of generics and type inference is still work in progress. Expect it in forecoming releases.

    + +

    As for fields, the basic support was in place for release 5.8.0, but has now been expanded to support static fields.

    + +

    Metrics Framework

    + +

    As part of Google Summer of Code 2017, Clément Fournier is worked +on the new metrics framework for object-oriented metrics.

    + +

    There are already a couple of metrics (e.g. ATFD, WMC, Cyclo, LoC) implemented. More metrics are planned. +Based on those metrics, rules like “GodClass” detection could be implemented more easily. +The following rules benefit from the metrics framework: NcssCount (java), NPathComplexity (java), +CyclomaticComplexity (both java and apex).

    + +

    The Metrics framework has been abstracted and is available in pmd-core for other languages. With this +PMD release, the metrics framework is supported for both Java and Apex.

    + +

    Error Reporting

    + +

    A number of improvements on error reporting have taken place, meaning changes to some of the report formats.

    + +

    Also of note, the xml report now provides a XML Schema definition, allowing easier parsing and validation.

    + +
    Processing Errors
    + +

    Processing errors can now provide not only the message previously included on some reports, but also a full stacktrace. +This will allow better error reports when providing feedback to the PMD team and help in debugging issues.

    + +

    The report formats providing full stacktrace of errors are:

    + +
      +
    • html
    • +
    • summaryhtml
    • +
    • textcolor
    • +
    • vbhtml
    • +
    • xml
    • +
    + +
    Configuration Errors
    + +

    For a long time reports have been notified of configuration errors on rules, but they have remained hidden. +On a push to make these more evident to users, and help them get the best results out of PMD, we have started +to include them on the reports.

    + +

    So far, only reports that include processing errors are showing configuration errors. In other words, the report formats +providing configuration error reporting are:

    + +
      +
    • csv
    • +
    • html
    • +
    • summaryhtml
    • +
    • text
    • +
    • textcolor
    • +
    • vbhtml
    • +
    • xml
    • +
    + +

    As we move forward we will be able to detect and report more configuration errors (ie: incomplete auxclasspath) +and include them to such reports.

    + +

    Apex Rule Suppression

    + +

    Apex violations can now be suppressed very similarly to how it’s done in Java, by making use of a +@SuppressWarnings annotation.

    + +

    Supported syntax includes:

    + +
    @SupressWarnings('PMD') // to supress all Apex rules
    +@SupressWarnings('all') // to supress all Apex rules
    +@SupressWarnings('PMD.ARuleName') // to supress only the rule named ARuleName
    +@SupressWarnings('PMD.ARuleName, PMD.AnotherRuleName') // to supress only the rule named ARuleName or AnotherRuleName
    +
    + +

    Notice this last scenario is slightly different to the Java syntax. This is due to differences in the Apex grammar for annotations.

    + +

    Rule Categories

    + +

    All built-in rules have been sorted into one of eight categories:

    + +
      +
    1. Best Practices: These are rules which enforce generally accepted best practices.
    2. +
    3. Code Style: These rules enforce a specific coding style.
    4. +
    5. Design: Rules that help you discover design issues.
    6. +
    7. Documentation: These rules are related to code documentation.
    8. +
    9. Error Prone: Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    10. +
    11. Multithreading: These are rules that flag issues when dealing with multiple threads of execution.
    12. +
    13. Performance: Rules that flag suboptimal code.
    14. +
    15. Security: Rules that flag potential security flaws.
    16. +
    + +

    These categories help you to find rules and figure out the relevance and impact for your project.

    + +

    All rules have been moved accordingly, e.g. the rule “JumbledIncrementer”, which was previously defined in the +ruleset “java-basic” has now been moved to the “Error Prone” category. The new rule reference to be used is +<rule ref="category/java/errorprone.xml/JumbledIncrementer"/>.

    + +

    The old rulesets like “java-basic” are still kept for backwards-compatibility but will be removed eventually. +The rule reference documentation has been updated to reflect these changes.

    + +

    New Rules

    + +
      +
    • +

      The new Java rule NcssCount (category design) replaces the three rules “NcssConstructorCount”, “NcssMethodCount”, +and “NcssTypeCount”. The new rule uses the metrics framework to achieve the same. It has two properties, to +define the report level for method and class sizes separately. Constructors and methods are considered the same.

      +
    • +
    • +

      The new Java rule DoNotExtendJavaLangThrowable (category errorprone) is a companion for the +java-strictexception.xml/DoNotExtendJavaLangError, detecting direct extensions of java.lang.Throwable.

      +
    • +
    • +

      The new Java rule ForLoopCanBeForeach (category errorprone) helps to identify those for-loops that can +be safely refactored into for-each-loops available since java 1.5.

      +
    • +
    • +

      The new Java rule AvoidFileStream (category performance) helps to identify code relying on FileInputStream / FileOutputStream +which, by using a finalizer, produces extra / unnecessary overhead to garbage collection, and should be replaced with +Files.newInputStream / Files.newOutputStream available since java 1.7.

      +
    • +
    • +

      The new Java rule DataClass (category design) detects simple data-holders without behaviour. This might indicate +that the behaviour is scattered elsewhere and the data class exposes the internal data structure, +which breaks encapsulation.

      +
    • +
    • +

      The new Apex rule AvoidDirectAccessTriggerMap (category errorprone) helps to identify direct array access to triggers, +which can produce bugs by either accessing non-existing indexes, or leaving them out. You should use for-each-loops +instead.

      +
    • +
    • +

      The new Apex rule AvoidHardcodingId (category errorprone) detects hardcoded strings that look like identifiers +and flags them. Record IDs change between environments, meaning hardcoded ids are bound to fail under a different +setup.

      +
    • +
    • +

      The new Apex rule CyclomaticComplexity (category design) detects overly complex classes and methods. The +report threshold can be configured separately for classes and methods.

      +
    • +
    • A whole bunch of new rules has been added to Apex. They all fit into the category errorprone. +The 5 rules are migrated for Apex from the equivalent Java rules and include: +
        +
      • EmptyCatchBlock to detect catch blocks completely ignoring exceptions.
      • +
      • EmptyIfStmt for if blocks with no content, that can be safely removed.
      • +
      • EmptyTryOrFinallyBlock for empty try / finally blocks that can be safely removed.
      • +
      • EmptyWhileStmt for empty while loops that can be safely removed.
      • +
      • EmptyStatementBlock for empty code blocks that can be safely removed.
      • +
      +
    • +
    • The new Apex rule AvoidSoslInLoops (category performance) is the companion of the old +AvoidSoqlInLoops rule, flagging SOSL (Salesforce Object Search Language) queries when within +loops, to avoid governor issues, and hitting the database too often.
    • +
    + +

    Modified Rules

    + +
      +
    • +

      The Java rule UnnecessaryFinalModifier (category codestyle, former ruleset java-unnecessarycode) +has been merged into the rule UnnecessaryModifier. As part of this, the rule has been revamped to detect more cases. +It will now flag anonymous class’ methods marked as final (can’t be overridden, so it’s pointless), along with +final methods overridden / defined within enum instances. It will also flag final modifiers on try-with-resources.

      +
    • +
    • +

      The Java rule UnnecessaryParentheses (category codestyle, former ruleset java-controversial) +has been merged into UselessParentheses (category codestyle, former ruleset java-unnecessary). +The rule covers all scenarios previously covered by either rule.

      +
    • +
    • +

      The Java rule UncommentedEmptyConstructor (category documentation, former ruleset java-design) + will now ignore empty constructors annotated with javax.inject.Inject.

      +
    • +
    • +

      The Java rule AbstractClassWithoutAnyMethod (category bestpractices, former ruleset java-design) +will now ignore classes annotated with com.google.auto.value.AutoValue.

      +
    • +
    • +

      The Java rule GodClass (category design', former ruleset java-design`) has been revamped to use +the new metrics framework.

      +
    • +
    • +

      The Java rule LooseCoupling (category bestpractices, former ruleset java-coupling) has been +replaced by the typeresolution-based implementation.

      +
    • +
    • +

      The Java rule CloneMethodMustImplementCloneable (category errorprone, former ruleset java-clone) +has been replaced by the typeresolution-based +implementation and is now able to detect cases if a class implements or extends a Cloneable class/interface.

      +
    • +
    • +

      The Java rule UnusedImports (category bestpractices, former ruleset java-imports) has been +replaced by the typeresolution-based +implementation and is now able to detect unused on-demand imports.

      +
    • +
    • +

      The Java rule SignatureDeclareThrowsException (category design, former ruleset ‘java-strictexception’) +has been replaced by the +typeresolution-based implementation. It has a new property IgnoreJUnitCompletely, which allows all +methods in a JUnit testcase to throw exceptions.

      +
    • +
    • +

      The Java rule NPathComplexity (category design, former ruleset java-codesize) has been revamped +to use the new metrics framework. +Its report threshold can be configured via the property reportLevel, which replaces the now +deprecated property minimum.

      +
    • +
    • +

      The Java rule CyclomaticComplexity (category design, former ruleset java-codesize) has been +revamped to use the new metrics framework. +Its report threshold can be configured via the properties classReportLevel and methodReportLevel separately. +The old property reportLevel, which configured the level for both total class and method complexity, +is deprecated.

      +
    • +
    • The Java rule CommentRequired (category documentation, former ruleset java-comments) +has been revamped to include 2 new properties: +
        +
      • accessorCommentRequirement to specify documentation requirements for getters and setters (default to ignored)
      • +
      • methodWithOverrideCommentRequirement to specify documentation requirements for methods annotated with @Override (default to ignored)
      • +
      +
    • +
    • +

      The Java rule EmptyCatchBlock (category errorprone, former ruleset java-empty) has been changed to ignore +exceptions named ignore or expected by default. You can still override this behaviour by setting the allowExceptionNameRegex property.

      +
    • +
    • The Java rule OptimizableToArrayCall (category performance, former ruleset design) has been +modified to fit for the current JVM implementations: It basically detects now the opposite and suggests to +use Collection.toArray(new E[0]) with a zero-sized array. +See Arrays of Wisdom of the Ancients.
    • +
    + +

    Deprecated Rules

    + +
      +
    • +

      The Java rules NcssConstructorCount, NcssMethodCount, and NcssTypeCount (ruleset java-codesize) have been +deprecated. They will be replaced by the new rule NcssCount in the category design.

      +
    • +
    • +

      The Java rule LooseCoupling in ruleset java-typeresolution is deprecated. Use the rule with the same name +from category bestpractices instead.

      +
    • +
    • +

      The Java rule CloneMethodMustImplementCloneable in ruleset java-typeresolution is deprecated. Use the rule with +the same name from category errorprone instead.

      +
    • +
    • +

      The Java rule UnusedImports in ruleset java-typeresolution is deprecated. Use the rule with +the same name from category bestpractices instead.

      +
    • +
    • +

      The Java rule SignatureDeclareThrowsException in ruleset java-typeresolution is deprecated. Use the rule +with the same name from category design instead.

      +
    • +
    • +

      The Java rule EmptyStaticInitializer in ruleset java-empty is deprecated. Use the rule EmptyInitializer +from the category errorprone, which covers both static and non-static empty initializers.`

      +
    • +
    • +

      The Java rules GuardDebugLogging (ruleset java-logging-jakarta-commons) and GuardLogStatementJavaUtil +(ruleset java-logging-java) have been deprecated. Use the rule GuardLogStatement from the +category bestpractices, which covers all cases regardless of the logging framework.

      +
    • +
    + +

    Removed Rules

    + +
      +
    • The deprecated Java rule UseSingleton has been removed from the ruleset java-design. The rule has been renamed +long time ago to UseUtilityClass (category design).
    • +
    + +

    Java Symbol Table

    + +

    A bug in symbol table prevented +the symbol table analysis to properly match primitive arrays types. The issue affected the java-unsedcode/UnusedPrivateMethod +rule, but other rules may now produce improved results as consequence of this fix.

    + +

    Apex Parser Update

    + +

    The Apex parser version was bumped, from 1.0-sfdc-187 to 210-SNAPSHOT. This update let us take full advantage +of the latest improvements from Salesforce, but introduces some breaking changes:

    + +
      +
    • BlockStatements are now created for all control structures, even if no brace is used. We have therefore added +a hasCurlyBrace method to differentiate between both scenarios.
    • +
    • New AST node types are available. In particular CastExpression, ConstructorPreamble, IllegalStoreExpression, +MethodBlockStatement, Modifier, MultiStatement, NestedExpression, NestedStoreExpression, +NewKeyValueObjectExpression and StatementExecuted
    • +
    • Some nodes have been removed. Such is the case of TestNode, DottedExpression and NewNameValueObjectExpression +(replaced by NewKeyValueObjectExpression)
    • +
    + +

    All existing rules have been updated to reflect these changes. If you have custom rules, be sure to update them.

    + +

    For more info about the included Apex parser, see the new pmd module “pmd-apex-jorje”, which packages and provides +the parser as a binary.

    + +

    Incremental Analysis

    + +

    The incremental analysis feature first introduced in PMD 5.6.0 has been enhanced. A few minor issues have been fixed, +and several improvements have been performed to make it more accurate.

    + +

    The cache will now detect changes to the JARs referenced in the auxclasspath instead of simply looking at their paths +and order. This means that if you are referencing a JAR you are overwriting in some way, the incremental analysis can +now detect it and invalidate it’s cache to avoid false reports.

    + +

    Similarly, any changes to the execution classpath of PMD will invalidate the cache. This means that if you have custom +rules packaged in a jar, any changes to it will invalidate the cache automatically.

    + +

    We have also improved logging on the analysis code, allowing better insight into how the cache is performing, +under debug / verbose builds you can even see individual hits / misses to the cache (and the reason for any miss!)

    + +

    Finally, as this feature keeps maturing, we are gently pushing this forward. If not using incremental analysis, +a warning will now be produced suggesting users to adopt it for better performance.

    + +

    Rule and Report Properties

    + +

    The implementation around the properties support for rule properties and report properties has been revamped +to be fully typesafe. Along with that change, the support classes have been moved into an own +package net.sourceforge.pmd.properties. While there is no change necessary in the ruleset XML files, +when using/setting values for rules, there are adjustments necessary when declaring properties in Java-implemented +rules.

    + +

    Rule properties can be declared both for Java based rules and XPath rules. +This is now very well documented in Working with properties.

    + +

    With PMD 6.0.0, multivalued properties are now also possible with XPath rules.

    + +

    Fixed Issues

    + +
      +
    • all +
        +
      • #394: [core] PMD exclude rules are failing with IllegalArgumentException with non-default minimumPriority
      • +
      • #532: [core] security concerns on URL-based rulesets
      • +
      • #538: [core] Provide an XML Schema for XML reports
      • +
      • #600: [core] Nullpointer while creating cache File
      • +
      • #604: [core] Incremental analysis should detect changes to jars in classpath
      • +
      • #608: [core] Add DEBUG log when applying incremental analysis
      • +
      • #618: [core] Incremental Analysis doesn’t close file correctly on Windows upon a cache hit
      • +
      • #643: [core] PMD Properties (dev-properties) breaks markup on CodeClimateRenderer
      • +
      • #680: [core] Isolate classloaders for runtime and auxclasspath
      • +
      • #762: [core] Remove method and file property from available property descriptors for XPath rules
      • +
      • #763: [core] Turn property descriptor util into an enum and enrich its interface
      • +
      +
    • +
    • apex +
        +
      • #265: [apex] Make Rule suppression work
      • +
      • #488: [apex] Use Apex lexer for CPD
      • +
      • #489: [apex] Update Apex compiler
      • +
      • #500: [apex] Running through CLI shows jorje optimization messages
      • +
      • #605: [apex] java.lang.NoClassDefFoundError in the latest build
      • +
      • #637: [apex] Avoid SOSL in loops
      • +
      • #760: [apex] EmptyStatementBlock complains about missing rather than empty block
      • +
      • #766: [apex] Replace old Jorje parser with new one
      • +
      • #768: [apex] java.lang.NullPointerException from PMD
      • +
      +
    • +
    • cpp +
        +
      • #448: [cpp] Write custom CharStream to handle continuation characters
      • +
      +
    • +
    • java +
        +
      • #1454: [java] OptimizableToArrayCall is outdated and invalid in current JVMs
      • +
      • #1513: [java] Remove deprecated rule UseSingleton
      • +
      • #328: [java] java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/jsp/PageContext
      • +
      • #487: [java] Fix typeresolution for anonymous extending object
      • +
      • #496: [java] processing error on generics inherited from enclosing class
      • +
      • #510: [java] Typeresolution fails on a simple primary when the source is loaded from a class literal
      • +
      • #527: [java] Lombok getter annotation on enum is not recognized correctly
      • +
      • #534: [java] NPE in MethodTypeResolution for static methods
      • +
      • #603: [core] incremental analysis should invalidate upon Java rule plugin changes
      • +
      • #650: [java] ProcesingError analyzing code under 5.8.1
      • +
      • #732: [java] LinkageError with aux classpath
      • +
      +
    • +
    • java-basic +
        +
      • #565: [java] False negative on DontCallThreadRun when extending Thread
      • +
      +
    • +
    • java-comments +
        +
      • #396: [java] CommentRequired: add properties to ignore @Override method and getters / setters
      • +
      • #536: [java] CommentDefaultAccessModifierRule ignores constructors
      • +
      +
    • +
    • java-controversial +
        +
      • #388: [java] controversial.AvoidLiteralsInIfCondition 0.0 false positive
      • +
      • #408: [java] DFA not analyzing asserts
      • +
      • #537: [java] UnnecessaryParentheses fails to detect obvious scenario
      • +
      +
    • +
    • java-design +
        +
      • #357: [java] UncommentedEmptyConstructor consider annotations on Constructor
      • +
      • #438: [java] Relax AbstractClassWithoutAnyMethod when class is annotated by @AutoValue
      • +
      • #590: [java] False positive on MissingStaticMethodInNonInstantiatableClass
      • +
      +
    • +
    • java-logging + * #457: [java] Merge all log guarding rules + * #721: [java] NPE in PMD 5.8.1 InvalidSlf4jMessageFormat
    • +
    • java-sunsecure +
        +
      • #468: [java] ArrayIsStoredDirectly false positive
      • +
      +
    • +
    • java-unusedcode +
        +
      • #521: [java] UnusedPrivateMethod returns false positives with primitive data type in map argument
      • +
      +
    • +
    • java-unnecessarycode +
        +
      • #412: [java] java-unnecessarycode/UnnecessaryFinalModifier missing cases
      • +
      • #676: [java] java-unnecessarycode/UnnecessaryFinalModifier on try-with-resources
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • +

      The class net.sourceforge.pmd.lang.dfa.NodeType has been converted to an enum. +All node types are enum members now instead of int constants. The names for node types are retained.

      +
    • +
    • +

      The Properties API (rule and report properties) has been revamped to be fully typesafe. This is everything +around net.sourceforge.pmd.properties.PropertyDescriptor.

      + +

      Note: All classes related to properties have been moved into the package net.sourceforge.pmd.properties.

      +
    • +
    • +

      The rule classes net.sourceforge.pmd.lang.apex.rule.apexunit.ApexUnitTestClassShouldHaveAsserts +and net.sourceforge.pmd.lang.apex.rule.apexunit.ApexUnitTestShouldNotUseSeeAllDataTrue have been +renamed to ApexUnitTestClassShouldHaveAssertsRule and ApexUnitTestShouldNotUseSeeAllDataTrueRule, +respectively. This is to comply with the naming convention, that each rule class should be suffixed with “Rule”.

      + +

      This change has no impact on custom rulesets, since the rule names themselves didn’t change.

      +
    • +
    • +

      The never implemented method PMD.processFiles(PMDConfiguration, RuleSetFactory, Collection<File>, RuleContext, ProgressMonitor) along with the interface ProgressMonitor has been removed.

      +
    • +
    • +

      The method PMD.setupReport(RuleSets, RuleContext, String) is gone. It was used to report dysfunctional +rules. But PMD does this now automatically before processing the files, so there is no need for this +method anymore.

      +
    • +
    • All APIs deprecated in older versions are now removed. This includes: +
        +
      • Renderer.getPropertyDefinitions
      • +
      • AbstractRenderer.defineProperty(String, String)
      • +
      • AbstractRenderer.propertyDefinitions
      • +
      • ReportListener
      • +
      • Report.addListener(ReportListener)
      • +
      • SynchronizedReportListener
      • +
      • CPDConfiguration.CPDConfiguration(int, Language, String)
      • +
      • CPDConfiguration.getRendererFromString(String)
      • +
      • StreamUtil
      • +
      • StringUtil.appendXmlEscaped(StringBuilder, String)
      • +
      • StringUtil.htmlEncode(String)
      • +
      +
    • +
    • Several methods in net.sourceforge.pmd.util.CollectionUtil have been deprecated and will be removed in PMD 7.0.0. In particular: +
        +
      • CollectionUtil.addWithoutDuplicates(T[], T)
      • +
      • CollectionUtil.addWithoutDuplicates(T[], T[])
      • +
      • CollectionUtil.areSemanticEquals(T[], T[])
      • +
      • CollectionUtil.areEqual(Object, Object)
      • +
      • CollectionUtil.arraysAreEqual(Object, Object)
      • +
      • CollectionUtil.valuesAreTransitivelyEqual(Object[], Object[])
      • +
      +
    • +
    • Several methods in net.sourceforge.pmd.util.StringUtil have been deprecated and will be removed in PMD 7.0.0. In particular: +
        +
      • StringUtil.startsWithAny(String, String[])
      • +
      • StringUtil.isNotEmpty(String)
      • +
      • StringUtil.isEmpty(String)
      • +
      • StringUtil.isMissing(String)
      • +
      • StringUtil.areSemanticEquals(String, String)
      • +
      • StringUtil.replaceString(String, String, String)
      • +
      • StringUtil.replaceString(String, char, String)
      • +
      • StringUtil.substringsOf(String, char)
      • +
      • StringUtil.substringsOf(String, String)
      • +
      • StringUtil.asStringOn(StringBuffer, Iterator, String)
      • +
      • StringUtil.asStringOn(StringBuilder, Object[], String)
      • +
      • StringUtil.lpad(String, int)
      • +
      +
    • +
    • +

      The class net.sourceforge.pmd.lang.java.typeresolution.typedefinition.JavaTypeDefinition is now abstract, and has been enhanced +to provide several new methods.

      +
    • +
    • +

      The constructor of net.sourceforge.pmd.RuleSetFactory, which took a ClassLoader is deprecated. +Please use the alternative constructor with the net.sourceforge.pmd.util.ResourceLoader instead.

      +
    • +
    • The following GUI related classes have been deprecated and will be removed in PMD 7.0.0. +The tool “bgastviewer”, that could be started via the script bgastviewer.bat or run.sh bgastviewer is +deprecated, too, and will be removed in PMD 7.0.0. +Both the “old designer” and “bgastviewer” are replaced by the New Rule Designer. +
        +
      • net.sourceforge.pmd.util.designer.CodeEditorTextPane
      • +
      • net.sourceforge.pmd.util.designer.CreateXMLRulePanel
      • +
      • net.sourceforge.pmd.util.designer.Designer
      • +
      • net.sourceforge.pmd.util.designer.DFAPanel
      • +
      • net.sourceforge.pmd.util.designer.LineGetter
      • +
      • net.sourceforge.pmd.util.viewer.Viewer
      • +
      • net.sourceforge.pmd.util.viewer.gui.ActionCommands
      • +
      • net.sourceforge.pmd.util.viewer.gui.ASTPanel
      • +
      • net.sourceforge.pmd.util.viewer.gui.EvaluationResultsPanel
      • +
      • net.sourceforge.pmd.util.viewer.gui.MainFrame
      • +
      • net.sourceforge.pmd.util.viewer.gui.ParseExceptionHandler
      • +
      • net.sourceforge.pmd.util.viewer.gui.SourceCodePanel
      • +
      • net.sourceforge.pmd.util.viewer.gui.XPathPanel
      • +
      • net.sourceforge.pmd.util.viewer.gui.menu.ASTNodePopupMenu
      • +
      • net.sourceforge.pmd.util.viewer.gui.menu.AttributesSubMenu
      • +
      • net.sourceforge.pmd.util.viewer.gui.menu.SimpleNodeSubMenu
      • +
      • net.sourceforge.pmd.util.viewer.gui.menu.XPathFragmentAddingItem
      • +
      • net.sourceforge.pmd.util.viewer.model.ASTModel
      • +
      • net.sourceforge.pmd.util.viewer.model.AttributeToolkit
      • +
      • net.sourceforge.pmd.util.viewer.model.SimpleNodeTreeNodeAdapter
      • +
      • net.sourceforge.pmd.util.viewer.model.ViewerModel
      • +
      • net.sourceforge.pmd.util.viewer.model.ViewerModelEvent
      • +
      • net.sourceforge.pmd.util.viewer.model.ViewerModelListener
      • +
      • net.sourceforge.pmd.util.viewer.util.NLS
      • +
      +
    • +
    • The following methods in net.sourceforge.pmd.Rule have been deprecated and will be removed in PMD 7.0.0. +All methods are replaced by their bean-like counterparts +
        +
      • void setUsesDFA(). Use void setDfa(boolean) instead.
      • +
      • boolean usesDFA(). Use boolean isDfa() instead.
      • +
      • void setUsesTypeResolution(). Use void setTypeResolution(boolean) instead.
      • +
      • boolean usesTypeResolution(). Use boolean isTypeResolution() instead.
      • +
      • void setUsesMultifile(). Use void setMultifile(boolean) instead.
      • +
      • boolean usesMultifile(). Use boolean isMultifile() instead.
      • +
      • boolean usesRuleChain(). Use boolean isRuleChain() instead.
      • +
      +
    • +
    + +

    External Contributions

    + + + +

    01-July-2017 - 5.8.1

    + +

    The PMD team is pleased to announce PMD 5.8.1.

    + +

    This is a bug fixing release.

    + +

    Fixed Issues

    + +
      +
    • java +
        +
      • #471: [java] Error while processing class when EnumMap is used in PMD 5.8.0
      • +
      • #477: [core] NoClassDefFoundError under 5.8
      • +
      • #478: [core] Processing issues dealing with anonymous classes
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • The getGenericArgs() method introduced to TypeNode in 5.8.0 was removed. You can access to generics’ info through the JavaTypeDefinition object.
    • +
    • The JavaTypeDefinitionBuilder class introduced in 5.8.0 is not more. You can use factory methods available on JavaTypeDefinition
    • +
    + +

    External Contributions

    + +
      +
    • #472: [java] fix error with raw types, bug #471
    • +
    + +

    24-June-2017 - 5.8.0

    + +

    The PMD team is pleased to announce PMD 5.8.0.

    + +

    This is a minor release.

    + +

    New and noteworthy

    + +

    Java Type Resolution

    + +

    As part of Google Summer of Code 2017, Bendegúz Nagy has been working on completing type resolution for Java. +His progress so far has allowed to properly resolve, in addition to previously supported statements:

    + +
      +
    • References to this and super, even when qualified
    • +
    • References to fields, even when chained (ie: this.myObject.aField), and properly handling inheritance / shadowing
    • +
    + +

    Lambda parameter types where these are infered rather than explicit are still not supported. Expect future releases to do so.

    + +

    Metrics Framework

    + +

    As part of Google Summer of Code 2017, Clément Fournier has been working on +a new metrics framework for object-oriented metrics.

    + +

    The basic groundwork has been done already and with this release, including a first rule based on the +metrics framework as a proof-of-concept: The rule CyclomaticComplexity, currently in the temporary +ruleset java-metrics, uses the Cyclomatic Complexity metric to find overly complex code. +This rule will eventually replace the existing three CyclomaticComplexity rules that are currently +defined in the java-codesize ruleset (see also issue #445).

    + +

    Since this work is still in progress, the metrics API (package net.sourceforge.pmd.lang.java.oom) +is not finalized yet and is expected to change.

    + +

    Modified Rules

    + +
      +
    • +

      The Java rule UnnecessaryFinalModifier (ruleset java-unnecessary) now also reports on private methods marked as final. +Being private, such methods can’t be overriden, and therefore, the final keyword is redundant.

      +
    • +
    • +

      The Java rule PreserveStackTrace (ruleset java-design) has been relaxed to support the builder pattern on thrown exception. +This change may introduce some false positives if using the exception in non-orthodox ways for things other than setting the +root cause of the exception. Contact us if you find any such scenarios.

      +
    • +
    • +

      The ruleset java-junit now properly detects JUnit5, and rules are being adapted to the changes on it’s API. +This support is, however, still incomplete. Let us know of any uses we are still missing on the issue tracker

      +
    • +
    • +

      The Java rule EmptyTryBlock (ruleset java-empty) now allows empty blocks when using try-with-resources.

      +
    • +
    • +

      The Java rule EmptyCatchBlock (ruleset java-empty) now exposes a new property called allowExceptionNameRegex. +This allow to setup a regular expression for names of exceptions you wish to ignore for this rule. For instance, +setting it to ^(ignored|expected)$ would ignore all empty catch blocks where the catched exception is named +either ignored or expected. The default ignores no exceptions, being backwards compatible.

      +
    • +
    + +

    Deprecated Rules

    + +
      +
    • The three complexity rules CyclomaticComplexity, StdCyclomaticComplexity, ModifiedCyclomaticComplexity (ruleset java-codesize) have been deprecated. They will be eventually replaced +by a new CyclomaticComplexity rule based on the metrics framework. See also issue #445.
    • +
    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #380: [core] NPE in RuleSet.hashCode
      • +
      • #407: [web] Release date is not properly formatted
      • +
      • #429: [core] Error when running PMD from folder with space
      • +
      +
    • +
    • apex +
        +
      • #427: [apex] CPD error when parsing apex code from release 5.5.3
      • +
      +
    • +
    • cpp +
        +
      • #431: [cpp] CPD gives wrong duplication blocks for CPP code
      • +
      +
    • +
    • java +
        +
      • #414: [java] Java 8 parsing problem with annotations for wildcards
      • +
      • #415: [java] Parsing Error when having an Annotated Inner class
      • +
      • #417: [java] Parsing Problem with Annotation for Array Member Types
      • +
      +
    • +
    • java-design +
        +
      • #397: [java] ConstructorCallsOverridableMethodRule: false positive for method called from lambda expression
      • +
      • #410: [java] ImmutableField: False positive with lombok
      • +
      • #422: [java] PreserveStackTraceRule: false positive when using builder pattern
      • +
      +
    • +
    • java-empty +
        +
      • #413: [java] EmptyCatchBlock don’t fail when exception is named ignore / expected
      • +
      • #432: [java] EmptyTryBlock: false positive for empty try-with-resource
      • +
      +
    • +
    • java-imports: +
        +
      • #348: [java] imports/UnusedImport rule not considering static inner classes of imports
      • +
      +
    • +
    • java-junit +
        +
      • #428: [java] PMD requires public modifier on JUnit 5 test
      • +
      • #465: [java] NullPointerException in JUnitTestsShouldIncludeAssertRule
      • +
      +
    • +
    • java-logging: +
        +
      • #365: [java] InvalidSlf4jMessageFormat does not handle inline incrementation of arguments
      • +
      +
    • +
    • java-strictexceptions +
        +
      • #350: [java] Throwing Exception in method signature is fine if the method is overriding or implementing something
      • +
      +
    • +
    • java-typeresolution +
        +
      • #350: [java] Throwing Exception in method signature is fine if the method is overriding or implementing something
      • +
      +
    • +
    • java-unnecessary +
        +
      • #421: [java] UnnecessaryFinalModifier final in private method
      • +
      +
    • +
    • jsp +
        +
      • #311: [jsp] Parse error on HTML boolean attribute
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #406: [java] False positive with lambda in java-design/ConstructorCallsOverridableMethod
    • +
    • #409: [java] Groundwork for the upcoming metrics framework
    • +
    • #416: [java] FIXED: Java 8 parsing problem with annotations for wildcards
    • +
    • #418: [java] Type resolution: super and this keywords
    • +
    • #423: [java] Add field access type resolution in non-generic cases
    • +
    • #425: [java] False positive with builder pattern in java-design/PreserveStackTrace
    • +
    • #426: [java] UnnecessaryFinalModifier final in private method
    • +
    • #436: [java] Metrics framework tests and various improvements
    • +
    • #440: [core] Created ruleset schema 3.0.0 (to use metrics)
    • +
    • #443: [java] Optimize typeresolution, by skipping package and import declarations in visit(ASTName)
    • +
    • #444: [java] [typeresolution]: add support for generic fields
    • +
    • #451: [java] Metrics framework: first metrics + first rule
    • +
    + +

    20-Mai-2017 - 5.7.0

    + +

    The PMD team is pleased to announce PMD 5.7.0.

    + +

    This is a minor release.

    + +

    New and noteworthy

    + +

    Modified Rules

    + +
      +
    • +

      The rule “FieldDeclarationsShouldBeAtStartOfClass” of the java-design ruleset has a new property ignoreInterfaceDeclarations. +Setting this property to true ignores interface declarations, that precede fields. +Example usage:

      + + + + + + +
    • +
    + +

    Renderers

    + +
      +
    • Added the ‘empty’ renderer which will write nothing. Does not affect other behaviors, for example the command line PMD exit status +will still indicate whether violations were found.
    • +
    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #377: [core] Use maven wrapper and upgrade to maven 3.5.0
      • +
      • #376: [core] Improve build time on travis
      • +
      +
    • +
    • java +
        +
      • #378: [java] Parser Error for empty statements
      • +
      +
    • +
    • java-coupling +
        +
      • #1427: [java] Law of Demeter violations for the Builder pattern
      • +
      +
    • +
    • java-design +
        +
      • #345: [java] FieldDeclarationsShouldBeAtStartOfClass: Add ability to ignore interfaces
      • +
      • #389: [java] RuleSetCompatibility - not taking rename of UnusedModifier into account
      • +
      +
    • +
    • java-junit +
        +
      • #358: [java] Mockito verify method is not taken into account in JUnitTestsShouldIncludeAssert rule
      • +
      +
    • +
    • java-strings +
        +
      • #334: [java] [doc] Add suggestion to use StringUtils#isBlank for InefficientEmptyStringCheck
      • +
      +
    • +
    • jsp-basic +
        +
      • #369: [jsp] Wrong issue “JSP file should use UTF-8 encoding”
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • The method net.sourceforge.pmd.util.StringUtil#htmlEncode(String) is deprecated. +org.apache.commons.lang3.StringEscapeUtils#escapeHtml4(String) should be used instead.
    • +
    + +

    External Contributions

    + +
      +
    • #368: [vf] Adding proper AST support for negation expressions
    • +
    • #372: [core] Fix XSS in HTML renderer
    • +
    • #374: [java] Add property to ignore interfaces in FieldDeclarationsShouldBeAtStartOfClassRule
    • +
    • #381: [core] Fix broken link in the site’s doc
    • +
    • #382: [java] Added documentation details on InefficientEmptyStringCheck
    • +
    • #383: [jsp] Fixed JspEncoding false positive
    • +
    • #390: [java] Remove trailing whitespaces in design.xml
    • +
    • #391: [apex] Fix documentation typo
    • +
    • #392: [java] False positive for Law Of Demeter (Builder pattern)
    • +
    • #395: [java] Mockito verify method is not taken into account in JUnitTestsShouldIncludeAssert rule
    • +
    + +

    29-April-2017 - 5.6.1

    + +

    The PMD team is pleased to announce PMD 5.6.1.

    + +

    This is a bug fixing release.

    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #363: [core] Rule documentation pages are missing
      • +
      • #364: [core] Stream closed exception when running through maven
      • +
      • #373: [core] RuleSetFactory - add more helper methods
      • +
      +
    • +
    + +

    22-April-2017 - 5.6.0

    + +

    The PMD team is pleased to announce PMD 5.6.0.

    + +

    The most significant changes are on analysis performance, support for Salesforce’s Visualforce language +a whole new Apex Security Rule Set and the new Braces Rule Set for Apex.

    + +

    We have added initial support for incremental analysis. The experimental feature allows +PMD to cache analysis results between executions to speed up the analysis for all +languages. New CLI flags and Ant options are available to configure it. Currently +the feature is disabled by default, but this may change as it matures.

    + +

    Multithread performance has been enhanced by reducing thread-contention on a +bunch of areas. This is still an area of work, as the speedup of running +multithreaded analysis is still relatively small (4 threads produce less +than a 50% speedup). Future releases will keep improving on this area.

    + +

    Once again, Symbol Table has been an area of great performance improvements. +This time we were able to further improve it’s performance by roughly 10% on all +supported languages. In Java in particular, several more improvements were possible, +improving Symbol Table performance by a whooping 80%, that’s over 15X faster +than PMD 5.5.1, when we first started working on it.

    + +

    Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable, +making it over 500X faster, and PreserveStackTrace which is now 7X faster.

    + +

    New and noteworthy

    + +

    Incremental Analysis

    + +

    PMD now supports incremental analysis. Analysis results can be cached and reused between runs. +This allows PMD to skip files without violations that have remained unchanged. In future releases, +we plan to extend this behavior to unchanged files with violations too.

    + +

    The cache is automatically invalidated if:

    +
      +
    • the used PMD version changes
    • +
    • the auxclasspath changed and any rules require type resolution
    • +
    • the configured rule set has changed
    • +
    + +

    This feature is incubating and is disabled by default. It’s only enabled if you +specifically configure a cache file.

    + +

    To configure the cache file from CLI, a new -cache <path/to/file> flag has been added.

    + +

    For Ant, a new cacheLocation attribute has been added. For instance:

    + +
        <target name="pmd">
    +        <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
    +        <pmd cacheLocation="build/pmd/pmd.cache">
    +            <ruleset>rulesets/java/design.xml</ruleset>
    +            <ruleset>java-basic</ruleset>
    +            <formatter type="xml" toFile="c:\pmd_report.xml"/>
    +            <fileset dir="/usr/local/j2sdk1.4.1_01/src/">
    +                <include name="java/lang/*.java"/>
    +            </fileset>
    +        </pmd>
    +    </target>
    +
    + +

    Visualforce Support

    + +

    Salesforce developers rejoice. To out growing Apex support we have added full Visualforce support. +Both CPD and PD are available. So far only a security ruleset is available (vf-security).

    + +
    Visualforce Security Rule Set
    + +
    VfUnescapeEl
    + +

    The rule looks for Expression Language occurances printing unescaped values from the backend. These +could lead to XSS attacks.

    + +
    VfCsrf
    + +

    The rule looks for <apex:page> tags performing an action on page load, definish such action +through Expression Language, as doing so is vulnerable to CSRF attacks.

    + +

    Apex Security Rule Set

    + +

    A new ruleset focused on security has been added, consisting of a wide range of rules +to detect most common security problems.

    + +
    ApexBadCrypto
    + +

    The rule makes sure you are using randomly generated IVs and keys for Crypto calls. +Hard-wiring these values greatly compromises the security of encrypted data.

    + +

    For instance, it would report violations on code such as:

    + +
    public class without sharing Foo {
    +    Blob hardCodedIV = Blob.valueOf('Hardcoded IV 123');
    +    Blob hardCodedKey = Blob.valueOf('0000000000000000');
    +    Blob data = Blob.valueOf('Data to be encrypted');
    +    Blob encrypted = Crypto.encrypt('AES128', hardCodedKey, hardCodedIV, data);
    +}
    +
    +
    + +
    ApexCRUDViolation
    + +

    The rule validates you are checking for access permissions before a SOQL/SOSL/DML operation. +Since Apex runs in system mode not having proper permissions checks results in escalation of +privilege and may produce runtime errors. This check forces you to handle such scenarios.

    + +

    For example, the following code is considered valid:

    + +
    public class Foo {
    +    public Contact foo(String status, String ID) {
    +        Contact c = [SELECT Status__c FROM Contact WHERE Id=:ID];
    +
    +        // Make sure we can update the database before even trying
    +        if (!Schema.sObjectType.Contact.fields.Name.isUpdateable()) {
    +            return null;
    +        }
    +
    +        c.Status__c = status;
    +        update c;
    +        return c;
    +    }
    +}
    +
    + +
    ApexCSRF
    + +

    Check to avoid making DML operations in Apex class constructor/init method. This prevents +modification of the database just by accessing a page.

    + +

    For instance, the following code would be invalid:

    + +
    public class Foo {
    +    public init() {
    +        insert data;
    +    }
    +
    +    public Foo() {
    +        insert data;
    +    }
    +}
    +
    + +
    ApexDangerousMethods
    + +

    Checks against calling dangerous methods.

    + +

    For the time being, it reports:

    + +
      +
    • Against FinancialForce’s Configuration.disableTriggerCRUDSecurity(). Disabling CRUD security +opens the door to several attacks and requires manual validation, which is unreliable.
    • +
    • Calling System.debug passing sensitive data as parameter, which could lead to exposure +of private data.
    • +
    + +
    ApexInsecureEndpoint
    + +

    Checks against accessing endpoints under plain http. You should always use +https for security.

    + +
    ApexOpenRedirect
    + +

    Checks against redirects to user-controlled locations. This prevents attackers from +redirecting users to phishing sites.

    + +

    For instance, the following code would be reported:

    + +
    public class without sharing Foo {
    +    String unsafeLocation = ApexPage.getCurrentPage().getParameters.get('url_param');
    +    PageReference page() {
    +       return new PageReference(unsafeLocation);
    +    }
    +}
    +
    + +
    ApexSharingViolations
    + +

    Detect classes declared without explicit sharing mode if DML methods are used. This +forces the developer to take access restrictions into account before modifying objects.

    + +
    ApexSOQLInjection
    + +

    Detects the usage of untrusted / unescaped variables in DML queries.

    + +

    For instance, it would report on:

    + +
    public class Foo {
    +    public void test1(String t1) {
    +        Database.query('SELECT Id FROM Account' + t1);
    +    }
    +}
    +
    + +
    ApexSuggestUsingNamedCred
    + +

    Detects hardcoded credentials used in requests to an endpoint.

    + +

    You should refrain from hardcoding credentials:

    +
      +
    • They are hard to mantain by being mixed in application code
    • +
    • Particularly hard to update them when used from different classes
    • +
    • Granting a developer access to the codebase means granting knowledge + of credentials, keeping a two-level access is not possible.
    • +
    • Using different credentials for different environments is troublesome + and error-prone.
    • +
    + +

    Instead, you should use Named Credentials and a callout endpoint.

    + +

    For more information, you can check this

    + +
    ApexXSSFromEscapeFalse
    + +

    Reports on calls to addError with disabled escaping. The message passed to addError +will be displayed directly to the user in the UI, making it prime ground for XSS +attacks if unescaped.

    + +
    ApexXSSFromURLParam
    + +

    Makes sure that all values obtained from URL parameters are properly escaped / sanitized +to avoid XSS attacks.

    + +

    Apex Braces Rule Set

    + +

    The Braces Rule Set has been added and serves the same purpose as the Braces Rule Set from Java: +It checks the use and placement of braces around if-statements, for-loops and so on.

    + +
    IfStmtsMustUseBraces
    + +

    Avoid using if statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    For instance, the following code shows the different. PMD would report on the not recommended approach:

    + +
    if (foo)    // not recommended
    +    x++;
    +
    +if (foo) {  // preferred approach
    +    x++;
    +}
    +
    + +
    WhileLoopsMustUseBraces
    + +

    Avoid using ‘while’ statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    For instance, the following code shows the different. PMD would report on the not recommended approach:

    + +
    while (true)    // not recommended
    +      x++;
    +
    +while (true) {  // preferred approach
    +      x++;
    +}
    +
    + +
    IfElseStmtsMustUseBraces
    + +

    Avoid using if..else statements without using surrounding braces. If the code formatting +or indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    For instance, the following code shows the different. PMD would report on the not recommended approach:

    + +
    // this is not recommended
    +if (foo)
    +       x = x+1;
    +   else
    +       x = x-1;
    +
    +// preferred approach
    +if (foo) {
    +   x = x+1;
    +} else {
    +   x = x-1;
    +}
    +
    + +
    ForLoopsMustUseBraces
    + +

    Avoid using ‘for’ statements without using surrounding braces. If the code formatting or +indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    For instance, the following code shows the different. PMD would report on the not recommended approach:

    + +
    for (int i = 0; i < 42; i++) // not recommended
    +    foo();
    +
    +for (int i = 0; i < 42; i++) { // preferred approach
    +    foo();
    +}
    +
    + +

    New Rules

    + +
    AccessorMethodGeneration (java-design)
    + +

    When accessing a private field / method from another class, the Java compiler will generate an accessor method +with package-private visibility. This adds overhead, and to the dex method count on Android. This situation can +be avoided by changing the visibility of the field / method from private to package-private.

    + +

    For instance, it would report violations on code such as:

    + +
    public class OuterClass {
    +    private int counter;
    +    /* package */ int id;
    +
    +    public class InnerClass {
    +        InnerClass() {
    +            OuterClass.this.counter++; // wrong, accessor method will be generated
    +        }
    +
    +        public int getOuterClassId() {
    +            return OuterClass.this.id; // id is package-private, no accessor method needed
    +        }
    +    }
    +}
    +
    + +

    This new rule is part of the java-design ruleset.

    + +

    Modified Rules

    + +
      +
    • +

      The Java rule UnnecessaryLocalBeforeReturn (ruleset java-design) now has a new property statementOrderMatters. +It is enabled by default to stay backwards compatible. But if this property is set to false, this rule +no longer requires the variable declaration +and return statement to be on consecutive lines. Any variable that is used solely in a return statement will be +reported.

      +
    • +
    • +

      The Java rule UseLocaleWithCaseConversions (ruleset java-design) has been modified, to detect calls +to toLowerCase and to toUpperCase also within method call chains. This leads to more detected cases +and potentially new false positives. +See also bugfix #1556.

      +
    • +
    • +

      The Java rule AvoidConstantsInterface (ruleset java-design) has been removed. It is completely replaced by +the rule ConstantsInInterface.

      +
    • +
    • The Java rule UnusedModifier (ruleset java-unusedcode) has been moved to the ruleset java-unnecessary +and has been renamed to UnnecessaryModifier. +Additionally, it has been expanded to consider more redundant modifiers: +
        +
      • Annotations marked as abstract.
      • +
      • Nested annotations marked as static.
      • +
      • Nested annotations within another interface or annotation marked as public.
      • +
      • Classes, interfaces or annotations nested within an annotation marked as public or static.
      • +
      • Nested enums marked as static.
      • +
      +
    • +
    • The Java rule JUnitTestsShouldIncludeAssert (ruleset java-junit) now accepts usage of @Rule ExpectedException +to set expectations on exceptions, and are considered as valid assertions.
    • +
    + +

    CPD Suppression

    + +

    It is now possible to allow CPD suppression through comments in Java. You tell CPD to ignore +the following code with a comment containin CPD-OFF and with CPD-ON you tell CPD to resume +analysis. The old approach via @SuppressWarnings annotation is still supported, but is considered +deprecated, since it is limited to locations where the SuppressWarnings annotation is allowed. +See PR #250.

    + +

    For example:

    + +
        public Object someMethod(int x) throws Exception {
    +        // some unignored code
    +
    +        // tell cpd to start ignoring code - CPD-OFF
    +
    +        // mission critical code, manually loop unroll
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +
    +        // resume CPD analysis - CPD-ON
    +
    +        // further code will *not* be ignored
    +    }
    +
    + +

    CPD filelist command line option

    + +

    CPD now supports the command line option --filelist. With that, you can specify a file, which +contains the names and paths of the files, that should be analyzed. This is similar to PMD’s filelist option. +You need to use this, if you have a large project with many files, and you hit the command line length limit.

    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #1511: [core] Inconsistent behavior of Rule.start/Rule.end
      • +
      • #234: [core] Zip file stream closes spuriously when loading rulesets
      • +
      • #256: [core] shortnames option is broken with relative paths
      • +
      • #305: [core] PMD not executing under git bash
      • +
      • #324: [core] Automated release - github release notes missing
      • +
      • #337: [core] Version 5.5.4 seems to hold file lock on rules JAR (affects Windows only)
      • +
      +
    • +
    • apex-apexunit +
        +
      • #1543: [apex] ApexUnitTestClassShouldHaveAsserts assumes APEX is case sensitive
      • +
      +
    • +
    • apex-complexity +
        +
      • #183: [apex] NCSS Method length is incorrect when using method chaining
      • +
      • #251: [apex] NCSS Type length is incorrect when using method chaining
      • +
      +
    • +
    • apex-security +
        +
      • #264: [apex] ApexXSSFromURLParamRule shouldn’t enforce ESAPI usage. String.escapeHtml4 is sufficient.
      • +
      • #315: [apex] Documentation flaw on Apex Sharing Violations
      • +
      +
    • +
    • java +
        +
      • #185: [java] CPD runs into NPE when analyzing Lucene
      • +
      • #206: [java] Parse error on annotation fields with generics
      • +
      • #207: [java] Parse error on method reference with generics
      • +
      • #208: [java] Parse error with local class with 2 or more annotations
      • +
      • #213: [java] CPD: OutOfMemory when analyzing Lucene
      • +
      • #309: [java] Parse error on method reference
      • +
      • #1542: [java] CPD throws an NPE when parsing enums with -ignore-identifiers
      • +
      • #1545: [java] Symbol Table fails to resolve inner classes
      • +
      +
    • +
    • java-basic +
        +
      • #232: [java] SimplifiedTernary: Incorrect ternary operation can be simplified.
      • +
      +
    • +
    • java-coupling +
        +
      • #270: [java] LoD false positive
      • +
      +
    • +
    • java-design +
        +
      • #933: [java] UnnecessaryLocalBeforeReturn false positive for SuppressWarnings annotation
      • +
      • #1448: [java] ImmutableField: Private field in inner class gives false positive with lambdas
      • +
      • #1495: [java] UnnecessaryLocalBeforeReturn with assert
      • +
      • #1496: [java] New Rule: AccesorMethodGeneration - complements accessor class rule
      • +
      • #1512: [java] Combine rules AvoidConstantsInInterface and ConstantsInInterface
      • +
      • #1552: [java] MissingBreakInSwitch - False positive for continue
      • +
      • #1556: [java] UseLocaleWithCaseConversions does not works with ResultSet (false negative)
      • +
      • #177: [java] SingularField with lambdas as final fields
      • +
      • #216: [java] [doc] NonThreadSafeSingleton: Be more explicit as to why double checked locking is not recommended
      • +
      • #219: [java] UnnecessaryLocalBeforeReturn: ClassCastException in switch case with local variable returned
      • +
      • #240: [java] UnnecessaryLocalBeforeReturn: Enhance by checking usages
      • +
      • #274: [java] AccessorMethodGeneration: Method inside static inner class incorrectly reported
      • +
      • #275: [java] FinalFieldCouldBeStatic: Constant in @interface incorrectly reported as “could be made static”
      • +
      • #282: [java] UnnecessaryLocalBeforeReturn false positive when cloning Maps
      • +
      • #291: [java] Improve quality of AccessorClassGeneration
      • +
      • #310: [java] UnnecessaryLocalBeforeReturn enhancement is overly restrictive – method order matters
      • +
      • #352: [java] AccessorClassGeneration throws ClassCastException when seeing array construction
      • +
      +
    • +
    • java-imports +
        +
      • #338: [java] False positive on DontImportJavaLang when importing java.lang.ProcessBuilder
      • +
      • #339: [java] False positive on DontImportJavaLang when importing Java 7’s java.lang.invoke.MethodHandles
      • +
      • #1546: [java] UnnecessaryFullyQualifiedNameRule doesn’t take into consideration conflict resolution
      • +
      • #1547: [java] UnusedImportRule - False Positive for only usage in Javadoc - {@link ClassName#CONSTANT}
      • +
      • #1555: [java] UnnecessaryFullyQualifiedName: Really necessary fully qualified name
      • +
      +
    • +
    • java-junit +
        +
      • #285: [java] JUnitTestsShouldIncludeAssertRule should support @Rule as well as @Test(expected = …)
      • +
      • #330: [java] NPE applying rule JUnitTestsShouldIncludeAssert
      • +
      +
    • +
    • java-logging-java +
        +
      • #1541: [java] InvalidSlf4jMessageFormat: False positive with placeholder and exception
      • +
      • #1551: [java] InvalidSlf4jMessageFormat: fails with NPE
      • +
      +
    • +
    • java-optimizations +
        +
      • #215: [java] RedundantFieldInitializer report for annotation field not explicitly marked as final
      • +
      • #222: [java] UseStringBufferForStringAppends: False Positive with ternary operator
      • +
      +
    • +
    • java-strings +
        +
      • #202: [java] [doc] ConsecutiveAppendsShouldReuse is not really an optimization
      • +
      • #290: [java] InefficientEmptyStringCheck misses String.trim().isEmpty()
      • +
      +
    • +
    • java-unnecessary +
        +
      • #199: [java] UselessParentheses: Parentheses in return statement are incorrectly reported as useless
      • +
      +
    • +
    • java-unusedcode +
        +
      • #246: [java] UnusedModifier doesn’t check annotations
      • +
      • #247: [java] UnusedModifier doesn’t check annotations inner classes
      • +
      • #248: [java] UnusedModifier doesn’t check static keyword on nested enum declaration
      • +
      • #257: [java] UnusedLocalVariable false positive
      • +
      +
    • +
    • XML +
        +
      • #1518: [xml] Error while processing xml file with “.webapp” in the file or directory name
      • +
      +
    • +
    • psql +
        +
      • #1549: [plsql] Parse error for IS [NOT] NULL construct
      • +
      +
    • +
    • javascript +
        +
      • #201: [javascript] template strings are not correctly parsed
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • net.sourceforge.pmd.RuleSetFactory is now immutable and its behavior cannot be changed anymore. +It provides constructors to create new adjusted instances. This allows to avoid synchronization in RuleSetFactory. +See PR #131.
    • +
    • net.sourceforge.pmd.RuleSet is now immutable, too, and can only be created via RuleSetFactory. +See PR #145.
    • +
    • net.sourceforge.pmd.cli.XPathCLI has been removed. It’s functionality is fully covered by the Designer.
    • +
    • net.sourceforge.pmd.Report now works with ThreadSafeReportListeners. Both ReportListener and +SynchronizedReportListener are deprecated in favor of net.sourceforge.pmd.ThreadSafeReportListener. +Therefore, the methods getSynchronizedListeners() and addSynchronizedListeners(...) have been +replaced by getListeners() and addListeners(...). See PR #193.
    • +
    + +

    External Contributions

    + +
      +
    • #123: [apex] Changing method names to lowercase so casing doesn’t matter
    • +
    • #129: [plsql] Added correct parse of IS [NOT] NULL and multiline DML
    • +
    • #137: [apex] Adjusted remediation points
    • +
    • #146: [apex] Detection of missing Apex CRUD checks for SOQL/DML operations
    • +
    • #147: [apex] Adding XSS detection to return statements
    • +
    • #148: [apex] Improving detection of SOQL injection
    • +
    • #149: [apex] Whitelisting String.isEmpty and casting
    • +
    • #152: [java] fixes #1552 continue does not require break
    • +
    • #154: [java] Fix #1547: UnusedImports: Adjust regex to support underscores
    • +
    • #158: [apex] Reducing FPs in SOQL with VF getter methods
    • +
    • #160: [apex] Flagging of dangerous method call
    • +
    • #163: [apex] Flagging of System.debug
    • +
    • #165: [apex] Improving open redirect rule to avoid test classes/methods
    • +
    • #167: [apex] GC and thread safety changes
    • +
    • #169: [apex] Improving detection for DML with inline new object
    • +
    • #170: [core] Ant Task Formatter encoding issue with XMLRenderer
    • +
    • #172: [apex] Bug fix, detects both Apex fields and class members
    • +
    • #175: [apex] ApexXSSFromURLParam: Adding missing casting methods
    • +
    • #176: [apex] Bug fix for FP: open redirect for strings prefixed with / is safe
    • +
    • #179: [apex] Legacy test class declaration support
    • +
    • #181: [apex] Control flow based CRUD rule checking
    • +
    • #184: [apex] Improving open redirect detection for static fields & assignment operations
    • +
    • #189: [apex] Bug fix of SOQL concatenated vars detection
    • +
    • #191: [apex] Detection of sharing violation when Database. methods are used
    • +
    • #192: [apex] Dead code removal
    • +
    • #200: [javascript] Templatestring grammar fix
    • +
    • #204: [apex] Sharing violation SOQL detection bug fix
    • +
    • #214: [apex] Sharing violation improving reporting of the correct node, de-duping
    • +
    • #217: [core] Make it build on Windows
    • +
    • #227: [apex] Improving detection of getters
    • +
    • #228: [apex] Excluding count from CRUD/FLS checks
    • +
    • #229: [apex] Dynamic SOQL is safe against Integer, Boolean, Double
    • +
    • #231: [apex] CRUD/FLS rule - add support for fields
    • +
    • #266: [java] corrected invalid reporting of LoD violation
    • +
    • #268: [apex] Support safe escaping via String method
    • +
    • #273: [apex] Shade jackson on apex
    • +
    • #279: [vf] New Salesforce VisualForce language support
    • +
    • #280: [apex] Support for Aggregate Result in CRUD rules
    • +
    • #281: [apex] Add Braces Rule Set
    • +
    • #283: [vf] CSRF in VF controller pages
    • +
    • #284: [vf] Adding support for parsing EL in script tags
    • +
    • #288: [vf] Setting the tab size to 4 for VF
    • +
    • #289: [apex] Complex SOQL Crud check bug fixes
    • +
    • #296: [apex] Adding String.IsNotBlank to the whitelist to prevent False positives
    • +
    • #297: [core] CPD: Adding the –filelist option from pmd to cpd
    • +
    • #303: [java] InefficientEmptyStringCheckRule now reports String.trim().isEmpty()
    • +
    • #307: [java] Fix false positive with UseStringBufferForStringAppendsRule
    • +
    • #308: [java] JUnitTestsShouldIncludeAssertRule supports @Rule annotated ExpectedExceptions
    • +
    • #313: [vf] Apex:iFrame not being detected - bug fix
    • +
    • #314: [vf] Bug fixes for incorrect Id detection and escaping
    • +
    • #316: [apex] Ignoring certain rules in Batch classes, Queueable, and install scripts
    • +
    • #317: [apex] Add support for safe ID assignment from URL param
    • +
    • #326: [vf] Quote detection improvement and method argument detection
    • +
    • #327: [apex] Fixed SOQL injection detection for escaped vars
    • +
    • #331: [java] JunitTestsShouldIncludeAssertRule now handles AllocationExpression correctly
    • +
    • #332: [java] Future-proof DontImportJavaLangRule
    • +
    • #340: [vf] Multiple parser bug fixes
    • +
    • #341: [vf] JSON.parse(..) and NOT(..) are safely evaluated
    • +
    • #343: [apex] int,id,boolean,ternary operator condition are not injection in Soql
    • +
    • #344: [apex] ApexCRUDViolationRule: Bug fix for ClassCastException
    • +
    • #351: [vf] Fixing regression introduced by #341
    • +
    + +

    29-April-2017 - 5.5.7

    + +

    The PMD team is pleased to announce PMD 5.5.7.

    + +

    This is a bug fixing release.

    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #364: [core] Stream closed exception when running through maven
      • +
      +
    • +
    + +

    19-April-2017 - 5.5.6

    + +

    The PMD team is pleased to announce PMD 5.5.6.

    + +

    This is a bug fixing release.

    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #324: [core] Automated release - github release notes missing
      • +
      • #337: [core] Version 5.5.4 seems to hold file lock on rules JAR (affects Windows only)
      • +
      +
    • +
    + +

    27-March-2017 - 5.5.5

    + +

    The PMD team is pleased to announce PMD 5.5.5.

    + +

    Fixed Issues

    + +
      +
    • general: +
        +
      • #305: [core] PMD not executing under git bash
      • +
      +
    • +
    • java: +
        +
      • #309: [java] Parse error on method reference
      • +
      +
    • +
    • java-design +
        +
      • #274: [java] AccessorMethodGeneration: Method inside static inner class incorrectly reported
      • +
      • #275: [java] FinalFieldCouldBeStatic: Constant in @interface incorrectly reported as “could be made static”
      • +
      • #282: [java] UnnecessaryLocalBeforeReturn false positive when cloning Maps
      • +
      • #291: [java] Improve quality of AccessorClassGeneration
      • +
      +
    • +
    • java-junit: +
        +
      • #285: [java] JUnitTestsShouldIncludeAssertRule should support @Rule as well as @Test(expected = …)
      • +
      +
    • +
    • java-optimizations: +
        +
      • #222: [java] UseStringBufferForStringAppends: False Positive with ternary operator
      • +
      +
    • +
    • java-strings: +
        +
      • #290: [java] InefficientEmptyStringCheck misses String.trim().isEmpty()
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #280: [apex] Support for Aggregate Result in CRUD rules
    • +
    • #289: [apex] Complex SOQL Crud check bug fixes
    • +
    • #296: [apex] Adding String.IsNotBlank to the whitelist to prevent False positives
    • +
    • #303: [java] InefficientEmptyStringCheckRule now reports String.trim().isEmpty()
    • +
    • #307: [java] Fix false positive with UseStringBufferForStringAppendsRule
    • +
    • #308: [java] JUnitTestsShouldIncludeAssertRule supports @Rule annotated ExpectedExceptions
    • +
    + +

    25-Februar-2017 - 5.5.4

    + +

    The PMD team is pleased to announce PMD 5.5.4

    + +

    New and noteworthy

    + +

    New Rules

    + +
    AccessorMethodGeneration (java-design)
    + +

    When accessing a private field / method from another class, the Java compiler will generate a accessor methods +with package-private visibility. This adds overhead, and to the dex method count on Android. This situation can +be avoided by changing the visibility of the field / method from private to package-private.

    + +

    For instance, it would report violations on code such as:

    + +
    public class OuterClass {
    +    private int counter;
    +    /* package */ int id;
    +
    +    public class InnerClass {
    +        InnerClass() {
    +            OuterClass.this.counter++; // wrong, accessor method will be generated
    +        }
    +
    +        public int getOuterClassId() {
    +            return OuterClass.this.id; // id is package-private, no accessor method needed
    +        }
    +    }
    +}
    +
    + +

    This new rule is part of the java-design ruleset.

    + +

    Modified Rules

    + +
      +
    • The Java rule UnusedModifier (ruleset java-unusedcode) has been expanded to consider more redundant modifiers. +
        +
      • Annotations marked as abstract.
      • +
      • Nested annotations marked as static.
      • +
      • Nested annotations within another interface or annotation marked as public.
      • +
      • Classes, interfaces or annotations nested within an annotation marked as public or static.
      • +
      • Nested enums marked as static.
      • +
      +
    • +
    • The Java rule UnnecessaryLocalBeforeReturn (ruleset java-design) no longer requires the variable declaration +and return statement to be on consecutive lines. Any variable that is used solely in a return statement will be +reported.
    • +
    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #234: [core] Zip file stream closes spuriously when loading rulesets
      • +
      • #256: [core] shortnames option is broken with relative paths
      • +
      +
    • +
    • apex-complexity +
        +
      • #251: [apex] NCSS Type length is incorrect when using method chaining
      • +
      +
    • +
    • apex-security +
        +
      • #264: [apex] ApexXSSFromURLParamRule shouldn’t enforce ESAPI usage. String.escapeHtml4 is sufficient.
      • +
      +
    • +
    • java-basic +
        +
      • #232: [java] SimplifiedTernary: Incorrect ternary operation can be simplified.
      • +
      +
    • +
    • java-coupling +
        +
      • #270: [java] LoD false positive
      • +
      +
    • +
    • java-design +
        +
      • #933: [java] UnnecessaryLocalBeforeReturn false positive for SuppressWarnings annotation
      • +
      • #1496: [java] New Rule: AccesorMethodGeneration - complements accessor class rule
      • +
      • #216: [java] [doc] NonThreadSafeSingleton: Be more explicit as to why double checked locking is not recommended
      • +
      • #219: [java] UnnecessaryLocalBeforeReturn: ClassCastException in switch case with local variable returned
      • +
      • #240: [java] UnnecessaryLocalBeforeReturn: Enhance by checking usages
      • +
      +
    • +
    • java-optimizations +
        +
      • #215: [java] RedundantFieldInitializer report for annotation field not explicitly marked as final
      • +
      +
    • +
    • java-unusedcode +
        +
      • #246: [java] UnusedModifier doesn’t check annotations
      • +
      • #247: [java] UnusedModifier doesn’t check annotations inner classes
      • +
      • #248: [java] UnusedModifier doesn’t check static keyword on nested enum declaration
      • +
      • #257: [java] UnusedLocalVariable false positive
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #227: [apex] Improving detection of getters
    • +
    • #228: [apex] Excluding count from CRUD/FLS checks
    • +
    • #229: [apex] Dynamic SOQL is safe against Integer, Boolean, Double
    • +
    • #231: [apex] CRUD/FLS rule - add support for fields
    • +
    • #266: [java] corrected invalid reporting of LoD violation
    • +
    • #268: [apex] Support safe escaping via String method
    • +
    • #273: [apex] Shade jackson on apex
    • +
    + +

    28-January-2017 - 5.5.3

    + +

    The PMD team is pleased to announce PMD 5.5.3

    + +

    The most significant changes are on analysis performance and a whole new Apex Security Rule Set.

    + +

    Multithread performance has been enhanced by reducing thread-contention on a +bunch of areas. This is still an area of work, as the speedup of running +multithreaded analysis is still relatively small (4 threads produce less +than a 50% speedup). Future releases will keep improving on this area.

    + +

    Once again, Symbol Table has been an area of great performance improvements. +This time we were able to further improve it’s performance by roughly 10% on all +supported languages. In Java in particular, several more improvements were possible, +improving Symbol Table performance by a whooping 30%, that’s over 5X faster +than PMD 5.5.1, when we first started working on it.

    + +

    Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable, +making it over 500X faster, and PreserveStackTrace which is now 7X faster.

    + +

    New and noteworthy

    + +

    Apex Security Rule Set

    + +

    A new ruleset focused on security has been added, consisting of a wide range of rules +to detect most common security problems.

    + +
    ApexBadCrypto
    + +

    The rule makes sure you are using randomly generated IVs and keys for Crypto calls. +Hard-wiring these values greatly compromises the security of encrypted data.

    + +

    For instance, it would report violations on code such as:

    + +
    public class without sharing Foo {
    +    Blob hardCodedIV = Blob.valueOf('Hardcoded IV 123');
    +    Blob hardCodedKey = Blob.valueOf('0000000000000000');
    +    Blob data = Blob.valueOf('Data to be encrypted');
    +    Blob encrypted = Crypto.encrypt('AES128', hardCodedKey, hardCodedIV, data);
    +}
    +
    +
    + +
    ApexCRUDViolation
    + +

    The rule validates you are checking for access permissions before a SOQL/SOSL/DML operation. +Since Apex runs in system mode not having proper permissions checks results in escalation of +privilege and may produce runtime errors. This check forces you to handle such scenarios.

    + +

    For example, the following code is considered valid:

    + +
    public class Foo {
    +    public Contact foo(String status, String ID) {
    +        Contact c = [SELECT Status__c FROM Contact WHERE Id=:ID];
    +
    +        // Make sure we can update the database before even trying
    +        if (!Schema.sObjectType.Contact.fields.Name.isUpdateable()) {
    +            return null;
    +        }
    +
    +        c.Status__c = status;
    +        update c;
    +        return c;
    +    }
    +}
    +
    + +
    ApexCSRF
    + +

    Check to avoid making DML operations in Apex class constructor/init method. This prevents +modification of the database just by accessing a page.

    + +

    For instance, the following code would be invalid:

    + +
    public class Foo {
    +    public init() {
    +        insert data;
    +    }
    +
    +    public Foo() {
    +        insert data;
    +    }
    +}
    +
    + +
    ApexDangerousMethods
    + +

    Checks against calling dangerous methods.

    + +

    For the time being, it reports:

    + +
      +
    • Against FinancialForce’s Configuration.disableTriggerCRUDSecurity(). Disabling CRUD security +opens the door to several attacks and requires manual validation, which is unreliable.
    • +
    • Calling System.debug passing sensitive data as parameter, which could lead to exposure +of private data.
    • +
    + +
    ApexInsecureEndpoint
    + +

    Checks against accessing endpoints under plain http. You should always use +https for security.

    + +
    ApexOpenRedirect
    + +

    Checks against redirects to user-controlled locations. This prevents attackers from +redirecting users to phishing sites.

    + +

    For instance, the following code would be reported:

    + +
    public class without sharing Foo {
    +    String unsafeLocation = ApexPage.getCurrentPage().getParameters.get('url_param');
    +    PageReference page() {
    +       return new PageReference(unsafeLocation);
    +    }
    +}
    +
    + +
    ApexSharingViolations
    + +

    Detect classes declared without explicit sharing mode if DML methods are used. This +forces the developer to take access restrictions into account before modifying objects.

    + +
    ApexSOQLInjection
    + +

    Detects the usage of untrusted / unescaped variables in DML queries.

    + +

    For instance, it would report on:

    + +
    public class Foo {
    +    public void test1(String t1) {
    +        Database.query('SELECT Id FROM Account' + t1);
    +    }
    +}
    +
    + +
    ApexSuggestUsingNamedCred
    + +

    Detects hardcoded credentials used in requests to an endpoint.

    + +

    You should refrain from hardcoding credentials:

    +
      +
    • They are hard to mantain by being mixed in application code
    • +
    • Particularly hard to update them when used from different classes
    • +
    • Granting a developer access to the codebase means granting knowledge + of credentials, keeping a two-level access is not possible.
    • +
    • Using different credentials for different environments is troublesome + and error-prone.
    • +
    + +

    Instead, you should use Named Credentials and a callout endpoint.

    + +

    For more information, you can check this

    + +
    ApexXSSFromEscapeFalse
    + +

    Reports on calls to addError with disabled escaping. The message passed to addError +will be displayed directly to the user in the UI, making it prime ground for XSS +attacks if unescaped.

    + +
    ApexXSSFromURLParam
    + +

    Makes sure that all values obtained from URL parameters are properly escaped / sanitized +to avoid XSS attacks.

    + +

    Modified Rules

    + +

    The Java rule “UseLocaleWithCaseConversions” (ruleset java-design) has been modified, to detect calls +to toLowerCase and to toUpperCase also within method call chains. This leads to more detected cases +and potentially new false positives. +See also bugfix #1556.

    + +

    Fixed Issues

    + +
      +
    • General +
        +
      • #1511: [core] Inconsistent behavior of Rule.start/Rule.end
      • +
      +
    • +
    • apex-apexunit +
        +
      • #1543: [apex] ApexUnitTestClassShouldHaveAsserts assumes APEX is case sensitive
      • +
      +
    • +
    • apex-complexity +
        +
      • #183: [apex] NCSS Method length is incorrect when using method chaining
      • +
      +
    • +
    • java +
        +
      • #185: [java] CPD runs into NPE when analyzing Lucene
      • +
      • #206: [java] Parse error on annotation fields with generics
      • +
      • #207: [java] Parse error on method reference with generics
      • +
      • #208: [java] Parse error with local class with 2 or more annotations
      • +
      • #213: [java] CPD: OutOfMemory when analyzing Lucene
      • +
      • #1542: [java] CPD throws an NPE when parsing enums with -ignore-identifiers
      • +
      • #1545: [java] Symbol Table fails to resolve inner classes
      • +
      +
    • +
    • java-design +
        +
      • #1448: [java] ImmutableField: Private field in inner class gives false positive with lambdas
      • +
      • #1495: [java] UnnecessaryLocalBeforeReturn with assert
      • +
      • #1552: [java] MissingBreakInSwitch - False positive for continue
      • +
      • #1556: [java] UseLocaleWithCaseConversions does not works with ResultSet (false negative)
      • +
      • #177: [java] SingularField with lambdas as final fields
      • +
      +
    • +
    • java-imports +
        +
      • #1546: [java] UnnecessaryFullyQualifiedNameRule doesn’t take into consideration conflict resolution
      • +
      • #1547: [java] UnusedImportRule - False Positive for only usage in Javadoc - {@link ClassName#CONSTANT}
      • +
      • #1555: [java] UnnecessaryFullyQualifiedName: Really necessary fully qualified name
      • +
      +
    • +
    • java-logging-java +
        +
      • #1541: [java] InvalidSlf4jMessageFormat: False positive with placeholder and exception
      • +
      • #1551: [java] InvalidSlf4jMessageFormat: fails with NPE
      • +
      +
    • +
    • java-unnecessary +
        +
      • #199: [java] UselessParentheses: Parentheses in return statement are incorrectly reported as useless
      • +
      +
    • +
    • java-strings +
        +
      • #202: [java] [doc] ConsecutiveAppendsShouldReuse is not really an optimization
      • +
      +
    • +
    • XML +
        +
      • #1518: [xml] Error while processing xml file with “.webapp” in the file or directory name
      • +
      +
    • +
    • psql +
        +
      • #1549: [plsql] Parse error for IS [NOT] NULL construct
      • +
      +
    • +
    • javascript +
        +
      • #201: [javascript] template strings are not correctly parsed
      • +
      +
    • +
    + +

    API Changes

    + +
      +
    • net.sourceforge.pmd.RuleSetFactory is now immutable and its behavior cannot be changed anymore. +It provides constructors to create new adjusted instances. This allows to avoid synchronization in RuleSetFactory. +See PR #131.
    • +
    + +

    External Contributions

    + +
      +
    • #123: [apex] Changing method names to lowercase so casing doesn’t matter
    • +
    • #129: [plsql] Added correct parse of IS [NOT] NULL and multiline DML
    • +
    • #137: [apex] Adjusted remediation points
    • +
    • #146: [apex] Detection of missing Apex CRUD checks for SOQL/DML operations
    • +
    • #147: [apex] Adding XSS detection to return statements
    • +
    • #148: [apex] Improving detection of SOQL injection
    • +
    • #149: [apex] Whitelisting String.isEmpty and casting
    • +
    • #152: [java] fixes #1552 continue does not require break
    • +
    • #154: [java] Fix #1547: UnusedImports: Adjust regex to support underscores
    • +
    • #158: [apex] Reducing FPs in SOQL with VF getter methods
    • +
    • #160: [apex] Flagging of dangerous method call
    • +
    • #163: [apex] Flagging of System.debug
    • +
    • #165: [apex] Improving open redirect rule to avoid test classes/methods
    • +
    • #167: [apex] GC and thread safety changes
    • +
    • #169: [apex] Improving detection for DML with inline new object
    • +
    • #170: [core] Ant Task Formatter encoding issue with XMLRenderer
    • +
    • #172: [apex] Bug fix, detects both Apex fields and class members
    • +
    • #175: [apex] ApexXSSFromURLParam: Adding missing casting methods
    • +
    • #176: [apex] Bug fix for FP: open redirect for strings prefixed with / is safe
    • +
    • #179: [apex] Legacy test class declaration support
    • +
    • #181: [apex] Control flow based CRUD rule checking
    • +
    • #184: [apex] Improving open redirect detection for static fields & assignment operations
    • +
    • #189: [apex] Bug fix of SOQL concatenated vars detection
    • +
    • #191: [apex] Detection of sharing violation when Database. methods are used
    • +
    • #192: [apex] Dead code removal
    • +
    • #200: [javascript] Templatestring grammar fix
    • +
    • #204: [apex] Sharing violation SOQL detection bug fix
    • +
    • #214: [apex] Sharing violation improving reporting of the correct node, de-duping
    • +
    + +

    05-November-2016 - 5.5.2

    + +

    Summary:

    + +
      +
    • 1 new language for CPD: Groovy
    • +
    • 1 new rule: plsql-strictsyntax/MisplacedPragma
    • +
    • 12 pull requests
    • +
    • 17 bug fixes
    • +
    + +

    New Supported Languages:

    + +
      +
    • CPD now supports Groovy. See PR#107.
    • +
    + +

    Feature Requests and Improvements:

    + +
      +
    • plsql +
        +
      • #1539: [plsql] Create new rule for strict syntax checking: MisplacedPragma
      • +
      +
    • +
    + +

    New Rules:

    + +
      +
    • New Rules for plsql +
        +
      • plsql-strictsyntax: MisplacedPragma
      • +
      +
    • +
    + +

    Pull Requests:

    + +
      +
    • #106: [java] CPD: Keep constructor names under ignoreIdentifiers
    • +
    • #107: [groovy] Initial support for CPD Groovy
    • +
    • #110: [java] Fix parser error (issue 1530)
    • +
    • #111: [java] Fix BooleanInstantiationRule for Java 8
    • +
    • #112: [java] Fix ClassCastException on CloneMethodMustImplementCloneable
    • +
    • #113: [java] Fix ClassCastException on SignatureDeclareThrowsException
    • +
    • #114: [core] Remove multihreading workaround for JRE5, as no PMD version supports running on JRE5 anymore
    • +
    • #115: [java] Simplify lambda parsing
    • +
    • #116: [core] [java] Improve collection usage
    • +
    • #117: [java] Improve symboltable performance
    • +
    • #118: [java] Simplify VariableDeclaratorId parsing
    • +
    • #119: [plsql] Fix PMD issue 1531- endless loop followed by OOM while parsing (PL)SQL
    • +
    + +

    Bugfixes:

    + +
      +
    • apex-apexunit +
        +
      • #1521: [apex] ApexUnitTestClassShouldHaveAsserts: Parsing error on APEX class: expected one element but was: <BlockStatement, BlockStatement>
      • +
      +
    • +
    • Java +
        +
      • #1530: [java] Parser exception on Java code
      • +
      • #1490: [java] PMD Error while processing - NullPointerException
      • +
      +
    • +
    • java-basic/BooleanInstantiation +
        +
      • #1533: [java] BooleanInstantiation: ClassCastException with Annotation
      • +
      +
    • +
    • java-comments +
        +
      • #1522: [java] CommentRequired: false positive
      • +
      +
    • +
    • java-design/SingularField +
        +
      • #1494: [java] SingularField: lombok.Data false positive
      • +
      +
    • +
    • java-imports/UnusedImports +
        +
      • #1529: [java] UnusedImports: The created rule violation has no class name
      • +
      +
    • +
    • java-logging-java +
        +
      • #1500 [java] InvalidSlf4jMessageFormat: doesn’t ignore exception param
      • +
      • #1509 [java] InvalidSlf4jMessageFormat: NPE
      • +
      +
    • +
    • java-typeresolution/CloneMethodMustImplementCloneable +
        +
      • #1532: [java] CloneMethodMustImplementCloneable: Implemented Interface extends Cloneable
      • +
      • #1534: [java] CloneMethodMustImplementCloneable: ClassCastException with Annotation (java8)
      • +
      +
    • +
    • java-typeresolution/SignatureDeclareThrowsException +
        +
      • #1535: [java] SignatureDeclareThrowsException: ClassCastException with Annotation
      • +
      +
    • +
    • PLSQL +
        +
      • #1520: [plsql] Missing PL/SQL language constructs in parser: Is Of Type, Using
      • +
      • #1527: [plsql] PRAGMA AUTONOMOUS_TRANSACTION gives processing errors
      • +
      • #1531: [plsql] OOM/Endless loop while parsing (PL)SQL
      • +
      +
    • +
    • General +
        +
      • #1506: [core] When runing any RuleTst, start/end methods not called
      • +
      • #1517: [java] CPD reports on Java constructors when using ignoreIdentifiers
      • +
      +
    • +
    + +

    27-July-2016 - 5.5.1

    + +

    New Rules:

    + +
      +
    • New rules for Salesforce.com Apex: +
        +
      • apex-apexunit: ApexUnitTestClassShouldHaveAsserts, ApexUnitTestShouldNotUseSeeAllDataTrue
      • +
      +
    • +
    + +

    Pull Requests:

    + +
      +
    • #101: [java] Improve multithreading performance: do not lock on classloader
    • +
    • #102: [apex] Restrict AvoidLogicInTrigger rule to max. 1 violation per file
    • +
    • #103: [java] [apex] Fix for 1501: CyclomaticComplexity rule causes OOM when class reporting is disabled
    • +
    • #104: [core] [java] Close opened file handles
    • +
    • apex #43: [apex] Basic apex unit test rules
    • +
    + +

    Bugfixes:

    + +
      +
    • Apex +
        +
      • #1501: [java] [apex] CyclomaticComplexity rule causes OOM when class reporting is disabled
      • +
      +
    • +
    • Java +
        +
      • #1501: [java] [apex] CyclomaticComplexity rule causes OOM when class reporting is disabled
      • +
      +
    • +
    • General +
        +
      • #1499: [core] CPD test break PMD 5.5.1 build on Windows
      • +
      • #1508: [core] [java] PMD is leaking file handles
      • +
      +
    • +
    + +

    25-June-2016 - 5.5.0

    + +

    System requirements:

    + +

    PMD and CPD need at least a java7 runtime environment. For analyzing Salesforce.com Apex source code, +you’ll need a java8 runtime environment.

    + +

    New Supported Languages:

    + +
      +
    • Salesforce.com Apex is now supported by PMD and CPD. See PR#86.
    • +
    • CPD now supports Perl. See PR#82.
    • +
    • CPD now supports Swift. See PR#33.
    • +
    + +

    New and modified Rules:

    + +
      +
    • New rules in Java: +
        +
      • java-logging-java/InvalidSlf4jMessageFormat: Check for invalid message format in slf4j loggers. +See PR#73.
      • +
      • java-design/ConstantsInInterface: Avoid constants in interfaces. +Interfaces should define types, constants are implementation details +better placed in classes or enums. See Effective Java, item 19. +See PR#93.
      • +
      +
    • +
    • Modified rules in Java: +
        +
      • java-comments/CommentRequired: New property serialVersionUIDCommentRequired which controls the comment requirements +for serialVersionUID fields. By default, no comment is required for this field.
      • +
      • java-design/UseVargs: public static void main method is ignored now and so are methods, that are annotated +with Override. See PR#79.
      • +
      +
    • +
    • New rules for Salesforce.com Apex: +
        +
      • apex-complexity: AvoidDeeplyNestedIfStmts, ExcessiveParameterList, ExcessiveClassLength, +NcssMethodCount, NcssTypeCount, NcssConstructorCount, StdCyclomaticComplexity, +TooManyFields, ExcessivePublicCount
      • +
      • apex-performance: AvoidDmlStatementsInLoops, AvoidSoqlInLoops
      • +
      • apex-style: VariableNamingConventions, MethodNamingConventions, ClassNamingConventions, +MethodWithSameNameAsEnclosingClass, AvoidLogicInTrigger, AvoidGlobalModifier
      • +
      +
    • +
    • Javascript +
        +
      • New Rule: ecmascript-unnecessary/NoElseReturn: The else block in a if-else-construct is +unnecessary if the if block contains a return. Then the content of the else block can be +put outside. See #1486.
      • +
      +
    • +
    + +

    Improvements and CLI changes:

    + +
      +
    • A JSON-renderer for PMD which is compatible with CodeClimate. See PR#83.
    • +
    • #1360: [core] [java] Provide backwards compatibility for PMD configuration file
    • +
    • CPD: If a complete filename is specified, the language dependent filename filter is not applied. This allows +to scan files, that are not using the standard file extension. If a directory is specified, the filename filter +is still applied and only those files with the correct file extension of the language are scanned.
    • +
    • CPD: If no problems found, an empty report will be output instead of nothing. See also #1481
    • +
    • CPD: New command line parameter --ignore-usings: Ignore using directives in C# when comparing text.
    • +
    • PMD: New command line parameter: -norulesetcompatibility - this disables the ruleset factory +compatibility filter and fails, if e.g. an old rule name is used in the ruleset. +See also #1360. +This option is also available for the ant task: <noRuleSetCompatibility>true</noRuleSetCompatibility>.
    • +
    • PMD: New command line parameter: -filelist- this provides an alternative way to define, which +files should be process by PMD. With this option, you can provide the path to a single file containing a comma +delimited list of files to analyze. If this is given, then you don’t need to provide -dir. +See PR#98.
    • +
    + +

    Pull Requests:

    + +
      +
    • #25: [cs] Added option to exclude C# using directives from CPD analysis
    • +
    • #27: [cpp] Added support for Raw String Literals (C++11).
    • +
    • [#29)(https://github.com/adangel/pmd/pull/29): [jsp] Added support for files with UTF-8 BOM to JSP tokenizer.
    • +
    • #30: [core] CPD: Removed file filter for files that are explicitly specified on the CPD command line using the ‘–files’ command line option.
    • +
    • #31: [core] CPD: Added file encoding detection to CPD.
    • +
    • #32: [objectivec] Extended Objective-C grammar to accept UTF-8 escapes (\uXXXX) in string literals.
    • +
    • #33: [swift] Added support for Swift to CPD.
    • +
    • #34: multiple code improvements: squid:S1192, squid:S1118, squid:S1066, squid:S1854, squid:S2864
    • +
    • #35: [javascript] Javascript tokenizer now ignores comment tokens.
    • +
    • #72: [java] [jsp] Added capability in Java and JSP parser for tracking tokens.
    • +
    • #73: [java] InvalidSlf4jMessageFormat: Add rule to look for invalid message format in slf4j loggers
    • +
    • #74: [java] CommentDefaultAccessModifier: Fix rendering CommentDefaultAccessModifier description as code
    • +
    • #75: [core] RuleSetFactory Performance Enhancement
    • +
    • #76: [java] DoNotCallGarbageCollectionExplicitly: fix formatting typos in an example
    • +
    • #77: [java] [plsql] Fix various typos
    • +
    • #78: [java] MissingStaticMethodInNonInstantiatableClass: Add Builder pattern check
    • +
    • #79: [java] UseVarargs: do not flag public static void main(String[]), ignore @Override
    • +
    • #80: [site] Update mvn-plugin.md
    • +
    • #82: [perl] Add Perl support to CPD.
    • +
    • #83: [core] CodeClimateRenderer: Adds new Code Climate-compliant JSON renderer
    • +
    • #84: [java] EmptyMethodInAbstractClassShouldBeAbstract: Change rule’s description.
    • +
    • #85: [java] UseStringBufferForStringAppends: False Positive with Ternary Operator (#1340)
    • +
    • #86: [apex] Added language module for Salesforce.com Apex incl. rules ported from Java and new ones.
    • +
    • #87: [core] [apex] Customize Code Climate Json “categories” + “remediation_points” as PMD rule properties
    • +
    • #88: [core] [apex] Fixed typo in ruleset.xml and problems with the CodeClimate renderer
    • +
    • #89: [core] Some code enhancements
    • +
    • #90: [core] Refactored two test to stop using the deprecated ant class BuildFileTest
    • +
    • #91: [core] [java] [jsp] [plsql] [test] [vm] Small code enhancements, basically reordering variable declarations, constructors and variable modifiers
    • +
    • #92: [core] [apex] Improved Code Climate Renderer Output and a Bugfix for Apex StdCyclomaticComplexityRule on triggers
    • +
    • #93: [java] ConstantsInInterface: Add ConstantsInInterface rule. Effective Java, 19
    • +
    • #94: [core] [apex] Added property, fixed code climate renderer output and deleted unused rulessets
    • +
    • #95: [apex] AvoidDmlStatementsInLoops: New apex rule AvoidDmlStatementsInLoops
    • +
    • #96: [core] CodeClimateRenderer: Clean up Code Climate renderer
    • +
    • #97: [java] BooleanGetMethodName: Don’t report bad method names on @Override
    • +
    • #98: [core] PMD: Input filelist parameter
    • +
    • #99: [apex] Fixed Trigger name is reported incorrectly
    • +
    • #100: [core] CSVRenderer: escape filenames with commas in csvrenderer
    • +
    + +

    Bugfixes:

    + +
      +
    • java-basic +
        +
      • #1471: [java] DoubleCheckedLocking: False positives
      • +
      • #1424: [java] SimplifiedTernary: False positive with ternary operator
      • +
      +
    • +
    • java-codesize +
        +
      • #1457: [java] TooManyMethods: counts inner class methods
      • +
      +
    • +
    • java-comments +
        +
      • #1430: [java] CommentDefaultAccessModifier: triggers on field +annotated with @VisibleForTesting
      • +
      • #1434: [java] CommentRequired: raises violation on serialVersionUID field
      • +
      +
    • +
    • java-controversial +
        +
      • #1449: [java] AvoidUsingShortType: false positive when casting a variable to short
      • +
      +
    • +
    • java-design +
        +
      • #1452: [java] AccessorClassGenerationRule: ArrayIndexOutOfBoundsException with Annotations
      • +
      • #1479: [java] CloseResource: false positive on Statement
      • +
      • #1438: [java] UseNotifyAllInsteadOfNotify: false positive
      • +
      • #1467: [java] UseUtilityClass: can’t correctly check functions with multiple annotations
      • +
      +
    • +
    • java-finalizers +
        +
      • #1440: [java] AvoidCallingFinalize: NPE
      • +
      +
    • +
    • java-imports +
        +
      • #1436: [java] UnnecessaryFullyQualifiedName: false positive on clashing static imports with enums
      • +
      • #1465: [java] UnusedImports: False Positve with javadoc @link
      • +
      +
    • +
    • java-junit +
        +
      • #1373: [java] JUnitAssertionsShouldIncludeMessage: is no longer compatible with TestNG
      • +
      • #1453: [java] TestClassWithoutTestCases: false positive
      • +
      +
    • +
    • java-migrating +
        +
      • #1446: [java] JUnit4TestShouldUseBeforeAnnotation: False positive when TestNG is used
      • +
      +
    • +
    • java-naming +
        +
      • #1431: [java] SuspiciousEqualsMethodName: false positive
      • +
      +
    • +
    • java-optimizations +
        +
      • #1443: [java] RedundantFieldInitializer: False positive for small floats
      • +
      • #1340: [java] UseStringBufferForStringAppends: False Positive with ternary operator
      • +
      +
    • +
    • java-sunsecure +
        +
      • #1476: [java] ArrayIsStoredDirectly: False positive
      • +
      • #1475: [java] MethodReturnsInternalArray: False positive
      • +
      +
    • +
    • java-unnecessary +
        +
      • #1464: [java] UnnecessaryFinalModifier: false positive on a @SafeVarargs method
      • +
      • #1422: [java] UselessQualifiedThis: False positive with Java 8 Function
      • +
      +
    • +
    • java-unusedcode +
        +
      • #1456: [java] UnusedFormalParameter: should ignore overriding methods
      • +
      • #1484: [java] UnusedLocalVariable: false positive - parenthesis
      • +
      • #1480: [java] UnusedModifier: false positive on public modifier used with inner interface in enum
      • +
      • #1428: [java] UnusedPrivateField: False positive when local variable hides member variable +hides member variable
      • +
      +
    • +
    • General +
        +
      • #1425: [core] XMLRenderer: Invalid XML Characters in Output
      • +
      • #1429: [java] Parser Error: Cast in return expression
      • +
      • #1441: [site] PMD: Update documentation how to compile after modularization
      • +
      • #1442: [java] PDMASMClassLoader: Java 9 Jigsaw readiness
      • +
      • #1455: [java] Parser: PMD doesn’t handle Java 8 explicit receiver parameters
      • +
      • #1458: [xml] Performance degradation scanning large XML files with XPath custom rules
      • +
      • #1461: [core] RuleSetFactory: Possible threading issue due to PR#75
      • +
      • #1470: [java] Parser: Error with type-bound lambda
      • +
      • #1478: [core] PMD CLI: Use first language as default if Java is not available
      • +
      • #1481: [core] CPD: no problems found results in blank file instead of empty xml
      • +
      • #1485: [apex] Analysis of some apex classes cause a stackoverflow error
      • +
      • #1488: [apex] Windows line endings falsify the location of issues
      • +
      • #1491: [core] CodeClimateRenderer: corrupt JSON output with real line breaks
      • +
      • #1492: [core] PMD CLI: IncompatibleClassChangeError when running PMD
      • +
      +
    • +
    + +

    27-March-2017 - 5.4.6

    + +

    The PMD team is pleased to announce PMD 5.4.6.

    + +

    This is a bug fixing release.

    + +

    Table Of Contents

    + + + +

    Fixed Issues

    + +
      +
    • general: +
        +
      • #305: [core] PMD not executing under git bash
      • +
      +
    • +
    • java: +
        +
      • #309: [java] Parse error on method reference
      • +
      +
    • +
    • java-design: +
        +
      • #275: [java] FinalFieldCouldBeStatic: Constant in @interface incorrectly reported as “could be made static”
      • +
      +
    • +
    • java-junit: +
        +
      • #285: [java] JUnitTestsShouldIncludeAssertRule should support @Rule as well as @Test(expected = …)
      • +
      +
    • +
    • java-optimizations: +
        +
      • #222: [java] UseStringBufferForStringAppends: False Positive with ternary operator
      • +
      +
    • +
    • java-strings: +
        +
      • #290: [java] InefficientEmptyStringCheck misses String.trim().isEmpty()
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #303: [java] InefficientEmptyStringCheckRule now reports String.trim().isEmpty()
    • +
    • #307: [java] Fix false positive with UseStringBufferForStringAppendsRule
    • +
    • #308: [java] JUnitTestsShouldIncludeAssertRule supports @Rule annotated ExpectedExceptions
    • +
    + +

    25-Februar-2017 - 5.4.5

    + +

    The PMD team is pleased to announce PMD 5.4.5

    + +

    This is a bug fixing release.

    + +

    Table Of Contents

    + + + +

    New and noteworthy

    + +

    Modified Rules

    + +
      +
    • The Java rule UnusedModifier (ruleset java-unusedcode) has been expanded to consider more redundant modifiers. +
        +
      • Annotations marked as abstract.
      • +
      • Nested annotations marked as static.
      • +
      • Nested annotations within another interface or annotation marked as public.
      • +
      • Classes, interfaces or annotations nested within an annotation marked as public or static.
      • +
      • Nested enums marked as static.
      • +
      +
    • +
    + +

    Fixed Issues

    + +
      +
    • general +
        +
      • #234: [core] Zip file stream closes spuriously when loading rulesets
      • +
      • #256: [core] shortnames option is broken with relative paths
      • +
      +
    • +
    • java-basic +
        +
      • #232: [java] SimplifiedTernary: Incorrect ternary operation can be simplified.
      • +
      +
    • +
    • java-coupling +
        +
      • #270: [java] LoD false positive
      • +
      +
    • +
    • java-design +
        +
      • #216: [java] [doc] NonThreadSafeSingleton: Be more explicit as to why double checked locking is not recommended
      • +
      • #219: [java] UnnecessaryLocalBeforeReturn: ClassCastException in switch case with local variable returned
      • +
      +
    • +
    • java-optimizations +
        +
      • #215: [java] RedundantFieldInitializer report for annotation field not explicitly marked as final
      • +
      +
    • +
    • java-unusedcode +
        +
      • #246: [java] UnusedModifier doesn’t check annotations
      • +
      • #247: [java] UnusedModifier doesn’t check annotations inner classes
      • +
      • #248: [java] UnusedModifier doesn’t check static keyword on nested enum declaration
      • +
      • #257: [java] UnusedLocalVariable false positive
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #266: [java] corrected invalid reporting of LoD violation
    • +
    + +

    28-January-2017 - 5.4.4

    + +

    The PMD team is pleased to announce PMD 5.4.4

    + +

    This is a bug fixing release. The most significant changes are on analysis performance.

    + +

    Multithread performance has been enhanced by reducing thread-contention on a +bunch of areas. This is still an area of work, as the speedup of running +multithreaded analysis is still relatively small (4 threads produce less +than a 50% speedup). Future releases will keep improving on this area.

    + +

    Once again, Symbol Table has been an area of great performance improvements. +This time we were able to further improve it’s performance by roughly 10% on all +supported languages. In Java in particular, several more improvements were possible, +improving Symbol Table performance by a whooping 30%, that’s over 5X faster +than PMD 5.4.2, when we first started working on it.

    + +

    Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable, +making it over 500X faster, and PreserveStackTrace which is now 7X faster.

    + +

    New and noteworthy

    + +

    This is a bug fixing release, no major changes were introduced.

    + +

    Modified Rules

    + +

    The Java rule “UseLocaleWithCaseConversions” (ruleset java-design) has been modified, to detect calls +to toLowerCase and to toUpperCase also within method call chains. This leads to more detected cases +and potentially new false positives. +See also bugfix #1556.

    + +

    Fixed Issues

    + +
      +
    • java +
        +
      • #206: [java] Parse error on annotation fields with generics
      • +
      • #207: [java] Parse error on method reference with generics
      • +
      • #208: [java] Parse error with local class with 2 or more annotations
      • +
      • #213: [java] CPD: OutOfMemory when analyzing Lucene
      • +
      +
    • +
    • java-design +
        +
      • #1448: [java] ImmutableField: Private field in inner class gives false positive with lambdas
      • +
      • #1495: [java] UnnecessaryLocalBeforeReturn with assert
      • +
      • #1552: [java] MissingBreakInSwitch - False positive for continue
      • +
      • #1556: [java] UseLocaleWithCaseConversions does not works with ResultSet (false negative)
      • +
      • #177: [java] SingularField with lambdas as final fields
      • +
      +
    • +
    • java-imports +
        +
      • #1546: [java] UnnecessaryFullyQualifiedNameRule doesn’t take into consideration conflict resolution
      • +
      • #1547: [java] UnusedImportRule - False Positive for only usage in Javadoc - {@link ClassName#CONSTANT}
      • +
      • #1555: [java] UnnecessaryFullyQualifiedName: Really necessary fully qualified name
      • +
      +
    • +
    • java-unnecessary +
        +
      • #199: [java] UselessParentheses: Parentheses in return statement are incorrectly reported as useless
      • +
      +
    • +
    • java-strings +
        +
      • #202: [java] [doc] ConsecutiveAppendsShouldReuse is not really an optimization
      • +
      +
    • +
    • XML +
        +
      • #1518: [xml] Error while processing xml file with “.webapp” in the file or directory name
      • +
      +
    • +
    • psql +
        +
      • #1549: [plsql] Parse error for IS [NOT] NULL construct
      • +
      +
    • +
    • javascript +
        +
      • #201: [javascript] template strings are not correctly parsed
      • +
      +
    • +
    • General +
        +
      • #1511: [core] Inconsistent behavior of Rule.start/Rule.end
      • +
      +
    • +
    + +

    External Contributions

    + +
      +
    • #129: [plsql] Added correct parse of IS [NOT] NULL and multiline DML
    • +
    • #152: [java] fixes #1552 continue does not require break
    • +
    • #154: [java] Fix #1547: UnusedImports: Adjust regex to support underscores
    • +
    • #170: [core] Ant Task Formatter encoding issue with XMLRenderer
    • +
    • #200: [javascript] Templatestring grammar fix
    • +
    + +

    04-November-2016 - 5.4.3

    + +

    Summary:

    + +
      +
    • 7 pull requests
    • +
    • 16 bug fixes
    • +
    + +

    Pull Requests:

    + +
      +
    • #35: [javascript] Javascript tokenizer now ignores comment tokens.
    • +
    • #103: [java] Fix for 1501: CyclomaticComplexity rule causes OOM when class reporting is disabled
    • +
    • #110: [java] Fix parser error (issue 1530)
    • +
    • #111: [java] Fix BooleanInstantiationRule for Java 8
    • +
    • #112: [java] Fix ClassCastException on CloneMethodMustImplementCloneable
    • +
    • #113: [java] Fix ClassCastException on SignatureDeclareThrowsException
    • +
    • #119: [plsql] Fix PMD issue 1531- endless loop followed by OOM while parsing (PL)SQL
    • +
    + +

    Bugfixes:

    + +
      +
    • Java +
        +
      • #1501: [java] CyclomaticComplexity rule causes OOM when class reporting is disabled
      • +
      • #1530: [java] Parser exception on Java code
      • +
      • #1490: [java] PMD Error while processing - NullPointerException
      • +
      +
    • +
    • java-basic/BooleanInstantiation +
        +
      • #1533: [java] BooleanInstantiation: ClassCastException with Annotation
      • +
      +
    • +
    • java-comments +
        +
      • #1522: [java] CommentRequired: false positive
      • +
      +
    • +
    • java-design/SingularField +
        +
      • #1494: [java] SingularField: lombok.Data false positive
      • +
      +
    • +
    • java-imports/UnusedImports +
        +
      • #1529: [java] UnusedImports: The created rule violation has no class name
      • +
      +
    • +
    • java-typeresolution/CloneMethodMustImplementCloneable +
        +
      • #1532: [java] CloneMethodMustImplementCloneable: Implemented Interface extends Cloneable
      • +
      • #1534: [java] CloneMethodMustImplementCloneable: ClassCastException with Annotation (java8)
      • +
      +
    • +
    • java-typeresolution/SignatureDeclareThrowsException +
        +
      • #1535: [java] SignatureDeclareThrowsException: ClassCastException with Annotation
      • +
      +
    • +
    • PLSQL +
        +
      • #1520: [plsql] Missing PL/SQL language constructs in parser: Is Of Type, Using
      • +
      • #1527: [plsql] PRAGMA AUTONOMOUS_TRANSACTION gives processing errors
      • +
      • #1531: [plsql] OOM/Endless loop while parsing (PL)SQL
      • +
      +
    • +
    • General +
        +
      • #1499: [core] CPD test break PMD 5.5.1 build on Windows
      • +
      • #1506: [core] When runing any RuleTst, start/end methods not called
      • +
      • #1508: [core] [java] PMD is leaking file handles
      • +
      +
    • +
    + +

    29-May-2016 - 5.4.2

    + +

    New Supported Languages:

    + +
      +
    • CPD supports now Swift (see PR#33).
    • +
    + +

    Feature Request and Improvements:

    + +
      +
    • A JSON-renderer for PMD which is compatible with CodeClimate. See PR#83.
    • +
    • #1360: Provide backwards compatibility for PMD configuration file
    • +
    + +

    Modified Rules:

    + +
      +
    • java-design/UseVargs: public static void main method is ignored now and so are methods, that are annotated +with Override. See PR#79.
    • +
    + +

    Pull Requests:

    + +
      +
    • #27: Added support for Raw String Literals (C++11).
    • +
    • #29: Added support for files with UTF-8 BOM to JSP tokenizer.
    • +
    • #30: Removed file filter for files that are explicitly specified on the CPD command line using the ‘–files’ command line option.
    • +
    • #31: Added file encoding detection to CPD.
    • +
    • #32: Extended Objective-C grammar to accept UTF-8 escapes (\uXXXX) in string literals.
    • +
    • #33: Added support for Swift to CPD.
    • +
    • #79: do not flag public static void main(String[]) as UseVarargs; ignore @Override for UseVarargs
    • +
    • #80: Update mvn-plugin.md
    • +
    • #83: Adds new Code Climate-compliant JSON renderer
    • +
    • #85: #1340 UseStringBufferForStringAppends False Positive with Ternary Operator
    • +
    + +

    Bugfixes:

    + +
      +
    • java-basic/DoubleCheckedLocking: +
        +
      • #1471: False positives for DoubleCheckedLocking
      • +
      +
    • +
    • java-basic/SimplifiedTernary: +
        +
      • #1424: False positive with ternary operator
      • +
      +
    • +
    • java-codesize/TooManyMethods: +
        +
      • #1457: TooManyMethods counts inner class methods
      • +
      +
    • +
    • java-controversial/AvoidUsingShortType: +
        +
      • #1449: false positive when casting a variable to short
      • +
      +
    • +
    • java-design/AccessorClassGeneration: +
        +
      • #1452: ArrayIndexOutOfBoundsException with Annotations for AccessorClassGenerationRule
      • +
      +
    • +
    • java-design/CloseResource +
        +
      • #1479: CloseResource false positive on Statement
      • +
      +
    • +
    • java-design/UseUtilityClass: +
        +
      • #1467: UseUtilityClass can’t correctly check functions with multiple annotations
      • +
      +
    • +
    • java-imports/UnusedImports: +
        +
      • #1465: False Positve UnusedImports with javadoc @link
      • +
      +
    • +
    • java-junit/TestClassWithoutTestCases: +
        +
      • #1453: Test Class Without Test Cases gives false positive
      • +
      +
    • +
    • java-optimizations/UseStringBufferForStringAppends: +
        +
      • #1340: UseStringBufferForStringAppends False Positive with ternary operator
      • +
      +
    • +
    • java-sunsecure/ArrayIsStoredDirectly: +
        +
      • #1475: False positive of MethodReturnsInternalArray
      • +
      • #1476: False positive of ArrayIsStoredDirectly
      • +
      +
    • +
    • java-unnecessary/UnnecessaryFinalModifier: +
        +
      • #1464: UnnecessaryFinalModifier false positive on a @SafeVarargs method
      • +
      +
    • +
    • java-unusedcode/UnusedFormalParameter: +
        +
      • #1456: UnusedFormalParameter should ignore overriding methods
      • +
      +
    • +
    • java-unusedcode/UnusedLocalVariable +
        +
      • #1484: UnusedLocalVariable - false positive - parenthesis
      • +
      +
    • +
    • java-unusedcode/UnusedModifier +
        +
      • #1480: false positive on public modifier used with inner interface in enum
      • +
      +
    • +
    • General +
        +
      • #1455: PMD doesn’t handle Java 8 explicit receiver parameters
      • +
      • #1458: Performance degradation scanning large XML files with XPath custom rules
      • +
      • #1461: Possible threading issue due to PR#75
      • +
      • #1470: Error with type-bound lambda
      • +
      • #1481: no problems found results in blank file instead of empty xml
      • +
      +
    • +
    + +

    CLI Changes:

    + +
      +
    • CPD: If a complete filename is specified, the language dependent filename filter is not applied. This allows +to scan files, that are not using the standard file extension. If a directory is specified, the filename filter +is still applied and only those files with the correct file extension of the language are scanned.
    • +
    • CPD: If no problems found, an empty report will be output instead of nothing. See also #1481
    • +
    • New command line parameter for PMD: -norulesetcompatibility - this disables the ruleset factory +compatibility filter and fails, if e.g. an old rule name is used in the ruleset. +See also #1360. +This option is also available for the ant task: <noRuleSetCompatibility>true</noRuleSetCompatibility>.
    • +
    + +

    04-December-2015 - 5.4.1

    + +

    Feature Request and Improvements:

    + +
      +
    • CPD: New command line parameter --ignore-usings: Ignore using directives in C# when comparing text.
    • +
    + +

    Modified Rules:

    + +
      +
    • java-comments/CommentRequired: New property serialVersionUIDCommentRequired which controls the comment requirements +for serialVersionUID fields. By default, no comment is required for this field.
    • +
    + +

    Pull Requests:

    + +
      +
    • #25: Added option to exclude C# using directives from CPD analysis
    • +
    • #72: Added capability in Java and JSP parser for tracking tokens.
    • +
    • #74: Fix rendering CommentDefaultAccessModifier description as code
    • +
    • #75: RuleSetFactory Performance Enhancement
    • +
    + +

    Bugfixes:

    + +
      +
    • java-comments/CommentDefaultAccessModifier +
        +
      • #1430: CommentDefaultAccessModifier triggers on field +annotated with @VisibleForTesting
      • +
      +
    • +
    • java-comments/CommentRequired +
        +
      • #1434: CommentRequired raises violation on serialVersionUID field
      • +
      +
    • +
    • java-design/UseNotifyAllInsteadOfNotify +
        +
      • #1438: UseNotifyAllInsteadOfNotify gives false positive
      • +
      +
    • +
    • java-finalizers/AvoidCallingFinalize +
        +
      • #1440: NPE in AvoidCallingFinalize
      • +
      +
    • +
    • java-imports/UnnecessaryFullyQualifiedName +
        +
      • #1436: UnnecessaryFullyQualifiedName false positive on clashing static imports with enums
      • +
      +
    • +
    • java-junit/JUnitAssertionsShouldIncludeMessage +
        +
      • #1373: JUnitAssertionsShouldIncludeMessage is no longer compatible with TestNG
      • +
      +
    • +
    • java-migrating/JUnit4TestShouldUseBeforeAnnotation +
        +
      • #1446: False positive with JUnit4TestShouldUseBeforeAnnotation when TestNG is used
      • +
      +
    • +
    • java-naming/SuspiciousEqualsMethodName +
        +
      • #1431: SuspiciousEqualsMethodName false positive
      • +
      +
    • +
    • java-optimizations/RedundantFieldInitializer +
        +
      • #1443: RedundantFieldInitializer: False positive for small floats
      • +
      +
    • +
    • java-unnecessary/UselessQualifiedThis +
        +
      • #1422: UselessQualifiedThis: False positive with Java 8 Function
      • +
      +
    • +
    • java-unusedcode/UnusedPrivateField +
        +
      • #1428: False positive in UnusedPrivateField when local variable +hides member variable
      • +
      +
    • +
    • General +
        +
      • #1425: Invalid XML Characters in Output
      • +
      • #1429: Java - Parse Error: Cast in return expression
      • +
      • #1441: PMD: Update documentation how to compile after modularization
      • +
      +
    • +
    + +

    04-October-2015 - 5.4.0

    + +
    +Note: PMD 5.4.0 requires JDK 1.7 or above. +
    + +

    Summary:

    + +
      +
    • 9 new rules
    • +
    • 4 features requests
    • +
    • 18 pull requests
    • +
    + +

    Feature Request and Improvements:

    + +
      +
    • #1344: AbstractNaming should check reverse
    • +
    • #1361: ShortVariable and ShortMethodName configuration
    • +
    • #1414: Command line parameter to disable “failOnViolation” behavior +PMD and CPD Command Line Interfaces have a new optional parameter: failOnViolation. Executing PMD with the option +-failOnViolation false will perform the PMD checks but won’t fail the build and still exit with status 0. +This is useful if you only want to generate the report with violations but don’t want to fail your build.
    • +
    • #1420: UnusedPrivateField: Ignore fields if using lombok
    • +
    + +

    New Rules:

    + +
      +
    • +

      Java:

      + +
        +
      • +

        Basic: SimplifiedTernary (rulesets/java/basic.xml/SimplifiedTernary)
        +Ternary operator with a boolean literal can be simplified with a boolean +expression.

        +
      • +
      • +

        Clone: CloneMethodMustBePublic (rulesets/java/clone.xml/CloneMethodMustBePublic)
        +The java manual says “By convention, +classes that implement the Cloneable interface should override Object.clone (which is protected) +with a public method.”

        +
      • +
      • +

        Clone: CloneMethodReturnTypeMustMatchClassName (rulesets/java/clone.xml/CloneMethodReturnTypeMustMatchClassName)
        +If a class implements Cloneable +the return type of the method clone() must be the class name.

        +
      • +
      • +

        Comments: CommentDefaultAccessModifier (rulesets/java/comments.xml/CommentDefaultAccessModifier)
        +In order to avoid mistakes with +forgotten access modifiers for methods, this rule ensures, that you explicitly mark the usage of the +default access modifier by placing a comment.

        +
      • +
      • +

        Design: SingletonClassReturningNewInstance (rulesets/java/design.xml/SingletonClassReturningNewInstance)
        +Verifies that the method called getInstance returns a cached instance and not always a fresh, new instance.

        +
      • +
      • +

        Design: SingleMethodRule (rulesets/java/design.xml/SingleMethodSingletonRule)
        +Verifies that there is only one method called +getInstance. If there are more methods that return the singleton, then it can easily happen, that these +are not the same instances - and thus no singleton.

        +
      • +
      • +

        Unnecessary: UselessQualifiedThis (rulesets/java/unnecessary.xml/UselessQualifiedThis)
        +Flags unnecessary qualified usages +of this, when this alone would be unique. E.g. use just this instead of Foo.this.

        +
      • +
      +
    • +
    • +

      Maven POM: (The rules can be found in the pmd-xml module)

      + +
        +
      • +

        Basic: ProjectVersionAsDependencyVersion (rulesets/pom/basic.xml/ProjectVersionAsDependencyVersion)
        +Checks the usage of ${project.version} in Maven POM files.

        +
      • +
      • +

        Basic: InvalidDependencyTypes (rulesets/pom/basic.xml/InvalidDependencyTypes)
        +Verifies that only the default types (jar, war, …) for dependencies are used.

        +
      • +
      +
    • +
    + +

    Ruleset snippet to activate the new rules:

    + +
    <rule ref="rulesets/java/basic.xml/SimplifiedTernary"/>
    +<rule ref="rulesets/java/clone.xml/CloneMethodReturnTypeMustMatchClassName"/>
    +<rule ref="rulesets/java/clone.xml/CloneMethodMustBePublic"/>
    +<rule ref="rulesets/java/comments.xml/CommentDefaultAccessModifier"/>
    +<rule ref="rulesets/java/design.xml/SingleMethodSingleton"/>
    +<rule ref="rulesets/java/design.xml/SingletonClassReturningNewInstance"/>
    +<rule ref="rulesets/java/unnecessary.xml/UselessQualifiedThis"/>
    +
    +<rule ref="rulesets/pom/basic.xml/ProjectVersionAsDependencyVersion"/>
    +<rule ref="rulesets/pom/basic.xml/InvalidDependencyTypes"/>
    +
    + +

    Modified Rules:

    + +
      +
    • +

      Java

      + +
        +
      • +

        Basic: CheckResultSet (rulesets/java/basic.xml/CheckResultSet)
        +Do not require to check the result of a navigation method, if it is returned.

        +
      • +
      • +

        JUnit: UseAssertTrueInsteadOfAssertEquals (rulesets/java/junit.xml/UseAssertTrueInsteadOfAssertEquals)
        +This rule also flags assertEquals, that use Boolean.TRUE/FALSE constants.

        +
      • +
      • +

        Naming: AbstractNaming (rulesets/java/naming.xml/AbstractNaming)
        +By default, this rule flags now classes, +that are named “Abstract” but are not abstract. This behavior can be disabled by setting +the new property strict to false.

        +
      • +
      • +

        Naming: ShortMethodName (rulesets/java/naming.xml/ShortMethodName)
        +Additional property minimum to configure the minimum required length of a method name.

        +
      • +
      • +

        Naming: ShortVariable (rulesets/java/naming.xml/ShortVariable)
        +Additional property minimum to configure the minimum required length of a variable name.

        +
      • +
      • +

        UnusedCode: UnusedPrivateField (rulesets/java/unusedcode.xml/UnusedPrivateField)
        +This rule won’t trigger anymore if Lombok is in use. +See #1420.

        +
      • +
      +
    • +
    + +

    Renamed Rules:

    + +
      +
    • Java +
        +
      • Design: UseSingleton - UseUtilityClass (rulesets/java/design.xml/UseUtilityClass)
        +The rule “UseSingleton” has been renamed to “UseUtilityClass”. +See also bugs #1059 and #1339.
      • +
      +
    • +
    + +

    Removed Rules:

    + +
      +
    • Java +
        +
      • +

        Basic: The following rules of ruleset “Basic” were marked as deprecated and are removed with this release now:
        +
        +EmptyCatchBlock, EmptyIfStatement, EmptyWhileStmt, EmptyTryBlock, EmptyFinallyBlock, EmptySwitchStatements, EmptySynchronizedBlock, EmptyStatementNotInLoop, EmptyInitializer, EmptyStatementBlock, EmptyStaticInitializer +

        +UnnecessaryConversionTemporary, UnnecessaryReturn, UnnecessaryFinalModifier, UselessOverridingMethod, UselessOperationOnImmutable, UnusedNullCheckInEquals, UselessParentheses +

        +These rules are still available in the rulesets “Empty” (rulesets/java/empty.xml) and +“Unnecessary” (rulesets/java/unnecessary.xml) respectively.

        +
      • +
      • +

        Design: The rule “UncommentedEmptyMethod” has been renamed last release to “UncommentedEmptyMethodBody”. The +old rule name reference has been removed with this release now.

        +
      • +
      • +

        Controversial: The rule “BooleanInversion” has been deprecated last release +and has been removed with this release completely.

        +
      • +
      +
    • +
    + +

    Pull Requests:

    + +
      +
    • #21: Added PMD Rules for Singleton pattern violations.
    • +
    • #23: Extended Objective-C grammar to accept Unicode characters in identifiers
    • +
    • #54: Add a new rulesets for Maven’s POM rules
    • +
    • #55: Fix run.sh for paths with spaces
    • +
    • #56: Adding support for WSDL rules
    • +
    • #57: Add default access modifier as comment rule
    • +
    • #58: Add rule for unnecessary literal boolean in ternary operators
    • +
    • #59: Add check to Boxed booleans in UseAssertTrueInsteadOfAssertEquals rule
    • +
    • #60: Add UselessQualifiedThisRule
    • +
    • #61: Add CloneMethodReturnTypeMustMatchClassName rule
    • +
    • #62: Add CloneMethodMustBePublic rule
    • +
    • #63: Change CheckResultSet to allow for the result of the navigation methods to be returned
    • +
    • #65: Fix ClassCastException in UselessOverridingMethodRule.
    • +
    • #66: #1370 ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
    • +
    • #67: Use Path instead of string to check file exclusions to fix windows-only bug
    • +
    • #68: #1370 ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
    • +
    • #69: #1371 InsufficientStringBufferDeclaration not detected properly on StringBuffer
    • +
    • #70: Fix code example
    • +
    + +

    Bugfixes:

    + +
      +
    • java-unusedcode/UnusedPrivateMethod: +
        +
      • #1412: UnusedPrivateMethod false positive: Issue #1403 not completely solved
      • +
      +
    • +
    + +

    API Changes:

    + +
      +
    • +

      pmd requires now JDK 1.7 or above.

      +
    • +
    • +

      pmd-core: net.sourceforge.pmd.lang.symboltable.Scope:

      + +

      The method addNameOccurrence returns now a Set of +NameDeclarations to which the given occurrence has been added. This is useful in case there are ambiguous declarations +of methods.

      +
    • +
    • +

      pmd-core: net.sourceforge.pmd.lang.symboltable.AbstractScope:

      + +

      The method findVariableHere returns now +a Set of NameDeclarations which match the given occurrence. This is useful in case there are ambiguous declarations +of methods.

      +
    • +
    + +

    04-November-2016 - 5.3.8

    + +

    Summary

    + +
      +
    • 1 feature requests
    • +
    • 6 pull requests
    • +
    • 17 bug fixes
    • +
    + +

    Feature Requests and Improvements:

    + +
      +
    • #1360: [core] [java] Provide backwards compatibility for PMD configuration file
    • +
    + +

    Pull Requests:

    + +
      +
    • #35: [javascript] Javascript tokenizer now ignores comment tokens.
    • +
    • #103: [java] Fix for 1501: CyclomaticComplexity rule causes OOM when class reporting is disabled
    • +
    • #111: [java] Fix BooleanInstantiationRule for Java 8
    • +
    • #112: [java] Fix ClassCastException on CloneMethodMustImplementCloneable
    • +
    • #113: [java] Fix ClassCastException on SignatureDeclareThrowsException
    • +
    • #119: [plsql] Fix PMD issue 1531- endless loop followed by OOM while parsing (PL)SQL
    • +
    + +

    Bugfixes:

    + +
      +
    • java +
        +
      • #1501: [java] [apex] CyclomaticComplexity rule causes OOM when class reporting is disabled
      • +
      +
    • +
    • java-basic/BooleanInstantiation +
        +
      • #1533: [java] BooleanInstantiation: ClassCastException with Annotation
      • +
      +
    • +
    • java-comments +
        +
      • #1522: [java] CommentRequired: false positive
      • +
      +
    • +
    • java-design/CloseResource +
        +
      • #1479: [java] CloseResource: false positive on Statement
      • +
      +
    • +
    • java-imports/UnusedImports +
        +
      • #1529: [java] UnusedImports: The created rule violation has no class name
      • +
      +
    • +
    • java-typeresolution/CloneMethodMustImplementCloneable +
        +
      • #1532: [java] CloneMethodMustImplementCloneable: Implemented Interface extends Cloneable
      • +
      • #1534: [java] CloneMethodMustImplementCloneable: ClassCastException with Annotation (java8)
      • +
      +
    • +
    • java-typeresolution/SignatureDeclareThrowsException +
        +
      • #1535: [java] SignatureDeclareThrowsException: ClassCastException with Annotation
      • +
      +
    • +
    • java-unusedcode/UnusedLocalVariable +
        +
      • #1484: [java] UnusedLocalVariable: false positive - parenthesis
      • +
      +
    • +
    • java-unusedcode/UnusedModifier +
        +
      • #1480: [java] UnusedModifier: false positive on public modifier used with inner interface in enum
      • +
      +
    • +
    • plsql +
        +
      • #1520: [plsql] Missing PL/SQL language constructs in parser: Is Of Type, Using
      • +
      • #1527: [plsql] PRAGMA AUTONOMOUS_TRANSACTION gives processing errors
      • +
      • #1531: [plsql] OOM/Endless loop while parsing (PL)SQL
      • +
      +
    • +
    • General +
        +
      • #1481: [core] CPD: no problems found results in blank file instead of empty xml
      • +
      • #1499: [core] CPD test break PMD 5.5.1 build on Windows
      • +
      • #1506: [core] When runing any RuleTst, start/end methods not called
      • +
      • #1508: [core] [java] PMD is leaking file handles
      • +
      +
    • +
    + +

    API Changes:

    + +
      +
    • New command line parameter for PMD: -norulesetcompatibility - this disables the ruleset factory +compatibility filter and fails, if e.g. an old rule name is used in the ruleset. +See also #1360. +This option is also available for the ant task: <noRuleSetCompatibility>true</noRuleSetCompatibility>.
    • +
    • CPD: If no problems found, an empty report will be output instead of nothing. See also #1481
    • +
    + +

    30-April-2016 - 5.3.7

    + +

    New Supported Languages:

    + +
      +
    • CPD supports now Swift (see PR#33).
    • +
    + +

    Feature Request and Improvements:

    + +
      +
    • A JSON-renderer for PMD which is compatible with CodeClimate. See PR#83.
    • +
    + +

    Modified Rules:

    + +
      +
    • java-design/UseVargs: public static void main method is ignored now and so are methods, that are annotated +with Override. See PR#79.
    • +
    + +

    Pull Requests:

    + +
      +
    • #27: Added support for Raw String Literals (C++11).
    • +
    • #29: Added support for files with UTF-8 BOM to JSP tokenizer.
    • +
    • #30: Removed file filter for files that are explicitly specified on the CPD command line using the ‘–files’ command line option.
    • +
    • #31: Added file encoding detection to CPD.
    • +
    • #32: Extended Objective-C grammar to accept UTF-8 escapes (\uXXXX) in string literals.
    • +
    • #33: Added support for Swift to CPD.
    • +
    • #79: do not flag public static void main(String[]) as UseVarargs; ignore @Override for UseVarargs
    • +
    • #80: Update mvn-plugin.md
    • +
    • #83: Adds new Code Climate-compliant JSON renderer
    • +
    • #85: #1340 UseStringBufferForStringAppends False Positive with Ternary Operator
    • +
    + +

    Bugfixes:

    + +
      +
    • java-basic/DoubleCheckedLocking: +
        +
      • #1471: False positives for DoubleCheckedLocking
      • +
      +
    • +
    • java-codesize/TooManyMethods: +
        +
      • #1457: TooManyMethods counts inner class methods
      • +
      +
    • +
    • java-controversial/AvoidUsingShortType: +
        +
      • #1449: false positive when casting a variable to short
      • +
      +
    • +
    • java-design/AccessorClassGeneration: +
        +
      • #1452: ArrayIndexOutOfBoundsException with Annotations for AccessorClassGenerationRule
      • +
      +
    • +
    • java-design/UseUtilityClass: +
        +
      • #1467: UseUtilityClass can’t correctly check functions with multiple annotations
      • +
      +
    • +
    • java-imports/UnusedImports: +
        +
      • #1465: False Positve UnusedImports with javadoc @link
      • +
      +
    • +
    • java-junit/TestClassWithoutTestCases: +
        +
      • #1453: Test Class Without Test Cases gives false positive
      • +
      +
    • +
    • java-optimizations/UseStringBufferForStringAppends: +
        +
      • #1340: UseStringBufferForStringAppends False Positive with ternary operator
      • +
      +
    • +
    • java-sunsecure/ArrayIsStoredDirectly: +
        +
      • #1475: False positive of MethodReturnsInternalArray
      • +
      • #1476: False positive of ArrayIsStoredDirectly
      • +
      +
    • +
    • java-unnecessary/UnnecessaryFinalModifier: +
        +
      • #1464: UnnecessaryFinalModifier false positive on a @SafeVarargs method
      • +
      +
    • +
    • java-unusedcode/UnusedFormalParameter: +
        +
      • #1456: UnusedFormalParameter should ignore overriding methods
      • +
      +
    • +
    • General +
        +
      • #1455: PMD doesn’t handle Java 8 explicit receiver parameters
      • +
      • #1458: Performance degradation scanning large XML files with XPath custom rules
      • +
      • #1461: Possible threading issue due to PR#75
      • +
      • #1470: Error with type-bound lambda
      • +
      +
    • +
    + +

    CLI Changes:

    + +
      +
    • CPD: If a complete filename is specified, the language dependent filename filter is not applied. This allows +to scan files, that are not using the standard file extension. If a directory is specified, the filename filter +is still applied and only those files with the correct file extension of the language are scanned.
    • +
    + +

    04-December-2015 - 5.3.6

    + +

    Feature Request and Improvements:

    + +
      +
    • CPD: New command line parameter --ignore-usings: Ignore using directives in C# when comparing text.
    • +
    + +

    Modified Rules:

    + +
      +
    • java-comments/CommentRequired: New property serialVersionUIDCommentRequired which controls the comment requirements +for serialVersionUID fields. By default, no comment is required for this field.
    • +
    + +

    Pull Requests:

    + +
      +
    • #25: Added option to exclude C# using directives from CPD analysis +
        +
      • Note: This also contains the fix from #23
      • +
      +
    • +
    • #72: Added capability in Java and JSP parser for tracking tokens.
    • +
    • #75: RuleSetFactory Performance Enhancement
    • +
    + +

    Bugfixes:

    + +
      +
    • java-comments/CommentRequired +
        +
      • #1434: CommentRequired raises violation on serialVersionUID field
      • +
      +
    • +
    • java-design/UseNotifyAllInsteadOfNotify +
        +
      • #1438: UseNotifyAllInsteadOfNotify gives false positive
      • +
      +
    • +
    • java-finalizers/AvoidCallingFinalize +
        +
      • #1440: NPE in AvoidCallingFinalize
      • +
      +
    • +
    • java-imports/UnnecessaryFullyQualifiedName +
        +
      • #1436: UnnecessaryFullyQualifiedName false positive on clashing static imports with enums
      • +
      +
    • +
    • java-junit/JUnitAssertionsShouldIncludeMessage +
        +
      • #1373: JUnitAssertionsShouldIncludeMessage is no longer compatible with TestNG
      • +
      +
    • +
    • java-migrating/JUnit4TestShouldUseBeforeAnnotation +
        +
      • #1446: False positive with JUnit4TestShouldUseBeforeAnnotation when TestNG is used
      • +
      +
    • +
    • java-naming/SuspiciousEqualsMethodName +
        +
      • #1431: SuspiciousEqualsMethodName false positive
      • +
      +
    • +
    • java-optimizations/RedundantFieldInitializer +
        +
      • #1443: RedundantFieldInitializer: False positive for small floats
      • +
      +
    • +
    • java-unusedcode/UnusedPrivateField +
        +
      • #1428: False positive in UnusedPrivateField when local variable hides member variable
      • +
      +
    • +
    • General +
        +
      • #1429: Java - Parse Error: Cast in return expression
      • +
      • #1425: Invalid XML Characters in Output
      • +
      • #1441: PMD: Update documentation how to compile after modularization
      • +
      +
    • +
    + +

    04-October-2015 - 5.3.5

    + +

    Modified Rules:

    + +
      +
    • java-design/CloseResource: New Property closeAsDefaultTarget which is true by default to stay +backwards compatible. If this property is true, the rule will make sure, that close itself is +always considered as a closeTarget - no matter whether it is configured with the closeTargets property +or not.
    • +
    + +

    Pull Requests:

    + +
      +
    • #71: #1410 Improve description of DefaultPackage rule
    • +
    + +

    Bugfixes:

    + +
      +
    • java-controversial/DefaultPackage: +
        +
      • #1410: DefaultPackage triggers on field annotated with @VisibleForTesting
      • +
      +
    • +
    • java-design/CloseResource: +
        +
      • #1387: CloseResource has false positive for ResultSet
      • +
      +
    • +
    • java-optimizations/RedundantFieldInitializer +
        +
      • #1418: RedundantFieldInitializer false positive with large long value
      • +
      +
    • +
    • java-strings/InsufficientStringBufferDeclaration: +
        +
      • #1409: NullPointerException in InsufficientStringBufferRule
      • +
      • #1413: False positive StringBuffer constructor with ?: int value
      • +
      +
    • +
    • java-unnecessary/UselessParentheses: +
        +
      • #1407: UselessParentheses “&” and “+” operator precedence
      • +
      +
    • +
    + +

    18-September-2015 - 5.3.4

    + +

    Bugfixes:

    + +
      +
    • #1370: ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
    • +
    • #1371: InsufficientStringBufferDeclaration not detected properly on StringBuffer
    • +
    • #1380: InsufficientStringBufferDeclaration false positive when literal string passed to a lookup service
    • +
    • #1384: NullPointerException in ConsecutiveLiteralAppendsRule
    • +
    • #1388: ConstructorCallsOverridableMethodRule doesn’t work with params?
    • +
    • #1392: SimplifyStartsWith false-negative
    • +
    • #1393: PMD hanging during DataflowAnomalyAnalysis
    • +
    • #1394: dogfood.xml - Unable to exclude rules [UncommentedEmptyMethod]
    • +
    • #1395: UnusedPrivateMethod false positive for array element method call
    • +
    • #1396: PrematureDeclaration lambda false positive
    • +
    • #1397: StringToString should ignore method references
    • +
    • #1398: False positive for GuardLogStatementJavaUtil with Log4j
    • +
    • #1399: False positive for VariableNamingConventions with annotation @interface
    • +
    • #1400: False positive with JUnit4TestShouldUseBeforeAnnotation
    • +
    • #1401: False positive for StringBuilder.append called with constructor
    • +
    • #1402: Windows-Only: File exclusions are not case insensitive
    • +
    • #1403: False positive UnusedPrivateMethod with JAVA8
    • +
    • #1404: Java8 ‘Unnecessary use of fully qualified name’ in Streams Collector
    • +
    • #1405: UnusedPrivateMethod false positive?
    • +
    + +

    25-July-2015 - 5.3.3

    + +

    Pull Requests:

    + +
      +
    • #55: Fix run.sh for paths with spaces
    • +
    + +

    Bugfixes:

    + +
      +
    • #1364: FieldDeclarationsShouldBeAtStartOfClass false positive using multiple annotations
    • +
    • #1365: Aggregated javadoc report is missing
    • +
    • #1366: UselessParentheses false positive on multiple equality operators
    • +
    • #1369: ConsecutiveLiteralAppends not detected properly on StringBuffer
    • +
    • #1372: False Negative for CloseResource rule.
    • +
    • #1375: CloseResource not detected properly
    • +
    • #1376: CompareObjectsWithEquals fails for type annotated method parameter
    • +
    • #1379: PMD CLI: Cannot specify multiple properties
    • +
    • #1381: CPD Cannot use CSV/VS Renderers because they don’t support encoding property
    • +
    + +

    22-May-2015 - 5.3.2

    + +

    Bugfixes:

    + +
      +
    • #1330: AvoidReassigningParameters does not work with varargs
    • +
    • #1335: GuardLogStatementJavaUtil should not apply to SLF4J Logger
    • +
    • #1342: UseConcurrentHashMap false positive (with documentation example)
    • +
    • #1343: MethodNamingConventions for overrided methods
    • +
    • #1345: UseCollectionIsEmpty throws NullPointerException
    • +
    • #1353: False positive “Only One Return” with lambda
    • +
    • #1354: Complex FieldDeclarationsShouldBeAtStartOfClass false positive with Spring annotations
    • +
    • #1355: NullPointerException in a java file having a single comment line
    • +
    + +

    20-April-2015 - 5.3.1

    + +

    New/Modified/Deprecated Rules:

    + +
      +
    • Language Java, ruleset design.xml: The rule “UseSingleton” has been renamed to “UseUtilityClass”. +See also bugs #1059 and #1339.
    • +
    + +

    Pull Requests:

    + +
      +
    • #53: Fix some NullPointerExceptions
    • +
    + +

    Bugfixes:

    + +
      +
    • #1332: False Positive: UnusedPrivateMethod
    • +
    • #1333: Error while processing Java file with Lambda expressions
    • +
    • #1337: False positive “Avoid throwing raw exception types” when exception is not thrown
    • +
    • #1338: The pmd-java8 POM bears the wrong parent module version
    • +
    + +

    April 1, 2015 - 5.3.0

    + +

    New Supported Languages:

    + +
      +
    • Matlab (CPD)
    • +
    • Objective-C (CPD)
    • +
    • Python (CPD)
    • +
    • Scala (CPD)
    • +
    + +

    Feature Requests and Improvements:

    + +
      +
    • XML: Line numbers for XML documents are more accurate. This is a further improvement of #1054.
    • +
    • CPD: New output format ‘csv_with_linecount_per_file’
    • +
    • #1320: Enhance SimplifyBooleanReturns checks
    • +
    • PMD exits with status 4 if any violations have been found. This behavior has been introduced to ease PMD +integration into scripts or hooks, such as SVN hooks.
    • +
    + +

    New/Modified/Deprecated Rules:

    + +

    The following rules have been +enhanced +:

    + +
      +
    • Language Java, ruleset design.xml: The rule “SimplifyBooleanReturns” now also marks methods where the else case is omitted and just a return. +See also feature #1320.
    • +
    + +

    The following rules are marked as +deprecated +and will be removed with the next release of PMD.

    + +
      +
    • +

      Language Java, ruleset basic.xml: The following rules have been moved into the empty.xml ruleset. You’ll need +to enable the “empty” ruleset explicitly from now on, if you want to have these rules executed:

      + +

      EmptyCatchBlock, EmptyIfStatement, EmptyWhileStmt, EmptyTryBlock, EmptyFinallyBlock, EmptySwitchStatements, +EmptySynchronizedBlock, EmptyStatementNotInLoop, EmptyInitializer, EmptyStatementBlock, EmptyStaticInitializer.

      +
    • +
    • +

      Language Java, ruleset basic.xml: The following rules have been moved into the unnecessary.xml ruleset. You’ll need +to enable the “unnecessary” ruleset explicitly from now on, if you want to have these rules executed:

      + +

      UnnecessaryConversionTemporary, UnnecessaryReturn, UnnecessaryFinalModifier, UselessOverridingMethod, +UselessOperationOnImmutable, UnusedNullCheckInEquals, UselessParentheses.

      +
    • +
    • +

      Language Java, ruleset design.xml: The rule “UncommentedEmptyMethod” has been renamed to “UncommentedEmptyMethodBody”. +See also bug #1283.

      +
    • +
    • +

      Language Java, ruleset controversial.xml: The rule “BooleanInversion” is deprecated and will be removed with +the next release. See #1277 for more details.

      +
    • +
    + +

    Pull Requests:

    + +
      +
    • #11: Added support for Python to CPD.
    • +
    • #12: Added support for Matlab to CPD.
    • +
    • #13: Added support for Objective-C to CPD.
    • +
    • #14: Added support for Scala to CPD.
    • +
    • #15: (pmd-cs) Fixed incorrect line numbers after mutiline comments and verbatim strings.
    • +
    • #16: Fixed several C++ lexical / tokenize errors.
    • +
    • #17: Fixed ‘–files’ command line option of CPD, so it also works for files and not only for directories.
    • +
    • #18: Created extra CSV output format csv_with_linecount_per_file which outputs the correct line count per file.
    • +
    • #19: Fixed exit status of PMD when error occurs
    • +
    • #48: Handle NoClassDefFoundError along ClassNotFoundException
    • +
    • #49: Fix some false positives in UnusedPrivateField
    • +
    • #50: Add missing assertions in JUnitAssertionsShouldIncludeMessage test
    • +
    • #51: [JUnit] Check assertion message present in assertEquals with delta
    • +
    • #52: Improves JDK8 support for default methods and static methods in interfaces
    • +
    + +

    Bugfixes:

    + +
      +
    • #914: False +ve from UnusedImports with wildcard static imports
    • +
    • #1197: JUnit4TestShouldUseTestAnnotation for private method
    • +
    • #1277: Delete BooleanInversion as it makes no sense
    • +
    • #1283: Rename UncommentedEmptyMethod to UncommentedEmptyMethodBody
    • +
    • #1296: PMD UnusedPrivateMethod invalid detection of ‘private void method(int,boolean,Integer…)’
    • +
    • #1298: Member variable int type with value 0xff000000 causes processing error
    • +
    • #1299: MethodReturnsInternalArray false positive
    • +
    • #1302: False Positive: UnusedPrivateField when accessed by inner class
    • +
    • #1303: OverrideBothEqualsAndHashcodeRule does not work on class implements resolvable interfaces
    • +
    • #1304: UseCollectionIsEmpty false positive comparing to 1
    • +
    • #1305: variable declaration inside switch causes ClassCastException
    • +
    • #1306: False positive on duplicate when using static imports
    • +
    • #1307: False positive: SingularField and lambda-expression
    • +
    • #1308: PMD runs endlessly on some generated files
    • +
    • #1312: Rule reference must not override rule name of referenced rule
    • +
    • #1313: Missing assertion message in assertEquals with delta not detected
    • +
    • #1316: Multi Rule Properties with delimiter not possible
    • +
    • #1317: RuntimeException when parsing class with multiple lambdas
    • +
    • #1319: PMD stops with NoClassDefFoundError (typeresolution)
    • +
    • #1321: CPD format XML fails with NullPointer
    • +
    • #1322: MethodReturnsInternalArray on private methods
    • +
    • #1323: False positive case of UseAssertTrueInsteadOfAssertEquals
    • +
    • #1324: MethodReturnsInternalArray false positive with clone()
    • +
    • #1325: Inner class declared within a method fails to parse (ClassCastException)
    • +
    • #1326: PMD 5.3.0-SNAPSHOT doesn’t compile under Windows
    • +
    + +

    API Changes:

    + +
      +
    • +

      net.sourceforge.pmd.cpd.Match.iterator() now returns an iterator of the new type net.sourceforge.pmd.cpd.Mark instead +of TokenEntry. A Mark contains all the informations about each single duplication, including the TokenEntry via Mark.getToken(). +This Mark is useful for reporting the correct line count for each duplication. Previously only one line count was available. +As for some languages CPD can be instructed to ignore comments, the line count could be different in the different files +for the same duplication.

      +
    • +
    • +

      pmd-test: The utility class StreamUtil is deprecated. Just use Apache Commons IO Utils instead.

      +
    • +
    + +

    December 21, 2014 - 5.2.3:

    + +

    Feature Requests and Improvements:

    + +
      +
    • #1288: MethodNamingConventions for native should be deactivated
    • +
    • #1293: Disable VariableNamingConventions for native methods
    • +
    + +

    Modified Rules:

    + + + +

    Pull requests:

    + +
      +
    • #45: #1290 RuleSetReferenceId does not process HTTP(S) correctly.
    • +
    • #46: Allow byte[] as no-vargars last argument
    • +
    • #47: Allow byte[] data and byte data[] as no-varargs last argument
    • +
    + +

    Bugfixes:

    + +
      +
    • #1252: net.sourceforge.pmd.lang.ast.TokenMgrError: Lexical error in file xxx.cpp
    • +
    • #1289: CommentRequired not ignored if javadoc {@inheritDoc} anon inner classes
    • +
    • #1290: RuleSetReferenceId does not process HTTP(S) correctly.
    • +
    • #1294: False positive UnusedPrivateMethod with public inner enum from another class
    • +
    + +

    December 3, 2014 - 5.2.2:

    + +

    New Parameters for CPD:

    + +

    For the language cpp, the following new parameters are supported:

    + +
      +
    • --no-skip-blocks: Disables skipping of code blocks like a pre-processor. This is by default enabled.
    • +
    • --skip-blocks-pattern: Pattern to find the blocks to skip. Start and End pattern separated by “|”. Default value is “#if 0|#endif”.
    • +
    + +

    Bugfixes:

    + +
      +
    • #1090: cpp parser exception with inline asm
    • +
    • #1128: CompareObjectsWithEquals False Positive comparing boolean (primitive) values
    • +
    • #1254: CPD run that worked in 5.1.2 fails in 5.1.3 with OOM
    • +
    • #1276: False positive in UnusedPrivateMethod with inner enum
    • +
    • #1280: False Positive in UnusedImports when import used in javadoc
    • +
    • #1281: UnusedPrivateMethod incorrectly flagged for methods nested private classes
    • +
    • #1282: False Positive with implicit String.valuesOf() (Java)
    • +
    • #1285: Prevent to modify the System environment
    • +
    • #1286: UnusedPrivateMethod returns false positives for varags and enums
    • +
    + +

    November 3, 2014 - 5.2.1:

    + +

    Bugfixes:

    + +
      +
    • #550: False +: MissingBreakInSwitch
    • +
    • #1252: net.sourceforge.pmd.lang.ast.TokenMgrError: Lexical error in file xxx.cpp
    • +
    • #1253: Document default behaviour when CPD command line arguments “encoding” and “ignoreAnnotations” are not specified
    • +
    • #1255: UseUtilityClass false positive with Exceptions
    • +
    • #1256: PositionLiteralsFirstInComparisons false positive with Characters
    • +
    • #1258: Java 8 Lambda parse error on direct field access
    • +
    • #1259: CloseResource rule ignores conditionnals within finally blocks
    • +
    • #1261: False positive “Avoid unused private methods” with Generics
    • +
    • #1262: False positive for MissingBreakInSwitch
    • +
    • #1263: PMD reports CheckResultSet violation in completely unrelated source files.
    • +
    • #1272: varargs in methods are causing IndexOutOfBoundException when trying to process files
    • +
    • #1273: CheckResultSet false positive in try-with-resources nested in if
    • +
    • #1274: ant integration broken with pmd-5.2.0
    • +
    • #1275: False positive: UnusedModifier rule for static inner class in enum
    • +
    + +

    October 17, 2014 - 5.2.0:

    + +

    Modularization of the source code:

    + +

    The source code of pmd was undergoing a major restructuring. Each language is separated +out into its own module. This reduces the size of the artifacts significantly, if only +one language is needed. It also makes it easier, to add new languages as extensions.

    + +

    Therefore, the maven coordinates needed to change. In order to just use pmd with java support, you’ll need +the following two dependencies:

    + +
    <dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-core</artifactId>
    +    <version>5.2.0</version>
    +</dependency>
    +<dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-java</artifactId>
    +    <version>5.2.0</version>
    +</dependency>
    +
    + +

    The binary package still contains all languages and can be used as usual. Have a look at +the central repository for available modules.

    + +

    New Languages

    + +
      +
    • CPD supports now Go.
    • +
    + +

    Pull requests:

    + +
      +
    • #9: New rule: NoUnsanitizedJSPExpressionRule
    • +
    • #44: Add GoLang support to CPD
    • +
    + +

    New/Modified Rules:

    + +
      +
    • JSP - Basic ruleset: +
        +
      • NoUnsanitizedJSPExpression: Using unsanitized JSP expression can lead to Cross Site Scripting (XSS) attacks
      • +
      +
    • +
    + +

    August 31, 2014 - 5.1.3:

    + +

    Bugfixes:

    + +
      +
    • #1156: False failure with “Avoid unused private methods”
    • +
    • #1187: double variable with AvoidDecimalLiteralsInBigDecimalConstructor
    • +
    • #1228: UnusedPrivateMethod returns false positives
    • +
    • #1230: UseCollectionIsEmpty gets false positives
    • +
    • #1231: No Error Message on Missing Rule
    • +
    • #1233: UnusedPrivateMethod: False positive : method called on returned object.
    • +
    • #1234: Unused private methods still giving false positives in 5.1.3 snapshot
    • +
    • #1235: scope dependencies in POM file
    • +
    • #1239: StackOverflowError in AbstractTokenizer.parseString running CPD on >1MB JS file
    • +
    • #1241: False+ AvoidProtectedMethodInFinalClassNotExtending
    • +
    • #1243: Useless Parentheses False Positive
    • +
    • #1245: False Positive for Law of Demeter
    • +
    • #1246: False positive from MissingBreakInSwitch
    • +
    • #1247: Not able to recognize JDK 8 Static Method References
    • +
    • #1249: Regression: UnusedPrivateMethod from 5.0.5 to 5.1.2
    • +
    • #1250: Method attribute missing for some violations
    • +
    • #1251: UnusedPrivateMethod false positives for boxing & unboxing arguments
    • +
    + +

    Feature Requests and Improvements:

    + +
      +
    • #1232: Make ShortClassName configurable
    • +
    • #1244: FieldDeclarationsShouldBeAtStartOfClass and anonymous classes
    • +
    + +

    New/Modified Rules:

    + +
      +
    • FieldDeclarationsShouldBeAtStartOfClass (ruleset java-design) has a new property called ignoreAnonymousClassDeclarations: +Ignore Field Declarations, that are initialized with anonymous class declarations. This property is enabled by default. +See feature #1244.
    • +
    • ShortClassName (ruleset java-naming) has a new property called minimum: Number of characters that are required +as a minimum for a class name. By default, 5 characters are required - if the class name is shorter, a violation +will be reported. See feature #1232.
    • +
    + +

    July 20, 2014 - 5.1.2:

    + +

    Bugfixes:

    + +
      +
    • Fixed bug #1181: unused import false positive if used as parameter in javadoc only.
    • +
    • Fixed bug #1192: Ecmascript fails to parse this operator “ ^= “
    • +
    • Fixed bug #1198: ConfusingTernary does not ignore else if blocks even when property is set
    • +
    • Fixed bug #1200: setRuleSets method javadoc mistype commands instead commas
    • +
    • Fixed bug #1201: Error “Can’t find resource null” when ruleset contains spaces after comma
    • +
    • Fixed bug #1202: StackOverflowError in RuleSetReferenceId
    • +
    • Fixed bug #1205: Parse error on lambda with if
    • +
    • Fixed bug #1206: SummaryHTMLRenderer always shows suppressed warnings/violations
    • +
    • Fixed bug #1208: yahtml’s outputDir property does not work
    • +
    • Fixed bug #1209: XPath 2.0 following-sibling incorrectly includes context node
    • +
    • Fixed bug #1211: PMD is failing with NPE for rule UseIndexOfChar while analyzing Jdk 8 Lambda expression
    • +
    • Fixed bug #1214: UseCollectionIsEmpty misses some usage
    • +
    • Fixed bug #1215: AvoidInstantiatingObjectsInLoops matches the right side of a list iteration loop
    • +
    • Fixed bug #1216: AtLeastOneConstructor ignores classes with any methods
    • +
    • Fixed bug #1218: TooFewBranchesForASwitchStatement misprioritized
    • +
    • Fixed bug #1219: PrimarySuffix/@Image does not work in some cases in xpath 2.0
    • +
    • Fixed bug #1223: UnusedPrivateMethod: Java 8 method reference causing false positives
    • +
    • Fixed bug #1224: GuardDebugLogging broken in 5.1.1 - missing additive statement check in log statement
    • +
    • Fixed bug #1226: False Positive: UnusedPrivateMethod overloading with varargs
    • +
    • Fixed bug #1227: GuardLogStatementJavaUtil doesn’t catch log(Level.FINE, “msg” + “ msg”) calls
    • +
    + +

    Feature Requests and Improvements:

    + +
      +
    • +
    • +
    • +
    • +
    + +

    Pull requests:

    + +
      +
    • #41: Update to use asm 5.0.2
    • +
    • #42: Add SLF4j Logger type to MoreThanOneLogger rule
    • +
    • #43: Standard and modified cyclomatic complexity
    • +
    + +

    New Rules:

    + +
      +
    • Java - codesize ruleset: +
        +
      • StdCyclomaticComplexity: Like CyclomaticComplexityRule, but not including boolean operators
      • +
      • ModifiedCyclomaticComplexity: Like StdCyclomaticComplexity, but switch statement plus all cases count as 1
      • +
      • Thanks to Alan Hohn
      • +
      +
    • +
    + +

    April 27, 2014 - 5.1.1:

    + +

    Bugfixes:

    + +
      +
    • Fixed bug 1165: SimplifyConditional false positive
    • +
    • Fixed bug 1166: PLSQL XPath Rules Fail for XPath 1.0
    • +
    • Fixed bug 1167: Error while processing PLSQL file with BOM
    • +
    • Fixed bug 1168: Designer errors when trying to copy xml to clipboard
    • +
    • Fixed bug 1170: false positive with switch in loop
    • +
    • Fixed bug 1171: Specifying minimum priority from command line gives NPE
    • +
    • Fixed bug 1173: Java 8 support: method references
    • +
    • Fixed bug 1175: false positive for StringBuilder.append called 2 consecutive times
    • +
    • Fixed bug 1176: ShortVariable false positive with for-each loops
    • +
    • Fixed bug 1177: Incorrect StringBuffer warning when that class is not used
    • +
    • Fixed bug 1178: LexicalError while parsing Java code aborts CPD run
    • +
    • Fixed bug 1180: False Positive for ConsecutiveAppendsShouldReuse on different variable names
    • +
    • Fixed bug 1185: UnusedModifier throws NPE when parsing enum with a nested static interface
    • +
    • Fixed bug 1188: False positive in UnusedPrivateField
    • +
    • Fixed bug 1191: Ecmascript fails to parse “void(0)”
    • +
    • Document that PMD requires Java 1.6, see discussion.
    • +
    • +
    • +
    • +
    + +

    CPD Changes:

    + +
      +
    • Command Line +
        +
      • Added option “–skip-lexical-errors” to skip files, which can’t be tokenized +due to invalid characters instead of aborting CPD. See also bug 1178.
      • +
      +
    • +
    • Ant +
        +
      • New optional parameter “skipDuplicateFiles”: Ignore multiple copies of files of the same name and length in +comparison; defaults to “false”. +This was already a command line option, but now also available in in CPD’s ant task.
      • +
      • New optional parameter “skipLexicalErros”: Skip files which can’t be tokenized due to invalid characters +instead of aborting CPD; defaults to “false”.
      • +
      +
    • +
    + +

    February 11, 2014 - 5.1.0:

    + +

    New/Updated Languages:

    + +
      +
    • Java 1.8 support added.
    • +
    • PLSQL support added; thanks to Stuart Turton. See also http://pldoc.sourceforge.net/
    • +
    • Apache Velocity support added; thanks to Andrey Utis. See also http://velocity.apache.org
    • +
    + +

    New/Updated Rulesets and Rules:

    + +
      +
    • EcmaScript +
        +
      • Controversial ruleset, featuring AvoidWithStatement
      • +
      • UseBaseWithParseInt
      • +
      +
    • +
    • Java +
        +
      • GuardLogStatement +
          +
        • replace xpath implementation of GuardDebugLogging by GuardLogStatement (better perf)
        • +
        +
      • +
      • CommentRequired +
          +
        • basic rule to check for existence for formal (javadoc) comments.
        • +
        +
      • +
      • AvoidProtectedMethodInFinalClassNotExtending +
          +
        • rule to avoid protected methods in final classes that don’t extend anything other than Object.
        • +
        +
      • +
      • ConsecutiveAppendsShouldReuse +
          +
        • rule to encourage to reuse StringBuilder.append returned object for consecutive calls.
        • +
        +
      • +
      • PositionLiteralsFirstInCaseInsensitiveComparisons +
          +
        • rule similar to PositionLiteralsFirstInComparisons, but for case insensitive comparisons (equalsIgnoreCase). +Thanks to Larry Diamond
        • +
        +
      • +
      • ConfusingTernary +
          +
        • new property “ignoreElseIf” to suppress this rule in case of if-else-if-else usage. +See feature 1161: Confusing Ternary should skip else if statements (or have a property to do so)
        • +
        +
      • +
      • FieldDeclarationsShouldBeAtStartOfClass +
          +
        • new property “ignoreEnumDeclarations” which is enabled by default. This relaxes the rule, so +that enums can be declared before fields and the rule is not triggered.
        • +
        +
      • +
      +
    • +
    + +

    Bugfixes:

    + +

    http://sourceforge.net/p/pmd/bugs/milestone/PMD-5.1.0/

    + +
      +
    • Fixed bug 881: private final without setter is flagged
    • +
    • Fixed bug 1059: Change rule name “Use Singleton” should be “Use Utility class”
    • +
    • Fixed bug 1106: PMD 5.0.4 fails with NPE on parsing java enum with inner class instance creation
    • +
    • Fixed bug 1045: //NOPMD not working (or not implemented) with ECMAscript
    • +
    • Fixed bug 1054: XML Rules ever report a line -1 and not the line/column where the error occurs
    • +
    • Fixed bug 1115: commentRequiredRule in pmd 5.1 is not working properly
    • +
    • Fixed bug 1120: equalsnull false positive
    • +
    • Fixed bug 1121: NullPointerException when invoking XPathCLI
    • +
    • Fixed bug 1123: failure in help examples
    • +
    • Fixed bug 1124: PMD.run() multithreading issue
    • +
    • Fixed bug 1125: Missing Static Method In Non Instantiatable Class
    • +
    • Fixed bug 1126: False positive with FieldDeclarationsShouldBeAtStartOfClass for static enums
    • +
    • Fixed bug 1130: CloseResource doesn’t recognize custom close method
    • +
    • Fixed bug 1131: CloseResource should complain if code between declaration of resource and try
    • +
    • Fixed bug 1134: UseStringBufferLength: false positives
    • +
    • Fixed bug 1135: CheckResultSet ignores results set declared outside of try/catch
    • +
    • Fixed bug 1136: ECMAScript: NullPointerException in getLeft() and getRight()
    • +
    • Fixed bug 1140: public EcmascriptNode getBody(int index)
    • +
    • Fixed bug 1141: ECMAScript: getFinallyBlock() is buggy.
    • +
    • Fixed bug 1142: ECMAScript: getCatchClause() is buggy.
    • +
    • Fixed bug 1144: CPD encoding argument has no effect
    • +
    • Fixed bug 1146: UseArrayListInsteadOfVector false positive when using own Vector class
    • +
    • Fixed bug 1147: EmptyMethodInAbstractClassShouldBeAbstract false positives
    • +
    • Fixed bug 1150: “EmptyExpression” for valid statements!
    • +
    • Fixed bug 1154: Call super onPause when there is no super
    • +
    • Fixed bug 1155: maven pmd plugin does not like empty rule sets
    • +
    • Fixed bug 1159: false positive UnusedFormalParameter readObject(ObjectInputStream) if not used
    • +
    • Fixed bug 1164: Violations are not suppressed with @java.lang.SuppressWarnings(“all”)
    • +
    + +

    CPD Changes:

    +
      +
    • Command Line +
        +
      • Added non-recursive option “–non-recursive” to not scan sub-directories
      • +
      • Added option “–exclude” to exclude specific files from being scanned (thanks to Delmas for patch #272)
      • +
      +
    • +
    • CPD is now thread-safe, so that multiple instances of CPD can run concurrently without stepping + on each other (eg: multi-module Maven projects.). Thanks to David Golpira.
    • +
    + +

    Miscellaneous:

    + +
      +
    • Upgrade to javacc 5.0 (see patch #1109 Patch to build with Javacc 5.0)
    • +
    • DBURI as DataSource possible - directly scan plsql code stored within the database
    • +
    + +

    API Changes

    + +
      +
    • Deprecated APIs: +
        +
      • net.sourceforge.pmd.lang.ecmascript.ast.ASTFunctionNode: getBody(int index) deprecated, use getBody() instead
      • +
      • net.sourceforge.pmd.lang.ecmascript.ast.ASTTryStatement: isCatch() and isFinally() deprecated, use hasCatch() and hasBody() instead
      • +
      +
    • +
    • Generalize Symbol Table treatement +
        +
      • Added net.sourceforge.pmd.lang.symboltable.ScopedNode
      • +
      • Added net.sourceforge.pmd.lang.symboltable.Scope
      • +
      • Added net.sourceforge.pmd.lang.symboltable.NameDeclaration
      • +
      • Added net.sourceforge.pmd.lang.symboltable.NameOccurrence
      • +
      • Added net.sourceforge.pmd.lang.symboltable.AbstractScope
      • +
      • Added net.sourceforge.pmd.lang.symboltable.AbstractNameDeclaration
      • +
      +
    • +
    + +

    August 11, 2013 - 5.0.5:

    + +
    Fixed bug  991: AvoidSynchronizedAtMethodLevel for static methods
    +Fixed bug 1084: NPE at UselessStringValueOfRule.java:36
    +Fixed bug 1091: file extension for fortran seems to be wrong in cpdgui tools
    +Fixed bug 1092: Wrong Attribute "excludemarker" in Ant Task Documentation
    +Fixed bug 1095: AvoidFinalLocalVariable false positive
    +Fixed bug 1099: UseArraysAsList false positives
    +Fixed bug 1102: False positive: shift operator parenthesis
    +Fixed bug 1104: IdempotentOperation false positive
    +Fixed bug 1107: PMD 5.0.4 couldn't parse call of parent outer java class method from inner class
    +Fixed bug 1069: Eclipse plugin does not accept project-local config
    +Fixed bug 1111: False positive: Useless parentheses
    +Fixed bug 1114: CPD - Tokenizer not initialized with requested properties
    +Fixed bug 1118: ClassCastException in pmd.lang.ecmascript.ast.ASTElementGet
    +
    + +

    May 1, 2013 - 5.0.4:

    + +
    Fixed bug  254: False+ : UnusedImport with Javadoc @throws
    +Fixed bug  794: False positive on PreserveStackTrace with anonymous inner
    +Fixed bug 1063: False+: ArrayIsStoredDirectly
    +Fixed bug 1080: net.sourceforge.pmd.cpd.CPDTest test failing
    +Fixed bug 1081: Regression: CPD skipping all files when using relative paths
    +Fixed bug 1082: CPD performance issue on larger projects
    +Fixed bug 1085: NullPointerException by at net.sourceforge.pmd.lang.java.rule.design.GodClassRule.visit(GodClassRule.java:313)
    +Fixed bug 1086: Unsupported Element and Attribute in Ant Task Example
    +Fixed bug 1087: PreserveStackTrace (still) ignores initCause()
    +Fixed bug 1089: When changing priority in a custom ruleset, violations reported twice
    +
    + +

    April 5, 2013 - 5.0.3:

    + +
    Fixed bug  938: False positive on LooseCoupling for overriding methods
    +Fixed bug  940: False positive on UnsynchronizedStaticDateFormatter
    +Fixed bug  942: CheckResultSet False Positive and Negative
    +Fixed bug  943: PreserveStackTrace false positive if a StringBuffer exists
    +Fixed bug  945: PMD generates RuleSets it cannot read.
    +Fixed bug  958: Intermittent NullPointerException while loading XPath node attributes
    +Fixed bug  968: Issues with JUnit4 @Test annotation with expected exception (Thanks to Yiannis Paschalidis)
    +Fixed bug  975: false positive in ClassCastExceptionWithToArray
    +Fixed bug  976: UselessStringValueOf wrong when appending character arrays
    +Fixed bug  977: MisplacedNullCheck makes false positives
    +Fixed bug  984: Cyclomatic complexity should treat constructors like methods
    +Fixed bug  985: Suppressed methods shouldn't affect avg CyclomaticComplexity
    +Fixed bug  992: Class java.beans.Statement triggered in CloseResource rule
    +Fixed bug  997: Rule NonThreadSafeSingleton gives analysis problem
    +Fixed bug  999: Law of Demeter: False positives and negatives
    +Fixed bug 1002: False +: FinalFieldCouldBeStatic on inner class
    +Fixed bug 1005: False + for ConstructorCallsOverridableMethod - overloaded methods
    +Fixed bug 1027: PMD Ant: java.lang.ClassCastException
    +Fixed bug 1032: ImmutableField Rule: Private field in inner class gives false positive
    +Fixed bug 1064: Exception running PrematureDeclaration
    +Fixed bug 1068: CPD fails on broken symbolic links
    +Fixed bug 1073: Hard coded violation messages CommentSize
    +Fixed bug 1074: rule priority doesn't work on group definitions
    +Fixed bug 1076: Report.treeIterator() does not return all violations
    +Fixed bug 1077: Missing JavaDocs for Xref-Test Files
    +Fixed bug 1078: Package statement introduces false positive UnnecessaryFullyQualifiedName violation
    +Merged pull request #14: fix Nullpointer Exception when using -l jsp
    +
    + +

    February 3, 2013 - 5.0.2:

    + +
    Fixed bug  878: False positive: UnusedFormalParameter for abstract methods
    +Fixed bug  913: SignatureDeclareThrowsException is raised twice
    +Fixed bug  947: CloseResource rule fails if field is marked with annotation
    +Fixed bug 1004: targetjdk isn't attribute of PMD task
    +Fixed bug 1007: Parse Exception with annotation
    +Fixed bug 1011: CloseResource Rule ignores Constructors
    +Fixed bug 1012: False positive: Useless parentheses.
    +Fixed bug 1020: Parsing Error
    +Fixed bug 1026: PMD doesn't handle 'value =' in SuppressWarnings annotation
    +Fixed bug 1028: False-positive: Compare objects with equals for Enums
    +Fixed bug 1030: CPD Java.lang.IndexOutOfBoundsException: Index:
    +Fixed bug 1037: Facing a showstopper issue in PMD Report Class (report listeners)
    +Fixed bug 1039: pmd-nicerhtml.xsl is packaged in wrong location
    +Fixed bug 1043: node.getEndLine() always returns 0 (ECMAscript)
    +Fixed bug 1044: Unknown option: -excludemarker
    +Fixed bug 1046: ant task CPDTask doesn't accept ecmascript
    +Fixed bug 1047: False Positive in 'for' loops for LocalVariableCouldBeFinal in 5.0.1
    +Fixed bug 1048: CommentContent Rule, String Index out of range Exception
    +Fixed bug 1049: Errors in "How to write a rule"
    +Fixed bug 1055: Please add a colon in the ant output after line,column for Oracle JDeveloper IDE usage
    +Fixed bug 1056: "Error while processing" while running on xml file with DOCTYPE reference
    +Fixed bug 1060: GodClassRule >>> wrong method
    +
    + +

    November 28, 2012 - 5.0.1:

    + +
    Fixed bug  820: False+ AvoidReassigningParameters
    +Fixed bug 1008: pmd-5.0.0: ImmutableField false positive on self-inc/dec
    +Fixed bug 1009: pmd-5.0.0: False + UselessParentheses
    +Fixed bug 1003: newline characters stripped from CPD data in PMD 5.0.0
    +Fixed bug 1001: InsufficientStringBufferDeclaration fails to parse hex
    +Fixed bug  522: InefficientStringBuffering bug false +
    +Fixed bug  953: String.InefficientStringBuffering false +
    +Fixed bug  981: Unable to parse
    +Fixed bug 1010: pmd: parsing of generic method call with super fails
    +Fixed bug  996: pmd-4.2.6: MissingBreakInSwitch fails to report violation
    +Fixed bug  993: Invalid NPath calculation in return statement. Thanks to Prabhjot Singh for the patch.
    +Fixed bug 1023: c/c++ \ as a continuation character not supported
    +Fixed bug 1033: False+ : SingularField
    +Fixed bug 1025: Regression of Crash in PMDTask due to multithreading (Eclipse and Java 1.5)
    +Fixed bug 1017: Type resolution very slow for big project. Thanks to Roman for the patch.
    +Fixed bug 1036: Documentation: default threshold values removed from v5.0
    +Fixed bug 1035: UseObjectForClearerAPI has misspelled message
    +Fixed bug 1031: false DontImportJavaLang
    +Fixed bug 1034: UseConcurrentHashMap flags calls to methods that return Map
    +Fixed bug 1006: Problem with implementation of getPackageNameImage method
    +Fixed bug 1014: AvoidLiteralsInIfCondition must NOT consider null
    +Fixed bug 1013: jnlp link for CPD is wrong
    +
    +PMD Command Line Changes:
    +  Improved command line interface (CLI) parsing using JCommander.
    +  Note: this breaks compatibility, but should be easy to fix.
    +  With "-d" you specify nowtThe source files / source directory to be scanned.
    +  With "-f" you select the report format (like text, html, ...)
    +  With "-R" you select the rulesets to be used.
    +  Example: pmd -d c:\data\pmd\pmd\test-data\Unused1.java -f xml -R rulesets/java/unusedcode.xml
    +
    +Improved JSP parser to be less strict with not valid XML documents (like HTML). Thanks to Victor Bucutea.
    +Fixed bgastviewer not working. Thanks to Victor Bucutea.
    +Improved CPD: Support in CPD for IgnoreAnnotations and SuppressWarnings("CPD-START"). Thanks to Matthew Short.
    +Fixed C# support for CPD - thanks to TIOBE Software.
    +
    +New Ecmascript rules:
    +
    +    Basic ruleset: AvoidTrailingComma
    +
    + +

    May, 1, 2012 - 5.0.0:

    + +
    Fixed bug 3515487: Inconsistent reference to ruleset file in documentation
    +Fixed bug 3470274: Using Label for lines in XMLRenderer
    +Fixed bug 3175710: NPE in InsufficientStringBufferDeclaration
    +
    +CPD:
    +- Exit with status code 4 when CPD detects code duplication (Patch ID: 3497021)
    +
    + +

    January 31, 2012 - 5.0-alpha:

    + +
    This version of PMD breaks API compatibility with prior versions of PMD, as well
    +as RuleSet XML compatibility. Also the maven coordinates (groupId) have been changed.
    +The decision to break compatibility, allows PMD
    +internals and code organization to be improved to better handle additional
    +languages.  This opportunity was used to remove depreciated APIs, and beat up
    +any code which has thumbed its nose at the developers over the years. ;)
    +
    +The following is relatively complete list of the major changes (this may not be
    +100% accurate, see actual source code when in doubt):
    +
    +Fixed bug (no number) - Fixed UseStringBufferLengthRule only worked once per class
    +All StringBuffer-related rules now also catch StringBuilder-related issues in the same way
    +
    +    API Change - Unification of treatment of languages within PMD core:
    +       Added - net.sourceforge.pmd.lang.Language (now an 'enum')
    +       Added - net.sourceforge.pmd.lang.LanguageVersion
    +       Added - net.sourceforge.pmd.lang.LanguageVersionDiscoverer
    +       Added - net.sourceforge.pmd.lang.LanguageVersionHandler
    +       Added - net.sourceforge.pmd.lang.XPathHandler
    +       Added - net.sourceforge.pmd.lang.ast.xpath.AbstractASTXPathHandler
    +       Added - net.sourceforge.pmd.lang.xpath.Initializer
    +       Added - net.sourceforge.pmd.lang.ast.AbstractTokenManager
    +       Added - net.sourceforge.pmd.lang.ast.CharStream
    +       Added - net.sourceforge.pmd.lang.ast.JavaCharStream
    +       Added - net.sourceforge.pmd.lang.ast.SimpleCharStream
    +       Added - net.sourceforge.pmd.lang.ast.TokenMgrError
    +       Added - net.sourceforge.pmd.lang.rule.stat.StatisticalRule
    +       Added - net.sourceforge.pmd.lang.rule.stat.StatisticalRuleHelper
    +       Added - net.sourceforge.pmd.lang.java.rule.AbstractStatisticalJavaRule
    +       Added - net.sourceforge.pmd.lang.rule.AbstractRuleViolationFactory
    +       Added - net.sourceforge.pmd.lang.rule.RuleViolationFactory
    +       Added - net.sourceforge.pmd.lang.java.rule.JavaRuleViolationFactory
    +       Added - net.sourceforge.pmd.lang.jsp.rule.JspRuleViolationFactory
    +       Renamed - net.sourceforge.pmd.AbstractRule to net.sourceforge.pmd.lang.rule.AbstractRule
    +       Renamed - net.sourceforge.pmd.AbstractJavaRule to net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
    +       Renamed - net.sourceforge.pmd.AbstractRuleChainVisitor to net.sourceforge.pmd.lang.rule.AbstractRuleChainVisitor
    +       Renamed - net.sourceforge.pmd.RuleChainVisitor to net.sourceforge.pmd.lang.rule.RuleChainVisitor
    +       Renamed - net.sourceforge.pmd.SourceFileSelector to net.sourceforge.pmd.lang.rule.LanguageFilenameFilter
    +       Renamed - net.sourceforge.pmd.rule.XPathRule to net.sourceforge.pmd.lang.rule.XPathRule
    +       Renamed - net.sourceforge.pmd.jsp.rule.AbstractJspRule to net.sourceforge.pmd.lang.jsp.rule.AbstractJspRule
    +       Renamed - net.sourceforge.pmd.ast.CompilationUnit to net.sourceforge.pmd.lang.ast.RootNode
    +       Renamed - net.sourceforge.pmd.ast.JavaRuleChainVisitor to net.sourceforge.pmd.lang.java.rule.JavaRuleChainVisitor
    +       Renamed - net.sourceforge.pmd.jsp.ast.JspRuleChainVisitor to net.sourceforge.pmd.lang.jsp.rule.JspRuleChainVisitor
    +       Renamed - net.sourceforge.pmd.parser.Parser to net.sourceforge.pmd.lang.Parser
    +       Renamed - net.sourceforge.pmd.parser.TokenManager to net.sourceforge.pmd.lang.TokenManager
    +       Renamed - net.sourceforge.pmd.parser.* into net.sourceforge.pmd.lang.{Language}
    +       Renamed - net.sourceforge.pmd.sourcetypehandlers.SourceTypeHandler to net.sourceforge.pmd.lang.LanguageVersionHandler
    +       Renamed - net.sourceforge.pmd.sourcetypehandlers.VisitorStarter to net.sourceforge.pmd.lang.VisitorStarter
    +       Renamed - net.sourceforge.pmd.sourcetypehandlers.* into net.sourceforge.pmd.lang.{Language}
    +       Renamed - net.sourceforge.pmd.stat.StatisticalRule to net.sourceforge.pmd.lang.rule.StatisticalRuleHelper
    +       Renamed - net.sourceforge.pmd.jaxen.TypeOfFunction to net.sourceforge.pmd.lang.java.xpath.TypeOfFunction
    +       Renamed - net.sourceforge.pmd.jaxen.MatchesFunction to net.sourceforge.pmd.lang.xpath.MatchesFunction
    +       Renamed - net.sourceforge.pmd.jaxen.Attribute to net.sourceforge.pmd.lang.ast.xpath.Attribute
    +       Renamed - net.sourceforge.pmd.jaxen.AttributeAxisIterator to net.sourceforge.pmd.lang.ast.xpath.AttributeAxisIterator
    +       Renamed - net.sourceforge.pmd.jaxen.DocumentNavigator to net.sourceforge.pmd.lang.ast.xpath.DocumentNavigator
    +       Renamed - net.sourceforge.pmd.jaxen.NodeIterator to net.sourceforge.pmd.lang.ast.xpath.NodeIterator
    +       Renamed - net.sourceforge.pmd.ast.* into net.sourceforge.pmd.lang.java.ast.*
    +       Renamed - net.sourceforge.pmd.rules.* into net.sourceforge.pmd.lang.java.rule.* and updated to follow conventions
    +       Renamed - net.sourceforge.pmd.jsp.ast.* into net.sourceforge.pmd.lang.jsp.ast.*
    +       Renamed - net.sourceforge.pmd.jsp.rules.* into net.sourceforge.pmd.lang.jsp.ast.rule.* and updated to follow conventions
    +       Deleted - net.sourceforge.pmd.cpd.cppast.* into net.sourceforge.pmd.lang.cpp.ast.*
    +       Deleted - net.sourceforge.pmd.CommonAbstractRule
    +       Deleted - net.sourceforge.pmd.SourceFileConstants
    +       Deleted - net.sourceforge.pmd.SourceType
    +       Deleted - net.sourceforge.pmd.SourceTypeDiscoverer
    +       Deleted - net.sourceforge.pmd.SourceTypeToRuleLanguageMapper
    +       Deleted - net.sourceforge.pmd.TargetJDK1_3
    +       Deleted - net.sourceforge.pmd.TargetJDK1_4
    +       Deleted - net.sourceforge.pmd.TargetJDK1_5
    +       Deleted - net.sourceforge.pmd.TargetJDK1_6
    +       Deleted - net.sourceforge.pmd.TargetJDK1_7
    +       Deleted - net.sourceforge.pmd.TargetJDKVersion
    +       Deleted - net.sourceforge.pmd.cpd.SourceFileOrDirectoryFilter
    +       Deleted - net.sourceforge.pmd.sourcetypehandlers.SourceTypeHandlerBroker
    +       Deleted - net.sourceforge.pmd.ast.JavaCharStream
    +       Deleted - net.sourceforge.pmd.ast.CharStream
    +       Deleted - net.sourceforge.pmd.ast.TokenMgrError
    +       Deleted - net.sourceforge.pmd.jsp.ast.JspCharStream
    +       Deleted - net.sourceforge.pmd.jsp.ast.TokenMgrError
    +
    +    API Change - Generalize RuleViolation treatment
    +       Renamed - net.sourceforge.pmd.IRuleViolation to net.sourceforge.pmd.RuleViolation
    +       Renamed - net.sourceforge.pmd.RuleViolation to net.sourceforge.pmd.lang.rule.AbstractRuleViolation
    +       Added - net.sourceforge.pmd.RuleViolationComparator
    +       Added - net.sourceforge.pmd.lang.java.rule.JavaRuleViolation
    +       Added - net.sourceforge.pmd.lang.jsp.rule.JspRuleViolation
    +
    +    API Change - Generalize DFA treatment
    +       Renamed - net.sourceforge.pmd.dfa.IDataFlowNode to net.sourceforge.pmd.lang.dfa.DataFlowNode
    +       Renamed - net.sourceforge.pmd.dfa.DataFlowNode to net.sourceforge.pmd.lang.dfa.AbstractDataFlowNode
    +       Renamed - net.sourceforge.pmd.dfa.Linker to net.sourceforge.pmd.lang.dfa.Linker
    +       Renamed - net.sourceforge.pmd.dfa.LinkerException to net.sourceforge.pmd.lang.dfa.LinkerException
    +       Renamed - net.sourceforge.pmd.dfa.NodeType to net.sourceforge.pmd.lang.dfa.NodeType
    +       Renamed - net.sourceforge.pmd.dfa.StackObject to net.sourceforge.pmd.lang.dfa.StackObject
    +       Renamed - net.sourceforge.pmd.dfa.SequenceChecker to net.sourceforge.pmd.lang.dfa.SequenceChecker
    +       Renamed - net.sourceforge.pmd.dfa.SequenceException to net.sourceforge.pmd.lang.dfa.SequenceException
    +       Renamed - net.sourceforge.pmd.dfa.StartOrEndDataFlowNode to net.sourceforge.pmd.lang.dfa.StartOrEndDataFlowNode
    +       Renamed - net.sourceforge.pmd.dfa.Structure to net.sourceforge.pmd.lang.dfa.Structure
    +       Renamed - net.sourceforge.pmd.dfa.variableaccess.VariableAccess to net.sourceforge.pmd.lang.dfa.VariableAccess
    +       Renamed - net.sourceforge.pmd.dfa.variableaccess.VariableAccessException to net.sourceforge.pmd.lang.dfa.VariableAccessException
    +       Renamed - net.sourceforge.pmd.dfa.pathfinder.* to net.sourceforge.pmd.lang.dfa.pathfinder.*
    +       Renamed - net.sourceforge.pmd.dfa.report.* to net.sourceforge.pmd.lang.dfa.report.*
    +       Renamed - net.sourceforge.pmd.dfa.DaaRuleViolation to net.sourceforge.pmd.lang.java.dfa.DaaRuleViolation
    +       Renamed - net.sourceforge.pmd.dfa.DataFlowFacade to net.sourceforge.pmd.lang.java.dfa.DataFlowFacade
    +       Renamed - net.sourceforge.pmd.dfa.StatementAndBraceFinder to net.sourceforge.pmd.lang.java.dfa.StatementAndBraceFinder
    +       Renamed - net.sourceforge.pmd.dfa.variableaccess.VariableAccessVisitor to net.sourceforge.pmd.lang.java.dfa.VariableAccessVisitor
    +       Added - net.sourceforge.pmd.lang.java.dfa.JavaDataFlowNode
    +       Added - net.sourceforge.pmd.lang.DataFlowHandler
    +
    +   API Change - Generalize Symbol Table treatement
    +       Deleted - net.sourceforge.pmd.symboltable.JspSymbolFacade
    +       Deleted - net.sourceforge.pmd.symboltable.JspScopeAndDeclarationFinder
    +       Renamed - net.sourceforge.pmd.symboltable.* to net.sourceforge.pmd.lang.java.symboltable.*
    +
    +   API Change - Generalize Type Resolution treatment
    +       Renamed - net.sourceforge.pmd.typeresolution.* to net.sourceforge.pmd.lang.java.typeresolution.*
    +
    +    API Change - Generalize Property Descriptor treatment
    +       Renamed - net.sourceforge.pmd.properties.* to net.sourceforge.pmd.lang.rule.properties.*
    +       Renamed - net.sourceforge.pmd.properties.AbstractPMDProperty to net.sourceforge.pmd.lang.rule.properties.AbstractProperty
    +       Changed - net.sourceforge.pmd.properties.PropertyDescriptor to use Generics, and other changes
    +       Added - net.sourceforge.pmd.lang.rule.properties.* new types and other API changes
    +
    +    API Change - Generalize AST treatment
    +       Added - net.sourceforge.pmd.lang.ast.Node (interface extracted from old Node/SimpleNode)
    +       Added - net.sourceforge.pmd.lang.ast.AbstractNode
    +       Added - net.sourceforge.pmd.ast.DummyJavaNode
    +       Added - net.sourceforge.pmd.jsp.ast.AbstractJspNode
    +       Added - net.sourceforge.pmd.jsp.ast.JspNode
    +       Renamed - net.sourceforge.pmd.ast.SimpleJavaNode to net.sourceforge.pmd.ast.AbstractJavaNode
    +       Renamed - net.sourceforge.pmd.ast.SimpleJavaTypeNode to net.sourceforge.pmd.ast.AbstractJavaTypeNode
    +       Renamed - net.sourceforge.pmd.ast.SimpleJavaAccessNode to net.sourceforge.pmd.ast.AbstractJavaAccessNode
    +       Renamed - net.sourceforge.pmd.ast.SimpleJavaAccessTypeNode to net.sourceforge.pmd.ast.AbstractJavaAccessTypeNode
    +       Deleted - net.sourceforge.pmd.ast.Node
    +       Deleted - net.sourceforge.pmd.ast.SimpleNode
    +       Deleted - net.sourceforge.pmd.ast.AccessNodeInterface
    +       Deleted - net.sourceforge.pmd.jsp.ast.Node
    +       Deleted - net.sourceforge.pmd.jsp.ast.SimpleNode
    +
    +    API Change - General code reorganization/cleanup
    +       Renamed - net.sourceforge.pmd.AbstractDelegateRule to net.sourceforge.pmd.lang.rule.AbstractDelegateRule
    +       Renamed - net.sourceforge.pmd.MockRule to net.sourceforge.pmd.lang.rule.MockRule
    +       Renamed - net.sourceforge.pmd.RuleReference to net.sourceforge.pmd.lang.rule.RuleReference
    +       Renamed - net.sourceforge.pmd.ScopedLogHandlersManager to net.sourceforge.pmd.util.log.ScopedLogHandlersManager
    +       Renamed - net.sourceforge.pmd.util.AntLogHandler to net.sourceforge.pmd.util.log.AntLogHandler
    +       Renamed - net.sourceforge.pmd.util.ConsoleLogHandler to net.sourceforge.pmd.util.log.ConsoleLogHandler
    +       Renamed - net.sourceforge.pmd.util.PmdLogFormatter to net.sourceforge.pmd.util.log.PmdLogFormatter
    +
    +   API Change - Changes to Rule/RuleSet/RuleSets
    +      Removed - boolean Rule.include()
    +      Removed - void Rule.setInclude(boolean)
    +      Removed - String Rule.getRulePriorityName()
    +      Removed - String Rule.getExample()
    +      Removed - Rule.LOWEST_PRIORITY
    +      Removed - Rule.PRIORITIES
    +       Removed - Properties Rule.getProperties()
    +       Removed - Rule.addProperties(Properties)
    +       Removed - boolean Rule.hasProperty(String)
    +       Removed - RuleSet.applies(Language,Language)
    +       Removed - RuleSet.getLanguage()
    +       Removed - RuleSet.setLanguage(Language)
    +       Removed - RuleSets.applies(Language,Language)
    +      Changed - void Rule.setPriority(int) to void Rule.setPriority(RulePriority)
    +      Changed - int Rule.getPriority() to void RulePriority Rule.getPriority()
    +       Changed - XXX Rule.getXXXProperty(String) to <T> Rule.getProperty(PropertyDescriptor<T>)
    +       Changed - XXX Rule.getXXXProperty(PropertyDescriptor) to <T> Rule.getProperty(PropertyDescriptor<T>)
    +       Changed - Rule.addProperty(String, String) to Rule.setProperty(PropertyDescriptor<T>, T)
    +       Changed - Rule.setProperty(PropertyDescriptor, Object) to Rule.setProperty(PropertyDescriptor<T>, T)
    +       Changed - Rule.setProperty(PropertyDescriptor, Object[]) to Rule.setProperty(PropertyDescriptor<T>, T)
    +       Changed - Rule.propertyValuesByDescriptor() to Rule.getPropertiesByPropertyDescriptor()
    +       Changed - PropertyDescriptor Rule.propertyDescriptorFor(String) to PropertyDescriptor Rule.getPropertyDescriptor(String)
    +       Changed - boolean RuleSet.usesDFA() to boolean RuleSet.usesDFA(Language)
    +       Changed - boolean RuleSet.usesTypeResolution() to boolean RuleSet.usesTypeResolution(Language)
    +      Added - Rule.setLanguage(Language)
    +      Added - Language Rule.getLanguage()
    +      Added - Rule.setMinimumLanguageVersion(LanguageVersion)
    +      Added - LanguageVersion Rule.getMinimumLanguageVersion()
    +      Added - Rule.setMaximumLanguageVersion(LanguageVersion)
    +      Added - LanguageVersion Rule.getMaximumLanguageVersion()
    +      Added - Rule.setDeprecated(boolean)
    +      Added - boolean Rule.isDeprecated()
    +      Added - String Rule.dysfunctionReason();
    +       Added - Rule.definePropertyDescriptor(PropertyDescriptor)
    +       Added - List<PropertyDescriptor> Rule.getPropertyDescriptors()
    +       Added - RuleSet.applies(Rule,LanguageVersion)
    +
    +   API Change - Changes to PMD class
    +      Renamed - PMD.EXCLUDE_MARKER to PMD.SUPPRESS_MARKER
    +      Removed - PMD.processFile(InputStream, RuleSet, RuleContext)
    +      Removed - PMD.processFile(InputStream, String, RuleSet, RuleContext)
    +      Removed - PMD.processFile(Reader, RuleSet, RuleContext)
    +      Removed - PMD.processFile(Reader, RuleSets, RuleContext, LanguageVersion)
    +      Moved - PMD.getExcludeMarker() to Configuration.getSuppressMarker()
    +      Moved - PMD.setExcludeMarker(String) to Configuration.getSuppressMarker(String)
    +      Moved - PMD.getClassLoader() to Configuration.getClassLoader()
    +      Moved - PMD.setClassLoader(ClassLoader) to Configuration.getClassLoader(ClassLoader)
    +      Moved - PMD.setDefaultLanguageVersion(LanguageVersion) to Configuration.setDefaultLanguageVersion(LanguageVersion)
    +      Moved - PMD.setDefaultLanguageVersions(List<LanguageVersion>) to Configuration.setDefaultLanguageVersions(List<LanguageVersion>)
    +      Moved - PMD.createClasspathClassLoader(String) to Configuration.createClasspathClassLoader(String)
    +
    +   API Change - Changes to Node interface
    +      Renamed - Node.findChildrenOfType(Class) as Node.findDescendantsOfType(Class)
    +      Renamed - Node.getFirstChildOfType(Class) as Node.getFirstDescendantOfType(Class)
    +      Renamed - Node.containsChildOfType(Class) as Node.hasDescendantOfType(Class)
    +      Renamed - Node.getAsXml() as Node.getAsDocument()
    +      Added - Node.findChildrenOfType(Class), non recursive version
    +      Added - Node.getFirstChildOfType(Class), non recursive version
    +
    +   API Change - Remove deprecated APIs
    +      Removed - AccessNode.setXXX() methods, use AccessNode.setXXX(boolean) instead.
    +      Removed - PMDException.getReason()
    +      Removed - RuleSetFactory.createRuleSet(String,ClassLoader), use RuleSetFactory.setClassLoader(ClassLoader) and RuleSetFactory.createRuleSets(String) instead.
    +      Removed - net.sourceforge.pmd.cpd.FileFinder use net.sourceforge.pmd.util.FileFinder instead.
    +
    +   API Change - RuleSetFactory
    +        Added - RuleSetFactory.setClassLoader(ClassLoader)
    +        Added - RuleSetFactory.createRuleSets(List<RuleSetReferenceId>)
    +        Added - RuleSetFactory.createRuleSet(RuleSetReferenceId)
    +        Added - RuleSetFactory.setClassLoader(ClassLoader)
    +        Added - RuleSetReferenceId class to handle parsing of RuleSet strings, see RuleSetReferenceId.parse(String)
    +      Renamed - RuleSetFactory.createSingleRuleSet(String) to RuleSetFactory.createRuleSet(String);
    +      Removed - RuleSetFactory.createRuleSets(String, ClassLoader), use RuleSetFactory.createRuleSets(String) instead.
    +      Removed - RuleSetFactory.createSingleRuleSet(String, ClassLoader), use RuleSetFactory.createSingleRuleSet(String) instead.
    +      Removed - RuleSetFactory.createRuleSet(InputStream, ClassLoader), use RuleSetFactory.createRuleSet(RuleSetReferenceId) instead.
    +      Removed - ExternalRuleID, use RuleSetReferenceId instead
    +      Removed - SimpleRuleSetNameMapper, use RuleSetReferenceId instead
    +
    +   API Change - Changes to Renderer class, and Renderer implementations
    +        Added - Renderer.getName()
    +        Added - Renderer.setName(String)
    +        Added - Renderer.getDescription()
    +        Added - Renderer.setDescription(String)
    +        Added - Renderer.getPropertyDefinitions()
    +        Added - Renderer.isShowSuppressedViolations()
    +        Added - AbstractAccumulatingRenderer
    +      Removed - Renderer.render(Report)
    +      Removed - Renderer.render(Report, Writer)
    +      Renamed - Renderer.showSuppressedViolations(boolean) to Renderer.setShowSuppressedViolations(boolean)
    +      Renamed - PapariTextRenderer to TextColorRenderer
    +      Renamed - OntheFlyRenderer to AbstractIncrementingRenderer
    +
    +PMD command line changes:
    +
    +   Removed -lineprefix use -property linePrefix {value} instead
    +   Removed -linkprefix use -property linkPrefix {value} instead
    +   Removed -xslt use -property xsltFilename {value} instead
    +   Removed -nojsp now obsolete
    +   Removed -targetjdk use -version {name} {version} instead
    +   Added -version {name} {version} to set language version to use for a given language
    +   Added -property {name} {value} as generic way to pass properties to Renderers
    +   Added -showsuppressed as a means to show suppressed rule violations (consistent with Ant task behavior)
    +   Renamed 'nicehtml' report to 'xslt'
    +   Renamed 'papari' report to 'textcolor'
    +   Renamed -excludemarker option to -suppressmarker
    +   Renamed -cpus option to -threads
    +
    +Ant changes:
    +
    +   Removed - <formatter> 'linkPrefix' attribute, use <param name="linkPrefix"> instead
    +   Removed - <formatter> 'linePrefix' attribute, use <param name="linePrefix"> instead
    +   Changed - <formatter> is optional - if not specified, falls back to "text" and console output.
    +   Removed - <pmd> 'targetJDK' attribute to <version>lang version</version> instead
    +     Added - <param name="name" value="value"/> as generic way to pass properties to Renderers on <formatter>
    +   Renamed - <pmd> 'excludeMarker' attribute to 'suppressMarker'
    +   Renamed - <pmd> 'cpus' attribute to 'threads'
    +
    +Maven changes:
    +   The new maven coordinates are: net.sourceforge.pmd:pmd, e.g.
    +   <dependency>
    +     <groupId>net.sourceforge.pmd</groupId>
    +     <artifactId>pmd</artifactId>
    +     <version>5.0</version>
    +   </dependency>
    +
    +New features:
    +
    +New Language 'ecmascript' added, for writing XPathRule and Java Rules against ECMAScript/JavaScript documents (must be standalone, not embedded in HTML).  Many thanks to Rhino!
    +New Language 'xml' added, for writing XPathRules against XML documents
    +New Language 'xsl' added, as a derivative from XML.
    +Rules can now define a 'violationSuppressRegex' property to universally suppress violations with messages matching the given regular expression
    +Rules can now define a 'violationSuppressXPath' property to universally suppress violations on nodes which match the given relative XPath expression
    +Rules are now directly associated with a corresponding Language, and a can also be associated with a specific Language Version range if desired.
    +Rules can now be flagged with deprecated='true' in the RuleSet XML to allow the PMD Project to indicate a Rule (1) is scheduled for removal, (2) has been removed, or (3) has been renamed/moved.
    +XPathRules can now query using XPath 2.0 with 'version=2.0"', or XPath 2.0 in XPath 1.0 compatibility mode using 'version="1.0 compatibility"'.  Many thanks to Saxon!
    +Rules can now use property values in messages, for example ${propertyName} will expand to the value of the 'propertyName' property on the Rule.
    +Rules can now use violation specific values in messages, specifically ${variableName}, ${methodName}, ${className}, ${packageName}.
    +New XPath function 'getCommentOn' can be used to search for strings in comments - Thanks to Andy Throgmorton
    +
    +CPD:
    +Add .hxx and .hpp as valid file extension for CPD - Thanks to Ryan Pavlik
    +Add options to to the CPD command line task - Thanks to Cd-Man
    +Add C# support for CPD - thanks to Florian Bauer
    +Fix small bug in Rule Designer UI
    +Performance enhacement when parsing Javadoc (Patch ID: 3217201), thanks to Cd-Man
    +Rework the XMLRenderer to use proper XML API and strictly uses the system value for encoding (Fix bug: 1435751)
    +
    +Other changes:
    +Rule property API upgrades:
    +  All numeric property descriptors can specify upper & lower limits
    +  Newly functional Method & Type descriptors allow rule developers to incorporate/watch for individual methods or types
    +  Better initialization error detection
    +  Deprecated old string-keyed property API, will leave some methods behind for XPath rules however
    +'41' and '42' shortcuts for rulesets added
    +The default Java version processed by PMD is now uniformly Java 1.5.
    +RuleViolations in Reports now uses List internally, and RuleViolationComparator is no longer broken
    +TokenManager errors now include a file name whenever possible for every AST in PMD
    +Added file encoding option to CPD GUI, which already existed for the command line and Ant
    +AssignmentInOperand enhanced to catch assignment in 'for' condition, as well as use of increment/decrement operators.  Customization properties added to allow assignment in if/while/for, or use of increment/decrement.
    +Fix false positive on CastExpressions for UselessParentheses
    +Fix false positive where StringBuffer.setLength(0) was using default constructor size of 16, instead of actual constructor size.
    +Fix false negative for non-primitive types for VariableNamingConventions, also expanded scope to local and method/constructors, and enhanced customization options to choose between members/locals/parameters (all checked by default)
    +Fix false negative for UseArraysAsList when the array was passed as method parameter - thanks to Andy Throgmorton
    +Improve TooManyMethods rule - thanks to a patch from Riku Nykanen
    +Improve DoNotCallSystemExit - thanks to a patch from Steven Christou
    +Correct -benchmark reporting of Rule visits via the RuleChain
    +Creating an Empty Code Ruleset and moved the following rules from Basic ruleset:
    +        * Empty Code Rules
    +        * EmptyCatchBlock
    +        * EmptyIfStmt
    +        * EmptyWhileStmt
    +        * EmptyTryBlock
    +        * EmptyFinallyBlock
    +        * EmptySwitchStatements
    +        * EmptySynchronizedBlock
    +        * EmptyStatementNotInLoop
    +        * EmptyInitializer
    +        * EmptyStatementBlock
    +        * EmptyStaticInitializer
    +    Basic rulesets still includes a reference to those rules.
    +Creating a unnecessary Code Ruleset and moved the following rules from Basic ruleset:
    +        * UnnecessaryConversionTemporary
    +        * UnnecessaryReturn
    +        * UnnecessaryFinalModifier
    +        * UselessOverridingMethod
    +        * UselessOperationOnImmutable
    +        * UnusedNullCheckInEquals
    +        * UselessParentheses
    +    Basic rulesets still includes a reference to those rules.
    +
    +Fixed bug 2920057 - Fixed False + on CloseResource
    +Fixed bug 1808110 - Fixed performance issues on PreserveStackTrace
    +Fixed bug 2832322 - cpd.xml file tag path attribute should be entity-encoded
    +Fixed bug 2826119 - False +: DoubleCheckedLocking warning with volatile field
    +Fixed bug 2835074 - False -: DoubleCheckedLocking with reversed null check
    +Fixed bug 1932242 - EmptyMethodInAbstractClassShouldBeAbstract false +
    +Fixed bug 1928009 - Error using migration ruleset in PMD 4.2
    +Fixed bug 1808110 - PreserveStackTrace
    +Fixed bug 1988829 - Violation reported without source file name (actually a fix to ConsecutiveLiteralAppends)
    +Fixed bug 1989814 - false +: ConsecutiveLiteralAppends
    +Fixed bug 1977230 - false positive: UselessOverridingMethod
    +Fixed bug 1998185 - BeanMembersShouldSerialize vs @SuppressWarnings("serial")
    +Fixed bug 2002722 - false + in UseStringBufferForStringAppends
    +Fixed bug 2056318 - False positive for AvoidInstantiatingObjectsInLoops
    +Fixed bug 1977438 - False positive for UselessStringValueOf
    +Fixed bug 2050064 - False + SuspiciousOctalEscape with backslash literal
    +Fixed bug 1556594 - Wonky detection of NullAssignment
    +Fixed bug 1481051 - false + UnusedNullCheckInEquals (and other false positives too)
    +Fixed bug 1943204 - Ant task: <ruleset> path should be relative to Ant basedir
    +Fixed patch 2075906 - Add toString() to the rule UnnecessaryWrapperObjectCreation
    +Fixed bug 2315623 - @SuppressWarnings("PMD.UseSingleton") has no effect
    +Fixed bug 2230809 - False +: ClassWithOnlyPrivateConstructorsShouldBeFinal
    +Fixed bug 2338341 - ArrayIndexOutOfBoundsException in CPD (on Ruby)
    +Fixed bug 2315599 - False +: UseSingleton with class containing constructor
    +Fixed bug 1955852 - false positives for UnusedPrivateMethod & UnusedLocalVariable
    +Fixed bug 2404700 - UseSingleton should not act on enums
    +Fixed bug - JUnitTestsShouldIncludeAssert now detects Junit 4 Assert.assert...  constructs
    +Fixed bug 1609038 - Xslt report generators break if path contains "java"
    +Fixed bug 2142986 - UselessOverridingMethod doesn't consider annotations
    +Fixed bug 2027626 - False + : AvoidFinalLocalVariable
    +Fixed bug 2606609 - False "UnusedImports" positive in package-info.java
    +Fixed bug 2645268 - ClassCastException in UselessOperationOnImmutable.getDeclaration
    +Fixed bug 2724653 - AvoidThreadGroup reports false positives
    +Fixed bug 2904832 - Type resolution not working for ASTType when using an inner class
    +Fixed bug 1435751 - XML format does not support UTF-8
    +Fixed bug 3303811 - Deadlink on "Similar projects" page
    +Fixed bug 3017616 - Updated documentation regarding Netbeans plugin - thanks to Jesse Glick
    +Fixed bug 3427563 - Deprecated class (android.util.config) - thanks to Lukas Reschke for the patch
    +
    +ruleset.dtd and ruleset_xml_schema.xsd added to jar file in rulesets directory
    +bin and java14/bin scripts:
    +    retroweaver version was not correct in java14/bin scripts
    +    support for extra languages in cpd.sh
    +    standard unix scripts can be used with cygwin
    +Upgrading UselessOperationOnImmutable to detect more use cases, especially on String and fix false positives
    +AvoidDuplicateLiteralRule now has 'skipAnnotations' boolean property
    +Fixed false positive in UnusedImports: javadoc comments are parsed to check @see and other tags
    +Fixed parsing bug: constant fields in annotation classes
    +Bug fix: NPE in MoreThanOneLogger
    +UnnecessaryParentheses now checks all expressions, not just return statements
    +UnusedFormalParameter now reports violations on the parameter node, not the method/constructor node
    +Updates to RuleChain to honor RuleSet exclude-pattern
    +Optimizations and false positive fixes in PreserveStackTrace
    +@SuppressWarnings("all") disables all warnings
    +SingularField now checks for multiple fields in the same declaration
    +Java grammar enhanced to include AnnotationMethodDeclaration as parent node of method related children of AnnotationTypeMemberDeclaration
    +JavaCC generated artifacts updated to JavaCC 4.1.
    +Dependencies updates: asm updated to 3.2
    +Ant requirement is now 1.7.0 or higher for compilation
    +    JUnit testing jar is packaged on 1.7.0+ only in ant binary distributions
    +    Note that the ant task still works with 1.6.0 and higher
    +All comment types are now stored in ASTCompilationUnit, not just formal ones
    +Fixed false negative in UselessOverridingMethod
    +Fixed handling of escape characters in UseIndexOfChar and AppendCharacterWithChar
    +Fixed ClassCastException on generic method in BeanMembersShouldSerialize
    +Fixed ClassCastException in symbol table code
    +Support for Java 1.4 runtime dropped, PMD now requires Java 5 or higher.  PMD can still process Java 1.4 source files.
    +Support for Java 1.7
    +Text renderer is now silent if there's no violation instead of displaying "No problems found!"
    +RuleSet short names now require a language prefix, 'basic' is now 'java-basic', and 'rulesets/basic.xml' is now 'rulesets/java/basic.xml'
    +The JSP RuleSets are now in the 'jsp' language, and are 'jsp-basic', 'jsp-basic-jsf', 'rulesets/jsp/basic.xml' and 'rulesets/jsp/basic-jsp.xml'
    +Enhanced logging in the ClassTypeResolver to provide more detailed messaging.
    +AvoidUsingHardCodedIP modified to not use InetAddress.getByName(String), instead does better pattern analysis.
    +The JSP/JSF parser can now parse Unicode input.
    +The JSP/JSP parser can now handle <script>...</script> tags.  The AST HtmlScript node contains the content.
    +Added Ecmascript as a supported language for CPD.
    +The RuleSet XML Schema namespace is now: http://pmd.sourceforge.net/ruleset/2.0.0
    +The RuleSet XML Schema is located in the source at: etc/ruleset_2_0_0.xsd
    +The RuleSet DTD is located in the source at: etc/ruleset_2_0_0.dtd
    +Improved include/exclude pattern matching performance for ends-with type patterns.
    +Modify (and hopefully fixed) CPD algorithm thanks to a patch from Juan Jesús García de Soria.
    +Fixed character reference in xml report - thanks to Seko
    +Enhanced SuspiciousEqualsMethodName rule - thanks to Andy Throgmorton
    +Add a script to launch CPDGUI on Unix system - thanks to Tom Wheeler
    +
    +New Java rules:
    +
    +    Basic ruleset: ExtendsObject,CheckSkipResult,AvoidBranchingStatementAsLastInLoop,DontCallThreadRun,DontUseFloatTypeForLoopIndices
    +    Controversial ruleset: AvoidLiteralsInIfCondition, AvoidPrefixingMethodParameters, OneDeclarationPerLine, UseConcurrentHashMap
    +    Coupling ruleset: LoosePackageCoupling,LawofDemeter
    +    Design ruleset: LogicInversion,UseVarargs,FieldDeclarationsShouldBeAtStartOfClass,GodClass
    +    Empty ruleset: EmptyInitializer,EmptyStatementBlock
    +    Import ruleset: UnnecessaryFullyQualifiedName
    +    Optimization ruleset: RedundantFieldInitializer
    +    Naming ruleset: ShortClassName, GenericsNaming
    +    StrictException ruleset: AvoidThrowingNewInstanceOfSameException, AvoidCatchingGenericException, AvoidLosingExceptionInformation
    +    Unnecessary ruleset: UselessParentheses
    +    JUnit ruleset: JUnitTestContainsTooManyAsserts, UseAssertTrueInsteadOfAssertEquals
    +    Logging with Jakarta Commons ruleset: GuardDebugLogging
    +
    +New Java ruleset:
    +    android.xml: new rules specific to the Android platform
    +
    +New JSP rules:
    +    Basic ruleset: NoInlineScript
    +
    +New ECMAScript rules:
    +    Basic ruleset: AssignmentInOperand,ConsistentReturn,InnaccurateNumericLiteral,ScopeForInVariable,UnreachableCode,EqualComparison,GlobalVariable
    +    Braces ruleset: ForLoopsMustUseBraces,IfStmtsMustUseBraces,IfElseStmtsMustUseBraces,WhileLoopsMustUseBraces
    +    Unnecessary ruleset: UnnecessaryParentheses,UnnecessaryBlock
    +
    +New XML rules:
    +    Basic ruleset: MistypedCDATASection
    +
    + +

    November 4, 2011 - 4.3:

    + +
    Add support for Java 7 grammer - thanks to Dinesh Bolkensteyn and SonarSource
    +Add options --ignore-literals and --ignore-identifiers to the CPD command line task, thanks to Cd-Man
    +Fixed character reference in xml report - thanks to Seko
    +Add C# support for CPD - thanks to Florian Bauer
    +Fix small bug in Rule Designer UI
    +Improve TooManyMethods rule - thanks to a patch from Riku Nykanen
    +Improve DoNotCallSystemExit - thanks to a patch from Steven Christou
    +Fix false negative for UseArraysAsList when the array was passed as method parameter - thanks to Andy Throgmorton
    +Enhanced SuspiciousEqualsMethodName rule - thanks to Andy Throgmorton
    +Add a script to launch CPDGUI on Unix system - thanks to Tom Wheeler
    +
    +New Rule:
    +    Basic ruleset: DontCallThreadRun - thanks to Andy Throgmorton
    +    Logging with Jakarta Commons ruleset: GuardDebugLogging
    +
    + +

    September 14, 2011 - 4.2.6:

    + +
    Fixed bug 2920057 - False + : CloseRessource whith an external getter
    +Fixed bug 1808110 - Fixed performance issue on PreserveStackTrace
    +Fixed bug 2832322 -  cpd.xml file tag path attribute should be entity-encoded
    +Fixed bug 2590258 - NPE with nicerhtml output
    +Fixed bug 2317099 - False + in SimplifyCondition
    +Fixed bug 2606609 - False "UnusedImports" positive in package-info.java
    +Fixed bug 2645268 - ClassCastException in UselessOperationOnImmutable.getDeclaration
    +Fixed bug 2724653 - AvoidThreadGroup reports false positives
    +Fixed bug 2835074 - False -: DoubleCheckedLocking with reversed null check
    +Fixed bug 2826119 - False +: DoubleCheckedLocking warning with volatile field
    +Fixed bug 2904832 - Type resolution not working for ASTType when using an inner class
    +
    +Modify (and hopefully fixed) CPD algorithm thanks to a patch from Juan Jesús García de Soria.
    +Correct -benchmark reporting of Rule visits via the RuleChain
    +Fix issue with Type Resolution incorrectly handling of Classes with same name as a java.lang Class.
    +The JSP/JSF parser can now parse Unicode input.
    +The JSP/JSP parser can now handle <script>...</script> tags.  The AST HtmlScript node contains the content.
    +Added Ecmascript as a supported language for CPD.
    +Improved include/exclude pattern matching performance for ends-with type patterns.
    +
    +Dependencies updates: asm updated to 3.2
    +
    +Android ruleset: CallSuperLast rule now also checks for finish() redefinitions
    +
    +New rule:
    +    Android: DoNotHardCodeSDCard
    +    Controversial : AvoidLiteralsInIfCondition (patch 2591627), UseConcurrentHashMap
    +    StrictExceptions : AvoidCatchingGenericException, AvoidLosingExceptionInformation
    +    Naming : GenericsNaming
    +    JSP: NoInlineScript
    +
    + +

    February 08, 2009 - 4.2.5:

    + +
    Enhanced logging in the ClassTypeResolver to provide more detailed messaging.
    +Fixed bug 2315623 - @SuppressWarnings("PMD.UseSingleton") has no effect
    +Fixed bug 2230809 - False +: ClassWithOnlyPrivateConstructorsShouldBeFinal
    +Fixed bug 2338341 - ArrayIndexOutOfBoundsException in CPD (on Ruby)
    +Fixed bug 2315599 - False +: UseSingleton with class containing constructor
    +Fixed bug 1955852 - false positives for UnusedPrivateMethod & UnusedLocalVariable
    +Fixed bug 2404700 - UseSingleton should not act on enums
    +Fixed bug 2225474 - VariableNamingConventions does not work with nonprimitives
    +Fixed bug 1609038 - Xslt report generators break if path contains "java"
    +Fixed bug - JUnitTestsShouldIncludeAssert now detects Junit 4 Assert.assert...  constructs
    +Fixed bug 2142986 - UselessOverridingMethod doesn't consider annotations
    +Fixed bug 2027626 - False + : AvoidFinalLocalVariable
    +
    +New rule:
    +    StrictExceptions : AvoidThrowingNewInstanceOfSameException
    +New ruleset:
    +    android.xml: new rules specific to the Android platform
    +
    + +

    October 12, 2008 - 4.2.4:

    + +
    Fixed bug 1481051 - false + UnusedNullCheckInEquals (and other false positives too)
    +Fixed bug 1943204 - Ant task: <ruleset> path should be relative to Ant basedir
    +Fixed bug 2139720 - Exception in PMD Rule Designer for inline comments in source
    +Fixed patch 2075906 - Add toString() to the rule UnnecessaryWrapperObjectCreation
    +Fixed ClassCastException on generic method in BeanMembersShouldSerialize
    +Fixed ClassCastException in symbol table code
    +
    + +

    August 31, 2008 - 4.2.3:

    + +
    JavaCC generated artifacts updated to JavaCC 4.1d1.
    +Java grammar enhanced to include AnnotationMethodDeclaration as parent node of method related children of AnnotationTypeMemberDeclaration
    +Fixes for exclude-pattern
    +Updates to RuleChain to honor RuleSet exclude-pattern
    +Upgrading UselessOperationOnImmutable to detect more use cases, especially on String and fix false positives
    +Fixed bug 1988829 - Violation reported without source file name (actually a fix to ConsecutiveLiteralAppends)
    +Fixed bug 1989814 - false +: ConsecutiveLiteralAppends
    +Fixed bug 1977230 - false positive: UselessOverridingMethod
    +Fixed bug 1998185 - BeanMembersShouldSerialize vs @SuppressWarnings("serial")
    +Fixed bug 2002722 - false + in UseStringBufferForStringAppends
    +Fixed bug 2056318 - False positive for AvoidInstantiatingObjectsInLoops
    +Fixed bug 1977438 - False positive for UselessStringValueOf
    +Fixed bug 2050064 - False + SuspiciousOctalEscape with backslash literal
    +Fixed bug 1556594 - Wonky detection of NullAssignment
    +Optimizations and false positive fixes in PreserveStackTrace
    +@SuppressWarnings("all") disables all warnings
    +All comment types are now stored in ASTCompilationUnit, not just formal ones
    +Fixed false negative in UselessOverridingMethod
    +Fixed handling of escape characters in UseIndexOfChar and AppendCharacterWithChar
    +
    +New rule:
    +    Basic ruleset:  EmptyInitializer
    +
    + +

    May 20, 2008 - 4.2.2:

    + +
    Fixed false positive in UnusedImports: javadoc comments are parsed to check @see and other tags
    +Fixed parsing bug: constant fields in annotation classes
    +Bug fix: NPE in MoreThanOneLogger
    +UnnecessaryParentheses now checks all expressions, not just return statements
    +
    + +

    April 11, 2008 - 4.2.1:

    + +
    '41' and '42' shortcuts for rulesets added
    +Fixed bug 1928009 - Error using migration ruleset in PMD 4.2
    +Fixed bug 1932242 - EmptyMethodInAbstractClassShouldBeAbstract false +
    +Fixed bug 1808110 - PreserveStackTrace
    +
    +AvoidDuplicateLiteralRule now has 'skipAnnotations' boolean property
    +ruleset.dtd and ruleset_xml_schema.xsd added to jar file in rulesets directory
    +Update RuleSetWriter to handle non-Apache TRAX implementations, add an option to not use XML Namespaces
    +Added file encoding option to CPD GUI, which already existed for the command line and Ant
    +bin and java14/bin scripts:
    +    retroweaver version was not correct in java14/bin scripts
    +    support for extra languages in cpd.sh
    +    standard unix scripts can be used with cygwin
    +
    + +

    March 25, 2008 - 4.2:

    + +
    Fixed bug 1920155 - CheckResultSet: Does not pass for loop conditionals
    +
    + +

    March 21, 2008 - 4.2rc2:

    + +
    Fixed bug 1912831 - False + UnusedPrivateMethod with varargs
    +Fixed bug 1913536 - Rule Designer does not recognize JSP(XML)
    +Add -auxclasspath option for specifying Type Resolution classpath from command line and auxclasspath nested element for ant task.
    +Fixed formatting problems in loggers.
    +
    +Ant task upgrade:
    +    Added a new attribute 'maxRuleCount' to indicate whether or not to fail the build if PMD finds that much violations.
    +
    + +

    March 07, 2008 - 4.2rc1:

    + +
    Fixed bug 1866198 - PMD should not register global Logger
    +Fixed bug 1843273 - False - on SimplifyBooleanReturns
    +Fixed bug 1848888 - Fixed false positive in UseEqualsToCompareStrings
    +Fixed bug 1874313 - Documentation bugs
    +Fixed bug 1855409 - False + in EmptyMethodInAbstractClassShouldBeAbstract
    +Fixed bug 1888967 - Updated xpath query to detect more "empty" methods.
    +Fixed bug 1891399 - Check for JUnit4 test method fails
    +Fixed bug 1894821 - False - for Test Class without Test Cases
    +Fixed bug 1882457 - PositionLiteralsFirstInComparisons rule not working OK
    +Fixed bug 1842505 - XML output incorrect for inner classes
    +Fixed bug 1808158 - Constructor args could also be final
    +Fixed bug 1902351 - AvoidReassigningParameters not identify parent field
    +Fixed other false positives in EmptyMethodInAbstractClassShouldBeAbstract
    +Fixed other issues in SimplifyBooleanReturns
    +Modified AvoidReassigningParameter to also check constructor arguments for reassignement
    +
    +New rules:
    +    Basic ruleset: AvoidMultipleUnaryOperators
    +    Controversial ruleset: DoNotCallGarbageCollectionExplicitly,UseObjectForClearerAPI
    +    Design ruleset : ReturnEmptyArrayRatherThanNull,TooFewBranchesForASwitchStatement,AbstractClassWithoutAnyMethod
    +    Codesize : TooManyMethods
    +    StrictExceptions : DoNotThrowExceptionInFinally
    +    Strings : AvoidStringBufferField
    +
    +Rule upgrade:
    +    CyclomaticComplexity now can be configured to display only class average complexity or method complexity, or both.
    +
    +Designer upgrade:
    +    A new panel for symbols and a tooltips on AST node that displays line, column and access node attributes (private,
    +    static, abstract,...)
    +
    +1.7 added as a valid option for targetjdk.
    +New elements under <ruleset>: <exclude-pattern> to match files exclude from processing, with <include-pattern> to override.
    +Rules can now be written which produce violations based upon aggregate file processing (i.e. cross/multiple file violations).
    +PMD Rule Designer can now shows Symbol Table contents for the selected AST node.
    +PMD Rule Designer shows position info in tooltip for AST nodes and highlights matching code for selected AST node in code window.
    +CPD Ant task will report to System.out when 'outputFile' not given.
    +RuleSetWriter class can be used to Serialize a RuleSet to XML in a standard fashion.  Recommend PMD IDE plugins standardize their behavior.
    +retroweaver updated to version 2.0.5.
    +
    + +

    November 17, 2007 - 4.1:

    + +
    Fixed annotation bug: ClassCastException when a formal parameter had multiple annotations
    +Added a Visual Studio renderer for CPD; just use "--format vs".
    +Dependencies updates: asm to 3.1, retroweaver to 2.0.2, junit to 4.4
    +new ant target ("regress") to test regression bugs only
    +
    + +

    November 01, 2007 - 4.1rc1:

    + +
    New rules:
    +    Basic ruleset: AvoidUsingHardCodedIP,CheckResultSet
    +    Controversial ruleset: AvoidFinalLocalVariable,AvoidUsingShortType,AvoidUsingVolatile,AvoidUsingNativeCode,AvoidAccessibilityAlteration
    +    Design ruleset: ClassWithOnlyPrivateConstructorsShouldBeFinal,EmptyMethodInAbstractClassShouldBeAbstract
    +    Imports ruleset: TooManyStaticImports
    +    J2ee ruleset: DoNotCallSystemExit, StaticEJBFieldShouldBeFinal,DoNotUseThreads
    +    Strings ruleset: UseEqualsToCompareStrings
    +
    +Fixed bug 674394  - fixed false positive in DuplicateImports for disambiguation import
    +Fixed bug 631681  - fixed false positive in UnusedPrivateField when field is accessed by outer class
    +Fixed bug 985989  - fixed false negative in ConstructorCallsOverridableMethod for inner static classes
    +Fixed bug 1409944 - fixed false positive in SingularField for lock objects
    +Fixed bug 1472195 - fixed false positives in PositionLiteralsFirstInComparisons when the string is used as a parameter
    +Fixed bug 1522517 - fixed false positive in UselessOverridingMethod for clone method
    +Fixed bug 1744065 - fixed false positive in BooleanInstantiation when a custom Boolean is used
    +Fixed bug 1765613 - fixed NullPointerException in CloneMethodMustImplementCloneable when checking enum
    +Fixed bug 1740480 - fixed false positive in ImmutableField when the assignment is inside an 'if'
    +Fixed bug 1702782 - fixed false positive in UselessOperationOnImmutable when an Immutable on which an operation is performed is compareTo'd
    +Fixed bugs 1764288/1744069/1744071 - When using Type Resolution all junit test cases will notice if you're using an extended TestCase
    +Fixed bug 1793215 - pmd-nicerhtml.xsl does not display line numbers
    +Fixes bug 1796928 - fixed false positive in AvoidThrowingRawExceptionTypes, when a Type name is the same as a RawException.
    +Fixed bug 1811506 - False - : UnusedFormalParameter (property "checkall" needs to be set)
    +Fixed false negative in UnnecessaryCaseChange
    +
    +The Java 1.5 source code parser is now the default for testcode used in PMD's unit tests.
    +Added TypeResolution to the XPath rule. Use typeof function to determine if a node is of a particular type
    +Adding a GenericLiteralChecker, a generic rule that require a regex as property. It will log a violation if a Literal is matched by the regex. See the new rule AvoidUsingHardCodedIP for an example.
    +Adding support for multiple line span String in CPD's AbstractTokenizer, this may change, for the better, CPD's Ruby parsing.
    +This release adds 'nicehtml', with the plan for the next major release to make nicehtml->html, and html->oldhtml. This feature uses an XSLT transformation, default stylesheet maybe override with '-xslt filename'.
    +New CPD command line feature : Using more than one directory for sources. You can now have several '--files' on the command line.
    +SingularField greatly improved to generate very few false positives (none?). Moved from controversial to design. Two options added to restore old behaviour (mostly).
    +Jaxen updated to 1.1.1, now Literal[@Image='""'] works in XPath expressions.
    +
    + +

    July 20, 2007 - 4.0

    + +
    Fixed bug 1697397 - fixed false positives in ClassCastExceptionWithToArray
    +Fixed bug 1728789 - removed redundant rule AvoidNonConstructorMethodsWithClassName; MethodWithSameNameAsEnclosingClass is faster and does the same thing.
    +
    + +

    July 12, 2007 - 4.0rc2:

    + +
    New rules:
    +    Typeresolution ruleset: SignatureDeclareThrowsException - re-implementation using the new Type Resolution facility (old rule is still available)
    +Fixed bug 1698550 - CloneMethodMustImplementCloneable now accepts a clone method that throws CloneNotSupportedException in a final class
    +Fixed bug 1680568 - The new typeresolution SignatureDeclareThrowsException rule now ignores setUp and tearDown in JUnit 4 tests and tests that do not directly extend TestCase
    +The new typeresolution SignatureDeclareThrowsException rule can now ignore JUnit classes completely by setting the IgnoreJUnitCompletely property
    +Fixed false positive in UselessOperationOnImmutable
    +PMD now defaults to using a Java 1.5 source code parser.
    +
    + +

    June 22, 2007 - 4.0rc1:

    + +
    New rules:
    +    Strict exception ruleset: DoNotExtendJavaLangError
    +    Basic JSP ruleset: JspEncoding
    +    J2EE ruleset: MDBAndSessionBeanNamingConvention, RemoteSessionInterfaceNamingConvention, LocalInterfaceSessionNamingConvention, LocalHomeNamingConvention, RemoteInterfaceNamingConvention
    +    Optimizations ruleset: AddEmptyString
    +    Naming: BooleanGetMethodName
    +New rulesets:
    +    Migrating To JUnit4: Rules that help move from JUnit 3 to JUnit 4
    +Fixed bug 1670717 - 'Copy xml to clipboard' menu command now works again in the Designer
    +Fixed bug 1618858 - PMD no longer raises an exception on XPath like '//ConditionalExpression//ConditionalExpression'
    +Fixed bug 1626232 - Commons logging rules (ProperLogger and UseCorrectExceptionLogging) now catch more cases
    +Fixed bugs 1626201 & 1633683 - BrokenNullCheck now catches more cases
    +Fixed bug 1626715 - UseAssertSameInsteadOfAssertTrue now correctly checks classes which contain the null constant
    +Fixed bug 1531216 - ImmutableField. NameOccurrence.isSelfAssignment now recognizes this.x++ as a self assignment
    +Fixed bug 1634078 - StringToString now recognizes toString on a String Array, rather than an element.
    +Fixed bug 1631646 - UselessOperationOnImmutable doesn't throw on variable.method().variable.
    +Fixed bug 1627830 - UseLocaleWithCaseConversions now works with compound string operations
    +Fixed bug 1613807 - DontImportJavaLang rule allows import to Thread inner classes
    +Fixed bug 1637573 - The PMD Ant task no longer closes System.out if toConsole is set
    +Fixed bug 1451251 - A new UnusedImports rule, using typeresolution, finds unused import on demand rules
    +Fixed bug 1613793 - MissingSerialVersionUID rule now doesn't fire on abstract classes
    +Fixed bug 1666646 - ImmutableField rule doesn't report against volatile variables
    +Fixed bug 1693924 - Type resolution now works for implicit imports
    +Fixed bug 1705716 - Annotation declarations now trigger a new scope level in the symbol table.
    +Fixed bug 1743938 - False +: InsufficientStringBufferDeclaration with multiply
    +Fixed bug 1657957 - UseStringBufferForStringAppends now catches self-assignments
    +Applied patch 1612455 - RFE 1411022 CompareObjectsWithEquals now catches the case where comparison is against new Object
    +Implemented RFE 1562230 - Added migration rule to check for instantiation of Short/Byte/Long
    +Implemented RFE 1627581 - SuppressWarnings("unused") now suppresses all warnings in unusedcode.xml
    +XPath rules are now chained together for an extra speedup in processing
    +PMD now requires JDK 1.5 to be compiled. Java 1.4 support is provided using Retroweaver
    +- PMD will still analyze code from earlier JDKs
    +- to run pmd with 1.4, use the files from the java14 directory (weaved pmd jar and support files)
    +TypeResolution now looks at some ASTName nodes.
    +Memory footprint reduced: most renderers now use less memory by generating reports on the fly.
    +Ant task now takes advantage of multithreading code and on the fly renderers
    +Ant task now logs more debug info when using -verbose
    +PMD command line now has -benchmark: output a benchmark report upon completion; default to System.err
    +
    + +

    December 19, 2006 - 3.9:

    + +
    New rules:
    +    Basic ruleset: BigIntegerInstantiation, AvoidUsingOctalValues
    +    Codesize ruleset: NPathComplexity, NcssTypeCount, NcssMethodCount, NcssConstructorCount
    +    Design ruleset: UseCollectionIsEmpty
    +    Strings ruleset: StringBufferInstantiationWithChar
    +    Typeresolution ruleset: Loose Coupling - This is a re-implementation using the new Type Resolution facility
    +Fixed bug 1610730 - MisplacedNullCheck now catches more cases
    +Fixed bug 1570915 - AvoidRethrowingException no longer reports a false positive for certain nested exceptions.
    +Fixed bug 1571324 - UselessStringValueOf no longer reports a false positive for additive expressions.
    +Fixed bug 1573795 - PreserveStackTrace doesn't throw CastClassException on exception with 0 args
    +Fixed bug 1573591 - NonThreadSafeSingleton doesn't throw NPE when using this keyword
    +Fixed bug 1371753 - UnnecessaryLocalBeforeReturn is now less aggressive in its reporting.
    +Fixed bug 1566547 - Annotations with an empty MemberValueArrayInitializer are now parsed properly.
    +Fixed bugs 1060761 / 1433119 & RFE 1196954 - CloseResource now takes an optional parameter to identify closure methods
    +Fixed bug 1579615 - OverrideBothEqualsAndHashcode no longer throws an Exception on equals methods that don't have Object as a parameter type.
    +Fixed bug 1580859 - AvoidDecimalLiteralsInBigDecimalConstructor now catches more cases.
    +Fixed bug 1581123 - False +: UnnecessaryWrapperObjectCreation.
    +Fixed bug 1592710 - VariableNamingConventions no longer reports false positives on certain enum declarations.
    +Fixed bug 1593292 - The CPD GUI now works with the 'by extension' option selected.
    +Fixed bug 1560944 - CPD now skips symlinks.
    +Fixed bug 1570824 - HTML reports generated on Windows no longer contain double backslashes.  This caused problems when viewing those reports with Apache.
    +Fixed bug 1031966 - Re-Implemented CloneMethodMustImplementCloneable as a typeresolution rule. This rule can now detect super classes/interfaces which are cloneable
    +Fixed bug 1571309 - Optional command line options may be used either before or after the mandatory arguments
    +Applied patch 1551189 - SingularField false + for initialization blocks
    +Applied patch 1573981 - false + in CloneMethodMustImplementCloneable
    +Applied patch 1574988 - false + in OverrideBothEqualsAndHashcode
    +Applied patch 1583167 - Better test code management. Internal JUnits can now be written in XML's
    +Applied patch 1613674 - Support classpaths with spaces in pmd.bat
    +Applied patch 1615519 - controversial/DefaultPackage XPath rule is wrong
    +Applied patch 1615546 - Added option to command line to write directly to a file
    +Implemented RFE 1566313 - Command Line now takes minimumpriority attribute to filter out rulesets
    +PMD now requires JDK 1.4 to run
    +- PMD will still analyze code from earlier JDKs
    +- PMD now uses the built-in JDK 1.4 regex utils vs Jakarta ORO
    +- PMD now uses the JDK javax.xml APIs rather than being hardcoded to use Xerces and Xalan
    +SummaryHTML Report changes from Brent Fisher - now contains linePrefix to support source output from javadoc using "linksource"
    +Fixed CSVRenderer - had flipped line and priority columns
    +Fixed bug in Ant task - CSV reports were being output as text.
    +Fixed false negatives in UseArraysAsList.
    +Fixed several JDK 1.5 parsing bugs.
    +Fixed several rules (exceptions on jdk 1.5 and jdk 1.6 source code).
    +Fixed array handling in AvoidReassigningParameters and UnusedFormalParameter.
    +Fixed bug in UselessOverridingMethod: false + when adding synchronization.
    +Fixed false positives in LocalVariableCouldBeFinal.
    +Fixed false positives in MethodArgumentCouldBeFinal.
    +Modified annotation suppression to use @SuppressWarning("PMD") to suppress all warnings and @SuppressWarning("PMD.UnusedLocalVariable") to suppress a particular rule's warnings.
    +Rules can now call RuleContext.getSourceType() if they need to make different checks on JDK 1.4 and 1.5 code.
    +CloseResource rule now checks code without java.sql import.
    +ArrayIsStoredDirectly rule now checks Constructors
    +undo/redo added to text areas in Designer.
    +Better 'create rule XML' panel in Designer.
    +use of entrySet to iterate over Maps.
    +1.6 added as a valid option for targetjdk.
    +PMD now allows rules to use Type Resolution. This was referenced in patch 1257259.
    +Renderers use less memory when generating reports.
    +New DynamicXPathRule class to speed up XPath based rules by providing a base type for the XPath expression.
    +Multithreaded processing on multi core or multi cpu systems.
    +Performance Refactoring, XPath rules re-written as Java:
    +    AssignmentInOperand
    +    AvoidDollarSigns
    +    DontImportJavaLang
    +    DontImportSun
    +    MoreThanOneLogger
    +    SuspiciousHashcodeMethodName
    +    UselessStringValueOf
    +
    + +

    October 4, 2006 - 3.8:

    + +
    New rules:
    +    Basic ruleset: BrokenNullCheck
    +    Strict exceptions ruleset: AvoidRethrowingException
    +    Optimizations ruleset: UnnecessaryWrapperObjectCreation
    +    Strings ruleset: UselessStringValueOf
    +Fixed bug 1498910 - AssignmentInOperand no longer has a typo in the message.
    +Fixed bug 1498960 - DontImportJavaLang no longer reports static imports of java.lang members.
    +Fixed bug 1417106 - MissingBreakInSwitch no longer flags stmts where every case has either a return or a throw.
    +Fixed bug 1412529 - UncommentedEmptyConstructor no longer flags private constructors.
    +Fixed bug 1462189 - InsufficientStringBufferDeclaration now resets when it reaches setLength the same way it does at a Constructor
    +Fixed bug 1497815 - InsufficientStringBufferDeclaration rule now takes the length of the constructor into account, and adds the length of the initial string to its initial length
    +Fixed bug 1504842 - ExceptionSignatureDeclaration no longer flags methods starting with 'test'.
    +Fixed bug 1516728 - UselessOverridingMethod no longer raises an NPE on methods that use generics.
    +Fixed bug 1522054 - BooleanInstantiation now detects instantiations inside method calls.
    +Fixed bug 1522056 - UseStringBufferForStringAppends now flags appends which occur in static initializers and constructors
    +Fixed bug 1526530 - SingularField now finds fields which are hidden at the method or static level
    +Fixed bug 1529805 - UnusedModifier no longer throws NPEs on JDK 1.5 enums.
    +Fixed bug 1531593 - UnnecessaryConversionTemporary no longer reports false positives when toString() is invoked inside the call to 'new Long/Integer/etc()'.
    +Fixed bug 1512871 - Improved C++ tokenizer error messages - now they include the filename.
    +Fixed bug 1531152 - CloneThrowsCloneNotSupportedException now reports the proper line number.
    +Fixed bug 1531236 - IdempotentOperations reports fewer false positives.
    +Fixed bug 1544564 - LooseCoupling rule now checks for ArrayLists
    +Fixed bug 1544565 - NonThreadSafeSingleton now finds if's with compound statements
    +Fixed bug 1561784 - AbstractOptimizationRule no longer throws ClassCastExceptions on certain postfix expressions.
    +Fixed a bug in AvoidProtectedFieldInFinalClass - it no longer reports false positives for protected fields in inner classes.
    +Fixed a bug in the C++ grammar - the tokenizer now properly recognizes macro definitions which are followed by a multiline comment.
    +Modified C++ tokenizer to use the JavaCC STATIC option; this results in about a 30% speedup in tokenizing.
    +Implemented RFE 1501850 - UnusedFormalParameter now catches cases where a parameter is assigned to but not used.
    +Applied patch 1481024 (implementing RFE 1490181)- NOPMD messages can now be reported with a user specified msg, e.g., //NOPMD - this is expected
    +Added JSP support to the copy/paste detector.
    +Placed JSF/JSP ruleset names in rulesets/jsprulesets.properties
    +Added the image to the ASTEnumConstant nodes.
    +Added new XSLT stylesheet for CPD XML->HTML from Max Tardiveau.
    +Refactored UseIndexOfChar to extract common functionality into AbstractPoorMethodCall.
    +Improved CPD GUI and Designer look/functionality; thanks to Brian Remedios for the changes!
    +Rewrote the NOPMD mechanism to collect NOPMD markers as the source file is tokenized.  This eliminates an entire scan of each source file.
    +Applied patch from Jason Bennett to enhance CyclomaticComplexity rule to account for conditional or/and nodes, do stmts, and catch blocks.
    +Applied patch from Xavier Le Vourch to reduce false postives from CloneMethodMustImplementCloneable.
    +Updated Jaxen library to beta 10.
    +Performance Refactoring, XPath rules re-written as Java:
    +    BooleanInstantiation
    +    UselessOperationOnImmutable
    +    OverrideBothEqualsAndHashcode
    +    UnnecessaryReturn
    +    UseStringBufferForStringAppends
    +    SingularField
    +    NonThreadSafeSingleton
    +
    + +

    June 1, 2006 - 3.7:

    + +
    New rules:
    +    Basic-JSP ruleset: DuplicateJspImport
    +    Design ruleset: PreserveStackTrace
    +    J2EE ruleset: UseProperClassLoader
    +Implemented RFE 1462019 - Add JSPs to Ant Task
    +Implemented RFE 1462020 - Add JSPs to Designer
    +Fixed bug 1461426 InsufficientStringBufferDeclaration does not consider paths
    +Fixed bug 1462184 False +: InsufficientStringBufferDeclaration - wrong size
    +Fixed bug 1465574 - UnusedPrivateMethod no longer reports false positives when a private method is called from a method with a parameter of the same name.
    +Fixed bug 1114003 - UnusedPrivateMethod no longer reports false positives when two methods have the same name and number of arguments but different types.  The fix causes PMD to miss a few valid cases, but, c'est la vie.
    +Fixed bug 1472843 - UnusedPrivateMethod no longer reports false positives when a private method is only called from a method that contains a variable with the same name as that method.
    +Fixed bug 1461442 - UseAssertSameInsteadOfAssertTrue now ignores comparisons to null; UseAssertNullInsteadOfAssertTrue will report those.
    +Fixed bug 1474778 - UnnecessaryCaseChange no longer flags usages of toUpperCase(Locale).
    +Fixed bug 1423429 - ImmutableField no longer reports false positives on variables which can be set via an anonymous inner class that is created in the constructor.
    +Fixed major bug in CPD; it was not picking up files other than .java or .jsp.
    +Fixed a bug in CallSuperInConstructor; it now checks inner classes/enums more carefully.
    +Fixed a bug in VariableNamingConventions; it was not setting the warning message properly.
    +Fixed bug in C/C++ parser; a '$' is now allowed in an identifier.  This is useful in VMS.
    +Fixed a symbol table bug; PMD no longer crashes on enumeration declarations in the same scope containing the same field name
    +Fixed a bug in ASTVariableDeclaratorId that triggered a ClassCastException if a annotation was used on a parameter.
    +Added RuleViolation.getBeginColumn()/getEndColumn()
    +Added an optional 'showSuppressed' item to the Ant task; this is false by default and toggles whether or not suppressed items are shown in the report.
    +Added an IRuleViolation interface and modified various code classes (include Renderer implementations and Report) to use it.
    +Modified JJTree grammar to use conditional node descriptors for various expression nodes and to use node suppression for ASTModifier nodes; this replaces a bunch of DiscardableNodeCleaner hackery.  It also fixed bug 1445026.
    +Modified C/CPP grammar to only build the lexical analyzer; we're not using the parser for CPD, just the token manager.  This reduces the PMD jar file size by about 50 KB.
    +
    + +

    March 29, 2006 - 3.6:

    + +
    New rules:
    +    Basic ruleset: AvoidThreadGroup
    +    Design ruleset: UnsynchronizedStaticDateFormatter
    +    Strings ruleset: InefficientEmptyStringCheck, InsufficientStringBufferDeclaration
    +    JUnit ruleset: SimplifyBooleanAssertion
    +    Basic-JSF ruleset: DontNestJsfInJstlIteration
    +    Basic-JSP ruleset: NoLongScripts, NoScriptlets, NoInlineStyleInformation, NoClassAttribute, NoJspForward, IframeMissingSrcAttribute, NoHtmlComments
    +Fixed bug 1414985 - ConsecutiveLiteralAppends now checks for intervening references between appends.
    +Fixed bug 1418424 - ConsecutiveLiteralAppends no longer flags appends in separate methods.
    +Fixed bug 1416167 - AppendCharacterWithChar now catches cases involving escaped characters.
    +Fixed bug 1421409 - Ant task now has setter to allow minimumPriority attribute to be used.
    +Fixed bug 1416164 - InefficientStringBuffering no longer reports false positives on the three argument version of StringBuffer.append().
    +Fixed bug 1415326 - JUnitTestsShouldContainAsserts no longer errors out on JDK 1.5 generics.
    +Fixed bug 1415333 - CyclomaticComplexity no longer errors out on JDK 1.5 enums.
    +Fixed bug 1415663 - PMD no longer fails to parse abstract classes declared in a method.
    +Fixed bug 1433439 - UseIndexOfChar no longer reports false positives on case like indexOf('a' + getFoo()).
    +Fixed bug 1435218 - LoggerIsNotStaticFinal no longer reports false positives for local variables.
    +Fixed bug 1413745 - ArrayIsStoredDirectly no longer reports false positives for array deferences.
    +Fixed bug 1435751 - Added encoding type of UTF-8 to the CPD XML file.
    +Fixed bug 1441539 - ConsecutiveLiteralAppends no longer flags appends() involving method calls.
    +Fixed bug 1339470 - PMD no longer fails to parse certain non-static initializers.
    +Fixed bug 1425772 - PMD no longer fails with errors in ASTFieldDeclaration when parsing some JDK 1.5 code.
    +Fixed bugs 1448123 and 1449175 - AvoidFieldNameMatchingTypeName, SingularField, TooManyFields, and AvoidFieldNameMatchingMethodName no longer error out on enumerations.
    +Fixed bug 1444654 - migrating_to_14 and migrating_to_15 no longer refer to rule tests.
    +Fixed bug 1445231 - TestClassWithoutTestCases: no longer flags abstract classes.
    +Fixed bug 1445765 - PMD no longer uses huge amounts of memory.  However, you need to use RuleViolation.getBeginLine(); RuleViolation.getNode() is no more.
    +Fixed bug 1447295 - UseNotifyAllInsteadOfNotify no longer flags notify() methods that have a parameter.
    +Fixed bug 1455965 - MethodReturnsInternalArray no longer flags variations on 'return new Object[] {}'.
    +Implemented RFE 1415487 - Added a rulesets/releases/35.xml ruleset (and similar rulesets for previous releases) contains rules new to PMD v3.5
    +Wouter Zelle fixed a false positive in NonThreadSafeSingleton.
    +Wouter Zelle fixed a false positive in InefficientStringBuffering.
    +The CPD Ant task now supports an optional 'language' attribute.
    +Removed some ill-advised casts from the parsers.
    +Fixed bug in CallSuperInConstructor; it no longer flag classes without extends clauses.
    +Fixed release packaging; now entire xslt/ directory contents are included.
    +Added more XSLT from Dave Corley - you can use them to filter PMD reports by priority level.
    +You can now access the name of a MemberValuePair node using getImage().
    +PositionLiteralsFirstInComparisons was rewritten in XPath.
    +Added a getVersionString method to the TargetJDKVersion interface.
    +Added an option '--targetjdk' argument to the Benchmark utility.
    +Applied a patch from Wouter Zelle to clean up the Ant Formatter class, fix a TextRenderer bug, and make toConsole cleaner.
    +Rewrote AvoidCallingFinalize in Java; fixed bug and runs much faster, too.
    +Uploaded ruleset schema to http://pmd.sf.net/ruleset_xml_schema.xsd
    +UseIndexOfChar now catches cases involving lastIndexOf.
    +Rules are now run in the order in which they're listed in a ruleset file.  Internally, they're now stored in a List vs a Set, and RuleSet.getRules() now returns a Collection.
    +Upgraded to JUnit version 3.8.2.
    +
    + +

    Jan 25, 2006 - 3.5:

    + +
    New rules:
    + Basic ruleset: UselessOperationOnImmutable, MisplacedNullCheck, UnusedNullCheckInEquals
    + Migration ruleset: IntegerInstantiation
    + JUnit ruleset: UseAssertNullInsteadOfAssertTrue
    + Strings ruleset: AppendCharacterWithChar, ConsecutiveLiteralAppends, UseIndexOfChar
    + Design ruleset: AvoidConstantsInterface
    + Optimizations ruleset: UseArraysAsList, AvoidArrayLoops
    + Controversial ruleset: BooleanInversion
    +Fixed bug 1371980 - InefficientStringBuffering no longer flags StringBuffer methods other than append().
    +Fixed bug 1277373 - InefficientStringBuffering now catches more cases.
    +Fixed bug 1376760 - InefficientStringBuffering no longer throws a NullPointerException when processing certain expressions.
    +Fixed bug 1371757 - Misleading example in AvoidSynchronizedAtMethodLevel
    +Fixed bug 1373510 - UseAssertSameInsteadOfAssertTrue no longer has a typo in its message, and its message is more clear.
    +Fixed bug 1375290 - @SuppressWarnings annotations are now implemented correctly; they accept one blank argument to suppress all warnings.
    +Fixed bug 1376756 - UselessOverridingMethod no longer throws an exception on overloaded methods.
    +Fixed bug 1378358 - StringInstantiation no longer throws ClassCastExceptions on certain allocation patterns.
    +Fixed bug 1371741 - UncommentedEmptyConstructor no longer flags constructors that consist of a this() or a super() invocation.
    +Fixed bug 1277373 - InefficientStringBuffering no longer flags concatenations that involve a static final String.
    +Fixed bug 1379701 - CompareObjectsWithEquals no longer flags comparisons of array elements.
    +Fixed bug 1380969 - UnusedPrivateMethod no longer flags private static methods that are only invoked in a static context from a field declaration.
    +Fixed bug 1384594 - Added a 'prefix' property for BeanMembersShouldSerializeRule
    +Fixed bug 1394808 - Fewer missed hits for AppendCharacterWithChar and InefficientStringBuffering, thanks to Allan Caplan for catching these
    +Fixed bug 1400754 - A NPE is no longer thrown on certain JDK 1.5 enum usages.
    +Partially fixed bug 1371753 - UnnecessaryLocalBeforeReturn message now reflects the fact that that rule flags all types
    +Fixed a bug in UseStringBufferLength; it no longers fails with an exception on expressions like StringBuffer.toString.equals(x)
    +Fixed a bug in CPD's C/C++ parser so that it no longer fails on multi-line literals; thx to Tom Judge for the nice patch.
    +CPD now recognizes '--language c' and '--language cpp' as both mapping to the C/C++ parser.
    +Modified renderers to support disabling printing of suppressed warnings.  Introduced a new AbstractRenderer class that all Renderers can extends to get the current behavior - that is, suppressed violations are printed.
    +Implemented RFE 1375435 - you can now embed regular expressions inside XPath rules, i.e., //ClassOrInterfaceDeclaration[matches(@Image, 'F?o')].
    +Added current CLASSPATH to pmd.bat.
    +UnusedFormalParameter now catches unused constructor parameters, and its warning message now reflects whether it caught a method or a constructor param.
    +Rebuilt JavaCC parser with JavaCC 4.0.
    +Added jakarta-oro-2.0.8.jar as a new dependency to support regular expression in XPath rules.
    +Ant task now supports a 'minimumPriority' attribute; only rules with this priority or higher will be run.
    +Renamed Ant task 'printToConsole' attribute to 'toConsole' and it can only be used inside a formatter element.
    +Added David Corley's Javascript report, more details are here: http://tomcopeland.blogs.com/juniordeveloper/2005/12/demo_of_some_ni.html
    +
    + +

    November 30, 2005 - 3.4:

    + +
    New rules:
    + Basic ruleset: ClassCastExceptionWithToArray, AvoidDecimalLiteralsInBigDecimalConstructor
    + Design ruleset: NonThreadSafeSingleton, UncommentedEmptyMethod, UncommentedEmptyConstructor
    + Controversial ruleset: DefaultPackage
    + Naming ruleset: MisleadingVariableName
    + Migration ruleset: ReplaceVectorWithList, ReplaceHashtableWithMap, ReplaceEnumerationWithIterator, AvoidEnumAsIdentifier, AvoidAssertAsIdentifier
    + Strings ruleset: UseStringBufferLength
    +Fixed bug 1292745 - Removed unused source file ExceptionTypeChecking.java
    +Fixed bug 1292609 - The JDK 1.3 parser now correctly handles certain 'assert' usages.  Also added a 'JDK 1.3' menu item to the Designer.
    +Fixed bug 1292689 - Corrected description for UnnecessaryLocalBeforeReturn
    +Fixed bug 1293157 - UnusedPrivateMethod no longer reports false positives for private methods which are only invoked from static initializers.
    +Fixed bug 1293277 - Messages that used 'pluginname' had duplicated messages.
    +Fixed bug 1291353 - ASTMethodDeclaration isPublic/isAbstract methods always return true.  The syntactical modifier - i.e., whether or not 'public' was used in the source code in the method declaration - is available via 'isSyntacticallyPublic' and 'isSyntacticallyAbstract'
    +Fixed bug 1296544 - TooManyFields no longer checks the wrong property value.
    +Fixed bug 1304739 - StringInstantiation no longer crashes on certain String constructor usages.
    +Fixed bug 1306180 - AvoidConcatenatingNonLiteralsInStringBuffer no longer reports false positives on certain StringBuffer usages.
    +Fixed bug 1309235 - TooManyFields no longer includes static finals towards its count.
    +Fixed bug 1312720 - DefaultPackage no longer flags interface fields.
    +Fixed bug 1312754 - pmd.bat now handles command line arguments better in WinXP.
    +Fixed bug 1312723 - Added isSyntacticallyPublic() behavior to ASTFieldDeclaration nodes.
    +Fixed bug 1313216 - Designer was not displaying 'final' attribute for ASTLocalVariableDeclaration nodes.
    +Fixed bug 1314086 - Added logging-jakarta-commons as a short name for rulesets/logging-jakarta-commons.xml to SimpleRuleSetNameMapper.
    +Fixed bug 1351498 - Improved UnnecessaryCaseChange warning message.
    +Fixed bug 1351706 - CompareObjectsWithEquals now catches more cases.
    +Fixed bug 1277373 (and 1347286) - InefficientStringBuffering now flags fewer false positives.
    +Fixed bug 1363447 - MissingBreakInSwitch no longer reports false positives for switch statements where each switch label has a return statement.
    +Fixed bug 1363458 - MissingStaticMethodInNonInstantiatableClass no longer reports cases where there are public static fields.
    +Fixed bug 1364816 - ImmutableField no longer reports false positives for fields assigned in an anonymous inner class in a constructor.
    +Implemented RFE 1311309 (and 1119854) - Suppressed RuleViolation counts are now included in the reports.
    +Implemented RFE 1220371 - Rule violation suppression via annotations.  Per the JLS, @SuppressWarnings can be placed before the following nodes: TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE.
    +Implemented RFE 1275547 - OverrideBothEqualsAndHashcode now skips Comparator implementations.
    +Applied patch 1306999 - Renamed CloseConnection to CloseResource and added support for checking Statement and ResultSet objects.
    +Applied patch 1344754 - EmptyCatchBlock now skips catch blocks that contain comments.  This is also requested in RFE 1347884.
    +Renamed AvoidConcatenatingNonLiteralsInStringBuffer to InefficientStringBuffering; new name is a bit more concise.
    +Modified LongVariable; now it has a property which can be used to override the minimum reporting value.
    +Improved CPD XML report.
    +CPD no longer skips header files when checking C/C++ code.
    +Reworked CPD command line arguments; old-style arguments will still work for one more version, though.
    +Lots of documentation improvements.
    +
    + +

    September 15, 2005 - 3.3:

    + +
    New rules:
    +    Design: PositionLiteralsFirstInComparisons,  UnnecessaryLocalBeforeReturn
    +    Logging-jakarta-commons: ProperLogger
    +    Basic: UselessOverridingMethod
    +    Naming: PackageCase, NoPackage
    +    Strings: UnnecessaryCaseChange
    +Implemented RFE 1220171 - rule definitions can now contain a link to an external URL for more information on that rule - for example, a link to the rule's web page.  Thanks to Wouter Zelle for designing and implementing this!
    +Implemented RFE 1230685 - The text report now includes parsing errors even if no rule violations are reported
    +Implemented RFE 787860 - UseSingleton now accounts for JUnit test suite declarations.
    +Implemented RFE 1097090 - The Report object now contains the elapsed time for running PMD.  This shows up in the XML report as an elapsedTime attribute in the pmd element in the format '2m 5s' or '1h 5h 35s' or '25s' .
    +Implemented RFE 1246338 - CPD now handles SCCS directories and NTFS junction points.
    +Fixed bug 1226858 - JUnitAssertionsShouldIncludeMessage now checks calls to assertFalse.
    +Fixed bug 1227001 - AvoidCallingFinalize no longer flags calls to finalize() within finalizers.
    +Fixed bug 1229755 - Fixed typo in ArrayIsStoredDirectly description.
    +Fixed bug 1229749 - Improved error message when an external rule is not found.
    +Fixed bug 1224849 - JUnitTestsShouldContainAsserts no longer skips method declarations which include explicit throws clauses.
    +Fixed bug 1225492 - ConstructorCallsOverridableMethod now reports the correct method name.  dvholten's examples in RFE 1235562 also helped with this a great deal.
    +Fixed bug 1228589 - DoubleCheckedLocking and ExceptionSignatureDeclaration no longer throw ClassCastExceptions on method declarations that declare generic return types.
    +Fixed bug 1235299 - NullAssignment no longer flags null equality comparisons in ternary expressions.
    +Fixed bug 1235300 - NullAssignment no longer flags assignments to final fields.
    +Fixed bug 1240201 - The UnnecessaryParentheses message is no longer restricted to return statements.
    +Fixed bug 1242290 - The JDK 1.5 parser no longer chokes on nested enumerations with a constructor.
    +Fixed bug 1242544 - SimplifyConditional no longer flags null checks that precede an instanceof involving an array dereference.
    +Fixed bug 1242946 - ArrayIsStoredDirectly no longer reports false positives for equality expression comparisons.  As a bonus, its message now includes the variable name :-)
    +Fixed bug 1232648 - MethodReturnsInternalArray no longer reports false positives on return statement expressions that involve method invocations on an internal array.
    +Fixed bug 1244428 - MissingStaticMethodInNonInstantiatableClass no longer reports warnings for nested classes.  Some inner class cases will be missed, but false positives will be eliminated as well.
    +Fixed bug 1244443 - EqualsNull now catches more cases.
    +Fixed bug 1250949 - The JDK 1.5 parser no longer chokes on annotated parameters and annotated local variables.
    +Fixed bug 1245139 - TooManyFields no longer throws a ClassCastException when processing anonymous classes.
    +Fixed bug 1251256 - ImmutableField no longer skips assignments in try blocks on methods (which led to false positives).
    +Fixed bug 1250949 - The JDK 1.5 parser no longer chokes on AnnotationTypeMemberDeclaration with a default value.
    +Fixed bug 1245367 - ImmutableField no longer triggers on assignments in loops in constructors.
    +Fixed bug 1251269 - AvoidConcatenatingNonLiteralsInStringBuffer no longer triggers on StringBuffer constructors like 'new StringBuffer(1 + getFoo());'
    +Fixed bug 1244570 - AvoidConcatenatingNonLiteralsInStringBuffer no longer triggers on certain AST patterns involving local variable declarations inside Statement nodes.
    +Fixed bug 695344 - StringInstantiation no longer triggers on the String(byte[]) constructor.
    +Fixed bug 1114754 - UnusedPrivateMethod reports fewer false positives.
    +Fixed bug 1290718 - Command line parameter documentation is now correct for targetjdk options.
    +Applied patch 1228834 - XPath rules can now use properties to customize rules.  Thanks to Wouter Zelle for another great piece of work!
    +Fixed a bug in RuleSetFactory that missed some override cases; thx to Wouter Zelle for the report and a fix.
    +Fixed a bug in the grammar that didn't allow constructors to have type parameters, which couldn't parse some JDK 1.5 constructs.
    +Fixed a bug in ImportFromSamePackage; now it catches the case where a class has an on-demand import for the same package it is in.
    +Fixed a bug in CompareObjectsWithEquals; now it catches some local variable cases.
    +Fixed a bug in CouplingBetweenObjects; it no longer triggers an exception (which is a bug in the symbol table layer) by calling getEnclosingClassScope() when the node in question isn't enclosed by one.
    +Moved AvoidCallingFinalize from the design ruleset to the finalize ruleset and then deleted redundant ExplicitCallToFinalize rule from the finalize ruleset.
    +Deleted redundant ExceptionTypeChecking rule from the strictexception ruleset; use AvoidInstanceofChecksInCatchClause in the design ruleset instead.
    +Added some new XSLT scripts that create nifty HTML output; thanks to Wouter Zelle for the code.
    +Improved UseCorrectExceptionLogging; thx to Wouter Zelle for the new XPath.
    +Improved warning message from UnusedPrivateMethod.
    +Improved EmptyIfStmt; now it catches the case where an IfStatement is followed by an EmptyStatement node.
    +The Ant task now accepts the short names of rulesets (e.g., unusedcode for rulesets/unusedcode.xml).
    +Removed unnecessary '.html' suffix from displayed filenames when the linkPrefix attribute is used with the HTML renderer.
    +Added an optional 'description' attribute to the 'property' element in the ruleset XML files.
    +Added a simplified SimpleNode.addViolation() method to reduce duplicated rule violation creation code.
    +Moved from jaxen-1.0-fcs.jar/saxpath-1.0-fcs.jar to jaxen-1.1-beta-7.jar.  This yielded a 20% speed increase in the basic ruleset!
    +
    + +

    June 21, 2005 - 3.2:

    + +
    New rules: UseCorrectExceptionLogging (logging-jakarta-commons ruleset), AvoidPrintStackTrace (logging-java ruleset), CompareObjectsWithEquals (design ruleset)
    +Fixed bug 1201577 - PMD now correctly parses method declarations that return generic types.
    +Fixed bug 1205709 - PMD no longer takes a long time to report certain parsing errors.
    +Fixed bug 1052356 - ImmutableField no longer triggers on fields which are assigned to in a constructor's try statement.
    +Fixed bug 1215854 - Package/class/method names are now filled in whenever possible, and the XML report includes all three.
    +Fixed bug 1209719 - MethodArgumentCouldBeFinal no longer triggers on arguments which are modified using postfix or prefix expressions.  A bug in AvoidReassigningParameters was also fixed under the same bug id.
    +Fixed bug 1188386 - MethodReturnsInternalArray no longer flags returning a local array declaration.
    +Fixed bug 1172137 - PMD no longer locks up when generating a control flow graph for if statements with labelled breaks.
    +Fixed bug 1221094 - JUnitTestsShouldContainAsserts no longer flags static methods.
    +Fixed bug 1217028 - pmd.bat now correctly passes parameters to PMD.
    +Implemented RFE 1188604 - AvoidThrowingCertainExceptionTypes has been split into AvoidThrowingRawExceptionTypes and AvoidThrowingNullPointerException.
    +Implemented RFE 1188369 - UnnecessaryBooleanAssertion now checks for things like 'assertTrue(!foo)'.  These should be changed to 'assertFalse(foo)' for clarity.
    +Implemented RFE 1199622 - UnusedFormalParameter now defaults to only checking private methods unless a 'checkall' property is set.
    +Implemented RFE 1220314 - the symbol table now includes some rudimentary type information.
    +Break and continue statement labels (if present) are placed in the image field.
    +Fixed bug which caused MissingSerialVersionUID to trigger on all interfaces that implemented other interfaces.
    +Modified NullAssignmentRule to catch null assignments in ternary expressions.
    +Added two new node types - ASTCatchStatement and ASTFinallyStatement.
    +Modified rule XML definition; it no longer includes a symboltable attribute since the symbol table layer is now run for all files analyzed.
    +Harden equality of AbstractRule and RuleSet objects (needed for the Eclipse plugin features)
    +Change RuleSet.getRuleByName. Now return null instead of throwing a RuntimeException when the rule is not found
    +Add .project and .classpath to the module so that it can be checkout as an Eclipse project
    +
    + +

    May 10, 2005 - 3.1:

    + +
    New rules: SimplifyStartsWith, UnnecessaryParentheses, CollapsibleIfStatements, UseAssertEqualsInsteadOfAssertTrue,  UseAssertSameInsteadOfAssertTrue, UseStringBufferForStringAppends, SimplifyConditional, SingularField
    +Fixed bug 1170535 - LongVariable now report variables longer than 17 characters, not 12.
    +Fixed bug 1182755 - SystemPrintln no longer overreports problems.
    +Fixed bug 1188372 - AtLeastOneConstructor no longer fires on interfaces.
    +Fixed bug 1190508 - UnnecessaryBooleanAssertion no longer fires on nested boolean literals.
    +Fixed bug 1190461 - UnusedLocal no longer misses usages which are on the RHS of a right bit shift operator.
    +Fixed bug 1188371 - AvoidInstantiatingObjectsInLoops no longer fires on instantiations in loops when the 'new' keyword is preceded by a 'return' or a 'throw'.
    +Fixed bug 1190526 - TooManyFields now accepts a property setting correctly, and default lower bound is 15 vs 10.
    +Fixed bug 1196238 - UnusedImports no longer reports false positives for various JDK 1.5 java.lang subpackages.
    +Fixed bug 1169731 - UnusedImports no longer reports false positives on types used inside generics.  This bug also resulted in a bug in ForLoopShouldBeWhileLoop being fixed, thanks Wim!
    +Fixed bug 1187325 - UnusedImports no longer reports a false positive on imports which are used inside an Annotation.
    +Fixed bug 1189720 - PMD no longer fails to parse generics that use 'member selectors'.
    +Fixed bug 1170109 - The Ant task now supports an optional 'targetjdk' attribute that accepts values of '1.3', '1.4', or '1.5'.
    +Fixed bug 1183032 - The XMLRenderer no longer throws a SimpleDateFormat exception when run with JDK 1.3.
    +Fixed bug 1097256 - The XMLRenderer now supports optional encoding of UTF8 characters using the 'net.sourceforge.pmd.supportUTF8' environment variable.
    +Fixed bug 1198832 - AbstractClassWithoutAbstractMethod no longer flags classes which implement interfaces since these can partially implement the interface and thus don't need to explicitly declare abstract methods.
    +Implemented RFE 1193979 - BooleanInstantiation now catches cases like Boolean.valueOf(true)
    +Implemented RFE 1171095 - LabeledStatement nodes now contain the image of the label.
    +Implemented RFE 1176401 - UnusedFormalParameter now flags public methods.
    +Implemented RFE 994338 - The msg produced by ConstructorCallsOverridableMethod now includes the offending method name.
    +Modified command line parameters; removed -jdk15 and -jdk13 parameters and added a -'targetjdk [1.3|1.4|1.5]' parameter.
    +Modified CSVRenderer to include more columns.
    +Optimized rules: FinalFieldCouldBeStatic (115 seconds to 7 seconds), SuspiciousConstantFieldName (48 seconds to 14 seconds), UnusedModifer (49 seconds to 4 seconds)
    +
    + +

    March 23, 2005 - 3.0:

    + +
    New rules: MissingSerialVersionUID, UnnecessaryFinalModifier, AbstractClassDoesNotContainAbstractMethod, MissingStaticMethodInNonInstantiatableClass, AvoidSynchronizedAtMethodLevel, AvoidCallingFinalize, UseNotifyAllInsteadOfNotify, MissingBreakInSwitch, AvoidInstanceofChecksInCatchClause, AvoidFieldNameMatchingTypeName, AvoidFieldNameMatchingMethodName, AvoidNonConstructorMethodsWithClassName, TestClassWithoutTestCases, TooManyFields, CallSuperInConstructor, UnnecessaryBooleanAssertion, UseArrayListInsteadOfVector
    +Implemented RFE 1058039 - PMD's command line interface now accepts abbreviated names for the standard rulesets; for example 'java net.sourceforge.pmd.PMD /my/source/code/ text basic,unusedcode' would run the rulesets/basic.xml and the rulesets/unusedcode.xml rulesets on the source in /my/source/code and produce a text report.
    +Implemented RFE 1119851 - PMD's Ant task now supports an 'excludeMarker' attribute.
    +Fixed bug 994400 - False +: ConstructorCallsOverridableMethodRule, thanks to ereissner for reporting it
    +Fixed bug 1146116 - JUnitTestsShouldIncludeAssert no longer crashes on inner Interface
    +Fixed bug 1114625 - UnusedPrivateField no longer throws an NPE on standalone postfix expressions which are prefixed with 'this'.
    +Fixed bug 1114020 - The Ant task now reports a complete stack trace when run with the -verbose flag.
    +Fixed bug 1117983 - MethodArgumentCouldBeFinal no longer reports false positives on try..catch blocks.
    +Fixed bug 797742 - PMD now parses JDK 1.5 source code.  Note that it's not perfect yet; more testing/bug reports are welcome!
    +Fixed a bug - the StatisticalRule no longer 'merges' data points when using the 'topscore' property.
    +Fixed a bug - the PMD Ant task's failOnRuleViolation attribute no longer causes a BuildException in the case when no rule violations occur.
    +Modified the XSLT to add a summary section.
    +Added Ruby support to CPD.
    +Optimized various rules and wrote a benchmarking application; results are here - http://infoether.com/~tom/pmd_timing.txt
    +
    + +

    February 1, 2005 - 2.3:

    + +
    Fixed bug 1113927 - ExceptionAsFlowControl no longer throws NPEs on code where a throw statement exists without a try statement wrapping it.
    +Fixed bug 1113981 - AvoidConcatenatingNonLiteralsInStringBuffer no longer throws NPEs on code where an append appears as a child of an ExplicitConstructorInvocation node.
    +Fixed bug 1114039 - AvoidInstantiatingObjectsInLoops's message no longer contains a spelling error.
    +Fixed bug 1114029 - The 'optimization' rules no longer throw NPEs at various points.
    +Fixed bug 1114251 - The 'sunsecure' rules no longer throw NPEs at various points.
    +
    + +

    January 31, 2005 - 2.2:

    + +
    New rules: LocalVariableCouldBeFinal, MethodArgumentCouldBeFinal, AvoidInstantiatingObjectsInLoops, ArrayIsStoredDirectly, MethodReturnsInternalArray, AssignmentToNonFinalStatic, AvoidConcatenatingNonLiteralsInStringBuffer
    +Fixed bug 1088459 - JUnitTestsShouldContainAsserts no longer throws ClassCastException on interface, native, and abstract method declarations.
    +Fixed bug 1100059 - The Ant task now generates a small empty-ish report if there are no violations.
    +Implemented RFE 1086168 - PMD XML reports now contain a version and timestamp attribute in the <pmd> element.
    +Implemented RFE 1031950 - The PMD Ant task now supports nested ruleset tags
    +Fixed a bug in the rule override logic; it no longer requires the "class" attribute of a rule be listed in the overrides section.
    +Added 'ignoreLiterals' and 'ignoreIdentifiers' boolean options to the CPD task.
    +Cleaned up a good bit of the symbol table code; thanks much to Harald Gurres for the patch.
    +CPD now contains a generic copy/paste checker for programs in any language
    +
    + +

    December 15, 2004 - 2.1:

    + +
    New rules: AvoidProtectedFieldInFinalClass, SystemPrintln
    +Fixed bug 1050173 - ImmutableFieldRule no longer reports false positives for static fields.
    +Fixed bug 1050286 - ImmutableFieldRule no longer reports false positives for classes which have multiple constructors only a subset of which set certain fields.
    +Fixed bug 1055346 - ImmutableFieldRule no longer reports false positive on preinc/predecrement/postfix expressions.
    +Fixed bug 1041739 - EmptyStatementNotInLoop no longer reports false positives for nested class declarations in methods.
    +Fixed bug 1039963 - CPD no longer fails to parse C++ files with multi-line macros.
    +Fixed bug 1053663 - SuspiciousConstantFieldName no longer reports false positives for interface members.
    +Fixed bug 1055930 - CouplingBetweenObjectsRule no longer throws a NPE on interfaces
    +Fixed a possible NPE in dfa.report.ReportTree.
    +Implemented RFE 1058033 - Renamed run.[sh|bat] to pmd.[sh|bat].
    +Implemented RFE 1058042 - XML output is more readable now.
    +Applied patch 1051956 - Rulesets that reference rules using "ref" can now override various properties.
    +Applied patch 1070733 - CPD's Java checker now has an option to ignore both literals and identifiers - this can help find large duplicate code blocks, but can also result in false positives.
    +YAHTMLRenderer no longer has dependence on Ant packages.
    +Modified the AST to correctly include PostfixExpression nodes.  Previously a statement like "x++;" was embedded in the parent StatementExpression node.
    +Moved BooleanInstantiation from the design ruleset to the basic ruleset.
    +Updated Xerces libraries to v2.6.2.
    +Many rule names had the word "Rule" tacked on to the end.  Various folks thought this was a bad idea, so here are the new names of those rules which were renamed:
    +- basic.xml: UnnecessaryConversionTemporary, OverrideBothEqualsAndHashcode, DoubleCheckedLocking
    +- braces.xml: WhileLoopsMustUseBraces, IfElseStmtsMustUseBraces, ForLoopsMustUseBraces
    +- clone.xml: ProperCloneImplementation
    +- codesize.xml: CyclomaticComplexity, ExcessivePublicCount
    +- controversial.xml: UnnecessaryConstructor, AssignmentInOperand, DontImportSun, SuspiciousOctalEscape
    +- coupling.xml: CouplingBetweenObjects, ExcessiveImports, LooseCoupling
    +- design.xml: UseSingleton, SimplifyBooleanReturns, AvoidReassigningParameters, ConstructorCallsOverridableMethod, AccessorClassGeneration, CloseConnection, OptimizableToArrayCall, IdempotentOperations. ImmutableField
    +- junit.xml: JUnitAssertionsShouldIncludeMessage, JUnitTestsShouldIncludeAssert
    +- logging-java.xml: MoreThanOneLogger, LoggerIsNotStaticFinal
    +- naming.xml: ShortMethodName, VariableNamingConventions, ClassNamingConventions, AbstractNaming
    +- strictexception.xml: ExceptionAsFlowControl, AvoidCatchingNPE, AvoidThrowingCertainExceptionTypes
    +Continued working on JDK 1.5 compatibility - added support for static import statements, varargs, and the new for loop syntax
    +- still TODO: generics and annotations (note that autoboxing shouldn't require a grammar change)
    +- Good article on features: http://java.sun.com/developer/technicalArticles/releases/j2se15/
    +
    + +

    October 19, 2004 - 2.0:

    + +
    New rules: InstantiationToGetClass, IdempotentOperationsRule, SuspiciousEqualsMethodName, SimpleDateFormatNeedsLocale, JUnitTestsShouldContainAssertsRule, SuspiciousConstantFieldName, ImmutableFieldRule, MoreThanOneLoggerRule, LoggerIsNotStaticFinalRule, UseLocaleWithCaseConversions
    +Applied patch in RFE 992576 - Enhancements to VariableNamingConventionsRule
    +Implemented RFE 995910 - The HTML report can now include links to HTMLlized source code - for example, the HTML generated by JXR.
    +Implemented RFE 665824 - PMD now ignores rule violations in lines containing the string 'NOPMD'.
    +Fixed bug in SimplifyBooleanExpressions - now it catches more cases.
    +Fixed bugs in AvoidDuplicateLiterals - now it ignores small duplicate literals, its message is more helpful, and it catches more cases.
    +Fixed bug 997893 - UnusedPrivateField now detects assignments to members of private fields as a usage.
    +Fixed bug 1020199 - UnusedLocalVariable no longer flags arrays as unused if an assignment is made to an array slot.
    +Fixed bug 1027133 - Now ExceptionSignatureDeclaration skips certain JUnit framework methods.
    +Fixed bug 1008548 - The 'favorites' ruleset no longer contains a broken reference.
    +Fixed bug 1045583 - UnusedModifier now correctly handles anonymous inner classes within interface field declarations.
    +Partially fixed bug 998122 - CloseConnectionRule now checks for imports of java.sql before reporting a rule violation.
    +Applied patch 1001694 - Now PMD can process zip/jar files of source code.
    +Applied patch 1032927 - The XML report now includes the rule priority.
    +Added data flow analysis facade from Raik Schroeder.
    +Added two new optional attributes to rule definitions - symboltable and dfa.  These allow the symbol table and DFA facades to be configured on a rule-by-rule basis.  Note that if your rule needs the symbol table; you'll need to add symboltable="true" to your rule definition.  FWIW, this also results in about a 5% speedup for rules that don't need either layer.
    +Added a "logging" ruleset - thanks to Miguel Griffa for the code!
    +Enhanced the ASTViewer - and renamed it 'Designer' - to display data flows.
    +Moved development environment to Maven 1.0.
    +Moved development environment to Ant 1.6.2.  This is nice because using the new JUnit task attribute "forkmode='perBatch'" cuts test runtime from 90 seconds to 7 seconds.  Sweet.
    +MethodWithSameNameAsEnclosingClass now reports a more helpful line number.
    +
    + +

    July 14, 2004 - 1.9:

    + +
    New rules: CloneMethodMustImplementCloneable, CloneThrowsCloneNotSupportedException, EqualsNull, ConfusingTernary
    +Created new "clone" ruleset and moved ProperCloneImplementationRule over from the design ruleset.
    +Moved LooseCoupling from design.xml to coupling.xml.
    +Some minor performance optimizations - removed some unnecessary casts from the grammar, simplified some XPath rules.
    +Postfix expressions (i.e., x++) are now available in the grammar.  To access them, search for StatementExpressions with an image of "++" or "--" - i.e., in XPath, //StatementExpression[@Image="++"].  This is an odd hack and hopefully will get cleared up later.
    +Ant task and CLI now used BufferedInputStreams.
    +Converted AtLeastOneConstructor rule from Java code to XPath.
    +Implemented RFE 743460: The XML report now contains the ruleset name.
    +Implemented RFE 958714: Private field and local variables that are assigned but not used are now flagged as unused.
    +Fixed bug 962782 - BeanMembersShouldSerializeRule no longer reports set/is as being a violation.
    +Fixed bug 977022 - UnusedModifier no longer reports false positives for modifiers of nested classes in interfaces
    +Fixed bug 976643 - IfElseStmtsMustUseBracesRule no longer reports false positives for certain if..else constructs.
    +Fixed bug 985961 - UseSingletonRule now fires on classes which contain static fields
    +Fixed bug 977031 - FinalizeDoesNotCallSuperFinalize no longer reports a false positive when a finalizer contains a call to super.finalize in a try {} finally {} block.
    +
    + +

    May 19, 2004 - 1.8:

    + +
    New rules: ExceptionAsFlowControlRule, BadComparisonRule, AvoidThrowingCertainExceptionTypesRule, AvoidCatchingNPERule, OptimizableToArrayCallRule
    +Major grammar changes - lots of new node types added, many superfluous nodes removed from the runtime AST.  Bug 786611 - http://sourceforge.net/tracker/index.php?func=detail&aid=786611&group_id=56262&atid=479921 - explains it a bit more.
    +Fixed bug 786611 - Expressions are no longer over-expanded in the AST
    +Fixed bug 874284 - The AST now contains tokens for bitwise or expressions - i.e., "|"
    +
    + +

    April 22, 2004 - 1.7:

    + +
    Moved development environment to Maven 1.0-RC2.
    +Fixed bug 925840 - Messages were no longer getting variable names plugged in correctly
    +Fixed bug 919308 - XMLRenderer was still messed up; 'twas missing a quotation mark.
    +Fixed bug 923410 - PMD now uses the default platform character set encoding; optionally, you can pass in a character encoding to use.
    +Implemented RFE 925839 - Added some more detail to the UseSingletonRule.
    +Added an optional 'failuresPropertyName' attribute to the Ant task.
    +Refactored away duplicate copies of XPath rule definitions in regress/, yay!
    +Removed manifest from jar file; it was only there for the Main-class attribute, and it's not very useful now since PMD has several dependencies.
    +Began working on JDK 1.5 compatibility - added support for EnumDeclaration nodes.
    +
    + +

    March 15, 2004 - 1.6:

    + +
    Fixed bug 895661 - XML reports containing error elements no longer have malformed XML.
    +Fixed a bug in UnconditionalIfStatement - it no longer flags things like "if (x==true)".
    +Applied Steve Hawkins' improvements to CPD:
    +- Various optimizations; now it runs about 4 times faster!
    +- fixed "single match per file" bug
    +- tweaked source code slicing
    +- CSV renderer
    +Added two new renderers - SummaryHTMLRenderer and PapariTextRenderer.
    +Moved development environment to Ant 1.6 and JavaCC 3.2.
    +
    + +

    February 2, 2004 - 1.5:

    + +
    New rules: DontImportSunRule, EmptyFinalizer, EmptyStaticInitializer, AvoidDollarSigns, FinalizeOnlyCallsSuperFinalize, FinalizeOverloaded, FinalizeDoesNotCallSuperFinalize, MethodWithSameNameAsEnclosingClass, ExplicitCallToFinalize, NonStaticInitializer, DefaultLabelNotLastInSwitchStmt, NonCaseLabelInSwitchStatement, SuspiciousHashcodeMethodName, EmptyStatementNotInLoop, SuspiciousOctalEscapeRule
    +FinalizeShouldBeProtected moved from design.xml to finalizers.xml.
    +Added isTrue() to ASTBooleanLiteral.
    +Added UnaryExpression to the AST.
    +Added isPackagePrivate() to AccessNode.
    +
    + +

    January 7, 2004 - 1.4:

    + +
    New rules: AbstractNamingRule, ProperCloneImplementationRule
    +Fixed bug 840926 - AvoidReassigningParametersRule no longer reports a false positive when assigning a value to an array slot when the array is passed as a parameter to a method
    +Fixed bug 760520 - RuleSetFactory is less strict about whitespace in ruleset.xml files.
    +Fixed bug 826805 - JumbledIncrementorRule no longer reports a false positive when a outer loop incrementor is used as an array index
    +Fixed bug 845343 - AvoidDuplicateLiterals now picks up cases when a duplicate literal appears in field declarations.
    +Fixed bug 853409 - VariableNamingConventionsRule no longer requires that non-static final fields be capitalized
    +Fixed a bug in OverrideBothEqualsAndHashcodeRule; it no longer reports a false positive when equals() is passed the fully qualified name of Object.
    +Implemented RFE 845348 - UnnecessaryReturn yields more useful line numbers now
    +Added a ruleset DTD and a ruleset XML Schema.
    +Added 'ExplicitExtends' and 'ExplicitImplements' attributes to UnmodifiedClassDeclaration nodes.
    +
    + +

    October 23, 2003 - 1.3:

    + +
    Relicensed under a BSD-style license.
    +Fixed bug 822245 - VariableNamingConventionsRule now handles interface fields correctly.
    +Added new rules: EmptySynchronizedBlock, UnnecessaryReturn
    +ASTType now has an getDimensions() method.
    +
    + +

    October 06, 2003 - 1.2.2:

    + +
    Added new rule: CloseConnectionRule
    +Fixed bug 782246 - FinalFieldCouldBeStatic no longer flags fields in interfaces.
    +Fixed bug 782235 - "ant -version" now prints more details when a file errors out.
    +Fixed bug 779874 - LooseCouplingRule no longer triggers on ArrayList
    +Fixed bug 781393 - VariableNameDeclaration no longer throws ClassCastExpression since ASTLocalVariableDeclaration now subclasses AccessNode
    +Fixed bug 797243 - CPD XML report can no longer contain ]]> (CDEnd)
    +Fixed bug 690196 - PMD now handles both JDK 1.3 and 1.4 code - i.e., usage of "assert" as an identifier.
    +Fixed bug 805092 - VariableNamingConventionsRule no longer flags serialVersionUID as a violation
    +Fixed bug - Specifying a non-existing rule format on the command line no longer results in a ClassNotFoundException.
    +XPath rules may now include pluggable parameters.  This feature is very limited.  For now.
    +Tweaked CPD time display field
    +Made CPD text fields uneditable
    +Added more error checking to CPD GUI input
    +Added "dialog cancelled" check to CPD "Save" function
    +Added Boris Gruschko's AST viewer.
    +Added Jeff Epstein's TextPad integration.
    +ASTType now has an isArray() method.
    +
    + +

    August 1, 2003 - 1.2.1:

    + +
    Fixed bug 781077 - line number "-1" no longer appears for nodes with siblings.
    +
    + +

    July 30, 2003 - 1.2:

    + +
    Added new rules: VariableNamingConventionsRule, MethodNamingConventionsRule, ClassNamingConventionsRule, AvoidCatchingThrowable, ExceptionSignatureDeclaration, ExceptionTypeChecking, BooleanInstantiation
    +Fixed bug 583047 - ASTName column numbers are now correct
    +Fixed bug 761048 - Symbol table now creates a scope level for anonymous inner classes
    +Fixed bug 763529 - AccessorClassGenerationRule no longer crashes when given a final inner class
    +Fixed bug 771943 - AtLeastOneConstructorRule and UnnecessaryConstructorRule no longer reports false positives on inner classes.
    +Applied patch from Chris Webster to fix another UnnecessaryConstructorRule problem.
    +Added ability to accept a comma-delimited string of files and directories on the command line.
    +Added a CSVRenderer.
    +Added a "-shortfilenames" argument to the PMD command line interface.
    +Modified grammer to provide information on whether an initializer block is static.
    +ASTViewer now shows node images and modifiers
    +ASTViewer now saves last edited text to ~/.pmd_astviewer
    +Moved the PMD Swing UI into a separate module - pmd-swingui.
    +Updated license.txt to point to new location.
    +
    + +

    June 19, 2003 - 1.1:

    + +
    Added new rules: FinalizeShouldBeProtected, FinalFieldCouldBeStatic, BeanMembersShouldSerializeRule
    +Removed "verbose" attribute from PMD and CPD Ant tasks; now they use built in logging so you can do a "ant -verbose cpd" or "ant -verbose pmd".  Thanks to Philippe T'Seyen for the code.
    +Added "excludes" feature to rulesets; thanks to Gael Marziou for the suggestion.
    +Removed "LinkedList" from LooseCouplingRule checks; thx to Randall Schulz for the suggestion.
    +CPD now processes PHP code.
    +Added VBHTMLRenderer; thanks to Vladimir Bossicard for the code.
    +Added "Save" item to CPD GUI; thanks to mcclain looney for the patch.
    +Fixed bug 732592 - Ant task now accepts a nested classpath element.
    +Fixed bug 744915 - UseSingletonRule no longer fires on abstract classes, thanks to Pablo Casado for the bug report.
    +Fixed bugs 735396 and 735399 - false positives from ConstructorCallsOverridableMethodRule
    +Fixed bug 752809 - UnusedPrivateMethodRule now catches unused private static methods, thanks to Conrad Roche for the bug report.
    +
    + +

    April 17, 2003 - 1.05:

    + +
    Added new rules: ReturnFromFinallyBlock, SimplifyBooleanExpressions
    +Added a new Ant task for CPD; thanks to Andy Glover for the code.
    +Added ability to specify a class name as a renderer on the command line or in the formatter "type" attribute of the Ant task.
    +Brian Ewins completely rewrote CPD using a portion of the Burrows-Wheeler Transform - it's much, much, much faster now.
    +Rebuilt parser with JavaCC 3.0; made several parser optimizations.
    +The Ant task now accepts a <classpath> element to aid in loading custom rulesets.  Thanks to Luke Francl for the suggestion.
    +Fixed several bugs in UnnecessaryConstructorRule; thanks to Adam Nemeth for the reports and fixes.
    +All test-data classes have been inlined into their respective JUnit tests.
    +
    + +

    March 21, 2003 - 1.04

    + +
    Added new rules: ConstructorCallsOverridableMethodRule, AtLeastOneConstructorRule, JUnitAssertionsShouldIncludeMessageRule, DoubleCheckedLockingRule, ExcessivePublicCountRule, AccessorClassGenerationRule
    +The Ant task has been updated; if you set "verbose=true" full stacktraces are printed.  Thx to Paul Roebuck for the suggestion.
    +Moved JUnit rules into their own package - "net.sourceforge.pmd.rules.junit".
    +Incorporated new ResourceLoader; thanks to Dave Fuller
    +Incorporated new XPath-based rule definitions; thanks to Dan Sheppard for the excellent work.
    +Fixed bug 697187 - Problem with nested ifs
    +Fixed bug 699287 - Grammar bug; good catch by David Whitmore
    +
    + +

    February 11, 2003 - 1.03

    + +
    Added new rules: CyclomaticComplexityRule, AssignmentInOperandRule
    +Added numbering to the HTMLRenderer; thx to Luke Francl for the code.
    +Added an optional Ant task attribute 'failOnRuleViolation'.  This stops the build if any rule violations are found.
    +Added an XSLT script for processing the PMD XML report; thx to Mats for the code.
    +The Ant task now determines whether the formatter toFile attribute is absolute or relative and routes the report appropriately.
    +Moved several rules into a new "controversial" ruleset.
    +Fixed bug 672742 - grammar typo was hosing up ASTConstructorDeclaration which was hosing up UseSingletonRule
    +Fixed bug 674393 - OnlyOneReturn rule no longer counts returns that are inside anonymous inner classes as being inside the containing method.  Thx to C. Lamont Gilbert for the bug report.
    +Fixed bug 674420 - AvoidReassigningParametersRule no longer counts parameter field reassignment as a violation.  Thx to C. Lamont Gilbert for the bug report.
    +Fixed bug 673662 - The Ant task's "failOnError" attribute works again.  Changed the semantics of this attribute, though, so it fails the build if errors occurred.  A new attribute 'failOnRuleViolation' serves the purpose of stopping the build if rule violations are found.
    +Fixed bug 676340 - Symbol table now creates new scope level when it encounters a switch statement.  See the bug for code details; generally, this bug would have triggered runtime exceptions on certain blocks of code.
    +Fixed bug 683465 - JavaCC parser no longer has ability to throw java.lang.Error; now it only throws java.lang.RuntimeExceptions.  Thx to Gunnlaugur Thor Briem for a good discussion on this topic.
    +Fixed bug in OverrideBothEqualsAndHashcodeRule - it no longer bails out with a NullPtrException on interfaces that declare a method signature "equals(Object)".  Thx to Don Leckie for catching that.
    +
    + +

    January 22, 2003 - 1.02:

    + +
    Added new rules: ImportFromSamePackageRule, SwitchDensityRule, NullAssignmentRule, UnusedModifierRule, ForLoopShouldBeWhileLoopRule
    +Updated LooseCouplingRule to check for usage of Vector; thx to Vladimir for the good catch.
    +Updated AvoidDuplicateLiteralsRule to report the line number of the first occurrence of the duplicate String.
    +Modified Ant task to use a formatter element; this lets you render a report in several formats without having to rerun PMD.
    +Added a new Ant task attribute - shortFilenames.
    +Modified Ant task to ignore whitespace in the ruleset attribute
    +Added rule priority settings.
    +Added alternate row colorization to HTML renderer.
    +Fixed bug 650623 - the Ant task now uses relative directories for the report file
    +Fixed bug 656944 - PMD no longer prints errors to System.out, instead it just rethrows any exceptions
    +Fixed bug 660069 - this was a symbol table bug; thanks to mcclain looney for the report.
    +Fixed bug 668119 - OverrideBothEqualsAndHashcodeRule now checks the signature on equals(); thanks to mcclain looney for the report.
    +
    + +

    November 07 2002 - 1.01:

    + +
    Fixed bug 633879: EmptyFinallyBlockRule now handles multiple catch blocks followed by a finally block.
    +Fixed bug 633892: StringToStringRule false positive exposed problem in symbol table usage to declaration code.
    +Fixed bug 617971: Statistical rules no longer produce tons of false positives due to accumulated results.
    +Fixed bug 633209: OnlyOneReturn rule no longer requires the return stmt to be the last statement.
    +Enhanced EmptyCatchBlockRule to flag multiple consecutive empty catch blocks.
    +Renamed AvoidStringLiteralsRule to AvoidDuplicateLiteralsRule.
    +Modified Ant task to truncate file paths to make the HTML output neater.
    +
    + +

    November 04 2002 - 1.0:

    + +
    Added new rules: StringToStringRule, AvoidReassigningParametersRule, UnnecessaryConstructorRule, AvoidStringLiteralsRule
    +Fixed bug 631010: AvoidDeeplyNestedIfStmtsRule works correctly with if..else stmts now
    +Fixed bug 631605: OnlyOneReturn handles line spillover now.
    +Moved AvoidDeeplyNestedIfStmts from the braces ruleset to the design ruleset.
    +Moved several rules from the design ruleset to the codesize ruleset.
    +Added a new "favorites" ruleset.
    +
    + +

    October 04 2002 - 1.0rc3:

    + +
    Added new rules: OnlyOneReturnRule, JumbledIncrementerRule, AvoidDeeplyNestedIfStmtsRule
    +PMD is now built and tested with JUnit 3.8.1 and Ant 1.5.
    +Added support for IntelliJ's IDEAJ.
    +Fixed bug 610018 - StringInstantiationRule now allows for String(byte[], int, int) usage.
    +Fixed bug 610693 - UnusedPrivateInstanceVariable handles parameter shadowing better.
    +Fixed bug 616535 - Command line interface input checking is better now.
    +Fixed bug 616615 - Command line interface allows the text renderer to be used now
    +Fixed a bug - the statistics rules now handle interfaces better.
    +
    + +

    September 12 2002 - 1.0rc2:

    + +
    Added new rules: JUnitSpellingRule, JUnitStaticSuiteRule, StringInstantiationRule
    +Added new rulesets - junit, strings.
    +Added a printToConsole attribute to the Ant task so that you can see the report right there in the Ant output.
    +Fixed bug in PMD GUI - rules are now saved correctly.
    +Fixed bug 597916 - CPD line counts are accurate now.
    +
    + +

    September 09 2002 - 1.0rc1:

    + +
    Added new rules: UnusedImportsRule, EmptySwitchStmtRule, SwitchStmtsShouldHaveDefaultRule, IfStmtsMustUseBracesRule
    +Fixed bug 597813 - Rule properties are now parsed correctly
    +Fixed bug 597905 - UseSingletonRule now resets its state correctly
    +Moved several rules into a new ruleset - braces.
    +Improved CPD by removing import statements and package statements from the token set.
    +Added Metrics API to the Report.
    +Updated PMD GUI.
    +
    + +

    August 16 2002 - 0.9:

    + +
    Added new rules: LongParameterListRule, SimplifyBooleanReturnsRule
    +Enhanced statistics rules to support various ways of triggering rule violations
    +Added rule customization via XML parameters
    +Enhanced CopyAndPasteDetector; added a GUI
    +Fixed bug 592060 - UnusedPrivateInstanceVariable handles explicitly referenced statics correctly
    +Fixed bug 593849 - UnusedPrivateInstanceVariable handles nested classes better
    +
    + +

    July 30 2002 - 0.8:

    + +
    Added new rule: UnusedFormalParameterRule
    +Fixed bug 588083 - ForLoopsNeedBraces rule correctly handles a variety of for statement formats
    +Added prototype of the copy and paste detector
    +
    + +

    July 25 2002 - 0.7:

    + +
    Added new rules: UnusedPrivateMethodRule, WhileLoopsMustUseBracesRule, ForLoopsMustUseBracesRule, LooseCouplingRule
    +Fixed bug 583482 - EmptyCatchBlock and EmptyFinallyBlock no longer report an incorrect line number.
    +
    + +

    July 18 2002 - 0.6:

    + +
    Added new rules: ExcessiveClassLength, ExcessiveMethodLength
    +DuplicateImportsRule now reports the correct line number.
    +Fixed bug 582639 - Rule violations are now reported on the proper line
    +Fixed bug 582509 - Removed unneeded throws clause
    +Fixed bug 583009 - Now rulesets.properties is in the jar file
    +
    + +

    July 15 2002 - 0.5:

    + +
    Added new rules: DontImportJavaLangRule, DuplicateImportsRule
    +Added new ruleset: rulesets/imports.xml
    +Changed sorting of RuleViolations to group Files together.
    +Changed XML Renderer to improved format.
    +Created DVSL Stylesheet for the new format.
    +Moved the Cougaar rules out of the PMD core.
    +Fixed bug 580093 - OverrideBothEqualsAndHashcodeRule reports a more correct line number.
    +Fixed bug 581853 - UnusedLocalVariableRule now handles anonymous inner classes correctly.
    +Fixed bug 580278 - this was a side effect of bug 581853.
    +Fixed bug 580123 - UnusedPrivateInstanceVariable now checks for instance variable usage in inner classes.
    +
    + +

    July 10 2002 - 0.4:

    + +
    Added new rules: OverrideBothEqualsAndHashcodeRule, EmptyTryBlock, EmptyFinallyBlock
    +Reports are now sorted by line number
    +RuleSets can now reference rules in other RuleSets
    +Fixed bug 579718 - made 'ruleset not found' error message clearer.
    +
    + +

    July 03 2002 - 0.3:

    + +
    Added new rules: UseSingletonRule, ShortVariableRule, LongVariableRule, ShortMethodNameRule
    +Moved rules into RuleSets which are defined in XML files in the ruleset directory
    +Ant task:
    +-Added a 'failonerror' attribute
    +-Changed 'rulesettype' to 'rulesetfiles'
    +-Removed 'text' report format; only 'html' and 'xml' are available now
    +
    + +

    June 27 2002 - 0.2:

    + +
    Added new rules: IfElseStmtsMustUseBracesRule, EmptyWhileStmtRule
    +Modified command line interface to accept a rule set
    +Fixed bug in EmptyCatchBlockRule
    +Fixed typo in UnnecessaryConversionTemporaryRule
    +Moved Ant task to the net.sourceforge.pmd.ant package
    +Added new HTML report format
    +
    + +

    June 25 2002 - 0.1:

    + +
    Initial release
    +
    + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex.html b/pmd_rules_apex.html new file mode 100644 index 0000000000..ade2c4ab50 --- /dev/null +++ b/pmd_rules_apex.html @@ -0,0 +1,1653 @@ + + + + + + + + +Apex Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Apex Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Apex
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + + + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + +
      +
    • ClassNamingConventions: Configurable naming conventions for type declarations. This rule reports type declara…
    • +
    • FieldDeclarationsShouldBeAtStart: Field declarations should appear before method declarations within a class.
    • +
    • FieldNamingConventions: Configurable naming conventions for field declarations. This rule reports variable declarations …
    • +
    • ForLoopsMustUseBraces: Avoid using ‘for’ statements without using surrounding braces. If the code formatting or indentat…
    • +
    • FormalParameterNamingConventions: Configurable naming conventions for formal parameters of methods. This rule reports f…
    • +
    • IfElseStmtsMustUseBraces: Avoid using if..else statements without using surrounding braces. If the code formatting or inden…
    • +
    • IfStmtsMustUseBraces: Avoid using if statements without using braces to surround the code block. If the code formatting…
    • +
    • LocalVariableNamingConventions: Configurable naming conventions for local variable declarations. This rule reports va…
    • +
    • MethodNamingConventions: Configurable naming conventions for method declarations. This rule reports method dec…
    • +
    • OneDeclarationPerLine: Apex allows the use of several variables declaration of the same type on one line. However, it ca…
    • +
    • PropertyNamingConventions: Configurable naming conventions for property declarations. This rule reports property…
    • +
    • VariableNamingConventions: Deprecated A variable naming conventions rule - customize this to your liking. Currently, it checks for fin…
    • +
    • WhileLoopsMustUseBraces: Avoid using ‘while’ statements without using braces to surround the code block. If the code forma…
    • +
    + +

    Design

    + +
    Rules that help you discover design issues.
    + +
      +
    • AvoidDeeplyNestedIfStmts: Avoid creating deeply nested if-then statements since they are harder to read and error-prone to …
    • +
    • CognitiveComplexity: Methods that are highly complex are difficult to read and more costly to maintain. If you include…
    • +
    • CyclomaticComplexity: The complexity of methods directly affects maintenance costs and readability. Concentrating too m…
    • +
    • ExcessiveClassLength: Excessive class file lengths are usually indications that the class may be burdened with excessiv…
    • +
    • ExcessiveParameterList: Methods with numerous parameters are a challenge to maintain, especially if most of them share th…
    • +
    • ExcessivePublicCount: Classes with large numbers of public methods and attributes require disproportionate testing effo…
    • +
    • NcssConstructorCount: This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NcssMethodCount: This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NcssTypeCount: This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • StdCyclomaticComplexity: Complexity directly affects maintenance costs is determined by the number of decision points in a…
    • +
    • TooManyFields: Classes that have too many fields can become unwieldy and could be redesigned to have fewer field…
    • +
    + +

    Documentation

    + +
    Rules that are related to code documentation.
    + +
      +
    • ApexDoc: This rule validates that: ApexDoc comments are present for classes, methods, and properties that…
    • +
    + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + +
      +
    • ApexCSRF: Having DML operations in Apex class constructor or initializers can have unexpected side effects:…
    • +
    • AvoidDirectAccessTriggerMap: Avoid directly accessing Trigger.old and Trigger.new as it can lead to a bug. Triggers should be …
    • +
    • AvoidHardcodingId: When deploying Apex code between sandbox and production environments, or installing Force.com App…
    • +
    • AvoidNonExistentAnnotations: Apex supported non existent annotations for legacy reasons. In the future, use of suc…
    • +
    • EmptyCatchBlock: Empty Catch Block finds instances where an exception is caught, but nothing is done. In most circ…
    • +
    • EmptyIfStmt: Empty If Statement finds instances where a condition is checked but nothing is done about it.
    • +
    • EmptyStatementBlock: Empty block statements serve no purpose and should be removed.
    • +
    • EmptyTryOrFinallyBlock: Avoid empty try or finally blocks - what’s the point?
    • +
    • EmptyWhileStmt: Empty While Statement finds all instances where a while statement does nothing. If it is a timing…
    • +
    • MethodWithSameNameAsEnclosingClass: Non-constructor methods should not have the same name as the enclosing class.
    • +
    • TestMethodsMustBeInTestClasses: Test methods marked as a testMethod or annotated with @IsTest, but not residing in a te…
    • +
    + +

    Performance

    + +
    Rules that flag suboptimal code.
    + +
      +
    • AvoidDmlStatementsInLoops: Deprecated Avoid DML statements inside loops to avoid hitting the DML governor limit. Instead, try to batch …
    • +
    • AvoidSoqlInLoops: Deprecated New objects created within loops should be checked to see if they can created outside them and re…
    • +
    • AvoidSoslInLoops: Deprecated Sosl calls within loops can cause governor limit exceptions. This rule is deprecated and will be …
    • +
    • OperationWithLimitsInLoop: Database class methods, DML operations, SOQL queries, or SOSL queries within loops can cause gove…
    • +
    + +

    Security

    + +
    Rules that flag potential security flaws.
    + +
      +
    • ApexBadCrypto: The rule makes sure you are using randomly generated IVs and keys for ‘Crypto’ calls. Hard-wiring…
    • +
    • ApexCRUDViolation: The rule validates you are checking for access permissions before a SOQL/SOSL/DML operation. Sinc…
    • +
    • ApexCSRF: Deprecated The rule has been moved to another ruleset. Use instead ApexCSRF.
    • +
    • ApexDangerousMethods: Checks against calling dangerous methods. For the time being, it reports: Against ‘FinancialForc…
    • +
    • ApexInsecureEndpoint: Checks against accessing endpoints under plain http. You should always use https for security.
    • +
    • ApexOpenRedirect: Checks against redirects to user-controlled locations. This prevents attackers from redirecting u…
    • +
    • ApexSharingViolations: Detect classes declared without explicit sharing mode if DML methods are used. This forces the de…
    • +
    • ApexSOQLInjection: Detects the usage of untrusted / unescaped variables in DML queries.
    • +
    • ApexSuggestUsingNamedCred: Detects hardcoded credentials used in requests to an endpoint. You should refrain from hardcoding…
    • +
    • ApexXSSFromEscapeFalse: Reports on calls to ‘addError’ with disabled escaping. The message passed to ‘addError’ will be d…
    • +
    • ApexXSSFromURLParam: Makes sure that all values obtained from URL parameters are properly escaped / sanitized to avoid…
    • +
    + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_bestpractices.html b/pmd_rules_apex_bestpractices.html new file mode 100644 index 0000000000..4d0e8978a3 --- /dev/null +++ b/pmd_rules_apex_bestpractices.html @@ -0,0 +1,1952 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    ApexAssertionsShouldIncludeMessage

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    The second parameter of System.assert/third parameter of System.assertEquals/System.assertNotEquals is a message. +Having a second/third parameter provides more information and makes it easier to debug the test failure and +improves the readability of test output.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.ApexAssertionsShouldIncludeMessageRule

    + +

    Example(s):

    + +
    @isTest
    +public class Foo {
    +    @isTest
    +    static void methodATest() {
    +        System.assertNotEquals('123', o.StageName); // not good
    +        System.assertEquals('123', o.StageName, 'Opportunity stageName is wrong.'); // good
    +        System.assert(o.isClosed); // not good
    +        System.assert(o.isClosed, 'Opportunity is not closed.'); // good
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesBug RiskDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/ApexAssertionsShouldIncludeMessage" />
    +
    + +

    ApexUnitTestClassShouldHaveAsserts

    + +

    Since: PMD 5.5.1

    + +

    Priority: Medium (3)

    + +

    Apex unit tests should include at least one assertion. This makes the tests more robust, and using assert +with messages provide the developer a clearer idea of what the test does.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.ApexUnitTestClassShouldHaveAssertsRule

    + +

    Example(s):

    + +
    @isTest
    +public class Foo {
    +    public static testMethod void testSomething() {
    +        Account a = null;
    +        // This is better than having a NullPointerException
    +        // System.assertNotEquals(a, null, 'account not found');
    +        a.toString();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesBug RiskDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/ApexUnitTestClassShouldHaveAsserts" />
    +
    + +

    ApexUnitTestMethodShouldHaveIsTestAnnotation

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    Apex test methods should have @isTest annotation. +As testMethod keyword is deprecated, Salesforce advices to use @isTest annotation for test class/methods.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.ApexUnitTestMethodShouldHaveIsTestAnnotationRule

    + +

    Example(s):

    + +
    @isTest
    +private class ATest {
    +    @isTest
    +    static void methodATest() {
    +    }
    +    static void methodBTest() {
    +    }
    +    @isTest static void methodCTest() {
    +        System.assert(1==2);
    +    }
    +    @isTest static void methodCTest() {
    +        System.debug('I am a debug statement');
    +    }
    +    private void fetchData() {
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesBug RiskDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/ApexUnitTestMethodShouldHaveIsTestAnnotation" />
    +
    + +

    ApexUnitTestShouldNotUseSeeAllDataTrue

    + +

    Since: PMD 5.5.1

    + +

    Priority: Medium (3)

    + +

    Apex unit tests should not use @isTest(seeAllData=true) because it opens up the existing database data for unexpected modification by tests.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.ApexUnitTestShouldNotUseSeeAllDataTrueRule

    + +

    Example(s):

    + +
    @isTest(seeAllData = true)
    +public class Foo {
    +    public static testMethod void testSomething() {
    +        Account a = null;
    +        // This is better than having a NullPointerException
    +        // System.assertNotEquals(a, null, 'account not found');
    +        a.toString();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesBug RiskDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/ApexUnitTestShouldNotUseSeeAllDataTrue" />
    +
    + +

    AvoidGlobalModifier

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Global classes should be avoided (especially in managed packages) as they can never be deleted or changed in signature. Always check twice if something needs to be global. +Many interfaces (e.g. Batch) required global modifiers in the past but don’t require this anymore. Don’t lock yourself in.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.AvoidGlobalModifierRule

    + +

    Example(s):

    + +
    global class Unchangeable {
    +    global UndeletableType unchangable(UndeletableType param) {
    +        // ...
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/AvoidGlobalModifier" />
    +
    + +

    AvoidLogicInTrigger

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    As triggers do not allow methods like regular classes they are less flexible and suited to apply good encapsulation style. +Therefore delegate the triggers work to a regular class (often called Trigger handler class).

    + +

    See more here: https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigger_Best_Practices

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.AvoidLogicInTriggerRule

    + +

    Example(s):

    + +
    trigger Accounts on Account (before insert, before update, before delete, after insert, after update, after delete, after undelete) {
    +    for(Account acc : Trigger.new) {
    +        if(Trigger.isInsert) {
    +            // ...
    +        }
    +
    +        // ...
    +
    +        if(Trigger.isDelete) {
    +            // ...
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier200Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/AvoidLogicInTrigger" />
    +
    + +

    DebugsShouldUseLoggingLevel

    + +

    Since: PMD 6.18.0

    + +

    Priority: Medium (3)

    + +

    The first parameter of System.debug, when using the signature with two parameters, is a LoggingLevel enum.

    + +

    Having the Logging Level specified provides a cleaner log, and improves readability of it.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodCallExpression[lower-case(@FullMethodName)='system.debug'][count(*)=2
    +    or ($strictMode=true() and count(*)=3 and lower-case(VariableExpression/@Image)='debug')]
    +
    + +

    Example(s):

    + +
    @isTest
    +public class Foo {
    +    @isTest
    +    static void bar() {
    +        System.debug('Hey this code executed.'); // not good
    +        System.debug(LoggingLevel.WARN, 'Hey, something might be wrong.'); // good
    +        System.debug(LoggingLevel.DEBUG, 'Hey, something happened.'); // not good when on strict mode
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    strictModefalseIf true, mark statements that use the DEBUG enum of LoggingLevel.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/DebugsShouldUseLoggingLevel" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/bestpractices.xml/DebugsShouldUseLoggingLevel">
    +    <properties>
    +        <property name="strictMode" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UnusedLocalVariable

    + +

    Since: PMD 6.23.0

    + +

    Priority: Low (5)

    + +

    Detects when a local variable is declared and/or assigned but not used.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.bestpractices.UnusedLocalVariableRule

    + +

    Example(s):

    + +
    public Boolean bar(String z) {
    +        String x = 'some string'; // not used
    +
    +        String y = 'some other string'; // used in the next line
    +        return z.equals(y);
    +    }
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/bestpractices.xml/UnusedLocalVariable" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_codestyle.html b/pmd_rules_apex_codestyle.html new file mode 100644 index 0000000000..30b49723c9 --- /dev/null +++ b/pmd_rules_apex_codestyle.html @@ -0,0 +1,2525 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    ClassNamingConventions

    + +

    Since: PMD 5.5.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for type declarations. This rule reports +type declarations which do not match the regex that applies to their +specific kind (e.g. enum or interface). Each regex can be configured through +properties.

    + +

    By default this rule uses the standard Apex naming convention (Pascal case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.ClassNamingConventionsRule

    + +

    Example(s):

    + +
    public class FooClass { } // This is in pascal case, so it's ok
    +
    +public class fooClass { } // This will be reported unless you change the regex
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier5Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    testClassPattern[A-Z][a-zA-Z0-9_]*Regex which applies to test class namesno
    abstractClassPattern[A-Z][a-zA-Z0-9_]*Regex which applies to abstract class namesno
    classPattern[A-Z][a-zA-Z0-9_]*Regex which applies to class namesno
    interfacePattern[A-Z][a-zA-Z0-9_]*Regex which applies to interface namesno
    enumPattern[A-Z][a-zA-Z0-9_]*Regex which applies to enum namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/ClassNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/ClassNamingConventions">
    +    <properties>
    +        <property name="testClassPattern" value="[A-Z][a-zA-Z0-9_]*" />
    +        <property name="abstractClassPattern" value="[A-Z][a-zA-Z0-9_]*" />
    +        <property name="classPattern" value="[A-Z][a-zA-Z0-9_]*" />
    +        <property name="interfacePattern" value="[A-Z][a-zA-Z0-9_]*" />
    +        <property name="enumPattern" value="[A-Z][a-zA-Z0-9_]*" />
    +    </properties>
    +</rule>
    +
    + +

    FieldDeclarationsShouldBeAtStart

    + +

    Since: PMD 6.23.0

    + +

    Priority: Medium (3)

    + +

    Field declarations should appear before method declarations within a class.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.FieldDeclarationsShouldBeAtStartRule

    + +

    Example(s):

    + +
    class Foo {
    +    public Integer someField; // good
    +
    +    public void someMethod() {
    +    }
    +
    +    public Integer anotherField; // bad
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/FieldDeclarationsShouldBeAtStart" />
    +
    + +

    FieldNamingConventions

    + +

    Since: PMD 6.15.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for field declarations. This rule reports variable declarations +which do not match the regex that applies to their specific kind —e.g. constants (static final), +static field, final field. Each regex can be configured through properties.

    + +

    By default this rule uses the standard Apex naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.FieldNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    Integer instanceField; // This is in camel case, so it's ok
    +
    +    Integer INSTANCE_FIELD; // This will be reported unless you change the regex
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    enumConstantPattern[A-Z][A-Z0-9_]*Regex which applies to enum constant field namesno
    constantPattern[A-Z][A-Z0-9_]*Regex which applies to constant field namesno
    finalPattern[a-z][a-zA-Z0-9]*Regex which applies to final field namesno
    staticPattern[a-z][a-zA-Z0-9]*Regex which applies to static field namesno
    instancePattern[a-z][a-zA-Z0-9]*Regex which applies to instance field namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/FieldNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/FieldNamingConventions">
    +    <properties>
    +        <property name="enumConstantPattern" value="[A-Z][A-Z0-9_]*" />
    +        <property name="constantPattern" value="[A-Z][A-Z0-9_]*" />
    +        <property name="finalPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="staticPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="instancePattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    ForLoopsMustUseBraces

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘for’ statements without using surrounding braces. If the code formatting or +indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForLoopStatement/BlockStatement[@CurlyBrace= false()]
    +|
    +//ForEachStatement/BlockStatement[@CurlyBrace= false()]
    +
    + +

    Example(s):

    + +
    for (int i = 0; i < 42; i++) // not recommended
    +    foo();
    +
    +for (int i = 0; i < 42; i++) { // preferred approach
    +    foo();
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/ForLoopsMustUseBraces" />
    +
    + +

    FormalParameterNamingConventions

    + +

    Since: PMD 6.15.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for formal parameters of methods. +This rule reports formal parameters which do not match the regex that applies to their +specific kind (e.g. method parameter, or final method parameter). Each regex can be +configured through properties.

    + +

    By default this rule uses the standard Apex naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.FormalParameterNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public bar(Integer methodParameter) { } // This is in camel case, so it's ok
    +
    +    public baz(Integer METHOD_PARAMETER) { } // This will be reported unless you change the regex
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    finalMethodParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to final method parameter namesno
    methodParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to method parameter namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/FormalParameterNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/FormalParameterNamingConventions">
    +    <properties>
    +        <property name="finalMethodParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="methodParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    IfElseStmtsMustUseBraces

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid using if..else statements without using surrounding braces. If the code formatting +or indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfBlockStatement/BlockStatement[@CurlyBrace= false()][count(child::*) > 0]
    +|
    +//IfElseBlockStatement/BlockStatement[@CurlyBrace= false()][count(child::*) > 0]
    +
    + +

    Example(s):

    + +
    // this is OK
    +if (foo) x++;
    +
    +// but this is not
    +if (foo)
    +    x = x+1;
    +else
    +    x = x-1;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/IfElseStmtsMustUseBraces" />
    +
    + +

    IfStmtsMustUseBraces

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid using if statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfBlockStatement/BlockStatement[@CurlyBrace= false()]
    +
    + +

    Example(s):

    + +
    if (foo)    // not recommended
    +    x++;
    +
    +if (foo) {  // preferred approach
    +    x++;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/IfStmtsMustUseBraces" />
    +
    + +

    LocalVariableNamingConventions

    + +

    Since: PMD 6.15.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for local variable declarations. +This rule reports variable declarations which do not match the regex that applies to their +specific kind (e.g. local variable, or final local variable). Each regex can be configured through +properties.

    + +

    By default this rule uses the standard Apex naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.LocalVariableNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public Foo() {
    +        Integer localVariable; // This is in camel case, so it's ok
    +
    +        Integer LOCAL_VARIABLE; // This will be reported unless you change the regex
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    finalLocalPattern[a-z][a-zA-Z0-9]*Regex which applies to final local variable namesno
    localPattern[a-z][a-zA-Z0-9]*Regex which applies to local variable namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/LocalVariableNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/LocalVariableNamingConventions">
    +    <properties>
    +        <property name="finalLocalPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="localPattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    MethodNamingConventions

    + +

    Since: PMD 5.5.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for method declarations. This rule reports +method declarations which do not match the regex that applies to their +specific kind (e.g. static method, or test method). Each regex can be +configured through properties.

    + +

    By default this rule uses the standard Apex naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.MethodNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void instanceMethod() { } // This is in camel case, so it's ok
    +
    +    public void INSTANCE_METHOD() { } // This will be reported unless you change the regex
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    skipTestMethodUnderscoresfalseDeprecated Skip underscores in test methodsno
    testPattern[a-z][a-zA-Z0-9]*Regex which applies to test method namesno
    staticPattern[a-z][a-zA-Z0-9]*Regex which applies to static method namesno
    instancePattern[a-z][a-zA-Z0-9]*Regex which applies to instance method namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/MethodNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/MethodNamingConventions">
    +    <properties>
    +        <property name="testPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="staticPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="instancePattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    OneDeclarationPerLine

    + +

    Since: PMD 6.7.0

    + +

    Priority: High (1)

    + +

    Apex allows the use of several variables declaration of the same type on one line. However, it +can lead to quite messy code. This rule looks for several declarations on the same line.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclarationStatements
    +  [count(VariableDeclaration) > 1]
    +  [$strictMode or count(distinct-values(VariableDeclaration/@BeginLine)) != count(VariableDeclaration)]
    +|
    +//FieldDeclarationStatements
    +  [count(FieldDeclaration) > 1]
    +  [$strictMode or count(distinct-values(FieldDeclaration/VariableExpression/@BeginLine)) != count(FieldDeclaration/VariableExpression)]
    +
    + +

    Example(s):

    + +
    Integer a, b;   // not recommended
    +
    +Integer a,
    +        b;      // ok by default, can be flagged setting the strictMode property
    +
    +Integer a;      // preferred approach
    +Integer b;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    strictModefalseIf true, mark combined declaration even if the declarations are on separate lines.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/OneDeclarationPerLine" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/OneDeclarationPerLine">
    +    <properties>
    +        <property name="strictMode" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    PropertyNamingConventions

    + +

    Since: PMD 6.15.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for property declarations. This rule reports +property declarations which do not match the regex that applies to their +specific kind (e.g. static property, or instance property). Each regex can be +configured through properties.

    + +

    By default this rule uses the standard Apex naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.PropertyNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public Integer instanceProperty { get; set; } // This is in camel case, so it's ok
    +
    +    public Integer INSTANCE_PROPERTY { get; set; } // This will be reported unless you change the regex
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    staticPattern[a-z][a-zA-Z0-9]*Regex which applies to static property namesno
    instancePattern[a-z][a-zA-Z0-9]*Regex which applies to instance property namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/PropertyNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/PropertyNamingConventions">
    +    <properties>
    +        <property name="staticPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="instancePattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    VariableNamingConventions

    + +

    Deprecated

    + +

    Since: PMD 5.5.0

    + +

    Priority: High (1)

    + +

    A variable naming conventions rule - customize this to your liking. Currently, it +checks for final variables that should be fully capitalized and non-final variables +that should not include underscores.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rules FieldNamingConventions, +FormalParameterNamingConventions, +LocalVariableNamingConventions, and +PropertyNamingConventions.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.codestyle.VariableNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public static final Integer MY_NUM = 0;
    +    public String myTest = '';
    +    DataModule dmTest = new DataModule();
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier5Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    checkMemberstrueCheck member variablesno
    checkLocalstrueCheck local variablesno
    checkParameterstrueCheck constructor and method parameter variablesno
    staticPrefix Static variable prefixesyes. Delimiter is ‘,’.
    staticSuffix Static variable suffixesyes. Delimiter is ‘,’.
    memberPrefix Member variable prefixesyes. Delimiter is ‘,’.
    memberSuffix Member variable suffixesyes. Delimiter is ‘,’.
    localPrefix Local variable prefixesyes. Delimiter is ‘,’.
    localSuffix Local variable suffixesyes. Delimiter is ‘,’.
    parameterPrefix Method parameter variable prefixesyes. Delimiter is ‘,’.
    parameterSuffix Method parameter variable suffixesyes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/VariableNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/codestyle.xml/VariableNamingConventions">
    +    <properties>
    +        <property name="checkMembers" value="true" />
    +        <property name="checkLocals" value="true" />
    +        <property name="checkParameters" value="true" />
    +        <property name="staticPrefix" value="" />
    +        <property name="staticSuffix" value="" />
    +        <property name="memberPrefix" value="" />
    +        <property name="memberSuffix" value="" />
    +        <property name="localPrefix" value="" />
    +        <property name="localSuffix" value="" />
    +        <property name="parameterPrefix" value="" />
    +        <property name="parameterSuffix" value="" />
    +    </properties>
    +</rule>
    +
    + +

    WhileLoopsMustUseBraces

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘while’ statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileLoopStatement/BlockStatement[@CurlyBrace= false()]
    +
    + +

    Example(s):

    + +
    while (true)    // not recommended
    +    x++;
    +
    +while (true) {  // preferred approach
    +    x++;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/codestyle.xml/WhileLoopsMustUseBraces" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_design.html b/pmd_rules_apex_design.html new file mode 100644 index 0000000000..b30e429dd7 --- /dev/null +++ b/pmd_rules_apex_design.html @@ -0,0 +1,2482 @@ + + + + + + + + +Design | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Design

    +
    + + + +
    + + +
    Rules that help you discover design issues.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidDeeplyNestedIfStmts

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Avoid creating deeply nested if-then statements since they are harder to read and error-prone to maintain.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.AvoidDeeplyNestedIfStmtsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar(Integer x, Integer y, Integer z) {
    +        if (x>y) {
    +            if (y>z) {
    +                if (z==x) {
    +                    // !! too deep
    +                }
    +            }
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier200Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    problemDepth3The if statement depth reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/AvoidDeeplyNestedIfStmts" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/AvoidDeeplyNestedIfStmts">
    +    <properties>
    +        <property name="problemDepth" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    CognitiveComplexity

    + +

    Since: PMD 6.22.0

    + +

    Priority: Medium (3)

    + +

    Methods that are highly complex are difficult to read and more costly to maintain. If you include too much decisional +logic within a single method, you make its behavior hard to understand and more difficult to modify.

    + +

    Cognitive complexity is a measure of how difficult it is for humans to read and understand a method. Code that contains +a break in the control flow is more complex, whereas the use of language shorthands doesn’t increase the level of +complexity. Nested control flows can make a method more difficult to understand, with each additional nesting of the +control flow leading to an increase in cognitive complexity.

    + +

    Information about Cognitive complexity can be found in the original paper here: +https://www.sonarsource.com/docs/CognitiveComplexity.pdf

    + +

    By default, this rule reports methods with a complexity of 15 or more. Reported methods should be broken down into less +complex components.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.CognitiveComplexityRule

    + +

    Example(s):

    + +
    public class Foo {
    +    // Has a cognitive complexity of 0
    +    public void createAccount() {
    +        Account account = new Account(Name = 'PMD');
    +        insert account;
    +    }
    +
    +    // Has a cognitive complexity of 1
    +    public Boolean setPhoneNumberIfNotExisting(Account a, String phone) {
    +        if (a.Phone == null) {                          // +1
    +            a.Phone = phone;
    +            update a;
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    // Has a cognitive complexity of 5
    +    public void updateContacts(List<Contact> contacts) {
    +        List<Contact> contactsToUpdate = new List<Contact>();
    +
    +        for (Contact contact : contacts) {                           // +1
    +            if (contact.Department == 'Finance') {                   // +2
    +                contact.Title = 'Finance Specialist';
    +                contactsToUpdate.add(contact);
    +            } else if (contact.Department == 'Sales') {              // +2
    +                contact.Title = 'Sales Specialist';
    +                contactsToUpdate.add(contact);
    +            }
    +        }
    +
    +        update contactsToUpdate;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    classReportLevel50Total class cognitive complexity reporting thresholdno
    methodReportLevel15Cognitive complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/CognitiveComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/CognitiveComplexity">
    +    <properties>
    +        <property name="classReportLevel" value="50" />
    +        <property name="methodReportLevel" value="15" />
    +    </properties>
    +</rule>
    +
    + +

    CyclomaticComplexity

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    The complexity of methods directly affects maintenance costs and readability. Concentrating too much decisional logic +in a single method makes its behaviour hard to read and change.

    + +

    Cyclomatic complexity assesses the complexity of a method by counting the number of decision points in a method, +plus one for the method entry. Decision points are places where the control flow jumps to another place in the +program. As such, they include all control flow statements, such as ‘if’, ‘while’, ‘for’, and ‘case’.

    + +

    Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity. By default, this rule reports methods with a complexity >= 10. +Additionally, classes with many methods of moderate complexity get reported as well once the total of their +methods’ complexities reaches 40, even if none of the methods was directly reported.

    + +

    Reported methods should be broken down into several smaller methods. Reported classes should probably be broken down +into subcomponents.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.CyclomaticComplexityRule

    + +

    Example(s):

    + +
    public class Complicated {
    +  public void example() { // This method has a cyclomatic complexity of 12
    +    int x = 0, y = 1, z = 2, t = 2;
    +    boolean a = false, b = true, c = false, d = true;
    +    if (a && b || b && d) {
    +      if (y == z) {
    +        x = 2;
    +      } else if (y == t && !d) {
    +        x = 2;
    +      } else {
    +        x = 2;
    +      }
    +    } else if (c && d) {
    +      while (z < y) {
    +        x = 2;
    +      }
    +    } else {
    +      for (int n = 0; n < t; n++) {
    +        x = 2;
    +      }
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    classReportLevel40Total class complexity reporting thresholdno
    methodReportLevel10Cyclomatic complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/CyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/CyclomaticComplexity">
    +    <properties>
    +        <property name="classReportLevel" value="40" />
    +        <property name="methodReportLevel" value="10" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveClassLength

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.ExcessiveClassLengthRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar1() {
    +        // 1000 lines of code
    +    }
    +    public void bar2() {
    +        // 1000 lines of code
    +    }
    +    public void bar3() {
    +        // 1000 lines of code
    +    }
    +    public void barN() {
    +        // 1000 lines of code
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/ExcessiveClassLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/ExcessiveClassLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveParameterList

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Methods with numerous parameters are a challenge to maintain, especially if most of them share the +same datatype. These situations usually denote the need for new objects to wrap the numerous parameters.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.ExcessiveParameterListRule

    + +

    Example(s):

    + +
    // too many arguments liable to be mixed up
    +public void addPerson(Integer birthYear, Integer birthMonth, Integer birthDate, Integer height, Integer weight, Integer ssn) {
    +    // ...
    +}
    +// preferred approach
    +public void addPerson(Date birthdate, BodyMeasurements measurements, int ssn) {
    +    // ...
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum4.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier50Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/ExcessiveParameterList" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/ExcessiveParameterList">
    +    <properties>
    +        <property name="minimum" value="4.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessivePublicCount

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Classes with large numbers of public methods and attributes require disproportionate testing efforts +since combinational side effects grow rapidly and increase risk. Refactoring these classes into +smaller ones not only increases testability and reliability but also allows new variations to be +developed easily.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.ExcessivePublicCountRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public String value;
    +    public Bar something;
    +    public Variable var;
    +    // [... more more public attributes ...]
    +
    +    public void doWork() {}
    +    public void doMoreWork() {}
    +    public void doWorkAgain() {}
    +    // [... more more public methods ...]
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum20.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/ExcessivePublicCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/ExcessivePublicCount">
    +    <properties>
    +        <property name="minimum" value="20.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssConstructorCount

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given constructor. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.NcssConstructorCountRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    //this constructor only has 1 NCSS lines
    +    public Foo() {
    +        super();
    +
    +
    +
    +
    +        super.foo();
    +}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum20.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier50Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/NcssConstructorCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/NcssConstructorCount">
    +    <properties>
    +        <property name="minimum" value="20.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssMethodCount

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.NcssMethodCountRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    //this method only has 1 NCSS lines
    +    public Integer method() {
    +        super.method();
    +
    +
    +
    +        return 1;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum40.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier50Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/NcssMethodCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/NcssMethodCount">
    +    <properties>
    +        <property name="minimum" value="40.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssTypeCount

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given type. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.NcssTypeCountRule

    + +

    Example(s):

    + +
    //this class only has 6 NCSS lines
    +public class Foo extends Bar {
    +    public Foo() {
    +        super();
    +
    +
    +
    +
    +
    +        super.foo();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum500.0Minimum reporting thresholdno
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier250Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/NcssTypeCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/NcssTypeCount">
    +    <properties>
    +        <property name="minimum" value="500.0" />
    +    </properties>
    +</rule>
    +
    + +

    StdCyclomaticComplexity

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Complexity directly affects maintenance costs is determined by the number of decision points in a method +plus one for the method entry. The decision points include ‘if’, ‘while’, ‘for’, and ‘case labels’ calls. +Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.StdCyclomaticComplexityRule

    + +

    Example(s):

    + +
    // This has a Cyclomatic Complexity = 12
    +public class Foo {
    +1   public void example() {
    +2   if (a == b || (c == d && e == f)) {
    +3       if (a1 == b1) {
    +            fiddle();
    +4       } else if a2 == b2) {
    +            fiddle();
    +        }  else {
    +            fiddle();
    +        }
    +5   } else if (c == d) {
    +6       while (c == d) {
    +            fiddle();
    +        }
    +7   } else if (e == f) {
    +8       for (int n = 0; n < h; n++) {
    +            fiddle();
    +        }
    +    } else {
    +        switch (z) {
    +9           case 1:
    +                fiddle();
    +                break;
    +10          case 2:
    +                fiddle();
    +                break;
    +11          case 3:
    +                fiddle();
    +                break;
    +12          default:
    +                fiddle();
    +                break;
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier250Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    reportLevel10Cyclomatic Complexity reporting thresholdno
    showClassesComplexitytrueAdd class average violations to the reportno
    showMethodsComplexitytrueAdd method average violations to the reportno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/StdCyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/StdCyclomaticComplexity">
    +    <properties>
    +        <property name="reportLevel" value="10" />
    +        <property name="showClassesComplexity" value="true" />
    +        <property name="showMethodsComplexity" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    TooManyFields

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, +possibly through grouping related fields in new objects. For example, a class with individual +city/state/zip fields could park them within a single Address field.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.design.TooManyFieldsRule

    + +

    Example(s):

    + +
    public class Person {
    +    // too many separate fields
    +    Integer birthYear;
    +    Integer birthMonth;
    +    Integer birthDate;
    +    Double height;
    +    Double weight;
    +}
    +
    +public class Person {
    +    // this is more manageable
    +    Date birthDate;
    +    BodyMeasurements measurements;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesComplexityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier200Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    maxfields15Max allowable fieldsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/design.xml/TooManyFields" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/apex/design.xml/TooManyFields">
    +    <properties>
    +        <property name="maxfields" value="15" />
    +    </properties>
    +</rule>
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_documentation.html b/pmd_rules_apex_documentation.html new file mode 100644 index 0000000000..16f9278d42 --- /dev/null +++ b/pmd_rules_apex_documentation.html @@ -0,0 +1,1513 @@ + + + + + + + + +Documentation | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Documentation

    +
    + + + +
    + + +
    Rules that are related to code documentation.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    ApexDoc

    + +

    Since: PMD 6.8.0

    + +

    Priority: Medium (3)

    + +

    This rule validates that:

    + +
      +
    • ApexDoc comments are present for classes, methods, and properties that are public or global, excluding +overrides and test classes (as well as the contents of test classes).
    • +
    • ApexDoc comments should contain @description.
    • +
    • ApexDoc comments on non-void, non-constructor methods should contain @return.
    • +
    • ApexDoc comments on void or constructor methods should not contain @return.
    • +
    • ApexDoc comments on methods with parameters should contain @param for each parameter, in the same +order as the method signature.
    • +
    + +

    Method overrides and tests are both exempted from having ApexDoc.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.documentation.ApexDocRule

    + +

    Example(s):

    + +
    /**
    + * @description Hello World
    + */
    +public class HelloWorld {
    +    /**
    +     * @description Bar
    +     * @return Bar
    +     */
    +    public Object bar() { return null; }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/documentation.xml/ApexDoc" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_errorprone.html b/pmd_rules_apex_errorprone.html new file mode 100644 index 0000000000..c560e634f4 --- /dev/null +++ b/pmd_rules_apex_errorprone.html @@ -0,0 +1,2166 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    ApexCSRF

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Having DML operations in Apex class constructor or initializers can have unexpected side effects: +By just accessing a page, the DML statements would be executed and the database would be modified. +Just querying the database is permitted.

    + +

    In addition to constructors and initializers, any method called init is checked as well.

    + +

    Salesforce Apex already protects against this scenario and raises a runtime exception.

    + +

    Note: This rule has been moved from category "Security" to "Error Prone" with PMD 6.21.0, since +using DML in constructors is not a security problem, but crashes the application.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.errorprone.ApexCSRFRule

    + +

    Example(s):

    + +
    public class Foo {
    +    // initializer
    +    {
    +        insert data;
    +    }
    +
    +    // static initializer
    +    static {
    +        insert data;
    +    }
    +
    +    // constructor
    +    public Foo() {
    +        insert data;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/ApexCSRF" />
    +
    + +

    AvoidDirectAccessTriggerMap

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Avoid directly accessing Trigger.old and Trigger.new as it can lead to a bug. Triggers should be bulkified and iterate through the map to handle the actions for each item separately.

    + +

    This rule is defined by the following XPath expression:

    +
    //ArrayLoadExpression[TriggerVariableExpression and LiteralExpression]
    +
    + +

    Example(s):

    + +
    trigger AccountTrigger on Account (before insert, before update) {
    +   Account a = Trigger.new[0]; //Bad: Accessing the trigger array directly is not recommended.
    +
    +   for ( Account a : Trigger.new ) {
    +        //Good: Iterate through the trigger.new array instead.
    +   }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/AvoidDirectAccessTriggerMap" />
    +
    + +

    AvoidHardcodingId

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    When deploying Apex code between sandbox and production environments, or installing Force.com AppExchange packages, +it is essential to avoid hardcoding IDs in the Apex code. By doing so, if the record IDs change between environments, +the logic can dynamically identify the proper data to operate against and not fail.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidHardcodingIdRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    void foo() {
    +        //Error - hardcoded the record type id
    +        if (a.RecordTypeId == '012500000009WAr') {
    +            //do some logic here.....
    +        } else if (a.RecordTypeId == '0123000000095Km') {
    +            //do some logic here for a different record type...
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/AvoidHardcodingId" />
    +
    + +

    AvoidNonExistentAnnotations

    + +

    Since: PMD 6.5.0

    + +

    Priority: Medium (3)

    + +

    Apex supported non existent annotations for legacy reasons. +In the future, use of such non-existent annotations could result in broken apex code that will not compile. +This will prevent users of garbage annotations from being able to use legitimate annotations added to Apex in the future. +A full list of supported annotations can be found at https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_annotation.htm

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule

    + +

    Example(s):

    + +
    @NonExistentAnnotation public class ClassWithNonexistentAnnotation {
    +	@NonExistentAnnotation public void methodWithNonExistentAnnotation() {
    +		// ...
    +	}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/AvoidNonExistentAnnotations" />
    +
    + +

    EmptyCatchBlock

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Empty Catch Block finds instances where an exception is caught, but nothing is done. +In most circumstances, this swallows an exception which should either be acted on +or reported.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchBlockStatement[./BlockStatement[count(*) = 0]]
    +
    + +

    Example(s):

    + +
    public void doSomething() {
    +    ...
    +    try {
    +        insert accounts;
    +    } catch (DmlException dmle) {
    +        // not good
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/EmptyCatchBlock" />
    +
    + +

    EmptyIfStmt

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Empty If Statement finds instances where a condition is checked but nothing is done about it.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfBlockStatement
    + [BlockStatement[count(*) = 0]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar(Integer x) {
    +        if (x == 0) {
    +            // empty!
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/EmptyIfStmt" />
    +
    + +

    EmptyStatementBlock

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Empty block statements serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //Method/ModifierNode[@Abstract!= true() and ../BlockStatement[count(*) = 0]]
    +| //Method/BlockStatement//BlockStatement[count(*) = 0 and @Location != parent::*/@Location]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +   private Integer _bar;
    +
    +   public void setBar(Integer bar) {
    +        // empty
    +   }
    +
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/EmptyStatementBlock" />
    +
    + +

    EmptyTryOrFinallyBlock

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Avoid empty try or finally blocks - what’s the point?

    + +

    This rule is defined by the following XPath expression:

    +
    //TryCatchFinallyBlockStatement[./BlockStatement[count(*) = 0]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        try {
    +          // empty !
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +}
    +
    +public class Foo {
    +    public void bar() {
    +        try {
    +            Integer x=2;
    +        } finally {
    +            // empty!
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/EmptyTryOrFinallyBlock" />
    +
    + +

    EmptyWhileStmt

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Empty While Statement finds all instances where a while statement does nothing. +If it is a timing loop, then you should use Thread.sleep() for it; if it is +a while loop that does a lot in the exit expression, rewrite it to make it clearer.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileLoopStatement[./BlockStatement[count(*) = 0]]
    +
    + +

    Example(s):

    + +
    public void bar(Integer a, Integer b) {
    +  while (a == b) {
    +    // empty!
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/EmptyWhileStmt" />
    +
    + +

    MethodWithSameNameAsEnclosingClass

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Non-constructor methods should not have the same name as the enclosing class.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.errorprone.MethodWithSameNameAsEnclosingClassRule

    + +

    Example(s):

    + +
    public class MyClass {
    +    // this is OK because it is a constructor
    +    public MyClass() {}
    +    // this is bad because it is a method
    +    public void MyClass() {}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier50Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/MethodWithSameNameAsEnclosingClass" />
    +
    + +

    TestMethodsMustBeInTestClasses

    + +

    Since: PMD 6.22.0

    + +

    Priority: Medium (3)

    + +

    Test methods marked as a testMethod or annotated with @IsTest, +but not residing in a test class should be moved to a proper +class or have the @IsTest annotation added to the class.

    + +

    Support for tests inside functional classes was removed in Spring-13 (API Version 27.0), +making classes that violate this rule fail compile-time. This rule is mostly usable when +dealing with legacy code.

    + +

    This rule is defined by the following XPath expression:

    +
    //UserClass[
    +      not(./ModifierNode/Annotation[lower-case(@Image) = 'istest']) and
    +      (
    +        (./Method/ModifierNode/Annotation[lower-case(@Image) = 'istest']) or
    +        (./Method/ModifierNode[@Test = true()])
    +      )
    +    ]
    +
    + +

    Example(s):

    + +
    // Violating
    +private class TestClass {
    +  @IsTest static void myTest() {
    +    // Code here
    +  }
    +}
    +
    +private class TestClass {
    +  static testMethod void myTest() {
    +    // Code here
    +  }
    +}
    +
    +// Compliant
    +@IsTest
    +private class TestClass {
    +  @IsTest static void myTest() {
    +    // Code here
    +  }
    +}
    +
    +@IsTest
    +private class TestClass {
    +  static testMethod void myTest() {
    +    // Code here
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesStyleDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier1Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/errorprone.xml/TestMethodsMustBeInTestClasses" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_performance.html b/pmd_rules_apex_performance.html new file mode 100644 index 0000000000..3a9c72f2b2 --- /dev/null +++ b/pmd_rules_apex_performance.html @@ -0,0 +1,1709 @@ + + + + + + + + +Performance | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Performance

    +
    + + + +
    + + +
    Rules that flag suboptimal code.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidDmlStatementsInLoops

    + +

    Deprecated

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    Avoid DML statements inside loops to avoid hitting the DML governor limit. Instead, try to batch up the data into a list and invoke your DML once on that list of data outside the loop.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule OperationWithLimitsInLoop.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.performance.AvoidDmlStatementsInLoopsRule

    + +

    Example(s):

    + +
    public class Something {
    +    public void foo() {
    +        for (Integer i = 0; i < 151; i++) {
    +            Account account;
    +            // ...
    +            insert account;
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesPerformanceDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/performance.xml/AvoidDmlStatementsInLoops" />
    +
    + +

    AvoidSoqlInLoops

    + +

    Deprecated

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    New objects created within loops should be checked to see if they can created outside them and reused.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule OperationWithLimitsInLoop.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.performance.AvoidSoqlInLoopsRule

    + +

    Example(s):

    + +
    public class Something {
    +    public static void main( String as[] ) {
    +        for (Integer i = 0; i < 10; i++) {
    +            List<Account> accounts = [SELECT Id FROM Account];
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesPerformanceDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/performance.xml/AvoidSoqlInLoops" />
    +
    + +

    AvoidSoslInLoops

    + +

    Deprecated

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Sosl calls within loops can cause governor limit exceptions.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule OperationWithLimitsInLoop.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.performance.AvoidSoslInLoopsRule

    + +

    Example(s):

    + +
    public class Something {
    +    public static void main( String as[] ) {
    +        for (Integer i = 0; i < 10; i++) {
    +            List<List<SObject>> searchList = [FIND 'map*' IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead];
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesPerformanceDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/performance.xml/AvoidSoslInLoops" />
    +
    + +

    OperationWithLimitsInLoop

    + +

    Since: PMD 6.29.0

    + +

    Priority: Medium (3)

    + +

    Database class methods, DML operations, SOQL queries, or SOSL queries within loops can cause governor limit exceptions. Instead, try to batch up the data into a list and invoke the operation once on that list of data outside the loop.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.performance.OperationWithLimitsInLoopRule

    + +

    Example(s):

    + +
    public class Something {
    +    public void databaseMethodInsideOfLoop(List<Account> accounts) {
    +        for (Account a : accounts) {
    +            Database.insert(a);
    +        }
    +    }
    +
    +    public void dmlInsideOfLoop() {
    +        for (Integer i = 0; i < 151; i++) {
    +            Account account;
    +            // ...
    +            insert account;
    +        }
    +    }
    +
    +    public void soqlInsideOfLoop() {
    +        for (Integer i = 0; i < 10; i++) {
    +            List<Account> accounts = [SELECT Id FROM Account];
    +        }
    +    }
    +
    +    public void soslInsideOfLoop() {
    +        for (Integer i = 0; i < 10; i++) {
    +            List<List<SObject>> searchList = [FIND 'map*' IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead];
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesPerformanceDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier150Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/performance.xml/OperationWithLimitsInLoop" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_apex_security.html b/pmd_rules_apex_security.html new file mode 100644 index 0000000000..f9b043e89f --- /dev/null +++ b/pmd_rules_apex_security.html @@ -0,0 +1,2123 @@ + + + + + + + + +Security | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Security

    +
    + + + +
    + + +
    Rules that flag potential security flaws.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    ApexBadCrypto

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    The rule makes sure you are using randomly generated IVs and keys for Crypto calls. +Hard-wiring these values greatly compromises the security of encrypted data.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexBadCryptoRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    Blob hardCodedIV = Blob.valueOf('Hardcoded IV 123');
    +    Blob hardCodedKey = Blob.valueOf('0000000000000000');
    +    Blob data = Blob.valueOf('Data to be encrypted');
    +    Blob encrypted = Crypto.encrypt('AES128', hardCodedKey, hardCodedIV, data);
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexBadCrypto" />
    +
    + +

    ApexCRUDViolation

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    The rule validates you are checking for access permissions before a SOQL/SOSL/DML operation. +Since Apex runs in system mode not having proper permissions checks results in escalation of +privilege and may produce runtime errors. This check forces you to handle such scenarios.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexCRUDViolationRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public Contact foo(String status, String ID) {
    +        Contact c = [SELECT Status__c FROM Contact WHERE Id=:ID];
    +
    +        // Make sure we can update the database before even trying
    +        if (!Schema.sObjectType.Contact.fields.Name.isUpdateable()) {
    +            return null;
    +        }
    +
    +        c.Status__c = status;
    +        update c;
    +        return c;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexCRUDViolation" />
    +
    + +

    ApexCSRF

    + +

    Deprecated

    + +

    The rule has been moved to another ruleset. Use instead: ApexCSRF

    + +

    Deprecated

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Having DML operations in Apex class constructor or initializers can have unexpected side effects: +By just accessing a page, the DML statements would be executed and the database would be modified. +Just querying the database is permitted.

    + +

    In addition to constructors and initializers, any method called init is checked as well.

    + +

    Salesforce Apex already protects against this scenario and raises a runtime exception.

    + +

    Note: This rule has been moved from category "Security" to "Error Prone" with PMD 6.21.0, since +using DML in constructors is not a security problem, but crashes the application.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.errorprone.ApexCSRFRule

    + +

    Example(s):

    + +
    public class Foo {
    +    // initializer
    +    {
    +        insert data;
    +    }
    +
    +    // static initializer
    +    static {
    +        insert data;
    +    }
    +
    +    // constructor
    +    public Foo() {
    +        insert data;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexCSRF" />
    +
    + +

    ApexDangerousMethods

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Checks against calling dangerous methods.

    + +

    For the time being, it reports:

    + +
      +
    • Against FinancialForce’s Configuration.disableTriggerCRUDSecurity(). Disabling CRUD security +opens the door to several attacks and requires manual validation, which is unreliable.
    • +
    • Calling System.debug passing sensitive data as parameter, which could lead to exposure +of private data.
    • +
    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexDangerousMethodsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public Foo() {
    +        Configuration.disableTriggerCRUDSecurity();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexDangerousMethods" />
    +
    + +

    ApexInsecureEndpoint

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Checks against accessing endpoints under plain http. You should always use +https for security.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexInsecureEndpointRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    void foo() {
    +        HttpRequest req = new HttpRequest();
    +        req.setEndpoint('http://localhost:com');
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexInsecureEndpoint" />
    +
    + +

    ApexOpenRedirect

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Checks against redirects to user-controlled locations. This prevents attackers from +redirecting users to phishing sites.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexOpenRedirectRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    String unsafeLocation = ApexPage.getCurrentPage().getParameters.get('url_param');
    +    PageReference page() {
    +       return new PageReference(unsafeLocation);
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexOpenRedirect" />
    +
    + +

    ApexSharingViolations

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Detect classes declared without explicit sharing mode if DML methods are used. This +forces the developer to take access restrictions into account before modifying objects.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexSharingViolationsRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    // DML operation here
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexSharingViolations" />
    +
    + +

    ApexSOQLInjection

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Detects the usage of untrusted / unescaped variables in DML queries.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexSOQLInjectionRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void test1(String t1) {
    +        Database.query('SELECT Id FROM Account' + t1);
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexSOQLInjection" />
    +
    + +

    ApexSuggestUsingNamedCred

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Detects hardcoded credentials used in requests to an endpoint.

    + +

    You should refrain from hardcoding credentials:

    +
      +
    • They are hard to mantain by being mixed in application code
    • +
    • Particularly hard to update them when used from different classes
    • +
    • Granting a developer access to the codebase means granting knowledge + of credentials, keeping a two-level access is not possible.
    • +
    • Using different credentials for different environments is troublesome + and error-prone.
    • +
    + +

    Instead, you should use Named Credentials and a callout endpoint.

    + +

    For more information, you can check this

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexSuggestUsingNamedCredRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void foo(String username, String password) {
    +        Blob headerValue = Blob.valueOf(username + ':' + password);
    +        String authorizationHeader = 'BASIC ' + EncodingUtil.base64Encode(headerValue);
    +        req.setHeader('Authorization', authorizationHeader);
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexSuggestUsingNamedCred" />
    +
    + +

    ApexXSSFromEscapeFalse

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Reports on calls to addError with disabled escaping. The message passed to addError +will be displayed directly to the user in the UI, making it prime ground for XSS +attacks if unescaped.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexXSSFromEscapeFalseRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    Trigger.new[0].addError(vulnerableHTMLGoesHere, false);
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier100Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexXSSFromEscapeFalse" />
    +
    + +

    ApexXSSFromURLParam

    + +

    Since: PMD 5.5.3

    + +

    Priority: Medium (3)

    + +

    Makes sure that all values obtained from URL parameters are properly escaped / sanitized +to avoid XSS attacks.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.security.ApexXSSFromURLParamRule

    + +

    Example(s):

    + +
    public without sharing class Foo {
    +    String unescapedstring = ApexPage.getCurrentPage().getParameters.get('url_param');
    +    String usedLater = unescapedstring;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    cc_categoriesSecurityDeprecated Code Climate Categoriesyes. Delimiter is ‘|’.
    cc_remediation_points_multiplier50Deprecated Code Climate Remediation Points multiplierno
    cc_block_highlightingfalseDeprecated Code Climate Block Highlightingno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/apex/security.xml/ApexXSSFromURLParam" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_ecmascript.html b/pmd_rules_ecmascript.html new file mode 100644 index 0000000000..0c95c5103d --- /dev/null +++ b/pmd_rules_ecmascript.html @@ -0,0 +1,1529 @@ + + + + + + + + +Ecmascript Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Ecmascript Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Ecmascript
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + +
      +
    • AvoidWithStatement: Avoid using with - it’s bad news
    • +
    • ConsistentReturn: ECMAScript does provide for return types on functions, and therefore there is no solid rule as to…
    • +
    • GlobalVariable: This rule helps to avoid using accidently global variables by simply missing the "var" declaratio…
    • +
    • ScopeForInVariable: A for-in loop in which the variable name is not explicitly scoped to the enclosing scope with the…
    • +
    • UseBaseWithParseInt: This rule checks for usages of parseInt. While the second parameter is optional and usually defau…
    • +
    + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + +
      +
    • AssignmentInOperand: Avoid assignments in operands; this can make code more complicated and harder to read. This is s…
    • +
    • ForLoopsMustUseBraces: Avoid using ‘for’ statements without using curly braces.
    • +
    • IfElseStmtsMustUseBraces: Avoid using if..else statements without using curly braces.
    • +
    • IfStmtsMustUseBraces: Avoid using if statements without using curly braces.
    • +
    • NoElseReturn: The else block in a if-else-construct is unnecessary if the ‘if’ block contains a return. Then th…
    • +
    • UnnecessaryBlock: An unnecessary Block is present. Such Blocks are often used in other languages to introduce a ne…
    • +
    • UnnecessaryParentheses: Unnecessary parentheses should be removed.
    • +
    • UnreachableCode: A ‘return’, ‘break’, ‘continue’, or ‘throw’ statement should be the last in a block. Statements a…
    • +
    • WhileLoopsMustUseBraces: Avoid using ‘while’ statements without using curly braces.
    • +
    + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + +
      +
    • AvoidTrailingComma: This rule helps improve code portability due to differences in browser treatment of trailing comm…
    • +
    • EqualComparison: Using == in condition may lead to unexpected results, as the variables are automatically casted t…
    • +
    • InnaccurateNumericLiteral: The numeric literal will have a different value at runtime, which can happen if you provide too m…
    • +
    + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_ecmascript_bestpractices.html b/pmd_rules_ecmascript_bestpractices.html new file mode 100644 index 0000000000..690dc4fd66 --- /dev/null +++ b/pmd_rules_ecmascript_bestpractices.html @@ -0,0 +1,1651 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidWithStatement

    + +

    Since: PMD 5.0.1

    + +

    Priority: High (1)

    + +

    Avoid using with - it’s bad news

    + +

    This rule is defined by the following XPath expression:

    +
    //WithStatement
    +
    + +

    Example(s):

    + +
    with (object) {
    +    property = 3; // Might be on object, might be on window: who knows.
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/AvoidWithStatement" />
    +
    + +

    ConsistentReturn

    + +

    Since: PMD 5.0

    + +

    Priority: Medium High (2)

    + +

    ECMAScript does provide for return types on functions, and therefore there is no solid rule as to their usage. +However, when a function does use returns they should all have a value, or all with no value. Mixed return +usage is likely a bug, or at best poor style.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.ecmascript.rule.bestpractices.ConsistentReturnRule

    + +

    Example(s):

    + +
    // Ok
    +function foo() {
    +    if (condition1) {
    +        return true;
    +    }
    +    return false;
    +}
    +
    +// Bad
    +function bar() {
    +    if (condition1) {
    +        return;
    +    }
    +    return false;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    rhinoLanguageVersionES6Specifies the Rhino Language Version to use for parsing. Defaults to ES6.no
    recordingLocalJsDocCommentstrueSpecifies that JsDoc comments are produced in the AST.no
    recordingCommentstrueSpecifies that comments are produced in the AST.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/ConsistentReturn" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/ConsistentReturn">
    +    <properties>
    +        <property name="rhinoLanguageVersion" value="ES6" />
    +        <property name="recordingLocalJsDocComments" value="true" />
    +        <property name="recordingComments" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    GlobalVariable

    + +

    Since: PMD 5.0

    + +

    Priority: High (1)

    + +

    This rule helps to avoid using accidently global variables by simply missing the "var" declaration. +Global variables can lead to side-effects that are hard to debug.

    + +

    This rule is defined by the following XPath expression:

    +
    //Assignment[Name/@GlobalName = true()]
    +
    + +

    Example(s):

    + +
    function(arg) {
    +    notDeclaredVariable = 1;    // this will create a global variable and trigger the rule
    +
    +    var someVar = 1;            // this is a local variable, that's ok
    +
    +    window.otherGlobal = 2;     // this will not trigger the rule, although it is a global variable.
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/GlobalVariable" />
    +
    + +

    ScopeForInVariable

    + +

    Since: PMD 5.0

    + +

    Priority: High (1)

    + +

    A for-in loop in which the variable name is not explicitly scoped to the enclosing scope with the ‘var’ keyword can +refer to a variable in an enclosing scope outside the nearest enclosing scope. This will overwrite the +existing value of the variable in the outer scope when the body of the for-in is evaluated. When the for-in loop +has finished, the variable will contain the last value used in the for-in, and the original value from before +the for-in loop will be gone. Since the for-in variable name is most likely intended to be a temporary name, it +is better to explicitly scope the variable name to the nearest enclosing scope with ‘var’.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForInLoop[not(child::VariableDeclaration)]/Name[1]
    +
    + +

    Example(s):

    + +
    // Ok
    +function foo() {
    +    var p = 'clean';
    +    function() {
    +        var obj = { dirty: 'dirty' };
    +        for (var p in obj) { // Use 'var' here.
    +            obj[p] = obj[p];
    +        }
    +        return x;
    +    }();
    +
    +    // 'p' still has value of 'clean'.
    +}
    +// Bad
    +function bar() {
    +    var p = 'clean';
    +    function() {
    +        var obj = { dirty: 'dirty' };
    +        for (p in obj) { // Oh no, missing 'var' here!
    +            obj[p] = obj[p];
    +        }
    +        return x;
    +    }();
    +
    +    // 'p' is trashed and has value of 'dirty'!
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/ScopeForInVariable" />
    +
    + +

    UseBaseWithParseInt

    + +

    Since: PMD 5.0.1

    + +

    Priority: High (1)

    + +

    This rule checks for usages of parseInt. While the second parameter is optional and usually defaults +to 10 (base/radix is 10 for a decimal number), different implementations may behave differently. +It also improves readability, if the base is given.

    + +

    See also: parseInt()

    + +

    This rule is defined by the following XPath expression:

    +
    //FunctionCall/Name[
    +     @Image = 'parseInt'
    +     and
    +     count(../*) < 3
    +]
    +
    + +

    Example(s):

    + +
    parseInt("010");    // unclear, could be interpreted as 10 or 7 (with a base of 7)
    +
    +parseInt("10", 10); // good
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/bestpractices.xml/UseBaseWithParseInt" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_ecmascript_codestyle.html b/pmd_rules_ecmascript_codestyle.html new file mode 100644 index 0000000000..994b0f15d1 --- /dev/null +++ b/pmd_rules_ecmascript_codestyle.html @@ -0,0 +1,1793 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AssignmentInOperand

    + +

    Since: PMD 5.0

    + +

    Priority: Medium High (2)

    + +

    Avoid assignments in operands; this can make code more complicated and harder to read. This is sometime +indicative of the bug where the assignment operator ‘=’ was used instead of the equality operator ‘==’.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement[$allowIf = false()]/child::node()[1]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +|
    +    //WhileLoop[$allowWhile = false()]/child::node()[1]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +|
    +    //DoLoop[$allowWhile = false()]/child::node()[2]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +|
    +    //ForLoop[$allowFor = false()]/child::node()[2]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +|
    +   //ConditionalExpression[$allowTernary = false()]/child::node()[1]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +|
    +   //ConditionalExpression[$allowTernaryResults = false()]/child::node()[position() = 2 or position() = 3]/descendant-or-self::node()[self::Assignment or self::UnaryExpression[$allowIncrementDecrement = false() and (@Image = "--" or @Image = "++")]]
    +
    + +

    Example(s):

    + +
    var x = 2;
    +// Bad
    +if ((x = getX()) == 3) {
    +    alert('3!');
    +}
    +
    +function getX() {
    +    return 3;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowIffalseAllow assignment within the conditional expression of an if statementno
    allowForfalseAllow assignment within the conditional expression of a for statementno
    allowWhilefalseAllow assignment within the conditional expression of a while statementno
    allowTernaryfalseAllow assignment within the conditional expression of a ternary operatorno
    allowTernaryResultsfalseAllow assignment within the result expressions of a ternary operatorno
    allowIncrementDecrementfalseAllow increment or decrement operators within the conditional expression of an if, for, or while statementno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand">
    +    <properties>
    +        <property name="allowIf" value="false" />
    +        <property name="allowFor" value="false" />
    +        <property name="allowWhile" value="false" />
    +        <property name="allowTernary" value="false" />
    +        <property name="allowTernaryResults" value="false" />
    +        <property name="allowIncrementDecrement" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    ForLoopsMustUseBraces

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘for’ statements without using curly braces.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForLoop[not(child::Scope)]
    +|
    +//ForInLoop[not(child::Scope)]
    +
    + +

    Example(s):

    + +
    // Ok
    +for (var i = 0; i < 42; i++) {
    +    foo();
    +}
    +
    +// Bad
    +for (var i = 0; i < 42; i++)
    +    foo();
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/ForLoopsMustUseBraces" />
    +
    + +

    IfElseStmtsMustUseBraces

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using if..else statements without using curly braces.

    + +

    This rule is defined by the following XPath expression:

    +
    //ExpressionStatement[parent::IfStatement[@Else = true()]]
    +   [not(child::Scope)]
    +   [not(child::IfStatement)]
    +
    + +

    Example(s):

    + +
    // Ok
    +if (foo) {
    +    x++;
    +} else {
    +    y++;
    +}
    +
    +// Bad
    +if (foo)
    +    x++;
    +else
    +    y++;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/IfElseStmtsMustUseBraces" />
    +
    + +

    IfStmtsMustUseBraces

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using if statements without using curly braces.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement[@Else = false() and not(child::Scope)]
    +
    + +

    Example(s):

    + +
    // Ok
    +if (foo) {
    +    x++;
    +}
    +
    +// Bad
    +if (foo)
    +    x++;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/IfStmtsMustUseBraces" />
    +
    + +

    NoElseReturn

    + +

    Since: PMD 5.5.0

    + +

    Priority: Medium (3)

    + +

    The else block in a if-else-construct is unnecessary if the if block contains a return. +Then the content of the else block can be put outside.

    + +

    See also: http://eslint.org/docs/rules/no-else-return

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement[@Else=true()][Scope[1]/ReturnStatement]
    +
    + +

    Example(s):

    + +
    // Bad:
    +if (x) {
    +    return y;
    +} else {
    +    return z;
    +}
    +
    +// Good:
    +if (x) {
    +    return y;
    +}
    +return z;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/NoElseReturn" />
    +
    + +

    UnnecessaryBlock

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    An unnecessary Block is present. Such Blocks are often used in other languages to +introduce a new variable scope. Blocks do not behave like this in ECMAScipt, and using them can +be misleading. Considering removing this unnecessary Block.

    + +

    This rule is defined by the following XPath expression:

    +
    //Block[not(parent::FunctionNode or parent::IfStatement or parent::ForLoop or parent::ForInLoop
    +    or parent::WhileLoop or parent::DoLoop or parent::TryStatement or parent::CatchClause)]
    +|
    +//Scope[not(parent::FunctionNode or parent::IfStatement or parent::ForLoop or parent::ForInLoop
    +    or parent::WhileLoop or parent::DoLoop or parent::TryStatement or parent::CatchClause)]
    +
    + +

    Example(s):

    + +
    if (foo) {
    +    // Ok
    +}
    +if (bar) {
    +    {
    +        // Bad
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/UnnecessaryBlock" />
    +
    + +

    UnnecessaryParentheses

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Unnecessary parentheses should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //ParenthesizedExpression/ParenthesizedExpression
    +
    + +

    Example(s):

    + +
    var x = 1; // Ok
    +var y = (1 + 1); // Ok
    +var z = ((1 + 1)); // Bad
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/UnnecessaryParentheses" />
    +
    + +

    UnreachableCode

    + +

    Since: PMD 5.0

    + +

    Priority: High (1)

    + +

    A ‘return’, ‘break’, ‘continue’, or ‘throw’ statement should be the last in a block. Statements after these +will never execute. This is a bug, or extremely poor style.

    + +

    This rule is defined by the following XPath expression:

    +
    //ReturnStatement[following-sibling::node()]
    +|
    +    //ContinueStatement[following-sibling::node()]
    +|
    +    //BreakStatement[following-sibling::node()]
    +|
    +    //ThrowStatement[following-sibling::node()]
    +
    + +

    Example(s):

    + +
    // Ok
    +function foo() {
    +   return 1;
    +}
    +// Bad
    +function bar() {
    +   var x = 1;
    +   return x;
    +   x = 2;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/UnreachableCode" />
    +
    + +

    WhileLoopsMustUseBraces

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘while’ statements without using curly braces.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileLoop[not(child::Scope)]
    +
    + +

    Example(s):

    + +
    // Ok
    +while (true) {
    +    x++;
    +}
    +
    +// Bad
    +while (true)
    +    x++;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/codestyle.xml/WhileLoopsMustUseBraces" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_ecmascript_errorprone.html b/pmd_rules_ecmascript_errorprone.html new file mode 100644 index 0000000000..d4732e880b --- /dev/null +++ b/pmd_rules_ecmascript_errorprone.html @@ -0,0 +1,1574 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidTrailingComma

    + +

    Since: PMD 5.1

    + +

    Priority: High (1)

    + +

    This rule helps improve code portability due to differences in browser treatment of trailing commas in object or array literals.

    + +

    This rule is defined by the following XPath expression:

    +
    //ObjectLiteral[$allowObjectLiteral = false() and @TrailingComma = true()]
    +|
    +//ArrayLiteral[$allowArrayLiteral = false() and @TrailingComma = true()]
    +
    + +

    Example(s):

    + +
    function(arg) {
    +    var obj1 = { a : 1 };   // Ok
    +    var arr1 = [ 1, 2 ];    // Ok
    +
    +    var obj2 = { a : 1, };  // Syntax error in some browsers!
    +    var arr2 = [ 1, 2, ];   // Length 2 or 3 depending on the browser!
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowObjectLiteralfalseAllow a trailing comma within an object literalno
    allowArrayLiteralfalseAllow a trailing comma within an array literalno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/ecmascript/errorprone.xml/AvoidTrailingComma" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/ecmascript/errorprone.xml/AvoidTrailingComma">
    +    <properties>
    +        <property name="allowObjectLiteral" value="false" />
    +        <property name="allowArrayLiteral" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    EqualComparison

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Using == in condition may lead to unexpected results, as the variables are automatically casted to be of the +same type. The === operator avoids the casting.

    + +

    This rule is defined by the following XPath expression:

    +
    //InfixExpression[
    +  (@Image = "==" or @Image = "!=")
    +  and
    +  (KeywordLiteral[@Image='true' or @Image = 'false'] or NumberLiteral)
    +]
    +
    + +

    Example(s):

    + +
    // Ok
    +if (someVar === true) {
    +  ...
    +}
    +// Ok
    +if (someVar !== 3) {
    +  ...
    +}
    +// Bad
    +if (someVar == true) {
    +  ...
    +}
    +// Bad
    +if (someVar != 3) {
    +  ...
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/errorprone.xml/EqualComparison" />
    +
    + +

    InnaccurateNumericLiteral

    + +

    Since: PMD 5.0

    + +

    Priority: Medium High (2)

    + +

    The numeric literal will have a different value at runtime, which can happen if you provide too much +precision in a floating point number. This may result in numeric calculations being in error.

    + +

    This rule is defined by the following XPath expression:

    +
    //NumberLiteral[@NormalizedImage != string(@Number)]
    +
    + +

    Example(s):

    + +
    var a = 9; // Ok
    +var b = 999999999999999; // Ok
    +var c = 999999999999999999999; // Not good
    +var w = 1.12e-4; // Ok
    +var x = 1.12; // Ok
    +var y = 1.1234567890123; // Ok
    +var z = 1.12345678901234567; // Not good
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/ecmascript/errorprone.xml/InnaccurateNumericLiteral" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java.html b/pmd_rules_java.html new file mode 100644 index 0000000000..c9e9b43057 --- /dev/null +++ b/pmd_rules_java.html @@ -0,0 +1,2093 @@ + + + + + + + + +Java Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Java Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Java
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + +
      +
    • AbstractClassWithoutAbstractMethod: The abstract class does not contain any abstract methods. An abstract class suggests an incomplet…
    • +
    • AccessorClassGeneration: Instantiation by way of private constructors from outside of the constructor’s class often causes…
    • +
    • AccessorMethodGeneration: When accessing a private field / method from another class, the Java compiler will generate a acc…
    • +
    • ArrayIsStoredDirectly: Constructors and methods receiving arrays should clone objects and store the copy. This prevents …
    • +
    • AvoidMessageDigestField: Declaring a MessageDigest instance as a field make this instance directly available to multiple t…
    • +
    • AvoidPrintStackTrace: Avoid printStackTrace(); use a logger call instead.
    • +
    • AvoidReassigningCatchVariables: Reassigning exception variables caught in a catch statement should be avoided because of: 1) If i…
    • +
    • AvoidReassigningLoopVariables: Reassigning loop variables can lead to hard-to-find bugs. Prevent or limit how these variables ca…
    • +
    • AvoidReassigningParameters: Reassigning values to incoming parameters is not recommended. Use temporary local variables inst…
    • +
    • AvoidStringBufferField: StringBuffers/StringBuilders can grow considerably, and so may become a source of memory leaks if…
    • +
    • AvoidUsingHardCodedIP: Application with hard-coded IP addresses can become impossible to deploy in some cases. Externali…
    • +
    • CheckResultSet: Always check the return values of navigation methods (next, previous, first, last) of a ResultSet…
    • +
    • ConstantsInInterface: Avoid constants in interfaces. Interfaces should define types, constants are implementation detai…
    • +
    • DefaultLabelNotLastInSwitchStmt: By convention, the default label should be the last label in a switch statement.
    • +
    • DoubleBraceInitialization: Double brace initialisation is a pattern to initialise eg collections concisely. But it implicitl…
    • +
    • ForLoopCanBeForeach: Reports loops that can be safely replaced with the foreach syntax. The rule considers loops over …
    • +
    • ForLoopVariableCount: Having a lot of control variables in a ‘for’ loop makes it harder to see what range of values the…
    • +
    • GuardLogStatement: Whenever using a log level, one should check if the loglevel is actually enabled, or otherwise sk…
    • +
    • JUnit4SuitesShouldUseSuiteAnnotation: In JUnit 3, test suites are indicated by the suite() method. In JUnit 4, suites are indicated thr…
    • +
    • JUnit4TestShouldUseAfterAnnotation: In JUnit 3, the tearDown method was used to clean up all data entities required in running tests….
    • +
    • JUnit4TestShouldUseBeforeAnnotation: In JUnit 3, the setUp method was used to set up all data entities required in running tests. JUni…
    • +
    • JUnit4TestShouldUseTestAnnotation: In JUnit 3, the framework executed all methods which started with the word test as a unit test. I…
    • +
    • JUnitAssertionsShouldIncludeMessage: JUnit assertions should include an informative message - i.e., use the three-argument version of …
    • +
    • JUnitTestContainsTooManyAsserts: Unit tests should not contain too many asserts. Many asserts are indicative of a complex test, fo…
    • +
    • JUnitTestsShouldIncludeAssert: JUnit tests should include at least one assertion. This makes the tests more robust, and using a…
    • +
    • JUnitUseExpected: In JUnit4, use the @Test(expected) annotation to denote tests that should throw exceptions.
    • +
    • LiteralsFirstInComparisons: Position literals first in all String comparisons, if the second argument is null then NullPointe…
    • +
    • LooseCoupling: The use of implementation types (i.e., HashSet) as object references limits your ability to use a…
    • +
    • MethodReturnsInternalArray: Exposing internal arrays to the caller violates object encapsulation since elements can be remove…
    • +
    • MissingOverride: Annotating overridden methods with @Override ensures at compile time that the method …
    • +
    • OneDeclarationPerLine: Java allows the use of several variables declaration of the same type on one line. However, it ca…
    • +
    • PositionLiteralsFirstInCaseInsensitiveComparisons: Deprecated Position literals first in comparisons, if the second argument is null then NullPointerExceptions…
    • +
    • PositionLiteralsFirstInComparisons: Deprecated Position literals first in comparisons, if the second argument is null then NullPointerExceptions…
    • +
    • PreserveStackTrace: Throwing a new exception from a catch block without passing the original exception into the new e…
    • +
    • ReplaceEnumerationWithIterator: Consider replacing Enumeration usages with the newer java.util.Iterator
    • +
    • ReplaceHashtableWithMap: Consider replacing Hashtable usage with the newer java.util.Map if thread safety is not required.
    • +
    • ReplaceVectorWithList: Consider replacing Vector usages with the newer java.util.ArrayList if expensive thread-safe oper…
    • +
    • SwitchStmtsShouldHaveDefault: All switch statements should include a default option to catch any unspecified values.
    • +
    • SystemPrintln: References to System.(out|err).print are usually intended for debugging purposes and can remain …
    • +
    • UnusedAssignment: Reports assignments to variables that are never used before the variable is overwritten, …
    • +
    • UnusedFormalParameter: Avoid passing parameters to methods or constructors without actually referencing them in the meth…
    • +
    • UnusedImports: Avoid unused import statements to prevent unwanted dependencies. This rule will also find unused …
    • +
    • UnusedLocalVariable: Detects when a local variable is declared and/or assigned, but not used.
    • +
    • UnusedPrivateField: Detects when a private field is declared and/or assigned a value, but not used.
    • +
    • UnusedPrivateMethod: Unused Private Method detects when a private method is declared but is unused.
    • +
    • UseAssertEqualsInsteadOfAssertTrue: This rule detects JUnit assertions in object equality. These assertions should be made by more sp…
    • +
    • UseAssertNullInsteadOfAssertTrue: This rule detects JUnit assertions in object references equality. These assertions should be made…
    • +
    • UseAssertSameInsteadOfAssertTrue: This rule detects JUnit assertions in object references equality. These assertions should be made…
    • +
    • UseAssertTrueInsteadOfAssertEquals: When asserting a value is the same as a literal or Boxed boolean, use assertTrue/assertFalse, ins…
    • +
    • UseCollectionIsEmpty: The isEmpty() method on java.util.Collection is provided to determine if a collection has any ele…
    • +
    • UseTryWithResources: Java 7 introduced the try-with-resources statement. This statement ensures that each resource is …
    • +
    • UseVarargs: Java 5 introduced the varargs parameter declaration for methods and constructors. This syntactic…
    • +
    • WhileLoopWithLiteralBoolean: ‘do {} while (true);’ requires reading the end of the statement before it is apparent that it loo…
    • +
    + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + +
      +
    • AbstractNaming: Deprecated Abstract classes should be named ‘AbstractXXX’. This rule is deprecated and will be removed with …
    • +
    • AtLeastOneConstructor: Each non-static class should declare at least one constructor. Classes with solely static members…
    • +
    • AvoidDollarSigns: Avoid using dollar signs in variable/method/class/interface names.
    • +
    • AvoidFinalLocalVariable: Deprecated Avoid using final local variables, turn them into fields. Note that this is a controversial rule …
    • +
    • AvoidPrefixingMethodParameters: Deprecated Prefixing parameters by ‘in’ or ‘out’ pollutes the name of the parameters and reduces code readab…
    • +
    • AvoidProtectedFieldInFinalClass: Do not use protected fields in final classes since they cannot be subclassed. Clarify your intent…
    • +
    • AvoidProtectedMethodInFinalClassNotExtending: Do not use protected methods in most final classes since they cannot be subclassed. This should o…
    • +
    • AvoidUsingNativeCode: Unnecessary reliance on Java Native Interface (JNI) calls directly reduces application portabilit…
    • +
    • BooleanGetMethodName: Methods that return boolean results should be named as predicate statements to denote this. I.e, …
    • +
    • CallSuperInConstructor: It is a good practice to call super() in a constructor. If super() is not called but another cons…
    • +
    • ClassNamingConventions: Configurable naming conventions for type declarations. This rule reports type declara…
    • +
    • CommentDefaultAccessModifier: To avoid mistakes if we want that an Annotation, Class, Enum, Method, Constructor or Field have a…
    • +
    • ConfusingTernary: Avoid negation within an "if" expression with an "else" clause. For example, rephrase: ‘if (x !=…
    • +
    • ControlStatementBraces: Enforce a policy for braces on control statements. It is recommended to use braces on ‘if … els…
    • +
    • DefaultPackage: Use explicit scoping instead of accidental usage of default package private level. The rule allow…
    • +
    • DontImportJavaLang: Avoid importing anything from the package ‘java.lang’. These classes are automatically imported …
    • +
    • DuplicateImports: Duplicate or overlapping import statements should be avoided.
    • +
    • EmptyMethodInAbstractClassShouldBeAbstract: Empty or auto-generated methods in an abstract class should be tagged as abstract. This helps to …
    • +
    • ExtendsObject: No need to explicitly extend Object.
    • +
    • FieldDeclarationsShouldBeAtStartOfClass: Fields should be declared at the top of the class, before any method declarations, constructors, …
    • +
    • FieldNamingConventions: Configurable naming conventions for field declarations. This rule reports variable declarations …
    • +
    • ForLoopShouldBeWhileLoop: Some for loops can be simplified to while loops, this makes them more concise.
    • +
    • ForLoopsMustUseBraces: Deprecated Avoid using ‘for’ statements without using curly braces. If the code formatting or indentation is…
    • +
    • FormalParameterNamingConventions: Configurable naming conventions for formal parameters of methods and lambdas. This ru…
    • +
    • GenericsNaming: Names for references to generic values should be limited to a single uppercase letter.
    • +
    • IdenticalCatchBranches: Identical ‘catch’ branches use up vertical space and increase the complexity of code without …
    • +
    • IfElseStmtsMustUseBraces: Deprecated Avoid using if..else statements without using surrounding braces. If the code formatting or inden…
    • +
    • IfStmtsMustUseBraces: Deprecated Avoid using if statements without using braces to surround the code block. If the code formatting…
    • +
    • LinguisticNaming: This rule finds Linguistic Naming Antipatterns. It checks for fields, that are named, as if they …
    • +
    • LocalHomeNamingConvention: The Local Home interface of a Session EJB should be suffixed by ‘LocalHome’.
    • +
    • LocalInterfaceSessionNamingConvention: The Local Interface of a Session EJB should be suffixed by ‘Local’.
    • +
    • LocalVariableCouldBeFinal: A local variable assigned only once can be declared final.
    • +
    • LocalVariableNamingConventions: Configurable naming conventions for local variable declarations and other locally-scoped …
    • +
    • LongVariable: Fields, formal arguments, or local variable names that are too long can make the code difficult t…
    • +
    • MDBAndSessionBeanNamingConvention: The EJB Specification states that any MessageDrivenBean or SessionBean should be suffixed by ‘Bean’.
    • +
    • MethodArgumentCouldBeFinal: A method argument that is never re-assigned within the method can be declared final.
    • +
    • MethodNamingConventions: Configurable naming conventions for method declarations. This rule reports method dec…
    • +
    • MIsLeadingVariableName: Deprecated Detects when a non-field has a name starting with ‘m_’. This usually denotes a field and could b…
    • +
    • NoPackage: Detects when a class, interface, enum or annotation does not have a package definition.
    • +
    • OnlyOneReturn: A method should have only one exit point, and that should be the last statement in the method.
    • +
    • PackageCase: Detects when a package definition contains uppercase characters.
    • +
    • PrematureDeclaration: Checks for variables that are defined before they might be used. A reference is deemed to be prem…
    • +
    • RemoteInterfaceNamingConvention: Remote Interface of a Session EJB should not have a suffix.
    • +
    • RemoteSessionInterfaceNamingConvention: A Remote Home interface type of a Session EJB should be suffixed by ‘Home’.
    • +
    • ShortClassName: Short Classnames with fewer than e.g. five characters are not recommended.
    • +
    • ShortMethodName: Method names that are very short are not helpful to the reader.
    • +
    • ShortVariable: Fields, local variables, or parameter names that are very short are not helpful to the reader.
    • +
    • SuspiciousConstantFieldName: Deprecated Field names using all uppercase characters - Sun’s Java naming conventions indicating constants -…
    • +
    • TooManyStaticImports: If you overuse the static import feature, it can make your program unreadable and unmaintainable,…
    • +
    • UnnecessaryAnnotationValueElement: Avoid the use of value in annotations when it’s the only element.
    • +
    • UnnecessaryCast: This rule detects when a cast is unnecessary while accessing collection elements. This rule is mo…
    • +
    • UnnecessaryConstructor: This rule detects when a constructor is not necessary; i.e., when there is only one constructor a…
    • +
    • UnnecessaryFullyQualifiedName: Import statements allow the use of non-fully qualified names. The use of a fully qualified name …
    • +
    • UnnecessaryLocalBeforeReturn: Avoid the creation of unnecessary local variables
    • +
    • UnnecessaryModifier: Fields in interfaces and annotations are automatically ‘public static final’, and methods are ‘pu…
    • +
    • UnnecessaryReturn: Avoid the use of unnecessary return statements.
    • +
    • UseDiamondOperator: Use the diamond operator to let the type be inferred automatically. With the Diamond operator it …
    • +
    • UselessParentheses: Useless parentheses should be removed.
    • +
    • UselessQualifiedThis: Reports qualified this usages in the same class.
    • +
    • UseShortArrayInitializer: When declaring and initializing array fields or variables, it is not necessary to explicitly crea…
    • +
    • UseUnderscoresInNumericLiterals: Since Java 1.7, numeric literals can use underscores to separate digits. This rule enforces that …
    • +
    • VariableNamingConventions: Deprecated A variable naming conventions rule - customize this to your liking. Currently, it checks for fin…
    • +
    • WhileLoopsMustUseBraces: Deprecated Avoid using ‘while’ statements without using braces to surround the code block. If the code forma…
    • +
    + +

    Design

    + +
    Rules that help you discover design issues.
    + +
      +
    • AbstractClassWithoutAnyMethod: If an abstract class does not provides any methods, it may be acting as a simple data container t…
    • +
    • AvoidCatchingGenericException: Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in tr…
    • +
    • AvoidDeeplyNestedIfStmts: Avoid creating deeply nested if-then statements since they are harder to read and error-prone to …
    • +
    • AvoidRethrowingException: Catch blocks that merely rethrow a caught exception only add to code size and runtime complexity.
    • +
    • AvoidThrowingNewInstanceOfSameException: Catch blocks that merely rethrow a caught exception wrapped inside a new instance of the same typ…
    • +
    • AvoidThrowingNullPointerException: Avoid throwing NullPointerExceptions manually. These are confusing because most people will assum…
    • +
    • AvoidThrowingRawExceptionTypes: Avoid throwing certain exception types. Rather than throw a raw RuntimeException, Throwable, Exce…
    • +
    • AvoidUncheckedExceptionsInSignatures: A method or constructor should not explicitly declare unchecked exceptions in its ‘throws’ clause…
    • +
    • ClassWithOnlyPrivateConstructorsShouldBeFinal: A class with only private constructors should be final, unless the private constructor is invoked…
    • +
    • CollapsibleIfStatements: Sometimes two consecutive ‘if’ statements can be consolidated by separating their conditions with…
    • +
    • CouplingBetweenObjects: This rule counts the number of unique attributes, local variables, and return types within an obj…
    • +
    • CyclomaticComplexity: The complexity of methods directly affects maintenance costs and readability. Concentrating too m…
    • +
    • DataClass: Data Classes are simple data holders, which reveal most of their state, and without complex funct…
    • +
    • DoNotExtendJavaLangError: Errors are system exceptions. Do not extend them.
    • +
    • ExceptionAsFlowControl: Using Exceptions as form of flow control is not recommended as they obscure true exceptions when …
    • +
    • ExcessiveClassLength: Excessive class file lengths are usually indications that the class may be burdened with excessiv…
    • +
    • ExcessiveImports: A high number of imports can indicate a high degree of coupling within an object. This rule count…
    • +
    • ExcessiveMethodLength: When methods are excessively long this usually indicates that the method is doing more than its n…
    • +
    • ExcessiveParameterList: Methods with numerous parameters are a challenge to maintain, especially if most of them share th…
    • +
    • ExcessivePublicCount: Classes with large numbers of public methods and attributes require disproportionate testing effo…
    • +
    • FinalFieldCouldBeStatic: If a final field is assigned to a compile-time constant, it could be made static, thus saving ove…
    • +
    • GodClass: The God Class rule detects the God Class design flaw using metrics. God classes do too many thing…
    • +
    • ImmutableField: Identifies private fields whose values never change once object initialization ends either in the…
    • +
    • LawOfDemeter: The Law of Demeter is a simple rule, that says "only talk to friends". It helps to reduce couplin…
    • +
    • LogicInversion: Use opposite operator instead of negating the whole expression with a logic complement operator.
    • +
    • LoosePackageCoupling: Avoid using classes from the configured package hierarchy outside of the package hierarchy, excep…
    • +
    • ModifiedCyclomaticComplexity: Deprecated Complexity directly affects maintenance costs is determined by the number of decision points in a…
    • +
    • NcssConstructorCount: Deprecated This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NcssCount: This rule uses the NCSS (Non-Commenting Source Statements) metric to determine the number of line…
    • +
    • NcssMethodCount: Deprecated This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NcssTypeCount: Deprecated This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NPathComplexity: The NPath complexity of a method is the number of acyclic execution paths through that method. Wh…
    • +
    • SignatureDeclareThrowsException: A method/constructor shouldn’t explicitly throw the generic java.lang.Exception, since it is uncl…
    • +
    • SimplifiedTernary: Look for ternary operators with the form ‘condition ? literalBoolean : foo’ or ‘condition ? foo :…
    • +
    • SimplifyBooleanAssertion: Avoid negation in an assertTrue or assertFalse test. For example, rephrase: assertTrue(!expr)…
    • +
    • SimplifyBooleanExpressions: Avoid unnecessary comparisons in boolean expressions, they serve no purpose and impacts readability.
    • +
    • SimplifyBooleanReturns: Avoid unnecessary if-then-else statements when returning a boolean. The result of the conditional…
    • +
    • SimplifyConditional: No need to check for null before an instanceof; the instanceof keyword returns false when given a…
    • +
    • SingularField: Fields whose scopes are limited to just single methods do not rely on the containing object to pr…
    • +
    • StdCyclomaticComplexity: Deprecated Complexity directly affects maintenance costs is determined by the number of decision points in a…
    • +
    • SwitchDensity: A high ratio of statements to labels in a switch statement implies that the switch statement is o…
    • +
    • TooManyFields: Classes that have too many fields can become unwieldy and could be redesigned to have fewer field…
    • +
    • TooManyMethods: A class with too many methods is probably a good suspect for refactoring, in order to reduce its …
    • +
    • UselessOverridingMethod: The overriding method merely calls the same method defined in a superclass.
    • +
    • UseObjectForClearerAPI: When you write a public method, you should be thinking in terms of an API. If your method is publ…
    • +
    • UseUtilityClass: For classes that only have static methods, consider making them utility classes. Note that this d…
    • +
    + +

    Documentation

    + +
    Rules that are related to code documentation.
    + +
      +
    • CommentContent: A rule for the politically correct… we don’t want to offend anyone.
    • +
    • CommentRequired: Denotes whether javadoc (formal) comments are required (or unwanted) for specific language elements.
    • +
    • CommentSize: Determines whether the dimensions of non-header comments found are within the specified limits.
    • +
    • UncommentedEmptyConstructor: Uncommented Empty Constructor finds instances where a constructor does not contain statements, bu…
    • +
    • UncommentedEmptyMethodBody: Uncommented Empty Method Body finds instances where a method body does not contain statements, bu…
    • +
    + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + +
      +
    • AssignmentInOperand: Avoid assignments in operands; this can make code more complicated and harder to read.
    • +
    • AssignmentToNonFinalStatic: Identifies a possible unsafe usage of a static field.
    • +
    • AvoidAccessibilityAlteration: Methods such as getDeclaredConstructors(), getDeclaredConstructor(Class[]) and setAccessible(), a…
    • +
    • AvoidAssertAsIdentifier: Use of the term ‘assert’ will conflict with newer versions of Java since it is a reserved word.
    • +
    • AvoidBranchingStatementAsLastInLoop: Using a branching statement as the last part of a loop may be a bug, and/or is confusing. Ensure …
    • +
    • AvoidCallingFinalize: The method Object.finalize() is called by the garbage collector on an object when garbage collect…
    • +
    • AvoidCatchingNPE: Code should never throw NullPointerExceptions under normal circumstances. A catch block may hide…
    • +
    • AvoidCatchingThrowable: Catching Throwable errors is not recommended since its scope is very broad. It includes runtime i…
    • +
    • AvoidDecimalLiteralsInBigDecimalConstructor: One might assume that the result of "new BigDecimal(0.1)" is exactly equal to 0.1, but it is actu…
    • +
    • AvoidDuplicateLiterals: Code containing duplicate String literals can usually be improved by declaring the String as a co…
    • +
    • AvoidEnumAsIdentifier: Use of the term ‘enum’ will conflict with newer versions of Java since it is a reserved word.
    • +
    • AvoidFieldNameMatchingMethodName: It can be confusing to have a field name with the same name as a method. While this is permitted,…
    • +
    • AvoidFieldNameMatchingTypeName: It is somewhat confusing to have a field name matching the declaring class name. This probably me…
    • +
    • AvoidInstanceofChecksInCatchClause: Each caught exception type should be handled in its own catch clause.
    • +
    • AvoidLiteralsInIfCondition: Avoid using hard-coded literals in conditional statements. By declaring them as static variables …
    • +
    • AvoidLosingExceptionInformation: Statements in a catch block that invoke accessors on the exception without using the information …
    • +
    • AvoidMultipleUnaryOperators: The use of multiple unary operators may be problematic, and/or confusing. Ensure that the intende…
    • +
    • AvoidUsingOctalValues: Integer literals should not start with zero since this denotes that the rest of literal will be i…
    • +
    • BadComparison: Avoid equality comparisons with Double.NaN. Due to the implicit lack of representation precision …
    • +
    • BeanMembersShouldSerialize: If a class is a bean, or is referenced by a bean directly or indirectly it needs to be serializab…
    • +
    • BrokenNullCheck: The null check is broken since it will throw a NullPointerException itself. It is likely that you…
    • +
    • CallSuperFirst: Super should be called at the start of the method
    • +
    • CallSuperLast: Super should be called at the end of the method
    • +
    • CheckSkipResult: The skip() method may skip a smaller number of bytes than requested. Check the returned value to …
    • +
    • ClassCastExceptionWithToArray: When deriving an array of a specific class from your Collection, one should provide an array of t…
    • +
    • CloneMethodMustBePublic: The java Manual says "By convention, classes that implement this interface should override Object…
    • +
    • CloneMethodMustImplementCloneable: The method clone() should only be implemented if the class implements the Cloneable interface wit…
    • +
    • CloneMethodReturnTypeMustMatchClassName: If a class implements cloneable the return type of the method clone() must be the class name. Tha…
    • +
    • CloneThrowsCloneNotSupportedException: The method clone() should throw a CloneNotSupportedException.
    • +
    • CloseResource: Ensure that resources (like ‘java.sql.Connection’, ‘java.sql.Statement’, and ‘java.sql.ResultSet’…
    • +
    • CompareObjectsWithEquals: Use equals() to compare object references; avoid comparing them with ==.
    • +
    • ConstructorCallsOverridableMethod: Calling overridable methods during construction poses a risk of invoking methods on an incomplete…
    • +
    • DataflowAnomalyAnalysis: Deprecated The dataflow analysis tracks local definitions, undefinitions and references to variables on diff…
    • +
    • DetachedTestCase: The method appears to be a test case since it has public or default visibility, non-static access…
    • +
    • DoNotCallGarbageCollectionExplicitly: Calls to System.gc(), Runtime.getRuntime().gc(), and System.runFinalization() are not advised. Co…
    • +
    • DoNotCallSystemExit: Deprecated The rule has been renamed. Use instead DoNotTerminateVM.
    • +
    • DoNotExtendJavaLangThrowable: Extend Exception or RuntimeException instead of Throwable.
    • +
    • DoNotHardCodeSDCard: Use Environment.getExternalStorageDirectory() instead of "/sdcard"
    • +
    • DoNotTerminateVM: Web applications should not call ‘System.exit()’, since only the web container or the application…
    • +
    • DoNotThrowExceptionInFinally: Throwing exceptions within a ‘finally’ block is confusing since they may mask other exceptions or…
    • +
    • DontImportSun: Avoid importing anything from the ‘sun.’ packages. These packages are not portable and are likel…
    • +
    • DontUseFloatTypeForLoopIndices: Don’t use floating point for loop indices. If you must use floating point, use double unless you’…
    • +
    • EmptyCatchBlock: Empty Catch Block finds instances where an exception is caught, but nothing is done. In most circ…
    • +
    • EmptyFinalizer: Empty finalize methods serve no purpose and should be removed. Note that Oracle has declared Obje…
    • +
    • EmptyFinallyBlock: Empty finally blocks serve no purpose and should be removed.
    • +
    • EmptyIfStmt: Empty If Statement finds instances where a condition is checked but nothing is done about it.
    • +
    • EmptyInitializer: Empty initializers serve no purpose and should be removed.
    • +
    • EmptyStatementBlock: Empty block statements serve no purpose and should be removed.
    • +
    • EmptyStatementNotInLoop: An empty statement (or a semicolon by itself) that is not used as the sole body of a ‘for’ or ‘wh…
    • +
    • EmptySwitchStatements: Empty switch statements serve no purpose and should be removed.
    • +
    • EmptySynchronizedBlock: Empty synchronized blocks serve no purpose and should be removed.
    • +
    • EmptyTryBlock: Avoid empty try blocks - what’s the point?
    • +
    • EmptyWhileStmt: Empty While Statement finds all instances where a while statement does nothing. If it is a timing…
    • +
    • EqualsNull: Tests for null should not use the equals() method. The ‘==’ operator should be used instead.
    • +
    • FinalizeDoesNotCallSuperFinalize: If the finalize() is implemented, its last action should be to call super.finalize. Note that Ora…
    • +
    • FinalizeOnlyCallsSuperFinalize: If the finalize() is implemented, it should do something besides just calling super.finalize(). N…
    • +
    • FinalizeOverloaded: Methods named finalize() should not have parameters. It is confusing and most likely an attempt …
    • +
    • FinalizeShouldBeProtected: When overriding the finalize(), the new method should be set as protected. If made public, other…
    • +
    • IdempotentOperations: Avoid idempotent operations - they have no effect.
    • +
    • ImportFromSamePackage: There is no need to import a type that lives in the same package.
    • +
    • InstantiationToGetClass: Avoid instantiating an object just to call getClass() on it; use the .class public member instead.
    • +
    • InvalidLogMessageFormat: Check for messages in slf4j and log4j2 (since 6.19.0) loggers with non matching number of argumen…
    • +
    • InvalidSlf4jMessageFormat: Deprecated The rule has been renamed. Use instead InvalidLogMessageFormat.
    • +
    • JumbledIncrementer: Avoid jumbled loop incrementers - its usually a mistake, and is confusing even if intentional.
    • +
    • JUnitSpelling: In JUnit 3, the setUp method is used to set up all data entities required in running tests. …
    • +
    • JUnitStaticSuite: The suite() method in a JUnit test needs to be both public and static.
    • +
    • LoggerIsNotStaticFinal: Deprecated In most cases, the Logger reference can be declared as static and final. This rule is deprecated …
    • +
    • MethodWithSameNameAsEnclosingClass: Non-constructor methods should not have the same name as the enclosing class.
    • +
    • MisplacedNullCheck: The null check here is misplaced. If the variable is null a NullPointerException will be thrown. …
    • +
    • MissingBreakInSwitch: Switch statements without break or return statements for each case option may indicate problemati…
    • +
    • MissingSerialVersionUID: Serializable classes should provide a serialVersionUID field. The serialVersionUID field is also …
    • +
    • MissingStaticMethodInNonInstantiatableClass: A class that has private constructors and does not have any static methods or fields cannot be us…
    • +
    • MoreThanOneLogger: Normally only one logger is used in each class. This rule supports slf4j, log4j, Java Util Loggin…
    • +
    • NonCaseLabelInSwitchStatement: A non-case label (e.g. a named break/continue label) was present in a switch statement. This lega…
    • +
    • NonStaticInitializer: A non-static initializer block will be called any time a constructor is invoked (just prior to in…
    • +
    • NullAssignment: Assigning a "null" to a variable (outside of its declaration) is usually bad form. Sometimes, th…
    • +
    • OverrideBothEqualsAndHashcode: Override both public boolean Object.equals(Object other), and public int Object.hashCode(), or ov…
    • +
    • ProperCloneImplementation: Object clone() should be implemented with super.clone().
    • +
    • ProperLogger: A logger should normally be defined private static final and be associated with the correct class…
    • +
    • ReturnEmptyArrayRatherThanNull: For any method that returns an array, it is a better to return an empty array rather than a null …
    • +
    • ReturnFromFinallyBlock: Avoid returning from a finally block, this can discard exceptions.
    • +
    • SimpleDateFormatNeedsLocale: Be sure to specify a Locale when creating SimpleDateFormat instances to ensure that locale-approp…
    • +
    • SingleMethodSingleton: Some classes contain overloaded getInstance. The problem with overloaded getInstance methods is t…
    • +
    • SingletonClassReturningNewInstance: Some classes contain overloaded getInstance. The problem with overloaded getInstance methods is t…
    • +
    • StaticEJBFieldShouldBeFinal: According to the J2EE specification, an EJB should not have any static fields with write access. …
    • +
    • StringBufferInstantiationWithChar: Individual character values provided as initialization arguments will be converted into integers….
    • +
    • SuspiciousEqualsMethodName: The method name and parameter number are suspiciously close to ‘Object.equals’, which can denote …
    • +
    • SuspiciousHashcodeMethodName: The method name and return type are suspiciously close to hashCode(), which may denote an intenti…
    • +
    • SuspiciousOctalEscape: A suspicious octal escape sequence was found inside a String literal. The Java language specifica…
    • +
    • TestClassWithoutTestCases: Test classes end with the suffix Test. Having a non-test class with that name is not a good pract…
    • +
    • UnconditionalIfStatement: Do not use "if" statements whose conditionals are always true or always false.
    • +
    • UnnecessaryBooleanAssertion: A JUnit test assertion with a boolean literal is unnecessary since it always will evaluate to the…
    • +
    • UnnecessaryCaseChange: Using equalsIgnoreCase() is faster than using toUpperCase/toLowerCase().equals()
    • +
    • UnnecessaryConversionTemporary: Avoid the use temporary objects when converting primitives to Strings. Use the static conversion …
    • +
    • UnusedNullCheckInEquals: After checking an object reference for null, you should invoke equals() on that object rather tha…
    • +
    • UseCorrectExceptionLogging: To make sure the full stacktrace is printed out, use the logging statement with two arguments: a …
    • +
    • UseEqualsToCompareStrings: Using ‘==’ or ‘!=’ to compare strings only works if intern version is used on both sides. Use the…
    • +
    • UselessOperationOnImmutable: An operation on an Immutable object (String, BigDecimal or BigInteger) won’t change the object it…
    • +
    • UseLocaleWithCaseConversions: When doing ‘String::toLowerCase()/toUpperCase()’ conversions, use an explicit locale argument to …
    • +
    • UseProperClassLoader: In J2EE, the getClassLoader() method might not work as expected. Use Thread.currentThread().getCo…
    • +
    + +

    Multithreading

    + +
    Rules that flag issues when dealing with multiple threads of execution.
    + +
      +
    • AvoidSynchronizedAtMethodLevel: Method-level synchronization can cause problems when new code is added to the method. Block-level…
    • +
    • AvoidThreadGroup: Avoid using java.lang.ThreadGroup; although it is intended to be used in a threaded environment i…
    • +
    • AvoidUsingVolatile: Use of the keyword ‘volatile’ is generally used to fine tune a Java application, and therefore, r…
    • +
    • DoNotUseThreads: The J2EE specification explicitly forbids the use of threads. Threads are resources, that should …
    • +
    • DontCallThreadRun: Explicitly calling Thread.run() method will execute in the caller’s thread of control. Instead, …
    • +
    • DoubleCheckedLocking: Partially created objects can be returned by the Double Checked Locking pattern when used in Java…
    • +
    • NonThreadSafeSingleton: Non-thread safe singletons can result in bad state changes. Eliminate static singletons if possib…
    • +
    • UnsynchronizedStaticDateFormatter: Deprecated SimpleDateFormat instances are not synchronized. Sun recommends using separate format instances f…
    • +
    • UnsynchronizedStaticFormatter: Instances of ‘java.text.Format’ are generally not synchronized. Sun recommends using separate for…
    • +
    • UseConcurrentHashMap: Since Java5 brought a new implementation of the Map designed for multi-threaded access, you can p…
    • +
    • UseNotifyAllInsteadOfNotify: Thread.notify() awakens a thread monitoring the object. If more than one thread is monitoring, th…
    • +
    + +

    Performance

    + +
    Rules that flag suboptimal code.
    + +
      +
    • AddEmptyString: The conversion of literals to strings by concatenating them with empty strings is inefficient. It…
    • +
    • AppendCharacterWithChar: Avoid concatenating characters as strings in StringBuffer/StringBuilder.append methods.
    • +
    • AvoidArrayLoops: Instead of manually copying data between two arrays, use the efficient Arrays.copyOf or System.ar…
    • +
    • AvoidCalendarDateCreation: Problem: A Calendar is a heavyweight object and expensive to create. Solution: Use ‘new Date()’, …
    • +
    • AvoidFileStream: The FileInputStream and FileOutputStream classes contains a finalizer method which will cause gar…
    • +
    • AvoidInstantiatingObjectsInLoops: New objects created within loops should be checked to see if they can created outside them and re…
    • +
    • AvoidUsingShortType: Java uses the ‘short’ type to reduce memory usage, not to optimize calculation. In fact, the JVM …
    • +
    • BigIntegerInstantiation: Don’t create instances of already existing BigInteger (BigInteger.ZERO, BigInteger.ONE) and for J…
    • +
    • BooleanInstantiation: Avoid instantiating Boolean objects; you can reference Boolean.TRUE, Boolean.FALSE, or call Boole…
    • +
    • ByteInstantiation: Calling new Byte() causes memory allocation that can be avoided by the static Byte.valueOf(). It …
    • +
    • ConsecutiveAppendsShouldReuse: Consecutive calls to StringBuffer/StringBuilder .append should be chained, reusing the target obj…
    • +
    • ConsecutiveLiteralAppends: Consecutively calling StringBuffer/StringBuilder.append(…) with literals should be avoided. Sin…
    • +
    • InefficientEmptyStringCheck: String.trim().length() == 0 (or String.trim().isEmpty() for the same reason) is an inefficient wa…
    • +
    • InefficientStringBuffering: Avoid concatenating non-literals in a StringBuffer constructor or append() since intermediate buf…
    • +
    • InsufficientStringBufferDeclaration: Failing to pre-size a StringBuffer or StringBuilder properly could cause it to re-size many times…
    • +
    • IntegerInstantiation: Calling new Integer() causes memory allocation that can be avoided by the static Integer.valueOf(…
    • +
    • LongInstantiation: Calling new Long() causes memory allocation that can be avoided by the static Long.valueOf(). It …
    • +
    • OptimizableToArrayCall: Calls to a collection’s ‘toArray(E[])’ method should specify a target array of zero size. This al…
    • +
    • RedundantFieldInitializer: Java will initialize fields with known default values so any explicit initialization of those sam…
    • +
    • ShortInstantiation: Calling new Short() causes memory allocation that can be avoided by the static Short.valueOf(). I…
    • +
    • SimplifyStartsWith: Calls to ‘string.startsWith("x")’ with a string literal of length 1 can be rewritten using ‘strin…
    • +
    • StringInstantiation: Avoid instantiating String objects; this is usually unnecessary since they are immutable and can …
    • +
    • StringToString: Avoid calling toString() on objects already known to be string instances; this is unnecessary.
    • +
    • TooFewBranchesForASwitchStatement: Switch statements are intended to be used to support complex branching behaviour. Using a switch …
    • +
    • UnnecessaryWrapperObjectCreation: Most wrapper classes provide static conversion methods that avoid the need to create intermediate…
    • +
    • UseArrayListInsteadOfVector: ArrayList is a much better Collection implementation than Vector if thread-safe operation is not …
    • +
    • UseArraysAsList: The java.util.Arrays class has a "asList" method that should be used when you want to create a ne…
    • +
    • UseIndexOfChar: Use String.indexOf(char) when checking for the index of a single character; it executes faster.
    • +
    • UseIOStreamsWithApacheCommonsFileItem: Problem: Use of [FileItem.get()](https://commons.apache.org/proper/commons-fileupload/apidocs/org…
    • +
    • UselessStringValueOf: No need to call String.valueOf to append to a string; just use the valueOf() argument directly.
    • +
    • UseStringBufferForStringAppends: The use of the ‘+=’ operator for appending strings causes the JVM to create and use an internal S…
    • +
    • UseStringBufferLength: Use StringBuffer.length() to determine StringBuffer length rather than using StringBuffer.toStrin…
    • +
    + +

    Security

    + +
    Rules that flag potential security flaws.
    + +
      +
    • HardCodedCryptoKey: Do not use hard coded values for cryptographic operations. Please store keys outside of source code.
    • +
    • InsecureCryptoIv: Do not use hard coded initialization vector in cryptographic operations. Please use a randomly ge…
    • +
    + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_bestpractices.html b/pmd_rules_java_bestpractices.html new file mode 100644 index 0000000000..254c85fa78 --- /dev/null +++ b/pmd_rules_java_bestpractices.html @@ -0,0 +1,3731 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AbstractClassWithoutAbstractMethod

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    The abstract class does not contain any abstract methods. An abstract class suggests +an incomplete implementation, which is to be completed by subclasses implementing the +abstract methods. If the class is intended to be used as a base class only (not to be instantiated +directly) a protected constructor can be provided prevent direct instantiation.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AbstractClassWithoutAbstractMethodRule

    + +

    Example(s):

    + +
    public abstract class Foo {
    +  void int method1() { ... }
    +  void int method2() { ... }
    +  // consider using abstract methods or removing
    +  // the abstract modifier and adding protected constructors
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />
    +
    + +

    AccessorClassGeneration

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    Instantiation by way of private constructors from outside of the constructor’s class often causes the +generation of an accessor. A factory method, or non-privatization of the constructor can eliminate this +situation. The generated class file is actually an interface. It gives the accessing class the ability +to invoke a new hidden package scope constructor that takes the interface as a supplementary parameter. +This turns a private constructor effectively into one with package scope, and is challenging to discern.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AccessorClassGenerationRule

    + +

    Example(s):

    + +
    public class Outer {
    + void method(){
    +  Inner ic = new Inner();//Causes generation of accessor class
    + }
    + public class Inner {
    +  private Inner(){}
    + }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AccessorClassGeneration" />
    +
    + +

    AccessorMethodGeneration

    + +

    Since: PMD 5.5.4

    + +

    Priority: Medium (3)

    + +

    When accessing a private field / method from another class, the Java compiler will generate a accessor methods +with package-private visibility. This adds overhead, and to the dex method count on Android. This situation can +be avoided by changing the visibility of the field / method from private to package-private.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AccessorMethodGenerationRule

    + +

    Example(s):

    + +
    public class OuterClass {
    +    private int counter;
    +    /* package */ int id;
    +
    +    public class InnerClass {
    +        InnerClass() {
    +            OuterClass.this.counter++; // wrong accessor method will be generated
    +        }
    +
    +        public int getOuterClassId() {
    +            return OuterClass.this.id; // id is package-private, no accessor method needed
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AccessorMethodGeneration" />
    +
    + +

    ArrayIsStoredDirectly

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    Constructors and methods receiving arrays should clone objects and store the copy. +This prevents future changes from the user from affecting the original array.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.ArrayIsStoredDirectlyRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private String [] x;
    +        public void foo (String [] param) {
    +        // Don't do this, make a copy of the array at least
    +        this.x=param;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowPrivatetrueIf true, allow private methods/constructors to store arrays directlyno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ArrayIsStoredDirectly" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/ArrayIsStoredDirectly">
    +    <properties>
    +        <property name="allowPrivate" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidMessageDigestField

    + +

    Since: PMD 6.18.0

    + +

    Priority: Medium (3)

    + +

    Declaring a MessageDigest instance as a field make this instance directly available to multiple threads. +Such sharing of MessageDigest instances should be avoided if possible since it leads to wrong results +if the access is not synchronized correctly. +Just create a new instance and use it locally, where you need it. +Creating a new instance is easier than synchronizing access to a shared instance.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration[pmd-java:typeIs('java.security.MessageDigest')]
    +
    + +

    Example(s):

    + +
    import java.security.MessageDigest;
    +public class AvoidMessageDigestFieldExample {
    +    private final MessageDigest sharedMd;
    +    public AvoidMessageDigestFieldExample() throws Exception {
    +        sharedMd = MessageDigest.getInstance("SHA-256");
    +    }
    +    public byte[] calculateHashShared(byte[] data) {
    +        // sharing a MessageDigest like this without synchronizing access
    +        // might lead to wrong results
    +        sharedMd.reset();
    +        sharedMd.update(data);
    +        return sharedMd.digest();
    +    }
    +
    +    // better
    +    public byte[] calculateHash(byte[] data) throws Exception {
    +        MessageDigest md = MessageDigest.getInstance("SHA-256");
    +        md.update(data);
    +        return md.digest();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidMessageDigestField" />
    +
    + +

    AvoidPrintStackTrace

    + +

    Since: PMD 3.2

    + +

    Priority: Medium (3)

    + +

    Avoid printStackTrace(); use a logger call instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression[
    +   ( PrimaryPrefix[Name[contains(@Image,'printStackTrace')]]
    +   | PrimarySuffix[@Image='printStackTrace']
    +   )/following-sibling::*[1][self::PrimarySuffix/Arguments[@Size=0]]
    +]
    +
    + +

    Example(s):

    + +
    class Foo {
    +    void bar() {
    +        try {
    +            // do something
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace" />
    +
    + +

    AvoidReassigningCatchVariables

    + +

    Since: PMD 6.27.0

    + +

    Priority: Medium (3)

    + +

    Reassigning exception variables caught in a catch statement should be avoided because of:

    + +

    1) If it is needed, multi catch can be easily added and code will still compile.

    + +

    2) Following the principle of least surprise we want to make sure that a variable caught in a catch statement +is always the one thrown in a try block.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AvoidReassigningCatchVariablesRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void foo() {
    +        try {
    +            // do something
    +        } catch (Exception e) {
    +            e = new NullPointerException(); // not recommended
    +        }
    +
    +        try {
    +            // do something
    +        } catch (MyException | ServerException e) {
    +            e = new RuntimeException(); // won't compile
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidReassigningCatchVariables" />
    +
    + +

    AvoidReassigningLoopVariables

    + +

    Since: PMD 6.11.0

    + +

    Priority: Medium (3)

    + +

    Reassigning loop variables can lead to hard-to-find bugs. Prevent or limit how these variables can be changed.

    + +

    In foreach-loops, configured by the foreachReassign property:

    +
      +
    • deny: Report any reassignment of the loop variable in the loop body. This is the default.
    • +
    • allow: Don’t check the loop variable.
    • +
    • firstOnly: Report any reassignments of the loop variable, except as the first statement in the loop body. + This is useful if some kind of normalization or clean-up of the value before using is permitted, but any other change of the variable is not.
    • +
    + +

    In for-loops, configured by the forReassign property:

    +
      +
    • deny: Report any reassignment of the control variable in the loop body. This is the default.
    • +
    • allow: Don’t check the control variable.
    • +
    • skip: Report any reassignments of the control variable, except conditional increments/decrements (++, --, +=, -=). + This prevents accidental reassignments or unconditional increments of the control variable.
    • +
    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AvoidReassigningLoopVariablesRule

    + +

    Example(s):

    + +
    public class Foo {
    +  private void foo() {
    +    for (String s : listOfStrings()) {
    +      s = s.trim(); // OK, when foreachReassign is "firstOnly" or "allow"
    +      doSomethingWith(s);
    +
    +      s = s.toUpper(); // OK, when foreachReassign is "allow"
    +      doSomethingElseWith(s);
    +    }
    +
    +    for (int i=0; i < 10; i++) {
    +      if (check(i)) {
    +        i++; // OK, when forReassign is "skip" or "allow"
    +      }
    +
    +      i = 5;  // OK, when forReassign is "allow"
    +
    +      doSomethingWith(i);
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    foreachReassigndenyhow/if foreach control variables may be reassignedno
    forReassigndenyhow/if for control variables may be reassignedno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables">
    +    <properties>
    +        <property name="foreachReassign" value="deny" />
    +        <property name="forReassign" value="deny" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidReassigningParameters

    + +

    Since: PMD 1.0

    + +

    Priority: Medium High (2)

    + +

    Reassigning values to incoming parameters is not recommended. Use temporary local variables instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AvoidReassigningParametersRule

    + +

    Example(s):

    + +
    public class Foo {
    +  private void foo(String bar) {
    +    bar = "something else";
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidReassigningParameters" />
    +
    + +

    AvoidStringBufferField

    + +

    Since: PMD 4.2

    + +

    Priority: Medium (3)

    + +

    StringBuffers/StringBuilders can grow considerably, and so may become a source of memory leaks +if held within objects with long lifetimes.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[@Image = 'StringBuffer' or @Image = 'StringBuilder']
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private StringBuffer buffer;    // potential memory leak as an instance variable;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidStringBufferField" />
    +
    + +

    AvoidUsingHardCodedIP

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Application with hard-coded IP addresses can become impossible to deploy in some cases. +Externalizing IP adresses is preferable.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.AvoidUsingHardCodedIPRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private String ip = "127.0.0.1";     // not recommended
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkAddressTypesIPv4 mapped IPv6 | IPv6 | IPv4Check for IP address types.yes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP">
    +    <properties>
    +        <property name="checkAddressTypes" value="IPv4 mapped IPv6|IPv6|IPv4" />
    +    </properties>
    +</rule>
    +
    + +

    CheckResultSet

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Always check the return values of navigation methods (next, previous, first, last) of a ResultSet. +If the value return is ‘false’, it should be handled properly.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.CheckResultSetRule

    + +

    Example(s):

    + +
    Statement stat = conn.createStatement();
    +ResultSet rst = stat.executeQuery("SELECT name FROM person");
    +rst.next();     // what if it returns false? bad form
    +String firstName = rst.getString(1);
    +
    +Statement stat = conn.createStatement();
    +ResultSet rst = stat.executeQuery("SELECT name FROM person");
    +if (rst.next()) {    // result is properly examined and used
    +    String firstName = rst.getString(1);
    +    } else  {
    +        // handle missing data
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/CheckResultSet" />
    +
    + +

    ConstantsInInterface

    + +

    Since: PMD 5.5

    + +

    Priority: Medium (3)

    + +

    Avoid constants in interfaces. Interfaces should define types, constants are implementation details +better placed in classes or enums. See Effective Java, item 19.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Interface= true()][$ignoreIfHasMethods= false() or not(.//MethodDeclaration)]//FieldDeclaration
    +
    + +

    Example(s):

    + +
    public interface ConstantInterface {
    +    public static final int CONST1 = 1; // violation, no fields allowed in interface!
    +    static final int CONST2 = 1;        // violation, no fields allowed in interface!
    +    final int CONST3 = 1;               // violation, no fields allowed in interface!
    +    int CONST4 = 1;                     // violation, no fields allowed in interface!
    +}
    +
    +// with ignoreIfHasMethods = false
    +public interface AnotherConstantInterface {
    +    public static final int CONST1 = 1; // violation, no fields allowed in interface!
    +
    +    int anyMethod();
    +}
    +
    +// with ignoreIfHasMethods = true
    +public interface YetAnotherConstantInterface {
    +    public static final int CONST1 = 1; // no violation
    +
    +    int anyMethod();
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreIfHasMethodstrueWhether to ignore constants in interfaces if the interface defines any methodsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ConstantsInInterface" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/ConstantsInInterface">
    +    <properties>
    +        <property name="ignoreIfHasMethods" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    DefaultLabelNotLastInSwitchStmt

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    By convention, the default label should be the last label in a switch statement.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement
    + [not(SwitchLabel[position() = last()][@Default= true()])]
    + [SwitchLabel[@Default= true()]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +  void bar(int a) {
    +   switch (a) {
    +    case 1:  // do something
    +       break;
    +    default:  // the default case should be last, by convention
    +       break;
    +    case 2:
    +       break;
    +   }
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt" />
    +
    + +

    DoubleBraceInitialization

    + +

    Since: PMD 6.16.0

    + +

    Priority: Medium (3)

    + +

    Double brace initialisation is a pattern to initialise eg collections concisely. But it implicitly +generates a new .class file, and the object holds a strong reference to the enclosing object. For those +reasons, it is preferable to initialize the object normally, even though it’s verbose.

    + +

    This rule counts any anonymous class which only has a single initializer as an instance of double-brace +initialization. There is currently no way to find out whether a method called in the initializer is not +accessible from outside the anonymous class, and those legit cases should be suppressed for the time being.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression/ClassOrInterfaceBody[count(*)=1]/*/Initializer[@Static=false()]
    +
    + +

    Example(s):

    + +
    // this is double-brace initialization
    +return new ArrayList<String>(){{
    +    add("a");
    +    add("b");
    +    add("c");
    +}};
    +
    +// the better way is to not create an anonymous class:
    +List<String> a = new ArrayList<>();
    +a.add("a");
    +a.add("b");
    +a.add("c");
    +return a;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/DoubleBraceInitialization" />
    +
    + +

    ForLoopCanBeForeach

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.5

    + +

    Reports loops that can be safely replaced with the foreach syntax. The rule considers loops over +lists, arrays and iterators. A loop is safe to replace if it only uses the index variable to +access an element of the list or array, only has one update statement, and loops through every +element of the list or array left to right.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.ForLoopCanBeForeachRule

    + +

    Example(s):

    + +
    public class MyClass {
    +  void loop(List<String> l) {
    +    for (int i = 0; i < l.size(); i++) { // pre Java 1.5
    +      System.out.println(l.get(i));
    +    }
    +
    +    for (String s : l) {        // post Java 1.5
    +      System.out.println(s);
    +    }
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach" />
    +
    + +

    ForLoopVariableCount

    + +

    Since: PMD 6.11.0

    + +

    Priority: Medium (3)

    + +

    Having a lot of control variables in a ‘for’ loop makes it harder to see what range of values +the loop iterates over. By default this rule allows a regular ‘for’ loop with only one variable.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForInit/LocalVariableDeclaration[count(VariableDeclarator) > $maximumVariables]
    +
    + +

    Example(s):

    + +
    // this will be reported with the default setting of at most one control variable in a for loop
    +for (int i = 0, j = 0; i < 10; i++, j += 2) {
    +   foo();
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maximumVariables1A regular for statement will have 1 control variableno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ForLoopVariableCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/ForLoopVariableCount">
    +    <properties>
    +        <property name="maximumVariables" value="1" />
    +    </properties>
    +</rule>
    +
    + +

    GuardLogStatement

    + +

    Since: PMD 5.1.0

    + +

    Priority: Medium High (2)

    + +

    Whenever using a log level, one should check if the loglevel is actually enabled, or +otherwise skip the associate String creation and manipulation.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.GuardLogStatementRule

    + +

    Example(s):

    + +
    // Add this for performance
    +    if (log.isDebugEnabled() { ...
    +        log.debug("log something" + " and " + "concat strings");
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    logLevelstrace , debug , info , warn , error , log , finest , finer , fine , info , warning , severeLogLevels to guardyes. Delimiter is ‘,’.
    guardsMethodsisTraceEnabled , isDebugEnabled , isInfoEnabled , isWarnEnabled , isErrorEnabled , isLoggableMethod use to guard the log statementyes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/GuardLogStatement" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/GuardLogStatement">
    +    <properties>
    +        <property name="logLevels" value="trace,debug,info,warn,error,log,finest,finer,fine,info,warning,severe" />
    +        <property name="guardsMethods" value="isTraceEnabled,isDebugEnabled,isInfoEnabled,isWarnEnabled,isErrorEnabled,isLoggable" />
    +    </properties>
    +</rule>
    +
    + +

    JUnit4SuitesShouldUseSuiteAnnotation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    In JUnit 3, test suites are indicated by the suite() method. In JUnit 4, suites are indicated +through the @RunWith(Suite.class) annotation.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceBodyDeclaration
    +[MethodDeclaration[@Name='suite']/ResultType/Type/ReferenceType/ClassOrInterfaceType[pmd-java:typeIs('junit.framework.Test')]]
    +[not(MethodDeclaration/Block/BlockStatement/Statement/ReturnStatement//ClassOrInterfaceType[pmd-java:typeIs('junit.framework.JUnit4TestAdapter')])]
    +
    + +

    Example(s):

    + +
    public class BadExample extends TestCase{
    +
    +    public static Test suite(){
    +        return new Suite();
    +    }
    +}
    +
    +@RunWith(Suite.class)
    +@SuiteClasses( { TestOne.class, TestTwo.class })
    +public class GoodTest {
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnit4SuitesShouldUseSuiteAnnotation" />
    +
    + +

    JUnit4TestShouldUseAfterAnnotation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    In JUnit 3, the tearDown method was used to clean up all data entities required in running tests. +JUnit 4 skips the tearDown method and executes all methods annotated with @After after running each test. +JUnit 5 introduced @AfterEach and @AfterAll annotations to execute methods after each test or after all tests in the class, respectively.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceBodyDeclaration
    +    [MethodDeclaration[@Name='tearDown']]
    +    [not(Annotation/*/Name[
    +           pmd-java:typeIs('org.junit.After')
    +        or pmd-java:typeIs('org.junit.jupiter.api.AfterEach')
    +        or pmd-java:typeIs('org.junit.jupiter.api.AfterAll')
    +        or pmd-java:typeIs('org.testng.annotations.AfterMethod')])]
    +
    + +

    Example(s):

    + +
    public class MyTest {
    +    public void tearDown() {
    +        bad();
    +    }
    +}
    +public class MyTest2 {
    +    @After public void tearDown() {
    +        good();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseAfterAnnotation" />
    +
    + +

    JUnit4TestShouldUseBeforeAnnotation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    In JUnit 3, the setUp method was used to set up all data entities required in running tests. +JUnit 4 skips the setUp method and executes all methods annotated with @Before before all tests. +JUnit 5 introduced @BeforeEach and @BeforeAll annotations to execute methods before each test or before all tests in the class, respectively.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceBodyDeclaration
    +    [MethodDeclaration[@Name='setUp']]
    +    [not(Annotation/*/Name[
    +           pmd-java:typeIs('org.junit.Before')
    +        or pmd-java:typeIs('org.junit.jupiter.api.BeforeEach')
    +        or pmd-java:typeIs('org.junit.jupiter.api.BeforeAll')
    +        or pmd-java:typeIs('org.testng.annotations.BeforeMethod')])]
    +
    + +

    Example(s):

    + +
    public class MyTest {
    +    public void setUp() {
    +        bad();
    +    }
    +}
    +public class MyTest2 {
    +    @Before public void setUp() {
    +        good();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseBeforeAnnotation" />
    +
    + +

    JUnit4TestShouldUseTestAnnotation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    In JUnit 3, the framework executed all methods which started with the word test as a unit test. +In JUnit 4, only methods annotated with the @Test annotation are executed. +In JUnit 5, one of the following annotations should be used for tests: @Test, @RepeatedTest, @TestFactory, @TestTemplate or @ParameterizedTest.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +       matches(@SimpleName, $testClassPattern)
    +        or ExtendsList/ClassOrInterfaceType[pmd-java:typeIs('junit.framework.TestCase')]]
    +
    +    /ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration[MethodDeclaration[@Public=true() and starts-with(@Name, 'test')]]
    +    [not(Annotation//Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test') or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory') or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +    ])]
    +
    + +

    Example(s):

    + +
    public class MyTest {
    +    public void testBad() {
    +        doSomething();
    +    }
    +
    +    @Test
    +    public void testGood() {
    +        doSomething();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    testClassPatternTestThe regex pattern used to identify test classesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseTestAnnotation" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseTestAnnotation">
    +    <properties>
    +        <property name="testClassPattern" value="Test" />
    +    </properties>
    +</rule>
    +
    + +

    JUnitAssertionsShouldIncludeMessage

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    JUnit assertions should include an informative message - i.e., use the three-argument version of +assertEquals(), not the two-argument version.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.JUnitAssertionsShouldIncludeMessageRule

    + +

    Example(s):

    + +
    public class Foo extends TestCase {
    +    public void testSomething() {
    +        assertEquals("foo", "bar");
    +        // Use the form:
    +        // assertEquals("Foo does not equals bar", "foo", "bar");
    +        // instead
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnitAssertionsShouldIncludeMessage" />
    +
    + +

    JUnitTestContainsTooManyAsserts

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Unit tests should not contain too many asserts. Many asserts are indicative of a complex test, for which +it is harder to verify correctness. Consider breaking the test scenario into multiple, shorter test scenarios. +Customize the maximum number of assertions used by this Rule to suit your needs.

    + +

    This rule checks for JUnit4, JUnit5 and TestNG Tests, as well as methods starting with "test".

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name[matches(.,'^test')] or ../Annotation/MarkerAnnotation/Name[
    +           pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        or pmd-java:typeIs('org.testng.annotations.Test')
    +    ]]
    +    [count(.//PrimaryPrefix/Name[@Image[matches(.,'^assert')]]) > $maximumAsserts]
    +
    + +

    Example(s):

    + +
    public class MyTestCase extends TestCase {
    +    // Ok
    +    public void testMyCaseWithOneAssert() {
    +        boolean myVar = false;
    +        assertFalse("should be false", myVar);
    +    }
    +
    +    // Bad, too many asserts (assuming max=1)
    +    public void testMyCaseWithMoreAsserts() {
    +        boolean myVar = false;
    +        assertFalse("myVar should be false", myVar);
    +        assertEquals("should equals false", false, myVar);
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maximumAsserts1Maximum number of Asserts in a test methodno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnitTestContainsTooManyAsserts" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/JUnitTestContainsTooManyAsserts">
    +    <properties>
    +        <property name="maximumAsserts" value="1" />
    +    </properties>
    +</rule>
    +
    + +

    JUnitTestsShouldIncludeAssert

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    JUnit tests should include at least one assertion. This makes the tests more robust, and using assert +with messages provide the developer a clearer idea of what the test does.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.JUnitTestsShouldIncludeAssertRule

    + +

    Example(s):

    + +
    public class Foo extends TestCase {
    +   public void testSomething() {
    +      Bar b = findBar();
    +   // This is better than having a NullPointerException
    +   // assertNotNull("bar not found", b);
    +   b.work();
    +   }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnitTestsShouldIncludeAssert" />
    +
    + +

    JUnitUseExpected

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    In JUnit4, use the @Test(expected) annotation to denote tests that should throw exceptions.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.JUnitUseExpectedRule

    + +

    Example(s):

    + +
    public class MyTest {
    +    @Test
    +    public void testBad() {
    +        try {
    +            doSomething();
    +            fail("should have thrown an exception");
    +        } catch (Exception e) {
    +        }
    +    }
    +
    +    @Test(expected=Exception.class)
    +    public void testGood() {
    +        doSomething();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/JUnitUseExpected" />
    +
    + +

    LiteralsFirstInComparisons

    + +

    Since: PMD 6.24.0

    + +

    Priority: Medium (3)

    + +

    Position literals first in all String comparisons, if the second argument is null then NullPointerExceptions +can be avoided, they will just return false. Note that switching literal positions for compareTo and +compareToIgnoreCase may change the result, see examples.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.LiteralsFirstInComparisonsRule

    + +

    Example(s):

    + +
    class Foo {
    +    boolean bar(String x) {
    +        return x.equals("2"); // should be "2".equals(x)
    +    }
    +    boolean bar(String x) {
    +        return x.equalsIgnoreCase("2"); // should be "2".equalsIgnoreCase(x)
    +    }
    +    boolean bar(String x) {
    +        return (x.compareTo("bar") > 0); // should be: "bar".compareTo(x) < 0
    +    }
    +    boolean bar(String x) {
    +        return (x.compareToIgnoreCase("bar") > 0); // should be: "bar".compareToIgnoreCase(x) < 0
    +    }
    +    boolean bar(String x) {
    +        return x.contentEquals("bar"); // should be "bar".contentEquals(x)
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/LiteralsFirstInComparisons" />
    +
    + +

    LooseCoupling

    + +

    Since: PMD 0.7

    + +

    Priority: Medium (3)

    + +

    The use of implementation types (i.e., HashSet) as object references limits your ability to use alternate +implementations in the future as requirements change. Whenever available, referencing objects +by their interface types (i.e, Set) provides much more flexibility.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.LooseCouplingRule

    + +

    Example(s):

    + +
    import java.util.ArrayList;
    +import java.util.HashSet;
    +
    +public class Bar {
    +    // sub-optimal approach
    +    private ArrayList<SomeType> list = new ArrayList<>();
    +
    +    public HashSet<SomeType> getFoo() {
    +        return new HashSet<SomeType>();
    +    }
    +
    +    // preferred approach
    +    private List<SomeType> list = new ArrayList<>();
    +
    +    public Set<SomeType> getFoo() {
    +        return new HashSet<SomeType>();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/LooseCoupling" />
    +
    + +

    MethodReturnsInternalArray

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    Exposing internal arrays to the caller violates object encapsulation since elements can be +removed or replaced outside of the object that owns it. It is safer to return a copy of the array.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.MethodReturnsInternalArrayRule

    + +

    Example(s):

    + +
    public class SecureSystem {
    +    UserData [] ud;
    +    public UserData [] getUserData() {
    +        // Don't return directly the internal array, return a copy
    +        return ud;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/MethodReturnsInternalArray" />
    +
    + +

    MissingOverride

    + +

    Since: PMD 6.2.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.5

    + +

    Annotating overridden methods with @Override ensures at compile time that +the method really overrides one, which helps refactoring and clarifies intent.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.MissingOverrideRule

    + +

    Example(s):

    + +
    public class Foo implements Runnable {
    +                // This method is overridden, and should have an @Override annotation
    +                public void run() {
    +
    +                }
    +            }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/MissingOverride" />
    +
    + +

    OneDeclarationPerLine

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Java allows the use of several variables declaration of the same type on one line. However, it +can lead to quite messy code. This rule looks for several declarations on the same line.

    + +

    This rule is defined by the following XPath expression:

    +
    //LocalVariableDeclaration
    +   [not(parent::ForInit)]
    +   [count(VariableDeclarator) > 1]
    +   [$strictMode or count(distinct-values(VariableDeclarator/@BeginLine)) != count(VariableDeclarator)]
    +|
    +//FieldDeclaration
    +   [count(VariableDeclarator) > 1]
    +   [$strictMode or count(distinct-values(VariableDeclarator/@BeginLine)) != count(VariableDeclarator)]
    +
    + +

    Example(s):

    + +
    String name;            // separate declarations
    +String lastname;
    +
    +String name, lastname;  // combined declaration, a violation
    +
    +String name,
    +       lastname;        // combined declaration on multiple lines, no violation by default.
    +                        // Set property strictMode to true to mark this as violation.
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    strictModefalseIf true, mark combined declaration even if the declarations are on separate lines.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/OneDeclarationPerLine" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/OneDeclarationPerLine">
    +    <properties>
    +        <property name="strictMode" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    PositionLiteralsFirstInCaseInsensitiveComparisons

    + +

    Deprecated

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Position literals first in comparisons, if the second argument is null then NullPointerExceptions +can be avoided, they will just return false.

    + +

    This rule is replaced by the more general rule LiteralsFirstInComparisons.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.PositionLiteralsFirstInCaseInsensitiveComparisonsRule

    + +

    Example(s):

    + +
    class Foo {
    +  boolean bar(String x) {
    +    return x.equalsIgnoreCase("2"); // should be "2".equalsIgnoreCase(x)
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/PositionLiteralsFirstInCaseInsensitiveComparisons" />
    +
    + +

    PositionLiteralsFirstInComparisons

    + +

    Deprecated

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    Position literals first in comparisons, if the second argument is null then NullPointerExceptions +can be avoided, they will just return false.

    + +

    This rule is replaced by the more general rule LiteralsFirstInComparisons.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.PositionLiteralsFirstInComparisonsRule

    + +

    Example(s):

    + +
    class Foo {
    +  boolean bar(String x) {
    +    return x.equals("2"); // should be "2".equals(x)
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/PositionLiteralsFirstInComparisons" />
    +
    + +

    PreserveStackTrace

    + +

    Since: PMD 3.7

    + +

    Priority: Medium (3)

    + +

    Throwing a new exception from a catch block without passing the original exception into the +new exception will cause the original stack trace to be lost making it difficult to debug +effectively.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.PreserveStackTraceRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void good() {
    +        try{
    +            Integer.parseInt("a");
    +        } catch (Exception e) {
    +            throw new Exception(e); // first possibility to create exception chain
    +        }
    +        try {
    +            Integer.parseInt("a");
    +        } catch (Exception e) {
    +            throw (IllegalStateException)new IllegalStateException().initCause(e); // second possibility to create exception chain.
    +        }
    +    }
    +    void bad() {
    +        try{
    +            Integer.parseInt("a");
    +        } catch (Exception e) {
    +            throw new Exception(e.getMessage());
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/PreserveStackTrace" />
    +
    + +

    ReplaceEnumerationWithIterator

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Consider replacing Enumeration usages with the newer java.util.Iterator

    + +

    This rule is defined by the following XPath expression:

    +
    //ImplementsList/ClassOrInterfaceType[@Image='Enumeration']
    +
    + +

    Example(s):

    + +
    public class Foo implements Enumeration {
    +    private int x = 42;
    +    public boolean hasMoreElements() {
    +        return true;
    +    }
    +    public Object nextElement() {
    +        return String.valueOf(i++);
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ReplaceEnumerationWithIterator" />
    +
    + +

    ReplaceHashtableWithMap

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Consider replacing Hashtable usage with the newer java.util.Map if thread safety is not required.

    + +

    This rule is defined by the following XPath expression:

    +
    //Type/ReferenceType/ClassOrInterfaceType[@Image='Hashtable']
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        Hashtable h = new Hashtable();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ReplaceHashtableWithMap" />
    +
    + +

    ReplaceVectorWithList

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Consider replacing Vector usages with the newer java.util.ArrayList if expensive thread-safe operations are not required.

    + +

    This rule is defined by the following XPath expression:

    +
    //Type/ReferenceType/ClassOrInterfaceType[@Image='Vector']
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        Vector v = new Vector();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/ReplaceVectorWithList" />
    +
    + +

    SwitchStmtsShouldHaveDefault

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    All switch statements should include a default option to catch any unspecified values.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement[@DefaultCase = false() and @ExhaustiveEnumSwitch = false()]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    int x = 2;
    +    switch (x) {
    +      case 1: int j = 6;
    +      case 2: int j = 8;
    +          // missing default: here
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/SwitchStmtsShouldHaveDefault" />
    +
    + +

    SystemPrintln

    + +

    Since: PMD 2.1

    + +

    Priority: Medium High (2)

    + +

    References to System.(out|err).print are usually intended for debugging purposes and can remain in +the codebase even in production code. By using a logger one can enable/disable this behaviour at +will (and by priority) and avoid clogging the Standard out log.

    + +

    This rule is defined by the following XPath expression:

    +
    //Name[
    +    starts-with(@Image, 'System.out.print')
    +    or
    +    starts-with(@Image, 'System.err.print')
    +    ]
    +
    + +

    Example(s):

    + +
    class Foo{
    +    Logger log = Logger.getLogger(Foo.class.getName());
    +    public void testA () {
    +        System.out.println("Entering test");
    +        // Better use this
    +        log.fine("Entering test");
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/SystemPrintln" />
    +
    + +

    UnusedAssignment

    + +

    Since: PMD 6.26.0

    + +

    Priority: Medium (3)

    + +

    Reports assignments to variables that are never used before the variable is overwritten, +or goes out of scope. Unused assignments are those for which

    +
      +
    1. The variable is never read after the assignment, or
    2. +
    3. The assigned value is always overwritten by other assignments before the next read of +the variable.
    4. +
    + +

    The rule doesn’t consider assignments to fields except for those of this in a constructor, +or static fields of the current class in static initializers.

    + +

    The rule may be suppressed with the standard @SuppressWarnings("unused") tag.

    + +

    The rule subsumes UnusedLocalVariable, and UnusedFormalParameter. +Those violations are filtered +out by default, in case you already have enabled those rules, but may be enabled with the property +reportUnusedVariables. Variables whose name starts with ignored are filtered out, as +is standard practice for exceptions.

    + +

    Limitations:

    +
      +
    • The rule currently cannot know which method calls throw exceptions, or which exceptions they throw. +In the body of a try block, every method or constructor call is assumed to throw. This may cause false-negatives. +The only other language construct that is assumed to throw is the throw statement, in particular, +things like assert statements, or NullPointerExceptions on dereference are ignored.
    • +
    • The rule cannot resolve assignments across constructors, when they’re called with the special +this(...) syntax. This may cause false-negatives.
    • +
    + +

    Both of those limitations may be partly relaxed in PMD 7.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedAssignmentRule

    + +

    Example(s):

    + +
    class A {
    +                // this field initializer is redundant,
    +                // it is always overwritten in the constructor
    +                int f = 1;
    +
    +                A(int f) {
    +                    this.f = f;
    +                }
    +            }
    +
    + +
    class B {
    +
    +    int method(int i, int j) {
    +        // this initializer is redundant,
    +        // it is overwritten in all branches of the `if`
    +        int k = 0;
    +
    +        // Both the assignments to k are unused, because k is
    +        // not read after the if/else
    +        // This may hide a bug: the programmer probably wanted to return k
    +        if (i < j)
    +            k = i;
    +        else
    +            k = j;
    +
    +        return j;
    +    }
    +
    +}
    +
    + +
    class C {
    +
    +    int method() {
    +        int i = 0;
    +
    +        checkSomething(++i);
    +        checkSomething(++i);
    +        checkSomething(++i);
    +        checkSomething(++i);
    +
    +        // That last increment is not reported unless
    +        // the property `checkUnusedPrefixIncrement` is
    +        // set to `true`
    +        // Technically it could be written (i+1), but it
    +        // is not very important
    +    }
    +
    +}
    +
    + +
    class C {
    +
    +    // variables that are truly unused (at most assigned to, but never accessed)
    +    // are only reported if property `reportUnusedVariables` is true
    +
    +    void method(int param) { } // for example this method parameter
    +
    +    // even then, you can suppress the violation with an annotation:
    +
    +    void method(@SuppressWarning("unused") int param) { } // no violation, even if `reportUnusedVariables` is true
    +
    +    // For catch parameters, or for resources which don't need to be used explicitly,
    +    // you can give a name that starts with "ignored" to ignore such warnings
    +
    +    {
    +        try (Something ignored = Something.create()) {
    +            // even if ignored is unused, it won't be flagged
    +            // its purpose might be to side-effect in the create/close routines
    +
    +        } catch (Exception e) { // this is unused and will cause a warning if `reportUnusedVariables` is true
    +            // you should choose a name that starts with "ignored"
    +            return;
    +        }
    +    }
    +
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkUnusedPrefixIncrementfalseReport expressions like ++i that may be replaced with (i + 1)no
    reportUnusedVariablesfalseReport variables that are only initialized, and never read at all. The rule UnusedVariable already cares for that, but you can enable it if neededno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedAssignment" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedAssignment">
    +    <properties>
    +        <property name="checkUnusedPrefixIncrement" value="false" />
    +        <property name="reportUnusedVariables" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UnusedFormalParameter

    + +

    Since: PMD 0.8

    + +

    Priority: Medium (3)

    + +

    Avoid passing parameters to methods or constructors without actually referencing them in the method body. +Removing unused formal parameters from public methods could cause a ripple effect through the code base. +Hence, by default, this rule only considers private methods. To include non-private methods, set the +checkAll property to true.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedFormalParameterRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private void bar(String howdy) {
    +        // howdy is not used
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkAllfalseCheck all methods, including non-private onesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedFormalParameter">
    +    <properties>
    +        <property name="checkAll" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UnusedImports

    + +

    Since: PMD 1.0

    + +

    Priority: Medium Low (4)

    + +

    Avoid unused import statements to prevent unwanted dependencies. +This rule will also find unused on demand imports, i.e. import com.foo.*.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedImportsRule

    + +

    Example(s):

    + +
    import java.io.File;  // not referenced or required
    +import java.util.*;   // not referenced or required
    +
    +public class Foo {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedImports" />
    +
    + +

    UnusedLocalVariable

    + +

    Since: PMD 0.1

    + +

    Priority: Medium (3)

    + +

    Detects when a local variable is declared and/or assigned, but not used.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedLocalVariableRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void doSomething() {
    +        int i = 5; // Unused
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
    +
    + +

    UnusedPrivateField

    + +

    Since: PMD 0.1

    + +

    Priority: Medium (3)

    + +

    Detects when a private field is declared and/or assigned a value, but not used.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedPrivateFieldRule

    + +

    Example(s):

    + +
    public class Something {
    +    private static int FOO = 2; // Unused
    +    private int i = 5; // Unused
    +    private int j = 6;
    +    public int addOne() {
    +        return j++;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.Setter | lombok.Getter | lombok.Builder | lombok.Data | lombok.RequiredArgsConstructor | lombok.AllArgsConstructor | lombok.Value | lombok.NoArgsConstructor | java.lang.Deprecated | javafx.fxml.FXML | lombok.experimental.Delegate | lombok.EqualsAndHashCodeFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedPrivateField" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedPrivateField">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.Setter|lombok.Getter|lombok.Builder|lombok.Data|lombok.RequiredArgsConstructor|lombok.AllArgsConstructor|lombok.Value|lombok.NoArgsConstructor|java.lang.Deprecated|javafx.fxml.FXML|lombok.experimental.Delegate|lombok.EqualsAndHashCode" />
    +    </properties>
    +</rule>
    +
    + +

    UnusedPrivateMethod

    + +

    Since: PMD 0.7

    + +

    Priority: Medium (3)

    + +

    Unused Private Method detects when a private method is declared but is unused.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedPrivateMethodRule

    + +

    Example(s):

    + +
    public class Something {
    +    private void foo() {} // unused
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationsjava.lang.DeprecatedFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod">
    +    <properties>
    +        <property name="ignoredAnnotations" value="java.lang.Deprecated" />
    +    </properties>
    +</rule>
    +
    + +

    UseAssertEqualsInsteadOfAssertTrue

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    This rule detects JUnit assertions in object equality. These assertions should be made by more specific methods, like assertEquals.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    pmd-java:typeIs('junit.framework.TestCase')
    +    or .//MarkerAnnotation/Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        ]
    +    ]
    +//PrimaryExpression[
    +    PrimaryPrefix/Name[@Image = 'assertTrue']
    +][
    +    PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
    +        [ends-with(@Image, '.equals')]
    +]
    +
    + +

    Example(s):

    + +
    public class FooTest extends TestCase {
    +    void testCode() {
    +        Object a, b;
    +        assertTrue(a.equals(b));                    // bad usage
    +        assertEquals("a should equals b", a, b);    // good usage
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseAssertEqualsInsteadOfAssertTrue" />
    +
    + +

    UseAssertNullInsteadOfAssertTrue

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    This rule detects JUnit assertions in object references equality. These assertions should be made by +more specific methods, like assertNull, assertNotNull.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    pmd-java:typeIs('junit.framework.TestCase')
    +    or .//MarkerAnnotation/Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        ]
    +    ]
    +//PrimaryExpression[
    +    PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
    +][
    +    PrimarySuffix/Arguments/ArgumentList[
    +        Expression/EqualityExpression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    public class FooTest extends TestCase {
    +    void testCode() {
    +        Object a = doSomething();
    +        assertTrue(a==null);    // bad usage
    +        assertNull(a);          // good usage
    +        assertTrue(a != null);  // bad usage
    +        assertNotNull(a);       // good usage
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseAssertNullInsteadOfAssertTrue" />
    +
    + +

    UseAssertSameInsteadOfAssertTrue

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    This rule detects JUnit assertions in object references equality. These assertions should be made +by more specific methods, like assertSame, assertNotSame.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    pmd-java:typeIs('junit.framework.TestCase')
    +    or .//MarkerAnnotation/Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        ]
    +    ]
    +//PrimaryExpression[
    +    PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
    +]
    +[
    +    PrimarySuffix/Arguments/ArgumentList/Expression/EqualityExpression
    +        [not(.//NullLiteral)]
    +]
    +
    + +

    Example(s):

    + +
    public class FooTest extends TestCase {
    +    void testCode() {
    +        Object a, b;
    +        assertTrue(a == b); // bad usage
    +        assertSame(a, b);   // good usage
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseAssertSameInsteadOfAssertTrue" />
    +
    + +

    UseAssertTrueInsteadOfAssertEquals

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    When asserting a value is the same as a literal or Boxed boolean, use assertTrue/assertFalse, instead of assertEquals.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression[PrimaryPrefix/Name[@Image = 'assertEquals']]
    +[
    +  PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
    +  or
    +  PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix
    +  /Name[(@Image = 'Boolean.TRUE' or @Image = 'Boolean.FALSE')]
    +]
    +
    + +

    Example(s):

    + +
    public class MyTestCase extends TestCase {
    +    public void testMyCase() {
    +        boolean myVar = true;
    +        // Ok
    +        assertTrue("myVar is true", myVar);
    +        // Bad
    +        assertEquals("myVar is true", true, myVar);
    +        // Bad
    +        assertEquals("myVar is false", false, myVar);
    +        // Bad
    +        assertEquals("myVar is true", Boolean.TRUE, myVar);
    +        // Bad
    +        assertEquals("myVar is false", Boolean.FALSE, myVar);
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseAssertTrueInsteadOfAssertEquals" />
    +
    + +

    UseCollectionIsEmpty

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    The isEmpty() method on java.util.Collection is provided to determine if a collection has any elements. +Comparing the value of size() to 0 does not convey intent as well as the isEmpty() method.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.bestpractices.UseCollectionIsEmptyRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void good() {
    +        List foo = getList();
    +        if (foo.isEmpty()) {
    +            // blah
    +        }
    +    }
    +
    +    void bad() {
    +        List foo = getList();
    +        if (foo.size() == 0) {
    +            // blah
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty" />
    +
    + +

    UseTryWithResources

    + +

    Since: PMD 6.12.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.7

    + +

    Java 7 introduced the try-with-resources statement. This statement ensures that each resource is closed at the end +of the statement. It avoids the need of explicitly closing the resources in a finally block. Additionally exceptions +are better handled: If an exception occurred both in the try block and finally block, then the exception from +the try block was suppressed. With the try-with-resources statement, the exception thrown from the try-block is +preserved.

    + +

    This rule is defined by the following XPath expression:

    +
    //TryStatement[FinallyStatement//Name[
    +    tokenize(@Image, '\.')[last()] = $closeMethods
    +][
    +    pmd-java:typeIs('java.lang.AutoCloseable')
    +    or
    +    ../../PrimarySuffix/Arguments//PrimaryPrefix[pmd-java:typeIs('java.lang.AutoCloseable')]
    +]]
    +
    + +

    Example(s):

    + +
    public class TryWithResources {
    +    public void run() {
    +        InputStream in = null;
    +        try {
    +            in = openInputStream();
    +            int i = in.read();
    +        } catch (IOException e) {
    +            e.printStackTrace();
    +        } finally {
    +            try {
    +                if (in != null) in.close();
    +            } catch (IOException ignored) {
    +                // ignored
    +            }
    +        }
    +
    +        // better use try-with-resources
    +        try (InputStream in2 = openInputStream()) {
    +            int i = in2.read();
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    closeMethodsclose , closeQuietlyMethod names in finally block, which trigger this ruleyes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseTryWithResources" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/bestpractices.xml/UseTryWithResources">
    +    <properties>
    +        <property name="closeMethods" value="close,closeQuietly" />
    +    </properties>
    +</rule>
    +
    + +

    UseVarargs

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Minimum Language Version: Java 1.5

    + +

    Java 5 introduced the varargs parameter declaration for methods and constructors. This syntactic +sugar provides flexibility for users of these methods and constructors, allowing them to avoid +having to deal with the creation of an array.

    + +

    This rule is defined by the following XPath expression:

    +
    //FormalParameters/FormalParameter
    +    [position()=last()]
    +    [VariableDeclaratorId/@ArrayType=true()]
    +    [@Varargs=false()]
    +    [not (./Type[@ArrayType=true()]/ReferenceType[PrimitiveType[@Image='byte']])]
    +    [not (./Type/ReferenceType[ClassOrInterfaceType[@Image='Byte']])]
    +    [not (./Type/PrimitiveType[@Image='byte'])]
    +    [not (ancestor::MethodDeclaration/preceding-sibling::Annotation/*/Name[@Image='Override'])]
    +    [not(
    +         ancestor::MethodDeclaration
    +            [    @Public=true()
    +             and @Static=true()
    +             and child::ResultType[@Void=true()]
    +             and @Name = 'main'
    +             and @Arity = 1
    +            ]
    +         (: Type of the formal parameter here. :)
    +         and pmd-java:typeIs('java.lang.String[]')
    +    )]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void foo(String s, Object[] args) {
    +        // Do something here...
    +    }
    +
    +    public void bar(String s, Object... args) {
    +        // Ahh, varargs tastes much better...
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/UseVarargs" />
    +
    + +

    WhileLoopWithLiteralBoolean

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    do {} while (true); requires reading the end of the statement before it is +apparent that it loops forever, whereas while (true) {} is easier to understand.

    + +

    do {} while (false); is redundant, and if an inner variable scope is required, +a block {} is sufficient.

    + +

    while (false) {} will never execute the block and can be removed in its entirety.

    + +

    This rule is defined by the following XPath expression:

    +
    //DoStatement[Expression/PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral] |
    +//WhileStatement[Expression/PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral[@True = false()]]
    +
    + +

    Example(s):

    + +
    public class Example {
    +  {
    +    while (true) { } // allowed
    +    while (false) { } // disallowed
    +    do { } while (true); // disallowed
    +    do { } while (false); // disallowed
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_codestyle.html b/pmd_rules_java_codestyle.html new file mode 100644 index 0000000000..518ef0b415 --- /dev/null +++ b/pmd_rules_java_codestyle.html @@ -0,0 +1,4654 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AbstractNaming

    + +

    Deprecated

    + +

    Since: PMD 1.4

    + +

    Priority: Medium (3)

    + +

    Abstract classes should be named ‘AbstractXXX’.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by ClassNamingConventions.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    + [@Abstract= true() and @Interface= false()]
    + [not (starts-with(@SimpleName,'Abstract'))]
    +|
    +//ClassOrInterfaceDeclaration
    + [@Abstract= false()]
    + [$strict= true()]
    + [starts-with(@SimpleName, 'Abstract')]
    +
    + +

    Example(s):

    + +
    public abstract class Foo { // should be AbstractFoo
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    stricttrueAlso flag classes, that are named Abstract, but are not abstract.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/AbstractNaming" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/AbstractNaming">
    +    <properties>
    +        <property name="strict" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    AtLeastOneConstructor

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    Each non-static class should declare at least one constructor. +Classes with solely static members are ignored, refer to UseUtilityClassRule to detect those.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.AtLeastOneConstructorRule

    + +

    Example(s):

    + +
    public class Foo {
    +   // missing constructor
    +  public void doSomething() { ... }
    +  public void doOtherThing { ... }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.Data | lombok.Value | lombok.Builder | lombok.NoArgsConstructor | lombok.RequiredArgsConstructor | lombok.AllArgsConstructorFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/AtLeastOneConstructor" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/AtLeastOneConstructor">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.Data|lombok.Value|lombok.Builder|lombok.NoArgsConstructor|lombok.RequiredArgsConstructor|lombok.AllArgsConstructor" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidDollarSigns

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    Avoid using dollar signs in variable/method/class/interface names.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.AvoidDollarSignsRule

    + +

    Example(s):

    + +
    public class Fo$o {  // not a recommended name
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidDollarSigns" />
    +
    + +

    AvoidFinalLocalVariable

    + +

    Deprecated

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Avoid using final local variables, turn them into fields.

    + +

    Note that this is a controversial rule which is merely useful to enforce a certain code style +(which is contradictory to good coding practices in most of the cases it’s applied to) and +avoid local literals being declared in a scope smaller than the class.

    + +

    Also note, that this rule is the opposite of LocalVariableCouldBeFinal. +Having both rules enabled results in contradictory violations being reported.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. There is no replacement planned. +If the goal is to avoid defining constants in a scope smaller than the class, then the rule +AvoidDuplicateLiterals should be used instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //LocalVariableDeclaration[
    +  @Final = true()
    +  and not(../../ForStatement)
    +  and
    +  (
    +    (count(VariableDeclarator/VariableInitializer) = 0)
    +    or
    +    (VariableDeclarator/VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/Literal)
    +  )
    +]
    +
    + +

    Example(s):

    + +
    public class MyClass {
    +    public void foo() {
    +        final String finalLocalVariable;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidFinalLocalVariable" />
    +
    + +

    AvoidPrefixingMethodParameters

    + +

    Deprecated

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Prefixing parameters by ‘in’ or ‘out’ pollutes the name of the parameters and reduces code readability. +To indicate whether or not a parameter will be modify in a method, its better to document method +behavior with Javadoc.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule FormalParameterNamingConventions.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration/MethodDeclarator/FormalParameters/FormalParameter/VariableDeclaratorId[
    +        pmd:matches(@Name,'^in[A-Z].*','^out[A-Z].*','^in$','^out$')
    +]
    +
    + +

    Example(s):

    + +
    // Not really clear
    +public class Foo {
    +  public void bar(
    +      int inLeftOperand,
    +      Result outRightOperand) {
    +      outRightOperand.setValue(inLeftOperand * outRightOperand.getValue());
    +  }
    +}
    +
    + +
    // Far more useful
    +public class Foo {
    +  /**
    +   *
    +   * @param leftOperand, (purpose), not modified by method.
    +   * @param rightOperand (purpose), will be modified by the method: contains the result.
    +   */
    +  public void bar(
    +        int leftOperand,
    +        Result rightOperand) {
    +        rightOperand.setValue(leftOperand * rightOperand.getValue());
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidPrefixingMethodParameters" />
    +
    + +

    AvoidProtectedFieldInFinalClass

    + +

    Since: PMD 2.1

    + +

    Priority: Medium (3)

    + +

    Do not use protected fields in final classes since they cannot be subclassed. +Clarify your intent by using private or package access modifiers instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Final= true()]
    +/ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration
    +/FieldDeclaration[@Protected= true()]
    +
    + +

    Example(s):

    + +
    public final class Bar {
    +  private int x;
    +  protected int y;  // bar cannot be subclassed, so is y really private or package visible?
    +  Bar() {}
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass" />
    +
    + +

    AvoidProtectedMethodInFinalClassNotExtending

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Do not use protected methods in most final classes since they cannot be subclassed. This should +only be allowed in final classes that extend other classes with protected methods (whose +visibility cannot be reduced). Clarify your intent by using private or package access modifiers instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Final= true() and not(ExtendsList)]
    +/ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration
    +/MethodDeclaration[@Protected=true() and @Name != 'finalize']
    +
    + +

    Example(s):

    + +
    public final class Foo {
    +  private int bar() {}
    +  protected int baz() {} // Foo cannot be subclassed, and doesn't extend anything, so is baz() really private or package visible?
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidProtectedMethodInFinalClassNotExtending" />
    +
    + +

    AvoidUsingNativeCode

    + +

    Since: PMD 4.1

    + +

    Priority: Medium High (2)

    + +

    Unnecessary reliance on Java Native Interface (JNI) calls directly reduces application portability +and increases the maintenance burden.

    + +

    This rule is defined by the following XPath expression:

    +
    //Name[starts-with(@Image,'System.loadLibrary')]
    +
    + +

    Example(s):

    + +
    public class SomeJNIClass {
    +
    +     public SomeJNIClass() {
    +         System.loadLibrary("nativelib");
    +     }
    +
    +     static {
    +         System.loadLibrary("nativelib");
    +     }
    +
    +     public void invalidCallsInMethod() throws SecurityException, NoSuchMethodException {
    +         System.loadLibrary("nativelib");
    +     }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
    +
    + +

    BooleanGetMethodName

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    Methods that return boolean results should be named as predicate statements to denote this. +I.e, ‘isReady()’, ‘hasValues()’, ‘canCommit()’, ‘willFail()’, etc. Avoid the use of the ‘get’ +prefix for these methods.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration
    +    [starts-with(@Name, 'get')]
    +    [@Arity = 0 or $checkParameterizedMethods = true()]
    +    [
    +        ResultType/Type/PrimitiveType[@Image = 'boolean']
    +        and not(../Annotation//Name[@Image = 'Override'])
    +    ]
    +
    + +

    Example(s):

    + +
    public boolean getFoo();            // bad
    +public boolean isFoo();             // ok
    +public boolean getFoo(boolean bar); // ok, unless checkParameterizedMethods=true
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkParameterizedMethodsfalseCheck parameterized methodsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/BooleanGetMethodName">
    +    <properties>
    +        <property name="checkParameterizedMethods" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    CallSuperInConstructor

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    It is a good practice to call super() in a constructor. If super() is not called but +another constructor (such as an overloaded constructor) is called, this rule will not report it.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[ExtendsList/*]
    +/ClassOrInterfaceBody
    + /ClassOrInterfaceBodyDeclaration
    + /ConstructorDeclaration[ not(.//ExplicitConstructorInvocation) ]
    +
    + +

    Example(s):

    + +
    public class Foo extends Bar{
    +  public Foo() {
    +   // call the constructor of Bar
    +   super();
    +  }
    + public Foo(int code) {
    +  // do something with code
    +   this();
    +   // no problem with this
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/CallSuperInConstructor" />
    +
    + +

    ClassNamingConventions

    + +

    Since: PMD 1.2

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for type declarations. This rule reports +type declarations which do not match the regex that applies to their +specific kind (e.g. enum or interface). Each regex can be configured through +properties.

    + +

    By default this rule uses the standard Java naming convention (Pascal case), +and reports utility class names not ending with ‘Util’.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.ClassNamingConventionsRule

    + +

    Example(s):

    + +
    // This is Pascal case, the recommended naming convention in Java
    +// Note that the default values of this rule don't allow underscores
    +// or accented characters in type names
    +public class FooBar {}
    +
    +// You may want abstract classes to be named 'AbstractXXX',
    +// in which case you can customize the regex for abstract
    +// classes to 'Abstract[A-Z]\w+'
    +public abstract class Thing {}
    +
    +// This class doesn't respect the convention, and will be flagged
    +public class Éléphant {}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    classPattern[A-Z][a-zA-Z0-9]*Regex which applies to concrete class namesno
    abstractClassPattern[A-Z][a-zA-Z0-9]*Regex which applies to abstract class namesno
    interfacePattern[A-Z][a-zA-Z0-9]*Regex which applies to interface namesno
    enumPattern[A-Z][a-zA-Z0-9]*Regex which applies to enum namesno
    annotationPattern[A-Z][a-zA-Z0-9]*Regex which applies to annotation namesno
    utilityClassPattern[A-Z][a-zA-Z0-9]+(Utils?|Helper|Constants)Regex which applies to utility class namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ClassNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ClassNamingConventions">
    +    <properties>
    +        <property name="classPattern" value="[A-Z][a-zA-Z0-9]*" />
    +        <property name="abstractClassPattern" value="[A-Z][a-zA-Z0-9]*" />
    +        <property name="interfacePattern" value="[A-Z][a-zA-Z0-9]*" />
    +        <property name="enumPattern" value="[A-Z][a-zA-Z0-9]*" />
    +        <property name="annotationPattern" value="[A-Z][a-zA-Z0-9]*" />
    +        <property name="utilityClassPattern" value="[A-Z][a-zA-Z0-9]+(Utils?|Helper|Constants)" />
    +    </properties>
    +</rule>
    +
    + +

    CommentDefaultAccessModifier

    + +

    Since: PMD 5.4.0

    + +

    Priority: Medium (3)

    + +

    To avoid mistakes if we want that an Annotation, Class, Enum, Method, Constructor or Field have a default access modifier +we must add a comment at the beginning of it’s declaration. +By default the comment must be /* default */ or /* package */, if you want another, you have to provide a regular expression. +This rule ignores by default all cases that have a @VisibleForTesting annotation. Use the +property "ignoredAnnotations" to customize the recognized annotations.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.CommentDefaultAccessModifierRule

    + +

    Example(s):

    + +
    public class Foo {
    +    final String stringValue = "some string";
    +    String getString() {
    +       return stringValue;
    +    }
    +
    +    class NestedFoo {
    +    }
    +}
    +
    +// should be
    +public class Foo {
    +    /* default */ final String stringValue = "some string";
    +    /* default */ String getString() {
    +       return stringValue;
    +    }
    +
    +    /* default */ class NestedFoo {
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationscom.google.common.annotations.VisibleForTesting | android.support.annotation.VisibleForTestingFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    regex\/\*\s+(default|package)\s+\*\/Regular expressionno
    checkTopLevelTypesfalseCheck for default access modifier in top-level classes, annotations, and enumsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier">
    +    <properties>
    +        <property name="ignoredAnnotations" value="com.google.common.annotations.VisibleForTesting|android.support.annotation.VisibleForTesting" />
    +        <property name="regex" value="\/\*\s+(default|package)\s+\*\/" />
    +        <property name="checkTopLevelTypes" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    ConfusingTernary

    + +

    Since: PMD 1.9

    + +

    Priority: Medium (3)

    + +

    Avoid negation within an "if" expression with an "else" clause. For example, rephrase: +if (x != y) diff(); else same(); as: if (x == y) same(); else diff();.

    + +

    Most "if (x != y)" cases without an "else" are often return cases, so consistent use of this +rule makes the code easier to read. Also, this resolves trivial ordering problems, such +as "does the error case go first?" or "does the common case go first?".

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.ConfusingTernaryRule

    + +

    Example(s):

    + +
    boolean bar(int x, int y) {
    +    return (x != y) ? diff : same;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreElseIffalseIgnore conditions with an else-if caseno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ConfusingTernary" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ConfusingTernary">
    +    <properties>
    +        <property name="ignoreElseIf" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    ControlStatementBraces

    + +

    Since: PMD 6.2.0

    + +

    Priority: Medium (3)

    + +

    Enforce a policy for braces on control statements. It is recommended to use braces on ‘if … else’ +statements and loop statements, even if they are optional. This usually makes the code clearer, and +helps prepare the future when you need to add another statement. That said, this rule lets you control +which statements are required to have braces via properties.

    + +

    From 6.2.0 on, this rule supersedes WhileLoopMustUseBraces, ForLoopMustUseBraces, IfStmtMustUseBraces, +and IfElseStmtMustUseBraces.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileStatement[$checkWhileStmt and not(Statement/Block) and not($allowEmptyLoop and Statement/EmptyStatement)]
    +                |
    +                //ForStatement[$checkForStmt and not(Statement/Block) and not($allowEmptyLoop and Statement/EmptyStatement)]
    +                |
    +                //DoStatement[$checkDoWhileStmt and not(Statement/Block) and not($allowEmptyLoop and Statement/EmptyStatement)]
    +                |
    +                (: The violation is reported on the sub statement -- not the if statement :)
    +                //Statement[$checkIfElseStmt and parent::IfStatement and not(child::Block or child::IfStatement)
    +                            (: Whitelists single if statements :)
    +                            and ($checkSingleIfStmt
    +                                 (: Inside this not(...) is the definition of a "single if statement" :)
    +                                 or not(count(../Statement) = 1 (: No else stmt :)
    +                                        (: Not the last branch of an 'if ... else if' chain :)
    +                                        and not(parent::IfStatement[parent::Statement[parent::IfStatement]])))]
    +                |
    +                (: Reports case labels if one of their subordinate statements is not braced :)
    +                //SwitchLabel[$checkCaseStmt]
    +                             [count(following-sibling::BlockStatement except following-sibling::SwitchLabel[1]/following-sibling::BlockStatement) > 1
    +                              or (some $stmt (: in only the block statements until the next label :)
    +                                  in following-sibling::BlockStatement except following-sibling::SwitchLabel[1]/following-sibling::BlockStatement
    +                                  satisfies not($stmt/Statement/Block))]
    +
    + +

    Example(s):

    + +
    while (true)    // not recommended
    +  x++;
    +
    +while (true) {  // preferred approach
    +  x++;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkIfElseStmttrueRequire that ‘if … else’ statements use bracesno
    checkSingleIfStmttrueRequire that ‘if’ statements with a single branch use bracesno
    checkWhileStmttrueRequire that ‘while’ loops use bracesno
    checkForStmttrueRequire that ‘for’ loops should use bracesno
    checkDoWhileStmttrueRequire that ‘do … while’ loops use bracesno
    checkCaseStmtfalseRequire that cases of a switch have bracesno
    allowEmptyLoopfalseAllow loops with an empty statement, e.g. ‘while(true);’no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ControlStatementBraces" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ControlStatementBraces">
    +    <properties>
    +        <property name="checkIfElseStmt" value="true" />
    +        <property name="checkSingleIfStmt" value="true" />
    +        <property name="checkWhileStmt" value="true" />
    +        <property name="checkForStmt" value="true" />
    +        <property name="checkDoWhileStmt" value="true" />
    +        <property name="checkCaseStmt" value="false" />
    +        <property name="allowEmptyLoop" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    DefaultPackage

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Use explicit scoping instead of accidental usage of default package private level. +The rule allows methods and fields annotated with Guava’s @VisibleForTesting and JUnit 5’s annotations.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Interface= false()]
    +/ClassOrInterfaceBody
    +/ClassOrInterfaceBodyDeclaration
    +[not(Annotation//Name[
    +    pmd-java:typeIs('org.junit.jupiter.api.Test')
    +    or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +    or pmd-java:typeIs('org.junit.jupiter.api.ParameterizedTest')
    +    or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +    or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +    or pmd-java:typeIs('org.junit.jupiter.api.BeforeAll')
    +    or pmd-java:typeIs('org.junit.jupiter.api.AfterAll')
    +    or pmd-java:typeIs('org.junit.jupiter.api.BeforeEach')
    +    or pmd-java:typeIs('org.junit.jupiter.api.AfterEach')
    +    or ends-with(@Image, 'VisibleForTesting')])]
    +[
    +FieldDeclaration[@PackagePrivate= true()]
    +or MethodDeclaration[@PackagePrivate= true()]
    +]
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/DefaultPackage" />
    +
    + +

    DontImportJavaLang

    + +

    Since: PMD 0.5

    + +

    Priority: Medium Low (4)

    + +

    Avoid importing anything from the package ‘java.lang’. These classes are automatically imported (JLS 7.5.3).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.DontImportJavaLangRule

    + +

    Example(s):

    + +
    import java.lang.String;    // this is unnecessary
    +
    +public class Foo {}
    +
    +// --- in another source code file...
    +
    +import java.lang.*;         // this is bad
    +
    +public class Foo {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/DontImportJavaLang" />
    +
    + +

    DuplicateImports

    + +

    Since: PMD 0.5

    + +

    Priority: Medium Low (4)

    + +

    Duplicate or overlapping import statements should be avoided.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.DuplicateImportsRule

    + +

    Example(s):

    + +
    import java.lang.String;
    +import java.lang.*;
    +public class Foo {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/DuplicateImports" />
    +
    + +

    EmptyMethodInAbstractClassShouldBeAbstract

    + +

    Since: PMD 4.1

    + +

    Priority: High (1)

    + +

    Empty or auto-generated methods in an abstract class should be tagged as abstract. This helps to remove their inapproprate +usage by developers who should be implementing their own versions in the concrete subclasses.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Abstract = true()]
    +    /ClassOrInterfaceBody
    +    /ClassOrInterfaceBodyDeclaration
    +    /MethodDeclaration[@Abstract = false() and @Native = false()]
    +    [
    +        ( boolean(./Block[count(./BlockStatement) =  1]/BlockStatement/Statement/ReturnStatement/Expression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral) = true() )
    +        or
    +        ( boolean(./Block[count(./BlockStatement) =  1]/BlockStatement/Statement/ReturnStatement/Expression/PrimaryExpression/PrimaryPrefix/Literal[@Image = '0']) = true() )
    +        or
    +        ( boolean(./Block[count(./BlockStatement) =  1]/BlockStatement/Statement/ReturnStatement/Expression/PrimaryExpression/PrimaryPrefix/Literal[string-length(@Image) = 2]) = true() )
    +        or
    +        (./Block[count(./BlockStatement) =  1]/BlockStatement/Statement/EmptyStatement)
    +        or
    +        ( not (./Block/*) )
    +    ]
    +
    + +

    Example(s):

    + +
    public abstract class ShouldBeAbstract {
    +    public Object couldBeAbstract() {
    +        // Should be abstract method ?
    +        return null;
    +    }
    +
    +    public void couldBeAbstract() {
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract" />
    +
    + +

    ExtendsObject

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    No need to explicitly extend Object.

    + +

    This rule is defined by the following XPath expression:

    +
    //ExtendsList/ClassOrInterfaceType[@Image='Object' or @Image='java.lang.Object']
    +
    + +

    Example(s):

    + +
    public class Foo extends Object {     // not required
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/ExtendsObject" />
    +
    + +

    FieldDeclarationsShouldBeAtStartOfClass

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Fields should be declared at the top of the class, before any method declarations, constructors, initializers or inner classes.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.FieldDeclarationsShouldBeAtStartOfClassRule

    + +

    Example(s):

    + +
    public class HelloWorldBean {
    +
    +  // Field declared before methods / inner classes - OK
    +  private String _thing;
    +
    +  public String getMessage() {
    +    return "Hello World!";
    +  }
    +
    +  // Field declared after methods / inner classes - avoid this
    +  private String _fieldInWrongLocation;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreEnumDeclarationstrueIgnore Enum Declarations that precede fields.no
    ignoreAnonymousClassDeclarationstrueIgnore Field Declarations, that are initialized with anonymous class declarationsno
    ignoreInterfaceDeclarationsfalseIgnore Interface Declarations that precede fields.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass">
    +    <properties>
    +        <property name="ignoreEnumDeclarations" value="true" />
    +        <property name="ignoreAnonymousClassDeclarations" value="true" />
    +        <property name="ignoreInterfaceDeclarations" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    FieldNamingConventions

    + +

    Since: PMD 6.7.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for field declarations. This rule reports variable declarations +which do not match the regex that applies to their specific kind —e.g. constants (static final), +enum constant, final field. Each regex can be configured through properties.

    + +

    By default this rule uses the standard Java naming convention (Camel case), and uses the ALL_UPPER +convention for constants and enum constants.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.FieldNamingConventionsRule

    + +

    Example(s):

    + +
    class Foo {
    +                int myField = 1; // This is in camel case, so it's ok
    +                int my_Field = 1; // This contains an underscore, it's not ok by default
    +                                  // but you may allow it, or even require the "my_" prefix
    +
    +                final int FinalField = 1; // you may configure a different convention for final fields,
    +                                          // e.g. here PascalCase: [A-Z][a-zA-Z0-9]*
    +
    +                interface Interface {
    +                    double PI = 3.14; // interface "fields" use the constantPattern property
    +                }
    +
    +                enum AnEnum {
    +                    ORG, NET, COM; // These use a separate property but are set to ALL_UPPER by default
    +                }
    +            }
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    publicConstantPattern[A-Z][A-Z_0-9]*Regex which applies to public constant namesno
    constantPattern[A-Z][A-Z_0-9]*Regex which applies to non-public static final field namesno
    enumConstantPattern[A-Z][A-Z_0-9]*Regex which applies to enum constant namesno
    finalFieldPattern[a-z][a-zA-Z0-9]*Regex which applies to final field namesno
    staticFieldPattern[a-z][a-zA-Z0-9]*Regex which applies to static field namesno
    defaultFieldPattern[a-z][a-zA-Z0-9]*Regex which applies to field namesno
    exclusionsserialVersionUID | serialPersistentFieldsNames of fields to whitelist.yes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/FieldNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/FieldNamingConventions">
    +    <properties>
    +        <property name="publicConstantPattern" value="[A-Z][A-Z_0-9]*" />
    +        <property name="constantPattern" value="[A-Z][A-Z_0-9]*" />
    +        <property name="enumConstantPattern" value="[A-Z][A-Z_0-9]*" />
    +        <property name="finalFieldPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="staticFieldPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="defaultFieldPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="exclusions" value="serialVersionUID|serialPersistentFields" />
    +    </properties>
    +</rule>
    +
    + +

    ForLoopShouldBeWhileLoop

    + +

    Since: PMD 1.02

    + +

    Priority: Medium (3)

    + +

    Some for loops can be simplified to while loops, this makes them more concise.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForStatement
    +  [not(LocalVariableDeclaration)]
    +  [not(ForInit)]
    +  [not(ForUpdate)]
    +  [Expression]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        for (;true;) true; // No Init or Update part, may as well be: while (true)
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop" />
    +
    + +

    ForLoopsMustUseBraces

    + +

    Deprecated

    + +

    Since: PMD 0.7

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘for’ statements without using curly braces. If the code formatting or +indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule ControlStatementBraces.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForStatement[not(Statement/Block)]
    +
    + +

    Example(s):

    + +
    for (int i = 0; i < 42; i++)
    +   foo();
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/ForLoopsMustUseBraces" />
    +
    + +

    FormalParameterNamingConventions

    + +

    Since: PMD 6.6.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for formal parameters of methods and lambdas. +This rule reports formal parameters which do not match the regex that applies to their +specific kind (e.g. lambda parameter, or final formal parameter). Each regex can be +configured through properties.

    + +

    By default this rule uses the standard Java naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.FormalParameterNamingConventionsRule

    + +

    Example(s):

    + +
    class Foo {
    +
    +                abstract void bar(int myInt); // This is Camel case, so it's ok
    +
    +                void bar(int my_i) { // this will be reported
    +
    +                }
    +
    +                void lambdas() {
    +
    +                    // lambdas parameters can be configured separately
    +                    Consumer<String> lambda1 = s_str -> { };
    +
    +                    // lambda parameters with an explicit type can be configured separately
    +                    Consumer<String> lambda1 = (String str) -> { };
    +
    +                }
    +
    +            }
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    methodParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to formal parameter namesno
    finalMethodParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to final formal parameter namesno
    lambdaParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to inferred-type lambda parameter namesno
    explicitLambdaParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to explicitly-typed lambda parameter namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/FormalParameterNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/FormalParameterNamingConventions">
    +    <properties>
    +        <property name="methodParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="finalMethodParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="lambdaParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="explicitLambdaParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    GenericsNaming

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium Low (4)

    + +

    Names for references to generic values should be limited to a single uppercase letter.

    + +

    This rule is defined by the following XPath expression:

    +
    //TypeDeclaration/ClassOrInterfaceDeclaration/TypeParameters/TypeParameter[
    +  string-length(@Image) > 1
    +  or
    +  upper-case(@Image) != @Image
    +]
    +
    + +

    Example(s):

    + +
    public interface GenericDao<E extends BaseModel, K extends Serializable> extends BaseDao {
    +    // This is ok...
    +}
    +
    +public interface GenericDao<E extends BaseModel, K extends Serializable> {
    +    // Also this
    +}
    +
    +public interface GenericDao<e extends BaseModel, K extends Serializable> {
    +    // 'e' should be an 'E'
    +}
    +
    +public interface GenericDao<EF extends BaseModel, K extends Serializable> {
    +   // 'EF' is not ok.
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/GenericsNaming" />
    +
    + +

    IdenticalCatchBranches

    + +

    Since: PMD 6.4.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.7

    + +

    Identical catch branches use up vertical space and increase the complexity of code without +adding functionality. It’s better style to collapse identical branches into a single multi-catch +branch.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.IdenticalCatchBranchesRule

    + +

    Example(s):

    + +
    try {
    +    // do something
    +} catch (IllegalArgumentException e) {
    +    throw e;
    +} catch (IllegalStateException e) { // Can be collapsed into the previous block
    +    throw e;
    +}
    +
    +try {
    +    // do something
    +} catch (IllegalArgumentException | IllegalStateException e) { // This is better
    +    throw e;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/IdenticalCatchBranches" />
    +
    + +

    IfElseStmtsMustUseBraces

    + +

    Deprecated

    + +

    Since: PMD 0.2

    + +

    Priority: Medium (3)

    + +

    Avoid using if..else statements without using surrounding braces. If the code formatting +or indentation is lost then it becomes difficult to separate the code being controlled +from the rest.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule ControlStatementBraces.

    + +

    This rule is defined by the following XPath expression:

    +
    //Statement
    + [parent::IfStatement[@Else= true()]]
    + [not(child::Block)]
    + [not(child::IfStatement)]
    +
    + +

    Example(s):

    + +
    // this is OK
    +if (foo) x++;
    +
    +   // but this is not
    +if (foo)
    +       x = x+1;
    +   else
    +       x = x-1;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/IfElseStmtsMustUseBraces" />
    +
    + +

    IfStmtsMustUseBraces

    + +

    Deprecated

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Avoid using if statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule ControlStatementBraces.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement[count(*) < 3][not(Statement/Block)]
    +
    + +

    Example(s):

    + +
    if (foo)    // not recommended
    +    x++;
    +
    +if (foo) {  // preferred approach
    +    x++;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/IfStmtsMustUseBraces" />
    +
    + +

    LinguisticNaming

    + +

    Since: PMD 6.7.0

    + +

    Priority: Medium (3)

    + +

    This rule finds Linguistic Naming Antipatterns. It checks for fields, that are named, as if they should +be boolean but have a different type. It also checks for methods, that according to their name, should +return a boolean, but don’t. Further, it checks, that getters return something and setters won’t. +Finally, it checks that methods, that start with "to" - so called transform methods - actually return +something, since according to their name, they should convert or transform one object into another. +There is additionally an option, to check for methods that contain "To" in their name - which are +also transform methods. However, this is disabled by default, since this detection is prone to +false positives.

    + +

    For more information, see Linguistic Antipatterns - What They Are and How +Developers Perceive Them.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.LinguisticNamingRule

    + +

    Example(s):

    + +
    public class LinguisticNaming {
    +    int isValid;    // the field name indicates a boolean, but it is an int.
    +    boolean isTrue; // correct type of the field
    +
    +    void myMethod() {
    +        int hasMoneyLocal;      // the local variable name indicates a boolean, but it is an int.
    +        boolean hasSalaryLocal; // correct naming and type
    +    }
    +
    +    // the name of the method indicates, it is a boolean, but the method returns an int.
    +    int isValid() {
    +        return 1;
    +    }
    +    // correct naming and return type
    +    boolean isSmall() {
    +        return true;
    +    }
    +
    +    // the name indicates, this is a setter, but it returns something
    +    int setName() {
    +        return 1;
    +    }
    +
    +    // the name indicates, this is a getter, but it doesn't return anything
    +    void getName() {
    +        // nothing to return?
    +    }
    +
    +    // the name indicates, it transforms an object and should return the result
    +    void toDataType() {
    +        // nothing to return?
    +    }
    +    // the name indicates, it transforms an object and should return the result
    +    void grapeToWine() {
    +        // nothing to return?
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationsjava.lang.OverrideFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    checkBooleanMethodtrueCheck method names and types for inconsistent naming.no
    checkGetterstrueCheck return type of getters.no
    checkSetterstrueCheck return type of setters.no
    checkPrefixedTransformMethodstrueCheck return type of methods whose names start with the configured prefix (see transformMethodNames property).no
    checkTransformMethodsfalseCheck return type of methods which contain the configured infix in their name (see transformMethodNames property).no
    booleanMethodPrefixesis | has | can | have | will | shouldThe prefixes of methods that return boolean.yes. Delimiter is ‘|’.
    transformMethodNamesto | asThe prefixes and infixes that indicate a transform method.yes. Delimiter is ‘|’.
    checkFieldstrueCheck field names and types for inconsistent naming.no
    checkVariablestrueCheck local variable names and types for inconsistent naming.no
    booleanFieldPrefixesis | has | can | have | will | shouldThe prefixes of fields and variables that indicate boolean.yes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/LinguisticNaming" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/LinguisticNaming">
    +    <properties>
    +        <property name="ignoredAnnotations" value="java.lang.Override" />
    +        <property name="checkBooleanMethod" value="true" />
    +        <property name="checkGetters" value="true" />
    +        <property name="checkSetters" value="true" />
    +        <property name="checkPrefixedTransformMethods" value="true" />
    +        <property name="checkTransformMethods" value="false" />
    +        <property name="booleanMethodPrefixes" value="is|has|can|have|will|should" />
    +        <property name="transformMethodNames" value="to|as" />
    +        <property name="checkFields" value="true" />
    +        <property name="checkVariables" value="true" />
    +        <property name="booleanFieldPrefixes" value="is|has|can|have|will|should" />
    +    </properties>
    +</rule>
    +
    + +

    LocalHomeNamingConvention

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    The Local Home interface of a Session EJB should be suffixed by ‘LocalHome’.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +[
    +    (
    +        (./ExtendsList/ClassOrInterfaceType[ends-with(@Image,'EJBLocalHome')])
    +    )
    +    and
    +    not
    +    (
    +        ends-with(@SimpleName,'LocalHome')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    public interface MyBeautifulLocalHome extends javax.ejb.EJBLocalHome {} // proper name
    +
    +public interface MissingProperSuffix extends javax.ejb.EJBLocalHome {}  // non-standard name
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/LocalHomeNamingConvention" />
    +
    + +

    LocalInterfaceSessionNamingConvention

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    The Local Interface of a Session EJB should be suffixed by ‘Local’.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +[
    +    (
    +        (./ExtendsList/ClassOrInterfaceType[ends-with(@Image,'EJBLocalObject')])
    +    )
    +    and
    +    not
    +    (
    +        ends-with(@SimpleName,'Local')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    public interface MyLocal extends javax.ejb.EJBLocalObject {}                // proper name
    +
    +public interface MissingProperSuffix extends javax.ejb.EJBLocalObject {}    // non-standard name
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/LocalInterfaceSessionNamingConvention" />
    +
    + +

    LocalVariableCouldBeFinal

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    A local variable assigned only once can be declared final.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.LocalVariableCouldBeFinalRule

    + +

    Example(s):

    + +
    public class Bar {
    +    public void foo () {
    +    String txtA = "a";          // if txtA will not be assigned again it is better to do this:
    +    final String txtB = "b";
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreForEachDeclfalseIgnore non-final loop variables in a for-each statement.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal">
    +    <properties>
    +        <property name="ignoreForEachDecl" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    LocalVariableNamingConventions

    + +

    Since: PMD 6.6.0

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for local variable declarations and other locally-scoped +variables. This rule reports variable declarations which do not match the regex that applies to their +specific kind (e.g. final variable, or catch-clause parameter). Each regex can be configured through +properties.

    + +

    By default this rule uses the standard Java naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.LocalVariableNamingConventionsRule

    + +

    Example(s):

    + +
    class Foo {
    +                void bar() {
    +                    int localVariable = 1; // This is in camel case, so it's ok
    +                    int local_variable = 1; // This will be reported unless you change the regex
    +
    +                    final int i_var = 1; // final local variables can be configured separately
    +
    +                    try {
    +                        foo();
    +                    } catch (IllegalArgumentException e_illegal) {
    +                        // exception block parameters can be configured separately
    +                    }
    +
    +                }
    +            }
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    localVarPattern[a-z][a-zA-Z0-9]*Regex which applies to non-final local variable namesno
    finalVarPattern[a-z][a-zA-Z0-9]*Regex which applies to final local variable namesno
    catchParameterPattern[a-z][a-zA-Z0-9]*Regex which applies to exception block parameter namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/LocalVariableNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/LocalVariableNamingConventions">
    +    <properties>
    +        <property name="localVarPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="finalVarPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="catchParameterPattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    LongVariable

    + +

    Since: PMD 0.3

    + +

    Priority: Medium (3)

    + +

    Fields, formal arguments, or local variable names that are too long can make the code difficult to follow.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclaratorId[string-length(@Name) > $minimum]
    +
    + +

    Example(s):

    + +
    public class Something {
    +    int reallyLongIntName = -3;             // VIOLATION - Field
    +    public static void main( String argumentsList[] ) { // VIOLATION - Formal
    +        int otherReallyLongName = -5;       // VIOLATION - Local
    +        for (int interestingIntIndex = 0;   // VIOLATION - For
    +             interestingIntIndex < 10;
    +             interestingIntIndex ++ ) {
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    minimum17The variable length reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/LongVariable" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/LongVariable">
    +    <properties>
    +        <property name="minimum" value="17" />
    +    </properties>
    +</rule>
    +
    + +

    MDBAndSessionBeanNamingConvention

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    The EJB Specification states that any MessageDrivenBean or SessionBean should be suffixed by ‘Bean’.

    + +

    This rule is defined by the following XPath expression:

    +
    //TypeDeclaration/ClassOrInterfaceDeclaration
    +[
    +    (
    +        (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'SessionBean')])
    +        or
    +        (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'MessageDrivenBean')])
    +    )
    +    and
    +    not
    +    (
    +        ends-with(@SimpleName,'Bean')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    public class SomeBean implements SessionBean{}                  // proper name
    +
    +public class MissingTheProperSuffix implements SessionBean {}   // non-standard name
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/MDBAndSessionBeanNamingConvention" />
    +
    + +

    MethodArgumentCouldBeFinal

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    A method argument that is never re-assigned within the method can be declared final.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.MethodArgumentCouldBeFinalRule

    + +

    Example(s):

    + +
    public void foo1 (String param) {       // do stuff with param never assigning it
    +
    +}
    +
    +public void foo2 (final String param) { // better, do stuff with param never assigning it
    +
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/MethodArgumentCouldBeFinal" />
    +
    + +

    MethodNamingConventions

    + +

    Since: PMD 1.2

    + +

    Priority: High (1)

    + +

    Configurable naming conventions for method declarations. This rule reports +method declarations which do not match the regex that applies to their +specific kind (e.g. JUnit test or native method). Each regex can be +configured through properties.

    + +

    By default this rule uses the standard Java naming convention (Camel case).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.MethodNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void fooStuff() {
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkNativeMethodstrueDeprecated Check native methodsno
    methodPattern[a-z][a-zA-Z0-9]*Regex which applies to instance method namesno
    staticPattern[a-z][a-zA-Z0-9]*Regex which applies to static method namesno
    nativePattern[a-z][a-zA-Z0-9]*Regex which applies to native method namesno
    junit3TestPatterntest[A-Z0-9][a-zA-Z0-9]*Regex which applies to JUnit 3 test method namesno
    junit4TestPattern[a-z][a-zA-Z0-9]*Regex which applies to JUnit 4 test method namesno
    junit5TestPattern[a-z][a-zA-Z0-9]*Regex which applies to JUnit 5 test method namesno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/MethodNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/MethodNamingConventions">
    +    <properties>
    +        <property name="methodPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="staticPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="nativePattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="junit3TestPattern" value="test[A-Z0-9][a-zA-Z0-9]*" />
    +        <property name="junit4TestPattern" value="[a-z][a-zA-Z0-9]*" />
    +        <property name="junit5TestPattern" value="[a-z][a-zA-Z0-9]*" />
    +    </properties>
    +</rule>
    +
    + +

    MIsLeadingVariableName

    + +

    Deprecated

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Detects when a non-field has a name starting with ‘m_’. This usually denotes a field and could be confusing.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule +LocalVariableNamingConventions.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclaratorId
    +[starts-with(@Name, 'm_')]
    +[not (../../../FieldDeclaration)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private int m_foo; // OK
    +    public void bar(String m_baz) { // Bad
    +      int m_boz = 42; // Bad
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/MIsLeadingVariableName" />
    +
    + +

    NoPackage

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    Detects when a class, interface, enum or annotation does not have a package definition.

    + +

    This rule is defined by the following XPath expression:

    +
    /CompilationUnit[not(./PackageDeclaration)]/TypeDeclaration[1]
    +
    + +

    Example(s):

    + +
    // no package declaration
    +public class ClassInDefaultPackage {
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/NoPackage" />
    +
    + +

    OnlyOneReturn

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    A method should have only one exit point, and that should be the last statement in the method.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.OnlyOneReturnRule

    + +

    Example(s):

    + +
    public class OneReturnOnly1 {
    +  public String foo(int x) {
    +    if (x > 0) {
    +      return "hey";   // first exit
    +    }
    +    return "hi";    // second exit
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/OnlyOneReturn" />
    +
    + +

    PackageCase

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    Detects when a package definition contains uppercase characters.

    + +

    This rule is defined by the following XPath expression:

    +
    //PackageDeclaration/Name[lower-case(@Image)!=@Image]
    +
    + +

    Example(s):

    + +
    package com.MyCompany;  // should be lowercase name
    +
    +public class SomeClass {
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/PackageCase" />
    +
    + +

    PrematureDeclaration

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Checks for variables that are defined before they might be used. A reference is deemed to be premature if it is created right before a block of code that doesn’t use it that also has the ability to return or throw an exception.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.PrematureDeclarationRule

    + +

    Example(s):

    + +
    public int getLength(String[] strings) {
    +
    +    int length = 0; // declared prematurely
    +
    +    if (strings == null || strings.length == 0) return 0;
    +
    +    for (String str : strings) {
    +        length += str.length();
    +    }
    +
    +    return length;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/PrematureDeclaration" />
    +
    + +

    RemoteInterfaceNamingConvention

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    Remote Interface of a Session EJB should not have a suffix.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +[
    +    (
    +        (./ExtendsList/ClassOrInterfaceType[ends-with(@Image,'EJBObject')])
    +    )
    +    and
    +    (
    +        ends-with(@SimpleName,'Session')
    +        or
    +        ends-with(@SimpleName,'EJB')
    +        or
    +        ends-with(@SimpleName,'Bean')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    /* Poor Session suffix */
    +public interface BadSuffixSession extends javax.ejb.EJBObject {}
    +
    +/* Poor EJB suffix */
    +public interface BadSuffixEJB extends javax.ejb.EJBObject {}
    +
    +/* Poor Bean suffix */
    +public interface BadSuffixBean extends javax.ejb.EJBObject {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/RemoteInterfaceNamingConvention" />
    +
    + +

    RemoteSessionInterfaceNamingConvention

    + +

    Since: PMD 4.0

    + +

    Priority: Medium Low (4)

    + +

    A Remote Home interface type of a Session EJB should be suffixed by ‘Home’.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +[
    +    (
    +        (./ExtendsList/ClassOrInterfaceType[ends-with(@Image,'EJBHome')])
    +    )
    +    and
    +    not
    +    (
    +        ends-with(@SimpleName,'Home')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    public interface MyBeautifulHome extends javax.ejb.EJBHome {}       // proper name
    +
    +public interface MissingProperSuffix extends javax.ejb.EJBHome {}   // non-standard name
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/RemoteSessionInterfaceNamingConvention" />
    +
    + +

    ShortClassName

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Short Classnames with fewer than e.g. five characters are not recommended.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[string-length(@SimpleName) < $minimum]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    minimum5Number of characters that are required as a minimum for a class name.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ShortClassName" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ShortClassName">
    +    <properties>
    +        <property name="minimum" value="5" />
    +    </properties>
    +</rule>
    +
    + +

    ShortMethodName

    + +

    Since: PMD 0.3

    + +

    Priority: Medium (3)

    + +

    Method names that are very short are not helpful to the reader.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[string-length(@Name) < $minimum]
    +
    + +

    Example(s):

    + +
    public class ShortMethod {
    +    public void a( int i ) { // Violation
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    minimum3Number of characters that are required as a minimum for a method name.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ShortMethodName" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ShortMethodName">
    +    <properties>
    +        <property name="minimum" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    ShortVariable

    + +

    Since: PMD 0.3

    + +

    Priority: Medium (3)

    + +

    Fields, local variables, or parameter names that are very short are not helpful to the reader.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclaratorId[string-length(@Name) < $minimum]
    + (: ForStatement :)
    + [not(../../..[self::ForInit])]
    + (: Foreach statement :)
    + [not(../../..[self::ForStatement])]
    + (: Catch statement parameter :)
    + [not(../..[self::CatchStatement])]
    + (: Lambda expression parameter :)
    + [not(parent::LambdaExpression or ../../..[self::LambdaExpression])]
    +
    + +

    Example(s):

    + +
    public class Something {
    +    private int q = 15;                         // field - too short
    +    public static void main( String as[] ) {    // formal arg - too short
    +        int r = 20 + q;                         // local var - too short
    +        for (int i = 0; i < 10; i++) {          // not a violation (inside 'for' loop)
    +            r += q;
    +        }
    +        for (Integer i : numbers) {             // not a violation (inside 'for-each' loop)
    +            r += q;
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    minimum3Number of characters that are required as a minimum for a variable name.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/ShortVariable" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/ShortVariable">
    +    <properties>
    +        <property name="minimum" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    SuspiciousConstantFieldName

    + +

    Deprecated

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    Field names using all uppercase characters - Sun’s Java naming conventions indicating constants - should +be declared as final.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rule FieldNamingConventions.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Interface= false()]
    + /ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/FieldDeclaration
    +  [@Final= false()]
    +  [VariableDeclarator/VariableDeclaratorId[upper-case(@Name)=@Name]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    + // this is bad, since someone could accidentally
    + // do PI = 2.71828; which is actually e
    + // final double PI = 3.16; is ok
    +  double PI = 3.16;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/SuspiciousConstantFieldName" />
    +
    + +

    TooManyStaticImports

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    If you overuse the static import feature, it can make your program unreadable and +unmaintainable, polluting its namespace with all the static members you import. +Readers of your code (including you, a few months after you wrote it) will not know +which class a static member comes from (Sun 1.5 Language Guide).

    + +

    This rule is defined by the following XPath expression:

    +
    .[count(ImportDeclaration[@Static = true()]) > $maximumStaticImports]
    +
    + +

    Example(s):

    + +
    import static Lennon;
    +import static Ringo;
    +import static George;
    +import static Paul;
    +import static Yoko; // Too much !
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maximumStaticImports4All static imports can be disallowed by setting this to 0no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/TooManyStaticImports">
    +    <properties>
    +        <property name="maximumStaticImports" value="4" />
    +    </properties>
    +</rule>
    +
    + +

    UnnecessaryAnnotationValueElement

    + +

    Since: PMD 6.2.0

    + +

    Priority: Medium (3)

    + +

    Avoid the use of value in annotations when it’s the only element.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryAnnotationValueElementRule

    + +

    Example(s):

    + +
    @TestClassAnnotation(value = "TEST")
    +public class Foo {
    +
    +    @TestMemberAnnotation(value = "TEST")
    +    private String y;
    +
    +    @TestMethodAnnotation(value = "TEST")
    +    public void bar() {
    +        int x = 42;
    +        return;
    +    }
    +}
    +
    +// should be
    +
    +@TestClassAnnotation("TEST")
    +public class Foo {
    +
    +    @TestMemberAnnotation("TEST")
    +    private String y;
    +
    +    @TestMethodAnnotation("TEST")
    +    public void bar() {
    +        int x = 42;
    +        return;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryAnnotationValueElement" />
    +
    + +

    UnnecessaryCast

    + +

    Since: PMD 6.24.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.5

    + +

    This rule detects when a cast is unnecessary while accessing collection elements. This rule is mostly useful +for old java code before generics where introduced with java 1.5.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryCastRule

    + +

    Example(s):

    + +
    public class UnnecessaryCastSample {
    +    public void method() {
    +        List<String> stringList = Arrays.asList("a", "b");
    +        String element = (String) stringList.get(0); // this cast is unnecessary
    +        String element2 = stringList.get(0);
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryCast" />
    +
    + +

    UnnecessaryConstructor

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    This rule detects when a constructor is not necessary; i.e., when there is only one constructor and the +constructor is identical to the default constructor. The default constructor should has same access +modifier as the declaring class. In an enum type, the default constructor is implicitly private.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryConstructorRule

    + +

    Example(s):

    + +
    public class Foo {
    +  public Foo() {}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationsjavax.inject.InjectFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryConstructor" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryConstructor">
    +    <properties>
    +        <property name="ignoredAnnotations" value="javax.inject.Inject" />
    +    </properties>
    +</rule>
    +
    + +

    UnnecessaryFullyQualifiedName

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Import statements allow the use of non-fully qualified names. The use of a fully qualified name +which is covered by an import statement is redundant. Consider using the non-fully qualified name.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryFullyQualifiedNameRule

    + +

    Example(s):

    + +
    import java.util.List;
    +
    +public class Foo {
    +    private java.util.List list1;   // Unnecessary FQN
    +    private List list2;             // More appropriate given import of 'java.util.List'
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName" />
    +
    + +

    UnnecessaryLocalBeforeReturn

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    Avoid the creation of unnecessary local variables

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryLocalBeforeReturnRule

    + +

    Example(s):

    + +
    public class Foo {
    +   public int foo() {
    +     int x = doSomething();
    +     return x;  // instead, just 'return doSomething();'
    +   }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    statementOrderMatterstrueIf set to false this rule no longer requires the variable declaration and return statement to be on consecutive lines. Any variable that is used solely in a return statement will be reported.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryLocalBeforeReturn" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryLocalBeforeReturn">
    +    <properties>
    +        <property name="statementOrderMatters" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    UnnecessaryModifier

    + +

    Since: PMD 1.02

    + +

    Priority: Medium (3)

    + +

    Fields in interfaces and annotations are automatically public static final, and methods are public abstract. +Classes, interfaces or annotations nested in an interface or annotation are automatically public static +(all nested interfaces and annotations are automatically static). +Nested enums are automatically static. +For historical reasons, modifiers which are implied by the context are accepted by the compiler, but are superfluous.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryModifierRule

    + +

    Example(s):

    + +
    public @interface Annotation {
    +    public abstract void bar();     // both abstract and public are ignored by the compiler
    +    public static final int X = 0;  // public, static, and final all ignored
    +    public static class Bar {}      // public, static ignored
    +    public static interface Baz {}  // ditto
    +}
    +public interface Foo {
    +    public abstract void bar();     // both abstract and public are ignored by the compiler
    +    public static final int X = 0;  // public, static, and final all ignored
    +    public static class Bar {}      // public, static ignored
    +    public static interface Baz {}  // ditto
    +}
    +public class Bar {
    +    public static interface Baz {}  // static ignored
    +    public static enum FoorBar {    // static ignored
    +        FOO;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
    +
    + +

    UnnecessaryReturn

    + +

    Since: PMD 1.3

    + +

    Priority: Medium (3)

    + +

    Avoid the use of unnecessary return statements.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.UnnecessaryReturnRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        int x = 42;
    +        return;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
    +
    + +

    UseDiamondOperator

    + +

    Since: PMD 6.11.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.7

    + +

    Use the diamond operator to let the type be inferred automatically. With the Diamond operator it is possible +to avoid duplication of the type parameters. +Instead, the compiler is now able to infer the parameter types for constructor calls, +which makes the code also more readable.

    + +

    The diamond operator has been introduced with java 7. However, type inference has been improved further +with java8, rendering more type parameters unnecessary. This is only possible with java8 and the resulting +code won’t compile with java7. If you use java7, make sure to enable java7Compatibility for this rule to avoid +false positives.

    + +

    This rule is defined by the following XPath expression:

    +
    (
    +//VariableInitializer[preceding-sibling::VariableDeclaratorId[1]/@TypeInferred=false()]
    +|
    +//StatementExpression[AssignmentOperator and PrimaryExpression/PrimaryPrefix[not(Expression)]]
    +)
    +/(Expression | Expression[$java7Compatibility = false()]/ConditionalExpression | Expression[$java7Compatibility = false()]/ConditionalExpression/Expression)
    +/PrimaryExpression[not(PrimarySuffix) and not(ancestor::ArgumentList)]
    +/PrimaryPrefix
    +/AllocationExpression
    +    [@AnonymousClass=false()]
    +    [ClassOrInterfaceType/TypeArguments[@Diamond=false() and not($java7Compatibility = true() and .//TypeArgument[@Wildcard=true()])]]
    +    [not(ArrayDimsAndInits)]
    +
    + +

    Example(s):

    + +
    List<String> strings = new ArrayList<String>(); // unnecessary duplication of type parameters
    +List<String> stringsWithDiamond = new ArrayList<>(); // using the diamond operator is more concise
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    java7CompatibilityfalseIf disabled, the rule shows also violations that are applicable for java8+no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/UseDiamondOperator" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/UseDiamondOperator">
    +    <properties>
    +        <property name="java7Compatibility" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UselessParentheses

    + +

    Since: PMD 5.0

    + +

    Priority: Medium Low (4)

    + +

    Useless parentheses should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //Expression[not(parent::PrimaryPrefix)]/PrimaryExpression[count(*)>1]
    +  /PrimaryPrefix/Expression
    +    [not(./CastExpression)]
    +    [not(./ConditionalExpression)]
    +    [not(./AdditiveExpression)]
    +    [not(./AssignmentOperator)]
    +|
    +//Expression[not(parent::PrimaryPrefix)]/PrimaryExpression[count(*)=1]
    +  /PrimaryPrefix/Expression
    +|
    +//Expression/ConditionalAndExpression/PrimaryExpression/PrimaryPrefix/Expression[
    +    count(*)=1 and
    +    not(./CastExpression) and
    +    not(./EqualityExpression/MultiplicativeExpression) and
    +    not(./ConditionalExpression) and
    +    not(./ConditionalOrExpression)]
    +|
    +//Expression/ConditionalOrExpression/PrimaryExpression/PrimaryPrefix/Expression[
    +    count(*)=1 and
    +    not(./CastExpression) and
    +    not(./ConditionalExpression) and
    +    not(./EqualityExpression/MultiplicativeExpression)]
    +|
    +//Expression/ConditionalExpression/PrimaryExpression/PrimaryPrefix/Expression[
    +    count(*)=1 and
    +    not(./CastExpression) and
    +    not(./EqualityExpression)]
    +|
    +//Expression/AdditiveExpression[not(./PrimaryExpression/PrimaryPrefix/Literal[@StringLiteral= true()])]
    +  /PrimaryExpression[1]/PrimaryPrefix/Expression[
    +    count(*)=1 and
    +    not(./CastExpression) and
    +    not(./AdditiveExpression[@Operator = '-']) and
    +    not(./ShiftExpression) and
    +    not(./RelationalExpression) and
    +    not(./InstanceOfExpression) and
    +    not(./EqualityExpression) and
    +    not(./AndExpression) and
    +    not(./ExclusiveOrExpression) and
    +    not(./InclusiveOrExpression) and
    +    not(./ConditionalAndExpression) and
    +    not(./ConditionalOrExpression) and
    +    not(./ConditionalExpression)]
    +|
    +//Expression/EqualityExpression/PrimaryExpression/PrimaryPrefix/Expression[
    +    count(*)=1 and
    +    not(./CastExpression) and
    +    not(./AndExpression) and
    +    not(./InclusiveOrExpression) and
    +    not(./ExclusiveOrExpression) and
    +    not(./ConditionalExpression) and
    +    not(./ConditionalAndExpression) and
    +    not(./ConditionalOrExpression) and
    +    not(./EqualityExpression)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +    private int _bar1;
    +    private Integer _bar2;
    +
    +    public void setBar(int n) {
    +        _bar1 = Integer.valueOf((n)); // here
    +        _bar2 = (n); // and here
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UselessParentheses" />
    +
    + +

    UselessQualifiedThis

    + +

    Since: PMD 5.4.0

    + +

    Priority: Medium (3)

    + +

    Reports qualified this usages in the same class.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression
    +[PrimaryPrefix/Name[@Image]]
    +[PrimarySuffix[@Arguments= false() and @ArrayDereference = false()]]
    +[not(PrimarySuffix/MemberSelector)]
    +[ancestor::ClassOrInterfaceBodyDeclaration[1][@AnonymousInnerClass= false()]]
    +/PrimaryPrefix/Name[@Image = ancestor::ClassOrInterfaceDeclaration[1]/@SimpleName]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    final Foo otherFoo = Foo.this;  // use "this" directly
    +
    +    public void doSomething() {
    +         final Foo anotherFoo = Foo.this;  // use "this" directly
    +    }
    +
    +    private ActionListener returnListener() {
    +        return new ActionListener() {
    +            @Override
    +            public void actionPerformed(ActionEvent e) {
    +                doSomethingWithQualifiedThis(Foo.this);  // This is fine
    +            }
    +        };
    +    }
    +
    +    private class Foo3 {
    +        final Foo myFoo = Foo.this;  // This is fine
    +    }
    +
    +    private class Foo2 {
    +        final Foo2 myFoo2 = Foo2.this;  // Use "this" direclty
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UselessQualifiedThis" />
    +
    + +

    UseShortArrayInitializer

    + +

    Since: PMD 6.15.0

    + +

    Priority: Medium (3)

    + +

    When declaring and initializing array fields or variables, it is not necessary to explicitly create a new array +using new. Instead one can simply define the initial content of the array as a expression in curly braces.

    + +

    E.g. int[] x = new int[] { 1, 2, 3 }; can be written as int[] x = { 1, 2, 3 };.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclarator
    +    [VariableDeclaratorId[@ArrayType = true() and @TypeInferred = false()]]
    +    [VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/ArrayDimsAndInits/ArrayInitializer]
    +
    + +

    Example(s):

    + +
    Foo[] x = new Foo[] { ... }; // Overly verbose
    +Foo[] x = { ... }; //Equivalent to above line
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/UseShortArrayInitializer" />
    +
    + +

    UseUnderscoresInNumericLiterals

    + +

    Since: PMD 6.10.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.7

    + +

    Since Java 1.7, numeric literals can use underscores to separate digits. This rule enforces that +numeric literals above a certain length use these underscores to increase readability.

    + +

    The rule only supports decimal (base 10) literals for now. The acceptable length under which literals +are not required to have underscores is configurable via a property. Even under that length, underscores +that are misplaced (not making groups of 3 digits) are reported.

    + +

    This rule is defined by the following XPath expression:

    +
    //Literal[
    +     @IntLiteral = true()
    +  or @LongLiteral = true()
    +  or @DoubleLiteral = true()
    +  or @FloatLiteral = true()
    +]
    + (: Filter out literals in base other than 10 :)
    + [not(matches(@Image, "^0[^.]"))]
    + (: Filter out ignored field name :)
    + [not(ancestor::VariableDeclarator[1][@Name = 'serialVersionUID'])]
    + [
    +   some $num in tokenize(@Image, "[dDfFlLeE+\-]")
    +   satisfies not(
    +                  ( contains($num, ".")
    +                    and string-length(substring-before($num, ".")) <= $acceptableDecimalLength
    +                    and string-length(substring-after($num, ".")) <= $acceptableDecimalLength
    +                    or string-length($num) <= $acceptableDecimalLength
    +                  )
    +                  and not(contains($num,"_"))
    +                  or matches($num, "^[0-9]{1,3}(_[0-9]{3})*(\.([0-9]{3}_)*[0-9]{1,3})?$")
    +                )
    + ]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private int num = 1000000; // should be 1_000_000
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    acceptableDecimalLength4Length under which literals in base 10 are not required to have underscoresno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/UseUnderscoresInNumericLiterals" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/UseUnderscoresInNumericLiterals">
    +    <properties>
    +        <property name="acceptableDecimalLength" value="4" />
    +    </properties>
    +</rule>
    +
    + +

    VariableNamingConventions

    + +

    Deprecated

    + +

    Since: PMD 1.2

    + +

    Priority: High (1)

    + +

    A variable naming conventions rule - customize this to your liking. Currently, it +checks for final variables that should be fully capitalized and non-final variables +that should not include underscores.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the more general rules FieldNamingConventions, +FormalParameterNamingConventions, and +LocalVariableNamingConventions.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.codestyle.VariableNamingConventionsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public static final int MY_NUM = 0;
    +    public String myTest = "";
    +    DataModule dmTest = new DataModule();
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    parameterSuffix Method parameter variable suffixesyes. Delimiter is ‘,’.
    parameterPrefix Method parameter variable prefixesyes. Delimiter is ‘,’.
    localSuffix Local variable suffixesyes. Delimiter is ‘,’.
    localPrefix Local variable prefixesyes. Delimiter is ‘,’.
    memberSuffix Member variable suffixesyes. Delimiter is ‘,’.
    memberPrefix Member variable prefixesyes. Delimiter is ‘,’.
    staticSuffix Static variable suffixesyes. Delimiter is ‘,’.
    staticPrefix Static variable prefixesyes. Delimiter is ‘,’.
    checkMemberstrueCheck member variablesno
    checkLocalstrueCheck local variablesno
    checkParameterstrueCheck constructor and method parameter variablesno
    checkNativeMethodParameterstrueCheck method parameter of native methodsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/codestyle.xml/VariableNamingConventions" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/codestyle.xml/VariableNamingConventions">
    +    <properties>
    +        <property name="parameterSuffix" value="" />
    +        <property name="parameterPrefix" value="" />
    +        <property name="localSuffix" value="" />
    +        <property name="localPrefix" value="" />
    +        <property name="memberSuffix" value="" />
    +        <property name="memberPrefix" value="" />
    +        <property name="staticSuffix" value="" />
    +        <property name="staticPrefix" value="" />
    +        <property name="checkMembers" value="true" />
    +        <property name="checkLocals" value="true" />
    +        <property name="checkParameters" value="true" />
    +        <property name="checkNativeMethodParameters" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    WhileLoopsMustUseBraces

    + +

    Deprecated

    + +

    Since: PMD 0.7

    + +

    Priority: Medium (3)

    + +

    Avoid using ‘while’ statements without using braces to surround the code block. If the code +formatting or indentation is lost then it becomes difficult to separate the code being +controlled from the rest.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule ControlStatementBraces.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileStatement[not(Statement/Block)]
    +
    + +

    Example(s):

    + +
    while (true)    // not recommended
    +      x++;
    +
    +while (true) {  // preferred approach
    +      x++;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/codestyle.xml/WhileLoopsMustUseBraces" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_design.html b/pmd_rules_java_design.html new file mode 100644 index 0000000000..2d9c30d13c --- /dev/null +++ b/pmd_rules_java_design.html @@ -0,0 +1,3987 @@ + + + + + + + + +Design | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Design

    +
    + + + +
    + + +
    Rules that help you discover design issues.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AbstractClassWithoutAnyMethod

    + +

    Since: PMD 4.2

    + +

    Priority: High (1)

    + +

    If an abstract class does not provides any methods, it may be acting as a simple data container +that is not meant to be instantiated. In this case, it is probably better to use a private or +protected constructor in order to prevent instantiation than make the class misleadingly abstract.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +    [@Abstract = true()]
    +    [not(./ClassOrInterfaceBody/*/ConstructorDeclaration)]
    +    [not(./ClassOrInterfaceBody/*/MethodDeclaration)]
    +    [not(../Annotation/MarkerAnnotation/Name[pmd-java:typeIs('com.google.auto.value.AutoValue')])]
    +
    + +

    Example(s):

    + +
    public abstract class Example {
    +    String field;
    +    int otherField;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
    +
    + +

    AvoidCatchingGenericException

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium (3)

    + +

    Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement/FormalParameter/Type/ReferenceType/ClassOrInterfaceType[
    +    @Image='NullPointerException' or
    +    @Image='Exception' or
    +    @Image='RuntimeException']
    +
    + +

    Example(s):

    + +
    package com.igate.primitive;
    +
    +public class PrimitiveType {
    +
    +    public void downCastPrimitiveType() {
    +        try {
    +            System.out.println(" i [" + i + "]");
    +        } catch(Exception e) {
    +            e.printStackTrace();
    +        } catch(RuntimeException e) {
    +            e.printStackTrace();
    +        } catch(NullPointerException e) {
    +            e.printStackTrace();
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidCatchingGenericException" />
    +
    + +

    AvoidDeeplyNestedIfStmts

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Avoid creating deeply nested if-then statements since they are harder to read and error-prone to maintain.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.AvoidDeeplyNestedIfStmtsRule

    + +

    Example(s):

    + +
    public class Foo {
    +  public void bar(int x, int y, int z) {
    +    if (x>y) {
    +      if (y>z) {
    +        if (z==x) {
    +         // !! too deep
    +        }
    +      }
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    problemDepth3The if statement depth reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts">
    +    <properties>
    +        <property name="problemDepth" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidRethrowingException

    + +

    Since: PMD 3.8

    + +

    Priority: Medium (3)

    + +

    Catch blocks that merely rethrow a caught exception only add to code size and runtime complexity.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement[FormalParameter
    + /VariableDeclaratorId/@Name = Block/BlockStatement/Statement
    + /ThrowStatement/Expression/PrimaryExpression[count(PrimarySuffix)=0]/PrimaryPrefix/Name/@Image
    + and count(Block/BlockStatement/Statement) =1]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    try {
    +        // do something
    +    }  catch (SomeException se) {
    +       throw se;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidRethrowingException" />
    +
    + +

    AvoidThrowingNewInstanceOfSameException

    + +

    Since: PMD 4.2.5

    + +

    Priority: Medium (3)

    + +

    Catch blocks that merely rethrow a caught exception wrapped inside a new instance of the same type only add to +code size and runtime complexity.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement[
    +  count(Block/BlockStatement/Statement) = 1
    +  and
    +  FormalParameter/Type/ReferenceType/ClassOrInterfaceType/@Image = Block/BlockStatement/Statement/ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/ClassOrInterfaceType/@Image
    +  and
    +  count(Block/BlockStatement/Statement/ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/Arguments/ArgumentList/Expression) = 1
    +  and
    +  FormalParameter/VariableDeclaratorId = Block/BlockStatement/Statement/ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
    +  ]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    try {
    +        // do something
    +    } catch (SomeException se) {
    +        // harmless comment
    +        throw new SomeException(se);
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException" />
    +
    + +

    AvoidThrowingNullPointerException

    + +

    Since: PMD 1.8

    + +

    Priority: High (1)

    + +

    Avoid throwing NullPointerExceptions manually. These are confusing because most people will assume that the +virtual machine threw it. To avoid a method being called with a null parameter, you may consider +using an IllegalArgumentException instead, making it clearly seen as a programmer-initiated exception. +However, there are better ways to handle this:

    + +
    +

    Effective Java, 3rd Edition, Item 72: Favor the use of standard exceptions

    + +

    Arguably, every erroneous method invocation boils down to an illegal argument or state, +but other exceptions are standardly used for certain kinds of illegal arguments and states. +If a caller passes null in some parameter for which null values are prohibited, convention dictates that +NullPointerException be thrown rather than IllegalArgumentException.

    +
    + +

    To implement that, you are encouraged to use java.util.Objects.requireNonNull() +(introduced in Java 1.7). This method is designed primarily for doing parameter +validation in methods and constructors with multiple parameters.

    + +

    Your parameter validation could thus look like the following:

    +
    public class Foo {
    +    private String exampleValue;
    +
    +    void setExampleValue(String exampleValue) {
    +      // check, throw and assignment in a single standard call
    +      this.exampleValue = Objects.requireNonNull(exampleValue, "exampleValue must not be null!");
    +    }
    +  }
    +
    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.AvoidThrowingNullPointerExceptionRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        throw new NullPointerException();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidThrowingNullPointerException" />
    +
    + +

    AvoidThrowingRawExceptionTypes

    + +

    Since: PMD 1.8

    + +

    Priority: High (1)

    + +

    Avoid throwing certain exception types. Rather than throw a raw RuntimeException, Throwable, +Exception, or Error, use a subclassed exception or error instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //ThrowStatement//AllocationExpression
    + /ClassOrInterfaceType[
    + pmd-java:typeIsExactly('java.lang.Throwable')
    +or
    + pmd-java:typeIsExactly('java.lang.Exception')
    +or
    + pmd-java:typeIsExactly('java.lang.Error')
    +or
    + pmd-java:typeIsExactly('java.lang.RuntimeException')
    +]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() throws Exception {
    +        throw new Exception();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes" />
    +
    + +

    AvoidUncheckedExceptionsInSignatures

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    A method or constructor should not explicitly declare unchecked exceptions in its +throws clause. Java doesn’t force the caller to handle an unchecked exception, +so it’s unnecessary except for documentation. A better practice is to document the +exceptional cases with a @throws Javadoc tag, which allows being more descriptive.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration/NameList/Name[pmd-java:typeIs("java.lang.RuntimeException")]
    +|
    +//ConstructorDeclaration/NameList/Name[pmd-java:typeIs("java.lang.RuntimeException")]
    +
    + +

    Example(s):

    + +
    public void foo() throws RuntimeException {
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/AvoidUncheckedExceptionsInSignatures" />
    +
    + +

    ClassWithOnlyPrivateConstructorsShouldBeFinal

    + +

    Since: PMD 4.1

    + +

    Priority: High (1)

    + +

    A class with only private constructors should be final, unless the private constructor +is invoked by a inner class.

    + +

    This rule is defined by the following XPath expression:

    +
    //TypeDeclaration[count(../TypeDeclaration) = 1]/ClassOrInterfaceDeclaration
    +[@Final = false()]
    +[ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Private = true()]]
    +[not(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[(@Public = true()) or (@Protected = true()) or (@PackagePrivate = true())])]
    +[not(.//ClassOrInterfaceDeclaration)]
    +
    + +

    Example(s):

    + +
    public class Foo {  //Should be final
    +    private Foo() { }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
    +
    + +

    CollapsibleIfStatements

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    Sometimes two consecutive ‘if’ statements can be consolidated by separating their conditions with a boolean short-circuit operator.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement[@Else= false()]/Statement
    + /IfStatement[@Else= false()]
    + |
    +//IfStatement[@Else= false()]/Statement
    + /Block[count(BlockStatement)=1]/BlockStatement
    +  /Statement/IfStatement[@Else= false()]
    +
    + +

    Example(s):

    + +
    void bar() {
    +    if (x) {            // original implementation
    +        if (y) {
    +            // do stuff
    +        }
    +    }
    +}
    +
    +void bar() {
    +    if (x && y) {        // optimized implementation
    +        // do stuff
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/CollapsibleIfStatements" />
    +
    + +

    CouplingBetweenObjects

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    This rule counts the number of unique attributes, local variables, and return types within an object. +A number higher than the specified threshold can indicate a high degree of coupling.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.CouplingBetweenObjectsRule

    + +

    Example(s):

    + +
    import com.Blah;
    +import org.Bar;
    +import org.Bardo;
    +
    +public class Foo {
    +    private Blah var1;
    +    private Bar var2;
    +
    +    //followed by many imports of unique objects
    +    ObjectC doWork() {
    +        Bardo var55;
    +        ObjectA var44;
    +        ObjectZ var93;
    +        return something();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    threshold20Unique type reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/CouplingBetweenObjects" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/CouplingBetweenObjects">
    +    <properties>
    +        <property name="threshold" value="20" />
    +    </properties>
    +</rule>
    +
    + +

    CyclomaticComplexity

    + +

    Since: PMD 1.03

    + +

    Priority: Medium (3)

    + +

    The complexity of methods directly affects maintenance costs and readability. Concentrating too much decisional logic +in a single method makes its behaviour hard to read and change.

    + +

    Cyclomatic complexity assesses the complexity of a method by counting the number of decision points in a method, +plus one for the method entry. Decision points are places where the control flow jumps to another place in the +program. As such, they include all control flow statements, such as if, while, for, and case. For more +details on the calculation, see the documentation of the Cyclo metric.

    + +

    Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity. By default, this rule reports methods with a complexity >= 10. +Additionally, classes with many methods of moderate complexity get reported as well once the total of their +methods’ complexities reaches 80, even if none of the methods was directly reported.

    + +

    Reported methods should be broken down into several smaller methods. Reported classes should probably be broken down +into subcomponents.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.CyclomaticComplexityRule

    + +

    Example(s):

    + +
    class Foo {
    +  void baseCyclo() {                // Cyclo = 1
    +    highCyclo();
    +  }
    +
    +  void highCyclo() {                // Cyclo = 10: reported!
    +    int x = 0, y = 2;
    +    boolean a = false, b = true;
    +
    +    if (a && (y == 1 ? b : true)) { // +3
    +      if (y == x) {                 // +1
    +        while (true) {              // +1
    +          if (x++ < 20) {           // +1
    +            break;                  // +1
    +          }
    +        }
    +      } else if (y == t && !d) {    // +2
    +        x = a ? y : x;              // +1
    +      } else {
    +        x = 2;
    +      }
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    classReportLevel80Total class complexity reporting thresholdno
    methodReportLevel10Cyclomatic complexity reporting thresholdno
    cycloOptions Choose options for the computation of Cycloyes. Delimiter is ‘|’.
    reportLevel10Deprecated Cyclomatic Complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/CyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/CyclomaticComplexity">
    +    <properties>
    +        <property name="classReportLevel" value="80" />
    +        <property name="methodReportLevel" value="10" />
    +        <property name="cycloOptions" value="" />
    +    </properties>
    +</rule>
    +
    + +

    DataClass

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Data Classes are simple data holders, which reveal most of their state, and +without complex functionality. The lack of functionality may indicate that +their behaviour is defined elsewhere, which is a sign of poor data-behaviour +proximity. By directly exposing their internals, Data Classes break encapsulation, +and therefore reduce the system’s maintainability and understandability. Moreover, +classes tend to strongly rely on their data representation, which makes for a brittle +design.

    + +

    Refactoring a Data Class should focus on restoring a good data-behaviour proximity. In +most cases, that means moving the operations defined on the data back into the class. +In some other cases it may make sense to remove entirely the class and move the data +into the former client classes.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.DataClassRule

    + +

    Example(s):

    + +
    public class DataClass {
    +
    +  public int bar = 0;
    +  public int na = 0;
    +  private int bee = 0;
    +
    +  public void setBee(int n) {
    +    bee = n;
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/DataClass" />
    +
    + +

    DoNotExtendJavaLangError

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    Errors are system exceptions. Do not extend them.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration/ExtendsList/ClassOrInterfaceType
    +  [pmd-java:typeIs('java.lang.Error')]
    +
    + +

    Example(s):

    + +
    public class Foo extends Error { }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/DoNotExtendJavaLangError" />
    +
    + +

    ExceptionAsFlowControl

    + +

    Since: PMD 1.8

    + +

    Priority: Medium (3)

    + +

    Using Exceptions as form of flow control is not recommended as they obscure true exceptions when debugging. +Either add the necessary validation or use an alternate control structure.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExceptionAsFlowControlRule

    + +

    Example(s):

    + +
    public void bar() {
    +    try {
    +        try {
    +        } catch (Exception e) {
    +            throw new WrapperException(e);
    +            // this is essentially a GOTO to the WrapperException catch block
    +        }
    +    } catch (WrapperException e) {
    +        // do some more stuff
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/ExceptionAsFlowControl" />
    +
    + +

    ExcessiveClassLength

    + +

    Since: PMD 0.6

    + +

    Priority: Medium (3)

    + +

    Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more manageable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExcessiveClassLengthRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar1() {
    +        // 1000 lines of code
    +    }
    +    public void bar2() {
    +        // 1000 lines of code
    +    }
    +    public void bar3() {
    +        // 1000 lines of code
    +    }
    +
    +    public void barN() {
    +        // 1000 lines of code
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ExcessiveClassLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ExcessiveClassLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveImports

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    A high number of imports can indicate a high degree of coupling within an object. This rule +counts the number of unique imports and reports a violation if the count is above the +user-specified threshold.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExcessiveImportsRule

    + +

    Example(s):

    + +
    import blah.blah.Baz;
    +import blah.blah.Bif;
    +// 28 others from the same package elided
    +public class Foo {
    +    public void doWork() {}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum30.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ExcessiveImports" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ExcessiveImports">
    +    <properties>
    +        <property name="minimum" value="30.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveMethodLength

    + +

    Since: PMD 0.6

    + +

    Priority: Medium (3)

    + +

    When methods are excessively long this usually indicates that the method is doing more than its +name/signature might suggest. They also become challenging for others to digest since excessive +scrolling causes readers to lose focus. +Try to reduce the method length by creating helper methods and removing any copy/pasted code.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExcessiveMethodLengthRule

    + +

    Example(s):

    + +
    public void doSomething() {
    +    System.out.println("Hello world!");
    +    System.out.println("Hello world!");
    +    // 98 copies omitted for brevity.
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum100.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ExcessiveMethodLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ExcessiveMethodLength">
    +    <properties>
    +        <property name="minimum" value="100.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveParameterList

    + +

    Since: PMD 0.9

    + +

    Priority: Medium (3)

    + +

    Methods with numerous parameters are a challenge to maintain, especially if most of them share the +same datatype. These situations usually denote the need for new objects to wrap the numerous parameters.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExcessiveParameterListRule

    + +

    Example(s):

    + +
    public void addPerson(      // too many arguments liable to be mixed up
    +    int birthYear, int birthMonth, int birthDate, int height, int weight, int ssn) {
    +
    +    . . . .
    +}
    +
    +public void addPerson(      // preferred approach
    +    Date birthdate, BodyMeasurements measurements, int ssn) {
    +
    +    . . . .
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum10.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ExcessiveParameterList" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ExcessiveParameterList">
    +    <properties>
    +        <property name="minimum" value="10.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessivePublicCount

    + +

    Since: PMD 1.04

    + +

    Priority: Medium (3)

    + +

    Classes with large numbers of public methods and attributes require disproportionate testing efforts +since combinational side effects grow rapidly and increase risk. Refactoring these classes into +smaller ones not only increases testability and reliability but also allows new variations to be +developed easily.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ExcessivePublicCountRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public String value;
    +    public Bar something;
    +    public Variable var;
    +    // [... more more public attributes ...]
    +
    +    public void doWork() {}
    +    public void doMoreWork() {}
    +    public void doWorkAgain() {}
    +    // [... more more public methods ...]
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum45.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ExcessivePublicCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ExcessivePublicCount">
    +    <properties>
    +        <property name="minimum" value="45.0" />
    +    </properties>
    +</rule>
    +
    + +

    FinalFieldCouldBeStatic

    + +

    Since: PMD 1.1

    + +

    Priority: Medium (3)

    + +

    If a final field is assigned to a compile-time constant, it could be made static, thus saving overhead +in each object at runtime.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration
    + [@Final= true() and @Static= false()]
    + [not(preceding-sibling::Annotation/MarkerAnnotation/Name[@Image="Builder.Default"]
    +    and //ImportDeclaration/Name[@Image="lombok.Builder"])]
    +/VariableDeclarator
    + [VariableInitializer/Expression/PrimaryExpression[not(PrimarySuffix)]/PrimaryPrefix/Literal]
    +/VariableDeclaratorId
    +
    + +

    Example(s):

    + +
    public class Foo {
    +  public final int BAR = 42; // this could be static and save some space
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/FinalFieldCouldBeStatic" />
    +
    + +

    GodClass

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    The God Class rule detects the God Class design flaw using metrics. God classes do too many things, +are very big and overly complex. They should be split apart to be more object-oriented. +The rule uses the detection strategy described in "Object-Oriented Metrics in Practice". +The violations are reported against the entire class.

    + +

    See also the references:

    + +

    Michele Lanza and Radu Marinescu. Object-Oriented Metrics in Practice: +Using Software Metrics to Characterize, Evaluate, and Improve the Design +of Object-Oriented Systems. Springer, Berlin, 1 edition, October 2006. Page 80.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.GodClassRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/GodClass" />
    +
    + +

    ImmutableField

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    Identifies private fields whose values never change once object initialization ends either in the declaration +of the field or by a constructor. This helps in converting existing classes to becoming immutable ones. +Note that this rule does not enforce referenced object to be immutable itself. A class can still be mutable, even +if all its member fields are declared final. This is referred to as shallow immutability. For more information on +mutability, see Effective Java, 3rd Edition, Item 17: Minimize mutability.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ImmutableFieldRule

    + +

    Example(s):

    + +
    public class Foo {
    +  private int x; // could be final
    +  public Foo() {
    +      x = 7;
    +  }
    +  public void foo() {
    +     int a = x + 2;
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.Setter | lombok.Getter | lombok.Builder | lombok.Data | lombok.RequiredArgsConstructor | lombok.AllArgsConstructor | lombok.Value | lombok.NoArgsConstructorFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ImmutableField" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ImmutableField">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.Setter|lombok.Getter|lombok.Builder|lombok.Data|lombok.RequiredArgsConstructor|lombok.AllArgsConstructor|lombok.Value|lombok.NoArgsConstructor" />
    +    </properties>
    +</rule>
    +
    + +

    LawOfDemeter

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    The Law of Demeter is a simple rule, that says "only talk to friends". It helps to reduce coupling between classes +or objects.

    + +

    See also the references:

    + + + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.LawOfDemeterRule

    + +

    Example(s):

    + +
    public class Foo {
    +    /**
    +     * This example will result in two violations.
    +     */
    +    public void example(Bar b) {
    +        // this method call is ok, as b is a parameter of "example"
    +        C c = b.getC();
    +
    +        // this method call is a violation, as we are using c, which we got from B.
    +        // We should ask b directly instead, e.g. "b.doItOnC();"
    +        c.doIt();
    +
    +        // this is also a violation, just expressed differently as a method chain without temporary variables.
    +        b.getC().doIt();
    +
    +        // a constructor call, not a method call.
    +        D d = new D();
    +        // this method call is ok, because we have create the new instance of D locally.
    +        d.doSomethingElse();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/LawOfDemeter" />
    +
    + +

    LogicInversion

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Use opposite operator instead of negating the whole expression with a logic complement operator.

    + +

    This rule is defined by the following XPath expression:

    +
    //UnaryExpressionNotPlusMinus[@Image='!']/PrimaryExpression/PrimaryPrefix/Expression[EqualityExpression or RelationalExpression]
    +
    + +

    Example(s):

    + +
    public boolean bar(int a, int b) {
    +
    +    if (!(a == b)) { // use !=
    +         return false;
    +     }
    +
    +    if (!(a < b)) { // use >=
    +         return false;
    +    }
    +
    +    return true;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/LogicInversion" />
    +
    + +

    LoosePackageCoupling

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using classes from the configured package hierarchy outside of the package hierarchy, +except when using one of the configured allowed classes.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.LoosePackageCouplingRule

    + +

    Example(s):

    + +
    package some.package;
    +
    +import some.other.package.subpackage.subsubpackage.DontUseThisClass;
    +
    +public class Bar {
    +    DontUseThisClass boo = new DontUseThisClass();
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    packages Restricted packagesyes. Delimiter is ‘,’.
    classes Allowed classesyes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/LoosePackageCoupling" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/LoosePackageCoupling">
    +    <properties>
    +        <property name="packages" value="" />
    +        <property name="classes" value="" />
    +    </properties>
    +</rule>
    +
    + +

    ModifiedCyclomaticComplexity

    + +

    Deprecated

    + +

    Since: PMD 5.1.2

    + +

    Priority: Medium (3)

    + +

    Complexity directly affects maintenance costs is determined by the number of decision points in a method +plus one for the method entry. The decision points include ‘if’, ‘while’, ‘for’, and ‘case labels’ calls. +Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity. Modified complexity treats switch statements as a single +decision point.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule CyclomaticComplexity.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.ModifiedCyclomaticComplexityRule

    + +

    Example(s):

    + +
    public class Foo {    // This has a Cyclomatic Complexity = 9
    +1   public void example()  {
    +2       if (a == b)  {
    +3           if (a1 == b1) {
    +                fiddle();
    +4           } else if a2 == b2) {
    +                fiddle();
    +            }  else {
    +                fiddle();
    +            }
    +5       } else if (c == d) {
    +6           while (c == d) {
    +                fiddle();
    +            }
    +7        } else if (e == f) {
    +8           for (int n = 0; n < h; n++) {
    +                fiddle();
    +            }
    +        } else{
    +9           switch (z) {
    +                case 1:
    +                    fiddle();
    +                    break;
    +                case 2:
    +                    fiddle();
    +                    break;
    +                case 3:
    +                    fiddle();
    +                    break;
    +                default:
    +                    fiddle();
    +                    break;
    +            }
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    showMethodsComplexitytrueAdd method average violations to the reportno
    showClassesComplexitytrueAdd class average violations to the reportno
    reportLevel10Cyclomatic Complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/ModifiedCyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/ModifiedCyclomaticComplexity">
    +    <properties>
    +        <property name="showMethodsComplexity" value="true" />
    +        <property name="showClassesComplexity" value="true" />
    +        <property name="reportLevel" value="10" />
    +    </properties>
    +</rule>
    +
    + +

    NcssConstructorCount

    + +

    Deprecated

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given constructor. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule NcssCount.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.NcssConstructorCountRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    public Foo() {
    +        super();
    +
    +
    +
    +
    +
    +        //this constructor only has 1 NCSS lines
    +        super.foo();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum100.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/NcssConstructorCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/NcssConstructorCount">
    +    <properties>
    +        <property name="minimum" value="100.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssCount

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) metric to determine the number of lines +of code in a class, method or constructor. NCSS ignores comments, blank lines, and only counts actual +statements. For more details on the calculation, see the documentation of +the NCSS metric.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.NcssCountRule

    + +

    Example(s):

    + +
    import java.util.Collections;       // +0
    +import java.io.IOException;         // +0
    +
    +class Foo {                         // +1, total Ncss = 12
    +
    +  public void bigMethod()           // +1
    +      throws IOException {
    +    int x = 0, y = 2;               // +1
    +    boolean a = false, b = true;    // +1
    +
    +    if (a || b) {                   // +1
    +      try {                         // +1
    +        do {                        // +1
    +          x += 2;                   // +1
    +        } while (x < 12);
    +
    +        System.exit(0);             // +1
    +      } catch (IOException ioe) {   // +1
    +        throw new PatheticFailException(ioe); // +1
    +      }
    +    } else {
    +      assert false;                 // +1
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    methodReportLevel60NCSS reporting threshold for methodsno
    classReportLevel1500NCSS reporting threshold for classesno
    ncssOptions Choose options for the computation of Ncssyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/NcssCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/NcssCount">
    +    <properties>
    +        <property name="methodReportLevel" value="60" />
    +        <property name="classReportLevel" value="1500" />
    +        <property name="ncssOptions" value="" />
    +    </properties>
    +</rule>
    +
    + +

    NcssMethodCount

    + +

    Deprecated

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule NcssCount.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.NcssMethodCountRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    public int methd() {
    +        super.methd();
    +
    +
    +
    +
    +
    +
    +        //this method only has 1 NCSS lines
    +        return 1;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum100.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/NcssMethodCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/NcssMethodCount">
    +    <properties>
    +        <property name="minimum" value="100.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssTypeCount

    + +

    Deprecated

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given type. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule NcssCount.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.NcssTypeCountRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    public Foo() {
    +        //this class only has 6 NCSS lines
    +        super();
    +
    +
    +
    +
    +
    +        super.foo();
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1500.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/NcssTypeCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/NcssTypeCount">
    +    <properties>
    +        <property name="minimum" value="1500.0" />
    +    </properties>
    +</rule>
    +
    + +

    NPathComplexity

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    The NPath complexity of a method is the number of acyclic execution paths through that method. +While cyclomatic complexity counts the number of decision points in a method, NPath counts the number of +full paths from the beginning to the end of the block of the method. That metric grows exponentially, as +it multiplies the complexity of statements in the same block. For more details on the calculation, see the +documentation of the NPath metric.

    + +

    A threshold of 200 is generally considered the point where measures should be taken to reduce +complexity and increase readability.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.NPathComplexityRule

    + +

    Example(s):

    + +
    public class Foo {
    +  public static void bar() { // Ncss = 252: reported!
    +    boolean a, b = true;
    +    try { // 2 * 2 + 2 = 6
    +      if (true) { // 2
    +        List buz = new ArrayList();
    +      }
    +
    +      for(int i = 0; i < 19; i++) { // * 2
    +        List buz = new ArrayList();
    +      }
    +    } catch(Exception e) {
    +      if (true) { // 2
    +        e.printStackTrace();
    +      }
    +    }
    +
    +    while (j++ < 20) { //  * 2
    +      List buz = new ArrayList();
    +    }
    +
    +    switch(j) { // * 7
    +      case 1:
    +      case 2: break;
    +      case 3: j = 5; break;
    +      case 4: if (b && a) { bar(); } break;
    +      default: break;
    +    }
    +
    +    do { // * 3
    +        List buz = new ArrayList();
    +    } while (a && j++ < 30);
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    reportLevel200N-Path Complexity reporting thresholdno
    minimum200.0Deprecated Minimum reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/NPathComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/NPathComplexity">
    +    <properties>
    +        <property name="reportLevel" value="200" />
    +    </properties>
    +</rule>
    +
    + +

    SignatureDeclareThrowsException

    + +

    Since: PMD 1.2

    + +

    Priority: Medium (3)

    + +

    A method/constructor shouldn’t explicitly throw the generic java.lang.Exception, since it +is unclear which exceptions that can be thrown from the methods. It might be +difficult to document and understand such vague interfaces. Use either a class +derived from RuntimeException or a checked exception.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.SignatureDeclareThrowsExceptionRule

    + +

    Example(s):

    + +
    public void foo() throws Exception {
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    IgnoreJUnitCompletelyfalseAllow all methods in a JUnit testcase to throw Exceptionsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/SignatureDeclareThrowsException" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/SignatureDeclareThrowsException">
    +    <properties>
    +        <property name="IgnoreJUnitCompletely" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    SimplifiedTernary

    + +

    Since: PMD 5.4.0

    + +

    Priority: Medium (3)

    + +

    Look for ternary operators with the form condition ? literalBoolean : foo +or condition ? foo : literalBoolean.

    + +

    These expressions can be simplified respectively to +condition || foo when the literalBoolean is true +!condition && foo when the literalBoolean is false +or +!condition || foo when the literalBoolean is true +condition && foo when the literalBoolean is false

    + +

    This rule is defined by the following XPath expression:

    +
    //ConditionalExpression[not(PrimaryExpression/*/Literal) and (Expression/PrimaryExpression/*/Literal/BooleanLiteral)]
    +|
    +//ConditionalExpression[not(Expression/PrimaryExpression/*/Literal) and (PrimaryExpression/*/Literal/BooleanLiteral)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public boolean test() {
    +        return condition ? true : something(); // can be as simple as return condition || something();
    +    }
    +
    +    public void test2() {
    +        final boolean value = condition ? false : something(); // can be as simple as value = !condition && something();
    +    }
    +
    +    public boolean test3() {
    +        return condition ? something() : true; // can be as simple as return !condition || something();
    +    }
    +
    +    public void test4() {
    +        final boolean otherValue = condition ? something() : false; // can be as simple as condition && something();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/SimplifiedTernary" />
    +
    + +

    SimplifyBooleanAssertion

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Avoid negation in an assertTrue or assertFalse test.

    + +

    For example, rephrase:

    + +
    assertTrue(!expr);
    +
    + +

    as:

    + +
    assertFalse(expr);
    +
    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    pmd-java:typeIs('junit.framework.TestCase')
    +    or .//MarkerAnnotation/Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        ]
    +    ]
    +//StatementExpression
    +[
    +    .//Name[@Image='assertTrue' or  @Image='assertFalse']
    +    and
    +    PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression/UnaryExpressionNotPlusMinus[@Image='!']
    +        /PrimaryExpression/PrimaryPrefix
    +]
    +
    + +

    Example(s):

    + +
    public class SimpleTest extends TestCase {
    +    public void testX() {
    +        assertTrue("not empty", !r.isEmpty());  // replace with assertFalse("not empty", r.isEmpty())
    +        assertFalse(!r.isEmpty());              // replace with assertTrue(r.isEmpty())
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/SimplifyBooleanAssertion" />
    +
    + +

    SimplifyBooleanExpressions

    + +

    Since: PMD 1.05

    + +

    Priority: Medium (3)

    + +

    Avoid unnecessary comparisons in boolean expressions, they serve no purpose and impacts readability.

    + +

    This rule is defined by the following XPath expression:

    +
    //EqualityExpression/PrimaryExpression
    + /PrimaryPrefix/Literal/BooleanLiteral
    +
    + +

    Example(s):

    + +
    public class Bar {
    +  // can be simplified to
    +  // bar = isFoo();
    +  private boolean bar = (isFoo() == true);
    +
    +  public isFoo() { return false;}
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/SimplifyBooleanExpressions" />
    +
    + +

    SimplifyBooleanReturns

    + +

    Since: PMD 0.9

    + +

    Priority: Medium (3)

    + +

    Avoid unnecessary if-then-else statements when returning a boolean. The result of +the conditional test can be returned instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.SimplifyBooleanReturnsRule

    + +

    Example(s):

    + +
    public boolean isBarEqualTo(int x) {
    +    if (bar == x) {      // this bit of code...
    +        return true;
    +    } else {
    +        return false;
    +    }
    +}
    +
    +public boolean isBarEqualTo(int x) {
    +    return bar == x;    // can be replaced with this
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/SimplifyBooleanReturns" />
    +
    + +

    SimplifyConditional

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    No need to check for null before an instanceof; the instanceof keyword returns false when given a null argument.

    + +

    This rule is defined by the following XPath expression:

    +
    //Expression
    + [ConditionalOrExpression
    + [EqualityExpression[@Image='==']
    +  //NullLiteral
    +  and
    +  UnaryExpressionNotPlusMinus
    +   [@Image='!']//InstanceOfExpression[PrimaryExpression
    +     //Name/@Image = ancestor::ConditionalOrExpression/EqualityExpression
    +      /PrimaryExpression/PrimaryPrefix/Name/@Image]
    +  and
    +  (count(UnaryExpressionNotPlusMinus) + 1 = count(*))
    + ]
    +or
    +ConditionalAndExpression
    + [EqualityExpression[@Image='!=']//NullLiteral
    + and
    +InstanceOfExpression
    + [PrimaryExpression[not(PrimarySuffix[@ArrayDereference= true()])]
    +  //Name[not(contains(@Image,'.'))]/@Image = ancestor::ConditionalAndExpression
    +   /EqualityExpression/PrimaryExpression/PrimaryPrefix/Name/@Image]
    + and
    +(count(InstanceOfExpression) + 1 = count(*))
    + ]
    +]
    +
    + +

    Example(s):

    + +
    class Foo {
    +  void bar(Object x) {
    +    if (x != null && x instanceof Bar) {
    +      // just drop the "x != null" check
    +    }
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/SimplifyConditional" />
    +
    + +

    SingularField

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    Fields whose scopes are limited to just single methods do not rely on the containing +object to provide them to other methods. They may be better implemented as local variables +within those methods.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.SingularFieldRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private int x;  // no reason to exist at the Foo instance level
    +    public void foo(int y) {
    +     x = y + 5;
    +     return x;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.Setter | lombok.Getter | lombok.Builder | lombok.Data | lombok.RequiredArgsConstructor | lombok.AllArgsConstructor | lombok.Value | lombok.NoArgsConstructor | lombok.experimental.Delegate | lombok.EqualsAndHashCodeFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    checkInnerClassesfalseCheck inner classesno
    disallowNotAssignmentfalseDisallow violations where the first usage is not an assignmentno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/SingularField" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/SingularField">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.Setter|lombok.Getter|lombok.Builder|lombok.Data|lombok.RequiredArgsConstructor|lombok.AllArgsConstructor|lombok.Value|lombok.NoArgsConstructor|lombok.experimental.Delegate|lombok.EqualsAndHashCode" />
    +        <property name="checkInnerClasses" value="false" />
    +        <property name="disallowNotAssignment" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    StdCyclomaticComplexity

    + +

    Deprecated

    + +

    Since: PMD 5.1.2

    + +

    Priority: Medium (3)

    + +

    Complexity directly affects maintenance costs is determined by the number of decision points in a method +plus one for the method entry. The decision points include ‘if’, ‘while’, ‘for’, and ‘case labels’ calls. +Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. The rule is replaced +by the rule CyclomaticComplexity.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.StdCyclomaticComplexityRule

    + +

    Example(s):

    + +
    public class Foo {    // This has a Cyclomatic Complexity = 12
    +1   public void example()  {
    +2       if (a == b || (c == d && e == f))  { // Only one
    +3           if (a1 == b1) {
    +                fiddle();
    +4           } else if a2 == b2) {
    +                fiddle();
    +            }  else {
    +                fiddle();
    +            }
    +5       } else if (c == d) {
    +6           while (c == d) {
    +                fiddle();
    +            }
    +7        } else if (e == f) {
    +8           for (int n = 0; n < h; n++) {
    +                fiddle();
    +            }
    +        } else{
    +            switch (z) {
    +9               case 1:
    +                    fiddle();
    +                    break;
    +10              case 2:
    +                    fiddle();
    +                    break;
    +11              case 3:
    +                    fiddle();
    +                    break;
    +12              default:
    +                    fiddle();
    +                    break;
    +            }
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    showMethodsComplexitytrueAdd method average violations to the reportno
    showClassesComplexitytrueAdd class average violations to the reportno
    reportLevel10Cyclomatic Complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/StdCyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/StdCyclomaticComplexity">
    +    <properties>
    +        <property name="showMethodsComplexity" value="true" />
    +        <property name="showClassesComplexity" value="true" />
    +        <property name="reportLevel" value="10" />
    +    </properties>
    +</rule>
    +
    + +

    SwitchDensity

    + +

    Since: PMD 1.02

    + +

    Priority: Medium (3)

    + +

    A high ratio of statements to labels in a switch statement implies that the switch statement +is overloaded. Consider moving the statements into new methods or creating subclasses based +on the switch variable.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.SwitchDensityRule

    + +

    Example(s):

    + +
    public class Foo {
    +  public void bar(int x) {
    +    switch (x) {
    +      case 1: {
    +        // lots of statements
    +        break;
    +      } case 2: {
    +        // lots of statements
    +        break;
    +      }
    +    }
    +  }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum10.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/SwitchDensity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/SwitchDensity">
    +    <properties>
    +        <property name="minimum" value="10.0" />
    +    </properties>
    +</rule>
    +
    + +

    TooManyFields

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, +possibly through grouping related fields in new objects. For example, a class with individual +city/state/zip fields could park them within a single Address field.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.TooManyFieldsRule

    + +

    Example(s):

    + +
    public class Person {   // too many separate fields
    +   int birthYear;
    +   int birthMonth;
    +   int birthDate;
    +   float height;
    +   float weight;
    +}
    +
    +public class Person {   // this is more manageable
    +   Date birthDate;
    +   BodyMeasurements measurements;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxfields15Max allowable fieldsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/TooManyFields" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/TooManyFields">
    +    <properties>
    +        <property name="maxfields" value="15" />
    +    </properties>
    +</rule>
    +
    + +

    TooManyMethods

    + +

    Since: PMD 4.2

    + +

    Priority: Medium (3)

    + +

    A class with too many methods is probably a good suspect for refactoring, in order to reduce its +complexity and find a way to have more fine grained objects.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration/ClassOrInterfaceBody
    +     [
    +      count(./ClassOrInterfaceBodyDeclaration/MethodDeclaration[
    +         not (
    +                starts-with(@Name,'get')
    +                or
    +                starts-with(@Name,'set')
    +                or
    +                starts-with(@Name,'is')
    +            )
    +      ]) > $maxmethods
    +   ]
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxmethods10The method count reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/TooManyMethods" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/TooManyMethods">
    +    <properties>
    +        <property name="maxmethods" value="10" />
    +    </properties>
    +</rule>
    +
    + +

    UselessOverridingMethod

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    The overriding method merely calls the same method defined in a superclass.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.UselessOverridingMethodRule

    + +

    Example(s):

    + +
    public void foo(String bar) {
    +    super.foo(bar);      // why bother overriding?
    +}
    +
    +public String foo() {
    +    return super.foo();  // why bother overriding?
    +}
    +
    +@Id
    +public Long getId() {
    +    return super.getId();  // OK if 'ignoreAnnotations' is false, which is the default behavior
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreAnnotationsfalseIgnore annotationsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/UselessOverridingMethod" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/UselessOverridingMethod">
    +    <properties>
    +        <property name="ignoreAnnotations" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UseObjectForClearerAPI

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium (3)

    + +

    When you write a public method, you should be thinking in terms of an API. If your method is public, it means other class +will use it, therefore, you want (or need) to offer a comprehensive and evolutive API. If you pass a lot of information +as a simple series of Strings, you may think of using an Object to represent all those information. You’ll get a simpler +API (such as doWork(Workload workload), rather than a tedious series of Strings) and more importantly, if you need at some +point to pass extra data, you’ll be able to do so by simply modifying or extending Workload without any modification to +your API.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Public=true()]/MethodDeclarator/FormalParameters[
    +     count(FormalParameter/Type/ReferenceType/ClassOrInterfaceType[@Image = 'String' and @Array=false()]) > 3
    +]
    +
    + +

    Example(s):

    + +
    public class MyClass {
    +    public void connect(String username,
    +        String pssd,
    +        String databaseName,
    +        String databaseAdress)
    +        // Instead of those parameters object
    +        // would ensure a cleaner API and permit
    +        // to add extra data transparently (no code change):
    +        // void connect(UserData data);
    +    {
    +
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/design.xml/UseObjectForClearerAPI" />
    +
    + +

    UseUtilityClass

    + +

    Since: PMD 0.3

    + +

    Priority: Medium (3)

    + +

    For classes that only have static methods, consider making them utility classes. +Note that this doesn’t apply to abstract classes, since their subclasses may +well include non-static methods. Also, if you want this class to be a utility class, +remember to add a private constructor to prevent instantiation. +(Note, that this use was known before PMD 5.1.0 as UseSingleton).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.design.UseUtilityClassRule

    + +

    Example(s):

    + +
    public class MaybeAUtility {
    +  public static void foo() {}
    +  public static void bar() {}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.experimental.UtilityClassFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/design.xml/UseUtilityClass" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/design.xml/UseUtilityClass">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.experimental.UtilityClass" />
    +    </properties>
    +</rule>
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_documentation.html b/pmd_rules_java_documentation.html new file mode 100644 index 0000000000..f32b04803b --- /dev/null +++ b/pmd_rules_java_documentation.html @@ -0,0 +1,1763 @@ + + + + + + + + +Documentation | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Documentation

    +
    + + + +
    + + +
    Rules that are related to code documentation.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    CommentContent

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    A rule for the politically correct… we don’t want to offend anyone.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.documentation.CommentContentRule

    + +

    Example(s):

    + +
    //OMG, this is horrible, Bob is an idiot !!!
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    caseSensitivefalseCase sensitiveno
    disallowedTermsidiot | jerkIllegal terms or phrasesyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/documentation.xml/CommentContent" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/documentation.xml/CommentContent">
    +    <properties>
    +        <property name="caseSensitive" value="false" />
    +        <property name="disallowedTerms" value="idiot|jerk" />
    +    </properties>
    +</rule>
    +
    + +

    CommentRequired

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Denotes whether javadoc (formal) comments are required (or unwanted) for specific language elements.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.documentation.CommentRequiredRule

    + +

    Example(s):

    + +
    /**
    +*
    +*
    +* @author Jon Doe
    +*/
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    methodWithOverrideCommentRequirementIgnoredComments on @Override methods. Possible values: [Required, Ignored, Unwanted]no
    accessorCommentRequirementIgnoredComments on getters and setters". Possible values: [Required, Ignored, Unwanted]no
    classCommentRequirementRequiredClass comments. Possible values: [Required, Ignored, Unwanted]no
    headerCommentRequirementRequiredDeprecated Header comments. Please use the property "classCommentRequired" instead.. Possible values: [Required, Ignored, Unwanted]no
    fieldCommentRequirementRequiredField comments. Possible values: [Required, Ignored, Unwanted]no
    publicMethodCommentRequirementRequiredPublic method and constructor comments. Possible values: [Required, Ignored, Unwanted]no
    protectedMethodCommentRequirementRequiredProtected method constructor comments. Possible values: [Required, Ignored, Unwanted]no
    enumCommentRequirementRequiredEnum comments. Possible values: [Required, Ignored, Unwanted]no
    serialVersionUIDCommentRequiredIgnoredSerial version UID comments. Possible values: [Required, Ignored, Unwanted]no
    serialPersistentFieldsCommentRequiredIgnoredSerial persistent fields comments. Possible values: [Required, Ignored, Unwanted]no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/documentation.xml/CommentRequired" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/documentation.xml/CommentRequired">
    +    <properties>
    +        <property name="methodWithOverrideCommentRequirement" value="Ignored" />
    +        <property name="accessorCommentRequirement" value="Ignored" />
    +        <property name="classCommentRequirement" value="Required" />
    +        <property name="fieldCommentRequirement" value="Required" />
    +        <property name="publicMethodCommentRequirement" value="Required" />
    +        <property name="protectedMethodCommentRequirement" value="Required" />
    +        <property name="enumCommentRequirement" value="Required" />
    +        <property name="serialVersionUIDCommentRequired" value="Ignored" />
    +        <property name="serialPersistentFieldsCommentRequired" value="Ignored" />
    +    </properties>
    +</rule>
    +
    + +

    CommentSize

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Determines whether the dimensions of non-header comments found are within the specified limits.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.documentation.CommentSizeRule

    + +

    Example(s):

    + +
    /**
    +*
    +*   too many lines!
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*
    +*/
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxLines6Maximum linesno
    maxLineLength80Maximum line lengthno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/documentation.xml/CommentSize" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/documentation.xml/CommentSize">
    +    <properties>
    +        <property name="maxLines" value="6" />
    +        <property name="maxLineLength" value="80" />
    +    </properties>
    +</rule>
    +
    + +

    UncommentedEmptyConstructor

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Uncommented Empty Constructor finds instances where a constructor does not +contain statements, but there is no comment. By explicitly commenting empty +constructors it is easier to distinguish between intentional (commented) +and unintentional empty constructors.

    + +

    This rule is defined by the following XPath expression:

    +
    //ConstructorDeclaration[@Private= false()]
    +                        [@containsComment = false()]
    +                        [not(BlockStatement)]
    +                        [$ignoreExplicitConstructorInvocation = true() or not(ExplicitConstructorInvocation)]
    +                        [not(../Annotation/MarkerAnnotation/Name[pmd-java:typeIs('javax.inject.Inject')])]
    +
    + +

    Example(s):

    + +
    public Foo() {
    +  // This constructor is intentionally empty. Nothing special is needed here.
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreExplicitConstructorInvocationfalseIgnore explicit constructor invocation when deciding whether constructor is empty or notno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/documentation.xml/UncommentedEmptyConstructor" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/documentation.xml/UncommentedEmptyConstructor">
    +    <properties>
    +        <property name="ignoreExplicitConstructorInvocation" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UncommentedEmptyMethodBody

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Uncommented Empty Method Body finds instances where a method body does not contain +statements, but there is no comment. By explicitly commenting empty method bodies +it is easier to distinguish between intentional (commented) and unintentional +empty methods.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration/Block[count(BlockStatement) = 0 and @containsComment = false()]
    +
    + +

    Example(s):

    + +
    public void doSomething() {
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/documentation.xml/UncommentedEmptyMethodBody" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_errorprone.html b/pmd_rules_java_errorprone.html new file mode 100644 index 0000000000..96e629d3f1 --- /dev/null +++ b/pmd_rules_java_errorprone.html @@ -0,0 +1,5277 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AssignmentInOperand

    + +

    Since: PMD 1.03

    + +

    Priority: Medium (3)

    + +

    Avoid assignments in operands; this can make code more complicated and harder to read.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AssignmentInOperandRule

    + +

    Example(s):

    + +
    public void bar() {
    +    int x = 2;
    +    if ((x = getX()) == 3) {
    +      System.out.println("3!");
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowIffalseAllow assignment within the conditional expression of an if statementno
    allowForfalseAllow assignment within the conditional expression of a for statementno
    allowWhilefalseAllow assignment within the conditional expression of a while statementno
    allowIncrementDecrementfalseAllow increment or decrement operators within the conditional expression of an if, for, or while statementno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/AssignmentInOperand" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/AssignmentInOperand">
    +    <properties>
    +        <property name="allowIf" value="false" />
    +        <property name="allowFor" value="false" />
    +        <property name="allowWhile" value="false" />
    +        <property name="allowIncrementDecrement" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    AssignmentToNonFinalStatic

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    Identifies a possible unsafe usage of a static field.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AssignmentToNonFinalStaticRule

    + +

    Example(s):

    + +
    public class StaticField {
    +   static int x;
    +   public FinalFields(int y) {
    +    x = y; // unsafe
    +   }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic" />
    +
    + +

    AvoidAccessibilityAlteration

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Methods such as getDeclaredConstructors(), getDeclaredConstructor(Class[]) and setAccessible(), +as the interface PrivilegedAction, allow for the runtime alteration of variable, class, or +method visibility, even if they are private. This violates the principle of encapsulation.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression[
    +(
    +(PrimarySuffix[
    +        ends-with(@Image,'getDeclaredConstructors')
    +                or
    +        ends-with(@Image,'getDeclaredConstructor')
    +                or
    +        ends-with(@Image,'setAccessible')
    +        ])
    +or
    +(PrimaryPrefix/Name[
    +        ends-with(@Image,'getDeclaredConstructor')
    +        or
    +        ends-with(@Image,'getDeclaredConstructors')
    +        or
    +        starts-with(@Image,'AccessibleObject.setAccessible')
    +        ])
    +)
    +and
    +(//ImportDeclaration/Name[
    +        contains(@Image,'java.security.PrivilegedAction')])
    +]
    +
    + +

    Example(s):

    + +
    import java.lang.reflect.AccessibleObject;
    +import java.lang.reflect.Method;
    +import java.security.PrivilegedAction;
    +
    +public class Violation {
    +  public void invalidCallsInMethod() throws SecurityException, NoSuchMethodException {
    +    // Possible call to forbidden getDeclaredConstructors
    +    Class[] arrayOfClass = new Class[1];
    +    this.getClass().getDeclaredConstructors();
    +    this.getClass().getDeclaredConstructor(arrayOfClass);
    +    Class clazz = this.getClass();
    +    clazz.getDeclaredConstructor(arrayOfClass);
    +    clazz.getDeclaredConstructors();
    +      // Possible call to forbidden setAccessible
    +    clazz.getMethod("", arrayOfClass).setAccessible(false);
    +    AccessibleObject.setAccessible(null, false);
    +    Method.setAccessible(null, false);
    +    Method[] methodsArray = clazz.getMethods();
    +    int nbMethod;
    +    for ( nbMethod = 0; nbMethod < methodsArray.length; nbMethod++ ) {
    +      methodsArray[nbMethod].setAccessible(false);
    +    }
    +
    +      // Possible call to forbidden PrivilegedAction
    +    PrivilegedAction priv = (PrivilegedAction) new Object(); priv.run();
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration" />
    +
    + +

    AvoidAssertAsIdentifier

    + +

    Since: PMD 3.4

    + +

    Priority: Medium High (2)

    + +

    Use of the term ‘assert’ will conflict with newer versions of Java since it is a reserved word.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclaratorId[@Name='assert']
    +
    + +

    Example(s):

    + +
    public class A {
    +    public class Foo {
    +        String assert = "foo";
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidAssertAsIdentifier" />
    +
    + +

    AvoidBranchingStatementAsLastInLoop

    + +

    Since: PMD 5.0

    + +

    Priority: Medium High (2)

    + +

    Using a branching statement as the last part of a loop may be a bug, and/or is confusing. +Ensure that the usage is not a bug, or consider using another approach.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidBranchingStatementAsLastInLoopRule

    + +

    Example(s):

    + +
    // unusual use of branching statement in a loop
    +for (int i = 0; i < 10; i++) {
    +    if (i*i <= 25) {
    +        continue;
    +    }
    +    break;
    +}
    +
    +// this makes more sense...
    +for (int i = 0; i < 10; i++) {
    +    if (i*i > 25) {
    +        break;
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkBreakLoopTypesfor | do | whileList of loop types in which break statements will be checkedyes. Delimiter is ‘|’.
    checkContinueLoopTypesfor | do | whileList of loop types in which continue statements will be checkedyes. Delimiter is ‘|’.
    checkReturnLoopTypesfor | do | whileList of loop types in which return statements will be checkedyes. Delimiter is ‘|’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop">
    +    <properties>
    +        <property name="checkBreakLoopTypes" value="for|do|while" />
    +        <property name="checkContinueLoopTypes" value="for|do|while" />
    +        <property name="checkReturnLoopTypes" value="for|do|while" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidCallingFinalize

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    The method Object.finalize() is called by the garbage collector on an object when garbage collection determines +that there are no more references to the object. It should not be invoked by application logic.

    + +

    Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidCallingFinalizeRule

    + +

    Example(s):

    + +
    void foo() {
    +    Bar b = new Bar();
    +    b.finalize();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidCallingFinalize" />
    +
    + +

    AvoidCatchingNPE

    + +

    Since: PMD 1.8

    + +

    Priority: Medium (3)

    + +

    Code should never throw NullPointerExceptions under normal circumstances. A catch block may hide the +original error, causing other, more subtle problems later on.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement/FormalParameter/Type
    + /ReferenceType/ClassOrInterfaceType[@Image='NullPointerException']
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        try {
    +            // do something
    +        } catch (NullPointerException npe) {
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidCatchingNPE" />
    +
    + +

    AvoidCatchingThrowable

    + +

    Since: PMD 1.2

    + +

    Priority: Medium (3)

    + +

    Catching Throwable errors is not recommended since its scope is very broad. It includes runtime issues such as +OutOfMemoryError that should be exposed and managed separately.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidCatchingThrowableRule

    + +

    Example(s):

    + +
    public void bar() {
    +    try {
    +        // do something
    +    } catch (Throwable th) {  // should not catch Throwable
    +        th.printStackTrace();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidCatchingThrowable" />
    +
    + +

    AvoidDecimalLiteralsInBigDecimalConstructor

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    One might assume that the result of "new BigDecimal(0.1)" is exactly equal to 0.1, but it is actually +equal to .1000000000000000055511151231257827021181583404541015625. +This is because 0.1 cannot be represented exactly as a double (or as a binary fraction of any finite +length). Thus, the long value that is being passed in to the constructor is not exactly equal to 0.1, +appearances notwithstanding.

    + +

    The (String) constructor, on the other hand, is perfectly predictable: ‘new BigDecimal("0.1")’ is +exactly equal to 0.1, as one would expect. Therefore, it is generally recommended that the +(String) constructor be used in preference to this one.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression[pmd-java:typeIs('java.math.BigDecimal')]
    +[Arguments/ArgumentList/Expression/PrimaryExpression
    +    [
    +        pmd-java:typeIs('float') or
    +        pmd-java:typeIs('java.lang.Float') or
    +        pmd-java:typeIs('double') or
    +        pmd-java:typeIs('java.lang.Double')
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    BigDecimal bd = new BigDecimal(1.123);       // loss of precision, this would trigger the rule
    +
    +BigDecimal bd = new BigDecimal("1.123");     // preferred approach
    +
    +BigDecimal bd = new BigDecimal(12);          // preferred approach, ok for integer values
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
    +
    + +

    AvoidDuplicateLiterals

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Code containing duplicate String literals can usually be improved by declaring the String as a constant field.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidDuplicateLiteralsRule

    + +

    Example(s):

    + +
    private void bar() {
    +     buz("Howdy");
    +     buz("Howdy");
    +     buz("Howdy");
    +     buz("Howdy");
    +}
    +private void buz(String x) {}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    exceptionfile Deprecated (Use ‘exceptionList’ property) File containing strings to skip (one string per line), only used if ignore list is not set. File must be UTF-8 encoded.no
    separator,Ignore list separatorno
    maxDuplicateLiterals4Max duplicate literalsno
    minimumLength3Minimum string length to checkno
    skipAnnotationsfalseSkip literals within annotationsno
    exceptionList List of literals to ignore. A literal is ignored if its image can be found in this list. Components of this list should not be surrounded by double quotes.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
    +    <properties>
    +        <property name="separator" value="," />
    +        <property name="maxDuplicateLiterals" value="4" />
    +        <property name="minimumLength" value="3" />
    +        <property name="skipAnnotations" value="false" />
    +        <property name="exceptionList" value="" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidEnumAsIdentifier

    + +

    Since: PMD 3.4

    + +

    Priority: Medium High (2)

    + +

    Use of the term ‘enum’ will conflict with newer versions of Java since it is a reserved word.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclaratorId[@Name='enum']
    +
    + +

    Example(s):

    + +
    public class A {
    +    public class Foo {
    +        String enum = "foo";
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidEnumAsIdentifier" />
    +
    + +

    AvoidFieldNameMatchingMethodName

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    It can be confusing to have a field name with the same name as a method. While this is permitted, +having information (field) and actions (method) is not clear naming. Developers versed in +Smalltalk often prefer this approach as the methods denote accessor methods.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidFieldNameMatchingMethodNameRule

    + +

    Example(s):

    + +
    public class Foo {
    +    Object bar;
    +    // bar is data or an action or both?
    +    void bar() {
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingMethodName" />
    +
    + +

    AvoidFieldNameMatchingTypeName

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    It is somewhat confusing to have a field name matching the declaring class name. +This probably means that type and/or field names should be chosen more carefully.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidFieldNameMatchingTypeNameRule

    + +

    Example(s):

    + +
    public class Foo extends Bar {
    +    int foo;    // There is probably a better name that can be used
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingTypeName" />
    +
    + +

    AvoidInstanceofChecksInCatchClause

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Each caught exception type should be handled in its own catch clause.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement/FormalParameter
    + /following-sibling::Block//InstanceOfExpression/PrimaryExpression/PrimaryPrefix
    +  /Name[
    +   @Image = ./ancestor::Block/preceding-sibling::FormalParameter
    +    /VariableDeclaratorId/@Name
    +  ]
    +
    + +

    Example(s):

    + +
    try { // Avoid this
    +    // do something
    +} catch (Exception ee) {
    +    if (ee instanceof IOException) {
    +        cleanup();
    +    }
    +}
    +
    +try {  // Prefer this:
    +    // do something
    +} catch (IOException ee) {
    +    cleanup();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause" />
    +
    + +

    AvoidLiteralsInIfCondition

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium (3)

    + +

    Avoid using hard-coded literals in conditional statements. By declaring them as static variables +or private members with descriptive names maintainability is enhanced. By default, the literals "-1" and "0" are ignored. +More exceptions can be defined with the property "ignoreMagicNumbers".

    + +

    The rule doesn’t consider deeper expressions by default, but this can be enabled via the property ignoreExpressions. +With this property set to false, if-conditions like i == 1 + 5 are reported as well. Note that in that case, +the property ignoreMagicNumbers is not taken into account, if there are multiple literals involved in such an expression.

    + +

    This rule is defined by the following XPath expression:

    +
    (: simple case - no deep expressions :)
    +//IfStatement[$ignoreExpressions = true()]/Expression/*/PrimaryExpression/PrimaryPrefix/Literal
    +    [not(NullLiteral)]
    +    [not(BooleanLiteral)]
    +    [empty(index-of(tokenize($ignoreMagicNumbers, '\s*,\s*'), @Image))]
    +|
    +(: consider also deeper expressions :)
    +//IfStatement[$ignoreExpressions = false()]/Expression//*[local-name() != 'UnaryExpression' or @Operator != '-']/PrimaryExpression/PrimaryPrefix/Literal
    +    [not(NullLiteral)]
    +    [not(BooleanLiteral)]
    +    [empty(index-of(tokenize($ignoreMagicNumbers, '\s*,\s*'), @Image))]
    +|
    +(: consider negative literals :)
    +//IfStatement[$ignoreExpressions = false()]/Expression//UnaryExpression[@Operator = '-']/PrimaryExpression/PrimaryPrefix/Literal
    +    [not(NullLiteral)]
    +    [not(BooleanLiteral)]
    +    [empty(index-of(tokenize($ignoreMagicNumbers, '\s*,\s*'), concat('-', @Image)))]
    +|
    +(: consider multiple literals in expressions :)
    +//IfStatement[$ignoreExpressions = false()]/Expression[count(*/PrimaryExpression/PrimaryPrefix/Literal
    +    [not(NullLiteral)]
    +    [not(BooleanLiteral)]) > 1]
    +
    + +

    Example(s):

    + +
    private static final int MAX_NUMBER_OF_REQUESTS = 10;
    +
    +public void checkRequests() {
    +
    +    if (i == 10) {                        // magic number, buried in a method
    +      doSomething();
    +    }
    +
    +    if (i == MAX_NUMBER_OF_REQUESTS) {    // preferred approach
    +      doSomething();
    +    }
    +
    +    if (aString.indexOf('.') != -1) {}     // magic number -1, by default ignored
    +    if (aString.indexOf('.') >= 0) { }     // alternative approach
    +
    +    if (aDouble > 0.0) {}                  // magic number 0.0
    +    if (aDouble >= Double.MIN_VALUE) {}    // preferred approach
    +
    +    // with rule property "ignoreExpressions" set to "false"
    +    if (i == pos + 5) {}  // violation: magic number 5 within an (additive) expression
    +    if (i == pos + SUFFIX_LENGTH) {} // preferred approach
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoreMagicNumbers-1,0Comma-separated list of magic numbers, that should be ignoredno
    ignoreExpressionstrueIf true, only literals in simple if conditions are considered. Otherwise literals in expressions are checked, too.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition">
    +    <properties>
    +        <property name="ignoreMagicNumbers" value="-1,0" />
    +        <property name="ignoreExpressions" value="true" />
    +    </properties>
    +</rule>
    +
    + +

    AvoidLosingExceptionInformation

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium High (2)

    + +

    Statements in a catch block that invoke accessors on the exception without using the information +only add to code size. Either remove the invocation, or use the return result.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement/Block/BlockStatement/Statement/StatementExpression/PrimaryExpression/PrimaryPrefix/Name
    +[
    +   @Image = concat(../../../../../../../FormalParameter/VariableDeclaratorId/@Name, '.getMessage')
    +   or
    +   @Image = concat(../../../../../../../FormalParameter/VariableDeclaratorId/@Name, '.getLocalizedMessage')
    +   or
    +   @Image = concat(../../../../../../../FormalParameter/VariableDeclaratorId/@Name, '.getCause')
    +   or
    +   @Image = concat(../../../../../../../FormalParameter/VariableDeclaratorId/@Name, '.getStackTrace')
    +   or
    +   @Image = concat(../../../../../../../FormalParameter/VariableDeclaratorId/@Name, '.toString')
    +]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    try {
    +        // do something
    +    } catch (SomeException se) {
    +        se.getMessage();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidLosingExceptionInformation" />
    +
    + +

    AvoidMultipleUnaryOperators

    + +

    Since: PMD 4.2

    + +

    Priority: Medium High (2)

    + +

    The use of multiple unary operators may be problematic, and/or confusing. +Ensure that the intended usage is not a bug, or consider simplifying the expression.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidMultipleUnaryOperatorsRule

    + +

    Example(s):

    + +
    // These are typo bugs, or at best needlessly complex and confusing:
    +int i = - -1;
    +int j = + - +1;
    +int z = ~~2;
    +boolean b = !!true;
    +boolean c = !!!true;
    +
    +// These are better:
    +int i = 1;
    +int j = -1;
    +int z = 2;
    +boolean b = true;
    +boolean c = false;
    +
    +// And these just make your brain hurt:
    +int i = ~-2;
    +int j = -~7;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators" />
    +
    + +

    AvoidUsingOctalValues

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    Integer literals should not start with zero since this denotes that the rest of literal will be +interpreted as an octal value.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.AvoidUsingOctalValuesRule

    + +

    Example(s):

    + +
    int i = 012;    // set i with 10 not 12
    +int j = 010;    // set j with 8 not 10
    +k = i * j;      // set k with 80 not 120
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    strictfalseDetect violations between 00 and 07no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues">
    +    <properties>
    +        <property name="strict" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    BadComparison

    + +

    Since: PMD 1.8

    + +

    Priority: Medium (3)

    + +

    Avoid equality comparisons with Double.NaN. Due to the implicit lack of representation +precision when comparing floating point numbers these are likely to cause logic errors.

    + +

    This rule is defined by the following XPath expression:

    +
    //EqualityExpression[@Image='==']
    + /PrimaryExpression/PrimaryPrefix
    + /Name[@Image='Double.NaN' or @Image='Float.NaN']
    +
    + +

    Example(s):

    + +
    boolean x = (y == Double.NaN);
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/BadComparison" />
    +
    + +

    BeanMembersShouldSerialize

    + +

    Since: PMD 1.1

    + +

    Priority: Medium (3)

    + +

    If a class is a bean, or is referenced by a bean directly or indirectly it needs to be serializable. +Member variables need to be marked as transient, static, or have accessor methods in the class. Marking +variables as transient is the safest and easiest modification. Accessor methods should follow the Java +naming conventions, i.e. for a variable named foo, getFoo() and setFoo() accessor methods should be provided.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.BeanMembersShouldSerializeRule

    + +

    Example(s):

    + +
    private transient int someFoo;  // good, it's transient
    +private static int otherFoo;    // also OK
    +private int moreFoo;            // OK, has proper accessors, see below
    +private int badFoo;             // bad, should be marked transient
    +
    +private void setMoreFoo(int moreFoo){
    +      this.moreFoo = moreFoo;
    +}
    +
    +private int getMoreFoo(){
    +      return this.moreFoo;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    ignoredAnnotationslombok.Data | lombok.Getter | lombok.ValueFully qualified names of the annotation types that should be ignored by this ruleyes. Delimiter is ‘|’.
    prefix A variable prefix to skip, i.e., m_no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/BeanMembersShouldSerialize" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/BeanMembersShouldSerialize">
    +    <properties>
    +        <property name="ignoredAnnotations" value="lombok.Data|lombok.Getter|lombok.Value" />
    +        <property name="prefix" value="" />
    +    </properties>
    +</rule>
    +
    + +

    BrokenNullCheck

    + +

    Since: PMD 3.8

    + +

    Priority: Medium High (2)

    + +

    The null check is broken since it will throw a NullPointerException itself. +It is likely that you used || instead of && or vice versa.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.BrokenNullCheckRule

    + +

    Example(s):

    + +
    public String bar(String string) {
    +  // should be &&
    +    if (string!=null || !string.equals(""))
    +        return string;
    +  // should be ||
    +    if (string==null && string.equals(""))
    +        return string;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/BrokenNullCheck" />
    +
    + +

    CallSuperFirst

    + +

    Since: PMD 4.2.5

    + +

    Priority: Medium (3)

    + +

    Super should be called at the start of the method

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[
    +  @Name='onCreate' or
    +  @Name='onConfigurationChanged' or
    +  @Name='onPostCreate' or
    +  @Name='onPostResume' or
    +  @Name='onRestart' or
    +  @Name='onRestoreInstanceState' or
    +  @Name='onResume' or
    +  @Name='onStart'
    +  ]
    +    /Block[not(
    +      (BlockStatement[1]/Statement/StatementExpression/PrimaryExpression[./PrimaryPrefix[@SuperModifier= true()]]/PrimarySuffix[@Image= ancestor::MethodDeclaration/@Name]))]
    +[ancestor::ClassOrInterfaceDeclaration[ExtendsList/ClassOrInterfaceType[
    +  pmd-java:typeIs('android.app.Activity') or
    +  pmd-java:typeIs('android.app.Application') or
    +  pmd-java:typeIs('android.app.Service')
    +]]]
    +
    + +

    Example(s):

    + +
    public class DummyActivity extends Activity {
    +    public void onCreate(Bundle bundle) {
    +        // missing call to super.onCreate(bundle)
    +        foo();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CallSuperFirst" />
    +
    + +

    CallSuperLast

    + +

    Since: PMD 4.2.5

    + +

    Priority: Medium (3)

    + +

    Super should be called at the end of the method

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[
    +  @Name='finish' or
    +  @Name='onDestroy' or
    +  @Name='onPause' or
    +  @Name='onSaveInstanceState' or
    +  @Name='onStop' or
    +  @Name='onTerminate'
    +  ]
    +   /Block/BlockStatement[last()]
    +    [not(Statement/StatementExpression/PrimaryExpression[./PrimaryPrefix[@SuperModifier= true()]]/PrimarySuffix[@Image= ancestor::MethodDeclaration/@Name])]
    +[ancestor::ClassOrInterfaceDeclaration[ExtendsList/ClassOrInterfaceType[
    +  pmd-java:typeIs('android.app.Activity') or
    +  pmd-java:typeIs('android.app.Application') or
    +  pmd-java:typeIs('android.app.Service')
    +]]]
    +
    + +

    Example(s):

    + +
    public class DummyActivity extends Activity {
    +    public void onPause() {
    +        foo();
    +        // missing call to super.onPause()
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CallSuperLast" />
    +
    + +

    CheckSkipResult

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    The skip() method may skip a smaller number of bytes than requested. Check the returned value to find out if it was the case or not.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.CheckSkipResultRule

    + +

    Example(s):

    + +
    public class Foo {
    +
    +   private FileInputStream _s = new FileInputStream("file");
    +
    +   public void skip(int n) throws IOException {
    +      _s.skip(n); // You are not sure that exactly n bytes are skipped
    +   }
    +
    +   public void skipExactly(int n) throws IOException {
    +      while (n != 0) {
    +         long skipped = _s.skip(n);
    +         if (skipped == 0)
    +            throw new EOFException();
    +         n -= skipped;
    +      }
    +   }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CheckSkipResult" />
    +
    + +

    ClassCastExceptionWithToArray

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    When deriving an array of a specific class from your Collection, one should provide an array of +the same class as the parameter of the toArray() method. Doing otherwise you will will result +in a ClassCastException.

    + +

    This rule is defined by the following XPath expression:

    +
    //CastExpression[Type/ReferenceType/ClassOrInterfaceType[@Image != "Object"]]
    +    /PrimaryExpression
    +    [PrimaryPrefix/Name[ends-with(@Image, '.toArray')]]
    +    [PrimarySuffix/Arguments[not(*)]]
    +    [count(PrimarySuffix) = 1]
    +
    + +

    Example(s):

    + +
    Collection c = new ArrayList();
    +Integer obj = new Integer(1);
    +c.add(obj);
    +
    +    // this would trigger the rule (and throw a ClassCastException if executed)
    +Integer[] a = (Integer [])c.toArray();
    +
    +   // this is fine and will not trigger the rule
    +Integer[] b = (Integer [])c.toArray(new Integer[c.size()]);
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
    +
    + +

    CloneMethodMustBePublic

    + +

    Since: PMD 5.4.0

    + +

    Priority: Medium (3)

    + +

    The java Manual says "By convention, classes that implement this interface should override +Object.clone (which is protected) with a public method."

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Public= false()]
    +  [@Name = 'clone']
    +  [@Arity = 0]
    +
    + +

    Example(s):

    + +
    public class Foo implements Cloneable {
    +    @Override
    +    protected Object clone() throws CloneNotSupportedException { // Violation, must be public
    +    }
    +}
    +
    +public class Foo implements Cloneable {
    +    @Override
    +    protected Foo clone() { // Violation, must be public
    +    }
    +}
    +
    +public class Foo implements Cloneable {
    +    @Override
    +    public Object clone() // Ok
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CloneMethodMustBePublic" />
    +
    + +

    CloneMethodMustImplementCloneable

    + +

    Since: PMD 1.9

    + +

    Priority: Medium (3)

    + +

    The method clone() should only be implemented if the class implements the Cloneable interface with the exception of +a final method that only throws CloneNotSupportedException.

    + +

    The rule can also detect, if the class implements or extends a Cloneable class.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.CloneMethodMustImplementCloneableRule

    + +

    Example(s):

    + +
    public class MyClass {
    + public Object clone() throws CloneNotSupportedException {
    +  return foo;
    + }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable" />
    +
    + +

    CloneMethodReturnTypeMustMatchClassName

    + +

    Since: PMD 5.4.0

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.5

    + +

    If a class implements cloneable the return type of the method clone() must be the class name. That way, the caller +of the clone method doesn’t need to cast the returned clone to the correct type.

    + +

    Note: This is only possible with Java 1.5 or higher.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration
    +[
    +@Name = 'clone'
    +and @Arity = 0
    +and not (ResultType//ClassOrInterfaceType/@Image = ancestor::ClassOrInterfaceDeclaration[1]/@SimpleName)
    +]
    +
    + +

    Example(s):

    + +
    public class Foo implements Cloneable {
    +    @Override
    +    protected Object clone() { // Violation, Object must be Foo
    +    }
    +}
    +
    +public class Foo implements Cloneable {
    +    @Override
    +    public Foo clone() { //Ok
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CloneMethodReturnTypeMustMatchClassName" />
    +
    + +

    CloneThrowsCloneNotSupportedException

    + +

    Since: PMD 1.9

    + +

    Priority: Medium (3)

    + +

    The method clone() should throw a CloneNotSupportedException.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration
    +[
    +@Name = 'clone'
    +and @Arity = 0
    +and count(NameList/Name[contains
    +(@Image,'CloneNotSupportedException')]) = 0
    +]
    +[
    +../../../../ClassOrInterfaceDeclaration[@Final = false()]
    +]
    +
    + +

    Example(s):

    + +
    public class MyClass implements Cloneable{
    +    public Object clone() { // will cause an error
    +         MyClass clone = (MyClass)super.clone();
    +         return clone;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CloneThrowsCloneNotSupportedException" />
    +
    + +

    CloseResource

    + +

    Since: PMD 1.2.2

    + +

    Priority: Medium (3)

    + +

    Ensure that resources (like java.sql.Connection, java.sql.Statement, and java.sql.ResultSet objects +and any subtype of java.lang.AutoCloseable) are always closed after use. +Failing to do so might result in resource leaks.

    + +

    Note: It suffices to configure the super type, e.g. java.lang.AutoClosable, so that this rule automatically triggers +on any subtype (e.g. java.io.FileInputStream). Additionally specifying java.sql.Connection helps in detecting +the types, if the type resolution / auxclasspath is not correctly setup.

    + +

    Note: Since PMD 6.16.0 the default value for the property types contains java.lang.AutoCloseable and detects +now cases where the standard java.io.*Stream classes are involved. In order to restore the old behaviour, +just remove "AutoCloseable" from the types.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.CloseResourceRule

    + +

    Example(s):

    + +
    public class Bar {
    +    public void withSQL() {
    +        Connection c = pool.getConnection();
    +        try {
    +            // do stuff
    +        } catch (SQLException ex) {
    +           // handle exception
    +        } finally {
    +            // oops, should close the connection using 'close'!
    +            // c.close();
    +        }
    +    }
    +
    +    public void withFile() {
    +        InputStream file = new FileInputStream(new File("/tmp/foo"));
    +        try {
    +            int c = file.in();
    +        } catch (IOException e) {
    +            // handle exception
    +        } finally {
    +            // TODO: close file
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    closeTargets Methods which may close this resourceyes. Delimiter is ‘,’.
    typesjava.lang.AutoCloseable , java.sql.Connection , java.sql.Statement , java.sql.ResultSetAffected typesyes. Delimiter is ‘,’.
    closeAsDefaultTargettrueConsider ‘close’ as a target by defaultno
    allowedResourceTypesjava.io.ByteArrayOutputStream | java.io.ByteArrayInputStream | java.io.StringWriter | java.io.CharArrayWriter | java.util.stream.Stream | java.util.stream.IntStream | java.util.stream.LongStream | java.util.stream.DoubleStreamExact class names that do not need to be closedyes. Delimiter is ‘|’.
    closeNotInFinallyfalseDetect if ‘close’ (or other closeTargets) is called outside of a finally-blockno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/CloseResource" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/CloseResource">
    +    <properties>
    +        <property name="closeTargets" value="" />
    +        <property name="types" value="java.lang.AutoCloseable,java.sql.Connection,java.sql.Statement,java.sql.ResultSet" />
    +        <property name="closeAsDefaultTarget" value="true" />
    +        <property name="allowedResourceTypes" value="java.io.ByteArrayOutputStream|java.io.ByteArrayInputStream|java.io.StringWriter|java.io.CharArrayWriter|java.util.stream.Stream|java.util.stream.IntStream|java.util.stream.LongStream|java.util.stream.DoubleStream" />
    +        <property name="closeNotInFinally" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    CompareObjectsWithEquals

    + +

    Since: PMD 3.2

    + +

    Priority: Medium (3)

    + +

    Use equals() to compare object references; avoid comparing them with ==.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.CompareObjectsWithEqualsRule

    + +

    Example(s):

    + +
    class Foo {
    +  boolean bar(String a, String b) {
    +    return a == b;
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/CompareObjectsWithEquals" />
    +
    + +

    ConstructorCallsOverridableMethod

    + +

    Since: PMD 1.04

    + +

    Priority: High (1)

    + +

    Calling overridable methods during construction poses a risk of invoking methods on an incompletely +constructed object and can be difficult to debug. +It may leave the sub-class unable to construct its superclass or forced to replicate the construction +process completely within itself, losing the ability to call super(). If the default constructor +contains a call to an overridable method, the subclass may be completely uninstantiable. Note that +this includes method calls throughout the control flow graph - i.e., if a constructor Foo() calls a +private method bar() that calls a public method buz(), this denotes a problem.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.ConstructorCallsOverridableMethodRule

    + +

    Example(s):

    + +
    public class SeniorClass {
    +  public SeniorClass(){
    +      toString(); //may throw NullPointerException if overridden
    +  }
    +  public String toString(){
    +    return "IAmSeniorClass";
    +  }
    +}
    +public class JuniorClass extends SeniorClass {
    +  private String name;
    +  public JuniorClass(){
    +    super(); //Automatic call leads to NullPointerException
    +    name = "JuniorClass";
    +  }
    +  public String toString(){
    +    return name.toUpperCase();
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod" />
    +
    + +

    DataflowAnomalyAnalysis

    + +

    Deprecated

    + +

    Since: PMD 3.9

    + +

    Priority: Low (5)

    + +

    The dataflow analysis tracks local definitions, undefinitions and references to variables on different paths on the data flow. +From those informations there can be found various problems.

    + +
      +
    1. DU - Anomaly: A recently defined variable is undefined. These anomalies may appear in normal source text.
    2. +
    3. DD - Anomaly: A recently defined variable is redefined. This is ominous but don’t have to be a bug.
    4. +
    + +

    This rule is deprecated. Use UnusedAssignment in category bestpractices instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.DataflowAnomalyAnalysisRule

    + +

    Example(s):

    + +
    public void foo() {
    +  int buz = 5;
    +  buz = 6; // redefinition of buz -> dd-anomaly
    +  foo(buz);
    +  buz = 2;
    +} // buz is undefined when leaving scope -> du-anomaly
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxPaths1000Maximum number of checked paths per method. A lower value will increase the performance of the rule but may decrease anomalies found.no
    maxViolations100Maximum number of anomalies per classno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/DataflowAnomalyAnalysis" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/DataflowAnomalyAnalysis">
    +    <properties>
    +        <property name="maxPaths" value="1000" />
    +        <property name="maxViolations" value="100" />
    +    </properties>
    +</rule>
    +
    + +

    DetachedTestCase

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    The method appears to be a test case since it has public or default visibility, +non-static access, no arguments, no return value, has no annotations, but is a +member of a class that has one or more JUnit test cases. If it is a utility +method, it should likely have private visibility. If it is an ignored test, it +should be annotated with @Test and @Ignore.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceBodyDeclaration
    +[../ClassOrInterfaceBodyDeclaration/Annotation/*/Name
    +        [pmd-java:typeIs('org.junit.Test')
    +         or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +         or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +         or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +         or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +         or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')]
    +]
    +[not(Annotation)]
    +[MethodDeclaration[(@Public = true() or @PackagePrivate = true()) and @Static = false() and
    +        ResultType[@Void = true()] and
    +        MethodDeclarator/FormalParameters[@Size = 0]
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    public class MyTest {
    +    @Test
    +    public void someTest() {
    +    }
    +
    +    // violation: Not annotated
    +    public void someOtherTest () {
    +    }
    +
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DetachedTestCase" />
    +
    + +

    DoNotCallGarbageCollectionExplicitly

    + +

    Since: PMD 4.2

    + +

    Priority: Medium High (2)

    + +

    Calls to System.gc(), Runtime.getRuntime().gc(), and System.runFinalization() are not advised. Code should have the +same behavior whether the garbage collection is disabled using the option -Xdisableexplicitgc or not. +Moreover, "modern" jvms do a very good job handling garbage collections. If memory usage issues unrelated to memory +leaks develop within an application, it should be dealt with JVM options rather than within the code itself.

    + +

    This rule is defined by the following XPath expression:

    +
    //Name[
    +(starts-with(@Image, 'System.') and
    +(starts-with(@Image, 'System.gc') or
    +starts-with(@Image, 'System.runFinalization'))) or
    +(
    +starts-with(@Image,'Runtime.getRuntime') and
    +../../PrimarySuffix[ends-with(@Image,'gc')]
    +)
    +]
    +
    + +

    Example(s):

    + +
    public class GCCall {
    +    public GCCall() {
    +        // Explicit gc call !
    +        System.gc();
    +    }
    +
    +    public void doSomething() {
    +        // Explicit gc call !
    +        Runtime.getRuntime().gc();
    +    }
    +
    +    public explicitGCcall() {
    +        // Explicit gc call !
    +        System.gc();
    +    }
    +
    +    public void doSomething() {
    +        // Explicit gc call !
    +        Runtime.getRuntime().gc();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly" />
    +
    + +

    DoNotCallSystemExit

    + +

    Deprecated

    + +

    This rule has been renamed. Use instead: DoNotTerminateVM

    + +

    Deprecated

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Web applications should not call System.exit(), since only the web container or the +application server should stop the JVM. Otherwise a web application would terminate all other applications +running on the same application server.

    + +

    This rule also checks for the equivalent calls Runtime.getRuntime().exit() and Runtime.getRuntime().halt().

    + +

    This rule was called DoNotCallSystemExit until PMD 6.29.0.

    + +

    This rule is defined by the following XPath expression:

    +
    //Name[
    +    starts-with(@Image,'System.exit')
    +    or
    +    (starts-with(@Image,'Runtime.getRuntime') and ../../PrimarySuffix[ends-with(@Image,'exit') or ends-with(@Image,'halt')])
    +][not(ancestor::MethodDeclaration[1][@Name="main" and @Static = true()])]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    System.exit(0);                 // never call this when running in an application server!
    +}
    +public void foo() {
    +    Runtime.getRuntime().exit(0);   // never stop the JVM manually, the container will do this.
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotCallSystemExit" />
    +
    + +

    DoNotExtendJavaLangThrowable

    + +

    Since: PMD 6.0.0

    + +

    Priority: Medium (3)

    + +

    Extend Exception or RuntimeException instead of Throwable.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration/ExtendsList/ClassOrInterfaceType
    +  [@Image="Throwable" or @Image="java.lang.Throwable"]
    +
    + +

    Example(s):

    + +
    public class Foo extends Throwable { }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotExtendJavaLangThrowable" />
    +
    + +

    DoNotHardCodeSDCard

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium (3)

    + +

    Use Environment.getExternalStorageDirectory() instead of "/sdcard"

    + +

    This rule is defined by the following XPath expression:

    +
    //Literal[starts-with(@Image,'"/sdcard')]
    +
    + +

    Example(s):

    + +
    public class MyActivity extends Activity {
    +    protected void foo() {
    +        String storageLocation = "/sdcard/mypackage";   // hard-coded, poor approach
    +
    +       storageLocation = Environment.getExternalStorageDirectory() + "/mypackage"; // preferred approach
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotHardCodeSDCard" />
    +
    + +

    DoNotTerminateVM

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Web applications should not call System.exit(), since only the web container or the +application server should stop the JVM. Otherwise a web application would terminate all other applications +running on the same application server.

    + +

    This rule also checks for the equivalent calls Runtime.getRuntime().exit() and Runtime.getRuntime().halt().

    + +

    This rule was called DoNotCallSystemExit until PMD 6.29.0.

    + +

    This rule is defined by the following XPath expression:

    +
    //Name[
    +    starts-with(@Image,'System.exit')
    +    or
    +    (starts-with(@Image,'Runtime.getRuntime') and ../../PrimarySuffix[ends-with(@Image,'exit') or ends-with(@Image,'halt')])
    +][not(ancestor::MethodDeclaration[1][@Name="main" and @Static = true()])]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    System.exit(0);                 // never call this when running in an application server!
    +}
    +public void foo() {
    +    Runtime.getRuntime().exit(0);   // never stop the JVM manually, the container will do this.
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotTerminateVM" />
    +
    + +

    DoNotThrowExceptionInFinally

    + +

    Since: PMD 4.2

    + +

    Priority: Medium Low (4)

    + +

    Throwing exceptions within a ‘finally’ block is confusing since they may mask other exceptions +or code defects. +Note: This is a PMD implementation of the Lint4j rule "A throw in a finally block"

    + +

    This rule is defined by the following XPath expression:

    +
    //FinallyStatement[descendant::ThrowStatement]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        try {
    +            // Here do some stuff
    +        } catch( Exception e) {
    +            // Handling the issue
    +        } finally {
    +            // is this really a good idea ?
    +            throw new Exception();
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally" />
    +
    + +

    DontImportSun

    + +

    Since: PMD 1.5

    + +

    Priority: Medium Low (4)

    + +

    Avoid importing anything from the ‘sun.*’ packages. These packages are not portable and are likely to change.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.DontImportSunRule

    + +

    Example(s):

    + +
    import sun.misc.foo;
    +public class Foo {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DontImportSun" />
    +
    + +

    DontUseFloatTypeForLoopIndices

    + +

    Since: PMD 4.3

    + +

    Priority: Medium (3)

    + +

    Don’t use floating point for loop indices. If you must use floating point, use double +unless you’re certain that float provides enough precision and you have a compelling +performance need (space or time).

    + +

    This rule is defined by the following XPath expression:

    +
    //ForStatement/ForInit/LocalVariableDeclaration
    +/Type/PrimitiveType[@Image="float"]
    +
    + +

    Example(s):

    + +
    public class Count {
    +  public static void main(String[] args) {
    +    final int START = 2000000000;
    +    int count = 0;
    +    for (float f = START; f < START + 50; f++)
    +      count++;
    +      //Prints 0 because (float) START == (float) (START + 50).
    +      System.out.println(count);
    +      //The termination test misbehaves due to floating point granularity.
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices" />
    +
    + +

    EmptyCatchBlock

    + +

    Since: PMD 0.1

    + +

    Priority: Medium (3)

    + +

    Empty Catch Block finds instances where an exception is caught, but nothing is done. +In most circumstances, this swallows an exception which should either be acted on +or reported.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement
    + [not(Block/BlockStatement)]
    + [$allowCommentedBlocks != true() or Block/@containsComment = false()]
    + [FormalParameter/Type/ReferenceType
    +   /ClassOrInterfaceType[@Image != 'InterruptedException' and @Image != 'CloneNotSupportedException']
    + ]
    + [FormalParameter/VariableDeclaratorId[not(matches(@Name, $allowExceptionNameRegex))]]
    +
    + +

    Example(s):

    + +
    public void doSomething() {
    +    try {
    +        FileInputStream fis = new FileInputStream("/tmp/bugger");
    +    } catch (IOException ioe) {
    +        // not good
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowCommentedBlocksfalseEmpty blocks containing comments will be skippedno
    allowExceptionNameRegex^(ignored|expected)$Empty blocks catching exceptions with names matching this regular expression will be skippedno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/EmptyCatchBlock">
    +    <properties>
    +        <property name="allowCommentedBlocks" value="false" />
    +        <property name="allowExceptionNameRegex" value="^(ignored|expected)$" />
    +    </properties>
    +</rule>
    +
    + +

    EmptyFinalizer

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    Empty finalize methods serve no purpose and should be removed. Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name='finalize'][@Arity = 0]
    +  /Block[not(*)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +   protected void finalize() {}
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyFinalizer" />
    +
    + +

    EmptyFinallyBlock

    + +

    Since: PMD 0.4

    + +

    Priority: Medium (3)

    + +

    Empty finally blocks serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //FinallyStatement[not(Block/BlockStatement)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        try {
    +            int x=2;
    +        } finally {
    +            // empty!
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyFinallyBlock" />
    +
    + +

    EmptyIfStmt

    + +

    Since: PMD 0.1

    + +

    Priority: Medium (3)

    + +

    Empty If Statement finds instances where a condition is checked but nothing is done about it.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement/Statement
    + [EmptyStatement or Block[not(*)]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    + void bar(int x) {
    +  if (x == 0) {
    +   // empty!
    +  }
    + }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyIfStmt" />
    +
    + +

    EmptyInitializer

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Empty initializers serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //Initializer/Block[not(*)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +   static {} // Why ?
    +
    +   {} // Again, why ?
    +
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyInitializer" />
    +
    + +

    EmptyStatementBlock

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Empty block statements serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //BlockStatement/Statement/Block[not(*)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +   private int _bar;
    +
    +   public void setBar(int bar) {
    +      { _bar = bar; } // Why not?
    +      {} // But remove this.
    +   }
    +
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyStatementBlock" />
    +
    + +

    EmptyStatementNotInLoop

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    An empty statement (or a semicolon by itself) that is not used as the sole body of a ‘for’ +or ‘while’ loop is probably a bug. It could also be a double semicolon, which has no purpose +and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //EmptyStatement
    + [not(
    +       ../../../ForStatement
    +       or ../../../WhileStatement
    +       or ../../../BlockStatement/ClassOrInterfaceDeclaration
    +       or ../../../../../../ForStatement/Statement[1]
    +        /Block[1]/BlockStatement[1]/Statement/EmptyStatement
    +       or ../../../../../../WhileStatement/Statement[1]
    +        /Block[1]/BlockStatement[1]/Statement/EmptyStatement)
    + ]
    +
    + +

    Example(s):

    + +
    public void doit() {
    +      // this is probably not what you meant to do
    +      ;
    +      // the extra semicolon here this is not necessary
    +      System.out.println("look at the extra semicolon");;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyStatementNotInLoop" />
    +
    + +

    EmptySwitchStatements

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Empty switch statements serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement[count(*) = 1]
    +
    + +

    Example(s):

    + +
    public void bar() {
    +    int x = 2;
    +    switch (x) {
    +        // once there was code here
    +        // but it's been commented out or something
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptySwitchStatements" />
    +
    + +

    EmptySynchronizedBlock

    + +

    Since: PMD 1.3

    + +

    Priority: Medium (3)

    + +

    Empty synchronized blocks serve no purpose and should be removed.

    + +

    This rule is defined by the following XPath expression:

    +
    //SynchronizedStatement/Block[1][not(*)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        synchronized (this) {
    +            // empty!
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptySynchronizedBlock" />
    +
    + +

    EmptyTryBlock

    + +

    Since: PMD 0.4

    + +

    Priority: Medium (3)

    + +

    Avoid empty try blocks - what’s the point?

    + +

    This rule is defined by the following XPath expression:

    +
    //TryStatement[not(ResourceSpecification)]/Block[1][not(*)]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void bar() {
    +        try {
    +        } catch (Exception e) {
    +            e.printStackTrace();
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyTryBlock" />
    +
    + +

    EmptyWhileStmt

    + +

    Since: PMD 0.2

    + +

    Priority: Medium (3)

    + +

    Empty While Statement finds all instances where a while statement does nothing. +If it is a timing loop, then you should use Thread.sleep() for it; if it is +a while loop that does a lot in the exit expression, rewrite it to make it clearer.

    + +

    This rule is defined by the following XPath expression:

    +
    //WhileStatement/Statement[Block[not(*)] or EmptyStatement]
    +
    + +

    Example(s):

    + +
    void bar(int a, int b) {
    +    while (a == b) {
    +        // empty!
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EmptyWhileStmt" />
    +
    + +

    EqualsNull

    + +

    Since: PMD 1.9

    + +

    Priority: High (1)

    + +

    Tests for null should not use the equals() method. The ‘==’ operator should be used instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression
    +  [
    +    PrimaryPrefix[Name[ends-with(@Image, 'equals')]]
    +      [following-sibling::node()/Arguments/ArgumentList[count(Expression)=1]
    +          /Expression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
    +
    +    or
    +
    +    PrimarySuffix[ends-with(@Image, 'equals')]
    +      [following-sibling::node()/Arguments/ArgumentList[count(Expression)=1]
    +          /Expression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
    +
    +  ]
    +
    + +

    Example(s):

    + +
    String x = "foo";
    +
    +if (x.equals(null)) {   // bad form
    +    doSomething();
    +}
    +
    +if (x == null) {        // preferred
    +    doSomething();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/EqualsNull" />
    +
    + +

    FinalizeDoesNotCallSuperFinalize

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    If the finalize() is implemented, its last action should be to call super.finalize. Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name='finalize'][@Arity = 0]
    +   /Block
    +      /BlockStatement[last()]
    +      [not(Statement/StatementExpression/PrimaryExpression
    +            [./PrimaryPrefix[@SuperModifier= true()]]
    +            [./PrimarySuffix[@Image='finalize']]
    +          )
    +      ]
    +      [not(Statement/TryStatement/FinallyStatement
    +       /Block/BlockStatement/Statement/StatementExpression/PrimaryExpression
    +            [./PrimaryPrefix[@SuperModifier= true()]]
    +            [./PrimarySuffix[@Image='finalize']]
    +          )
    +      ]
    +
    + +

    Example(s):

    + +
    protected void finalize() {
    +    something();
    +    // neglected to call super.finalize()
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/FinalizeDoesNotCallSuperFinalize" />
    +
    + +

    FinalizeOnlyCallsSuperFinalize

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    If the finalize() is implemented, it should do something besides just calling super.finalize(). Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name='finalize'][@Arity = 0]
    +   /Block[count(BlockStatement)=1]
    +     /BlockStatement[
    +       Statement/StatementExpression/PrimaryExpression
    +       [./PrimaryPrefix[@SuperModifier= true()]]
    +       [./PrimarySuffix[@Image='finalize']]
    +     ]
    +
    + +

    Example(s):

    + +
    protected void finalize() {
    +    super.finalize();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/FinalizeOnlyCallsSuperFinalize" />
    +
    + +

    FinalizeOverloaded

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    Methods named finalize() should not have parameters. It is confusing and most likely an attempt to +overload Object.finalize(). It will not be called by the VM.

    + +

    Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name='finalize'][@Arity > 0]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    // this is confusing and probably a bug
    +    protected void finalize(int a) {
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/FinalizeOverloaded" />
    +
    + +

    FinalizeShouldBeProtected

    + +

    Since: PMD 1.1

    + +

    Priority: Medium (3)

    + +

    When overriding the finalize(), the new method should be set as protected. If made public, +other classes may invoke it at inappropriate times.

    + +

    Note that Oracle has declared Object.finalize() as deprecated since JDK 9.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Protected=false()][@Name='finalize'][@Arity = 0]
    +
    + +

    Example(s):

    + +
    public void finalize() {
    +    // do something
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/FinalizeShouldBeProtected" />
    +
    + +

    IdempotentOperations

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    Avoid idempotent operations - they have no effect.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.IdempotentOperationsRule

    + +

    Example(s):

    + +
    public class Foo {
    + public void bar() {
    +  int x = 2;
    +  x = x;
    + }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/IdempotentOperations" />
    +
    + +

    ImportFromSamePackage

    + +

    Since: PMD 1.02

    + +

    Priority: Medium (3)

    + +

    There is no need to import a type that lives in the same package.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.ImportFromSamePackageRule

    + +

    Example(s):

    + +
    package foo;
    +
    +import foo.Buz;     // no need for this
    +import foo.*;       // or this
    +
    +public class Bar{}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ImportFromSamePackage" />
    +
    + +

    InstantiationToGetClass

    + +

    Since: PMD 2.0

    + +

    Priority: Medium Low (4)

    + +

    Avoid instantiating an object just to call getClass() on it; use the .class public member instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimarySuffix
    + [@Image='getClass']
    + [parent::PrimaryExpression
    +  [PrimaryPrefix/AllocationExpression]
    +  [count(PrimarySuffix) = 2]
    + ]
    +
    + +

    Example(s):

    + +
    // replace this
    +Class c = new String().getClass();
    +
    +// with this:
    +Class c = String.class;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/InstantiationToGetClass" />
    +
    + +

    InvalidLogMessageFormat

    + +

    Since: PMD 5.5.0

    + +

    Priority: Low (5)

    + +

    Check for messages in slf4j and log4j2 (since 6.19.0) loggers with non matching number of arguments and placeholders.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.InvalidLogMessageFormatRule

    + +

    Example(s):

    + +
    LOGGER.error("forget the arg {}");
    +LOGGER.error("too many args {}", "arg1", "arg2");
    +LOGGER.error("param {}", "arg1", new IllegalStateException("arg")); //The exception is shown separately, so is correct.
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/InvalidLogMessageFormat" />
    +
    + +

    InvalidSlf4jMessageFormat

    + +

    Deprecated

    + +

    This rule has been renamed. Use instead: InvalidLogMessageFormat

    + +

    Deprecated

    + +

    Since: PMD 5.5.0

    + +

    Priority: Low (5)

    + +

    Check for messages in slf4j and log4j2 (since 6.19.0) loggers with non matching number of arguments and placeholders.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.InvalidLogMessageFormatRule

    + +

    Example(s):

    + +
    LOGGER.error("forget the arg {}");
    +LOGGER.error("too many args {}", "arg1", "arg2");
    +LOGGER.error("param {}", "arg1", new IllegalStateException("arg")); //The exception is shown separately, so is correct.
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/InvalidSlf4jMessageFormat" />
    +
    + +

    JumbledIncrementer

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Avoid jumbled loop incrementers - its usually a mistake, and is confusing even if intentional.

    + +

    This rule is defined by the following XPath expression:

    +
    //ForStatement
    +  [
    +    ForUpdate/StatementExpressionList/StatementExpression/PostfixExpression/PrimaryExpression/PrimaryPrefix/Name/@Image
    +    =
    +    ancestor::ForStatement/ForInit//VariableDeclaratorId/@Name
    +  ]
    +
    + +

    Example(s):

    + +
    public class JumbledIncrementerRule1 {
    +    public void foo() {
    +        for (int i = 0; i < 10; i++) {          // only references 'i'
    +            for (int k = 0; k < 20; i++) {      // references both 'i' and 'k'
    +                System.out.println("Hello");
    +            }
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/JumbledIncrementer" />
    +
    + +

    JUnitSpelling

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    In JUnit 3, the setUp method is used to set up all data entities required in running tests. +The tearDown method is used to clean up all data entities required in running tests. +You should not misspell method name if you want your test to set up and clean up everything correctly.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.JUnitSpellingRule

    + +

    Example(s):

    + +
    import junit.framework.*;
    +
    +public class Foo extends TestCase {
    +    public void setup() {}    // oops, should be setUp
    +    public void TearDown() {} // oops, should be tearDown
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/JUnitSpelling" />
    +
    + +

    JUnitStaticSuite

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    The suite() method in a JUnit test needs to be both public and static.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.JUnitStaticSuiteRule

    + +

    Example(s):

    + +
    import junit.framework.*;
    +
    +public class Foo extends TestCase {
    +    public void suite() {}         // oops, should be static
    +    private static void suite() {} // oops, should be public
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/JUnitStaticSuite" />
    +
    + +

    LoggerIsNotStaticFinal

    + +

    Deprecated

    + +

    Since: PMD 2.0

    + +

    Priority: Medium High (2)

    + +

    In most cases, the Logger reference can be declared as static and final.

    + +

    This rule is deprecated and will be removed with PMD 7.0.0. +The rule is replaced by ProperLogger.

    + +

    This rule is defined by the following XPath expression:

    +
    //VariableDeclarator
    + [parent::FieldDeclaration]
    + [../Type/ReferenceType
    +  /ClassOrInterfaceType[@Image='Logger']
    +   and
    +  (..[@Final= false()] or ..[@Static = false()] ) ]
    +
    + +

    Example(s):

    + +
    public class Foo{
    +    Logger log = Logger.getLogger(Foo.class.getName());                 // not recommended
    +
    +    static final Logger log = Logger.getLogger(Foo.class.getName());    // preferred approach
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/LoggerIsNotStaticFinal" />
    +
    + +

    MethodWithSameNameAsEnclosingClass

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    Non-constructor methods should not have the same name as the enclosing class.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.MethodWithSameNameAsEnclosingClassRule

    + +

    Example(s):

    + +
    public class MyClass {
    +
    +    public MyClass() {}         // this is OK because it is a constructor
    +
    +    public void MyClass() {}    // this is bad because it is a method
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass" />
    +
    + +

    MisplacedNullCheck

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    The null check here is misplaced. If the variable is null a NullPointerException will be thrown. +Either the check is useless (the variable will never be "null") or it is incorrect.

    + +

    This rule is defined by the following XPath expression:

    +
    //ConditionalAndExpression
    +  /EqualityExpression
    +    [@Image = '!=']
    +    (: one side is null :)
    +    [PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
    +    (: other side checks for the variable used somewhere in the first child of conditional and expression :)
    +    [some $var in preceding-sibling::PrimaryExpression//Name
    +      [not(ancestor::ConditionalOrExpression/EqualityExpression[@Image = '=='])]
    +      /@Image
    +      satisfies starts-with($var, concat(PrimaryExpression/PrimaryPrefix/Name/@Image, '.'))]
    +  /PrimaryExpression/PrimaryPrefix/Name
    +|
    +//ConditionalOrExpression
    +  /EqualityExpression
    +    [@Image = '==']
    +    (: one side is null :)
    +    [PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
    +    (: other side checks for the variable used somewhere in the first child of conditional or expression :)
    +    [some $var in preceding-sibling::PrimaryExpression//Name
    +      [not(ancestor::ConditionalAndExpression/EqualityExpression[@Image = '!='])]
    +      /@Image
    +      satisfies starts-with($var, concat(PrimaryExpression/PrimaryPrefix/Name/@Image, '.'))]
    +  /PrimaryExpression/PrimaryPrefix/Name
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        if (a.equals(baz) && a != null) {} // a could be null, misplaced null check
    +
    +        if (a != null && a.equals(baz)) {} // correct null check
    +    }
    +}
    +
    + +
    public class Foo {
    +    void bar() {
    +        if (a.equals(baz) || a == null) {} // a could be null, misplaced null check
    +
    +        if (a == null || a.equals(baz)) {} // correct null check
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/MisplacedNullCheck" />
    +
    + +

    MissingBreakInSwitch

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Switch statements without break or return statements for each case option +may indicate problematic behaviour. Empty cases are ignored as these indicate an intentional fall-through.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement
    +[(count(.//BreakStatement)
    + + count(BlockStatement//Statement/ReturnStatement)
    + + count(BlockStatement//Statement/ContinueStatement)
    + + count(BlockStatement//Statement/ThrowStatement)
    + + count(BlockStatement//Statement/IfStatement[@Else= true() and Statement[2][ReturnStatement|ContinueStatement|ThrowStatement]]/Statement[1][ReturnStatement|ContinueStatement|ThrowStatement])
    + + count(SwitchLabel[ following-sibling::node()[1][self::SwitchLabel] ])
    + + count(SwitchLabel[count(following-sibling::node()) = 0])
    +  < count (SwitchLabel))]
    +
    + +

    Example(s):

    + +
    public void bar(int status) {
    +    switch(status) {
    +      case CANCELLED:
    +        doCancelled();
    +        // break; hm, should this be commented out?
    +      case NEW:
    +        doNew();
    +        // is this really a fall-through?
    +      case REMOVED:
    +        doRemoved();
    +        // what happens if you add another case after this one?
    +      case OTHER: // empty case - this is interpreted as an intentional fall-through
    +      case ERROR:
    +        doErrorHandling();
    +        break;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/MissingBreakInSwitch" />
    +
    + +

    MissingSerialVersionUID

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Serializable classes should provide a serialVersionUID field. +The serialVersionUID field is also needed for abstract base classes. Each individual class in the inheritance +chain needs an own serialVersionUID field. See also Should an abstract class have a serialVersionUID.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration
    +    [@Interface = false()]
    +    [count(ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration
    +        /FieldDeclaration/VariableDeclarator/VariableDeclaratorId[@Name='serialVersionUID']) = 0]
    +    [(ImplementsList | ExtendsList)/ClassOrInterfaceType[pmd-java:typeIs('java.io.Serializable')]]
    +
    + +

    Example(s):

    + +
    public class Foo implements java.io.Serializable {
    +    String name;
    +    // Define serialization id to avoid serialization related bugs
    +    // i.e., public static final long serialVersionUID = 4328743;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/MissingSerialVersionUID" />
    +
    + +

    MissingStaticMethodInNonInstantiatableClass

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    A class that has private constructors and does not have any static methods or fields cannot be used.

    + +

    When one of the private constructors is annotated with one of the annotations, then the class is not considered +non-instantiatable anymore and no violation will be reported. +See the property annotations.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[@Nested= false()]
    +[
    +  (
    +    (: at least one constructor :)
    +    ./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration
    +    and
    +    (: only private constructors :)count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration) = count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Private= true()])
    +    and
    +    (: all constructors must not be annotated :)
    +    (every $x in $annotations satisfies
    +      not(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration/
    +            ../Annotation/MarkerAnnotation/Name[pmd-java:typeIs($x)]))
    +  )
    +  and
    +  (: no static methods :)not(.//MethodDeclaration[@Static= true()])
    +  and
    +  (: no (public, package-private, protected) static fields :)not(.//FieldDeclaration[@Private= false()][@Static= true()])
    +  and
    +  (: no nested classes, that are public and static, and have no constructors at all or a public constructor :)
    +  (: and have a method returning the outer class type :)
    +  (: or the inner class extends the outer class :)not(.//ClassOrInterfaceDeclaration[@Nested= true()]
    +           [@Public= true()]
    +           [@Static= true()]
    +           [not(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration) or ./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Public= true()]]
    +           [(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/MethodDeclaration
    +                [@Public= true()]
    +                [./ResultType/Type/ReferenceType/ClassOrInterfaceType
    +                    [@Image = //ClassOrInterfaceDeclaration[@Nested= false()]/@SimpleName]
    +                ]
    +            ) or (
    +                ./ExtendsList/ClassOrInterfaceType[@Image = //ClassOrInterfaceDeclaration[@Nested=false()]/@SimpleName]
    +            )]
    +        )
    +]
    +
    + +

    Example(s):

    + +
    // This class is unusable, since it cannot be
    +// instantiated (private constructor),
    +// and no static method can be called.
    +
    +public class Foo {
    +  private Foo() {}
    +  void foo() {}
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    annotationsorg.springframework.beans.factory.annotation.Autowired , javax.inject.InjectIf a constructor is annotated with one of these annotations, then the class is ignored.yes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass">
    +    <properties>
    +        <property name="annotations" value="org.springframework.beans.factory.annotation.Autowired, javax.inject.Inject" />
    +    </properties>
    +</rule>
    +
    + +

    MoreThanOneLogger

    + +

    Since: PMD 2.0

    + +

    Priority: Medium High (2)

    + +

    Normally only one logger is used in each class. This rule supports slf4j, log4j, Java Util Logging and +log4j2 (since 6.19.0).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.MoreThanOneLoggerRule

    + +

    Example(s):

    + +
    public class Foo {
    +    Logger log = Logger.getLogger(Foo.class.getName());
    +    // It is very rare to see two loggers on a class, normally
    +    // log information is multiplexed by levels
    +    Logger log2= Logger.getLogger(Foo.class.getName());
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/MoreThanOneLogger" />
    +
    + +

    NonCaseLabelInSwitchStatement

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    A non-case label (e.g. a named break/continue label) was present in a switch statement. +This legal, but confusing. It is easy to mix up the case labels and the non-case labels.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement//BlockStatement/Statement/LabeledStatement
    +
    + +

    Example(s):

    + +
    public class Foo {
    +  void bar(int a) {
    +   switch (a) {
    +     case 1:
    +       // do something
    +       break;
    +     mylabel: // this is legal, but confusing!
    +       break;
    +     default:
    +       break;
    +    }
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement" />
    +
    + +

    NonStaticInitializer

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    A non-static initializer block will be called any time a constructor is invoked (just prior to +invoking the constructor). While this is a valid language construct, it is rarely used and is +confusing.

    + +

    This rule is defined by the following XPath expression:

    +
    //Initializer[@Static=false()][not(ancestor::*[3][self::AllocationExpression or self::EnumConstant])]
    +
    + +

    Example(s):

    + +
    public class MyClass {
    +  // this block gets run before any call to a constructor
    +  {
    +    System.out.println("I am about to construct myself");
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/NonStaticInitializer" />
    +
    + +

    NullAssignment

    + +

    Since: PMD 1.02

    + +

    Priority: Medium (3)

    + +

    Assigning a "null" to a variable (outside of its declaration) is usually bad form. Sometimes, this type +of assignment is an indication that the programmer doesn’t completely understand what is going on in the code.

    + +

    NOTE: This sort of assignment may used in some cases to dereference objects and encourage garbage collection.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.NullAssignmentRule

    + +

    Example(s):

    + +
    public void bar() {
    +  Object x = null; // this is OK
    +  x = new Object();
    +     // big, complex piece of code here
    +  x = null; // this is not required
    +     // big, complex piece of code here
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/NullAssignment" />
    +
    + +

    OverrideBothEqualsAndHashcode

    + +

    Since: PMD 0.4

    + +

    Priority: Medium (3)

    + +

    Override both public boolean Object.equals(Object other), and public int Object.hashCode(), or override neither. Even if you are inheriting a hashCode() from a parent class, consider implementing hashCode and explicitly delegating to your superclass.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.OverrideBothEqualsAndHashcodeRule

    + +

    Example(s):

    + +
    public class Bar {        // poor, missing a hashcode() method
    +    public boolean equals(Object o) {
    +      // do some comparison
    +    }
    +}
    +
    +public class Baz {        // poor, missing an equals() method
    +    public int hashCode() {
    +      // return some hash value
    +    }
    +}
    +
    +public class Foo {        // perfect, both methods provided
    +    public boolean equals(Object other) {
    +      // do some comparison
    +    }
    +    public int hashCode() {
    +      // return some hash value
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode" />
    +
    + +

    ProperCloneImplementation

    + +

    Since: PMD 1.4

    + +

    Priority: Medium High (2)

    + +

    Object clone() should be implemented with super.clone().

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.ProperCloneImplementationRule

    + +

    Example(s):

    + +
    class Foo{
    +    public Object clone(){
    +        return new Foo(); // This is bad
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ProperCloneImplementation" />
    +
    + +

    ProperLogger

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    A logger should normally be defined private static final and be associated with the correct class. +private final Log log; is also allowed for rare cases where loggers need to be passed around, +with the restriction that the logger needs to be passed into the constructor.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration
    +[Type/ReferenceType/ClassOrInterfaceType[pmd-java:typeIs($loggerClass)]]
    +[
    +    (: check modifiers :)
    +    (@Private = false() or @Final = false())
    +    (: check logger name :)
    +    or (@Static and VariableDeclarator/VariableDeclaratorId[@Name != $staticLoggerName])
    +    or (@Static = false() and VariableDeclarator/VariableDeclaratorId[@Name != $loggerName])
    +
    +    (: check logger argument type matches class or enum name :)
    +    or .//ArgumentList//ClassOrInterfaceType[@Image != ancestor::ClassOrInterfaceDeclaration/@SimpleName]
    +    or .//ArgumentList//ClassOrInterfaceType[@Image != ancestor::EnumDeclaration/@SimpleName]
    +]
    +[not(
    +     (: special case - final logger initialized inside constructor :)
    +     not(VariableDeclarator/VariableInitializer)
    +     and @Static = false()
    +     and
    +     ancestor::ClassOrInterfaceBody//ConstructorDeclaration//StatementExpression
    +        [PrimaryExpression[PrimaryPrefix[@ThisModifier]]/PrimarySuffix[@Image=$loggerName]]
    +        [AssignmentOperator[@Image = '=']]
    +        [Expression/PrimaryExpression/PrimaryPrefix/Name[@Image = ancestor::ConstructorDeclaration//FormalParameter/VariableDeclaratorId/@Name]]
    +        [not(.//AllocationExpression)]
    +  )
    +]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +    private static final Log LOG = LogFactory.getLog(Foo.class);    // proper way
    +
    +    protected Log LOG = LogFactory.getLog(Testclass.class);         // wrong approach
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    staticLoggerNameLOGName of the static Logger variableno
    loggerNamelogName of the Logger instance variableno
    loggerClassLogClass name of the loggerno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/errorprone.xml/ProperLogger" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/ProperLogger">
    +    <properties>
    +        <property name="staticLoggerName" value="LOG" />
    +        <property name="loggerName" value="log" />
    +        <property name="loggerClass" value="Log" />
    +    </properties>
    +</rule>
    +
    + +

    ReturnEmptyArrayRatherThanNull

    + +

    Since: PMD 4.2

    + +

    Priority: High (1)

    + +

    For any method that returns an array, it is a better to return an empty array rather than a +null reference. This removes the need for null checking all results and avoids inadvertent +NullPointerExceptions.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration
    +[
    +(./ResultType/Type[@ArrayType= true()])
    +and
    +(./Block/BlockStatement/Statement/ReturnStatement/Expression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral)
    +]
    +
    + +

    Example(s):

    + +
    public class Example {
    +    // Not a good idea...
    +    public int[] badBehavior() {
    +        // ...
    +        return null;
    +    }
    +
    +    // Good behavior
    +    public String[] bonnePratique() {
    +        //...
    +        return new String[0];
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ReturnEmptyArrayRatherThanNull" />
    +
    + +

    ReturnFromFinallyBlock

    + +

    Since: PMD 1.05

    + +

    Priority: Medium (3)

    + +

    Avoid returning from a finally block, this can discard exceptions.

    + +

    This rule is defined by the following XPath expression:

    +
    //FinallyStatement//ReturnStatement except //FinallyStatement//(MethodDeclaration|LambdaExpression)//ReturnStatement
    +
    + +

    Example(s):

    + +
    public class Bar {
    +    public String foo() {
    +        try {
    +            throw new Exception( "My Exception" );
    +        } catch (Exception e) {
    +            throw e;
    +        } finally {
    +            return "A. O. K."; // return not recommended here
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
    +
    + +

    SimpleDateFormatNeedsLocale

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    Be sure to specify a Locale when creating SimpleDateFormat instances to ensure that locale-appropriate +formatting is used.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression
    + [ClassOrInterfaceType[@Image='SimpleDateFormat']]
    + [Arguments[@Size=1]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +  // Should specify Locale.US (or whatever)
    +  private SimpleDateFormat sdf = new SimpleDateFormat("pattern");
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SimpleDateFormatNeedsLocale" />
    +
    + +

    SingleMethodSingleton

    + +

    Since: PMD 5.4

    + +

    Priority: Medium High (2)

    + +

    Some classes contain overloaded getInstance. The problem with overloaded getInstance methods +is that the instance created using the overloaded method is not cached and so, +for each call and new objects will be created for every invocation.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.SingleMethodSingletonRule

    + +

    Example(s):

    + +
    public class Singleton {
    +
    +    private static Singleton singleton = new Singleton( );
    +
    +    private Singleton(){ }
    +
    +    public static Singleton getInstance( ) {
    +        return singleton;
    +    }
    +
    +    public static Singleton getInstance(Object obj){
    +        Singleton singleton = (Singleton) obj;
    +        return singleton;           //violation
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SingleMethodSingleton" />
    +
    + +

    SingletonClassReturningNewInstance

    + +

    Since: PMD 5.4

    + +

    Priority: Medium High (2)

    + +

    Some classes contain overloaded getInstance. The problem with overloaded getInstance methods +is that the instance created using the overloaded method is not cached and so, +for each call and new objects will be created for every invocation.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.SingletonClassReturningNewInstanceRule

    + +

    Example(s):

    + +
    class Singleton {
    +    private static Singleton instance = null;
    +    public static Singleton getInstance() {
    +        synchronized(Singleton.class) {
    +            return new Singleton();
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance" />
    +
    + +

    StaticEJBFieldShouldBeFinal

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    According to the J2EE specification, an EJB should not have any static fields +with write access. However, static read-only fields are allowed. This ensures proper +behavior especially when instances are distributed by the container on several JREs.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    (
    +    (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'SessionBean')])
    +    or
    +    (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'EJBHome')])
    +    or
    +    (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'EJBLocalObject')])
    +    or
    +    (./ImplementsList/ClassOrInterfaceType[ends-with(@Image,'EJBLocalHome')])
    +    or
    +    (./ExtendsList/ClassOrInterfaceType[ends-with(@Image,'EJBObject')])
    +    )
    +    and
    +    (./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration[
    +         (./FieldDeclaration[@Static = true()])
    +         and
    +         (./FieldDeclaration[@Final = false()])
    +    ])
    +]
    +
    + +

    Example(s):

    + +
    public class SomeEJB extends EJBObject implements EJBLocalHome {
    +
    +    private static int CountA;          // poor, field can be edited
    +
    +    private static final int CountB;    // preferred, read-only access
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/StaticEJBFieldShouldBeFinal" />
    +
    + +

    StringBufferInstantiationWithChar

    + +

    Since: PMD 3.9

    + +

    Priority: Medium Low (4)

    + +

    Individual character values provided as initialization arguments will be converted into integers. +This can lead to internal buffer sizes that are larger than expected. Some examples:

    + +
    new StringBuffer()      //  16
    +new StringBuffer(6)     //  6
    +new StringBuffer("hello world")  // 11 + 16 = 27
    +new StringBuffer('A')   //  chr(A) = 65
    +new StringBuffer("A")   //  1 + 16 = 17
    +
    +new StringBuilder()     //  16
    +new StringBuilder(6)    //  6
    +new StringBuilder("hello world")  // 11 + 16 = 27
    +new StringBuilder('C')   //  chr(C) = 67
    +new StringBuilder("A")   //  1 + 16 = 17
    +
    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression/ClassOrInterfaceType
    +[@Image='StringBuffer' or @Image='StringBuilder']
    +/../Arguments/ArgumentList/Expression/PrimaryExpression
    +/PrimaryPrefix/
    +Literal
    +  [starts-with(@Image, "'")]
    +  [ends-with(@Image, "'")]
    +
    + +

    Example(s):

    + +
    // misleading instantiation, these buffers
    +// are actually sized to 99 characters long
    +StringBuffer  sb1 = new StringBuffer('c');
    +StringBuilder sb2 = new StringBuilder('c');
    +
    +// in these forms, just single characters are allocated
    +StringBuffer  sb3 = new StringBuffer("c");
    +StringBuilder sb4 = new StringBuilder("c");
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar" />
    +
    + +

    SuspiciousEqualsMethodName

    + +

    Since: PMD 2.0

    + +

    Priority: Medium High (2)

    + +

    The method name and parameter number are suspiciously close to Object.equals, which can denote an +intention to override it. However, the method does not override Object.equals, but overloads it instead. +Overloading Object.equals method is confusing for other programmers, error-prone and hard to maintain, +especially when using inheritance, because @Override annotations used in subclasses can provide a false +sense of security. For more information on Object.equals method, see Effective Java, 3rd Edition, +Item 10: Obey the general contract when overriding equals.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Name = 'equals']
    +[
    +    (@Arity = 1
    +    and not (MethodDeclarator/FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
    +        [@Image = 'Object' or @Image = 'java.lang.Object'])
    +    or not (ResultType/Type/PrimitiveType[@Image = 'boolean'])
    +    )  or  (
    +    @Arity = 2
    +    and ResultType/Type/PrimitiveType[@Image = 'boolean']
    +    and MethodDeclarator/FormalParameters//ClassOrInterfaceType[@Image = 'Object' or @Image = 'java.lang.Object']
    +    and not(../Annotation/MarkerAnnotation/Name[@Image='Override'])
    +    )
    +]
    +| //MethodDeclaration[@Name = 'equal']
    +[
    +    @Arity = 1
    +    and MethodDeclarator/FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
    +        [@Image = 'Object' or @Image = 'java.lang.Object']
    +]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +   public int equals(Object o) {
    +     // oops, this probably was supposed to be boolean equals
    +   }
    +   public boolean equals(String s) {
    +     // oops, this probably was supposed to be equals(Object)
    +   }
    +   public boolean equals(Object o1, Object o2) {
    +     // oops, this probably was supposed to be equals(Object)
    +   }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName" />
    +
    + +

    SuspiciousHashcodeMethodName

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    The method name and return type are suspiciously close to hashCode(), which may denote an intention +to override the hashCode() method.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.SuspiciousHashcodeMethodNameRule

    + +

    Example(s):

    + +
    public class Foo {
    +    public int hashcode() { // oops, this probably was supposed to be 'hashCode'
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName" />
    +
    + +

    SuspiciousOctalEscape

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    A suspicious octal escape sequence was found inside a String literal. +The Java language specification (section 3.10.6) says an octal +escape sequence inside a literal String shall consist of a backslash +followed by:

    + +
    OctalDigit | OctalDigit OctalDigit | ZeroToThree OctalDigit OctalDigit
    +
    + +

    Any octal escape sequence followed by non-octal digits can be confusing, +e.g. "\038" is interpreted as the octal escape sequence "\03" followed by +the literal character "8".

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.SuspiciousOctalEscapeRule

    + +

    Example(s):

    + +
    public void foo() {
    +  // interpreted as octal 12, followed by character '8'
    +  System.out.println("suspicious: \128");
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/SuspiciousOctalEscape" />
    +
    + +

    TestClassWithoutTestCases

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Test classes end with the suffix Test. Having a non-test class with that name is not a good practice, +since most people will assume it is a test case. Test classes have test methods named testXXX.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.TestClassWithoutTestCasesRule

    + +

    Example(s):

    + +
    //Consider changing the name of the class if it is not a test
    +//Consider adding test methods if it is a test
    +public class CarTest {
    +   public static void main(String[] args) {
    +    // do something
    +   }
    +   // code
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/TestClassWithoutTestCases" />
    +
    + +

    UnconditionalIfStatement

    + +

    Since: PMD 1.5

    + +

    Priority: Medium (3)

    + +

    Do not use "if" statements whose conditionals are always true or always false.

    + +

    This rule is defined by the following XPath expression:

    +
    //IfStatement/Expression
    + [count(PrimaryExpression)=1]
    + /PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    public void close() {
    +        if (true) {        // fixed conditional, not recommended
    +            // ...
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UnconditionalIfStatement" />
    +
    + +

    UnnecessaryBooleanAssertion

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    A JUnit test assertion with a boolean literal is unnecessary since it always will evaluate to the same thing. +Consider using flow control (in case of assertTrue(false) or similar) or simply removing +statements like assertTrue(true) and assertFalse(false). If you just want a test to halt after finding +an error, use the fail() method and provide an indication message of why it did.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceDeclaration[
    +    pmd-java:typeIs('junit.framework.TestCase')
    +    or .//MarkerAnnotation/Name[
    +        pmd-java:typeIs('org.junit.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.Test')
    +        or pmd-java:typeIs('org.junit.jupiter.api.RepeatedTest')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestFactory')
    +        or pmd-java:typeIs('org.junit.jupiter.api.TestTemplate')
    +        or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
    +        ]
    +    ]
    +//StatementExpression
    +[
    +    PrimaryExpression/PrimaryPrefix/Name[@Image='assertTrue' or  @Image='assertFalse']
    +    and
    +    PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression[
    +        PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
    +        or
    +        UnaryExpressionNotPlusMinus[@Image='!']
    +            /PrimaryExpression/PrimaryPrefix[Literal/BooleanLiteral or Name[count(../../*)=1]]
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    public class SimpleTest extends TestCase {
    +    public void testX() {
    +        assertTrue(true);       // serves no real purpose
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UnnecessaryBooleanAssertion" />
    +
    + +

    UnnecessaryCaseChange

    + +

    Since: PMD 3.3

    + +

    Priority: Medium (3)

    + +

    Using equalsIgnoreCase() is faster than using toUpperCase/toLowerCase().equals()

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.UnnecessaryCaseChangeRule

    + +

    Example(s):

    + +
    boolean answer1 = buz.toUpperCase().equals("baz");              // should be buz.equalsIgnoreCase("baz")
    +
    +boolean answer2 = buz.toUpperCase().equalsIgnoreCase("baz");    // another unnecessary toUpperCase()
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UnnecessaryCaseChange" />
    +
    + +

    UnnecessaryConversionTemporary

    + +

    Since: PMD 0.1

    + +

    Priority: Medium (3)

    + +

    Avoid the use temporary objects when converting primitives to Strings. Use the static conversion methods +on the wrapper classes instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.UnnecessaryConversionTemporaryRule

    + +

    Example(s):

    + +
    public String convert(int x) {
    +    String foo = new Integer(x).toString(); // this wastes an object
    +
    +    return Integer.toString(x);             // preferred approach
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary" />
    +
    + +

    UnusedNullCheckInEquals

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    After checking an object reference for null, you should invoke equals() on that object rather than passing it to another object’s equals() method.

    + +

    This rule is defined by the following XPath expression:

    +
    (//PrimaryPrefix[ends-with(Name/@Image, '.equals') and Name/@Image != 'Arrays.equals'] | //PrimarySuffix[@Image='equals' and not(../PrimaryPrefix/Literal)])
    + /following-sibling::PrimarySuffix/Arguments/ArgumentList/Expression
    + /PrimaryExpression[not(PrimarySuffix)]/PrimaryPrefix
    + /Name[@Image = ./../../../../../../../../../../Expression/ConditionalAndExpression
    + /EqualityExpression[@Image="!=" and not(./preceding-sibling::*) and
    + ./PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
    +  /PrimaryExpression/PrimaryPrefix/Name/@Image]
    +
    + +

    Example(s):

    + +
    public class Test {
    +
    +    public String method1() { return "ok";}
    +    public String method2() { return null;}
    +
    +    public void method(String a) {
    +        String b;
    +        // I don't know it method1() can be "null"
    +        // but I know "a" is not null..
    +        // I'd better write a.equals(method1())
    +
    +        if (a!=null && method1().equals(a)) { // will trigger the rule
    +            //whatever
    +        }
    +
    +        if (method1().equals(a) && a != null) { // won't trigger the rule
    +            //whatever
    +        }
    +
    +        if (a!=null && method1().equals(b)) { // won't trigger the rule
    +            //whatever
    +        }
    +
    +        if (a!=null && "LITERAL".equals(a)) { // won't trigger the rule
    +            //whatever
    +        }
    +
    +        if (a!=null && !a.equals("go")) { // won't trigger the rule
    +            a=method2();
    +            if (method1().equals(a)) {
    +                //whatever
    +            }
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals" />
    +
    + +

    UseCorrectExceptionLogging

    + +

    Since: PMD 3.2

    + +

    Priority: Medium (3)

    + +

    To make sure the full stacktrace is printed out, use the logging statement with two arguments: a String and a Throwable.

    + +

    This rule is defined by the following XPath expression:

    +
    //CatchStatement/Block/BlockStatement/Statement/StatementExpression
    +    /PrimaryExpression
    +        [PrimaryPrefix/Name
    +            [starts-with(@Image,
    +             concat((ancestor::ClassOrInterfaceDeclaration/ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/FieldDeclaration
    +                [Type//ClassOrInterfaceType[@Image='Log']]
    +                /VariableDeclarator/VariableDeclaratorId/@Name)[1], '.'))
    +            ]
    +        ]
    +        [PrimarySuffix/Arguments[@Size= 1]]
    +        [PrimarySuffix/Arguments//Name/@Image = ancestor::CatchStatement/FormalParameter/VariableDeclaratorId/@Name]
    +
    + +

    Example(s):

    + +
    public class Main {
    +    private static final Log _LOG = LogFactory.getLog( Main.class );
    +    void bar() {
    +        try {
    +        } catch( Exception e ) {
    +            _LOG.error( e ); //Wrong!
    +        } catch( OtherException oe ) {
    +            _LOG.error( oe.getMessage(), oe ); //Correct
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UseCorrectExceptionLogging" />
    +
    + +

    UseEqualsToCompareStrings

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    Using ‘==’ or ‘!=’ to compare strings only works if intern version is used on both sides. +Use the equals() method instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //EqualityExpression/PrimaryExpression
    +[not(PrimarySuffix)]
    +[PrimaryPrefix/Literal
    +   [starts-with(@Image, '"')]
    +   [ends-with(@Image, '"')]]
    +
    + +

    Example(s):

    + +
    public boolean test(String s) {
    +    if (s == "one") return true;        // unreliable
    +    if ("two".equals(s)) return true;   // better
    +    return false;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings" />
    +
    + +

    UselessOperationOnImmutable

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    An operation on an Immutable object (String, BigDecimal or BigInteger) won’t change the object itself +since the result of the operation is a new object. Therefore, ignoring the operation result is an error.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.errorprone.UselessOperationOnImmutableRule

    + +

    Example(s):

    + +
    import java.math.*;
    +
    +class Test {
    +    void method1() {
    +        BigDecimal bd=new BigDecimal(10);
    +        bd.add(new BigDecimal(5));      // this will trigger the rule
    +    }
    +    void method2() {
    +        BigDecimal bd=new BigDecimal(10);
    +        bd = bd.add(new BigDecimal(5)); // this won't trigger the rule
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UselessOperationOnImmutable" />
    +
    + +

    UseLocaleWithCaseConversions

    + +

    Since: PMD 2.0

    + +

    Priority: Medium (3)

    + +

    When doing String::toLowerCase()/toUpperCase() conversions, use an explicit locale argument to specify the case transformation rules.

    + +

    Using String::toLowerCase() without arguments implicitly uses Locale::getDefault(). +The problem is that the default locale depends on the current JVM setup (and usually on the system in which it is running). +Using the system default may be exactly what you want (e.g. if you are manipulating strings you got through standard input), +but it may as well not be the case (e.g. if you are getting the string over the network or a file, and the encoding is well-defined +and independent of the environment). In the latter case, using the default locale makes the case transformation brittle, as +it may yield unexpected results on a machine whose locale has other case translation rules. For example, in Turkish, the +uppercase form of i is İ (U+0130, not ASCII) and not I (U+0049) as in English.

    + +

    The rule is intended to force developers to think about locales when dealing with strings. By taking a conscious decision about +the choice of locale at the time of writing, you reduce the risk of surprising behaviour down the line, and communicate your intent +to future readers.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression
    +[
    +PrimaryPrefix
    +[Name[ends-with(@Image, 'toLowerCase') or ends-with(@Image, 'toUpperCase')]]
    +[following-sibling::PrimarySuffix[position() = 1]/Arguments[@Size=0]]
    +
    +or
    +
    +PrimarySuffix
    +[ends-with(@Image, 'toLowerCase') or ends-with(@Image, 'toUpperCase')]
    +[following-sibling::PrimarySuffix[position() = 1]/Arguments[@Size=0]]
    +]
    +[not(PrimaryPrefix/Name[ends-with(@Image, 'toHexString')])]
    +
    + +

    Example(s):

    + +
    // violation - implicitly system-dependent conversion
    +if (x.toLowerCase().equals("list")) {}
    +
    +// The above will not match "LIST" on a system with a Turkish locale.
    +// It could be replaced with
    +if (x.toLowerCase(Locale.US).equals("list")) { }
    +// or simply
    +if (x.equalsIgnoreCase("list")) { }
    +
    +// ok - system independent conversion
    +String z = a.toLowerCase(Locale.ROOT);
    +
    +// ok - explicit system-dependent conversion
    +String z2 = a.toLowerCase(Locale.getDefault());
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UseLocaleWithCaseConversions" />
    +
    + +

    UseProperClassLoader

    + +

    Since: PMD 3.7

    + +

    Priority: Medium (3)

    + +

    In J2EE, the getClassLoader() method might not work as expected. Use +Thread.currentThread().getContextClassLoader() instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimarySuffix[@Image='getClassLoader'] | //PrimaryPrefix[ends-with(Name/@Image, '.getClassLoader')]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    ClassLoader cl = Bar.class.getClassLoader();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/errorprone.xml/UseProperClassLoader" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_multithreading.html b/pmd_rules_java_multithreading.html new file mode 100644 index 0000000000..1d0260594e --- /dev/null +++ b/pmd_rules_java_multithreading.html @@ -0,0 +1,1949 @@ + + + + + + + + +Multithreading | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Multithreading

    +
    + + + +
    + + +
    Rules that flag issues when dealing with multiple threads of execution.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidSynchronizedAtMethodLevel

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Method-level synchronization can cause problems when new code is added to the method. +Block-level synchronization helps to ensure that only the code that needs synchronization +gets it.

    + +

    This rule is defined by the following XPath expression:

    +
    //MethodDeclaration[@Synchronized = true()]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    // Try to avoid this:
    +    synchronized void foo() {
    +        // code, that doesn't need synchronization
    +        // ...
    +        // code, that requires synchronization
    +        if (!sharedData.has("bar")) {
    +            sharedData.add("bar");
    +        }
    +        // more code, that doesn't need synchronization
    +        // ...
    +    }
    +    // Prefer this:
    +    void bar() {
    +        // code, that doesn't need synchronization
    +        // ...
    +        synchronized(this) {
    +            if (!sharedData.has("bar")) {
    +                sharedData.add("bar");
    +            }
    +        }
    +        // more code, that doesn't need synchronization
    +        // ...
    +    }
    +
    +    // Try to avoid this for static methods:
    +    static synchronized void fooStatic() {
    +    }
    +
    +    // Prefer this:
    +    static void barStatic() {
    +        // code, that doesn't need synchronization
    +        // ...
    +        synchronized(Foo.class) {
    +            // code, that requires synchronization
    +        }
    +        // more code, that doesn't need synchronization
    +        // ...
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/AvoidSynchronizedAtMethodLevel" />
    +
    + +

    AvoidThreadGroup

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Avoid using java.lang.ThreadGroup; although it is intended to be used in a threaded environment +it contains methods that are not thread-safe.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression/ClassOrInterfaceType[pmd-java:typeIs('java.lang.ThreadGroup')]|
    +//PrimarySuffix[contains(@Image, 'getThreadGroup')]
    +
    + +

    Example(s):

    + +
    public class Bar {
    +    void buz() {
    +        ThreadGroup tg = new ThreadGroup("My threadgroup");
    +        tg = new ThreadGroup(tg, "my thread group");
    +        tg = Thread.currentThread().getThreadGroup();
    +        tg = System.getSecurityManager().getThreadGroup();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/AvoidThreadGroup" />
    +
    + +

    AvoidUsingVolatile

    + +

    Since: PMD 4.1

    + +

    Priority: Medium High (2)

    + +

    Use of the keyword ‘volatile’ is generally used to fine tune a Java application, and therefore, requires +a good expertise of the Java Memory Model. Moreover, its range of action is somewhat misknown. Therefore, +the volatile keyword should not be used for maintenance purpose and portability.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration[@Volatile = true()]
    +
    + +

    Example(s):

    + +
    public class ThrDeux {
    +  private volatile String var1; // not suggested
    +  private          String var2; // preferred
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/AvoidUsingVolatile" />
    +
    + +

    DoNotUseThreads

    + +

    Since: PMD 4.1

    + +

    Priority: Medium (3)

    + +

    The J2EE specification explicitly forbids the use of threads. Threads are resources, that should be managed and monitored by the J2EE server. +If the application creates threads on its own or uses own custom thread pools, then these threads are not managed, which could lead to resource exhaustion. +Also EJB’s might be moved between machines in a cluster and only managed resources can be moved along.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassOrInterfaceType[pmd-java:typeIs('java.lang.Thread') or pmd-java:typeIs('java.util.concurrent.ExecutorService')]
    +|
    +//StatementExpression/PrimaryExpression/PrimaryPrefix/Name[pmd-java:typeIs('java.util.concurrent.Executors') or pmd-java:typeIs('java.util.concurrent.ExecutorService')]
    +
    + +

    Example(s):

    + +
    // This is not allowed
    +public class UsingThread extends Thread {
    +
    +}
    +
    +// Neither this,
    +public class UsingExecutorService {
    +
    +    public void methodX() {
    +        ExecutorService executorService = Executors.newFixedThreadPool(5);
    +    }
    +}
    +
    +// Nor this,
    +public class Example implements ExecutorService {
    +
    +}
    +
    +// Nor this,
    +public class Example extends AbstractExecutorService {
    +
    +}
    +
    +// Nor this
    +public class UsingExecutors {
    +
    +    public void methodX() {
    +        Executors.newSingleThreadExecutor().submit(() -> System.out.println("Hello!"));
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/DoNotUseThreads" />
    +
    + +

    DontCallThreadRun

    + +

    Since: PMD 4.3

    + +

    Priority: Medium Low (4)

    + +

    Explicitly calling Thread.run() method will execute in the caller’s thread of control. Instead, call Thread.start() for the intended behavior.

    + +

    This rule is defined by the following XPath expression:

    +
    //StatementExpression/PrimaryExpression
    +[
    +    PrimaryPrefix
    +    [pmd-java:typeIs('java.lang.Thread')]
    +    [
    +            ./Name[ends-with(@Image, '.run') or @Image = 'run']
    +        or
    +            ./AllocationExpression/ClassOrInterfaceType[pmd-java:typeIs('java.lang.Thread')]
    +            and ../PrimarySuffix[@Image = 'run']
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    Thread t = new Thread();
    +t.run();            // use t.start() instead
    +new Thread().run(); // same violation
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/DontCallThreadRun" />
    +
    + +

    DoubleCheckedLocking

    + +

    Since: PMD 1.04

    + +

    Priority: High (1)

    + +

    Partially created objects can be returned by the Double Checked Locking pattern when used in Java. +An optimizing JRE may assign a reference to the baz variable before it calls the constructor of the object the +reference points to.

    + +

    Note: With Java 5, you can make Double checked locking work, if you declare the variable to be volatile.

    + +

    For more details refer to: http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double.html +or http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.multithreading.DoubleCheckedLockingRule

    + +

    Example(s):

    + +
    public class Foo {
    +    /*volatile */ Object baz = null; // fix for Java5 and later: volatile
    +    Object bar() {
    +        if (baz == null) { // baz may be non-null yet not fully created
    +            synchronized(this) {
    +                if (baz == null) {
    +                    baz = new Object();
    +                }
    +              }
    +        }
    +        return baz;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/DoubleCheckedLocking" />
    +
    + +

    NonThreadSafeSingleton

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Non-thread safe singletons can result in bad state changes. Eliminate +static singletons if possible by instantiating the object directly. Static +singletons are usually not needed as only a single instance exists anyway. +Other possible fixes are to synchronize the entire method or to use an +initialize-on-demand holder class.

    + +

    Refrain from using the double-checked locking pattern. The Java Memory Model doesn’t +guarantee it to work unless the variable is declared as volatile, adding an uneeded +performance penalty. Reference

    + +

    See Effective Java, item 48.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.multithreading.NonThreadSafeSingletonRule

    + +

    Example(s):

    + +
    private static Foo foo = null;
    +
    +//multiple simultaneous callers may see partially initialized objects
    +public static Foo getFoo() {
    +    if (foo==null) {
    +        foo = new Foo();
    +    }
    +    return foo;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkNonStaticMethodstrueCheck for non-static methods. Do not set this to false and checkNonStaticFields to true.no
    checkNonStaticFieldsfalseCheck for non-static fields. Do not set this to true and checkNonStaticMethods to false.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/multithreading.xml/NonThreadSafeSingleton" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/multithreading.xml/NonThreadSafeSingleton">
    +    <properties>
    +        <property name="checkNonStaticMethods" value="true" />
    +        <property name="checkNonStaticFields" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UnsynchronizedStaticDateFormatter

    + +

    Deprecated

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    SimpleDateFormat instances are not synchronized. Sun recommends using separate format instances +for each thread. If multiple threads must access a static formatter, the formatter must be +synchronized on block level.

    + +

    This rule has been deprecated in favor of the rule UnsynchronizedStaticFormatter.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.multithreading.UnsynchronizedStaticDateFormatterRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private static final SimpleDateFormat sdf = new SimpleDateFormat();
    +    void bar() {
    +        sdf.format(); // poor, no thread-safety
    +    }
    +    void foo() {
    +        synchronized (sdf) { // preferred
    +            sdf.format();
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowMethodLevelSynchronizationfalseIf true, method level synchronization is allowed as well as synchronized block. Otherwise only synchronized blocks are allowed.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/multithreading.xml/UnsynchronizedStaticDateFormatter" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/multithreading.xml/UnsynchronizedStaticDateFormatter">
    +    <properties>
    +        <property name="allowMethodLevelSynchronization" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UnsynchronizedStaticFormatter

    + +

    Since: PMD 6.11.0

    + +

    Priority: Medium (3)

    + +

    Instances of java.text.Format are generally not synchronized. +Sun recommends using separate format instances for each thread. +If multiple threads must access a static formatter, the formatter must be +synchronized on block level.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.multithreading.UnsynchronizedStaticFormatterRule

    + +

    Example(s):

    + +
    public class Foo {
    +    private static final SimpleDateFormat sdf = new SimpleDateFormat();
    +    void bar() {
    +        sdf.format(); // poor, no thread-safety
    +    }
    +    void foo() {
    +        synchronized (sdf) { // preferred
    +            sdf.format();
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowMethodLevelSynchronizationfalseIf true, method level synchronization is allowed as well as synchronized block. Otherwise only synchronized blocks are allowed.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter">
    +    <properties>
    +        <property name="allowMethodLevelSynchronization" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    UseConcurrentHashMap

    + +

    Since: PMD 4.2.6

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.5

    + +

    Since Java5 brought a new implementation of the Map designed for multi-threaded access, you can +perform efficient map reads without blocking other threads.

    + +

    This rule is defined by the following XPath expression:

    +
    //Type[../VariableDeclarator/VariableInitializer//AllocationExpression/ClassOrInterfaceType[@Image != 'ConcurrentHashMap']]
    +/ReferenceType/ClassOrInterfaceType[@Image = 'Map']
    +
    + +

    Example(s):

    + +
    public class ConcurrentApp {
    +  public void getMyInstance() {
    +    Map map1 = new HashMap();           // fine for single-threaded access
    +    Map map2 = new ConcurrentHashMap(); // preferred for use with multiple threads
    +
    +    // the following case will be ignored by this rule
    +    Map map3 = someModule.methodThatReturnMap(); // might be OK, if the returned map is already thread-safe
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/UseConcurrentHashMap" />
    +
    + +

    UseNotifyAllInsteadOfNotify

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    Thread.notify() awakens a thread monitoring the object. If more than one thread is monitoring, then only +one is chosen. The thread chosen is arbitrary; thus its usually safer to call notifyAll() instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //StatementExpression/PrimaryExpression
    +[PrimarySuffix/Arguments[@Size = 0]]
    +[
    +    PrimaryPrefix[
    +        ./Name[@Image='notify' or ends-with(@Image,'.notify')]
    +        or ../PrimarySuffix/@Image='notify'
    +        or (./AllocationExpression and ../PrimarySuffix[@Image='notify'])
    +    ]
    +]
    +
    + +

    Example(s):

    + +
    void bar() {
    +    x.notify();
    +    // If many threads are monitoring x, only one (and you won't know which) will be notified.
    +    // use instead:
    +    x.notifyAll();
    +  }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_performance.html b/pmd_rules_java_performance.html new file mode 100644 index 0000000000..1a0fe68104 --- /dev/null +++ b/pmd_rules_java_performance.html @@ -0,0 +1,2569 @@ + + + + + + + + +Performance | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Performance

    +
    + + + +
    + + +
    Rules that flag suboptimal code.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AddEmptyString

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    The conversion of literals to strings by concatenating them with empty strings is inefficient. +It is much better to use one of the type-specific toString() methods instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //AdditiveExpression/PrimaryExpression/PrimaryPrefix/Literal[@Image='""']
    +
    + +

    Example(s):

    + +
    String s = "" + 123;                // inefficient
    +String t = Integer.toString(456);   // preferred approach
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AddEmptyString" />
    +
    + +

    AppendCharacterWithChar

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    Avoid concatenating characters as strings in StringBuffer/StringBuilder.append methods.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.AppendCharacterWithCharRule

    + +

    Example(s):

    + +
    StringBuffer sb = new StringBuffer();
    +sb.append("a");     // avoid this
    +
    +StringBuffer sb = new StringBuffer();
    +sb.append('a');     // use this instead
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AppendCharacterWithChar" />
    +
    + +

    AvoidArrayLoops

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    Instead of manually copying data between two arrays, use the efficient Arrays.copyOf or System.arraycopy method instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //Statement[(ForStatement or WhileStatement) and
    +count(*//AssignmentOperator[@Image = '='])=1
    +and
    +*/Statement
    +[
    +./Block/BlockStatement/Statement/StatementExpression/PrimaryExpression
    +/PrimaryPrefix/Name/../../PrimarySuffix/Expression
    +[(PrimaryExpression or AdditiveExpression) and count
    +(.//PrimaryPrefix/Name)=1]//PrimaryPrefix/Name/@Image
    +and
    +./Block/BlockStatement/Statement/StatementExpression/Expression/PrimaryExpression
    +/PrimaryPrefix/Name/../../PrimarySuffix[count
    +(..//PrimarySuffix)=1]/Expression[(PrimaryExpression
    +or AdditiveExpression) and count(.//PrimaryPrefix/Name)=1]
    +//PrimaryPrefix/Name/@Image
    +]]
    +
    + +

    Example(s):

    + +
    public class Test {
    +    public void bar() {
    +        int[] a = new int[10];
    +        int[] b = new int[10];
    +        for (int i=0;i<10;i++) {
    +            b[i]=a[i];
    +        }
    +
    +        int[] c = new int[10];
    +        // this will trigger the rule
    +        for (int i=0;i<10;i++) {
    +            b[i]=a[c[i]];
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AvoidArrayLoops" />
    +
    + +

    AvoidCalendarDateCreation

    + +

    Since: PMD 6.25.0

    + +

    Priority: Medium (3)

    + +

    Problem: A Calendar is a heavyweight object and expensive to create.

    + +

    Solution: Use new Date(), Java 8+ java.time.LocalDateTime.now() or ZonedDateTime.now().

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryPrefix[Name[ends-with(@Image, 'Calendar.getInstance')]] [count(../PrimarySuffix) > 2 and ../PrimarySuffix[last()-1][@Image = 'getTime' or @Image='getTimeInMillis']]
    +|
    +//MethodDeclaration[not(MethodDeclarator/FormalParameters//ClassOrInterfaceType[pmd-java:typeIs('java.util.Calendar')])]
    +  /Block/BlockStatement//PrimaryExpression
    +  /PrimaryPrefix/Name
    +    [pmd-java:typeIs('java.util.Calendar')]
    +    [every $var in @Image satisfies (
    +       (ends-with($var, '.getTime') or ends-with($var, '.getTimeInMillis'))
    +       and
    +       (: ignore if .set* or .add* or .clear is called on the variable :)
    +       not(ancestor::Block/BlockStatement//Name[
    +          starts-with(@Image, concat((tokenize($var, '\.'), $var)[1], '.set'))
    +          or
    +          starts-with(@Image, concat((tokenize($var, '\.'), $var)[1], '.add'))
    +          or
    +          starts-with(@Image, concat((tokenize($var, '\.'), $var)[1], '.clear'))
    +       ])
    +    )]
    +|
    +//ClassOrInterfaceType[pmd-java:typeIs('org.joda.time.DateTime') or pmd-java:typeIs('org.joda.time.LocalDateTime')][../Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name[ends-with(@Image, 'Calendar.getInstance')]]
    +
    + +

    Example(s):

    + +
    import java.time.LocalDateTime;
    +import java.util.Calendar;
    +import java.util.Date;
    +
    +public class DateStuff {
    +    private Date bad1() {
    +        return Calendar.getInstance().getTime(); // now
    +    }
    +    private Date good1a() {
    +        return new Date(); // now
    +    }
    +    private LocalDateTime good1b() {
    +        return LocalDateTime.now();
    +    }
    +    private long bad2() {
    +        return Calendar.getInstance().getTimeInMillis();
    +    }
    +    private long good2() {
    +        return System.currentTimeMillis();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AvoidCalendarDateCreation" />
    +
    + +

    AvoidFileStream

    + +

    Since: PMD 6.0.0

    + +

    Priority: High (1)

    + +

    Minimum Language Version: Java 1.7

    + +

    The FileInputStream and FileOutputStream classes contains a finalizer method which will cause garbage +collection pauses. +See JDK-8080225 for details.

    + +

    The FileReader and FileWriter constructors instantiate FileInputStream and FileOutputStream, +again causing garbage collection issues while finalizer methods are called.

    + +
      +
    • Use Files.newInputStream(Paths.get(fileName)) instead of new FileInputStream(fileName).
    • +
    • Use Files.newOutputStream(Paths.get(fileName)) instead of new FileOutputStream(fileName).
    • +
    • Use Files.newBufferedReader(Paths.get(fileName)) instead of new FileReader(fileName).
    • +
    • Use Files.newBufferedWriter(Paths.get(fileName)) instead of new FileWriter(fileName).
    • +
    + +

    Please note, that the java.nio API does not throw a FileNotFoundException anymore, instead +it throws a NoSuchFileException. If your code dealt explicitly with a FileNotFoundException, +then this needs to be adjusted. Both exceptions are subclasses of IOException, so catching +that one covers both.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryPrefix/AllocationExpression/ClassOrInterfaceType[
    +       pmd-java:typeIs('java.io.FileInputStream')
    +    or pmd-java:typeIs('java.io.FileOutputStream')
    +    or pmd-java:typeIs('java.io.FileReader')
    +    or pmd-java:typeIs('java.io.FileWriter')
    +  ]
    +
    + +

    Example(s):

    + +
    // these instantiations cause garbage collection pauses, even if properly closed
    +
    +    FileInputStream fis = new FileInputStream(fileName);
    +    FileOutputStream fos = new FileOutputStream(fileName);
    +    FileReader fr = new FileReader(fileName);
    +    FileWriter fw = new FileWriter(fileName);
    +
    +    // the following instantiations help prevent Garbage Collection pauses, no finalization
    +
    +    try(InputStream is = Files.newInputStream(Paths.get(fileName))) {
    +    }
    +    try(OutputStream os = Files.newOutputStream(Paths.get(fileName))) {
    +    }
    +    try(BufferedReader br = Files.newBufferedReader(Paths.get(fileName), StandardCharsets.UTF_8)) {
    +    }
    +    try(BufferedWriter wr = Files.newBufferedWriter(Paths.get(fileName), StandardCharsets.UTF_8)) {
    +    }
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AvoidFileStream" />
    +
    + +

    AvoidInstantiatingObjectsInLoops

    + +

    Since: PMD 2.2

    + +

    Priority: Medium (3)

    + +

    New objects created within loops should be checked to see if they can created outside them and reused.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.AvoidInstantiatingObjectsInLoopsRule

    + +

    Example(s):

    + +
    public class Something {
    +    public static void main( String as[] ) {
    +        for (int i = 0; i < 10; i++) {
    +            Foo f = new Foo(); // Avoid this whenever you can it's really expensive
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AvoidInstantiatingObjectsInLoops" />
    +
    + +

    AvoidUsingShortType

    + +

    Since: PMD 4.1

    + +

    Priority: High (1)

    + +

    Java uses the ‘short’ type to reduce memory usage, not to optimize calculation. In fact, the JVM does not have any +arithmetic capabilities for the short type: the JVM must convert the short into an int, do the proper calculation +and convert the int back to a short. Thus any storage gains found through use of the ‘short’ type may be offset by +adverse impacts on performance.

    + +

    This rule is defined by the following XPath expression:

    +
    //FieldDeclaration/Type/PrimitiveType[@Image = 'short']
    +|
    +//ClassOrInterfaceBodyDeclaration[not(Annotation/MarkerAnnotation/Name[pmd-java:typeIs('java.lang.Override')])]
    +    /MethodDeclaration/ResultType/Type/PrimitiveType[@Image = 'short']
    +|
    +//ClassOrInterfaceBodyDeclaration[not(Annotation/MarkerAnnotation/Name[pmd-java:typeIs('java.lang.Override')])]
    +    /MethodDeclaration/MethodDeclarator/FormalParameters/FormalParameter/Type/PrimitiveType[@Image = 'short']
    +|
    +//LocalVariableDeclaration/Type/PrimitiveType[@Image = 'short']
    +|
    +//AnnotationMethodDeclaration/Type/PrimitiveType[@Image = 'short']
    +
    + +

    Example(s):

    + +
    public class UsingShort {
    +   private short doNotUseShort = 0;
    +
    +   public UsingShort() {
    +    short shouldNotBeUsed = 1;
    +    doNotUseShort += shouldNotBeUsed;
    +  }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/AvoidUsingShortType" />
    +
    + +

    BigIntegerInstantiation

    + +

    Since: PMD 3.9

    + +

    Priority: Medium (3)

    + +

    Don’t create instances of already existing BigInteger (BigInteger.ZERO, BigInteger.ONE) and +for Java 1.5 onwards, BigInteger.TEN and BigDecimal (BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN)

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.BigIntegerInstantiationRule

    + +

    Example(s):

    + +
    BigInteger bi = new BigInteger(1);       // reference BigInteger.ONE instead
    +BigInteger bi2 = new BigInteger("0");    // reference BigInteger.ZERO instead
    +BigInteger bi3 = new BigInteger(0.0);    // reference BigInteger.ZERO instead
    +BigInteger bi4;
    +bi4 = new BigInteger(0);                 // reference BigInteger.ZERO instead
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
    +
    + +

    BooleanInstantiation

    + +

    Since: PMD 1.2

    + +

    Priority: Medium High (2)

    + +

    Avoid instantiating Boolean objects; you can reference Boolean.TRUE, Boolean.FALSE, or call Boolean.valueOf() instead. +Note that new Boolean() is deprecated since JDK 9 for that reason.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.BooleanInstantiationRule

    + +

    Example(s):

    + +
    Boolean bar = new Boolean("true");        // unnecessary creation, just reference Boolean.TRUE;
    +Boolean buz = Boolean.valueOf(false);    // ...., just reference Boolean.FALSE;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/BooleanInstantiation" />
    +
    + +

    ByteInstantiation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium High (2)

    + +

    Calling new Byte() causes memory allocation that can be avoided by the static Byte.valueOf(). +It makes use of an internal cache that recycles earlier instances making it more memory efficient. +Note that new Byte() is deprecated since JDK 9 for that reason.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression
    +[not (ArrayDimsAndInits)
    +and ClassOrInterfaceType[pmd-java:typeIs('java.lang.Byte')]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private Byte i = new Byte(0); // change to Byte i = Byte.valueOf(0);
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/ByteInstantiation" />
    +
    + +

    ConsecutiveAppendsShouldReuse

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Consecutive calls to StringBuffer/StringBuilder .append should be chained, reusing the target object. This can improve the performance +by producing a smaller bytecode, reducing overhead and improving inlining. A complete analysis can be found here

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.ConsecutiveAppendsShouldReuseRule

    + +

    Example(s):

    + +
    String foo = " ";
    +
    +StringBuffer buf = new StringBuffer();
    +buf.append("Hello"); // poor
    +buf.append(foo);
    +buf.append("World");
    +
    +StringBuffer buf = new StringBuffer();
    +buf.append("Hello").append(foo).append("World"); // good
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/ConsecutiveAppendsShouldReuse" />
    +
    + +

    ConsecutiveLiteralAppends

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    Consecutively calling StringBuffer/StringBuilder.append(…) with literals should be avoided. +Since the literals are constants, they can already be combined into a single String literal and this String +can be appended in a single method call.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.ConsecutiveLiteralAppendsRule

    + +

    Example(s):

    + +
    StringBuilder buf = new StringBuilder();
    +buf.append("Hello").append(" ").append("World");    // poor
    +buf.append("Hello World");                          // good
    +
    +buf.append('h').append('e').append('l').append('l').append('o'); // poor
    +buf.append("hello");                                             // good
    +
    +buf.append(1).append('m');  // poor
    +buf.append("1m");           // good
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    threshold1Max consecutive appendsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends">
    +    <properties>
    +        <property name="threshold" value="1" />
    +    </properties>
    +</rule>
    +
    + +

    InefficientEmptyStringCheck

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    String.trim().length() == 0 (or String.trim().isEmpty() for the same reason) is an inefficient +way to check if a String is really blank, as it creates a new String object just to check its size. +Consider creating a static function that loops through a string, checking Character.isWhitespace() +on each character and returning false if a non-whitespace character is found. A Smarter code to +check for an empty string would be:

    + +
    private boolean checkTrimEmpty(String str) {
    +    for(int i = 0; i < str.length(); i++) {
    +        if(!Character.isWhitespace(str.charAt(i))) {
    +            return false;
    +        }
    +    }
    +    return true;
    +}
    +
    + +

    You can refer to Apache’s StringUtils#isBlank (in commons-lang), +Spring’s StringUtils#hasText (in the Spring framework) or Google’s +CharMatcher#whitespace (in Guava) for existing implementations (some might +include the check for != null).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.InefficientEmptyStringCheckRule

    + +

    Example(s):

    + +
    public void bar(String string) {
    +    if (string != null && string.trim().length() > 0) {
    +        doSomething();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/InefficientEmptyStringCheck" />
    +
    + +

    InefficientStringBuffering

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Avoid concatenating non-literals in a StringBuffer constructor or append() since intermediate buffers will +need to be be created and destroyed by the JVM.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.InefficientStringBufferingRule

    + +

    Example(s):

    + +
    // Avoid this, two buffers are actually being created here
    +StringBuffer sb = new StringBuffer("tmp = "+System.getProperty("java.io.tmpdir"));
    +
    +// do this instead
    +StringBuffer sb = new StringBuffer("tmp = ");
    +sb.append(System.getProperty("java.io.tmpdir"));
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/InefficientStringBuffering" />
    +
    + +

    InsufficientStringBufferDeclaration

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Failing to pre-size a StringBuffer or StringBuilder properly could cause it to re-size many times +during runtime. This rule attempts to determine the total number the characters that are actually +passed into StringBuffer.append(), but represents a best guess "worst case" scenario. An empty +StringBuffer/StringBuilder constructor initializes the object to 16 characters. This default +is assumed if the length of the constructor can not be determined.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.InsufficientStringBufferDeclarationRule

    + +

    Example(s):

    + +
    StringBuffer bad = new StringBuffer();
    +bad.append("This is a long string that will exceed the default 16 characters");
    +
    +StringBuffer good = new StringBuffer(41);
    +good.append("This is a long string, which is pre-sized");
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/InsufficientStringBufferDeclaration" />
    +
    + +

    IntegerInstantiation

    + +

    Since: PMD 3.5

    + +

    Priority: Medium High (2)

    + +

    Calling new Integer() causes memory allocation that can be avoided by the static Integer.valueOf(). +It makes use of an internal cache that recycles earlier instances making it more memory efficient. +Note that new Integer() is deprecated since JDK 9 for that reason.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression
    +  [not (ArrayDimsAndInits)
    +   and ClassOrInterfaceType[pmd-java:typeIs('java.lang.Integer')]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private Integer i = new Integer(0); // change to Integer i = Integer.valueOf(0);
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/IntegerInstantiation" />
    +
    + +

    LongInstantiation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium High (2)

    + +

    Calling new Long() causes memory allocation that can be avoided by the static Long.valueOf(). +It makes use of an internal cache that recycles earlier instances making it more memory efficient. +Note that new Long() is deprecated since JDK 9 for that reason.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression
    +[not (ArrayDimsAndInits)
    +and ClassOrInterfaceType[pmd-java:typeIs('java.lang.Long')]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private Long i = new Long(0); // change to Long i = Long.valueOf(0);
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/LongInstantiation" />
    +
    + +

    OptimizableToArrayCall

    + +

    Since: PMD 1.8

    + +

    Priority: Medium (3)

    + +

    Minimum Language Version: Java 1.6

    + +

    Calls to a collection’s toArray(E[]) method should specify a target array of zero size. This allows the JVM +to optimize the memory allocation and copying as much as possible.

    + +

    Previous versions of this rule (pre PMD 6.0.0) suggested the opposite, but current JVM implementations +perform always better, when they have full control over the target array. And allocation an array via +reflection is nowadays as fast as the direct allocation.

    + +

    See also Arrays of Wisdom of the Ancients

    + +

    Note: If you don’t need an array of the correct type, then the simple toArray() method without an array +is faster, but returns only an array of type Object[].

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression
    +[PrimaryPrefix/Name[ends-with(@Image, 'toArray')]]
    +[
    +PrimarySuffix/Arguments/ArgumentList/Expression
    + /PrimaryExpression/PrimaryPrefix/AllocationExpression
    + /ArrayDimsAndInits/Expression/PrimaryExpression/PrimaryPrefix[not(Literal[@Image='0'])]
    +]
    +
    + +

    Example(s):

    + +
    List<Foo> foos = getFoos();
    +
    +// much better; this one allows the jvm to allocate an array of the correct size and effectively skip
    +// the zeroing, since each array element will be overridden anyways
    +Foo[] fooArray = foos.toArray(new Foo[0]);
    +
    +// inefficient, the array needs to be zeroed out by the jvm before it is handed over to the toArray method
    +Foo[] fooArray = foos.toArray(new Foo[foos.size()]);
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/OptimizableToArrayCall" />
    +
    + +

    RedundantFieldInitializer

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Java will initialize fields with known default values so any explicit initialization of those same defaults +is redundant and results in a larger class file (approximately three additional bytecode instructions per field).

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.RedundantFieldInitializerRule

    + +

    Example(s):

    + +
    public class C {
    +    boolean b   = false;    // examples of redundant initializers
    +    byte by     = 0;
    +    short s     = 0;
    +    char c      = 0;
    +    int i       = 0;
    +    long l      = 0;
    +
    +    float f     = .0f;    // all possible float literals
    +    doable d    = 0d;     // all possible double literals
    +    Object o    = null;
    +
    +    MyClass mca[] = null;
    +    int i1 = 0, ia1[] = null;
    +
    +    class Nested {
    +        boolean b = false;
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/RedundantFieldInitializer" />
    +
    + +

    ShortInstantiation

    + +

    Since: PMD 4.0

    + +

    Priority: Medium High (2)

    + +

    Calling new Short() causes memory allocation that can be avoided by the static Short.valueOf(). +It makes use of an internal cache that recycles earlier instances making it more memory efficient. +Note that new Short() is deprecated since JDK 9 for that reason.

    + +

    This rule is defined by the following XPath expression:

    +
    //AllocationExpression
    +[not (ArrayDimsAndInits)
    +and ClassOrInterfaceType[pmd-java:typeIs('java.lang.Short')]]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +    private Short i = new Short(0); // change to Short i = Short.valueOf(0);
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/ShortInstantiation" />
    +
    + +

    SimplifyStartsWith

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    Calls to string.startsWith("x") with a string literal of length 1 can be rewritten using string.charAt(0), +at the expense of some readability. To prevent IndexOutOfBoundsException being thrown by the charAt method, +ensure that the string is not empty by making an additional check first.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryExpression
    + [PrimaryPrefix/Name
    +  [ends-with(@Image, '.startsWith')] or PrimarySuffix[@Image='startsWith']]
    + [PrimarySuffix/Arguments/ArgumentList
    +  /Expression/PrimaryExpression/PrimaryPrefix
    +  /Literal
    +   [string-length(@Image)=3]
    +   [starts-with(@Image, '"')]
    +   [ends-with(@Image, '"')]
    + ]
    +
    + +

    Example(s):

    + +
    public class Foo {
    +
    +    boolean checkIt(String x) {
    +        return x.startsWith("a");   // suboptimal
    +    }
    +
    +    boolean fasterCheckIt(String x) {
    +        return !x.isEmpty() && x.charAt(0) == 'a';  // faster approach
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/SimplifyStartsWith" />
    +
    + +

    StringInstantiation

    + +

    Since: PMD 1.0

    + +

    Priority: Medium High (2)

    + +

    Avoid instantiating String objects; this is usually unnecessary since they are immutable and can be safely shared.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.StringInstantiationRule

    + +

    Example(s):

    + +
    private String bar = new String("bar"); // just do a String bar = "bar";
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/StringInstantiation" />
    +
    + +

    StringToString

    + +

    Since: PMD 1.0

    + +

    Priority: Medium (3)

    + +

    Avoid calling toString() on objects already known to be string instances; this is unnecessary.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.StringToStringRule

    + +

    Example(s):

    + +
    private String baz() {
    +    String bar = "howdy";
    +    return bar.toString();
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/StringToString" />
    +
    + +

    TooFewBranchesForASwitchStatement

    + +

    Since: PMD 4.2

    + +

    Priority: Medium (3)

    + +

    Switch statements are intended to be used to support complex branching behaviour. Using a switch for only a few +cases is ill-advised, since switches are not as easy to understand as if-then statements. In these cases use the +if-then statement to increase code readability.

    + +

    This rule is defined by the following XPath expression:

    +
    //SwitchStatement[
    +    (count(.//SwitchLabel) < $minimumNumberCaseForASwitch)
    +]
    +
    + +

    Example(s):

    + +
    // With a minimumNumberCaseForASwitch of 3
    +public class Foo {
    +    public void bar() {
    +        switch (condition) {
    +            case ONE:
    +                instruction;
    +                break;
    +            default:
    +                break; // not enough for a 'switch' stmt, a simple 'if' stmt would have been more appropriate
    +        }
    +    }
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    minimumNumberCaseForASwitch3Minimum number of branches for a switchno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/java/performance.xml/TooFewBranchesForASwitchStatement" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/java/performance.xml/TooFewBranchesForASwitchStatement">
    +    <properties>
    +        <property name="minimumNumberCaseForASwitch" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    UnnecessaryWrapperObjectCreation

    + +

    Since: PMD 3.8

    + +

    Priority: Medium (3)

    + +

    Most wrapper classes provide static conversion methods that avoid the need to create intermediate objects +just to create the primitive forms. Using these avoids the cost of creating objects that also need to be +garbage-collected later.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.UnnecessaryWrapperObjectCreationRule

    + +

    Example(s):

    + +
    public int convert(String s) {
    +    int i, i2;
    +
    +    i = Integer.valueOf(s).intValue();  // this wastes an object
    +    i = Integer.parseInt(s);            // this is better
    +
    +    i2 = Integer.valueOf(i).intValue(); // this wastes an object
    +    i2 = i;                             // this is better
    +
    +    String s3 = Integer.valueOf(i2).toString(); // this wastes an object
    +    s3 = Integer.toString(i2);                  // this is better
    +
    +    return i2;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UnnecessaryWrapperObjectCreation" />
    +
    + +

    UseArrayListInsteadOfVector

    + +

    Since: PMD 3.0

    + +

    Priority: Medium (3)

    + +

    ArrayList is a much better Collection implementation than Vector if thread-safe operation is not required.

    + +

    This rule is defined by the following XPath expression:

    +
    //CompilationUnit[not(ImportDeclaration) or ImportDeclaration[@ImportedName='java.util.Vector']]
    +  //AllocationExpression/ClassOrInterfaceType
    +    [@Image='Vector' or @Image='java.util.Vector']
    +
    + +

    Example(s):

    + +
    public class SimpleTest extends TestCase {
    +    public void testX() {
    +    Collection c1 = new Vector();
    +    Collection c2 = new ArrayList();    // achieves the same with much better performance
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseArrayListInsteadOfVector" />
    +
    + +

    UseArraysAsList

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    The java.util.Arrays class has a "asList" method that should be used when you want to create a new List from +an array of objects. It is faster than executing a loop to copy all the elements of the array one by one.

    + +

    Note that the result of Arrays.asList() is backed by the specified array, +changes in the returned list will result in the array to be modified. +For that reason, it is not possible to add new elements to the returned list of Arrays.asList() (UnsupportedOperationException). +You must use new ArrayList<>(Arrays.asList(…)) if that is inconvenient for you (e.g. because of concurrent access).

    + +

    This rule is defined by the following XPath expression:

    +
    //Statement[
    +    (ForStatement) and (ForStatement//VariableInitializer//Literal[@IntLiteral= true() and @Image='0']) and (not(.//IfStatement))
    +   ]
    +   //StatementExpression[
    +    PrimaryExpression/PrimaryPrefix/Name[
    +     substring-before(@Image,'.add') = ancestor::MethodDeclaration//LocalVariableDeclaration[
    +      ./Type//ClassOrInterfaceType[
    +       @Image = 'Collection' or
    +       @Image = 'List' or @Image='ArrayList'
    +      ]
    +     ]
    +     /VariableDeclarator/VariableDeclaratorId[
    +      count(..//AllocationExpression/ClassOrInterfaceType[
    +       @Image="ArrayList"
    +      ]
    +      )=1
    +     ]/@Name
    +    ]
    +   and
    +   PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
    +   [
    +     @Image = ancestor::MethodDeclaration[1]//LocalVariableDeclaration/VariableDeclarator/VariableDeclaratorId[@ArrayType=true()]/@Name
    +     or
    +     @Image = ancestor::MethodDeclaration[1]//FormalParameter/VariableDeclaratorId/@Name
    +   ]
    +   /../..[count(.//PrimarySuffix)
    +   =1]/PrimarySuffix/Expression/PrimaryExpression/PrimaryPrefix
    +   /Name
    +   ]
    +
    + +

    Example(s):

    + +
    public class Test {
    +    public void foo(Integer[] ints) {
    +        // could just use Arrays.asList(ints)
    +        List<Integer> l= new ArrayList<>(100);
    +        for (int i=0; i< 100; i++) {
    +            l.add(ints[i]);
    +        }
    +        for (int i=0; i< 100; i++) {
    +            l.add(a[i].toString()); // won't trigger the rule
    +        }
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseArraysAsList" />
    +
    + +

    UseIndexOfChar

    + +

    Since: PMD 3.5

    + +

    Priority: Medium (3)

    + +

    Use String.indexOf(char) when checking for the index of a single character; it executes faster.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.UseIndexOfCharRule

    + +

    Example(s):

    + +
    String s = "hello world";
    +// avoid this
    +if (s.indexOf("d") {}
    +// instead do this
    +if (s.indexOf('d') {}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseIndexOfChar" />
    +
    + +

    UseIOStreamsWithApacheCommonsFileItem

    + +

    Since: PMD 6.25.0

    + +

    Priority: Medium (3)

    + +

    Problem: Use of FileItem.get() +and FileItem.getString() +could exhaust memory since they load the entire file into memory.

    + +

    Solution: Use FileItem.getInputStream() +and buffering.

    + +

    This rule is defined by the following XPath expression:

    +
    //PrimaryPrefix/Name
    +[ends-with(@Image, '.get') or ends-with(@Image, '.getString')]
    +[
    +    starts-with(@Image, concat(
    +        ancestor::MethodDeclaration//FormalParameter/Type/ReferenceType/ClassOrInterfaceType[pmd-java:typeIs('org.apache.commons.fileupload.FileItem')]/../../..//VariableDeclaratorId/@Name,
    +        '.')
    +    ) or
    +    starts-with(@Image, concat(
    +        ancestor::MethodDeclaration//LocalVariableDeclaration/Type/ReferenceType/ClassOrInterfaceType[pmd-java:typeIs('org.apache.commons.fileupload.FileItem')]/../../..//VariableDeclaratorId/@Name,
    +        '.')
    +    ) or
    +    starts-with(@Image, concat(
    +        ancestor::ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[pmd-java:typeIs('org.apache.commons.fileupload.FileItem')]/../../..//VariableDeclaratorId/@Name,
    +        '.')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    import org.apache.commons.fileupload.FileItem;
    +
    +public class FileStuff {
    +   private String bad(FileItem fileItem) {
    +        return fileItem.getString();
    +   }
    +
    +   private InputStream good(FileItem fileItem) {
    +        return fileItem.getInputStream();
    +   }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseIOStreamsWithApacheCommonsFileItem" />
    +
    + +

    UselessStringValueOf

    + +

    Since: PMD 3.8

    + +

    Priority: Medium (3)

    + +

    No need to call String.valueOf to append to a string; just use the valueOf() argument directly.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.UselessStringValueOfRule

    + +

    Example(s):

    + +
    public String convert(int i) {
    +    String s;
    +    s = "a" + String.valueOf(i);    // not required
    +    s = "a" + i;                    // preferred approach
    +    return s;
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UselessStringValueOf" />
    +
    + +

    UseStringBufferForStringAppends

    + +

    Since: PMD 3.1

    + +

    Priority: Medium (3)

    + +

    The use of the ‘+=’ operator for appending strings causes the JVM to create and use an internal StringBuffer. +If a non-trivial number of these concatenations are being used then the explicit use of a StringBuilder or +threadsafe StringBuffer is recommended to avoid this.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.UseStringBufferForStringAppendsRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void bar() {
    +        String a;
    +        a = "foo";
    +        a += " bar";
    +        // better would be:
    +        // StringBuilder a = new StringBuilder("foo");
    +        // a.append(" bar");
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" />
    +
    + +

    UseStringBufferLength

    + +

    Since: PMD 3.4

    + +

    Priority: Medium (3)

    + +

    Use StringBuffer.length() to determine StringBuffer length rather than using StringBuffer.toString().equals("") +or StringBuffer.toString().length() == …

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.performance.UseStringBufferLengthRule

    + +

    Example(s):

    + +
    StringBuffer sb = new StringBuffer();
    +
    +if (sb.toString().equals("")) {}        // inefficient
    +
    +if (sb.length() == 0) {}                // preferred
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/performance.xml/UseStringBufferLength" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_java_security.html b/pmd_rules_java_security.html new file mode 100644 index 0000000000..167047c9fb --- /dev/null +++ b/pmd_rules_java_security.html @@ -0,0 +1,1500 @@ + + + + + + + + +Security | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Security

    +
    + + + +
    + + +
    Rules that flag potential security flaws.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    HardCodedCryptoKey

    + +

    Since: PMD 6.4.0

    + +

    Priority: Medium (3)

    + +

    Do not use hard coded values for cryptographic operations. Please store keys outside of source code.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.security.HardCodedCryptoKeyRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void good() {
    +        SecretKeySpec secretKeySpec = new SecretKeySpec(Properties.getKey(), "AES");
    +    }
    +
    +    void bad() {
    +        SecretKeySpec secretKeySpec = new SecretKeySpec("my secret here".getBytes(), "AES");
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/security.xml/HardCodedCryptoKey" />
    +
    + +

    InsecureCryptoIv

    + +

    Since: PMD 6.3.0

    + +

    Priority: Medium (3)

    + +

    Do not use hard coded initialization vector in cryptographic operations. Please use a randomly generated IV.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.java.rule.security.InsecureCryptoIvRule

    + +

    Example(s):

    + +
    public class Foo {
    +    void good() {
    +        SecureRandom random = new SecureRandom();
    +        byte iv[] = new byte[16];
    +        random.nextBytes(bytes);
    +    }
    +
    +    void bad() {
    +        byte[] iv = new byte[] { 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, };
    +    }
    +
    +    void alsoBad() {
    +        byte[] iv = "secret iv in here".getBytes();
    +    }
    +}
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/java/security.xml/InsecureCryptoIv" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp.html b/pmd_rules_jsp.html new file mode 100644 index 0000000000..bd93b9a092 --- /dev/null +++ b/pmd_rules_jsp.html @@ -0,0 +1,1511 @@ + + + + + + + + +Java Server Pages Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Java Server Pages Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Java Server Pages
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + +
      +
    • DontNestJsfInJstlIteration: Do not nest JSF component custom actions inside a custom action that iterates over its body.
    • +
    • NoClassAttribute: Do not use an attribute called ‘class’. Use "styleclass" for CSS styles.
    • +
    • NoHtmlComments: In a production system, HTML comments increase the payload between the application server to the …
    • +
    • NoJspForward: Do not do a forward from within a JSP file.
    • +
    + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + + + +

    Design

    + +
    Rules that help you discover design issues.
    + +
      +
    • NoInlineScript: Avoid inlining HTML script content. Consider externalizing the HTML script using the ‘src’ attri…
    • +
    • NoInlineStyleInformation: Style information should be put in CSS files, not in JSPs. Therefore, don’t use <B> or <FONT> tag…
    • +
    • NoLongScripts: Scripts should be part of Tag Libraries, rather than part of JSP pages.
    • +
    • NoScriptlets: Scriptlets should be factored into Tag Libraries or JSP declarations, rather than being part of J…
    • +
    + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + +
      +
    • JspEncoding: A missing ‘meta’ tag or page directive will trigger this rule, as well as a non-UTF-8 charset.
    • +
    + +

    Security

    + +
    Rules that flag potential security flaws.
    + +
      +
    • IframeMissingSrcAttribute: IFrames which are missing a src element can cause security information popups in IE if you are ac…
    • +
    • NoUnsanitizedJSPExpression: Avoid using expressions without escaping / sanitizing. This could lead to cross site scripting - …
    • +
    + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp_bestpractices.html b/pmd_rules_jsp_bestpractices.html new file mode 100644 index 0000000000..c4624038e5 --- /dev/null +++ b/pmd_rules_jsp_bestpractices.html @@ -0,0 +1,1542 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    DontNestJsfInJstlIteration

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Do not nest JSF component custom actions inside a custom action that iterates over its body.

    + +

    This rule is defined by the following XPath expression:

    +
    //Element[ @Name="c:forEach" ] // Element[ @NamespacePrefix="h" or @NamespacePrefix="f" ]
    +
    + +

    Example(s):

    + +
    <html>
    +  <body>
    +    <ul>
    +      <c:forEach items='${books}' var='b'>
    +        <li> <h:outputText value='#{b}' /> </li>
    +      </c:forEach>
    +    </ul>
    +  </body>
    +</html>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/bestpractices.xml/DontNestJsfInJstlIteration" />
    +
    + +

    NoClassAttribute

    + +

    Since: PMD 3.6

    + +

    Priority: Medium High (2)

    + +

    Do not use an attribute called ‘class’. Use "styleclass" for CSS styles.

    + +

    This rule is defined by the following XPath expression:

    +
    //Attribute[ upper-case(@Name)="CLASS" ]
    +
    + +

    Example(s):

    + +
    <HTML> <BODY>
    +<P class="MajorHeading">Some text</P>
    +</BODY> </HTML>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/bestpractices.xml/NoClassAttribute" />
    +
    + +

    NoHtmlComments

    + +

    Since: PMD 3.6

    + +

    Priority: Medium High (2)

    + +

    In a production system, HTML comments increase the payload +between the application server to the client, and serve +little other purpose. Consider switching to JSP comments.

    + +

    This rule is defined by the following XPath expression:

    +
    //CommentTag
    +
    + +

    Example(s):

    + +
    <HTML><title>bad example><BODY>
    +<!-- HTML comment -->
    +</BODY> </HTML>
    +
    +<HTML><title>good example><BODY>
    +<%-- JSP comment --%>
    +</BODY> </HTML>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/bestpractices.xml/NoHtmlComments" />
    +
    + +

    NoJspForward

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Do not do a forward from within a JSP file.

    + +

    This rule is defined by the following XPath expression:

    +
    //Element[ @Name="jsp:forward" ]
    +
    + +

    Example(s):

    + +
    <jsp:forward page='UnderConstruction.jsp'/>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/bestpractices.xml/NoJspForward" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp_codestyle.html b/pmd_rules_jsp_codestyle.html new file mode 100644 index 0000000000..9202db17c6 --- /dev/null +++ b/pmd_rules_jsp_codestyle.html @@ -0,0 +1,1459 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    DuplicateJspImports

    + +

    Since: PMD 3.7

    + +

    Priority: Medium (3)

    + +

    Avoid duplicate import statements inside JSP’s.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.jsp.rule.codestyle.DuplicateJspImportsRule

    + +

    Example(s):

    + +
    <%@ page import=\"com.foo.MyClass,com.foo.MyClass\"%><html><body><b><img src=\"<%=Some.get()%>/foo\">xx</img>text</b></body></html>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/codestyle.xml/DuplicateJspImports" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp_design.html b/pmd_rules_jsp_design.html new file mode 100644 index 0000000000..d2dceb01cb --- /dev/null +++ b/pmd_rules_jsp_design.html @@ -0,0 +1,1550 @@ + + + + + + + + +Design | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Design

    +
    + + + +
    + + +
    Rules that help you discover design issues.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    NoInlineScript

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    Avoid inlining HTML script content. Consider externalizing the HTML script using the ‘src’ attribute on the "script" element. +Externalized script could be reused between pages. Browsers can also cache the script, reducing overall download bandwidth.

    + +

    This rule is defined by the following XPath expression:

    +
    //HtmlScript[@Image != '']
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/design.xml/NoInlineScript" />
    +
    + +

    NoInlineStyleInformation

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Style information should be put in CSS files, not in JSPs. Therefore, don’t use <B> or <FONT> +tags, or attributes like "align=’center’".

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.jsp.rule.design.NoInlineStyleInformationRule

    + +

    Example(s):

    + +
    <html><body><p align='center'><b>text</b></p></body></html>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/design.xml/NoInlineStyleInformation" />
    +
    + +

    NoLongScripts

    + +

    Since: PMD 3.6

    + +

    Priority: Medium High (2)

    + +

    Scripts should be part of Tag Libraries, rather than part of JSP pages.

    + +

    This rule is defined by the following XPath expression:

    +
    //HtmlScript[(@EndLine - @BeginLine > 10)]
    +
    + +

    Example(s):

    + +
    <HTML>
    +<BODY>
    +<!--Java Script-->
    +<SCRIPT language="JavaScript" type="text/javascript">
    +<!--
    +function calcDays(){
    +  var date1 = document.getElementById('d1').lastChild.data;
    +  var date2 = document.getElementById('d2').lastChild.data;
    +  date1 = date1.split("-");
    +  date2 = date2.split("-");
    +  var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
    +  var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
    +  var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
    +  document.getElementById('diffDays').lastChild.data = daysApart;
    +}
    +
    +onload=calcDays;
    +//-->
    +</SCRIPT>
    +</BODY>
    +</HTML>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/design.xml/NoLongScripts" />
    +
    + +

    NoScriptlets

    + +

    Since: PMD 3.6

    + +

    Priority: Medium (3)

    + +

    Scriptlets should be factored into Tag Libraries or JSP declarations, rather than being part of JSP pages.

    + +

    This rule is defined by the following XPath expression:

    +
    //JspScriptlet
    +|
    +//Element[ upper-case(@Name)="JSP:SCRIPTLET" ]
    +
    + +

    Example(s):

    + +
    <HTML>
    +<HEAD>
    +<%
    +response.setHeader("Pragma", "No-cache");
    +%>
    +</HEAD>
    +    <BODY>
    +        <jsp:scriptlet>String title = "Hello world!";</jsp:scriptlet>
    +    </BODY>
    +</HTML>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/design.xml/NoScriptlets" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp_errorprone.html b/pmd_rules_jsp_errorprone.html new file mode 100644 index 0000000000..e03ff0d087 --- /dev/null +++ b/pmd_rules_jsp_errorprone.html @@ -0,0 +1,1471 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    JspEncoding

    + +

    Since: PMD 4.0

    + +

    Priority: Medium (3)

    + +

    A missing ‘meta’ tag or page directive will trigger this rule, as well as a non-UTF-8 charset.

    + +

    This rule is defined by the following XPath expression:

    +
    //CompilationUnit/Content[
    +not(Element[@Name="meta"][
    +   Attribute[@Name="content"]/AttributeValue[contains(lower-case(@Image),"charset=utf-8")]
    +])
    +and
    +    not(JspDirective[@Name='page']/JspDirectiveAttribute[@Name='contentType'][contains(lower-case(@Value),"charset=utf-8")])
    +]
    +
    + +

    Example(s):

    + +
    Most browsers should be able to interpret the following headers:
    +
    +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    +
    +<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8" />
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/errorprone.xml/JspEncoding" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_jsp_security.html b/pmd_rules_jsp_security.html new file mode 100644 index 0000000000..ca99fa095b --- /dev/null +++ b/pmd_rules_jsp_security.html @@ -0,0 +1,1492 @@ + + + + + + + + +Security | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Security

    +
    + + + +
    + + +
    Rules that flag potential security flaws.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    IframeMissingSrcAttribute

    + +

    Since: PMD 3.6

    + +

    Priority: Medium High (2)

    + +

    IFrames which are missing a src element can cause security information popups in IE if you are accessing the page +through SSL. See http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q261188

    + +

    This rule is defined by the following XPath expression:

    +
    //Element[upper-case(@Name)="IFRAME"][count(Attribute[upper-case(@Name)="SRC" ]) = 0]
    +
    + +

    Example(s):

    + +
    <HTML><title>bad example><BODY>
    +<iframe></iframe>
    +</BODY> </HTML>
    +
    +<HTML><title>good example><BODY>
    +<iframe src="foo"></iframe>
    +</BODY> </HTML>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/security.xml/IframeMissingSrcAttribute" />
    +
    + +

    NoUnsanitizedJSPExpression

    + +

    Since: PMD 5.1.4

    + +

    Priority: Medium (3)

    + +

    Avoid using expressions without escaping / sanitizing. This could lead to cross site scripting - as the expression +would be interpreted by the browser directly (e.g. "<script>alert(‘hello’);</script>").

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.jsp.rule.security.NoUnsanitizedJSPExpressionRule

    + +

    Example(s):

    + +
    <%@ page contentType="text/html; charset=UTF-8" %>
    +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    +${expression}                    <!-- don't use this -->
    +${fn:escapeXml(expression)}      <!-- instead, escape it -->
    +<c:out value="${expression}" />  <!-- or use c:out -->
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/jsp/security.xml/NoUnsanitizedJSPExpression" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_modelica.html b/pmd_rules_modelica.html new file mode 100644 index 0000000000..debfdaec31 --- /dev/null +++ b/pmd_rules_modelica.html @@ -0,0 +1,1460 @@ + + + + + + + + +Modelica Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Modelica Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Modelica
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + +
      +
    • AmbiguousResolution: There is multiple candidates for this type resolution. While generally this is not an error, …
    • +
    • ClassStartNameEqualsEndName: Having a class starting with some name and some different name in its end clause is a…
    • +
    • ConnectUsingNonConnector: Modelica specification requires passing connectors to the ‘connect’ clause, while som…
    • +
    + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_modelica_bestpractices.html b/pmd_rules_modelica_bestpractices.html new file mode 100644 index 0000000000..121c48cfac --- /dev/null +++ b/pmd_rules_modelica_bestpractices.html @@ -0,0 +1,1534 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AmbiguousResolution

    + +

    Priority: Medium (3)

    + +

    There is multiple candidates for this type resolution. While generally this is not an error, +this may indicate a bug.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.modelica.rule.AmbiguousResolutionRule

    + +

    Example(s):

    + +
    package Test
    +  package Inc1
    +    model X
    +    end X;
    +    model Y
    +    end Y;
    +  end Inc1;
    +  package Inc2
    +    model Y
    +    end Y;
    +    model Z
    +    end Z;
    +  end Inc2;
    +  model B
    +    import Test.Inc1.*;
    +    import Test.Inc2.*;
    +    Y y; // Class Y is imported twice
    +  end B;
    +end Test;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/modelica/bestpractices.xml/AmbiguousResolution" />
    +
    + +

    ClassStartNameEqualsEndName

    + +

    Priority: High (1)

    + +

    Having a class starting with some name and some different +name in its end clause is an error.

    + +

    This rule is defined by the following XPath expression:

    +
    //ClassSpecifier/*[SimpleName[1]/@Image != SimpleName[last()]/@Image]
    +
    + +

    Example(s):

    + +
    model SomeName
    +  Real x;
    +equation
    +  x = 1;
    +end SomeOtherName /* should be SomeName */;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/modelica/bestpractices.xml/ClassStartNameEqualsEndName" />
    +
    + +

    ConnectUsingNonConnector

    + +

    Priority: Medium High (2)

    + +

    Modelica specification requires passing connectors to the connect clause, +while some implementations tolerate using it on plain variables, etc..

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.modelica.rule.ConnectUsingNonConnector

    + +

    Example(s):

    + +
    package Example
    +  connector Conn
    +    Real x;
    +    Real y;
    +  end Conn;
    +
    +  model Test
    +    input Conn c1;
    +    output Conn c2;
    +    input Real x1;
    +    output Real x2;
    +  equation
    +    connect(c1, c2); // OK
    +    connect(x1, x2); // error, x1 and x2 are not (both) connectors
    +    // x1 = x2; // OK
    +  end Test;
    +end Example;
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/modelica/bestpractices.xml/ConnectUsingNonConnector" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_plsql.html b/pmd_rules_plsql.html new file mode 100644 index 0000000000..0ea7e81154 --- /dev/null +++ b/pmd_rules_plsql.html @@ -0,0 +1,1540 @@ + + + + + + + + +PLSQL Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PLSQL Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for PLSQL
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + +
      +
    • TomKytesDespair: "WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR
    • +
    + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + +
      +
    • AvoidTabCharacter: This rule checks, that there are no tab characters (‘\t’) in the source file. It reports only the…
    • +
    • CodeFormat: This rule verifies that the PLSQL code is properly formatted. The following checks are executed: …
    • +
    • ForLoopNaming: In case you have loops please name the loop variables more meaningful.
    • +
    • LineLength: This rule checks for long lines. Please note that comments are not ignored. This rule is the PMD …
    • +
    • MisplacedPragma: Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block, but the co…
    • +
    + +

    Design

    + +
    Rules that help you discover design issues.
    + +
      +
    • CyclomaticComplexity: Complexity directly affects maintenance costs is determined by the number of decision points in a…
    • +
    • ExcessiveMethodLength: When methods are excessively long this usually indicates that the method is doing more than its n…
    • +
    • ExcessiveObjectLength: Excessive object line lengths are usually indications that the object may be burdened with excess…
    • +
    • ExcessivePackageBodyLength: Excessive class file lengths are usually indications that the class may be burdened with excessiv…
    • +
    • ExcessivePackageSpecificationLength: Excessive class file lengths are usually indications that the class may be burdened with excessiv…
    • +
    • ExcessiveParameterList: Methods with numerous parameters are a challenge to maintain, especially if most of them share th…
    • +
    • ExcessiveTypeLength: Excessive class file lengths are usually indications that the class may be burdened with excessiv…
    • +
    • NcssMethodCount: This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NcssObjectCount: This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l…
    • +
    • NPathComplexity: The NPath complexity of a method is the number of acyclic execution paths through that method. A …
    • +
    • TooManyFields: Classes that have too many fields can become unwieldy and could be redesigned to have fewer field…
    • +
    • TooManyMethods: A package or type with too many methods is probably a good suspect for refactoring, in order to r…
    • +
    + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_plsql_bestpractices.html b/pmd_rules_plsql_bestpractices.html new file mode 100644 index 0000000000..9fac767f53 --- /dev/null +++ b/pmd_rules_plsql_bestpractices.html @@ -0,0 +1,1500 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    TomKytesDespair

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    "WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR

    + +

    This rule is defined by the following XPath expression:

    +
    //ExceptionHandler[QualifiedName/@Image='OTHERS' and upper-case(Statement/UnlabelledStatement/Expression/@Image)='NULL']
    +
    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE BODY update_planned_hrs
    +IS
    +
    +PROCEDURE set_new_planned (p_emp_id IN NUMBER, p_project_id IN NUMBER, p_hours IN NUMBER)
    +IS
    +BEGIN
    +   UPDATE employee_on_activity ea
    +   SET ea.ea_planned_hours = p_hours
    +   WHERE
    +            ea.ea_emp_id = p_emp_id
    +            AND ea.ea_proj_id = p_project_id;
    +
    +EXCEPTION
    +          WHEN NO_DATA_FOUND THEN
    +          RAISE_APPLICATION_ERROR (-20100, 'No such employee or project');
    +
    +END set_new_planned;
    +
    +FUNCTION existing_planned (p_emp_id IN NUMBER, p_project_id IN NUMBER) RETURN NUMBER
    +
    +IS
    +
    +existing_hours NUMBER(4);
    +
    +BEGIN
    +   SELECT ea.ea_planned_hours INTO existing_hours
    +   FROM employee_on_activity ea
    +   WHERE
    +            ea.ea_emp_id = p_emp_id
    +            AND ea.ea_proj_id = p_project_id;
    +
    +   RETURN (existing_hours);
    +
    +   EXCEPTION
    +          WHEN OTHERS THEN NULL;
    +
    +   END existing_planned;
    +
    +END update_planned_hrs;
    +/
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/plsql/bestpractices.xml/TomKytesDespair" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_plsql_codestyle.html b/pmd_rules_plsql_codestyle.html new file mode 100644 index 0000000000..159bd4dd1d --- /dev/null +++ b/pmd_rules_plsql_codestyle.html @@ -0,0 +1,1784 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidTabCharacter

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    This rule checks, that there are no tab characters (\t) in the source file. +It reports only the first occurrence per file.

    + +

    Using tab characters for indentation is not recommended, since this requires that every developer +uses the same tab with in their editor.

    + +

    This rule is the PMD equivalent of checkstyle’s FileTabCharacter check.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.codestyle.AvoidTabCharacterRule

    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    eachLinefalseWhether to report each line with a tab character or only the first lineno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/codestyle.xml/AvoidTabCharacter" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/codestyle.xml/AvoidTabCharacter">
    +    <properties>
    +        <property name="eachLine" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    CodeFormat

    + +

    Since: PMD 6.9.0

    + +

    Priority: Medium (3)

    + +

    This rule verifies that the PLSQL code is properly formatted. The following checks are executed:

    + +

    SQL Queries:

    + +
      +
    • The selected columns must be each on a new line
    • +
    • The keywords (BULK COLLECT INTO, FROM) start on a new line and are indented by one level
    • +
    • UNION should be on the same indentation level as SELECT
    • +
    • Each JOIN is on a new line. If there are more than one JOIN conditions, then each condition should be +on a separate line.
    • +
    + +

    Parameter definitions for procedures:

    + +
      +
    • Each parameter should be on a new line
    • +
    • Variable names as well as their types should be aligned
    • +
    + +

    Variable declarations:

    + +
      +
    • Each variable should be on a new line
    • +
    • Variable names as well as their types should be aligned
    • +
    + +

    Calling a procedure:

    + +
      +
    • If there are more than 3 parameters +
        +
      • then named parameters should be used
      • +
      • and each parameter should be on a new line
      • +
      +
    • +
    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.codestyle.CodeFormatRule

    + +

    Example(s):

    + +
    BEGIN
    +  -- select columns each on a separate line
    +  SELECT cmer_id
    +        ,version
    +        ,cmp_id
    +    BULK COLLECT INTO v_cmer_ids
    +        ,v_versions
    +        ,v_cmp_ids
    +    FROM cmer;
    +
    +  -- each parameter on a new line
    +  PROCEDURE create_prospect(
    +    company_info_in      IN    prospects.company_info%TYPE -- Organization
    +   ,firstname_in         IN    persons.firstname%TYPE      -- FirstName
    +   ,lastname_in          IN    persons.lastname%TYPE       -- LastName
    +  );
    +
    +  -- more than three parameters, each parameter on a separate line
    +  webcrm_marketing.prospect_ins(
    +    cmp_id_in            => NULL
    +   ,company_info_in      => company_info_in
    +   ,firstname_in         => firstname_in
    +   ,lastname_in          => lastname_in
    +   ,slt_code_in          => NULL
    +  );
    +
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    indentation2Indentation to be used for blocksno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/codestyle.xml/CodeFormat" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/codestyle.xml/CodeFormat">
    +    <properties>
    +        <property name="indentation" value="2" />
    +    </properties>
    +</rule>
    +
    + +

    ForLoopNaming

    + +

    Since: PMD 6.7.0

    + +

    Priority: Medium (3)

    + +

    In case you have loops please name the loop variables more meaningful.

    + +

    This rule is defined by the following XPath expression:

    +
    //CursorForLoopStatement[
    +    $allowSimpleLoops = false() or
    +    (Statement//CursorForLoopStatement or ancestor::CursorForLoopStatement)
    +]
    +/ForIndex[not(matches(@Image, $cursorPattern))]
    +|
    +//ForStatement[
    +    $allowSimpleLoops = false() or
    +    (Statement//ForStatement or ancestor::ForStatement)
    +]
    +/ForIndex[not(matches(@Image, $indexPattern))]
    +
    + +

    Example(s):

    + +
    -- good example
    +BEGIN
    +FOR company IN (SELECT * FROM companies) LOOP
    +  FOR contact IN (SELECT * FROM contacts) LOOP
    +    FOR party IN (SELECT * FROM parties) LOOP
    +      NULL;
    +    END LOOP;
    +  END LOOP;
    +END LOOP;
    +END;
    +/
    +
    +-- bad example
    +BEGIN
    +FOR c1 IN (SELECT * FROM companies) LOOP
    +  FOR c2 IN (SELECT * FROM contacts) LOOP
    +    FOR c3 IN (SELECT * FROM parties) LOOP
    +      NULL;
    +    END LOOP;
    +  END LOOP;
    +END LOOP;
    +END;
    +/
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    allowSimpleLoopsfalseIgnore simple loops, that are not nestedno
    cursorPattern[a-zA-Z_0-9]{5,}The pattern used for the curosr loop variableno
    indexPattern[a-zA-Z_0-9]{5,}The pattern used for the index loop variableno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/codestyle.xml/ForLoopNaming" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/codestyle.xml/ForLoopNaming">
    +    <properties>
    +        <property name="allowSimpleLoops" value="false" />
    +        <property name="cursorPattern" value="[a-zA-Z_0-9]{5,}" />
    +        <property name="indexPattern" value="[a-zA-Z_0-9]{5,}" />
    +    </properties>
    +</rule>
    +
    + +

    LineLength

    + +

    Since: PMD 6.13.0

    + +

    Priority: Medium (3)

    + +

    This rule checks for long lines. Please note that comments are not ignored.

    + +

    This rule is the PMD equivalent of checkstyle’s LineLength check.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.codestyle.LineLengthRule

    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxLineLength80The maximum allowed line lengthno
    eachLinefalseWhether to report each line that is longer only the first lineno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/codestyle.xml/LineLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/codestyle.xml/LineLength">
    +    <properties>
    +        <property name="maxLineLength" value="80" />
    +        <property name="eachLine" value="false" />
    +    </properties>
    +</rule>
    +
    + +

    MisplacedPragma

    + +

    Since: PMD 5.5.2

    + +

    Priority: Medium (3)

    + +

    Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block, +but the code does not complain, when being compiled on the 11g DB. +https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ

    + +

    This rule is defined by the following XPath expression:

    +
    //ProgramUnit/Pragma
    +
    + +

    Example(s):

    + +
    create or replace package inline_pragma_error is
    +
    +end;
    +/
    +
    +create or replace package body inline_pragma_error is
    +  procedure do_transaction(p_input_token        in varchar(200)) is
    +  PRAGMA AUTONOMOUS_TRANSACTION; /* this is correct place for PRAGMA */
    +  begin
    +    PRAGMA AUTONOMOUS_TRANSACTION; /* this is the wrong place for PRAGMA -> violation */
    +    /* do something */
    +    COMMIT;
    +   end do_transaction;
    +
    +end inline_pragma_error;
    +/
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/plsql/codestyle.xml/MisplacedPragma" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_plsql_design.html b/pmd_rules_plsql_design.html new file mode 100644 index 0000000000..5d8730a38c --- /dev/null +++ b/pmd_rules_plsql_design.html @@ -0,0 +1,2424 @@ + + + + + + + + +Design | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Design

    +
    + + + +
    + + +
    Rules that help you discover design issues.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    CyclomaticComplexity

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Complexity directly affects maintenance costs is determined by the number of decision points in a method +plus one for the method entry. The decision points include ‘if’, ‘while’, ‘for’, and ‘case labels’ calls. +Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.CyclomaticComplexityRule

    + +

    Example(s):

    + +
    -- Cyclomatic Complexity of 25
    +CREATE OR REPLACE PACKAGE BODY pkg_pmd_working_sequence  AS
    +1 PROCEDURE ty_logger  IS BEGIN
    +2        IF true
    +         THEN
    +              DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +3        IF true
    +         THEN
    +              DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +4            IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +5            ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +6        ELSIF false
    +         THEN
    +            DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +7            IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +8            ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +         ELSE
    +            DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +9            IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +10           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +         END IF;
    +11         ELSIF false
    +         THEN
    +            DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +12       IF true
    +         THEN
    +              DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +13           IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +14           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +15       ELSIF false
    +         THEN
    +16           IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +17           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +             DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +         ELSE
    +             DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +         END IF;
    +     ELSE
    +        DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +18       IF true
    +         THEN
    +              DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +19           IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +20           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +21       ELSIF false
    +         THEN
    +            DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +22           IF true
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +23           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +             ELSE
    +             DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +24           IF true
    +             THEN
    +                  DBMS_OUTPUT.PUT_LINE('IF/THEN l_Integer='||l_integer);
    +25           ELSIF false
    +             THEN
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             ELSE
    +                DBMS_OUTPUT.PUT_LINE('ELSIF l_Integer='||l_integer);
    +             END IF;
    +         END IF;
    +     END IF;
    +END;
    +
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    showMethodsComplexitytrueAdd method average violations to the reportno
    showClassesComplexitytrueAdd class average violations to the reportno
    reportLevel10Cyclomatic Complexity reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/CyclomaticComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/CyclomaticComplexity">
    +    <properties>
    +        <property name="showMethodsComplexity" value="true" />
    +        <property name="showClassesComplexity" value="true" />
    +        <property name="reportLevel" value="10" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveMethodLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    When methods are excessively long this usually indicates that the method is doing more than its +name/signature might suggest. They also become challenging for others to digest since excessive +scrolling causes readers to lose focus. +Try to reduce the method length by creating helper methods and removing any copy/pasted code.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveMethodLengthRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PROCEDURE doSomething BEGIN
    +    DBMS_OUTPUT.PUT_LINE("Hello world!");
    +    DBMS_OUTPUT.PUT_LINE("Hello world!");
    +        -- 98 copies omitted for brevity.
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum100.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveMethodLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveMethodLength">
    +    <properties>
    +        <property name="minimum" value="100.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveObjectLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Excessive object line lengths are usually indications that the object may be burdened with excessive +responsibilities that could be provided by other objects. In breaking these methods +apart the code becomes more managable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveObjectLengthRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PACKAGE BODY Foo AS
    +    PROCEDURE bar1 IS BEGIN
    +    -- 1000 lines of code
    +    END bar1;
    +    PROCEDURE bar2 IS BEGIN
    +    -- 1000 lines of code
    +    END bar2;
    +    PROCEDURE bar3 IS BEGIN
    +    -- 1000 lines of code
    +    END bar3;
    +
    +
    +    PROCEDURE barN IS BEGIN
    +    -- 1000 lines of code
    +    END barn;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveObjectLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveObjectLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessivePackageBodyLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageBodyLengthRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PACKAGE BODY Foo AS
    +    PROCEDURE bar1 IS BEGIN
    +    -- 1000 lines of code
    +    END bar1;
    +    PROCEDURE bar2 IS BEGIN
    +    -- 1000 lines of code
    +    END bar2;
    +    PROCEDURE bar3 IS BEGIN
    +    -- 1000 lines of code
    +    END bar3;
    +
    +
    +    PROCEDURE barN IS BEGIN
    +    -- 1000 lines of code
    +    END barn;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessivePackageBodyLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessivePackageBodyLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessivePackageSpecificationLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageSpecificationLengthRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PACKAGE Foo AS
    +    PROCEDURE bar1;
    +    PROCEDURE bar2;
    +    PROCEDURE bar3;
    +
    +    ...
    +
    +    PROCEDURE barN;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessivePackageSpecificationLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessivePackageSpecificationLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveParameterList

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Methods with numerous parameters are a challenge to maintain, especially if most of them share the +same datatype. These situations usually denote the need for new objects to wrap the numerous parameters.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveParameterListRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PROCEDURE addPerson(        -- too many arguments liable to be mixed up
    +    birthYear pls_integer, birthMonth pls_integer, birthDate pls_integer, height pls_integer, weight pls_integer, ssn pls_integer) {
    +
    +    . . . .
    +END ADDPERSON;
    +
    +CREATE OR REPLACE
    +PROCEDURE addPerson(        -- preferred approach
    +    birthdate DATE, measurements BodyMeasurements , ssn INTEGER) BEGIN
    +
    +    . . . .
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum10.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveParameterList" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveParameterList">
    +    <properties>
    +        <property name="minimum" value="10.0" />
    +    </properties>
    +</rule>
    +
    + +

    ExcessiveTypeLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveTypeLengthRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +TYPE BODY Foo AS
    +    MEMBER PROCEDURE bar1 IS BEGIN
    +    -- 1000 lines of code
    +    END bar1;
    +    MEMBER PROCEDURE bar2 IS BEGIN
    +    -- 1000 lines of code
    +    END bar2;
    +    MEMBER PROCEDURE bar3 IS BEGIN
    +    -- 1000 lines of code
    +    END bar3;
    +
    +
    +    MEMBER PROCEDURE barN IS BEGIN
    +    -- 1000 lines of code
    +    END barn;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveTypeLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/ExcessiveTypeLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssMethodCount

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.NcssMethodCountRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE BODY AS
    + FUNCTION methd RETURN INTEGER IS
    + BEGIN
    +   RETURN 1;;
    + END;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum100.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/NcssMethodCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/NcssMethodCount">
    +    <properties>
    +        <property name="minimum" value="100.0" />
    +    </properties>
    +</rule>
    +
    + +

    NcssObjectCount

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given Oracle object. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.NcssObjectCountRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE pkg_
    + PROCEDURE Foo IS
    + BEGIN
    + --this class only has 6 NCSS lines
    +     super();
    +     super();
    + END;
    +}
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1500.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/NcssObjectCount" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/NcssObjectCount">
    +    <properties>
    +        <property name="minimum" value="1500.0" />
    +    </properties>
    +</rule>
    +
    + +

    NPathComplexity

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    The NPath complexity of a method is the number of acyclic execution paths through that method. +A threshold of 200 is generally considered the point where measures should be taken to reduce +complexity and increase readability.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.NPathComplexityRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE
    +PROCEDURE bar AS BEGIN  -- this is something more complex than it needs to be,
    +    if (y) THEN -- it should be broken down into smaller methods or functions
    +        for j IN 0 .. j-1 LOOP
    +            if (j > r) THEN
    +                doSomething;
    +                while (f < 5 ) LOOP
    +                    anotherThing;
    +                    f := f - 27;
    +                    END LOOP;
    +            else
    +                tryThis();
    +            END IF;
    +        END LOOP;
    +    END IF;
    +    if ( r - n > 45) THEN
    +        while (doMagic) LOOP
    +            findRabbits;
    +        END LOOP;
    +    END IF;
    +    BEGIN
    +        doSomethingDangerous();
    +    EXCEPTION WHEN FooException THEN
    +        makeAmends;
    +        BEGIN
    +            dontDoItAgain;
    +        EXCEPTION
    +        WHEN OTHERS THEN
    +            log_problem;
    +        END;
    +    END;
    +END;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum200.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/NPathComplexity" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/NPathComplexity">
    +    <properties>
    +        <property name="minimum" value="200.0" />
    +    </properties>
    +</rule>
    +
    + +

    TooManyFields

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, +possibly through grouping related fields in new objects. For example, a class with individual +city/state/zip fields could park them within a single Address field.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.plsql.rule.design.TooManyFieldsRule

    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE pkg_too_many_fields AS
    +    C_CHAR_A CONSTANT CHAR(1 CHAR) := 'A';
    +    C_CHAR_B CONSTANT CHAR(1 CHAR) := 'B';
    +    ...
    +    C_CHAR_Z CONSTANT CHAR(1 CHAR) := 'Z';
    +END pkg_too_many_fields;
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxfields15Max allowable fieldsno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/TooManyFields" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/TooManyFields">
    +    <properties>
    +        <property name="maxfields" value="15" />
    +    </properties>
    +</rule>
    +
    + +

    TooManyMethods

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    A package or type with too many methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to +have more fine grained objects.

    + +

    This rule is defined by the following XPath expression:

    +
    //node()
    +     [ (
    +        local-name(.) = 'PackageSpecification'
    +        or
    +        local-name(.) = 'TypeSpecification'
    +       )
    +       and
    +      (
    +      count(/descendant::ProgramUnit[
    +                                         not (
    +                                                starts-with(@Name,'get')
    +                                                or
    +                                                starts-with(@Name,'set')
    +                                                or
    +                                                starts-with(@Name,'is')
    +                                            )
    +                                       ]
    +           )
    +      +
    +      count(/descendant::TypeMethod[
    +                                         not (
    +                                                starts-with(@Name,'get')
    +                                                or
    +                                                starts-with(@Name,'set')
    +                                                or
    +                                                starts-with(@Name,'is')
    +                                            )
    +                                       ]
    +           )
    +      ) > $maxmethods
    +     ]
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    maxmethods1The method count reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/plsql/design.xml/TooManyMethods" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/plsql/design.xml/TooManyMethods">
    +    <properties>
    +        <property name="maxmethods" value="1" />
    +    </properties>
    +</rule>
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_plsql_errorprone.html b/pmd_rules_plsql_errorprone.html new file mode 100644 index 0000000000..4b87669ee8 --- /dev/null +++ b/pmd_rules_plsql_errorprone.html @@ -0,0 +1,1569 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    TO_DATE_TO_CHAR

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-variable)

    + +

    This rule is defined by the following XPath expression:

    +
    //FunctionCall[@Image='TO_DATE']
    +  [count(Arguments/ArgumentList/Argument) = 1]
    +  [Arguments/ArgumentList/Argument//FunctionCall[@Image='TO_CHAR']]
    +
    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE BODY date_utilities
    +IS
    +
    +-- Take single parameter, relying on current default NLS date format
    +FUNCTION strip_time (p_date IN DATE) RETURN DATE
    +IS
    +BEGIN
    +   RETURN TO_DATE(TO_CHAR(p_date));
    +END strip_time;
    +
    +
    +END date_utilities;
    +/
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/plsql/errorprone.xml/TO_DATE_TO_CHAR" />
    +
    + +

    TO_DATEWithoutDateFormat

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    TO_DATE without date format- use TO_DATE(expression, date-format)

    + +

    This rule is defined by the following XPath expression:

    +
    //FunctionCall[@Image='TO_DATE']
    +  [count(Arguments/ArgumentList/Argument) = 1]
    +
    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE BODY date_utilities
    +IS
    +
    +-- Take single parameter, relying on current default NLS date format
    +FUNCTION to_date_single_parameter (p_date_string IN VARCHAR2) RETURN DATE
    +IS
    +BEGIN
    +   RETURN TO_DATE(p_date_string);
    +END to_date_single_parameter ;
    +
    +-- Take 2 parameters, using an explicit date format string
    +FUNCTION to_date_two_parameters (p_date_string IN VARCHAR2, p_format_mask IN VARCHAR2) RETURN DATE
    +IS
    +BEGIN
    +   TO_DATE(p_date_string, p_date_format);
    +END to_date_two_parameters;
    +
    +-- Take 3 parameters, using an explicit date format string and an explicit language
    +FUNCTION to_date_three_parameters (p_date_string IN VARCHAR2, p_format_mask IN VARCHAR2, p_nls_language VARCHAR2 ) RETURN DATE
    +IS
    +BEGIN
    +   TO_DATE(p_date_string, p_format_mask, p_nls_language);
    +END to_date_three_parameters;
    +
    +END date_utilities;
    +/
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/plsql/errorprone.xml/TO_DATEWithoutDateFormat" />
    +
    + +

    TO_TIMESTAMPWithoutDateFormat

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format)

    + +

    This rule is defined by the following XPath expression:

    +
    //FunctionCall[@Image='TO_TIMESTAMP']
    +  [count(Arguments/ArgumentList/Argument) = 1]
    +
    + +

    Example(s):

    + +
    CREATE OR REPLACE PACKAGE BODY date_utilities
    +IS
    +
    +-- Take single parameter, relying on current default NLS date format
    +FUNCTION to_timestamp_single_parameter (p_date_string IN VARCHAR2) RETURN DATE
    +IS
    +BEGIN
    +   RETURN TO_TIMESTAMP(p_date_string);
    +END to_timestamp_single_parameter;
    +
    +-- Take 2 parameters, using an explicit date format string
    +FUNCTION to_timestamp_two_parameters (p_date_string IN VARCHAR2, p_format_mask IN VARCHAR2) RETURN DATE
    +IS
    +BEGIN
    +   TO_TIMESTAMP(p_date_string, p_date_format);
    +END to_timestamp_two_parameters;
    +
    +-- Take 3 parameters, using an explicit date format string and an explicit language
    +FUNCTION to_timestamp_three_parameters (p_date_string IN VARCHAR2, p_format_mask IN VARCHAR2, p_nls_language VARCHAR2 ) RETURN DATE
    +IS
    +BEGIN
    +   TO_TIMESTAMP(p_date_string, p_format_mask, p_nls_language);
    +END to_timestamp_three_parameters;
    +
    +END date_utilities;
    +/
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/plsql/errorprone.xml/TO_TIMESTAMPWithoutDateFormat" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_pom.html b/pmd_rules_pom.html new file mode 100644 index 0000000000..146287bb6f --- /dev/null +++ b/pmd_rules_pom.html @@ -0,0 +1,1473 @@ + + + + + + + + +Maven POM Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Maven POM Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Maven POM
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_pom_errorprone.html b/pmd_rules_pom_errorprone.html new file mode 100644 index 0000000000..58b388cf63 --- /dev/null +++ b/pmd_rules_pom_errorprone.html @@ -0,0 +1,1540 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    InvalidDependencyTypes

    + +

    Since: PMD 5.4

    + +

    Priority: Medium (3)

    + +

    If you use an invalid dependency type in the dependency management section, Maven doesn’t fail. Instead, +the entry is just ignored, which might have the effect, that the wrong version of the dependency is used.

    + +

    The following types are considered valid: pom, jar, maven-plugin, ejb, war, ear, rar, par.

    + +

    This rule is defined by the following XPath expression:

    +
    //dependencyManagement/dependency/type/text[not(@Image = $validTypes)]
    +
    + +

    Example(s):

    + +
    <project...>
    +  ...
    +  <dependencyManagement>
    +      ...
    +    <dependency>
    +      <groupId>org.jboss.arquillian</groupId>
    +      <artifactId>arquillian-bom</artifactId>
    +      <version>${arquillian.version}</version>
    +      <type>bom</type> <!-- not a valid type ! 'pom' is ! -->
    +      <scope>import</scope>
    +    </dependency>
    +    ...
    +  </dependencyManagement>
    +</project>
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    validTypespom , jar , maven-plugin , ejb , war , ear , rar , parSet of valid types.yes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/pom/errorprone.xml/InvalidDependencyTypes" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/pom/errorprone.xml/InvalidDependencyTypes">
    +    <properties>
    +        <property name="validTypes" value="pom,jar,maven-plugin,ejb,war,ear,rar,par" />
    +    </properties>
    +</rule>
    +
    + +

    ProjectVersionAsDependencyVersion

    + +

    Since: PMD 5.4

    + +

    Priority: Medium (3)

    + +

    Using that expression in dependency declarations seems like a shortcut, but it can go wrong. +By far the most common problem is the use of ${project.version} in a BOM or parent POM.

    + +

    This rule is defined by the following XPath expression:

    +
    //dependencies/dependency
    +    [contains(version/text/@Image,'{project.version}')]
    +    [
    +        (/document/project/parent/groupId and groupId/text/@Image != /document/project/parent/groupId/text/@Image)
    +        or
    +        (/document/project/groupId and groupId/text/@Image != /document/project/groupId/text/@Image)
    +    ]/version
    +
    + +

    Example(s):

    + +
    <project...>
    +  ...
    +  <dependency>
    +    ...
    +    <version>6.30.0-SNAPSHOT</version>
    +  </dependency>
    +</project>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/pom/errorprone.xml/ProjectVersionAsDependencyVersion" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_scala.html b/pmd_rules_scala.html new file mode 100644 index 0000000000..2c9d579075 --- /dev/null +++ b/pmd_rules_scala.html @@ -0,0 +1,1453 @@ + + + + + + + + +Scala Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Scala Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Scala
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Currently there are no built-in rules yet for Scala.

    + +

    Contributions are welcome!

    + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vf.html b/pmd_rules_vf.html new file mode 100644 index 0000000000..443eeb6157 --- /dev/null +++ b/pmd_rules_vf.html @@ -0,0 +1,1473 @@ + + + + + + + + +Salesforce VisualForce Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Salesforce VisualForce Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for Salesforce VisualForce
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Security

    + +
    Rules that flag potential security flaws.
    + +
      +
    • VfCsrf: Avoid calling VF action upon page load as the action becomes vulnerable to CSRF.
    • +
    • VfUnescapeEl: Avoid unescaped user controlled content in EL as it results in XSS.
    • +
    + +

    Additional rulesets

    + +
      +
    • +

      Basic VF (rulesets/vf/security.xml):

      + +

      Deprecated This ruleset is for backwards compatibility.

      + +

      It contains the following rules:

      + +

      VfCsrf, VfUnescapeEl

      +
    • +
    + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vf_security.html b/pmd_rules_vf_security.html new file mode 100644 index 0000000000..08da167111 --- /dev/null +++ b/pmd_rules_vf_security.html @@ -0,0 +1,1478 @@ + + + + + + + + +Security | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Security

    +
    + + + +
    + + +
    Rules that flag potential security flaws.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    VfCsrf

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid calling VF action upon page load as the action becomes vulnerable to CSRF.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vf.rule.security.VfCsrfRule

    + +

    Example(s):

    + +
    <apex:page controller="AcRestActionsController" action="{!csrfInitMethod}" >
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vf/security.xml/VfCsrf" />
    +
    + +

    VfUnescapeEl

    + +

    Since: PMD 5.6.0

    + +

    Priority: Medium (3)

    + +

    Avoid unescaped user controlled content in EL as it results in XSS.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vf.rule.security.VfUnescapeElRule

    + +

    Example(s):

    + +
    <apex:outputText value="Potential XSS is {! here }" escape="false" />
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vf/security.xml/VfUnescapeEl" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vm.html b/pmd_rules_vm.html new file mode 100644 index 0000000000..5152005fca --- /dev/null +++ b/pmd_rules_vm.html @@ -0,0 +1,1494 @@ + + + + + + + + +VM Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    VM Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for VM
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Best Practices

    + +
    Rules which enforce generally accepted best practices.
    + + + +

    Design

    + +
    Rules that help you discover design issues.
    + + + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + +

    Additional rulesets

    + + + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vm_bestpractices.html b/pmd_rules_vm_bestpractices.html new file mode 100644 index 0000000000..cd12b66167 --- /dev/null +++ b/pmd_rules_vm_bestpractices.html @@ -0,0 +1,1468 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + +
    Rules which enforce generally accepted best practices.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidReassigningParameters

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Reassigning values to incoming parameters is not recommended. Use temporary local variables instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.bestpractices.AvoidReassigningParametersRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/bestpractices.xml/AvoidReassigningParameters" />
    +
    + +

    UnusedMacroParameter

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Avoid unused macro parameters. They should be deleted.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.bestpractices.UnusedMacroParameterRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/bestpractices.xml/UnusedMacroParameter" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vm_design.html b/pmd_rules_vm_design.html new file mode 100644 index 0000000000..7fcd3ab0f9 --- /dev/null +++ b/pmd_rules_vm_design.html @@ -0,0 +1,1582 @@ + + + + + + + + +Design | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Design

    +
    + + + +
    + + +
    Rules that help you discover design issues.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidDeeplyNestedIfStmts

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Avoid creating deeply nested if-then statements since they are harder to read and error-prone to maintain.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.AvoidDeeplyNestedIfStmtsRule

    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    problemDepth3The if statement depth reporting thresholdno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/vm/design.xml/AvoidDeeplyNestedIfStmts" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/vm/design.xml/AvoidDeeplyNestedIfStmts">
    +    <properties>
    +        <property name="problemDepth" value="3" />
    +    </properties>
    +</rule>
    +
    + +

    CollapsibleIfStatements

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    Sometimes two consecutive ‘if’ statements can be consolidated by separating their conditions with a boolean short-circuit operator.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.CollapsibleIfStatementsRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/design.xml/CollapsibleIfStatements" />
    +
    + +

    ExcessiveTemplateLength

    + +

    Since: PMD 5.1

    + +

    Priority: Medium (3)

    + +

    The template is too long. It should be broken up into smaller pieces.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.ExcessiveTemplateLengthRule

    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    topscore Deprecated Top score valueno
    minimum1000.0Minimum reporting thresholdno
    sigma Deprecated Sigma valueno
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/vm/design.xml/ExcessiveTemplateLength" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/vm/design.xml/ExcessiveTemplateLength">
    +    <properties>
    +        <property name="minimum" value="1000.0" />
    +    </properties>
    +</rule>
    +
    + +

    NoInlineJavaScript

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Avoid inline JavaScript. Import .js files instead.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.NoInlineJavaScriptRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/design.xml/NoInlineJavaScript" />
    +
    + +

    NoInlineStyles

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Avoid inline styles. Use css classes instead.

    + +

    This rule is defined by the following XPath expression:

    +
    //Text[matches(@literal, "<[^>]+\s[sS][tT][yY][lL][eE]\s*=")]
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/design.xml/NoInlineStyles" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_vm_errorprone.html b/pmd_rules_vm_errorprone.html new file mode 100644 index 0000000000..d73c612544 --- /dev/null +++ b/pmd_rules_vm_errorprone.html @@ -0,0 +1,1468 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    EmptyForeachStmt

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Empty foreach statements should be deleted.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.errorprone.EmptyForeachStmtRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/errorprone.xml/EmptyForeachStmt" />
    +
    + +

    EmptyIfStmt

    + +

    Since: PMD 5.1

    + +

    Priority: Medium High (2)

    + +

    Empty if statements should be deleted.

    + +

    This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.errorprone.EmptyIfStmtRule

    + +

    Use this rule by referencing it:

    +
    <rule ref="category/vm/errorprone.xml/EmptyIfStmt" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_xml.html b/pmd_rules_xml.html new file mode 100644 index 0000000000..b9248bb68b --- /dev/null +++ b/pmd_rules_xml.html @@ -0,0 +1,1472 @@ + + + + + + + + +XML Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    XML Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for XML
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Error Prone

    + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + +
      +
    • MistypedCDATASection: An XML CDATA section begins with a <![CDATA[ marker, which has only one [, and ends with a ]]> ma…
    • +
    + +

    Additional rulesets

    + +
      +
    • +

      Basic XML (rulesets/xml/basic.xml):

      + +

      Deprecated This ruleset is for backwards compatibility.

      + +

      It contains the following rules:

      + +

      MistypedCDATASection

      +
    • +
    + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_xml_errorprone.html b/pmd_rules_xml_errorprone.html new file mode 100644 index 0000000000..8eb8b84b9d --- /dev/null +++ b/pmd_rules_xml_errorprone.html @@ -0,0 +1,1472 @@ + + + + + + + + +Error Prone | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Error Prone

    +
    + + + +
    + + +
    Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    MistypedCDATASection

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    An XML CDATA section begins with a <![CDATA[ marker, which has only one [, and ends with a ]]> marker, which has two ].

    + +

    This rule is defined by the following XPath expression:

    +
    //cdata-section[starts-with(@Image,'[') or ends-with(@Image,']')]
    +
    + +

    Example(s):

    + +
    <root>
    +    <child>
    +        <![CDATA[[ character data ]]> - this cdata section is valid, but it contains an
    +        additional square bracket at the beginning.
    +        It should probably be just <![CDATA[ character data ]]>.
    +    </child>
    +    <child>
    +        <![CDATA[ character data ]]]> - this cdata section is valid, but it contains an
    +        additional square bracket in the end.
    +        It should probably be just <![CDATA[ character data ]]>.
    +    </child>
    +</root>
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/xml/errorprone.xml/MistypedCDATASection" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_xsl.html b/pmd_rules_xsl.html new file mode 100644 index 0000000000..6fe56f3012 --- /dev/null +++ b/pmd_rules_xsl.html @@ -0,0 +1,1480 @@ + + + + + + + + +XSL Rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    XSL Rules

    +
    + + + +
    + + +
    Index of all built-in rules available for XSL
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Code Style

    + +
    Rules which enforce a specific coding style.
    + +
      +
    • UseConcatOnce: The XPath concat() functions accepts as many arguments as required so you can have "concat($a,’b’…
    • +
    + +

    Performance

    + +
    Rules that flag suboptimal code.
    + +
      +
    • AvoidAxisNavigation: Avoid using the ‘following’ or ‘preceding’ axes whenever possible, as these can cut through 100% …
    • +
    + +

    Additional rulesets

    + +
      +
    • +

      XPath in XSL (rulesets/xsl/xpath.xml):

      + +

      Deprecated This ruleset is for backwards compatibility.

      + +

      It contains the following rules:

      + +

      AvoidAxisNavigation, UseConcatOnce

      +
    • +
    + + + +
    + + Tags: + + + + rule_references + + + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_xsl_codestyle.html b/pmd_rules_xsl_codestyle.html new file mode 100644 index 0000000000..567fed6f08 --- /dev/null +++ b/pmd_rules_xsl_codestyle.html @@ -0,0 +1,1463 @@ + + + + + + + + +Code Style | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code Style

    +
    + + + +
    + + +
    Rules which enforce a specific coding style.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    UseConcatOnce

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    The XPath concat() functions accepts as many arguments as required so you can have +"concat($a,’b’,$c)" rather than "concat($a,concat(‘b’,$c)".

    + +

    This rule is defined by the following XPath expression:

    +
    //node()[contains(substring-after(@select,'concat'),'concat')]
    +
    + +

    Example(s):

    + +
    <xsl:variable name="var" select="concat("Welcome",concat("to you ",$name))"/>
    +<xsl:variable name="var" select="concat("Welcome","to you ",$name))">
    +
    + +

    Use this rule by referencing it:

    +
    <rule ref="category/xsl/codestyle.xml/UseConcatOnce" />
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_rules_xsl_performance.html b/pmd_rules_xsl_performance.html new file mode 100644 index 0000000000..f82cbc2e39 --- /dev/null +++ b/pmd_rules_xsl_performance.html @@ -0,0 +1,1506 @@ + + + + + + + + +Performance | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Performance

    +
    + + + +
    + + +
    Rules that flag suboptimal code.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    AvoidAxisNavigation

    + +

    Since: PMD 5.0

    + +

    Priority: Medium (3)

    + +

    Avoid using the ‘following’ or ‘preceding’ axes whenever possible, as these can cut +through 100% of the document in the worst case. Also, try to avoid using ‘descendant’ +or ‘descendant-or-self’ axes, as if you’re at the top of the Document, it necessarily means +cutting through 100% of the document.

    + +

    This rule is defined by the following XPath expression:

    +
    //node()[
    +  contains(@select,'preceding::')
    +  or
    +  contains(@select,'following::')
    +  or
    +  contains(@select,'descendant::')
    +  or
    +  contains(@select,'descendant-self::')
    +  or (
    +    ($checkSelfDescendantAbreviation = true() )
    +    and
    +    contains(@select,'//')
    +    )
    +]
    +
    + +

    Example(s):

    + +
    <xsl:variable name="var" select="//item/descendant::child"/>
    +
    + +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    checkSelfDescendantAbreviationfalsedescendant::self abreviation, ‘//’, will also trigger this rule.no
    + +

    Use this rule with the default properties by just referencing it:

    +
    <rule ref="category/xsl/performance.xml/AvoidAxisNavigation" />
    +
    + +

    Use this rule and customize it:

    +
    <rule ref="category/xsl/performance.xml/AvoidAxisNavigation">
    +    <properties>
    +        <property name="checkSelfDescendantAbreviation" value="false" />
    +    </properties>
    +</rule>
    +
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_best_practices.html b/pmd_userdocs_best_practices.html new file mode 100644 index 0000000000..d0989597f0 --- /dev/null +++ b/pmd_userdocs_best_practices.html @@ -0,0 +1,1475 @@ + + + + + + + + +Best Practices | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Best Practices

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Choose the rules that are right for you

    + +

    Running every existing rule will result in a huge number of rule violations, most of which will be unimportant. +Having to sort through a thousand line report to find the few you’re really interested in takes +all the fun out of things.

    + +

    Instead, start with some selected specific rules, e.g. the rules that detect unused code from +the category Best Practices and fix any unused locals and fields.

    + +

    Then, run rules, that detect empty if statements and such-like. You can find these rules in the category +Error Prone.

    + +

    After that, look at all the categories and select the rules, that are useful for your project. +You can find an overview of the rules on the Rule Index.

    + +

    Use the rules you like via a custom ruleset.

    + +

    PMD rules are not set in stone

    + +

    Generally, pick the ones you like, and ignore or suppress +the warnings you don’t like. It’s just a tool.

    + +

    PMD IDE plugins are nice

    + +

    Using PMD within your IDE is much more enjoyable than flipping back and forth +between an HTML report and your IDE. Most IDE plugins have the “click on the rule +violation and jump to that line of code” feature. Find the PMD plugin for your IDE, install it, +and soon you’ll be fixing problems much faster.

    + +

    Suggestions? Comments? Post them here. Thanks!

    + + +
    + + Tags: + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_cli_reference.html b/pmd_userdocs_cli_reference.html new file mode 100644 index 0000000000..c1b4b27583 --- /dev/null +++ b/pmd_userdocs_cli_reference.html @@ -0,0 +1,2094 @@ + + + + + + + + +PMD CLI reference | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PMD CLI reference

    +
    + + + +
    + + +
    Full reference for PMD's command-line interface, including options, output formats and supported languages
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Options

    + +

    The tool comes with a rather extensive help text, simply running with -help!

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionDescriptionDefault valueApplies to
    -rulesets <refs>
    -R <refs>
    Required Comma-separated list of ruleset or rule references.
    -dir <path>
    -d <path>
    Required Root directory for the analyzed sources.
    -format <format>
    -f <format>
    Output format of the analysis report. The available formats + are described here.text
    -auxclasspath <cp>Specifies the classpath for libraries used by the source code. + This is used to resolve types in source files. The platform specific path delimiter + (":" on Linux, ";" on Windows) is used to separate the entries. + Alternatively, a single file: URL + to a text file containing path elements on consecutive lines can be specified.Java
    -benchmark
    -b
    Enables benchmark mode, which outputs a benchmark report upon completion. + The report is sent to standard error.
    -cache <filepath>Specify the location of the cache file for incremental analysis. + This should be the full path to the file, including the desired file name (not just the parent directory). + If the file doesn't exist, it will be created on the first run. The file will be overwritten on each run + with the most up-to-date rule violations. + This can greatly improve analysis performance and is highly recommended.
    -debug
    -verbose
    -D
    -V
    Debug mode. Prints more log output.
    -encoding <charset>
    -e <charset>
    Specifies the character set encoding of the source code files PMD is reading. + The valid values are the standard character sets of java.nio.charset.Charset.UTF-8
    -failOnViolation <bool>
    --failOnViolation <bool>
    Specifies whether PMD exits with non-zero status if violations are found. + By default PMD exits with status 4 if violations are found. + Disable this feature with -failOnViolation false to exit with 0 instead and just output the report.true
    -filelist <filepath>Path to file containing a comma delimited list of files to analyze. + If this is given, then you don't need to provide -dir.
    -ignorelist <filepath>Path to file containing a comma delimited list of files to ignore. + This option can be combined with -dir and -filelist. + This ignore list takes precedence over any files in the filelist.
    -help
    -h
    -H
    Display help on usage.
    -language <lang>
    -l <lang>
    Specify the language PMD should use. Used together with -version. See also Supported Languages.
    -minimumpriority <num>
    -min <num>
    Rule priority threshold; rules with lower priority than configured here won't be used.5
    -norulesetcompatibilityDisable automatic fixing of invalid rule references. Without the switch, PMD tries to automatically replace rule references that point to moved or renamed rules with the newer location if possible. Disabling it is not recommended.
    -no-cacheExplicitly disables incremental analysis. This switch turns off suggestions to use Incremental Analysis, + and causes the -cache option to be discarded if it is provided.
    -property <name>=<value>
    -P <name>=<value>
    Specifies a property for the report renderer. The option can be specified several times.[]
    -reportfile <path>
    -r <path>
    Path to a file in which the report output will be sent. By default the report is printed on standard output.
    -shortnamesPrints shortened filenames in the report.
    -showsuppressedCauses the suppressed rule violations to be added to the report.
    -stress
    -S
    Performs a stress test.
    -suppressmarker <marker>Specifies the comment token that marks lines which PMD should ignore.NOPMD
    -threads <num>
    -t <num>
    Sets the number of threads used by PMD. + Set threads to 0 to disable multi-threading processing.1
    -uri <uri>
    -u <uri>
    Database URI for sources. If this is given, then you don't need to provide -dir.PLSQL
    -version <version>
    -v <version>
    Specify the version of a language PMD should use. Used together with -language. See also Supported Languages.
    + +

    Additional Java Runtime Options

    + +

    PMD is executed via a Java runtime. In some cases, you might need to set additional runtime options, e.g. +if you want to analyze a project, that uses one of OpenJDK’s Preview Language Features.

    + +

    Just set the environment variable PMD_JAVA_OPTS before executing PMD, e.g.

    + +
    export PMD_JAVA_OPTS="--enable-preview"
    +./run.sh pmd -d ../../../src/main/java/ -f text -R rulesets/java/quickstart.xml
    +
    + +

    Exit Status

    + +

    Please note that if PMD detects any violations, it will exit with status 4 (since 5.3). +This behavior has been introduced to ease PMD integration into scripts or hooks, such as SVN hooks.

    + + + + + +
    0Everything is fine, no violations found
    1Couldn't understand command-line parameters or PMD exited with an exception
    4At least one violation has been detected, unless -failOnViolation false is set.
    + +

    Supported Languages

    + +

    The language is determined automatically by PMD from the file extensions. Some languages such as “Java” +however support multiple versions. The default version will be used, which is usually the latest supported +version. If you want to use an older version, so that e.g. rules, that suggest usage of language features, +that are not available yet, won’t be executed, you need to specify a specific version via the -language +and -version parameter.

    + +

    These parameters are irrelevant for languages that don’t support different versions.

    + +

    Example:

    + +
    ./run.sh pmd -d src/main/java -f text -R rulesets/java/quickstart.xml -language java -version 8
    +
    + +
      +
    • apex (Salesforce Apex)
    • +
    • java +
        +
      • Supported Versions: 1.3, 1.4, 1.5, 5, 1.6, 6, 1.7, 7, 1.8, 8, 9, 1.9, 10, 1.10, 11, 12, +13, 14, 14-preview, 15 (default), 15-preview
      • +
      +
    • +
    • ecmascript (JavaScript)
    • +
    • jsp
    • +
    • modelica
    • +
    • plsql
    • +
    • scala +
        +
      • Supported Versions: 2.10, 2.11, 2.12, 2.13 (default)
      • +
      +
    • +
    • vf (Salesforce VisualForce)
    • +
    • vm (Apache Velocity)
    • +
    • xml and xsl
    • +
    + +

    Available Report Formats

    + +

    PMD comes with many different renderers. +All formats are described at PMD Report formats

    + + + +
    + + Tags: + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_configuring_rules.html b/pmd_userdocs_configuring_rules.html new file mode 100644 index 0000000000..33c765f048 --- /dev/null +++ b/pmd_userdocs_configuring_rules.html @@ -0,0 +1,1501 @@ + + + + + + + + +Configuring rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Configuring rules

    +
    + + + +
    + + +
    Learn how to configure your rules directly from the ruleset XML.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Message and priority overriding

    + +

    You can change a rule’s message by specifying a message +attribute on the rule element. This will override the previous +value and change the message the rule will print on the report.

    + +

    Similarly, the priority of a rule can be changed via a nested +element. Using priority, you can deactivate some rules based on a +minimum priority threshold (set using the -min CLI option). +Priority is an integer ranging from 1 to 5, with 1 being the highest +priority.

    + +

    Putting things together, the following rule reference lowers the priority +of EmptyCatchBlock to 5, such that e.g. using the -min 4 CLI parameters +will cause the rule to be ignored.

    + +
    <rule ref="category/java/errorprone.xml/EmptyCatchBlock"
    +      message="Empty catch blocks should be avoided" >
    +      <priority>5</priority>
    +</rule>
    +
    + +

    Rule properties

    + +

    Properties make it easy to customise the behaviour of a rule directly from the xml. They come in several types, which correspond to the type of their values. For example, NPathComplexity declares a property “reportLevel”, with an integer value type, and which corresponds to the threshold above which a method will be reported. If you believe that its default value of 200 is too high, you could lower it to e.g. 150 in the following way:

    + +
    <rule ref="category/java/design.xml/NPathComplexity">
    +    <properties>
    +        <property name="reportLevel">
    +              <value>150</value>
    +        </property>
    +    </properties>
    +</rule>
    +
    + +

    Properties are assigned a value with a property element, which should mention the name of a property as an attribute. The value of the property can be specified either in the content of the element, like above, or in the value attribute, e.g.

    + +
    <property name="reportLevel" value="150"/>
    +
    + +

    All property assignments must be enclosed in a properties element, which is itself inside a rule element.

    + + + +

    Some properties take multiple values (a list), in which case you can provide them all by delimiting them with a delimiter character. It is usually a pipe (‘|’), or a comma (‘,’) for numeric properties, e.g.

    +
     <property name="legalCollectionTypes"
    +           value="java.util.ArrayList|java.util.Vector|java.util.HashMap"/>
    +
    + +

    These properties are referred to as multivalued properties in this documentation.

    + + +
    + + Tags: + + + + userdocs + + + + getting_started + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_cpd.html b/pmd_userdocs_cpd.html new file mode 100644 index 0000000000..c139ecde9b --- /dev/null +++ b/pmd_userdocs_cpd.html @@ -0,0 +1,2458 @@ + + + + + + + + +Finding duplicated code with CPD | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Finding duplicated code with CPD

    +
    + + + +
    + + +
    Learn how to use CPD, the copy-paste detector shipped with PMD.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Overview

    + +

    Duplicate code can be hard to find, especially in a large project. +But PMD’s Copy/Paste Detector (CPD) can find it for you!

    + +

    CPD works with Java, JSP, C/C++, C#, Go, Kotlin, Ruby, Swift and many more languages. +It can be used via command-line, or via an Ant task. +It can also be run with Maven by using the cpd-check goal on the Maven PMD Plugin.

    + +

    Your own language is missing? +See how to add it here.

    + +

    Why should you care about duplicates?

    + +

    It’s certainly important to know where to get CPD, and how to call it, but it’s worth stepping back for a moment and asking yourself why you should care about this, being the occurrence of duplicate code blocks.

    + +

    Assuming duplicated blocks of code are supposed to do the same thing, any refactoring, even simple, must be duplicated too – which is unrewarding grunt work, and puts pressure on the developer to find every place in which to perform the refactoring. Automated tools like CPD can help with that to some extent.

    + +

    However, failure to keep the code in sync may mean automated tools will no longer recognise these blocks as duplicates. This means the task of finding duplicates to keep them in sync when doing subsequent refactorings can no longer be entrusted to an automated tool – adding more burden on the maintainer. Segments of code initially supposed to do the same thing may grow apart undetected upon further refactoring.

    + +

    Now, if the code may never change in the future, then this is not a problem.

    + +

    Otherwise, the most viable solution is to not duplicate. If the duplicates are already there, then they should be refactored out. We thus advise developers to use CPD to help remove duplicates, not to help keep duplicates in sync.

    + +

    Refactoring duplicates

    + +

    Once you have located some duplicates, several refactoring strategies may apply depending of the scope and extent of the duplication. Here’s a quick summary:

    + +
      +
    • If the duplication is local to a method or single class: +
        +
      • Extract a local variable if the duplicated logic is not prohibitively long
      • +
      • Extract the duplicated logic into a private method
      • +
      +
    • +
    • If the duplication occurs in siblings within a class hierarchy: +
        +
      • Extract a method and pull it up in the class hierarchy, along with common fields
      • +
      • Use the Template Method design pattern
      • +
      +
    • +
    • If the duplication occurs consistently in unrelated hierarchies: +
        +
      • Introduce a common ancestor to those class hierarchies
      • +
      +
    • +
    + +

    Novice as much as advanced readers may want to read on on Refactoring Guru for more in-depth strategies, use cases and explanations.

    + +

    CLI Usage

    + +

    CLI options reference

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionDescriptionDefaultApplies to
    --minimum-tokensRequired The minimum token length which should be reported as a duplicate.
    --filesRequired List of files and directories to process
    --filelistPath to file containing a comma delimited list of files to analyze. If this is given, then you don't need to provide --files.
    --languageSources code language.java
    --encodingCharacter encoding to use when processing files. If not specified, CPD uses the system default encoding.
    --skip-duplicate-filesIgnore multiple copies of files of the same name and length in comparison.false
    --excludeFiles to be excluded from CPD check
    --non-recursiveDon't scan subdirectoriesfalse
    --skip-lexical-errorsSkip files which can't be tokenized due to invalid characters instead of aborting CPDfalse
    --formatReport format.text
    --failOnViolation <bool>By default CPD exits with status 4 if code duplications are found. + Disable this option with --failOnViolation false to exit with 0 instead and just write the report.true
    --ignore-literalsIgnore number values and string contents when comparing textfalseJava
    --ignore-identifiersIgnore constant and variable names when comparing textfalseJava
    --ignore-annotationsIgnore language annotations when comparing textfalseJava
    --ignore-usingsIgnore using directives in C# when comparing textfalseC#
    --no-skip-blocksDo not skip code blocks matched by --skip-blocks-patternfalseC++
    --skip-blocks-patternPattern to find the blocks to skip. It is a string property and contains of two parts, + separated by |. The first part is the start pattern, the second part is the ending pattern.#if 0|#endifC++
    --uriURI to processPLSQL
    --help
    -h
    Print help textfalse
    + +

    Examples

    + +

    Note: The following example use the Linux start script. For Windows, just replace “./run.sh cpd” by “cpd.bat”.

    + +

    Minimum required options: Just give it the minimum duplicate size and the source directory:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java
    +
    + +

    You can also specify the language:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /path/to/c/source --language cpp
    +
    + +

    You may wish to check sources that are stored in different directories:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /path/to/other/source  --files /path/to/other/source --files /path/to/other/source --language fortran
    +
    + +

    There should be no limit to the number of ‘–files’, you may add… But if you stumble one, please tell us !

    + +

    And if you’re checking a C source tree with duplicate files in different architecture directories +you can skip those using –skip-duplicate-files:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /path/to/c/source --language cpp --skip-duplicate-files
    +
    + +

    You can also specify the encoding to use when parsing files:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java --encoding utf-16le
    +
    + +

    You can also specify a report format - here we’re using the XML report:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java --format xml
    +
    + +

    The default format is a text report, and there’s also a csv report.

    + +

    Note that CPD is pretty memory-hungry; you may need to give Java more memory to run it, like this:

    + +
    $ export PMD_JAVA_OPTS=-Xmx512m
    +$ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java
    +
    + +

    In order to change the heap size under Windows, you’ll need to edit the batch file cpd.bat or +set the environment variable PMD_JAVA_OPTS prior to starting CPD:

    + +
    C:\ > cd C:\pmd-bin-6.30.0-SNAPSHOT\bin
    +C:\...\bin > set PMD_JAVA_OPTS=-Xmx512m
    +C:\...\bin > .\cpd.bat --minimum-tokens 100 --files c:\temp\src
    +
    + +

    If you specify a source directory but don’t want to scan the sub-directories, you can use the non-recursive option:

    + +
    $ ./run.sh cpd --minimum-tokens 100 --non-recursive --files /usr/local/java/src/java
    +
    + +

    Exit status

    + +

    Please note that if CPD detects duplicated source code, it will exit with status 4 (since 5.0). +This behavior has been introduced to ease CPD integration into scripts or hooks, such as SVN hooks.

    + + + + + +
    0Everything is fine, no code duplications found
    1Couldn't understand command line parameters or CPD exited with an exception
    4At least one code duplication has been detected unless '--failOnViolation false' is used.
    + +

    Supported Languages

    + +
      +
    • C#
    • +
    • C/C++
    • +
    • Dart
    • +
    • EcmaScript (JavaScript)
    • +
    • Fortran
    • +
    • Go
    • +
    • Groovy
    • +
    • Java
    • +
    • Jsp
    • +
    • Kotlin
    • +
    • Lua
    • +
    • Matlab
    • +
    • Modelica
    • +
    • Objective-C
    • +
    • Perl
    • +
    • PHP
    • +
    • PL/SQL
    • +
    • Python
    • +
    • Ruby
    • +
    • Salesforce.com Apex
    • +
    • Scala
    • +
    • Swift
    • +
    • Visualforce
    • +
    • XML
    • +
    + +

    Available report formats

    + +
      +
    • text : Default format
    • +
    • xml
    • +
    • csv
    • +
    • csv_with_linecount_per_file
    • +
    • vs
    • +
    + +

    For details, see CPD Report Formats.

    + +

    Ant task

    + +

    Andy Glover wrote an Ant task for CPD; here’s how to use it:

    + +
        <target name="cpd">
    +        <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" />
    +        <cpd minimumTokenCount="100" outputFile="/home/tom/cpd.txt">
    +            <fileset dir="/home/tom/tmp/ant">
    +                <include name="**/*.java"/>
    +            </fileset>
    +        </cpd>
    +    </target>
    +
    + + + +

    Attribute reference

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeDescriptionDefaultApplies to
    minimumtokencountRequired A positive integer indicating the minimum duplicate size.
    encodingThe character set encoding (e.g., UTF-8) to use when reading the source code files, but also when + producing the report. A piece of warning, even if you set properly the encoding value, + let's say to UTF-8, but you are running CPD encoded with CP1252, you may end up with not UTF-8 file. + Indeed, CPD copy piece of source code in its report directly, therefore, the source files + keep their encoding.
    + If not specified, CPD uses the system default encoding.
    formatThe format of the report (e.g. csv, text, xml).text
    ignoreLiteralsif true, CPD ignores literal value differences when evaluating a duplicate + block. This means that foo=42; and foo=43; will be seen as equivalent. You may want + to run PMD with this option off to start with and then switch it on to see what it turns up.falseJava
    ignoreIdentifiersSimilar to ignoreLiterals but for identifiers; i.e., variable names, methods names, and so forth.falseJava
    ignoreAnnotationsIgnore annotations. More and more modern frameworks use annotations on classes and methods, + which can be very redundant and trigger CPD matches. With J2EE (CDI, Transaction Handling, etc) + and Spring (everything) annotations become very redundant. Often classes or methods have the + same 5-6 lines of annotations. This causes false positives.falseJava
    ignoreUsingsIgnore using directives in C#.falseC#
    skipDuplicateFilesIgnore multiple copies of files of the same name and length in comparison.false
    skipLexicalErrorsSkip files which can't be tokenized due to invalid characters instead of aborting CPD.false
    skipBlocksEnables or disabled skipping of blocks like a pre-processor. See also option skipBlocksPattern.trueC++
    skipBlocksPatternConfigures the pattern, to find the blocks to skip. It is a string property and contains of two parts, + separated by |. The first part is the start pattern, the second part is the ending pattern.#if 0|#endifC++
    languageFlag to select the appropriate language (e.g. c, cpp, cs, java, jsp, php, ruby, fortran + ecmascript, and plsql).java
    outputfileThe destination file for the report. If not specified the console will be used instead.
    + +

    Also, you can get verbose output from this task by running ant with the -v flag; i.e.:

    + +
    ant -v -f mybuildfile.xml cpd
    +
    + +

    Also, you can get an HTML report from CPD by using the XSLT script in pmd/etc/xslt/cpdhtml.xslt. Just run +the CPD task as usual and right after it invoke the Ant XSLT script like this:

    + +
        <xslt in="cpd.xml" style="etc/xslt/cpdhtml.xslt" out="cpd.html" />
    +
    + +

    GUI

    + +

    CPD also comes with a simple GUI. You can start it via some scripts in the bin folder:

    + +

    For Windows:

    + +
    cpdgui.bat
    +
    + +

    For Linux:

    + +
    ./run.sh cpdgui
    +
    + +

    Here’s a screenshot of CPD after running on the JDK 8 java.lang package:

    + +
    CPD Screenshot after running on the JDK 8 java.lang package
    + +

    Suppression

    + +

    Arbitrary blocks of code can be ignored through comments on Java, C/C++, Dart, Go, Javascript, +Kotlin, Lua, Matlab, Objective-C, PL/SQL, Python, Swift and C# by including the keywords CPD-OFF and CPD-ON.

    + +
        public Object someParameterizedFactoryMethod(int x) throws Exception {
    +        // some unignored code
    +
    +        // tell cpd to start ignoring code - CPD-OFF
    +
    +        // mission critical code, manually loop unroll
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +        goDoSomethingAwesome(x + x / 2);
    +
    +        // resume CPD analysis - CPD-ON
    +
    +        // further code will *not* be ignored
    +    }
    +
    + +

    Additionally, Java allows to toggle suppression by adding the annotations +@SuppressWarnings("CPD-START") and @SuppressWarnings("CPD-END") +all code within will be ignored by CPD.

    + +

    This approach however, is limited to the locations were @SuppressWarnings is accepted. +It’s legacy and the new comment’s based approach should be favored.

    + +
        //enable suppression
    +    @SuppressWarnings("CPD-START")
    +    public Object someParameterizedFactoryMethod(int x) throws Exception {
    +        // any code here will be ignored for the duplication detection
    +    }
    +    //disable suppression
    +    @SuppressWarnings("CPD-END)
    +    public void nextMethod() {
    +    }
    +
    + +

    Other languages currently have no support to suppress CPD reports. In the future, +the comment based approach will be extended to those of them that can support it.

    + +

    Credits

    +

    CPD has been through three major incarnations:

    + +
      +
    • +

      First we wrote it using a variant of Michael Wise’s Greedy String Tiling algorithm (our variant is described +here).

      +
    • +
    • +

      Then it was completely rewritten by Brian Ewins using the +Burrows-Wheeler transform.

      +
    • +
    • +

      Finally, it was rewritten by Steve Hawkins to use the +Karp-Rabin string matching algorithm.

      +
    • +
    + + +
    + + Tags: + + + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_cpd_report_formats.html b/pmd_userdocs_cpd_report_formats.html new file mode 100644 index 0000000000..2eedec95fe --- /dev/null +++ b/pmd_userdocs_cpd_report_formats.html @@ -0,0 +1,1652 @@ + + + + + + + + +Report formats for CPD | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Report formats for CPD

    +
    + + + +
    + + +
    Overview of the built-in report formats for CPD
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Overview

    + +

    CPD collects occurrences of found duplications and provides them to the selected report format. +Each found code duplication appears in one or more other files, so that each code duplication can +have multiple locations. Not all report formats display all locations.

    + +

    The following examples always describe the same duplications:

    + +
      +
    1. a code block of 239 tokens spanning 33 lines in RuleReferenceTest. This is a duplication within the same file.
    2. +
    3. a code block of 110 tokens spanning 16 lines in JaxenXPathRuleQueryTest. This is a duplication that appears +3 times within the same file.
    4. +
    + +

    text

    + +

    This is the default format.

    + +

    All duplications are reported one after another. For each duplication, the complete code snippet is output. +Each duplication is separated by ======.

    + +

    Example:

    + +
    Found a 33 line (239 tokens) duplication in the following files: 
    +Starting at line 32 of /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java
    +Starting at line 68 of /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java
    +
    +    public void testOverride() {
    +        final StringProperty PROPERTY1_DESCRIPTOR = new StringProperty("property1", "Test property", null, 0f);
    +        MockRule rule = new MockRule();
    +        rule.definePropertyDescriptor(PROPERTY1_DESCRIPTOR);
    +        rule.setLanguage(LanguageRegistry.getLanguage(Dummy2LanguageModule.NAME));
    +        rule.setName("name1");
    +        rule.setProperty(PROPERTY1_DESCRIPTOR, "value1");
    +        rule.setMessage("message1");
    +        rule.setDescription("description1");
    +        rule.addExample("example1");
    +        rule.setExternalInfoUrl("externalInfoUrl1");
    +        rule.setPriority(RulePriority.HIGH);
    +
    +        final StringProperty PROPERTY2_DESCRIPTOR = new StringProperty("property2", "Test property", null, 0f);
    +        RuleReference ruleReference = new RuleReference();
    +        ruleReference.setRule(rule);
    +        ruleReference.definePropertyDescriptor(PROPERTY2_DESCRIPTOR);
    +        ruleReference.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
    +        ruleReference
    +                .setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
    +        ruleReference
    +                .setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
    +        ruleReference.setDeprecated(true);
    +        ruleReference.setName("name2");
    +        ruleReference.setProperty(PROPERTY1_DESCRIPTOR, "value2");
    +        ruleReference.setProperty(PROPERTY2_DESCRIPTOR, "value3");
    +        ruleReference.setMessage("message2");
    +        ruleReference.setDescription("description2");
    +        ruleReference.addExample("example2");
    +        ruleReference.setExternalInfoUrl("externalInfoUrl2");
    +        ruleReference.setPriority(RulePriority.MEDIUM_HIGH);
    +
    +        validateOverriddenValues(PROPERTY1_DESCRIPTOR, PROPERTY2_DESCRIPTOR, ruleReference);
    +=====================================================================
    +Found a 16 line (110 tokens) duplication in the following files: 
    +Starting at line 66 of /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java
    +Starting at line 88 of /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java
    +Starting at line 110 of /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java
    +
    +        JaxenXPathRuleQuery query = createQuery(xpath);
    +        List<String> ruleChainVisits = query.getRuleChainVisits();
    +        Assert.assertEquals(2, ruleChainVisits.size());
    +        Assert.assertTrue(ruleChainVisits.contains("dummyNode"));
    +        // Note: Having AST_ROOT in the rule chain visits is probably a mistake. But it doesn't hurt, it shouldn't
    +        // match a real node name.
    +        Assert.assertTrue(ruleChainVisits.contains(JaxenXPathRuleQuery.AST_ROOT));
    +
    +        DummyNodeWithListAndEnum dummy = new DummyNodeWithListAndEnum(1);
    +        RuleContext data = new RuleContext();
    +        data.setLanguageVersion(LanguageRegistry.findLanguageByTerseName("dummy").getDefaultVersion());
    +
    +        query.evaluate(dummy, data);
    +        // note: the actual xpath queries are only available after evaluating
    +        Assert.assertEquals(2, query.nodeNameToXPaths.size());
    +        Assert.assertEquals("self::node()[(attribute::Test1 = \"false\")][(attribute::Test2 = \"true\")]", query.nodeNameToXPaths.get("dummyNode").get(0).toString());
    +
    + +

    xml

    + +

    This format uses XML to output the duplications in a more structured format.

    + +

    Example:

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<pmd-cpd>
    +   <duplication lines="33" tokens="239">
    +      <file column="29" endcolumn="75" endline="64" line="32"
    +            path="/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java"/>
    +      <file column="37" endcolumn="75" endline="100" line="68"
    +            path="/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java"/>
    +      <codefragment><![CDATA[    public void testOverride() {
    +        final StringProperty PROPERTY1_DESCRIPTOR = new StringProperty("property1", "Test property", null, 0f);
    +        MockRule rule = new MockRule();
    +        rule.definePropertyDescriptor(PROPERTY1_DESCRIPTOR);
    +        rule.setLanguage(LanguageRegistry.getLanguage(Dummy2LanguageModule.NAME));
    +        rule.setName("name1");
    +        rule.setProperty(PROPERTY1_DESCRIPTOR, "value1");
    +        rule.setMessage("message1");
    +        rule.setDescription("description1");
    +        rule.addExample("example1");
    +        rule.setExternalInfoUrl("externalInfoUrl1");
    +        rule.setPriority(RulePriority.HIGH);
    +
    +        final StringProperty PROPERTY2_DESCRIPTOR = new StringProperty("property2", "Test property", null, 0f);
    +        RuleReference ruleReference = new RuleReference();
    +        ruleReference.setRule(rule);
    +        ruleReference.definePropertyDescriptor(PROPERTY2_DESCRIPTOR);
    +        ruleReference.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
    +        ruleReference
    +                .setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
    +        ruleReference
    +                .setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
    +        ruleReference.setDeprecated(true);
    +        ruleReference.setName("name2");
    +        ruleReference.setProperty(PROPERTY1_DESCRIPTOR, "value2");
    +        ruleReference.setProperty(PROPERTY2_DESCRIPTOR, "value3");
    +        ruleReference.setMessage("message2");
    +        ruleReference.setDescription("description2");
    +        ruleReference.addExample("example2");
    +        ruleReference.setExternalInfoUrl("externalInfoUrl2");
    +        ruleReference.setPriority(RulePriority.MEDIUM_HIGH);
    +
    +        validateOverriddenValues(PROPERTY1_DESCRIPTOR, PROPERTY2_DESCRIPTOR, ruleReference);]]></codefragment>
    +   </duplication>
    +   <duplication lines="16" tokens="110">
    +      <file column="9" endcolumn="28" endline="81" line="66"
    +            path="/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java"/>
    +      <file column="9" endcolumn="28" endline="103" line="88"
    +            path="/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java"/>
    +      <file column="9" endcolumn="28" endline="125" line="110"
    +            path="/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java"/>
    +      <codefragment><![CDATA[        JaxenXPathRuleQuery query = createQuery(xpath);
    +        List<String> ruleChainVisits = query.getRuleChainVisits();
    +        Assert.assertEquals(2, ruleChainVisits.size());
    +        Assert.assertTrue(ruleChainVisits.contains("dummyNode"));
    +        // Note: Having AST_ROOT in the rule chain visits is probably a mistake. But it doesn't hurt, it shouldn't
    +        // match a real node name.
    +        Assert.assertTrue(ruleChainVisits.contains(JaxenXPathRuleQuery.AST_ROOT));
    +
    +        DummyNodeWithListAndEnum dummy = new DummyNodeWithListAndEnum(1);
    +        RuleContext data = new RuleContext();
    +        data.setLanguageVersion(LanguageRegistry.findLanguageByTerseName("dummy").getDefaultVersion());
    +
    +        query.evaluate(dummy, data);
    +        // note: the actual xpath queries are only available after evaluating
    +        Assert.assertEquals(2, query.nodeNameToXPaths.size());
    +        Assert.assertEquals("self::node()[(attribute::Test1 = \"false\")][(attribute::Test2 = \"true\")]", query.nodeNameToXPaths.get("dummyNode").get(0).toString());]]></codefragment>
    +   </duplication>
    +</pmd-cpd>
    +
    + +

    csv

    + +

    This outputs the duplication as comma separated values. It only reports the duplication size (number +of lines and tokens) and the number of occurrences. After that, the begin lines and filenames are reported on +after another.

    + +

    Example:

    + +
    lines,tokens,occurrences
    +33,239,2,32,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java,68,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java
    +16,110,3,66,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java,88,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java,110,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java
    +
    + +

    csv_with_linecount_per_file

    + +

    This format is similar to “csv”, but it has one difference: The duplication size in number of lines is reported +for each occurrence separately. While the tokens are the same, due to formatting or comments, the code blocks might be +different. Whitespace and comments are usually ignored when finding duplicated code.

    + +

    In each line, the duplication size in tokens is reported, then the number of occurrences. And after that, for each +file, the begin line, the number of duplicated lines and the filename.

    + +

    Example:

    + +
    tokens,occurrences
    +239,2,32,33,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java,68,33,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenc
    +eTest.java
    +110,3,66,16,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java,88,16,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java,110,16,/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java
    +
    + +

    vs

    + +

    This outputs the duplication in a format, that Visual Studio. CPD can be added as a external tool and the output +is shown in the console. You can then click on the filenames to jump to the source where the duplication is located.

    + +

    Each occurrence of a duplication is reported in a separate line, that’s why in this example, we have 5 lines.

    + +

    Example:

    + +
    /home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java(32): Between lines 32 and 65
    +/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/RuleReferenceTest.java(68): Between lines 68 and 101
    +/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java(66): Between lines 66 and 82
    +/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java(88): Between lines 88 and 104
    +/home/pmd/source/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQueryTest.java(110): Between lines 110 and 126
    +
    + + +
    + + Tags: + + + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_defining_properties.html b/pmd_userdocs_extending_defining_properties.html new file mode 100644 index 0000000000..34ed367715 --- /dev/null +++ b/pmd_userdocs_extending_defining_properties.html @@ -0,0 +1,1651 @@ + + + + + + + + +Defining rule properties | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Defining rule properties

    +
    + + + +
    + + +
    Learn how to define your own properties both for Java and XPath rules.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Rule properties are a way to make your rules configurable directly from the +ruleset XML. Their usage is described on the Configuring Rules page.

    + +

    If you’re a rule developer, you may want to think about what would be useful for +a user of your rule to parameterise. It could be a numeric report level, a boolean +flag changing the behaviour of your rule… Chances are there is some detail +that can be abstracted away from your implementation, and in that case, this +page can help you squeeze that sweet flexibility out of your rule.

    + +

    Overview of properties

    + +

    The basic thing you need to do as a developer is to define a property descriptor and declare that your rule uses it. A property descriptor defines a number of attributes for your property:

    +
      +
    • Its name, with which the user will refer to your property;
    • +
    • Its description, for documentation purposes;
    • +
    • Its default value
    • +
    + +

    Don’t worry, all of these attributes can be specified in a single Java statement (or xml element for XPath rules).

    + +

    For Java rules

    + +

    The procedure to define a property is quite straightforward:

    + + +

    You can then retrieve the value of the property at any time using getProperty(PropertyDescriptor).

    + +

    Creating a descriptor

    + +

    Properties can be built using type-specific builders, which can be obtained +from the factory methods of PropertyFactory. For example, to build a +string property, you’d call

    +
    PropertyFactory.stringProperty("myProperty")
    +               .desc("This is my property")
    +               .defaultValue("foo")
    +               .build();
    +
    + +

    This is fairly more readable than a constructor call, but keep in mind the description and the default value are not optional.

    + + + +

    For numeric properties, you can add constraints on the range of acceptable values, e.g.

    +
    PropertyFactory.intProperty("myIntProperty")
    +               .desc("This is my property")
    +               .defaultValue(3)
    +               .require(positive())
    +               .range(0, 100)
    +               .build();
    +
    + +

    The positive method is part of +the NumericConstraints class, which provides some +other constraints. The constraint mechanism will be completely unlocked with 7.0.0, +since we’ll be migrating our API to Java 8.

    + +

    Enumerated properties are a bit less straightforward to define, though they are +arguably more powerful. These properties don’t have a specific value type, instead, +you can choose any type of value, provided the values are from a closed set. To make +that actionable, you give string labels to each of the acceptable values, and the user +will provide one of those labels as a value in the XML. The property will give you back +the associated value, not the label. Here’s an example:

    +
    static Map<String, ModeStrategy> map = new HashMap<>();
    +
    +static {
    +  map.put("easyMode", new EasyStrategy());
    +  map.put("hardMode", new HardStrategy());
    +}
    +
    +static PropertyDescriptor<ModeStrategy> modeProperty
    + = PropertyFactory.enumProperty("modeProperty", map)
    +                  .desc("This is my property")
    +                  .defaultValue(new EasyStrategy())
    +                  .build();
    +
    + +

    Example

    + +

    You can see an example of properties used in a PMD rule here. +There are several things to notice here:

    +
      +
    • The property descriptors are declared static final, which should generally be +the case, as descriptors are immutable and can be shared between instances of the same rule;
    • +
    • The property is declared using definePropertyDescriptor` in the constructor, +which ensures the property gets recognised by PMD at the time the properties +are overridden (which happens before rule execution);
    • +
    • The value of the property is not retrieved in the constructor, but in one of +the visit methods (typically on the highest node in the tree, since the property +doesn’t change).
    • +
    + +

    For XPath rules

    + +

    XPath rules can also define their own properties. To do so, you must add a property element in the properties element of your rule, which declares the type attribute. This attribute conditions what type the underlying property has, and can have the following values:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    type attributeXSD type
    Integerxs:integer
    Longxs:integer
    Doublexs:decimal
    Booleanxs:boolean
    Stringxs:string
    Characterxs:string
    Regexxs:string
    + + + +

    Note that enumerated properties are not available in XPath rules (yet?).

    + +

    Properties defined in XPath also must declare the description attribute. +Numeric properties also expect the min and max attributes for now. Here are +a few examples to sum it up:

    + +
    <property name="stringProp" type="Boolean" value="true" description="A BooleanProperty."/>
    +<property name="intProp" type="Integer" value="3" min="1" max="20" description="An IntegerProperty."/>
    +
    + +

    You can then use the property in XPath with the syntax $propertyName, for example:

    + +
    <rule name="MyXpathRule" ...>
    +  <properties>
    +    <property name="maxStatements" type="Integer" value="10" min="1" max="40"
    +              description="Max number of statements per method"/>
    +    <property name="xpath">
    +    <![CDATA[
    +      //MethodDeclaration/Block[count(//BlockStatement) > $maxStatements]
    +    ]]></property>
    +  </properties>
    +</rule>
    +
    + +

    Multivalued properties

    + +

    Multivalued properties are also allowed and their type attribute has the form +List[Boolean] or List[Character], with every above type allowed. These +properties require XPath 2.0 to work properly, and make use of the +sequence datatype provided by that language. You thus need to set the +version property to 2.0 to use them. Properties can also declare the +delimiter attribute.

    + +
    <rule name="MyXpathRule" ...>
    +  <properties>
    +    <property name="version" value="2.0" />
    +    <property name="intProp" type="List[Integer]" value="1,2,5" description="An IntegerMultiProperty." />
    +    <property name="reportedIdentifiers" type="List[String]" value="foo$bar" delimiter="$"
    +              description="A StringMultiProperty." />
    +    <property name="xpath">
    +    <![CDATA[
    +      //VariableDeclaratorId[@Image = $reportedIdentifiers]
    +    ]]></property>
    +  </properties>
    +</rule>
    +
    + +

    Notice that in the example above, @Image = $reportedIdentifiers doesn’t test +@Image for equality with the whole sequence ('foo', 'bar'), it tests whether +the sequence contains @Image. That is, the above rule will report all variables +named foo or bar. All other XPath 2.0 functions operating on sequences +are supported.

    + + + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_designer_reference.html b/pmd_userdocs_extending_designer_reference.html new file mode 100644 index 0000000000..897eb2f0fc --- /dev/null +++ b/pmd_userdocs_extending_designer_reference.html @@ -0,0 +1,1690 @@ + + + + + + + + +The rule designer | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    The rule designer

    +
    + + + +
    + + +
    Learn about the usage and features of the rule designer.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Installing, running, updating

    + +

    The designer is part of PMD’s binary distributions. To install a distribution, see the documentation page about installing PMD.

    + +

    The app needs JRE 1.8 or above to run. Be aware that on JRE 11+, the JavaFX distribution should be installed separately. Visit the JavaFX download page to download a distribution, extract it, and set the JAVAFX_HOME environment variable.

    + +

    If the bin directory of your PMD distribution is on your shell’s path, then you can launch the app with

    + +
    run.sh designer on Linux/ OSX
    +designer.bat on Windows
    +
    + + + +

    This is to allow easy updating, and let you choose the dependencies you’re interested in. +The available language modules are those on the classpath of the app’s JVM. That’s why it’s recommended to use the standard PMD startup scripts, which setup the classpath with the available PMD libraries.

    + +

    Updating

    + +

    The latest version of the designer currently works with PMD 6.12.0 and above. You can simply replace pmd-ui-6.X.Y.jar with the latest build in the installation folder of your PMD distribution, and run it normally. Note that updating may cause some persisted state to get lost, for example the code snippet.

    + +

    Usage reference

    + +

    The rule designer is both a tool to inspect the tree on which PMD rules run on, and to write XPath rules in an integrated manner. This page describes the features that enable this.

    + +

    AST inspection

    + +

    Designer top UI

    + +

    You can enter source code in the middle zone.

    +
      +
    • Make sure to select the correct language and version for your source code: +
        +
      • Language is set app-wide with the blue button in the menu-bar
      • +
      • If the language has several language versions, you can select a specific one with the choicebox just above the code area
      • +
      +
    • +
    • If the source is valid using this setting, the tree to the right will update to display the AST of the code
    • +
    • When selecting a node, the left panel updates with information about a node
    • +
    + +

    Selecting nodes

    + +

    There are several ways to focus a node for inspection:

    +
      +
    • From the tree view: just click on an item +
        +
      • Since 6.16.0, the tree view is also searchable: press CTRL+F when it’s focused, or click on the Search button and enter a search query. You can cycle through results with CTRL+TAB or CTRL+F3, and cycle back with CTRL+SHIFT+TAB or CTRL+SHIFT+F3
      • +
      +
    • +
    • From the crumb bar: the crumb bar below the code area shows the ancestors of the currently selected node, and is empty if you have no selection:
    • +
    + +
    Ancestor crumb bar demo +

    Ancestor crumb bar demo

    + +
    + +
      +
    • From the source code: maintain CTRL for a second until the code area becomes mostly blue. Then, each node you hover over on the code area will be selected automatically. Example:
    • +
    + +
    CTRL-hover selection demo +

    CTRL-hover selection demo

    + +
    + +

    Node inspection

    + +

    The left panel displays the following information:

    + +
      +
    • XPath attributes: this basically are all the attributes available in XPath queries. Those attributes are wrappers around a Java getter, so you can obtain documentation on the relevant Javadoc (that’s not yet integrated into the designer)
    • +
    • Metrics: for nodes that support it, the values of metrics are displayed in this panel
    • +
    • Scopes: This is java specific and displays some representation of the symbol table. You mostly don’t need it. If you select eg a variable id, its usages are already highlighted automatically without opening the panel:
    • +
    + +

    Usages highlight example

    + +

    XPath rule design

    + +

    The bottom part of the UI is dedicated to designing XPath rules:

    + +

    Bottom UI

    + +

    The center is an XPath expression. As you type it, the matched nodes are updated on the right, and highlighted on the code area. Autocompletion is available on some languages.

    + +

    Note: you can keep several rules in the editor (there’s a tab for each of them).

    + +

    Rule properties

    + +

    Above the XPath expression area, the “Properties” button allows you to define new properties for your prototype rule. You can also edit the existing properties.

    + +

    When you click on it, a small popup appears:

    + +

    Property definition popup

    + +

    The popup contains in the center a list of currently defined properties, displaying their name and expected type.

    + +
      +
    • Adding: the “Add property” button adds a row to the table
    • +
    • Deleting: each item has a “Trash” button to delete the property
    • +
    • Editing: each property can be further edited by clicking on the “Ellipsis” button on the right
    • +
    + +

    Editing properties

    + +

    The edition menu of a property looks like the following:

    + +

    Property edition popup

    + +
      +
    • You can edit the name, description, expected type, and default value of the property
    • +
    • All this information is exported with the rule definition (see Exporting to an XML rule)
    • +
    • The default value is used unless you’re editing a test case, and you set a custom value for the test case. TODO link
    • +
    + +

    Exporting to an XML rule

    + +

    The little export icon next to the gear icon opens a menu to export your rule. This menu lets you fill-in the metadata necessary for an XPath rule to be included in a ruleset.

    + +
    Rule export demo +

    Rule export demo

    + +
    + +

    Testing a rule

    + +

    PMD has its own XML format to describe rule tests and execute them using our test framework. The designer includes a test editor, which allows you to edit such files or create a new one directly as you edit the rule. This is what the panel left of the XPath expression area is for.

    + +

    See also the test framework documentation.

    + +

    Testing model

    + +

    A rule test describes

    +
      +
    • the configuration of the rule
    • +
    • the source on which to run
    • +
    • the expected violations
    • +
    • a description (to name the test)
    • +
    + +

    When executing a test, the rule is run on the source with the given configuration, then the violations it finds are compared to the expected ones.

    + +

    Adding tests

    + +

    Tests can be added in one of four ways:

    +
      +
    • From an XML file: if you already have a test XML file for your tests, you can load all the tests it defines easily.
    • +
    + +
    Test import demo +

    Test import example

    + +
    + +
      +
    • +

      From the current source: A new test case with a default configuration is created, with the source that is currently in the editor

      +
    • +
    • +

      With an empty source: A new test case with a default configuration is created, with an empty source file. You must edit the source yourself then.

      +
    • +
    • +

      From an existing test case: Each test case list item has a “Copy” button which duplicates the test and loads the new one.

      +
    • +
    + +

    Test status

    + +

    In the designer, the test panel is a list of test cases. Their status (passing, failing, error, unknown) is color coded.

    + +
    Test status color coding examples +

    All tests passing (green):

    + +

    All green

    + +

    A failing test (orange):

    + +

    Failing

    + +
    + +

    Loading a test case

    + +

    Each test has a piece of source, which you can edit independently of the others, when the test is loaded in the editor. Additional rule configuration options can be chosen when the test is loaded.

    + +

    Loading is done with the Load button:

    + +
    Test loading demo +

    Test loading demo

    + +
    + +

    Only one test case may be loaded at a time. If the loaded test is unloaded, the editor reverts back to the state it had before the first test case was loaded.

    + +

    Editing a loaded test case

    + +

    When a test is loaded, the source you edit in the code area is the source of the test. Changes are independent from other tests, and from the piece of source that was previously in the editor.

    + +

    When a test is loaded, an additional toolbar shows up at the top of the code area:

    + +

    Failing

    + +

    Expected violations

    + +

    The “Expected violations” button is used to add or edit the expected violations.

    + +

    Initially the list of violations is empty. You can add violations by dragging and dropping nodes onto the button or its popup, from any control that displays nodes. For example:

    + +
    Adding a violation demo +

    Add violation gif

    + +
    + +

    Test case rule configuration

    + +

    Rule properties can be configured for each test case independently using the “Property mapping” button. For example:

    + +
    Test rule property demo +

    Configure properties demo

    + +
    + +

    This configuration will be used when executing the test to check its status.

    + +

    Exporting tests

    + +

    When you’re done editing tests, it’s a good idea to save the test file to an XML file. Exporting is done using the “Export” button above the list of test cases:

    + +
    Test export demo +

    Test export demo

    + +
    + +

    Note that the exported file does not contain any information about the rule. The rule must be in a ruleset file somewhere else.

    + +

    If you want to use PMD’s test framework to use the test file in your build, please refer to the conventions explained in the test framework documentation.

    + + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_metrics_howto.html b/pmd_userdocs_extending_metrics_howto.html new file mode 100644 index 0000000000..deefd2f3a7 --- /dev/null +++ b/pmd_userdocs_extending_metrics_howto.html @@ -0,0 +1,1776 @@ + + + + + + + + +Using and defining code metrics for custom rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Using and defining code metrics for custom rules

    +
    + + + +
    + + +
    Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provides developers with a straightforward interface to use code metrics in their rules, and to extend the framework with their own custom metrics.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    Using the metrics framework

    + + + +

    In PMD’s Metrics framework, a metric is an operation that can be carried out on nodes of a certain type and produces +a numeric result. In the Java framework, metrics can be computed on operation declaration nodes (constructor and +method declaration), and type declaration nodes (class, interface, enum, and annotation declarations). A metric +object in the framework can only handle either types or operations, but not both.

    + +

    PMD ships with a library of already implemented metrics. These metrics are referenced by MetricKey objects, +which are listed in two public enums: JavaClassMetricKey and JavaOperationMetricKey. +Metric keys wrap a metric, and know which type of node their metric can be computed on. That way, you cannot compute an operation metric on a class +declaration node. Metrics that can be computed on both operation and type declarations (e.g. NCSS) have one metric key in +each enum.

    + +

    For XPath rules

    + +

    XPath rules can compute metrics using the metric function. This function takes a single string argument, +which is the name of the metric key as defined in JavaClassMetricKey or JavaOperationMetricKey. The metric + will be computed on the context node.

    + +

    The function will throw an exception in the following cases:

    + + + + +

    Examples

    + +
      +
    • //ClassOrInterfaceDeclaration[metric('NCSS') > 200]
    • +
    • //MethodDeclaration[metric('CYCLO') > 10 and metric('NCSS') > 20]
    • +
    • //ClassOrInterfaceDeclaration[metric('CYCLO') > 50]: IllegalArgumentException! +CYCLO’s only defined for methods and constructors.
    • +
    + +

    For Java Rules

    + +

    The static façade class JavaMetrics is the single entry point to compute metrics in the Java framework.

    + +

    This class provides the method get and its overloads. The following sections describes the interface of this class.

    + +

    Basic usage

    + +

    The simplest overloads of JavaMetrics.get take two parameters: a MetricKey and a node of the corresponding type. +Say you want to write a rule to report methods that have a high cyclomatic complexity. In your rule’s visitor, you +can get the value of Cyclo for a method node like so:

    +
    public Object visit(ASTMethodDeclaration method, Object data) {
    +  int cyclo = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, method);
    +  if (cyclo > 10) {
    +    // add violation
    +  }
    +  return data;
    +}
    +
    + +

    The same goes for class metrics: you select one among JavaClassMetricKey’s constants and pass it along with the node +to JavaMetrics.get.

    + + + +

    Capability checking

    + +

    Metrics are not necessarily computable on any node of the type they handle. For example, Cyclo cannot be computed on +abstract methods. Metric keys provides a supports(Node) boolean method +to find out if the metric can be computed on +the specified node. If the metric cannot be computed on the given node, JavaMetrics.get will return Double.NaN . +If you’re concerned about that, you can condition your call on whether the node is supported or not:

    +
    public Object visit(ASTMethodDeclaration method, Object data) {
    +  if (JavaOperationMetricKey.CYCLO.supports(node)) {
    +    int cyclo = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, method);
    +    if (cyclo > 10) {
    +      // add violation
    +    }
    +    return data;
    +  }
    +}
    +
    + +

    Metric options

    + +

    Some metrics define options that can be used to slightly modify the computation. You’ll typically see these options +gathered inside an enum in the implementation class of the metric, for example CycloMetric.CycloOption. They’re +also documented on the index of metrics.

    + +

    To use options with a metric, you must first bundle them into a MetricOptions object. MetricOptions provides the +utility method ofOptions to get a MetricOptions bundle from a collection or with varargs parameters. You can then +pass this bundle as a parameter to JavaMetrics.get:

    +
    public Object visit(ASTMethodDeclaration method, Object data) {
    +  int cyclo = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, method,
    +                                    MetricOptions.ofOptions(CycloOptions.IGNORE_BOOLEAN_PATHS));
    +  if (cyclo > 10) {
    +      // add violation
    +  }
    +    return data;
    +}
    +
    + +

    The version of MetricOptions.ofOptions using a collection is useful when you’re building a MetricOptions from eg +the value of an EnumeratedMultiProperty, which gives users control of the options they use. See +CyclomaticComplexityRule +for an example usage.

    + +

    Result options

    + +

    The Metrics API also gives you the possibility to aggregate the result of an operation metric on all operations of a +class very simply. You can for example get the highest value of the metric over a class that way:

    +
    public Object visit(ASTClassOrInterfaceDeclaration clazz, Object data) {
    +  int highest = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, clazz,
    +                                      ResultOption.HIGHEST);
    +  if (highest > 10) {
    +      // add violation
    +  }
    +    return data;
    +}
    +
    + +

    Notice that we use an operation metric and a class node. The ResultOption parameter controls what result will be +computed: you can choose among HIGHEST, SUM and AVERAGE. You can use metric options together with a result +option too.

    + +

    Complete use case

    + +

    The following is a sample code for a rule reporting methods with a cyclomatic +complexity over 10 and classes with a total cyclo over 50. A metric option can be +user-configured with a rule property. More complete examples can be found in +CyclomaticComplexityRule, +NcssCountRule, +or GodClassRule.

    + +
    public class CycloRule extends AbstractJavaMetricsRule {
    +
    +  public static final BooleanProperty COUNT_BOOLEAN_PATHS
    +      = BooleanProperty.named("countBooleanPaths")
    +                       .desc("Count boolean paths")
    +                       .defaultValue(true).build();
    +
    +  private static final MetricOptions options;
    +
    +  public CycloRule() {
    +    definePropertyDescriptor(COUNT_BOOLEAN_PATHS);
    +  }
    +
    +  @Override
    +  public Object visit(ASTCompilationUnit node, Object data) {
    +    options = getProperty(COUNT_BOOLEAN_PATHS)
    +              ? MetricOptions.ofOptions(CycloOptions.IGNORE_BOOLEAN_PATHS)
    +              : MetricOptions.emptyOptions();
    +  }
    +
    +  @Override
    +  public Object visit(ASTAnyTypeDeclaration clazz, Object data) {
    +    int total = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, clazz,
    +                                      options, ResultOption.SUM);
    +
    +    if (total > 50) {
    +     // add violation
    +    }
    +
    +    return data;
    +  }
    +
    +  @Override
    +  public Object visit(ASTMethodDeclaration method, Object data) {
    +    int cyclo = (int) JavaMetrics.get(JavaOperationMetricKey.CYCLO, method,
    +                                      options);
    +    if (cyclo > 10) { // this is safe if the node is not supported, as (Double.NaN > 10) == false
    +      // add violation
    +    }
    +    return data;
    +  }
    +}
    +
    + +

    Available metrics

    + +

    There are already many metrics ready to use. We maintain the following documentation +pages to describe them all, including their usage and options:

    + + +

    Writing custom metrics

    + +

    You can use the framework to customize the existing metrics at will, or define +new ones quite easily. Here’s some info to get you started. Again, the examples are for +the Java framework but it’s symmetrical in the Apex framework.

    + +

    The really short guide

    + +
      +
    1. Determine whether your metric is an operation metric or a class metric and +extend the correct base class (AbstractJavaClassMetric or +AbstractJavaOperationMetric)
    2. +
    3. You’re immediately prompted by your IDE to implement the computeFor method. +This method takes a node of the type you want to handle, a bundle of options, +and returns the result of the metric.
    4. +
    5. Optionally specify a predicate to check if a node can be handled by overriding +the supports method.
    6. +
    7. Optionally define options (implementing MetricOption) +and handle them as you see fit in your computeFor method
    8. +
    9. Create a metric key using MetricKeyUtil’s of method, specifying a name +for your metric and an instance of your metric. You’re done and can use your +metric key as if it were a standard one.
    10. +
    + +

    Best practices

    + +
      +
    • Metrics should be stateless. In any case, instances of the same metric class +are considered equals. The same instance of your metric will be used to +compute the metric on the AST of different nodes so it should really be +“functionnally pure”. That rule also makes you keep it simple and understandable +which is nice.
    • +
    • Implementation patterns: You can implement your computeFor method as you +like it. But most metrics in our library are implemented following a few +patterns you may want to look at: +
        +
      • +

        Visitor metrics: Those metrics use one or more AST visitor to compute their +value. That’s especially good to implement metrics that count some kind of node, +e.g. NPath complexity +or NCSS. +Additionally, it makes your metric more easily generalisable to other node types.

        +
      • +
      • +

        Signature matching metrics: That’s even more straightforward when you want +to count the number of methods or fields that match a specific signature, e.g. +public static final fields. Basically a signature is an object that describes +a field or method, with info about its modifers and other node-specific info. + AbstractJavaClassMetric has a few methods that allow you to count signatures + directly, see e.g. the metrics NOPA + and WOC.

        +
      • +
      +
    • +
    + +

    Capability checking

    + +

    You may have noticed that when you extend e.g. AbstractJavaClassMetric, the +computeFor method you’re prompted to implement takes a node of type +ASTAnyTypeDeclaration as a parameter. That’s not a concrete node type, but +an interface, implemented by several concrete node types. Basically that’s done +so that class metrics are given the ability to be computed on any type +declaration, and operation metrics on constructors and methods. Here are the +concrete node types you can target with class and operation metrics, by language:

    + + + + + + + + + + + + + + + + + + + + + +
    LanguageJavaApex
    Operation declarationASTMethodOrConstructorDeclaration
    >: ASTMethodDeclaration, ASTConstructorDeclaration
    ASTMethod*
    Type declarationASTAnyTypeDeclaration >: ASTEnumDeclaration,
    ASTAnnotationDeclaration, ASTClassOrInterfaceDeclaration
    ASTUserClassOrInterface >: ASTUserClass, ASTUserInterface
    + +

    *Apex method metrics are also applied to triggers by default (see #771). Finer capability checking is not available out of the box for now.

    + +

    What if you don’t want such a generalisation? The supports method lets you +define a predicate to check that the node is supported by your metric. For example, +if your metric can only be computed on classes, you may override the default behaviour +like so:

    +
    @Override
    +public boolean supports(ASTAnyTypeDeclaration node) {
    +  return node.getTypeKind() == TypeKind.CLASS;
    +}
    +
    + + + +

    The supports method already has a default implementation in the abstract base +classes. Here’s the default behaviour by language and type of metric:

    + + + + + + + + + + + + + + + + + + + + + +
    LanguageJavaApex
    Operation metricssupports constructors and non abstract methodssupports any non abstract method (including triggers), except <init>, <clinit>, and clone
    Type declarationsupports classes and enumssupports classes
    + + + +
    + + Tags: + + + + extending + + + + userdocs + + + + metrics + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_rule_guidelines.html b/pmd_userdocs_extending_rule_guidelines.html new file mode 100644 index 0000000000..ae81d280d2 --- /dev/null +++ b/pmd_userdocs_extending_rule_guidelines.html @@ -0,0 +1,1480 @@ + + + + + + + + +Rule guidelines | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Rule guidelines

    +
    + + + +
    + + +
    Rule Guidelines, or the last touches to a rule
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Here is a bunch of thing to do you may consider once your rule is “up and running”.

    + +

    How to define rules priority

    + +

    Rule priority may, of course, changes a lot depending on the context of the project. However, you can use the following guidelines to assert the legitimate priority of your rule:

    + +
      +
    1. Change absolutely required. Behavior is critically broken/buggy.
    2. +
    3. Change highly recommended. Behavior is quite likely to be broken/buggy.
    4. +
    5. Change recommended. Behavior is confusing, perhaps buggy, and/or against standards/best practices.
    6. +
    7. Change optional. Behavior is not likely to be buggy, but more just flies in the face of standards/style/good taste.
    8. +
    9. Change highly optional. Nice to have, such as a consistent naming policy for package/class/fields…
    10. +
    + +

    For instance, let’s take the ExplicitCallToGC rule (“Do not explicitly trigger a garbage collection.”). Calling GC is a bad idea, but it doesn’t break the application. So we skip priority one. However, as explicit call to gc may really hinder application performances, we set for the priority 2.

    + +

    Correctness

    + +

    You should try to run the rule on a large code base, like the jdk source code for instance. This will help ensure that the rule does not raise exceptions when dealing with unusual constructs.

    + +

    If your rule is stateful, make sure that it is reinitialized correctly. The “-stress” command line option can be used as the files will then not be ordered but processed randomly. Running pmd with the “-stress” option several times and sorting the text output should produce identical results if the state information is correctly reset.

    + +

    Performance issues

    + +

    When writing a new rule, using command line option “-benchmark” on a few rules can give an indication on how the rule compares to others. To get the full picture, use the rulesets/internal/all-java.xml ruleset with “-benchmark”.

    + +

    Rules which use the RuleChain to visit the AST are faster than rules which perform manual visitation of the AST. The difference is small for an individual Java rule, but when running 100s of rules, it is measurable. For XPath rules, the difference is extremely noticeable due to Jaxen overhead for AST navigation. Make sure your XPath rules using the RuleChain.

    + +

    (TODO How does one know except by running in a debugger or horrendous performance?).

    + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_testing.html b/pmd_userdocs_extending_testing.html new file mode 100644 index 0000000000..64bffd5777 --- /dev/null +++ b/pmd_userdocs_extending_testing.html @@ -0,0 +1,1756 @@ + + + + + + + + +Testing your rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Testing your rules

    +
    + + + +
    + + +
    Learn how to use PMD's simple test framework for unit testing rules.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Introduction

    + +

    Good rules have tests. At least a positive test case - a code example, that triggers the rule and reports +a violation - and a negative test case - a code example, that doesn’t trigger the rule - should be created. +Of course, the more tests, the better the rule is verified. If the rule is more complex or defines properties, +with which the behavior can be modified, then these different cases can also be tested.

    + +

    And if there is a bug fix for a rule, be it a false positive or a false negative case, it should be accompanied +with an additional test case, so that the bug is not accidentally reintroduced later on.

    + +

    How it works

    + +

    PMD’s built-in rules are organized in rulesets, where all rules belonging to the same category are placed +in a single ruleset, such as “category/java/bestpractices.xml”. +Each category-ruleset has a single abstract base test class, from which the individual test classes inherit. +We have one test class per rule, which executes all test cases for a single rule. The actual test cases are +stored in separate XML files, for each rule a separate file is used.

    + +

    All the test classes inherit from net.sourceforge.pmd.testframework.PmdRuleTst, +which provides the seamless integration with JUnit. This base class determines the language, the category name +and the rule name from the concrete test class. It then searches the test code on its own. +E.g. the individual rule test class +net.sourceforge.pmd.lang.java.rule.bestpractices.AbstractClassWithoutAbstractMethodTest tests the +rule with the name “AbstractClassWithoutAbstractMethod”, which is in the category “bestpractices” for the +language “java”.

    + +

    The test code (see below Test XML Reference) describes the test case completely with +the expected behavior like number of expected rule violations, where the violations are expected, and so on.

    + +

    When you are running the test class in your IDE (e.g. Eclipse or IntelliJ IDEA) you can also select a single +test case and just execute this one.

    + +

    Where to place the test code

    + +

    The PmdRuleTst class searches the XML file, that describes the test cases for a certain rule +using the following convention: +The XML file is a test resource, so it is searched in the tree under src/test/resources.

    + +

    The sub package xml of the test class’s package should contain a file with the same name as the rule’s name +which is under test.

    + +

    For example, to test the rule “AbstractClassWithoutAbstractMethod”, the fully qualified test class is:

    + +
    net.sourceforge.pmd.lang.java.rule.bestpractices.AbstractClassWithoutAbstractMethodTest
    +
    + +

    The test code for the rule can be found in the file:

    + +
    src/test/resources/net/sourceforge/pmd/lang/java/rule/bestpractices/xml/AbstractClassWithoutAbstractMethod.xml
    +
    + +

    In general, the class name and file name pattern for the test class and data is this:

    + +
    net.sourceforge.pmd.lang.<Language Terse Name>.rule.<Category Name>.<Rule Name>Test
    +src/test/resources/net/sourceforge/pmd/lang/<Language Terse Name>/rule/<Category Name>/xml/<Rule Name>.xml
    +
    + + + + + +

    Simple example

    + +

    Test Class: AbstractClassWithoutAbstractMethodTest

    + +

    This class inherits from PmdRuleTst and is located in the package “bestpractices”, since the rule +belongs to the category “Best Practices”:

    + +
    package net.sourceforge.pmd.lang.java.rule.bestpractices;
    +
    +import net.sourceforge.pmd.testframework.PmdRuleTst;
    +
    +public class AbstractClassWithoutAbstractMethodTest extends PmdRuleTst {
    +    // no additional unit tests
    +}
    +
    + + + +

    Test Data: AvoidBranchingStatementAsLastInLoop.xml

    + +

    This is a stripped down example which just contains two test cases.

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<test-data
    +    xmlns="http://pmd.sourceforge.net/rule-tests"
    +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +    xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests https://pmd.sourceforge.io/rule-tests_1_0_0.xsd">
    +
    +    <test-code>
    +        <description>concrete class</description>
    +        <expected-problems>0</expected-problems>
    +        <code><![CDATA[
    +public class Foo {}
    +    ]]></code>
    +    </test-code>
    +
    +    <test-code>
    +        <description>failure case</description>
    +        <expected-problems>1</expected-problems>
    +        <expected-linenumbers>1</expected-linenumbers>
    +        <code><![CDATA[
    +public abstract class Foo {}
    +    ]]></code>
    +    </test-code>
    +</test-data>
    +
    + +

    Each test case is in an own <test-code> element. The first defines 0 expected problems, means this code doesn’t +trigger the rule. The second test case expects 1 problem. Since the rule violations also report the exact AST node, +you can verify the line number, too.

    + +

    Test XML Reference

    + +

    The root element is <test-data>. It can contain one or more <test-code> and <code-fragment> elements. +Each <test-code> element defines a single test case. <code-fragment> elements are used to share code snippets +between different test cases.

    + + + +

    <test-code> attributes

    + +

    The <test-code> elements understands three optional attributes:

    + +
      +
    • +

      reinitializeRule: By default, it’s true, so each test case starts with a fresh instantiated rule. Set it +to false to reproduce cases, where the previous run has influences.

      +
    • +
    • +

      regressionTest: By default, it’s true. Set it to false, to ignore and skip a test case.

      +
    • +
    • +

      useAuxClasspath: By default, it’s true. Set it to false to reproduce issues which only +appear without type resolution.

      +
    • +
    + +

    <test-code> children

    + +
      +
    • +

      <description>: Short description of the test case. This will be the JUnit test name in the report. +If applicable, this description should contain a reference to the bug number, this test case reproduces.

      +
    • +
    • +

      <rule-property>: Optional rule properties, if the rule is configurable. Just add multiple elements, to +set multiple properties for one test case. For an example, see below.

      +
    • +
    • +

      <expected-problems>: The the raw number of expected rule violations, that this rule is expected to report. +For false-positive test cases, this is always “0”. For false-negative test cases, it can be any positive number.

      +
    • +
    • +

      <expected-linenumbers>: Optional element. It’s a comma separated list of line numbers. +If there are rule violations reported, then this allows you to +assert the line numbers. Useful if multiple violations should be detected and to be sure that +false positives and negatives don’t erase each other.

      +
    • +
    • +

      <expected-messages>: Optional element, with <message> elements as children. +Can be used to validate the correct error message, e.g. if the error message references a variable name.

      +
    • +
    • +

      <code>: Either the <code> element or the <code-ref> element is required. It provides the actual code +snippet on which the rule is executed. The code itself is usually wrapped in a “CDATA” section, so that no +further XML escapes (entity references such as &lt;) are necessary.

      +
    • +
    • +

      <code-ref id=...>: Alternative to <code>. References a <code-fragment> defined earlier in the file. +This allows you to share the same code snippet with several test cases. The attribute id must match the +id of the references code fragment.

      +
    • +
    • +

      <source-type>: Optional element that specifies a specific language version. This can be used +to select a specific parser version for parsing the code snippet. If not given, the default version of +the rule’s language is used. This element can almost always be omitted.

      +
    • +
    + +

    <code-fragment>

    + +

    The code fragment has just one required attribute: id. This is used to reference it via a <code-ref> element +inside a <test-code>. Similar like the <code> element, the content of <code-fragment> is usually wrapped +in a “CDATA” section, so that no further XML escapes (entity references such as &lt;) are necessary.

    + +

    Complete XML example

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<test-data
    +    xmlns="http://pmd.sourceforge.net/rule-tests"
    +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +    xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests https://pmd.sourceforge.io/rule-tests_1_0_0.xsd">
    +
    +    <test-code reinitializeRule="true" regressionTest="true" useAuxClasspath="true">
    +        <description>Just a description, will be used as the test name for JUnit in the reports</description>
    +        <rule-property name="somePropName">propValue</rule-property>    <!-- optional -->
    +        <expected-problems>2</expected-problems>
    +        <expected-linenumbers>5,14</expected-linenumbers>               <!-- optional -->
    +        <expected-messages>                                             <!-- optional -->
    +            <message>Violation message 1</message>
    +            <message>Violation message 2</message>
    +        </expected-messages>
    +        <code><![CDATA[
    +public class ConsistentReturn {
    +    public Boolean foo() {
    +    }
    +}
    +        ]]></code>
    +        <source-type>java 1.5</source-type>                             <!-- optional -->
    +    </test-code>
    +
    +    <code-fragment id="codeSnippet1"><![CDATA[
    +public class ConsistentReturn {
    +    public Boolean foo() {
    +    }
    +}
    +    ]]></code-fragment>
    +
    +    <test-code>
    +        <description>test case using a code fragment</description>
    +        <expected-problems>0</expected-problems>
    +        <code-ref id="codeSnippet1"/>
    +    </test-code>
    +</test-data>
    +
    + + + +

    Using the test framework externally

    + +

    It is also possible to use the test framework for custom rules developed outside the PMD source base. +Therefore you just need to reference the dependency net.sourceforge.pmd:pmd-test.

    + +

    For maven, you can use this snippet:

    + +
    <dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-test</artifactId>
    +    <version>6.30.0-SNAPSHOT</version>
    +    <scope>test</scope>
    +</dependency>
    +
    + +

    Then proceed as described earlier: create your test class, create your test cases and run the unit test.

    + +

    There is one difference however: Since your package structure is probably different, you’ll need to register +the rule test manually, as SimpleAggregatorTst will fail to determine it correctly from the package and class names:

    + +
    package com.example.pmd.rules;
    +
    +import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
    +
    +public class CustomRuleTest extends SimpleAggregatorTst {
    +    @Override
    +    public void setUp() {
    +        addRule("com/example/pmd/ruleset.xml", "CustomRule");
    +    }
    +}
    +
    + +

    This will then search for a rule named “CustomRule” in the ruleset, that is located in “src/main/resources” under +the path “com/example/pmd/ruleset.xml”.

    + +

    The test data should be placed in an xml file located in “src/test/resources” under the path +“com/example/pmd/rules/xml/CustomRule.xml”.

    + +

    How the test framework is implemented

    + +

    The framework uses a custom JUnit test runner under the hood, among a couple of utility classes:

    + +
      +
    • +

      PmdRuleTst: This is the base class for tests in PMD’s code base. It is a subclass of RuleTst and just +contains the logic to determine the test resources based on the test class name.

      +
    • +
    • +

      SimpleAggregatorTst: This is a more generic base class for the test classes and defines +the custom JUnit test runner. It doesn’t register any test cases on its own. +It itself is a subclass of RuleTst.

      +
    • +
    • +

      RuleTst: contains the logic to parse the XML files and provide a list of TestDescriptors. Each test descriptor +describes a single test case. It also contains the logic to execute such a test descriptor and assert the results.

      +
    • +
    • +

      PMDTestRunner: A custom JUnit test runner, that combines two separate test runners: The custom RuleTestRunner +and the standard JUnit4 test runner. This combination allows you to add additional standard unit test methods +annotated with @Test to your test class.

      + +

      Note: Since the test class is executed through two test runners, it is actually instantiated twice. Be aware +of this, if you do any initialization in the constructor. Also, the static hooks @BeforeClass and @AfterClass +will be executed twice.

      +
    • +
    • +

      RuleTestRunner: This test runner executes the test descriptors with the help of RuleTst.

      +
    • +
    + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_writing_java_rules.html b/pmd_userdocs_extending_writing_java_rules.html new file mode 100644 index 0000000000..483ccc4b23 --- /dev/null +++ b/pmd_userdocs_extending_writing_java_rules.html @@ -0,0 +1,1608 @@ + + + + + + + + +Writing a custom rule | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Writing a custom rule

    +
    + + + +
    + + +
    Learn how to write a custom rule for PMD
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + + + + + +

    This page covers the specifics of writing a rule in Java. The basic development +process is very similar to the process for XPath rules, which is described in +Your First Rule.

    + +

    Basically, you open the designer, look at the structure of the AST, and refine +your rule as you add test cases.

    + +

    In this page we’ll talk about rules for the Java language, but the process is +very similar for other languages.

    + +

    Basics

    + +

    To write a rule in Java you’ll have to:

    +
      +
    1. write a Java class that implements the interface Rule. Each +language implementation provides a base rule class to ease your pain, +e.g. AbstractJavaRule.
    2. +
    3. compile this class, linking it to PMD APIs (eg using PMD as a maven dependency)
    4. +
    5. bundle this into a JAR and add it to the execution classpath of PMD
    6. +
    7. declare the rule in your ruleset XML
    8. +
    + +

    Rule execution

    + +

    Most base rule classes use a Visitor pattern +to explore the AST.

    + +

    Tree traversal

    + +

    When a rule is applied to a file, it’s handed the root of the AST and told +to traverse all the tree to look for violations. Each rule defines a specific +visit method for each type of node for of the language, which +by default just visits the children.

    + +

    So the following rule would traverse the whole tree and do nothing:

    + +
    public class MyRule extends AbstractJavaRule {
    +    // all methods are default implementations!
    +}
    +
    + +

    Generally, a rule wants to check for only some node types. In our XPath example +in Your First Rule, +we wanted to check for some VariableDeclaratorId nodes. That’s the XPath name, +but in Java, you’ll get access to the ASTVariableDeclaratorId +full API.

    + +

    If you want to check for some specific node types, you can override the +corresponding visit method:

    + +
    public class MyRule extends AbstractJavaRule {
    +
    +    @Override
    +    public Object visit(ASTVariableDeclaratorId node, Object data) {
    +        // This method is called on each node of type ASTVariableDeclaratorId
    +        // in the AST
    +
    +        if (node.getType() == short.class) {
    +            // reports a violation at the position of the node
    +            // the "data" parameter is a context object handed to by your rule
    +            // the message for the violation is the message defined in the rule declaration XML element
    +            addViolation(data, node);
    +        }
    +
    +        // this calls back to the default implementation, which recurses further down the subtree
    +        return super.visit(node, data);
    +    }
    +}
    +
    + +

    The super.visit(node, data) call is super common in rule implementations, +because it makes the traversal continue by visiting all the descendants of the +current node.

    + +

    Stopping the traversal

    + +

    Sometimes you have checked all you needed and you’re sure that the descendants +of a node may not contain violations. In that case, you can avoid calling the +super implementation and the traversal will not continue further down. This +means that your callbacks (visit implementations) won’t be called on the rest +of the subtree. The siblings of the current node may be visited +recursively nevertheless.

    + +

    Economic traversal: the rulechain

    + +

    If you don’t care about the order in which the nodes are traversed (e.g. your +rule doesn’t maintain any state between visits), then you can monumentally +speed-up your rule by using the rulechain.

    + +

    That mechanism doesn’t recurse on all the tree, instead, your rule will only be +passed the nodes it is interested in. To use the rulechain correctly:

    +
      +
    • Your rule must register those node types by calling addRuleChainVisit +in its constructor.
    • +
    • Your visit methods must not recurse! In effect, you should call never +call super.visit in the methods.
    • +
    + +

    Execution across files, thread-safety and statefulness

    + +

    When starting execution, PMD will instantiate a new instance of your rule. +If PMD is executed in multiple threads, then each thread is using its own +instance of the rule. This means, that the rule implementation does not need to care about +threading issues, as PMD makes sure, that a single instance is not used concurrently +by multiple threads.

    + +

    However, for performance reasons, the rule instances are used for multiple files. +This means, that the constructor of the rule is only executed once (per thread) +and the rule instance is reused. If you rely on a proper initialization of instance +properties, you can do the initialization e.g. in the visit-method of the ASTCompilationUnit +node - which is visited first and only once per file. However, this +solution would only work for rules written for the Java language. A language +independent way is to override the method start of the rule. +The start method is called exactly once per file.

    + + + +

    Rule lifecycle reference

    + +

    Construction

    + +

    Exactly once:

    + +
      +
    1. The rule’s no-arg constructor is called when loading the ruleset. +The rule’s constructor must define: + +
    2. +
    3. If the rule was included in the ruleset as a rule reference, +some properties may be overridden. +If an overridden property is unknown, an error is reported.
    4. +
    5. Misconfigured rules are removed from the ruleset
    6. +
    + +

    Execution

    + +

    For each thread, a deep copy of the rule is created. Each thread is given +a different set of files to analyse. Then, for each such file, for each +rule copy:

    + +
      +
    1. start is called once, before parsing
    2. +
    3. apply is called with the root +of the AST. That method performs the AST traversal that ultimately calls visit methods. +It’s not called for RuleChain rules.
    4. +
    5. end is called when the rule is done processing +the file
    6. +
    + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_writing_pmd_rules.html b/pmd_userdocs_extending_writing_pmd_rules.html new file mode 100644 index 0000000000..32a6aa5fec --- /dev/null +++ b/pmd_userdocs_extending_writing_pmd_rules.html @@ -0,0 +1,1472 @@ + + + + + + + + +Writing a custom rule | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Writing a custom rule

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The information on this page has been split into several separate pages. Please update your bookmarks:

    + + + +

    To go further:

    +
      +
    • Defining Properties +describes how to make your rules more configurable with rule properties
    • +
    • Testing your Rules introduces +our testing framework and how you can use it to safeguard the quality of +your rule
    • +
    + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_writing_rules_intro.html b/pmd_userdocs_extending_writing_rules_intro.html new file mode 100644 index 0000000000..10a65528e4 --- /dev/null +++ b/pmd_userdocs_extending_writing_rules_intro.html @@ -0,0 +1,1590 @@ + + + + + + + + +Introduction to writing PMD rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Introduction to writing PMD rules

    +
    + + + +
    + + +
    Writing your own PMD rules
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    PMD is a framework to perform code analysis. You can create your own rules to +check for patterns specific to your codebase, or the coding practices of your +team.

    + +

    How rules work: the AST

    + +

    Before running rules, PMD parses the source file into a data structure called an +abstract syntax tree (AST). This tree represents the syntactic structure of the +code, and encodes syntactic relations between source code elements. For instance, +in Java, method declarations belong to a class: in the AST, the nodes representing +method declarations will be descendants of a node representing the declaration of +their enclosing class. This representation is thus much richer than the original +source code (which, for a program, is just a chain of characters), or the token +chain produced by a lexer (which is e.g. what Checkstyle works on). For example:

    + + ++++ + + + + + + + + + + + + +
    Sample code (Java)AST
    + +
    class Foo extends Object {
    +
    +}
    +
    + +
    + +
    └─ CompilationUnit
    +   └─ TypeDeclaration
    +      └─ ClassOrInterfaceDeclaration "Foo"
    +         ├─ ExtendsList
    +           └─ ClassOrInterfaceType "Object"
    +         └─ ClassOrInterfaceBody
    +
    + +
    + +

    Conceptually, PMD rules work by matching a “pattern” against the AST of a +file. +Rules explore the AST and find nodes that satisfy some conditions that are characteristic +of the specific thing the rule is trying to flag. Rules then report a violation on these nodes.

    + +

    Discovering the AST

    + +

    ASTs are represented by Java classes deriving from Node. +Each PMD language has its own set of such classes, and its own rules about how +these classes relate to one another, based on the grammar of the language. For +example, all Java AST nodes extend JavaNode.

    + +

    The structure of the AST can be discovered through

    + + +

    Writing new rules

    + +

    PMD supports two ways to define rules: using an XPath query, or using a +Java visitor. XPath rules are much easier to set up, since they’re defined +directly in your ruleset XML, and are expressive enough for nearly any task.

    + +

    On the other hand, some parts of PMD’s API are only accessible from Java, e.g. +accessing the usages of a declaration. And Java rules allow you to do some +complicated processing, to which an XPath rule couldn’t scale.

    + +

    In the end, choosing one strategy or the other depends on the difficulty of what +your rule does. I’d advise to keep to XPath unless you have no other choice.

    + +

    XML rule definition

    + +

    New rules must be declared in a ruleset before they’re referenced. This is the +case for both XPath and Java rules. To do this, the rule element is used, but +instead of mentioning the ref attribute, it mentions the class attribute, +with the implementation class of your rule.

    + +
      +
    • For Java rules: this is the class extending AbstractRule (transitively)
    • +
    • For XPath rules: this is net.sourceforge.pmd.lang.rule.XPathRule
    • +
    + +

    Example:

    + +
    <rule name="MyJavaRule"
    +      language="java"
    +      message="Violation!"
    +      class="com.me.MyJavaRule" >
    +    <description>
    +        Description
    +    </description>
    +    <priority>3</priority>
    +</rule>
    +
    + + + +

    Resource index

    + +

    To learn how to write a rule:

    + + + +

    To go further:

    +
      +
    • Defining Properties +describes how to make your rules more configurable with rule properties
    • +
    • Testing your Rules introduces +our testing framework and how you can use it to safeguard the quality of +your rule
    • +
    + + + +
    + + Tags: + + + + extending + + + + userdocs + + + + getting_started + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_writing_xpath_rules.html b/pmd_userdocs_extending_writing_xpath_rules.html new file mode 100644 index 0000000000..5c90daf017 --- /dev/null +++ b/pmd_userdocs_extending_writing_xpath_rules.html @@ -0,0 +1,1870 @@ + + + + + + + + +Writing XPath rules | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Writing XPath rules

    +
    + + + +
    + + +
    This page describes XPath rule support in more details
    + + + + + + + +
    + + + + + + + + + + Edit me + + + + +

    This page describes some points of XPath rule support in more details. See +also the tutorial about how to write an XPath rule.

    + + + +

    XPath version

    + +

    PMD supports three XPath versions for now: 1.0, 2.0, and 1.0 compatibility mode. +The version can be specified with the version property in the rule definition, like so:

    + +
    <property version="2.0" /> <!-- or "1.0", or "1.0 compatibility" -->
    +
    + +

    The default has always been version 1.0.

    + +

    As of PMD version 6.22.0, XPath versions 1.0 and the 1.0 compatibility mode are +deprecated. XPath 2.0 is superior in many ways, for example for its support for +type checking, sequence values, or quantified expressions. For a detailed +but approachable review of the features of XPath 2.0 and above, see the Saxon documentation.

    + +

    It is recommended that you migrate to 2.0 before 7.0.0, but we expect +to be able to provide an automatic migration tool when releasing 7.0.0. +See the migration guide below.

    + +

    DOM representation of ASTs

    + +

    XPath rules view the AST as an XML-like DOM, which is what the XPath language is +defined on. Concretely, this means:

    +
      +
    • Every AST node is viewed as an XML element +
        +
      • The element has for local name the value of getXPathNodeName +for the given node
      • +
      +
    • +
    • Some Java getters are exposed as XML attributes on those elements +
        +
      • This means, that documentation for attributes can be found in our Javadocs. For +example, the attribute @SimpleName of the Java node EnumDeclaration is backed +by the Java getter getSimpleName.
      • +
      +
    • +
    + +

    Value conversion

    + +

    To represent attributes, we must map Java values to XPath Data Model (XDM) values. The conversion +depends on the XPath version used.

    + +

    XPath 1.0

    + +

    On XPath 1.0 we map every Java value to an xs:string value by using the toString +of the object. Since XPath 1.0 allows many implicit conversions this works, but it +causes some incompatibilities with XPath 2.0 (see the section about migration further + down).

    + +

    XPath 2.0

    + +

    XPath 2.0 is a strongly typed language, and so we use more precise type annotations. +In the following table we refer to the type conversion function as conv, a +function from Java types to XDM types.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Java type TXSD type conv(T)
    intxs:integer
    longxs:integer
    doublexs:decimal
    floatxs:decimal
    booleanxs:boolean
    Stringxs:string
    Characterxs:string
    Enum<E>xs:string (uses Object::toString)
    List<E>conv(E)* (a sequence type)
    ⚠️ List support is deprecated with 6.25.0. See below.
    + +

    The same conv function is used to translate rule property values to XDM values.

    + + + +

    Migrating from 1.0 to 2.0

    + +

    XPath 1.0 and 2.0 have some incompatibilities. The XPath 2.0 specification +describes them precisely. Those are however mostly corner cases and XPath +rules usually don’t feature any of them.

    + +

    The incompatibilities that are most relevant to migrating your rules are not +caused by the specification, but by the different engines we use to run +XPath 1.0 and 2.0 queries. Here’s a list of known incompatibilities:

    + +
      +
    • The namespace prefixes fn: and string: should not be mentioned explicitly. +In XPath 2.0 mode, the engine will complain about an undeclared namespace, but +the functions are in the default namespace. Removing the namespace prefixes fixes it. +
        +
      • fn:substring("Foo", 1)substring("Foo", 1)
      • +
      +
    • +
    • Conversely, calls to custom PMD functions like typeIs must be prefixed +with the namespace of the declaring module (pmd-java). +
        +
      • typeIs("Foo")pmd-java:typeIs("Foo")
      • +
      +
    • +
    • Boolean attribute values on our 1.0 engine are represented as the string values +"true" and "false". In 2.0 mode though, boolean values are truly represented +as boolean values, which in XPath may only be obtained through the functions +true() and false(). +If your XPath 1.0 rule tests an attribute like @Private="true", then it just +needs to be changed to @Private=true() when migrating. A type error will warn +you that you must update the comparison. More is explained on issue #1244. +
        +
      • "true", 'true'true()
      • +
      • "false", 'false'false()
      • +
      +
    • +
    • In XPath 1.0, comparing a number to a string coerces the string to a number. +In XPath 2.0, a type error occurs. Like for boolean values, numeric values are +represented by our 1.0 implementation as strings, meaning that @BeginLine > "1" +worked —that’s not the case in 2.0 mode. +
        +
      • @ArgumentCount > '1'@ArgumentCount > 1
      • +
      +
    • +
    • In XPath 1.0, the expression /Foo matches the children of the root named Foo. +In XPath 2.0, that expression matches the root, if it is named Foo. Consider the following tree: +
      Foo
      +└─ Foo
      +└─ Foo
      +
      +

      Then /Foo will match the root in XPath 2, and the other nodes (but not the root) in XPath 1. +See eg an issue caused by this in Apex, +with nested classes.

      +
    • +
    + +

    Rule properties

    + +

    See Defining rule properties

    + +

    PMD extension functions

    + +

    PMD provides some language-specific XPath functions to access semantic +information from the AST.

    + +

    On XPath 2.0, the namespace of custom PMD function must be explicitly mentioned.

    + + + +

    Java

    + +

    Java functions are in the namespace pmd-java.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Function nameDescription (click for details)
    typeIsTests a node's static type + +
    +
    + +
    + + + +

    + pmd-java:typeIs(xs:string) as xs:boolean +

    + +
    + +
    +
    Returns true if the context node's static Java type is a subtype of the given type. This tests for the resolved type of the Java construct, not the type of the AST node. For example, the AST node for a literal (e.g. 5d) has type ASTLiteral, however this function will compare the type of the literal (eg here, double) against the argument.
    +
    Remarks
    +
    The context node must be a TypeNode
    + + + +
    Parameters
    + +
    +
    + +
    + javaQualifiedName + as xs:string +
    +
    The qualified name of a Java class, possibly with pairs of brackets to indicate an array type. Can also be a primitive type name.
    + +
    +
    + + + + + +
    Examples
    + +
    +
    + +
    //FormalParameter[pmd-java:typeIs("java.lang.String[]")]
    +
    Matches formal parameters of type String[] (including vararg parameters)
    + +
    //VariableDeclaratorId[pmd-java:typeIs("java.lang.List")]
    +
    Matches variable declarators of type List or any of its subtypes (including e.g. ArrayList)
    + +
    +
    + +
    +
    +
    +
    +
    typeIsExactlyTests a node's static type, ignoring subtypes + +
    +
    + +
    + + + +

    + pmd-java:typeIsExactly(xs:string) as xs:boolean +

    + +
    + +
    +
    Returns true if the context node's static type is exactly the given type. In particular, returns false if the context node's type is a subtype of the given type.
    +
    Remarks
    +
    The context node must be a TypeNode
    + + + +
    Parameters
    + +
    +
    + +
    + javaQualifiedName + as xs:string +
    +
    The qualified name of a Java class, possibly with pairs of brackets to indicate an array type. Can also be a primitive type name.
    + +
    +
    + + + + + +
    Examples
    + +
    +
    + +
    //VariableDeclaratorId[pmd-java:typeIsExactly("java.lang.List")]
    +
    Matches variable declarators of type List (but not e.g. ArrayList)
    + +
    +
    + +
    +
    +
    +
    +
    metricComputes and returns the value of a metric + +
    +
    + +
    + + + +

    + pmd-java:metric(xs:string) as xs:decimal? +

    + +
    + +
    +
    Returns the value of the metric as evaluated on the context node
    +
    Remarks
    +
    The context node must be a ASTAnyTypeDeclaration or a MethodLikeNode
    + + + +
    Parameters
    + +
    +
    + +
    + metricKey + as xs:string +
    +
    The name of an enum constant in JavaOperationMetricKey or JavaClassMetricKey
    + +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + + + + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_extending_your_first_rule.html b/pmd_userdocs_extending_your_first_rule.html new file mode 100644 index 0000000000..a32ee61d4d --- /dev/null +++ b/pmd_userdocs_extending_your_first_rule.html @@ -0,0 +1,1579 @@ + + + + + + + + +Your first rule XPath | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Your first rule XPath

    +
    + + + +
    + + +
    Introduction to rule writing through an example.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    This page is a gentle introduction to rule writing, and the Rule Designer.

    + +

    Using the designer is useful both to write Java +rules and XPath rules, but it’s more specifically geared towards XPath rules. +This page uses a simple XPath rule to illustrate the common workflow. We assume +here that you already know what XPath is and how to read basic XPath queries. W3C +has a good tutorial here if +you don’t (in the context of XML only), and the Saxon documentation +features a comprehensive but approachable description of the syntax of XPath +expressions.

    + +

    The Rule Designer

    + +

    The rule designer is a tool that packs a lot of features to help you develop XPath +rules quickly and painlessly. Basically, it allows you to examine the AST of a code +snippet and evaluate an XPath expression against it.

    + +

    Like for PMD and CPD, you can launch it using run.sh designer on Linux/Unix +and designer.bat on Windows. The interface looks like the following:

    + +
    Designer overview
    + +

    The zone (2) is the main editor. When you write a code snippet in the + code area to the left, you’ll see that the tree to the right will be updated + automatically: it’s the AST of the code. + Note that the code snippet must be a syntactically valid compilation unit for the + language you’ve chosen, e.g. for Java, a compilation unit necessarily has a top-level + type declaration.

    + +

    If you select a node in the AST, its specific properties will also be displayed +in the panel (1): they’re the XPath attributes of the node. More on that later.

    + +

    The zone (3) is the XPath editor. If you enter an XPath query in that area, +it will be evaluated on the current AST and the results will be displayed in the +list to the bottom right.

    + +

    Rule development process

    + +

    The basic development process is straightforward:

    + +
      +
    1. Write a code snippet in the main editor that features the offending code you’re looking for
    2. +
    3. Examine the AST and determine what node the violation should be reported on
    4. +
    5. Write an XPath expression matching that node in the XPath editor
    6. +
    7. Refine the XPath expression iteratively using different code snippets, so that +it matches violation cases, but no other node
    8. +
    9. Export your XPath expression to an XML rule element, and place it in your ruleset
    10. +
    + +

    Each time you test your rule against a different snippet, it’s a good idea to +save it to make test cases.

    + +

    In the following sections, we walk through several examples to refine your rule.

    + +

    A simple rule

    + +

    Let’s say you want to prevent your coding team from naming variables of type +short after your boss, whose name is Bill. You try the designer on the following + offending code snippet:

    + +
    
    +public class KeepingItSerious {
    +
    +    public void method() {
    +        short bill; // LocalVariableDeclaration
    +    }
    +
    +}
    +
    +
    + +

    Examining the AST, you find out that the LocalVariableDeclaration has a VariableDeclaratorId +descendant, whose Image XPath attribute is exactly bill. You thus write your first attempt +in the XPath editor:

    +
    //VariableDeclaratorId[@Image = "bill"]
    +
    + +

    You can see the XPath result list is updated with the variable declarator. +If you try the query against the following updated snippet though, you can +see that the field declaration id is matched even though it’s not of type short.

    + +
    public class KeepingItSerious {
    +
    +    Delegator bill; // FieldDeclaration
    +
    +    public void method() {
    +        short bill; // LocalVariableDeclaration
    +    }
    +
    +}
    +
    + +

    You thus refine your XPath expression with an additional predicate, +based on your examination of the Type node of the field and local variable +declaration nodes.

    + +
    //VariableDeclaratorId[@Image = "bill" and ../../Type[@TypeImage = "short"]]
    +
    + +

    Exporting to XML

    + +

    You estimate that your rule is now production ready, and you’d like to use it in your ruleset. +The File > Export XPath to rule... allows you to do that in a few clicks: just enter some +additional metadata for your rule, and the popup will generate an XML element that you can +copy-paste into your ruleset XML. The resulting element looks like so:

    + +
    <rule name="DontCallBossShort"
    +      language="java"
    +      message="Boss wants to talk to you."
    +      class="net.sourceforge.pmd.lang.rule.XPathRule" >
    +    <description>
    +TODO
    +    </description>
    +    <priority>3</priority>
    +    <properties>
    +        <property name="xpath">
    +            <value>
    +<![CDATA[
    +//VariableDeclaratorId[../../Type[@TypeImage="short"] and @Image = "bill"]
    +]]>
    +            </value>
    +        </property>
    +    </properties>
    +</rule>
    +
    + +

    You can notice that your XPath expression ends up inside a property +of a rule of type XPathRule, which is how XPath rules are implemented.

    + + +
    + + Tags: + + + + extending + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_incremental_analysis.html b/pmd_userdocs_incremental_analysis.html new file mode 100644 index 0000000000..74b72264b3 --- /dev/null +++ b/pmd_userdocs_incremental_analysis.html @@ -0,0 +1,1555 @@ + + + + + + + + +Incremental Analysis | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Incremental Analysis

    +
    + + + +
    + + +
    Explains how to use incremental analysis to speed up analysis
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Ever since PMD 5.6.0, PMD has been able to perform Incremental Analysis.

    + +

    When performing Incremental Analysis for the first time, PMD will cache analysis data and results. +This allows subsequent analysis to only look into those files that are new / have changed. For +a typical development environment, where you only change a few files at a time, this can reduce +analysis time dramatically.

    + +

    The generated report will be exactly the same as it would if running without incremental analysis. +Files included in the final report will reflect exactly those files in your filesystem. Even if +untouched, files with violations will be listed with full detail. Therefore, its usage is highly recommended.

    + +

    Enabling incremental analysis

    + +

    Incremental analysis is enabled automatically once a location to store the cache has been defined. +From command-line that is done through the -cache argument, but support for the feature is +available for tools integrating PMD such as Ant, +Maven, and Gradle.

    + +

    Disabling incremental analysis

    + +

    By default, PMD will suggest to use an analysis cache by logging a warning. +If you’d like to disable this warning, or ignore the analysis cache for a +few runs, you can use the -no-cache switch.

    + +

    FAQ

    + +

    When is the cache invalidated?

    + +

    On the following reasons, the complete cache file is considered invalid:

    + +
      +
    • The PMD version differs. Since each PMD version might have fixed some false-positives or false-negatives for rules, +a cache file created with a different version is considered invalid. The version comparison is exact.
    • +
    • The used ruleset has been changed. If the ruleset is changed in any way (e.g. adding/removing rules, changing +rule properties, …), the cache is considered invalid.
    • +
    • The auxclasspath changed. The auxclasspath is used during +type resolution. A changed auxclasspath can result for rules, that use type resolution, in different +violations. Usually, if the auxclasspath is correct and type resolution works, the rules report less false-positives. +To make sure, the correct violations are reported, the cache is considered invalid, if the auxclasspath has changed.
    • +
    • The execution classpath has been changed. On the execution classpath not only the PMD classes are located, but also +the implementation of e.g. custom rules. If any jar file/class file on the execution classpath is changed, then +the cache is considered invalid as well.
    • +
    + +

    What is stored in the cache file?

    + +

    The cache file consists of a header and a body. The header stores the information which is used to decided +whether the whole cache file is valid or not (see above). The following information is stored:

    + +
      +
    • PMD Version
    • +
    • Ruleset checksum
    • +
    • Auxclasspath checksum
    • +
    • Execution classpath checksum
    • +
    + +

    The body contains an entry for every file that has been analyzed. For every file, the following information +is stored:

    + +
      +
    • The full (absolute) pathname of the file
    • +
    • The checksum of the file itself
    • +
    • 0 or more rule violations with all the info (line number, etc.)
    • +
    + +

    You can think of the cache as a Map where the filepath is used as the key +and the violations found in previous runs are the value.

    + +

    The cache is in the end just a file with serialized data (binary). The implementation is +FileAnalysisCache.

    + +

    How does PMD detect whether a file has been changed?

    + +

    When analyzing a file, PMD records the checksum of the file content and stores this +together with the violations in the cache file. When running PMD with the cache file, +PMD looks up the file in the cache and compares the checksums. +If the checksums match, then the file is not even parsed, the rules +are not executed and the violations for this file are entirely used from the cache. +If the checksum doesn’t match, then the cached violations are discarded (if there are any) +and the file is fully processed: the file is parsed and all the rules are run for it. +After we are done, the cache is updated with the new violations.

    + +

    Can I reuse a cache created on branch A for analyzing my project on branch B?

    + +

    This is possible. As long as the same PMD version and same ruleset is used on both branches. +Also note, that if the branch uses a different dependencies, the auxclasspath is different on both +classes, which invalidates the cache completely. If you project uses e.g. Maven for dependency +management and your branch uses different dependencies (either different version or completely different +artifacts), then the auxclasspath is changed.

    + +

    If files have been renamed on the branch, these files will be analyzed again since PMD uses +the file names to assign existing rule violations from the cache. Also, if the full path name +of the file changes, because the other branch is checked out at a different location, then all +the cached files don’t match.

    + +

    Apart from these restrictions, PMD will only analyze files that changed between runs. +If your previous run was on branch A and then you run on branch B using the same cache file, +it will only look at files that are different between the 2 branches.

    + +

    Can I reuse a cache file across different machines?

    + +

    This is only possible, if the other machine uses the exact same path names. That means that +your project needs to be checked out into the same directory structure.

    + +

    Additionally, all the other restrictions apply (same PMD version, same ruleset, same auxclasspath, +same execution classpath).

    + +

    See also issue #2063 [core] Support sharing incremental analysis cache file across different machines.

    + + +
    + + Tags: + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_installation.html b/pmd_userdocs_installation.html new file mode 100644 index 0000000000..4aca14b3ce --- /dev/null +++ b/pmd_userdocs_installation.html @@ -0,0 +1,1608 @@ + + + + + + + + +Installation and basic CLI usage | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Installation and basic CLI usage

    +
    + + + +
    + + +
    Sums up the first steps to set up a CLI installation and get started using PMD
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    How to install PMD and CPD

    + +

    Requirements

    + + + + + +

    Installation

    + +

    PMD is distributed as a zip archive, which includes both PMD and CPD. +You can download the latest binary distribution from the github releases page.

    + +

    Unzip it into any directory, optionally add the bin subdirectory in your PATH, and you’re good to go!

    + +

    Running PMD via command line

    + +
    PMD comes with several command line utilities, like CPD, the rule designer or PMD itself. + On Unix, you can run any of them using the script run.sh, located inside the bin/ + directory of the PMD distribution. The first argument is the name of the utility you want + to execute (‘pmd’, ‘designer’, …), e.g. PMD is launched via run.sh pmd. The rest of + the arguments are specific to the utility used.

    + On Windows, each utility has its own startup script, e.g. pmd.bat, cpd.bat.
    + +

    The PMD command (pmd.bat or run.sh pmd) requires two options:

    + +
      +
    • -d <path>: path to the sources to analyse. This can be a file name, a directory, or a jar or zip file containing the +sources.
    • +
    • -R <path>: the ruleset file you want to use. PMD uses xml configuration files, called rulesets, which specify +which rules to execute on your sources. You can also run a single rule by referencing it using its category and +name (more details here). For example, you can check for unnecessary +modifiers on Java sources with -R category/java/codestyle.xml/UnnecessaryModifier.
    • +
    + + + +

    Additionally, the following options, are specified most of the time even though they’re not required:

    +
      +
    • -f <format>: report format. PMD supports many report formats out of the box. You may want to start with the basic +text format (default) or xml format. The supported formats are documented here.
    • +
    • -auxclasspath <classpath>: class path containing the compiled class files of the analysed Java sources, if any. +Setting this up correctly allows PMD to do much deeper analysis using reflection. Some rules, such as MissingOverride, +require it to function properly.
    • +
    + + + +

    Sample usage

    + +

    The following shows a sample run of PMD with the text format:

    + +
    + + +
    +
    +
    ~ $ cd ~/bin/pmd-bin-6.30.0-SNAPSHOT/bin
    +~/.../bin $ ./run.sh pmd -d ../../../src/main/java/ -f text -R rulesets/java/quickstart.xml
    +  
    +  .../src/main/java/com/me/RuleSet.java:123  These nested if statements could be combined
    +  .../src/main/java/com/me/RuleSet.java:231  Useless parentheses.
    +  .../src/main/java/com/me/RuleSet.java:232  Useless parentheses.
    +  .../src/main/java/com/me/RuleSet.java:357  These nested if statements could be combined
    +  .../src/main/java/com/me/RuleSetWriter.java:66     Avoid empty catch blocks
    +
    +
    +
    C:\ > cd C:\pmd-bin-6.30.0-SNAPSHOT\bin
    +C:\...\bin > .\pmd.bat -d ..\..\src\main\java\ -f text -R rulesets/java/quickstart.xml
    +      
    +  .../src/main/java/com/me/RuleSet.java:123  These nested if statements could be combined
    +  .../src/main/java/com/me/RuleSet.java:231  Useless parentheses.
    +  .../src/main/java/com/me/RuleSet.java:232  Useless parentheses.
    +  .../src/main/java/com/me/RuleSet.java:357  These nested if statements could be combined
    +  .../src/main/java/com/me/RuleSetWriter.java:66     Avoid empty catch blocks
    +
    +
    +
    + +

    Running CPD via command line

    + + + +

    Like for PMD, CPD is started on Unix by run.sh cpd and on Windows by cpd.bat.

    + +

    There are two required parameters:

    +
      +
    • --files <path>: path to the sources to analyse. This can be a file name, a +directory or a jar or zip file containing the sources.
    • +
    • --minimum-tokens <number>: the minimum token length which should be reported as a duplicate.
    • +
    + + + +

    Sample usage

    + +

    The following shows a sample run of CPD with the text format:

    + +
    + + +
    +
    +
    ~ $ cd ~/bin/pmd-bin-6.30.0-SNAPSHOT/bin
    +~/.../bin $ ./run.sh cpd --minimum-tokens 100 --files /home/me/src
    +
    +  Found a 7 line (110 tokens) duplication in the following files:
    +  Starting at line 579 of /home/me/src/test/java/foo/FooTypeTest.java
    +  Starting at line 586 of /home/me/src/test/java/foo/FooTypeTest.java
    +
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +
    +
    +
    C:\ > cd C:\pmd-bin-6.30.0-SNAPSHOT\bin
    +C:\...\bin > .\cpd.bat --minimum-tokens 100 --files c:\temp\src
    +
    +  Found a 7 line (110 tokens) duplication in the following files:
    +  Starting at line 579 of c:\temp\src\test\java\foo\FooTypeTest.java
    +  Starting at line 586 of c:\temp\src\test\java\foo\FooTypeTest.java
    +
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +          assertEquals(Boolean.TYPE, expressions.get(index++).getType());
    +
    +
    +
    + + +
    + + Tags: + + + + getting_started + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_making_rulesets.html b/pmd_userdocs_making_rulesets.html new file mode 100644 index 0000000000..e43eb4b362 --- /dev/null +++ b/pmd_userdocs_making_rulesets.html @@ -0,0 +1,1558 @@ + + + + + + + + +Making rulesets | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Making rulesets

    +
    + + + +
    + + +
    A ruleset is an XML configuration file, which describes a collection of rules to be executed in a PMD run. PMD includes built-in rulesets to run quick analyses with a default configuration, but users are encouraged to make their own rulesets from the start, because they allow for so much configurability. This page walk you through the creation of a ruleset and the multiple configuration features offered by rulesets.
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Creating a ruleset

    + +

    The first step is to create a new empty ruleset. You can use the following template:

    + +
    <?xml version="1.0"?>
    +
    +<ruleset name="Custom Rules"
    +    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
    +
    +    <description>
    +        My custom rules
    +    </description>
    +
    +
    +    <!-- Your rules will come here -->
    +
    +</ruleset>
    +
    + +

    Referencing a single rule

    + + + +

    To use the built-in rules PMD provides, you need to add some references to them. Here’s a +basic rule reference:

    + +
    <rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
    +
    + +

    Adding that element into the ruleset element adds the rule EmptyCatchBlock +to your ruleset. This is a Java rule, so it will be executed on every Java file PMD encounters in +its search space.

    + +

    How to read the ref attribute?

    + +
      +
    • +

      category/java/errorprone.xml is a reference to the Java category errorprone. Since PMD 6.0.0, +all PMD built-in rules are sorted in one of eight categories, which are consistent across languages:

      + +
        +
      1. Best Practices: These are rules which enforce generally accepted best practices.
      2. +
      3. Code Style: These rules enforce a specific coding style.
      4. +
      5. Design: Rules that help you discover design issues.
      6. +
      7. Documentation: These rules are related to code documentation.
      8. +
      9. Error Prone: Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
      10. +
      11. Multithreading: These are rules that flag issues when dealing with multiple threads of execution.
      12. +
      13. Performance: Rules that flag suboptimal code.
      14. +
      15. Security: Rules that flag potential security flaws.”
      16. +
      +
    • +
    + + + +
      +
    • EmptyCatchBlock is simply the name of the rule. If there were no rule with that name within the specified +category, then PMD would fail before starting the analysis.
    • +
    + +

    Configuring individual rules

    + +

    How you can configure individual rules is described on Configuring Rules.

    + +

    Bulk-adding rules

    + +

    You can also reference rules in bulk by referencing a complete category or ruleset, possibly excluding certain rules, like in the following:

    + +
    <rule ref="category/java/codestyle.xml">
    +    <exclude name="WhileLoopsMustUseBraces"/>
    +    <exclude name="IfElseStmtsMustUseBraces"/>
    +</rule>
    +
    + +

    Here, the ref attribute references a whole category. You can also use a file system path or classpath relative path. In any case, the path must address an accessible ruleset XML file.

    + + + + + +

    Filtering the processed files

    + +

    You can exclude some files from being processed by a ruleset using exclude patterns, with an optional overridding include pattern. A file will be excluded from processing when there is a matching exclude pattern, but no matching include pattern. This exclude/include technique works regardless of how PMD is used (e.g. command line, IDE, Ant), making it easier to keep application of your PMD rules consistent throughout your environment. Here is an example:

    + +
    <?xml version="1.0"?>
    +<ruleset name="myruleset"
    +		xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    +		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +		xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
    +    <description>My ruleset</description>
    +
    +    <exclude-pattern>.*/some/package/.*</exclude-pattern>
    +    <exclude-pattern>.*/some/other/package/FunkyClassNamePrefix.*</exclude-pattern>
    +    <include-pattern>.*/some/package/ButNotThisClass.*</include-pattern>
    +
    +    <!-- Rules here ... -->
    +
    +</ruleset>
    +
    + + +
    + + Tags: + + + + getting_started + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_report_formats.html b/pmd_userdocs_report_formats.html new file mode 100644 index 0000000000..fd1be118b5 --- /dev/null +++ b/pmd_userdocs_report_formats.html @@ -0,0 +1,1809 @@ + + + + + + + + +Report formats for PMD | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Report formats for PMD

    +
    + + + +
    + + +
    Overview of the built-in report formats for PMD
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Overview

    + +

    PMD can report the found rule violations in various formats. Some formats can +be customized further via properties. Violations might also be suppressed and there might +be processing errors or configuration errors. Not all report formats display all information.

    + +

    The header of the sections below are used to select the format on the command line, as +arguments to the -format option. When a format accepts properties, +those can be specified with the -property / -P option on the command-line.

    + + + +

    codeclimate

    + +

    Renderer for Code Climate JSON format.

    + +

    This format is used when running PMD within Code Climate. +The renderer will stream JSON objects, each object is a own issue (a PMD rule violation). Each issue +is separated by the null character (\0).

    + +

    The format is specified here: https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md.

    + +

    The code climate format doesn’t support suppressed violations. It also doesn’t report any errors. But it contains +the full rule details for each reported rule violation.

    + +

    Example:

    + +
    {"type":"issue","check_name":"GuardLogStatement","description":"Logger calls should be surrounded by log level guards.","content":{"body":"## GuardLogStatement\n\nSince: PMD 5.1.0\n\nPriority: Medium High\n\n[Categories](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#remediation-points): 50000\n\nWhenever using a log level, one should check if the loglevel is actually enabled, or otherwise skip the associate String creation and manipulation.\n\n### Example:\n\n```java\n\n\n // Add this for performance\n if (log.isDebugEnabled() { ...\n log.debug('log something' + ' and ' + 'concat strings');\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_userdocs_configuring_rules.html#rule-properties)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\nlogLevels | trace,debug,info,warn,error,log,finest,finer,fine,info,warning,severe | LogLevels to guard\nguardsMethods | isTraceEnabled,isDebugEnabled,isInfoEnabled,isWarnEnabled,isErrorEnabled,isLoggable | Method use to guard the log statement\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java","lines":{"begin":124,"end":125}},"severity":"normal","remediation_points":50000}
    +{"type":"issue","check_name":"ForLoopCanBeForeach","description":"This for loop can be replaced by a foreach loop","content":{"body":"## ForLoopCanBeForeach\n\nSince: PMD 6.0.0\n\nPriority: Medium\n\n[Categories](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#remediation-points): 50000\n\nReports loops that can be safely replaced with the foreach syntax. The rule considers loops over lists, arrays and iterators. A loop is safe to replace if it only uses the index variable to access an element of the list or array, only has one update statement, and loops through *every* element of the list or array left to right.\n\n### Example:\n\n```java\n\n\npublic class MyClass {\n void loop(List<String> l) {\n for (int i = 0; i < l.size(); i++) { // pre Java 1.5\n System.out.println(l.get(i));\n }\n\n for (String s : l) { // post Java 1.5\n System.out.println(s);\n }\n }\n}\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_userdocs_configuring_rules.html#rule-properties)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java","lines":{"begin":58,"end":62}},"severity":"normal","remediation_points":50000}
    +
    + +

    csv

    + +

    Comma-separated values tabular format.

    + +

    This format only renders rule violations. Suppressed violations or errors are ignored.

    + +

    Example:

    + +
    "Problem","Package","File","Priority","Line","Description","Rule set","Rule"
    +"1","net.sourceforge.pmd","/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java","2","124","Logger calls should be surrounded by log level guards.","Best Practices","GuardLogStatement"
    +"1","net.sourceforge.pmd.benchmark","/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java","3","58","This for loop can be replaced by a foreach loop","Best Practices","ForLoopCanBeForeach"
    +
    + +

    This format can be configured to display only certain columns. In order to not show the problem counter and package +columns, use these CLI parameters additionally: -property problem=false -property package=false

    + +

    Properties:

    + +
      +
    • problem: Include problem column. Default: true.
    • +
    • package: Include package column. Default: true.
    • +
    • file: Include file column. Default: true.
    • +
    • priority: Include priority column. Default: true.
    • +
    • line: Include line column. Default: true.
    • +
    • desc: Include description column. Default: true.
    • +
    • ruleSet: Include Rule set column. Default: true.
    • +
    • rule: Include Rule column. Default: true.
    • +
    + +

    emacs

    + +

    GNU Emacs integration.

    + +

    Example:

    + +
    /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java:124: Logger calls should be surrounded by log level guards.
    +/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java:58: This for loop can be replaced by a foreach loop
    +
    + +

    html

    + +

    HTML format.

    + +

    This renderer provides two properties to render a link to the source where the violations +have been found. The following example has been created with -property linkPrefix=https://github.com/pmd/pmd/blob/master/ -property linePrefix=L -shortnames -d pmd. +If “linkPrefix” is not set, then “linePrefix” has no effect anyway: just the filename will +be rendered, with no html link. Otherwise if “linePrefix” is not set, then the link will +not contain a line number.

    + +

    When using Maven JXR Plugin to generate a html view +of the project’s sources, then the property “htmlExtension” needs to be set to “true”. This will then replace the +normal source file extensions (e.g. “.java”) with “.html”, so that the generated html pages are referenced.

    + +

    Example

    + +

    Properties:

    + +
      +
    • linePrefix: Prefix for line number anchor in the source file.
    • +
    • linkPrefix: Path to HTML source.
    • +
    • htmlExtension: Replace file extension with .html for the links (default: false)
    • +
    + +

    ideaj

    + +

    IntelliJ IDEA integration.

    + + + +

    It has two ways of calling:

    + +
      +
    1. For a single file: then all three properties need to be provided
    2. +
    + +

    run.sh pmd -d src/Foo.java -R rulesets/java/quickstart.xml -f ideaj -P fileName=src/Foo.java -P sourcePath=/home/pmd/src -P classAndMethodName=Foo

    + +
      +
    1. For a directory: then the fileName property can be omitted
    2. +
    + +

    run.sh pmd -d src -R rulesets/java/quickstart.xml -f ideaj -P sourcePath=/home/pmd/src -P classAndMethodName=.method

    + +

    Example:

    + +
    Logger calls should be surrounded by log level guards.
    + at Foo(:124)
    +This for loop can be replaced by a foreach loop
    + at Foo(:58)
    +
    + +

    Properties:

    + +
      +
    • classAndMethodName: Class and method name, pass .method when processing a directory.
    • +
    • sourcePath:
    • +
    • fileName:
    • +
    + +

    json

    + +

    JSON format.

    + +

    This prints a single JSON object containing some header information, +and then the violations grouped by file. The root object fields are

    +
      +
    • formatVersion: an integer which will be incremented if we change the serialization format
    • +
    • pmdVersion: the version of PMD that produced the report
    • +
    • timestamp: explicit
    • +
    • files: an array of objects (see the example)
    • +
    + +

    Example

    + +

    summaryhtml

    + +

    Summary HTML format.

    + +

    This is the html renderer but with an extra section, the summarizes the violations per rule.

    + +

    Example

    + +

    Properties:

    + +
      +
    • linePrefix: Prefix for line number anchor in the source file.
    • +
    • linkPrefix: Path to HTML source.
    • +
    • htmlExtension: Replace file extension with .html for the links (default: false)
    • +
    + +

    text (default)

    + +

    This is the default format.

    + +

    This format outputs one line per violation. At the end, processing errors, suppressed violations +and configuration errors are reported.

    + +

    Example:

    + +
    /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java:124:    Logger calls should be surrounded by log level guards.
    +/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java:58:   This for loop can be replaced by a foreach loop
    +/home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java    -   PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +CloseResource rule violation suppressed by Annotation in /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java
    +LoosePackageCoupling    -   No packages or classes specified
    +
    + +

    textcolor

    + +

    Text format, with color support (requires ANSI console support, e.g. xterm, rxvt, etc.).

    + +

    Example:

    + +
    +* file: ./pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java
    +    src:  RuleContext.java:124:125
    +    rule: GuardLogStatement
    +    msg:  Logger calls should be surrounded by log level guards.
    +    code: LOG.warning("The method RuleContext::setSourceCodeFilename(String) has been deprecated and will be removed."
    +
    +* file: ./pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java
    +    src:  Benchmarker.java:58:62
    +    rule: ForLoopCanBeForeach
    +    msg:  This for loop can be replaced by a foreach loop
    +    code: for (int i = 0; i < args.length; i++) {
    +
    +
    +
    +Summary:
    +
    +net.sourceforge.pmd.RuleContext : 1
    +net.sourceforge.pmd.benchmark.Benchmarker : 1
    +* file: ./pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    err:  PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +net.sourceforge.pmd.PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    +    at java.base/java.lang.Thread.run(Thread.java:832)
    +Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "-" "- "" at line 6, column 30.
    +Was expecting one of:
    +    "extends" ...
    +    "implements" ...
    +    "{" ...
    +    "<" ...
    +    
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:12713)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:12597)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1554)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:732)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:639)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:373)
    +    at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
    +    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
    +    ... 10 more
    +
    +
    +* rule: LoosePackageCoupling
    +    err:  No packages or classes specified
    +
    +* errors:   2
    +* warnings: 2
    +
    + +

    Properties:

    + +
      +
    • color: Enables colors with anything other than false or 0. Default: yes.
    • +
    + +

    textpad

    + +

    TextPad integration.

    + +

    Example:

    + +
    /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java(124,  GuardLogStatement):  Logger calls should be surrounded by log level guards.
    +/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java(58,  ForLoopCanBeForeach):  This for loop can be replaced by a foreach loop
    +
    + +

    vbhtml

    + +

    Vladimir Bossicard HTML format.

    + +

    xml

    + +

    XML format.

    + +

    This format is a XML document, that can be validated by a XSD schema. The schema is report_2_0_0.xsd.

    + +

    Example:

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<pmd xmlns="http://pmd.sourceforge.net/report/2.0.0"
    +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +    xsi:schemaLocation="http://pmd.sourceforge.net/report/2.0.0 https://pmd.sourceforge.io/report_2_0_0.xsd"
    +    version="6.22.0" timestamp="2020-04-11T19:17:03.207">
    +<file name="/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java">
    +<violation beginline="124" endline="125" begincolumn="9" endcolumn="111" rule="GuardLogStatement" ruleset="Best Practices" package="net.sourceforge.pmd" class="RuleContext" method="setSourceCodeFilename" externalInfoUrl="https://pmd.github.io/pmd-6.22.0/pmd_rules_java_bestpractices.html#guardlogstatement" priority="2">
    +Logger calls should be surrounded by log level guards.
    +</violation>
    +</file>
    +<file name="/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java">
    +<violation beginline="58" endline="62" begincolumn="9" endcolumn="9" rule="ForLoopCanBeForeach" ruleset="Best Practices" package="net.sourceforge.pmd.benchmark" class="Benchmarker" method="findBooleanSwitch" externalInfoUrl="https://pmd.github.io/pmd-6.22.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach" priority="3">
    +This for loop can be replaced by a foreach loop
    +</violation>
    +</file>
    +<error filename="/home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java" msg="PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java">
    +<![CDATA[net.sourceforge.pmd.PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    +    at java.base/java.lang.Thread.run(Thread.java:832)
    +Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "-" "- "" at line 6, column 30.
    +Was expecting one of:
    +    "extends" ...
    +    "implements" ...
    +    "{" ...
    +    "<" ...
    +    
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:12713)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:12597)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1554)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:732)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:639)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:373)
    +    at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
    +    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
    +    ... 10 more
    +]]>
    +</error>
    +<suppressedviolation filename="/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java" suppressiontype="annotation" msg="Ensure that resources like this OutputStreamWriter object are closed after use" usermsg=""/>
    +<configerror rule="LoosePackageCoupling" msg="No packages or classes specified"/>
    +</pmd>
    +
    + +

    Properties:

    + +
      +
    • encoding: XML encoding format, defaults to UTF-8.
    • +
    + +

    xslt

    + +

    XML with a XSL transformation applied.

    + +

    PMD provides one built-in stylesheet, that is used by default, if no other +stylesheet with the property “xsltFilename” is specified. It is called pmd-nicerhtml.xsl and can be used for customization.

    + +

    Example with pmd-nicerhtml.xsl

    + +

    Properties:

    + +
      +
    • encoding: XML encoding format, defaults to UTF-8.
    • +
    • xsltFilename: The XSLT file name.
    • +
    + +

    yahtml

    + +

    Yet Another HTML format.

    + +

    This renderer creates an html file per analyzed source file, hence you need to specify a output directory. +The output directory must exist. If not specified, the html files are created in the current directory.

    + +

    Example

    + +

    Properties:

    + +
      +
    • outputDir: Output directory.
    • +
    + + +
    + + Tags: + + + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_suppressing_warnings.html b/pmd_userdocs_suppressing_warnings.html new file mode 100644 index 0000000000..ddb2b3d7ac --- /dev/null +++ b/pmd_userdocs_suppressing_warnings.html @@ -0,0 +1,1659 @@ + + + + + + + + +Suppressing warnings | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Suppressing warnings

    +
    + + + +
    + + +
    Learn how to suppress some rule violations, from the source code using annotations or comments, or globally from the ruleset
    + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    PMD provides several methods by which Rule violations can be suppressed. +Follow these steps to help you determine which expression method works best +for you:

    + +
      +
    1. +

      Is the thing you need to suppress universally appealing to other +users of PMD, or is it a false positive? Can you modify the Rule to +support this specific suppression via a configuration property, or to +fix the false positive? If you can do this, then please do so, and +submit a patch back to the PMD project. Since PMD is built by users +for users, your help would be greatly appreciated by everyone. If you +cannot…

      +
    2. +
    3. +

      Can you use Annotations or the NOPMD marker to work around your +particular issue on a case by case basis? If not…

      +
    4. +
    5. +

      Can a regular expression matching the violation message work +around your particular issue? If not…

      +
    6. +
    7. +

      Can a XPath query on the violation node work around your particular +issue? If not…

      +
    8. +
    9. +

      Your last and final option is to see the first point about +changing the Rule, but you do not need to submit a patch back to the +PMD project.

      +
    10. +
    + +

    If you need to modify the Rule, see How to write a rule. +Otherwise, the other suppression methods are explained in the following sections.

    + +

    Annotations

    + +

    When using Java 1.5 or later, you can use annotations to suppress PMD warnings, like this:

    + +
    // This will suppress all the PMD warnings in this class
    +@SuppressWarnings("PMD")
    +public class Bar {
    +    void bar() {
    +        int foo;
    +    }
    +}
    +
    + +

    When using Apex make sure to use single quotes instead of double quotes

    + +
    // This will suppress all the PMD warnings in this class
    +@SuppressWarnings('PMD')
    +
    + +

    Or you can suppress one rule with an annotation like this:

    + +
    // This will suppress UnusedLocalVariable warnings in this class
    +@SuppressWarnings("PMD.UnusedLocalVariable")
    +public class Bar {
    +    void bar() {
    +        int foo;
    +    }
    +}
    +
    + +

    Multiple rules can be suppressed by providing multiple values, ie:

    + +
    @SuppressWarnings({"PMD.UnusedLocalVariable", "PMD.UnusedPrivateMethod"})
    +
    + +

    For Apex, the syntax for this is slightly different:

    + +
    @SuppressWarnings('PMD.UnusedLocalVariable, PMD.UnusedPrivateMethod')
    +
    + +

    PMD Java also obeys the JDK annotation @SuppressWarnings(“unused”), which will apply to all rules in the unused ruleset.

    + +
    // This will suppress UnusedLocalVariable and UnusedPrivateMethod warnings in this class
    +@SuppressWarnings("unused")
    +public class Bar {
    +    void bar() {
    +        int foo;
    +    }
    +    private void foobar(){}
    +}
    +
    + +

    NOPMD comment

    + +

    Alternatively, you can tell PMD to ignore a specific line by using the “NOPMD” marker in a comment, like this:

    + +
    public class Bar {
    +    // 'bar' is accessed by a native method, so we want to suppress warnings for it
    +    private int bar; //NOPMD
    +}
    +
    + +

    You can use whatever text string you want to suppress warnings, by using the -suppressmarker CLI option. +For example, here’s how to use TURN_OFF_WARNINGS as the suppressor:

    + +
    $ cat Foo.java
    +public class Foo {
    +    void bar() {
    +        int x = 2; // TURN_OFF_WARNINGS
    +    }
    +}
    +
    +$ ./run.sh pmd -d Foo.java -f text -R java-unusedcode -suppressmarker TURN_OFF_WARNINGS
    +No problems found!
    +UnusedLocalVariable rule violation suppressed by //NOPMD in /home/tom/pmd/pmd/bin/Foo.java
    +
    +

    Note that PMD expects the //NOPMD marker to be on the same line as the violation. So, for +example, if you want to suppress an “empty if statement” warning, you’ll need to place it on +the line containing the if keyword, e.g.:

    + +
    $ cat ~/tmp/Foo.java
    +public class Foo {
    +    void bar() {
    +        int x = 42;
    +        if (x > 5) { // NOPMD
    +        }
    +    }
    +}
    +$ java net.sourceforge.pmd.PMD -d ~/tmp/Foo.java -f text -R java-basic
    +No problems found!
    +
    + +

    A message placed after the NOPMD marker will get placed in the report, e.g.:

    + +
    public class Foo {
    +    void bar() {
    +        try {
    +            bar();
    +        } catch (FileNotFoundException e) {} // NOPMD - this surely will never happen
    +    }
    +}
    +
    + +

    XPath and Regex message suppression

    + +

    If a particular rule consistently reports a warning in a particular context, you can fall +back to disabling the rule for all these contexts using one of two rule properties +that are defined on every rule. Depending on what you’re after, you can suppress +violations for specific messages using regular expressions, or specific nodes +using an XPath expression.

    + +

    The property violationSuppressRegex

    + +

    This property defines a regular expression to match against the +message of the violation. If the regular expression matches, +then the violation will be suppressed.

    + +

    For example, to suppress reporting specifically named parameters which +are unused:

    + +
    <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter">
    +  <properties>
    +    <property name="violationSuppressRegex" value=".*'mySpecialParameterName'.*"/>
    +  </properties>
    +</rule>
    +
    + +

    Note for message based suppression to work, you must know how to write +a regular expression that matches the message of violations you wish to +suppress. Regular expressions are explained in the JavaDoc for standard +Java class java.util.regex.Pattern.

    + +

    This technique of course relies on how the rule’s message is implemented. +Some rules always report the same message, in which case this property is +of no use.

    + +

    The property violationSuppressXPath

    + +

    This property defines an XPath query to be executed using the +violation node as the context node. If the XPath query matches anything, +then the violation will be suppressed. Note that the query shouldn’t be finding +the violation nodes to suppress, but rather, finding a non-empty sequence of nodes +when evaluated with the violation node as a context node.

    + +

    The XPath version used by those queries is XPath 1.0, so it doesn’t support various XPath 2.0 +features. This will be updated with PMD 7.0.0.

    + +

    For example, to suppress reporting specifically “String” parameters which are unused:

    + +
    <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter">
    +  <properties>
    +    <property name="violationSuppressXPath" value=".[typeIs('java.lang.String')]"/>
    +  </properties>
    +</rule>
    +
    + +

    Note the use of . to refer to the context node. Using // at the start of the +expression should be avoided, as it would test all nodes in the file, and suppress +more violations than expected.

    + +

    Another example, to suppress violations occurring in classes whose name contains Bean:

    +
    <property name="violationSuppressXPath" value="./ancestor::ClassOrInterfaceDeclaration[contains(@Image, 'Bean')]"/>
    +
    + +

    You can also use regex for string comparison. The next example suppresses violations in classes ending with Bean:

    +
    <property name="violationSuppressXPath" value="./ancestor::ClassOrInterfaceDeclaration[matches(@Image, '^.*Bean$')]"/>
    +
    + +

    Note here the usage of the ./ancestor:: axis instead of //. The latter would match +any ClassOrInterfaceDeclaration in the file, while the former matches only class +declaration nodes that enclose the violation node, which is usually what you’d want.

    + +

    Note for XPath based suppression to work, you must know how to write +an XPath query that matches the AST structure of the nodes of the +violations you wish to suppress. XPath queries are explained in +XPath Rule tutorial.

    + + +
    + + Tags: + + + + userdocs + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools.html b/pmd_userdocs_tools.html new file mode 100644 index 0000000000..8c33d890b4 --- /dev/null +++ b/pmd_userdocs_tools.html @@ -0,0 +1,1899 @@ + + + + + + + + +Tools / Integrations | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Tools / Integrations

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Automated Code Review

    + +

    Codacy

    + +

    Codacy automates code reviews and monitors code quality on every commit and pull request. +It gives visibility into the technical debt and it can track code style and security issues, code coverage, code duplication, cyclomatic complexity and enforce best practices. +Codacy is static analysis without the hassle.

    + +

    With Codacy you have PMDJava analysis out-of-the-box, and it is free for open source projects.

    + + + +

    IDE Integrations

    + +

    Summary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IDEHomepageSource CodeMaintainers
    BlueJpmd-bluejTom Copeland
    CodeGuideN/AAustin Moore
    Eclipsegithub: pmd/pmd-eclipsePhilippe Herlin
    qa-Eclipseqa-EclipseChristian Wulf
    eclipse-pmdhttp://acanda.github.io/eclipse-pmd/github: acanda/eclipse-pmdPhilip Graf
    Emacsgithub: pmd/pmd-emacsNascif Abousalh Neto
    Gelgithub: pmd/pmd-misc/pmd-gelAndrei Lumianski
    GradleGradle: The PMD Plugingithub: gradle/gradleGradle.org
    IntelliJ IDEAgithub: amitdev/PMD-IntellijAmit Dev
    IntelliJ IDEA - QAPlughttp://qaplug.com/N/AJakub Sławiński
    JBuildergithub: pmd/pmd-misc/pmd-jbuilderTom Copeland
    JCreatorN/ABrant Gurganus
    JDevelopergithub: pmd/pmd-jdeveloperTorsten Kleiber
    JEditjEdit - PMD Pluginsourceforge: jedit/PMDPluginJiger Patel, Dale Anson
    NetBeansSQEgithub: sqe-team/sqeN/A
    TextPadN/AJeff Epstein
    WebLogic Workshop 8.1.xN/AKevin Conaway
    + +

    General comments

    + +

    A general note - most plugins include the PMD jar files, which has the rulesets +inside it. So even though the rulesets parameter that some plugins +use (i.e., “rulesets/java/unusedcode.xml”) looks like a filesystem reference, it’s really +being used by a getResourceAsStream() call to load it out of the PMD jar files.

    + +

    BlueJ

    + +

    BlueJ is a teaching IDE. To install the PMD extension for BlueJ, download +the PMDExtension jar file +and place it in your bluej/lib/extensions/ directory.

    + +

    Eclipse

    + +

    To install the PMD plugin for Eclipse:

    + +
      +
    • Start Eclipse and open a project
    • +
    • Select “Help”->”Software Updates”->”Find and Install”
    • +
    • Click “Next”, then click “New remote site”
    • +
    • Enter “PMD” into the Name field and https://dl.bintray.com/pmd/pmd-eclipse-plugin/updates/ into the URL field
    • +
    • Click through the rest of the dialog boxes to install the plugin
    • +
    + +

    Alternatively, you can download the latest zip file and follow the above procedures +except for using “New local site” and browsing to the downloaded zip file.

    + +

    To configure PMD, select “Windows”->”Preferences”, then select PMD.

    + +

    To run PMD, right-click on a project node and select “PMD”->”Check code with PMD”.

    + +

    To run the duplicate code detector, right-click on a project node and +select “PMD”->”Find suspect cut and paste”. The report will be placed in a “reports” directory +in a file called “cpd-report.txt”.

    + +

    To find additional help for other features, please read included help by selecting +Help->Help Contents and browse the “How to…” section in the “PMD Plugin Documentation” book.

    + +

    After installing an update, if you get an Exception such as +“java.lang.RuntimeException: Couldn’t find that class xxxxx”, +try deleting the ruleset.xml file in the .metadata/plugins/net.sourceforge.pmd.eclipse directory in your workspace.

    + +

    To get Eclipse to not flag the @SuppressWarnings(“PMD”) annotation, look +under the menu headings Java -> Compiler -> Errors/Warnings -> Annotations -> Unhandled Warning Token.

    + +

    Emacs

    + +

    Integration with GNU Emacs is performed through an ELisp package, pmd.el. +It supports two commands, “pmd-current-buffer” and “pmd-current-dir”. +The output is captured in a compilation buffer which allows the user to “jump” +directly to the source code position associated with the PMD warnings.

    + +

    Gel

    + +

    Here’s how to set up the Gel plugin:

    + +
      +
    • Download the pmd-gel-[version].zip file
    • +
    • Close Gel
    • +
    • Remove any old plugin versions from your gel\plugins directory
    • +
    • Unzip the new zip file into your gel\plugins directory
    • +
    • Start Gel
    • +
    • Go to Tools->Options->Plugin
    • +
    • Select the PMD plugin and click “Remove”
    • +
    • Click “Add” and select “net.sourceforge.pmd.gel.PMDPlugin”
    • +
    • Restart Gel
    • +
    + +

    That’s pretty much it. Now you can open a Java project and click on Plugins->PMD and +a configuration panel will pop up. You can pick which ruleset you want to run and +you can also pick whether you want to run PMD on the current file or on every +source file in your project.

    + +

    IDEA

    + +

    You can use an integrated plugin or just use it as an IDEA “External Tool”.

    + +

    Amit Dev wrote an integrated plugin for IDEA; you can download that +from the IntelliJ plugins site.

    + +

    Here’s how to set it up as an “External Tool”:

    + +
      +
    • Open IDEA and go to File->Settings
    • +
    • Click on the “External Tools” icon
    • +
    • Click on the Add button
    • +
    • Fill in the blocks +
        +
      • Name: PMD
      • +
      • Description: PMD, good for what ails you.
      • +
      • Menu: Select the “Main menu”, “Project views”, “Editor menu”, and “Search results” checkboxes.
      • +
      • Program: c:\pmd\bin\pmd.bat
      • +
      • For the next parameter you’ll need to plug in the location of your PMD installation +and the rulesets you want to use
      • +
      • Parameters: +-d "$FilePath$" -f ideaj -R rulesets/java/quickstart.xml -P sourcePath="$Sourcepath$" -P classAndMethodName=$FileClass$.method -P fileName=$FileName$
      • +
      +
    • +
    + +

    That’s pretty much it. Now you can right click on a source directory and select PMD, +it’ll run recursively on the source files, and the results should +be displayed in a window and hyperlinked into the correct file and line of code. I usually +right-click on the message window title bar and unselect “autohide” so the window doesn’t go +away every time I fix something in the code window.

    + +

    IDEA - QAPlug

    + +

    QAPlug is an Intellij IDEA plugin to manage code quality. It integrates no less than Checkstyle, FindBugs, and PMD.

    + +

    The plugin is available at http://www.qaplug.com/.

    + +

    Also available at the JetBrains site, QAPlug-PMD +and QAPlug.

    + +

    JBuilder

    + +

    To enable this OpenTool in JBuilder:

    + +
      +
    • Download the latest binary release
    • +
    • Unzip it into your jbuilder/lib/ext/ directory
    • +
    • Restart JBuilder
    • +
    + +

    What you can do:

    + +
      +
    • Check a single file by bringing up the context menu from the file tab and selecting PMDCheck
    • +
    • Configure the rulesets that the PMD OpenTool will use by selecting Tools->PMD->Configure PMD
    • +
    • Check all the files in a project by bringing up the context menu for +the project node and selecting PMD Check Project
    • +
    • Locate duplicate code by right clicking on a package and selection “Check with CPD”
    • +
    + +

    When running PMD, the results will be displayed in the MessageView under a tab called PMD Results. If you click on a +violation message within this view, you will be taken to the line in the source code where the violation was detected.

    + +

    Things still to do:

    + +
      +
    • Enable selection of individual rules within a rule set (maybe)
    • +
    • Optional insertion of @todo comments at the point of a violation
    • +
    • Possibly provide configurable ability to limit the number of violations per rule per file
    • +
    + +

    JCreator

    + +
      +
    1. Open Configure > Options
    2. +
    3. Go to the Tools panel
    4. +
    5. Click New > Program
    6. +
    7. Browse for PMD’s pmd.bat
    8. +
    9. Put quotations around the path if it has spaces.
    10. +
    11. Set the initial directory to PMD’s \bin directory
    12. +
    13. Check capture output
    14. +
    15. Put ‘”$[PrjDir]” emacs’ followed by desired rulesets in the arguments
    16. +
    + +

    To run PMD on a project, just pick pmd from the Tools menu.

    + +

    JDeveloper

    + +

    To install the PMD plugin for JDeveloper:

    + +
      +
    • JDeveloper 10.1.2: Download the binary release and unzip it into your jdev/lib/ext directory
    • +
    • JDeveloper 10.1.3 upwards: Click “Help”, click “Check for Updates” +
        +
      • JDeveloper 10.1.3: + +
      • +
      • JDeveloper 11 upwards: Select Update Center: Open Source and Partner Extensions
      • +
      • Press Next and select the actual PMD Plugin and install it
      • +
      +
    • +
    • Restart JDeveloper
    • +
    + +

    To run the PMD plugin for JDeveloper:

    + +
      +
    • Open the Tools-&Preferences menu
    • +
    • Click on the PMD option
    • +
    • Select a couple of rules to try
    • +
    • To run PMD, right click on either a file, folder, package, project or workspace and select PMD via +Toolbar Icon, Context Menu or File Menu
    • +
    • Any rule violations should show up in a LogWindow tab at the bottom of the screen
    • +
    + +

    JEdit

    + +

    The way I use the JEdit plugin is:

    + +
      +
    • Dock the ErrorList by going to Utilities->Global Options->Docking and +putting ErrorList at the bottom of the screen
    • +
    • Open the File Browser if it isn’t already open
    • +
    • Double-click on a source directory
    • +
    • Select Plugins->PMD->Check directory recursively
    • +
    + +

    Note that you can select individual rules by going to Utilities->Global Options->Plugin Options->PMD. +Also, you can change the plugin to prompt you for a directory to check by going to that same menu and +selecting the “Ask for Directory” checkbox.

    + +

    NetBeans

    + +

    The SQE project includes PMD integration for NetBeans.

    + +

    TextPad

    + +

    Assumptions

    + +
      +
    • The Java Development Kit, version 1.4.2 (versions 1.4 and higher are acceptable) is properly installed +into your machine, and exists in D:\java\jdk\_142\. This means that D:\java\jdk\_142\bin\java.exe exists.
    • +
    • PMD version 5.0 exists in D:\java\pmd-bin-\. +This means that D:\java\pmd-bin-\lib\pmd-.jar (among other jar files +in the same directory) exist.
    • +
    + +

    To integrate into TextPad

    + +
      +
    1. In the Configure menu, choose Preferences…. This opens the Preferences dialog
    2. +
    3. In the left pane of the Preferences dialog, choose the Tools branch by clicking on the word “Tools”.
    4. +
    5. On the far right of the dialog, click on the Add button, and then select Program… from the drop-down. +This opens the standard Windows Open File dialog.
    6. +
    7. Type D:\java\jdk_142\bin\java.exe and click the Open button. In the center pane of the Preferences dialog, +an item “Java” has now been added, and is currently selected.
    8. +
    9. Click the word Java, which makes the word editable. Select the entire word, and type “PMD directory”. Press Return.
    10. +
    11. Repeat steps three through five, but type “PMD file”, instead of “PMD directory”.
    12. +
    13. Click Apply.
    14. +
    15. Expand the Tools branch (if not already) by clicking on the ‘+’ directly to its left.
    16. +
    17. In the expanded list, select PMD directory. This changes the right side of this dialog to the “tool” form.
    18. +
    19. In the “tool” form, enter these parameters: +
        +
      • Parameters: -classpath D:\java\pmd-bin-\lib\pmd-.jar;D:\java\pmd-bin-\lib\asm-3.2.jar;D:\java\pmd-bin-\lib\jaxen-1.1.1.jar net.sourceforge.pmd.PMD -d <i><b>$FileDir</b></i> -f net.sourceforge.pmd.renderers.TextPadRenderer -R E:\directory\my_pmd_ruleset.xml -debug
      • +
      • Initial Folder: $FileDir
      • +
      • Save all documents first: Checked
      • +
      • Capture output: Checked
      • +
      • All other checkboxes: Unchecked
      • +
      • Regular expression to match output: ^\([^(]+\)(\([0-9]+\),
      • +
      • Registers/File: 1
      • +
      • Registers/Line: 2
      • +
      +
    20. +
    21. In the expanded list, select PMD file.
    22. +
    23. In the “tool” form, enter the same parameters as above, except replace ‘$FileDir’ with ‘$File’, +in the Parameters textbox.
    24. +
    25. To save your work (truly, given a quirk of TextPad), click on OK, which closes the Preferences dialog. +Restart TextPad and re-open the Preferences dialog.
    26. +
    27. Go back to both the “PMD directory” and “PMD file” Tools branches, and replace ‘E:\directory\my_pmd_ruleset.xml’ +with the ruleset of your choice. For example, basic.
    28. +
    29. Go to the Keyboard branch in the left pane (above Tools), which changes the right side to +the “keyboard configuration” form.
    30. +
    31. In the Categories list box, select Tools.
    32. +
    33. In the Command list box, select PMD directory.
    34. +
    35. Put your cursor into the Press new shortcut key, and type your desired key command. +For example Ctrl+Page Up
    36. +
    37. Click Assign.
    38. +
    39. In the Command list box, select PMD file.
    40. +
    41. Put your cursor into the Press new shortcut key, and type your desired key command. +For example Ctrl+Page Down
    42. +
    43. Click Assign.
    44. +
    45. Save your work again: Click on OK, which closes the Preferences dialog, and then restart TextPad.
    46. +
    + +

    To run PMD against a single Java file

    + +
      +
    1. In TextPad, open any Java file.
    2. +
    3. Click Ctrl+Page Down. This opens an empty, read-only text document (titled “Command Results”). +When PMD completes its analysis, this document will be populated with a listing of violated rules +(or “Command completed successfully” indicating no violations).
    4. +
    5. Double click any line to go to it.
    6. +
    + +

    To run PMD against a directory of Java files

    + +
      +
    1. In TextPad, open any file in the root directory you wish to analyze. Unfortunately, you’ll need to +create a dummy file, if no file exists there.
    2. +
    3. Click Ctrl+Page Up. This opens an empty, read-only text document (titled “Command Results”). +When PMD completes its analysis, this document will be populated with a listing of violated rules +(or “Command completed successfully” indicating no violations).
    4. +
    5. Double click any line to go to it.
    6. +
    + +

    Because directory analysis may take a while, you may choose to cancel this operation. Do so by closing +the (blank Command Results) document, and then confirming that, “yes, I do really want to exit the tool”.

    + +

    WebLogic Workshop 8.1.x

    + +

    Please see the WebLogic Workshop plugin project home page for more information.

    + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools_ant.html b/pmd_userdocs_tools_ant.html new file mode 100644 index 0000000000..fd5662f86e --- /dev/null +++ b/pmd_userdocs_tools_ant.html @@ -0,0 +1,1878 @@ + + + + + + + + +Ant Task Usage | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Ant Task Usage

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    PMD

    + +

    Description

    + +

    Runs a set of static code analysis rules on some source code files and generates a list of problems found.

    + +

    Installation

    + +

    Before you can use the pmd task in your ant build.xml file, you need to install PMD and its libraries into +ant’s classpath, as described in Optional Tasks.

    + +

    First you need to download PMD’s binary distribution zip file. +Then you can either copy all “*.jar” files from PMD’s lib folder into one of ANT’s library folders +(ANT_HOME/lib, ${user.home}/.ant/lib) or using the -lib command line parameter.

    + +

    However, the preferred way is to define a <classpath> for pmd itself and use this classpath when +adding the PMD Task. Assuming, you have extracted the PMD zip file to /home/joe/pmd-bin-6.30.0-SNAPSHOT, +then you can make use of the PMD Task like this:

    + +
    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
    +    <classpath>
    +        <fileset dir="/home/joe/pmd-bin-6.30.0-SNAPSHOT/lib">
    +            <include name="*.jar"/>
    +        </fileset>
    +    </classpath>
    +</taskdef>
    +
    + +

    Alternatively, a path can be defined and used via classpathref:

    + +
    <path id="pmd.classpath">
    +    <fileset dir="/home/joe/pmd-bin-6.30.0-SNAPSHOT/lib">
    +        <include name="*.jar"/>
    +    </fileset>
    +</path>
    +<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath" />
    +
    + +

    The examples below won’t repeat this taskdef element, as this is always required.

    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeDescriptionRequired
    rulesetfiles + A comma delimited list of ruleset files ('rulesets/java/quickstart.xml,config/my-ruleset.xml'). + If you write your own ruleset files, you can put them on the classpath and plug them in here. + Yes, unless the ruleset nested element is used
    failonerrorWhether or not to fail the build if any errors occur while processing the filesNo
    failOnRuleViolationWhether or not to fail the build if PMD finds any problemsNo
    minimumPriorityThe rule priority threshold; rules with lower priority than they will not be usedNo
    shortFilenamesPlaces truncated filenames in the report. This can reduce your report file size by 15%-20%.No
    failuresPropertyNameA property name to plug the number of rule violations into when the task finishesNo
    encodingThe character set encoding (e.g. UTF-8) to use when reading the source code filesNo
    suppressMarkerThe series of characters to use to tell PMD to skip lines - the default is NOPMD.No
    maxRuleViolations + Whether or not to fail the build if PMD finds more than the value of this attribute. + Note that setting this attribute does not require to set the failOnRuleViolation to true. + No
    cacheLocation + The location of the analysis cache file to be used. + Setting this property enables Incremental Analysis, which can greatly improve analysis time without loosing analysis quality. + Its use is strongly recommended. + No
    noCache + Setting this property to true disables Incremental Analysis, even if cacheLocation is provided. + You can use this to explicitly turn off suggestions to use incremental analysis, or for testing purposes. + No
    + +

    formatter nested element - specifies the format of and the files to which the report is written. You can +configure multiple formatters.

    + + + + + + + + + + + + + + + + + + + + + + +
    NameValues
    typexml,ideaj,textcolor,text,textpad,emacs,csv,html,xslt,yahtml,summaryhtml,vbhtml,codeclimate
    showSuppressedWhether to show suppressed warnings; "false" is the default.
    toFileA filename to which to write the report
    toConsoleWhether to output the report to the console; "false" is the default.
    +

    The formatter element can contain nested param elements to configure the formatter in detail, e.g.

    +
    +
    encoding
    +
    Specifies the encoding to be used in the generated report (only honored when used with `toFile`). When rendering `toConsole` PMD will automatically detect the terminal's encoding and use it, unless the output is being redirected / piped, in which case `file.encoding` is used. See example below.
    +
    linkPrefix
    +
    Used for linking to online HTMLized source (like this). See example below. Note, this only works with + maven-jxr-plugin.
    +
    linePrefix
    +
    Used for linking to online HTMLized source (like this). See example below. Note, this only works with maven-jxr-plugin.
    +
    +
    + +

    classpath nested element - useful for specifying custom rules. More details on the classpath +element are in the Ant documentation for path-like structures and there’s +an example below.

    + +

    auxclasspath nested element - extra classpath used for type resolution. Some rules make use of type resolution +in order to avoid false positives. The auxclasspath is configured also with path-like structures. It should contain the compiled classes of the project that is being analyzed and all the compile time +dependencies.

    + +

    sourceLanguage nested element - specify which language (Java, Ecmascript, XML,…) +and the associated version (1.5, 1.6,…). This element is optional. The language is determined by file extension +automatically and the latest language version is used.

    + +

    ruleset nested element - another way to specify rulesets. You can specify multiple elements. Here’s an example:

    + +
    <target name="pmd">
    +    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
    +    <pmd shortFilenames="true">
    +        <ruleset>rulesets/java/quickstart.xml</ruleset>
    +        <ruleset>config/my-ruleset.xml</ruleset>
    +        <fileset dir="/usr/local/j2sdk1.4.1_01/src/">
    +            <include name="java/lang/*.java"/>
    +        </fileset>
    +    </pmd>
    +</target>
    +
    + +

    fileset nested element - specify the actual java source files, that PMD should analyze. You can use multiple +fileset elements. See FileSet for the syntax and usage.

    + +

    Language version selection

    + +

    PMD selects the language automatically using the file extension. If multiple versions of a language are +supported, PMD uses the latest version as default. This is currently the case for Java only, which has +support for multiple versions.

    + +

    If a languages supports multiple versions, you can select a specific version here, so that e.g. rules, that only apply +to specific versions, are not executed. E.g. the rule UseTryWithResources only makes +sense with Java 1.7 and later. If your project uses Java 1.5, then you should configure the sourceLanguage +accordingly and this rule won’t be executed.

    + +

    The specific version of a language to be used is selected via the sourceLanguage +nested element. Possible values are:

    + +
    <sourceLanguage name="apex" version="48"/>
    +<sourceLanguage name="ecmascript" version="3"/>
    +<sourceLanguage name="java" version="1.3"/>
    +<sourceLanguage name="java" version="1.4"/>
    +<sourceLanguage name="java" version="1.5"/>
    +<sourceLanguage name="java" version="5"/> <!-- alias for 1.5 -->
    +<sourceLanguage name="java" version="1.6"/>
    +<sourceLanguage name="java" version="6"/> <!-- alias for 1.6 -->
    +<sourceLanguage name="java" version="1.7"/>
    +<sourceLanguage name="java" version="7"/> <!-- alias for 1.7 -->
    +<sourceLanguage name="java" version="1.8"/>
    +<sourceLanguage name="java" version="8"/> <!-- alias for 1.8 -->
    +<sourceLanguage name="java" version="9"/>
    +<sourceLanguage name="java" version="1.9"/> <!-- alias for 9 -->
    +<sourceLanguage name="java" version="10"/>
    +<sourceLanguage name="java" version="1.10"/> <!-- alias for 10 -->
    +<sourceLanguage name="java" version="11"/>
    +<sourceLanguage name="java" version="12"/>
    +<sourceLanguage name="java" version="13"/>
    +<sourceLanguage name="java" version="13-preview"/>
    +<sourceLanguage name="java" version="14"/> <!-- this is the default -->
    +<sourceLanguage name="java" version="14-preview"/>
    +<sourceLanguage name="jsp" version=""/>
    +<sourceLanguage name="modelica" version=""/>
    +<sourceLanguage name="pom" version=""/>
    +<sourceLanguage name="plsql" version=""/>
    +<sourceLanguage name="scala" version="2.10"/>
    +<sourceLanguage name="scala" version="2.11"/>
    +<sourceLanguage name="scala" version="2.12"/>
    +<sourceLanguage name="scala" version="2.13"/> <!-- this is the default -->
    +<sourceLanguage name="vf" version=""/>
    +<sourceLanguage name="vm" version=""/>
    +<sourceLanguage name="wsdl" version=""/>
    +<sourceLanguage name="xml" version=""/>
    +<sourceLanguage name="xsl" version=""/>
    +
    + +

    Postprocessing the report file with XSLT

    + +

    Several folks (most recently, Wouter Zelle) have written XSLT scripts +which you can use to transform the XML report into nifty HTML. To do this, +make sure you use the XML formatter in the PMD task invocation, i.e.:

    + +
    <formatter type="xml" toFile="${tempbuild}/report_pmd.xml">
    +    <param name="encoding" value="UTF-8" /> <!-- enforce UTF-8 encoding for the XML -->
    +</formatter>
    +
    + +

    Then, after the end of the PMD task, do this:

    + +
    <xslt in="${tempbuild}/report_pmd.xml" style="${pmdConfig}/wz-pmd-report.xslt" out="${pmdOutput}/report_pmd.html" />
    +
    + +

    Examples

    + +

    One ruleset

    + +

    Running one ruleset to produce a HTML report (and printing the report to the console as well) using a file cache

    + +
    <target name="pmd">
    +    <pmd rulesetfiles="rulesets/java/quickstart.xml" cacheLocation="build/pmd/pmd.cache">
    +        <formatter type="html" toFile="pmd_report.html" toConsole="true"/>
    +        <fileset dir="C:\j2sdk1.4.1_01\src\java\lang\">
    +            <include name="**/*.java"/>
    +        </fileset>
    +    </pmd>
    +</target>
    +
    + +

    Multiple rulesets

    + +

    Running multiple rulesets to produce an XML report with the same analysis cache

    + +
    <target name="pmd">
    +    <pmd rulesetfiles="rulesets/java/quickstart.xml,config/my-ruleset.xml" cacheLocation="build/pmd/pmd.cache">
    +        <formatter type="xml" toFile="c:\pmd_report.xml"/>
    +        <fileset dir="C:\j2sdk1.4.1_01\src\java\lang\">
    +            <include name="**/*.java"/>
    +        </fileset>
    +    </pmd>
    +</target>
    +
    + +

    Custom renderer

    + +

    Using a custom renderer. For this to work, you need to add you custom renderer to the classpath of PMD. This +need to be configured when defining the task:

    + +
    <path id="pmd.classpath">
    +    <fileset dir="/home/joe/pmd-bin-6.30.0-SNAPSHOT/lib">
    +        <include name="*.jar"/>
    +    </fileset>
    +    <!-- the custom renderer is expected to be in /home/joe/pmd-addons/com/company/MyRenderer.class -->
    +    <pathelement location="/home/joe/pmd-addons" />
    +</path>
    +<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath" />
    +
    +<target name="pmd">
    +    <pmd rulesetfiles="rulesets/java/quickstart.xml">
    +        <formatter type="com.mycompany.MyRenderer" toFile="foo.html"/>
    +        <fileset dir="/path/to/java/src">
    +            <include name="**/*.java"/>
    +        </fileset>
    +    </pmd>
    +</target>
    +
    + +

    Full example with auxclasspath

    + +

    Full build file example using the correct auxclasspath configuration. +Your project needs to be compiled first which happens in the target “compile”:

    + +
    <project name="MyProject" default="pmd" basedir=".">
    +    <property name="src" location="src"/>
    +    <property name="build" location="build"/>
    +    <path id="project.dependencies">
    +        <pathelement location="lib/third-party.jar"/>
    +        <pathelement location="lib/xyz.jar"/>
    +    </path>
    +    <path id="pmd.classpath">
    +        <fileset dir="/home/joe/pmd-bin-6.30.0-SNAPSHOT/lib">
    +            <include name="*.jar"/>
    +        </fileset>
    +    </path>
    +    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath" />
    +    
    +    <target name="init">
    +        <mkdir dir="${build}"/>
    +    </target>
    +    
    +    <target name="compile" depends="init">
    +        <javac srcdir="${src}" destdir="${build}" classpathref="project.dependencies"
    +            source="1.8" target="1.8" />
    +    </target>
    +    
    +    <target name="pmd" depends="compile">
    +        <pmd cacheLocation="${build}/pmd.cache">
    +            <auxclasspath>
    +                <pathelement location="${build}"/>
    +                <path refid="project.dependencies"/>
    +            </auxclasspath>
    +            <ruleset>rulesets/java/quickstart.xml</ruleset>
    +            <formatter type="html" toFile="${build}/pmd_report.html"/>
    +            <sourceLanguage name="java" version="1.8"/>
    +            <fileset dir="${src}">
    +                <include name="**/*.java"/>
    +            </fileset>
    +        </pmd>
    +    </target>
    +    
    +    <target name="clean">
    +        <delete dir="${build}"/>
    +    </target>
    +</project>
    +
    + +

    You can run pmd then with ant pmd.

    + +

    Getting verbose output

    + +
    [tom@hal bin]$ ant -v pmd
    +Apache Ant version 1.6.2 compiled on July 16 2004
    +Buildfile: build.xml
    +Detected Java version: 1.4 in: /usr/local/j2sdk1.4.2_03/jre
    +Detected OS: Linux
    +parsing buildfile build.xml with URI = file:/home/tom/data/pmd/pmd/bin/build.xml
    +Project base dir set to: /home/tom/data/pmd/pmd
    +Build sequence for target `pmd' is [pmd]
    +Complete build sequence is [pmd, copy, cppjavacc, cpd, delete,
    + compile, clean, jar, dist, cpdjnlp, jjtree, javadoc, test, tomserver]
    +
    +pmd:
    +      [pmd] Using the normal ClassLoader
    +      [pmd] Using these rulesets: rulesets/java/quickstart.xml
    +      [pmd] Using rule AvoidMessageDigestField
    +      [pmd] Using rule AvoidStringBufferField
    +      [pmd] Using rule AvoidUsingHardCodedIP
    +      [pmd] Using rule CheckResultSet
    +      [pmd] Using rule ConstantsInInterface
    +      ...
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/Finalizer.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/FinalReference.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/PhantomReference.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/Reference.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/ReferenceQueue.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/SoftReference.java
    +      [pmd] Processing file /usr/local/java/src/java/lang/ref/WeakReference.java
    +      [pmd] 0 problems found
    +
    +BUILD SUCCESSFUL
    +Total time: 2 seconds
    +[tom@hal bin]$
    +
    + +

    HTML report with linkPrefix

    + +

    An HTML report with the “linkPrefix” and “linePrefix” properties:

    + +
    <target name="pmd">
    +    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
    +    <pmd rulesetfiles="rulesets/java/quickstart.xml" shortFilenames="true">
    +        <formatter type="html" toFile="pmd_report.html">
    +            <param name="linkPrefix" value="https://maven.apache.org/plugins/maven-pmd-plugin/xref/"/>
    +            <param name="linePrefix" value="L"/>
    +        </formatter>
    +        <fileset dir="/usr/local/j2sdk1.4.1_01/src/">
    +            <include name="java/lang/*.java"/>
    +        </fileset>
    +    </pmd>
    +</target>
    +
    + +

    Memory Usage

    + +

    Memory usage has been reduced significantly starting with the PMD 4.0 release. +When testing all Java rules on the jdk 1.6 source code (about 7000 classes), +the allocated heap space does not go over 60M.

    + +

    However, on very large projects, the Ant task may still fail with a OutOfMemoryError. +To prevent this from happening, increase the maximum memory usable by ant using the ANT_OPTS variable +(adjust the size according to your available memory):

    + +

    On Windows:

    + +
    set ANT_OPTS=-Xmx1024m -Xms512m
    +
    + +

    On Linux

    + +
    export ANT_OPTS="-Xmx1024m -Xms512m"
    +
    + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools_ci.html b/pmd_userdocs_tools_ci.html new file mode 100644 index 0000000000..f902becbb7 --- /dev/null +++ b/pmd_userdocs_tools_ci.html @@ -0,0 +1,1465 @@ + + + + + + + + +Continuous Integrations plugins | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Continuous Integrations plugins

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Introduction

    + +

    PMD can be integrate through some of the Continuous Integration tools that exist now. +Here is a list of known (to us) plugin to do so.

    + +

    Hudson Plugin

    + +

    Hafner Ullrich has developed a PMD plugin for Hudson. +Please check the plugin homepage for more info.

    + +

    Continuum

    + +

    Continuum does not have a plugin for PMD per see, but can failed the build according to the +result of the PMD maven plugin.

    + + + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools_gradle.html b/pmd_userdocs_tools_gradle.html new file mode 100644 index 0000000000..f935097745 --- /dev/null +++ b/pmd_userdocs_tools_gradle.html @@ -0,0 +1,1508 @@ + + + + + + + + +Gradle | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Gradle

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The Gradle Build Tool provides a PMD Plugin +that can be added to your build configuration. Technically it is based on the Ant Task.

    + +

    Example

    + +

    In your build.gradle add the following:

    + +
    plugins {
    +    id 'pmd'
    +}
    +
    + +

    Custom ruleset

    + +

    Configuration of a custom ruleset looks like this:

    + +
    pmd {
    +    ruleSetFiles = files("custom-pmd-ruleset.xml")
    +    ruleSets = []
    +}
    +
    + +

    Note: The ruleSets array is explicitly set to empty to avoid using the default configuration.

    + +

    Fail the build

    + +

    If you want to fail the build for pmd violations, you need to set ignoreFailures:

    + +
    pmd {
    +    ignoreFailures = false
    +}
    +
    + +

    More configuration options are documented on PMD Extension.

    + +

    Upgrade PMD version

    + +

    If you want to use a newer PMD version than the default one provided with gradle, you can do so +with the property toolVersion:

    + +
    pmd {
    +    toolVersion = "6.21.0"
    +}
    +
    + +

    References

    + +

    Source code for Gradles PMD Plugin is available here:

    + + + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools_java_api.html b/pmd_userdocs_tools_java_api.html new file mode 100644 index 0000000000..19bb4e83c1 --- /dev/null +++ b/pmd_userdocs_tools_java_api.html @@ -0,0 +1,1724 @@ + + + + + + + + +PMD Java API | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    PMD Java API

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The easiest way to run PMD is to just use a build plugin in your favorite build tool +like Apache Ant, Apache Maven or +Gradle.

    + +

    There are also many integrations for IDEs available, see Tools.

    + +

    If you have your own build tool or want to integrate PMD in a different way, you can call PMD programmatically, +as described here.

    + +

    Dependencies

    + +

    You’ll need to add the dependency to the language, you want to analyze. For Java, it will be +net.sourceforge.pmd:pmd-java. If you use Maven, you can add a new (compile time) dependency like this:

    + +
    <dependency>
    +    <groupId>net.sourceforge.pmd</groupId>
    +    <artifactId>pmd-java</artifactId>
    +    <version>${pmdVersion}</version>
    +</dependency>
    +
    + +

    Note: You’ll need to select a specific version. This is done in the example via the property pmdVersion.

    + +

    This will transitively pull in the artifact pmd-core which contains the API.

    + +

    Command line interface

    + +

    The easiest way is to call PMD with the same interface as from command line. The main class is +net.sourceforge.pmd.PMD:

    + +
    import net.sourceforge.pmd.PMD;
    +
    +public class Example {
    +    public static void main(String[] args) {
    +        String[] pmdArgs = {
    +            "-d", "/home/workspace/src/main/java/code",
    +            "-R", "rulesets/java/quickstart.xml",
    +            "-f", "xml",
    +            "-r", "/home/workspace/pmd-report.xml"
    +        };
    +        PMD.main(pmdArgs);
    +    }
    +}
    +
    + +

    It uses the same options as described in PMD CLI reference.

    + +

    Programmatically, variant 1

    + +

    This is very similar:

    + +
    import net.sourceforge.pmd.PMD;
    +import net.sourceforge.pmd.PMDConfiguration;
    +
    +public class PmdExample {
    +
    +    public static void main(String[] args) {
    +        PMDConfiguration configuration = new PMDConfiguration();
    +        configuration.setInputPaths("/home/workspace/src/main/java/code");
    +        configuration.setRuleSets("rulesets/java/quickstart.xml");
    +        configuration.setReportFormat("xml");
    +        configuration.setReportFile("/home/workspace/pmd-report.xml");
    +
    +        PMD.doPMD(configuration);
    +    }
    +}
    +
    + +

    Programmatically, variant 2

    + +

    This gives you more control over which files are processed, but is also more complicated. +You can also provide your own listeners and renderers.

    + +
      +
    1. +

      First we create a PMDConfiguration. This is currently the only way to specify a ruleset:

      + +
      PMDConfiguration configuration = new PMDConfiguration();
      +configuration.setMinimumPriority(RulePriority.MEDIUM);
      +configuration.setRuleSets("rulesets/java/quickstart.xml");
      +
      +
    2. +
    3. +

      In order to support type resolution, PMD needs to have access to the compiled classes and dependencies +as well. This is called “auxclasspath” and is also configured here. +Note: you can specify multiple class paths separated by : on Unix-systems or ; under Windows.

      + +
      configuration.prependClasspath("/home/workspace/target/classes:/home/.m2/repository/my/dependency.jar");
      +
      +
    4. +
    5. +

      Then we need a ruleset factory. This is created using the configuration, taking the minimum priority into +account:

      + +
      RuleSetFactory ruleSetFactory = RulesetsFactoryUtils.createFactory(configuration);
      +
      +
    6. +
    7. +

      PMD operates on a list of DataSource. You can assemble a own list of FileDataSource, e.g.

      + +
      List<DataSource> files = Arrays.asList(new FileDataSource(new File("/path/to/src/MyClass.java")));
      +
      +
    8. +
    9. +

      For reporting, you can use a built-in renderer, e.g. XMLRenderer. Note, that you must manually initialize +the renderer by setting a suitable Writer and calling start(). After the PMD run, you need to call +end() and flush(). Then your writer should have received all output.

      + +
      StringWriter rendererOutput = new StringWriter();
      +Renderer xmlRenderer = new XMLRenderer("UTF-8");
      +xmlRenderer.setWriter(rendererOutput);
      +xmlRenderer.start();
      +
      +
    10. +
    11. +

      Create a RuleContext. This is the context instance, that is available then in the rule implementations. +Note: when running in multi-threaded mode (which is the default), the rule context instance is cloned for +each thread.

      + +
      RuleContext ctx = new RuleContext();
      +
      +
    12. +
    13. +

      Optionally register a report listener. This allows you to react immediately on found violations. You could also +use such a listener to implement your own renderer. The listener must implement the interface +ThreadSafeReportListener and can be registered via ctx.getReport().addListener(...).

      + +
      ctx.getReport().addListener(new ThreadSafeReportListener() {
      +    public void ruleViolationAdded(RuleViolation ruleViolation) {
      +    }
      +    public void metricAdded(Metric metric) {
      +    }
      +
      +
    14. +
    15. +

      Now, all the preparations are done, and PMD can be executed. This is done by calling +PMD.processFiles(...). This method call takes the configuration, the ruleset factory, the files +to process, the rule context and the list of renderers. Provide an empty list, if you don’t want to use +any renderer. Note: The auxclasspath needs to be closed explicitly. Otherwise the class or jar files may +remain open and file resources are leaked.

      + +
      try {
      +    PMD.processFiles(configuration, ruleSetFactory, files, ctx,
      +            Collections.singletonList(renderer));
      +} finally {
      +    ClassLoader auxiliaryClassLoader = configuration.getClassLoader();
      +    if (auxiliaryClassLoader instanceof ClasspathClassLoader) {
      +        ((ClasspathClassLoader) auxiliaryClassLoader).close();
      +    }
      +}
      +
      +
    16. +
    17. +

      After the call, you need to finish the renderer via end() and flush(). +Then you can check the rendered output.

      + +
      renderer.end();
      +renderer.flush();
      +System.out.println("Rendered Report:");
      +System.out.println(rendererOutput.toString());
      +
      +
    18. +
    + +

    Here is a complete example:

    + +
    import java.io.IOException;
    +import java.io.StringWriter;
    +import java.io.Writer;
    +import java.nio.file.FileSystems;
    +import java.nio.file.FileVisitResult;
    +import java.nio.file.Files;
    +import java.nio.file.Path;
    +import java.nio.file.PathMatcher;
    +import java.nio.file.SimpleFileVisitor;
    +import java.nio.file.attribute.BasicFileAttributes;
    +import java.util.ArrayList;
    +import java.util.Collections;
    +import java.util.List;
    +
    +import net.sourceforge.pmd.PMD;
    +import net.sourceforge.pmd.PMDConfiguration;
    +import net.sourceforge.pmd.RuleContext;
    +import net.sourceforge.pmd.RulePriority;
    +import net.sourceforge.pmd.RuleSetFactory;
    +import net.sourceforge.pmd.RuleViolation;
    +import net.sourceforge.pmd.RulesetsFactoryUtils;
    +import net.sourceforge.pmd.ThreadSafeReportListener;
    +import net.sourceforge.pmd.renderers.Renderer;
    +import net.sourceforge.pmd.renderers.XMLRenderer;
    +import net.sourceforge.pmd.stat.Metric;
    +import net.sourceforge.pmd.util.ClasspathClassLoader;
    +import net.sourceforge.pmd.util.datasource.DataSource;
    +import net.sourceforge.pmd.util.datasource.FileDataSource;
    +
    +public class PmdExample2 {
    +
    +    public static void main(String[] args) throws IOException {
    +        PMDConfiguration configuration = new PMDConfiguration();
    +        configuration.setMinimumPriority(RulePriority.MEDIUM);
    +        configuration.setRuleSets("rulesets/java/quickstart.xml");
    +        configuration.prependClasspath("/home/workspace/target/classes");
    +        RuleSetFactory ruleSetFactory = RulesetsFactoryUtils.createFactory(configuration);
    +
    +        List<DataSource> files = determineFiles("/home/workspace/src/main/java/code");
    +
    +        Writer rendererOutput = new StringWriter();
    +        Renderer renderer = createRenderer(rendererOutput);
    +        renderer.start();
    +
    +        RuleContext ctx = new RuleContext();
    +
    +        ctx.getReport().addListener(createReportListener()); // alternative way to collect violations
    +
    +        try {
    +            PMD.processFiles(configuration, ruleSetFactory, files, ctx,
    +                Collections.singletonList(renderer));
    +        } finally {
    +            ClassLoader auxiliaryClassLoader = configuration.getClassLoader();
    +            if (auxiliaryClassLoader instanceof ClasspathClassLoader) {
    +                ((ClasspathClassLoader) auxiliaryClassLoader).close();
    +            }
    +        }
    +
    +        renderer.end();
    +        renderer.flush();
    +        System.out.println("Rendered Report:");
    +        System.out.println(rendererOutput.toString());
    +    }
    +
    +    private static ThreadSafeReportListener createReportListener() {
    +        return new ThreadSafeReportListener() {
    +            @Override
    +            public void ruleViolationAdded(RuleViolation ruleViolation) {
    +                System.out.printf("%-20s:%d %s%n", ruleViolation.getFilename(),
    +                        ruleViolation.getBeginLine(), ruleViolation.getDescription());
    +            }
    +
    +            @Override
    +            public void metricAdded(Metric metric) {
    +                // ignored
    +            }
    +        };
    +    }
    +
    +    private static Renderer createRenderer(Writer writer) {
    +        XMLRenderer xml = new XMLRenderer("UTF-8");
    +        xml.setWriter(writer);
    +        return xml;
    +    }
    +
    +    private static List<DataSource> determineFiles(String basePath) throws IOException {
    +        Path dirPath = FileSystems.getDefault().getPath(basePath);
    +        PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.java");
    +
    +        List<DataSource> files = new ArrayList<>();
    +
    +        Files.walkFileTree(dirPath, new SimpleFileVisitor<Path>() {
    +            @Override
    +            public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException {
    +                if (matcher.matches(path.getFileName())) {
    +                    System.out.printf("Using %s%n", path);
    +                    files.add(new FileDataSource(path.toFile()));
    +                } else {
    +                    System.out.printf("Ignoring %s%n", path);
    +                }
    +                return super.visitFile(path, attrs);
    +            }
    +        });
    +        System.out.printf("Analyzing %d files in %s%n", files.size(), basePath);
    +        return files;
    +    }
    +}
    +
    + + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/pmd_userdocs_tools_maven.html b/pmd_userdocs_tools_maven.html new file mode 100644 index 0000000000..2515f8db93 --- /dev/null +++ b/pmd_userdocs_tools_maven.html @@ -0,0 +1,1723 @@ + + + + + + + + +Maven PMD Plugin | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Maven PMD Plugin

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    Maven 2 and 3

    + +

    Running the pmd plugin

    + +

    Choosing the plugin version

    + +

    When adding the maven-pmd-plugin to your pom.xml, you need to select a version. To figure out the +latest available version, have a look at the official maven-pmd-plugin documentation.

    + +

    As of March 2020, the current plugin version is 3.13.0.

    + +

    The version of the plugin should be specified in <build><pluginManagement/></build> and if using the project +report additionally in <reporting><plugins/></reporting> elements. Here’s an example for the pluginManagement +section:

    + +
        <build>
    +        <pluginManagement>
    +            <plugins>
    +                <plugin>
    +                    <groupId>org.apache.maven.plugins</groupId>
    +                    <artifactId>maven-pmd-plugin</artifactId>
    +                    <version>3.13.0</version>
    +                </plugin>
    +            </plugins>
    +        </pluginManagement>
    +    </build>
    +
    + +

    When defining the version in the pluginManagment section, then it doesn’t need to be specified in the normal plugins +section. However, it should additionally be specified in the reporting section.

    + +

    More information, see Guide to Configuring Plugin-ins.

    + +

    Generating a project report

    + +

    To include the PMD report in the project reports section add the following lines under +the reports element in your pom.xml:

    + +
    <project>
    +    ...
    +    <reporting>
    +        <plugins>
    +            <plugin>
    +                <groupId>org.apache.maven.plugins</groupId>
    +                <artifactId>maven-pmd-plugin</artifactId>
    +                <version>3.13.0</version>
    +            </plugin>
    +        </plugins>
    +    </reporting>
    +    ...
    +</project>
    +
    + +

    This will add an entry to the ‘project reports’ section with the PMD report when you build the maven site.

    + +

    Executing PMD manually

    + +

    To run PMD on a Maven project without adding it as a report, simply run

    + +
    mvn pmd:pmd
    +
    + +

    The PMD plugin writes the report in XML which will then be formatted into more readable HTML.

    + +

    Integrated into the build process

    + +

    You can also run PMD automatically when building your project. You even let the build fail, if +PMD finds some violations. Therefore the check goal is used:

    + +
    <project>
    +  ...
    +  <build>
    +    <plugins>
    +      <plugin>
    +        <groupId>org.apache.maven.plugins</groupId>
    +        <artifactId>maven-pmd-plugin</artifactId>
    +        <version>3.13.0</version> <!-- or use version from pluginManagement -->
    +        <configuration>
    +            <!-- failOnViolation is actually true by default, but can be disabled -->
    +            <failOnViolation>true</failOnViolation>
    +            <!-- printFailingErrors is pretty useful -->
    +            <printFailingErrors>true</printFailingErrors>
    +        </configuration>
    +        <executions>
    +          <execution>
    +            <goals>
    +              <goal>check</goal>
    +            </goals>
    +          </execution>
    +        </executions>
    +      </plugin>
    +    </plugins>
    +  </build>
    +  ...
    +</project>
    +
    + +

    This will run PMD automatically during the verify phase of the build. You can additionally run CPD, if +you add cpd-check as a goal.

    + +

    Customization

    + +

    Changing rulesets

    + +

    To specify a ruleset, simply edit the previous configuration:

    + +
        <reporting>
    +        <plugins>
    +            <plugin>
    +                <groupId>org.apache.maven.plugins</groupId>
    +                <artifactId>maven-pmd-plugin</artifactId>
    +                <version>3.13.0</version>
    +                <configuration>
    +                    <rulesets>
    +                        <ruleset>/rulesets/java/quickstart.xml</ruleset>
    +                        <ruleset>d:\rulesets\my-ruleset.xml</ruleset>
    +                        <ruleset>http://localhost/design.xml</ruleset>
    +                    </rulesets>
    +                </configuration>
    +            </plugin>
    +        </plugins>
    +    </reporting>
    +
    + +

    The value of the ‘ruleset’ element can either be a relative address, an absolute address or even an url.

    + +

    A clean strategy for customizing which rules to use for a project is to write a ruleset file. +In this file you can define which rules to use, add custom rules, and +customizing which rules to include/exclude from official rulesets. More information on +writing a ruleset can be found here. +Note that if you include other rulesets in your own rulesets, you have to be sure that the plugin +will be able to resolve those other ruleset references.

    + +

    Enabling Incremental Analysis

    + +

    When using the Maven PMD plugin 3.8 or later along with PMD 5.6.0 or later, you can enable incremental analysis to +speed up PMD’s execution while retaining the quality of the analysis. You can additionally customize where the cache is stored::

    + +
        <plugin>
    +        <groupId>org.apache.maven.plugins</groupId>
    +        <artifactId>maven-pmd-plugin</artifactId>
    +        <version>3.13.0</version> <!-- or use version from pluginManagement -->
    +        <configuration>
    +            <!-- enable incremental analysis -->
    +            <analysisCache>true</analysisCache>
    +            <!-- analysisCacheLocation: optional - points to the following location by default -->
    +            <analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
    +        </configuration>
    +    </plugin>
    +
    + +

    Other configurations

    + +

    The Maven PMD plugin allows you to configure CPD, targetJDK, and the use of XRef to link +the report to html source files, and the file encoding:

    + +
        <plugin>
    +        <groupId>org.apache.maven.plugins</groupId>
    +        <artifactId>maven-pmd-plugin</artifactId>
    +        <version>3.13.0</version> <!-- or use version from pluginManagement -->
    +        <configuration>
    +            <linkXRef>true</linkXRef>
    +            <sourceEncoding>ISO-8859-1</sourceEncoding>
    +            <minimumTokens>30</minimumTokens>
    +            <targetJdk>1.4</targetJdk>
    +        </configuration>
    +    </plugin>
    +
    + +

    Upgrading the PMD version at runtime

    + +

    The Maven PMD plugin comes with a specific PMD version, which is documented on the +plugin project page.

    + +

    Given that the newer PMD version is compatible, you can override the PMD version, that the +Maven plugin will use and benefit from the latest bugfixes and enhancements:

    + +
    <project>
    +    <properties>
    +        <pmdVersion>...choose your version...</pmdVersion>
    +    </properties>
    +...
    +    <build>
    +        <pluginManagement>
    +            <plugins>
    +                <plugin>
    +                    <groupId>org.apache.maven.plugins</groupId>
    +                    <artifactId>maven-pmd-plugin</artifactId>
    +                    <version>3.13.0</version>
    +                    <dependencies>
    +                        <dependency>
    +                            <groupId>net.sourceforge.pmd</groupId>
    +                            <artifactId>pmd-core</artifactId>
    +                            <version>${pmdVersion}</version>
    +                        </dependency>
    +                        <dependency>
    +                            <groupId>net.sourceforge.pmd</groupId>
    +                            <artifactId>pmd-java</artifactId>
    +                            <version>${pmdVersion}</version>
    +                        </dependency>
    +                        <dependency>
    +                            <groupId>net.sourceforge.pmd</groupId>
    +                            <artifactId>pmd-javascript</artifactId>
    +                            <version>${pmdVersion}</version>
    +                        </dependency>
    +                        <dependency>
    +                            <groupId>net.sourceforge.pmd</groupId>
    +                            <artifactId>pmd-jsp</artifactId>
    +                            <version>${pmdVersion}</version>
    +                        </dependency>
    +                    </dependencies>
    +                </plugin>
    +            </plugins>
    +        </pluginManagement>
    +    </build>
    +...
    +</project>
    +
    + +

    Reference

    + +

    For more information, please see the well documented PMD plugin project page here: +http://maven.apache.org/plugins/maven-pmd-plugin/index.html. +Also, the bug tracker for this plugin is here.

    + +

    Maven 1

    + + + +

    This section is about the maven 1 PMD plugin.

    + +

    Running the pmd plugin

    + +

    Generating a project report

    + +

    To include the PMD report in the project reports section add the following line under +the reports element in your project.xml:

    + +
    <report>maven-pmd-plugin</report>
    +
    + +

    This will add an entry to the ‘project reports’ section with the PMD report.

    + +

    Executing PMD manually

    + +

    To run PMD on a Maven project without adding it as a report, simply run

    + +
    maven pmd xdoc
    +
    + +

    The PMD plugin writes the report in XML which will then be formatted into more readable HTML.

    + +

    Customization

    + +

    Changing rulesets

    + +

    To specify a set of official, built-in rulesets to be used set them in the property +maven.pmd.rulesets. You can include this setting in your project.properties file.

    + +

    A clean strategy for customizing which rules to use for a project is to write a ruleset file. +In this file you can define which rules to use, add custom rules, and +customizing which rules to include/exclude from official rulesets. More information on +writing a ruleset can be found here.

    + +

    Add to the root of your Maven project a pmd.xml file which contains the ruleset mentioned in +the previous paragraph. Add the following property to your project now:

    + +
    maven.pmd.rulesetfiles = ${basedir}/pmd.xml
    +
    + +

    Reference

    + +

    See the PMD plugin project page here: +http://maven.apache.org/maven-1.x/plugins/pmd/

    + + +
    + + Tags: + + + + userdocs + + + + tools + + + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/report-examples/pmd-report-html.html b/report-examples/pmd-report-html.html new file mode 100644 index 0000000000..2c1c41342d --- /dev/null +++ b/report-examples/pmd-report-html.html @@ -0,0 +1,67 @@ +PMD +

    PMD report

    Problems found

    + + + + + + + + + + + + + +
    #FileLineProblem
    1pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java124Logger calls should be surrounded by log level guards.
    2pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java58This for loop can be replaced by a foreach loop

    Processing errors

    + + + + + +
    FileProblem
    pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    net.sourceforge.pmd.PMDException: Error while parsing pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    +    at java.base/java.lang.Thread.run(Thread.java:832)
    +Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "-" "- "" at line 6, column 30.
    +Was expecting one of:
    +    "extends" ...
    +    "implements" ...
    +    "{" ...
    +    "<" ...
    +    
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:12713)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:12597)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1554)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:732)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:639)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:373)
    +    at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
    +    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
    +    ... 10 more
    +

    Suppressed warnings

    + + + + + + + + +
    FileLineRuleNOPMD or AnnotationReason
    pmd-core/src/main/java/net/sourceforge/pmd/PMD.java505CloseResourceAnnotation

    Configuration errors

    + + + + + +
    RuleProblem
    LoosePackageCouplingNo packages or classes specified
    \ No newline at end of file diff --git a/report-examples/pmd-report-json.json b/report-examples/pmd-report-json.json new file mode 100644 index 0000000000..fe1f3ce473 --- /dev/null +++ b/report-examples/pmd-report-json.json @@ -0,0 +1,39 @@ +{ + "formatVersion": 0, + "pmdVersion": "6.23.0-SNAPSHOT", + "timestamp": "2020-04-05T20:13:49.698+02:00", + "files": [ + { + "filename": "/home/me/pmd/src/main/java/net/sourceforge/pmd/PMDVersion.java", + "violations": [ + { + "beginline": 16, + "begincolumn": 14, + "endline": 79, + "endcolumn": 1, + "description": "The utility class name \u0027PMDVersion\u0027 doesn\u0027t match \u0027[A-Z][a-zA-Z0-9]+(Utils?|Helper)\u0027", + "rule": "ClassNamingConventions", + "ruleset": "Code Style", + "priority": 1, + "externalInfoUrl": "https://pmd.github.io/pmd/pmd_rules_java_codestyle.html#classnamingconventions" + } + ] + }, + { + "filename": "/home/me/pmd/src/main/java/net/sourceforge/pmd/RuleContext.java", + "violations": [ + { + "beginline": 124, + "begincolumn": 9, + "endline": 125, + "endcolumn": 111, + "description": "Logger calls should be surrounded by log level guards.", + "rule": "GuardLogStatement", + "ruleset": "Best Practices", + "priority": 2, + "externalInfoUrl": "https://pmd.github.io/pmd/pmd_rules_java_bestpractices.html#guardlogstatement" + } + ] + } + ] +} diff --git a/report-examples/pmd-report-pmd-nicerhtml.html b/report-examples/pmd-report-pmd-nicerhtml.html new file mode 100644 index 0000000000..702d8b1e8f --- /dev/null +++ b/report-examples/pmd-report-pmd-nicerhtml.html @@ -0,0 +1,223 @@ + + + + + PMD 6.22.0 Report + + + + + + + + +
    + +

    PMD 6.22.0 Report. Generated on 2020-04-11 - 19:23:45

    +
    +
    +

    Summary

    + + + + + + + + + + + + + + + + + + + +
    FilesTotal +
    Priority 1
    +
    +
    Priority 2
    +
    +
    Priority 3
    +
    +
    Priority 4
    +
    +
    Priority 5
    +
    2201100
    +
    +

    Rules

    + + + + + + + + + + + + + + + + +
    RuleViolationsSeverity
    + [Best Practices] GuardLogStatement1 +
    2
    +
    + [Best Practices] ForLoopCanBeForeach1 +
    3
    +
    +
    +

    Files

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    File +
    5
    +
    +
    4
    +
    +
    3
    +
    +
    2
    +
    +
    1
    +
    + /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java + 00010
    + /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java + 00100
    +
    +
    +

    File /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java

    + + + + + + + + + + + +
    ViolationError DescriptionLine
    +
    2
    +
    + [Best Practices.GuardLogStatement] + - + +Logger calls should be surrounded by log level guards. + + 124 - 125
    +
    Back to top + +

    File /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java

    + + + + + + + + + + + +
    ViolationError DescriptionLine
    +
    3
    +
    + [Best Practices.ForLoopCanBeForeach] + - + +This for loop can be replaced by a foreach loop + + 58 - 62
    +
    Back to top +
    + + \ No newline at end of file diff --git a/report-examples/pmd-report-summaryhtml.html b/report-examples/pmd-report-summaryhtml.html new file mode 100644 index 0000000000..92dc3e1f72 --- /dev/null +++ b/report-examples/pmd-report-summaryhtml.html @@ -0,0 +1,74 @@ +PMD +

    Summary

    + + + + +
    Rule nameNumber of violations
    GuardLogStatement1
    ForLoopCanBeForeach1
    +

    Detail

    +

    PMD report

    Problems found

    + + + + + + + + + + + + + +
    #FileLineProblem
    1pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java124Logger calls should be surrounded by log level guards.
    2pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java58This for loop can be replaced by a foreach loop

    Processing errors

    + + + + + +
    FileProblem
    pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    net.sourceforge.pmd.PMDException: Error while parsing pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:1)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    +    at java.base/java.lang.Thread.run(Thread.java:834)
    +Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "-" "- "" at line 6, column 30.
    +Was expecting one of:
    +    "extends" ...
    +    "implements" ...
    +    "{" ...
    +    "<" ...
    +    
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:12731)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:12615)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1574)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:779)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:686)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:420)
    +    at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
    +    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
    +    ... 10 more
    +

    Suppressed warnings

    + + + + + + + + +
    FileLineRuleNOPMD or AnnotationReason
    pmd-core/src/main/java/net/sourceforge/pmd/PMD.java505CloseResourceAnnotation

    Configuration errors

    + + + + + +
    RuleProblem
    LoosePackageCouplingNo packages or classes specified
    \ No newline at end of file diff --git a/report-examples/pmd-report-vbhtml.html b/report-examples/pmd-report-vbhtml.html new file mode 100644 index 0000000000..f6ce69c610 --- /dev/null +++ b/report-examples/pmd-report-vbhtml.html @@ -0,0 +1,42 @@ +PMD
    + +
     /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java
    124   Logger calls should be surrounded by log level guards.
    + +
     /home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java
    58   This for loop can be replaced by a foreach loop

     Problems found
    /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    net.sourceforge.pmd.PMDException: Error while parsing /home/pmd/source/pmd-core/src/test/resources/net/sourceforge/pmd/cpd/files/file_with_ISO-8859-1_encoding.java
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:110)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:89)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
    +    at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    +    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    +    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    +    at java.base/java.lang.Thread.run(Thread.java:832)
    +Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "-" "- "" at line 6, column 30.
    +Was expecting one of:
    +    "extends" ...
    +    "implements" ...
    +    "{" ...
    +    "<" ...
    +    
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:12713)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:12597)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1554)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:732)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:639)
    +    at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:373)
    +    at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
    +    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:121)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:185)
    +    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:107)
    +    ... 10 more
    +
     Configuration problems found
    LoosePackageCouplingNo packages or classes specified
    diff --git a/report-examples/pmd-report-yahtml/Benchmarker.html b/report-examples/pmd-report-yahtml/Benchmarker.html new file mode 100644 index 0000000000..2e0da807d1 --- /dev/null +++ b/report-examples/pmd-report-yahtml/Benchmarker.html @@ -0,0 +1,15 @@ + + + + + PMD - Benchmarker + + +

    Class View

    +

    Class: Benchmarker

    + + + +
    MethodViolation
    findBooleanSwitch
    Rule:ForLoopCanBeForeach
    Description:This for loop can be replaced by a foreach loop
    Line:58 and 62
    + + diff --git a/report-examples/pmd-report-yahtml/RuleContext.html b/report-examples/pmd-report-yahtml/RuleContext.html new file mode 100644 index 0000000000..1f401103f4 --- /dev/null +++ b/report-examples/pmd-report-yahtml/RuleContext.html @@ -0,0 +1,15 @@ + + + + + PMD - RuleContext + + +

    Class View

    +

    Class: RuleContext

    + + + +
    MethodViolation
    setSourceCodeFilename
    Rule:GuardLogStatement
    Description:Logger calls should be surrounded by log level guards.
    Line:124 and 125
    + + diff --git a/report-examples/pmd-report-yahtml/index.html b/report-examples/pmd-report-yahtml/index.html new file mode 100644 index 0000000000..c8a696b998 --- /dev/null +++ b/report-examples/pmd-report-yahtml/index.html @@ -0,0 +1,20 @@ + + + + + PMD + + +

    Package View

    + + + + + + + + + +
    PackageClass#
    Aggregate - 2
    net - 2
    net.sourceforge - 2
    net.sourceforge.pmd - 2
    net.sourceforge.pmd RuleContext 1
    net.sourceforge.pmd.benchmark - 1
    net.sourceforge.pmd.benchmark Benchmarker 1
    + + diff --git a/search.json b/search.json new file mode 100644 index 0000000000..30ecd25d15 --- /dev/null +++ b/search.json @@ -0,0 +1,5838 @@ +[ + + + + + + +{ +"title": "How to add a new CPD language", +"tags": "devdocsextending", +"keywords": "", +"url": "pmd_devdocs_major_adding_new_cpd_language.html", +"summary": "How to add a new CPD language" +} + + + +, + + + + + +{ +"title": "Adding PMD support for a new language", +"tags": "devdocsextending", +"keywords": "", +"url": "pmd_devdocs_major_adding_new_language.html", +"summary": "How to add a new language to PMD." +} + + + +, + + + + + +{ +"title": "Adding support for metrics to a language", +"tags": "devdocsextendingmetrics", +"keywords": "", +"url": "pmd_devdocs_major_adding_new_metrics_framework.html", +"summary": "PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. Most of the functionality of this framework is abstracted in such a way that any PMD supported language can implement such a framework without too much trouble. Here's how." +} + + + +, + + + + + +{ +"title": "Ant Task Usage", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools_ant.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Apex Rules", +"tags": "rule_referencesapex", +"keywords": "", +"url": "pmd_rules_apex.html", +"summary": "Index of all built-in rules available for Apex" +} + + + +, + + + + + +{ +"title": "Index of Apex code metrics", +"tags": "extendingmetrics", +"keywords": "", +"url": "pmd_apex_metrics_index.html", +"summary": "Index of the code metrics available out of the box to Apex rule developers." +} + + + +, + + + + + +{ +"title": "Creating XML dump of the AST", +"tags": "devdocsexperimental", +"keywords": "", +"url": "pmd_devdocs_experimental_ast_dump.html", +"summary": "Creating a XML representation of the AST allows to analyze the AST with other tools." +} + + + +, + + + + + +{ +"title": "Best Practices", +"tags": "userdocs", +"keywords": "", +"url": "pmd_userdocs_best_practices.html", +"summary": "" +} + + + +, + + + + + + + +{ +"title": "Best Practices (Java Server Pages, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_jsp_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "DontNestJsfInJstlIteration (Java Server Pages, Best Practices)", +"tags": "", +"keywords": "DontNestJsfInJstlIteration", +"url": "pmd_rules_jsp_bestpractices.html#dontnestjsfinjstliteration", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "NoClassAttribute (Java Server Pages, Best Practices)", +"tags": "", +"keywords": "NoClassAttribute", +"url": "pmd_rules_jsp_bestpractices.html#noclassattribute", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "NoHtmlComments (Java Server Pages, Best Practices)", +"tags": "", +"keywords": "NoHtmlComments", +"url": "pmd_rules_jsp_bestpractices.html#nohtmlcomments", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "NoJspForward (Java Server Pages, Best Practices)", +"tags": "", +"keywords": "NoJspForward", +"url": "pmd_rules_jsp_bestpractices.html#nojspforward", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (Ecmascript, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_ecmascript_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidWithStatement (Ecmascript, Best Practices)", +"tags": "", +"keywords": "AvoidWithStatement", +"url": "pmd_rules_ecmascript_bestpractices.html#avoidwithstatement", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ConsistentReturn (Ecmascript, Best Practices)", +"tags": "", +"keywords": "ConsistentReturn", +"url": "pmd_rules_ecmascript_bestpractices.html#consistentreturn", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "GlobalVariable (Ecmascript, Best Practices)", +"tags": "", +"keywords": "GlobalVariable", +"url": "pmd_rules_ecmascript_bestpractices.html#globalvariable", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ScopeForInVariable (Ecmascript, Best Practices)", +"tags": "", +"keywords": "ScopeForInVariable", +"url": "pmd_rules_ecmascript_bestpractices.html#scopeforinvariable", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseBaseWithParseInt (Ecmascript, Best Practices)", +"tags": "", +"keywords": "UseBaseWithParseInt", +"url": "pmd_rules_ecmascript_bestpractices.html#usebasewithparseint", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (Apex, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_apex_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ApexAssertionsShouldIncludeMessage (Apex, Best Practices)", +"tags": "", +"keywords": "ApexAssertionsShouldIncludeMessage", +"url": "pmd_rules_apex_bestpractices.html#apexassertionsshouldincludemessage", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ApexUnitTestClassShouldHaveAsserts (Apex, Best Practices)", +"tags": "", +"keywords": "ApexUnitTestClassShouldHaveAsserts", +"url": "pmd_rules_apex_bestpractices.html#apexunittestclassshouldhaveasserts", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ApexUnitTestMethodShouldHaveIsTestAnnotation (Apex, Best Practices)", +"tags": "", +"keywords": "ApexUnitTestMethodShouldHaveIsTestAnnotation", +"url": "pmd_rules_apex_bestpractices.html#apexunittestmethodshouldhaveistestannotation", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ApexUnitTestShouldNotUseSeeAllDataTrue (Apex, Best Practices)", +"tags": "", +"keywords": "ApexUnitTestShouldNotUseSeeAllDataTrue", +"url": "pmd_rules_apex_bestpractices.html#apexunittestshouldnotuseseealldatatrue", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidGlobalModifier (Apex, Best Practices)", +"tags": "", +"keywords": "AvoidGlobalModifier", +"url": "pmd_rules_apex_bestpractices.html#avoidglobalmodifier", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidLogicInTrigger (Apex, Best Practices)", +"tags": "", +"keywords": "AvoidLogicInTrigger", +"url": "pmd_rules_apex_bestpractices.html#avoidlogicintrigger", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "DebugsShouldUseLoggingLevel (Apex, Best Practices)", +"tags": "", +"keywords": "DebugsShouldUseLoggingLevel", +"url": "pmd_rules_apex_bestpractices.html#debugsshoulduselogginglevel", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedLocalVariable (Apex, Best Practices)", +"tags": "", +"keywords": "UnusedLocalVariable", +"url": "pmd_rules_apex_bestpractices.html#unusedlocalvariable", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (VM, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_vm_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidReassigningParameters (VM, Best Practices)", +"tags": "", +"keywords": "AvoidReassigningParameters", +"url": "pmd_rules_vm_bestpractices.html#avoidreassigningparameters", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedMacroParameter (VM, Best Practices)", +"tags": "", +"keywords": "UnusedMacroParameter", +"url": "pmd_rules_vm_bestpractices.html#unusedmacroparameter", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (PLSQL, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_plsql_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "TomKytesDespair (PLSQL, Best Practices)", +"tags": "", +"keywords": "TomKytesDespair", +"url": "pmd_rules_plsql_bestpractices.html#tomkytesdespair", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (Modelica, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_modelica_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ClassStartNameEqualsEndName (Modelica, Best Practices)", +"tags": "", +"keywords": "ClassStartNameEqualsEndName", +"url": "pmd_rules_modelica_bestpractices.html#classstartnameequalsendname", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ConnectUsingNonConnector (Modelica, Best Practices)", +"tags": "", +"keywords": "ConnectUsingNonConnector", +"url": "pmd_rules_modelica_bestpractices.html#connectusingnonconnector", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AmbiguousResolution (Modelica, Best Practices)", +"tags": "", +"keywords": "AmbiguousResolution", +"url": "pmd_rules_modelica_bestpractices.html#ambiguousresolution", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + + + +{ +"title": "Best Practices (Java, Best Practices)", +"tags": "", +"keywords": "Best Practices", +"url": "pmd_rules_java_bestpractices.html#best practices", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AbstractClassWithoutAbstractMethod (Java, Best Practices)", +"tags": "", +"keywords": "AbstractClassWithoutAbstractMethod", +"url": "pmd_rules_java_bestpractices.html#abstractclasswithoutabstractmethod", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AccessorClassGeneration (Java, Best Practices)", +"tags": "", +"keywords": "AccessorClassGeneration", +"url": "pmd_rules_java_bestpractices.html#accessorclassgeneration", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AccessorMethodGeneration (Java, Best Practices)", +"tags": "", +"keywords": "AccessorMethodGeneration", +"url": "pmd_rules_java_bestpractices.html#accessormethodgeneration", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ArrayIsStoredDirectly (Java, Best Practices)", +"tags": "", +"keywords": "ArrayIsStoredDirectly", +"url": "pmd_rules_java_bestpractices.html#arrayisstoreddirectly", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidMessageDigestField (Java, Best Practices)", +"tags": "", +"keywords": "AvoidMessageDigestField", +"url": "pmd_rules_java_bestpractices.html#avoidmessagedigestfield", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidPrintStackTrace (Java, Best Practices)", +"tags": "", +"keywords": "AvoidPrintStackTrace", +"url": "pmd_rules_java_bestpractices.html#avoidprintstacktrace", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidReassigningCatchVariables (Java, Best Practices)", +"tags": "", +"keywords": "AvoidReassigningCatchVariables", +"url": "pmd_rules_java_bestpractices.html#avoidreassigningcatchvariables", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidReassigningLoopVariables (Java, Best Practices)", +"tags": "", +"keywords": "AvoidReassigningLoopVariables", +"url": "pmd_rules_java_bestpractices.html#avoidreassigningloopvariables", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidReassigningParameters (Java, Best Practices)", +"tags": "", +"keywords": "AvoidReassigningParameters", +"url": "pmd_rules_java_bestpractices.html#avoidreassigningparameters", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidStringBufferField (Java, Best Practices)", +"tags": "", +"keywords": "AvoidStringBufferField", +"url": "pmd_rules_java_bestpractices.html#avoidstringbufferfield", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "AvoidUsingHardCodedIP (Java, Best Practices)", +"tags": "", +"keywords": "AvoidUsingHardCodedIP", +"url": "pmd_rules_java_bestpractices.html#avoidusinghardcodedip", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "CheckResultSet (Java, Best Practices)", +"tags": "", +"keywords": "CheckResultSet", +"url": "pmd_rules_java_bestpractices.html#checkresultset", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ConstantsInInterface (Java, Best Practices)", +"tags": "", +"keywords": "ConstantsInInterface", +"url": "pmd_rules_java_bestpractices.html#constantsininterface", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "DefaultLabelNotLastInSwitchStmt (Java, Best Practices)", +"tags": "", +"keywords": "DefaultLabelNotLastInSwitchStmt", +"url": "pmd_rules_java_bestpractices.html#defaultlabelnotlastinswitchstmt", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "DoubleBraceInitialization (Java, Best Practices)", +"tags": "", +"keywords": "DoubleBraceInitialization", +"url": "pmd_rules_java_bestpractices.html#doublebraceinitialization", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ForLoopCanBeForeach (Java, Best Practices)", +"tags": "", +"keywords": "ForLoopCanBeForeach", +"url": "pmd_rules_java_bestpractices.html#forloopcanbeforeach", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ForLoopVariableCount (Java, Best Practices)", +"tags": "", +"keywords": "ForLoopVariableCount", +"url": "pmd_rules_java_bestpractices.html#forloopvariablecount", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "GuardLogStatement (Java, Best Practices)", +"tags": "", +"keywords": "GuardLogStatement", +"url": "pmd_rules_java_bestpractices.html#guardlogstatement", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnit4SuitesShouldUseSuiteAnnotation (Java, Best Practices)", +"tags": "", +"keywords": "JUnit4SuitesShouldUseSuiteAnnotation", +"url": "pmd_rules_java_bestpractices.html#junit4suitesshouldusesuiteannotation", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnit4TestShouldUseAfterAnnotation (Java, Best Practices)", +"tags": "", +"keywords": "JUnit4TestShouldUseAfterAnnotation", +"url": "pmd_rules_java_bestpractices.html#junit4testshoulduseafterannotation", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnit4TestShouldUseBeforeAnnotation (Java, Best Practices)", +"tags": "", +"keywords": "JUnit4TestShouldUseBeforeAnnotation", +"url": "pmd_rules_java_bestpractices.html#junit4testshouldusebeforeannotation", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnit4TestShouldUseTestAnnotation (Java, Best Practices)", +"tags": "", +"keywords": "JUnit4TestShouldUseTestAnnotation", +"url": "pmd_rules_java_bestpractices.html#junit4testshouldusetestannotation", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnitAssertionsShouldIncludeMessage (Java, Best Practices)", +"tags": "", +"keywords": "JUnitAssertionsShouldIncludeMessage", +"url": "pmd_rules_java_bestpractices.html#junitassertionsshouldincludemessage", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnitTestContainsTooManyAsserts (Java, Best Practices)", +"tags": "", +"keywords": "JUnitTestContainsTooManyAsserts", +"url": "pmd_rules_java_bestpractices.html#junittestcontainstoomanyasserts", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnitTestsShouldIncludeAssert (Java, Best Practices)", +"tags": "", +"keywords": "JUnitTestsShouldIncludeAssert", +"url": "pmd_rules_java_bestpractices.html#junittestsshouldincludeassert", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "JUnitUseExpected (Java, Best Practices)", +"tags": "", +"keywords": "JUnitUseExpected", +"url": "pmd_rules_java_bestpractices.html#junituseexpected", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "LiteralsFirstInComparisons (Java, Best Practices)", +"tags": "", +"keywords": "LiteralsFirstInComparisons", +"url": "pmd_rules_java_bestpractices.html#literalsfirstincomparisons", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "LooseCoupling (Java, Best Practices)", +"tags": "", +"keywords": "LooseCoupling", +"url": "pmd_rules_java_bestpractices.html#loosecoupling", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "MethodReturnsInternalArray (Java, Best Practices)", +"tags": "", +"keywords": "MethodReturnsInternalArray", +"url": "pmd_rules_java_bestpractices.html#methodreturnsinternalarray", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "MissingOverride (Java, Best Practices)", +"tags": "", +"keywords": "MissingOverride", +"url": "pmd_rules_java_bestpractices.html#missingoverride", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "OneDeclarationPerLine (Java, Best Practices)", +"tags": "", +"keywords": "OneDeclarationPerLine", +"url": "pmd_rules_java_bestpractices.html#onedeclarationperline", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "PositionLiteralsFirstInCaseInsensitiveComparisons (Java, Best Practices)", +"tags": "", +"keywords": "PositionLiteralsFirstInCaseInsensitiveComparisons", +"url": "pmd_rules_java_bestpractices.html#positionliteralsfirstincaseinsensitivecomparisons", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "PositionLiteralsFirstInComparisons (Java, Best Practices)", +"tags": "", +"keywords": "PositionLiteralsFirstInComparisons", +"url": "pmd_rules_java_bestpractices.html#positionliteralsfirstincomparisons", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "PreserveStackTrace (Java, Best Practices)", +"tags": "", +"keywords": "PreserveStackTrace", +"url": "pmd_rules_java_bestpractices.html#preservestacktrace", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ReplaceEnumerationWithIterator (Java, Best Practices)", +"tags": "", +"keywords": "ReplaceEnumerationWithIterator", +"url": "pmd_rules_java_bestpractices.html#replaceenumerationwithiterator", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ReplaceHashtableWithMap (Java, Best Practices)", +"tags": "", +"keywords": "ReplaceHashtableWithMap", +"url": "pmd_rules_java_bestpractices.html#replacehashtablewithmap", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "ReplaceVectorWithList (Java, Best Practices)", +"tags": "", +"keywords": "ReplaceVectorWithList", +"url": "pmd_rules_java_bestpractices.html#replacevectorwithlist", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "SwitchStmtsShouldHaveDefault (Java, Best Practices)", +"tags": "", +"keywords": "SwitchStmtsShouldHaveDefault", +"url": "pmd_rules_java_bestpractices.html#switchstmtsshouldhavedefault", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "SystemPrintln (Java, Best Practices)", +"tags": "", +"keywords": "SystemPrintln", +"url": "pmd_rules_java_bestpractices.html#systemprintln", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedAssignment (Java, Best Practices)", +"tags": "", +"keywords": "UnusedAssignment", +"url": "pmd_rules_java_bestpractices.html#unusedassignment", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedFormalParameter (Java, Best Practices)", +"tags": "", +"keywords": "UnusedFormalParameter", +"url": "pmd_rules_java_bestpractices.html#unusedformalparameter", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedImports (Java, Best Practices)", +"tags": "", +"keywords": "UnusedImports", +"url": "pmd_rules_java_bestpractices.html#unusedimports", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedLocalVariable (Java, Best Practices)", +"tags": "", +"keywords": "UnusedLocalVariable", +"url": "pmd_rules_java_bestpractices.html#unusedlocalvariable", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedPrivateField (Java, Best Practices)", +"tags": "", +"keywords": "UnusedPrivateField", +"url": "pmd_rules_java_bestpractices.html#unusedprivatefield", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UnusedPrivateMethod (Java, Best Practices)", +"tags": "", +"keywords": "UnusedPrivateMethod", +"url": "pmd_rules_java_bestpractices.html#unusedprivatemethod", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseAssertEqualsInsteadOfAssertTrue (Java, Best Practices)", +"tags": "", +"keywords": "UseAssertEqualsInsteadOfAssertTrue", +"url": "pmd_rules_java_bestpractices.html#useassertequalsinsteadofasserttrue", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseAssertNullInsteadOfAssertTrue (Java, Best Practices)", +"tags": "", +"keywords": "UseAssertNullInsteadOfAssertTrue", +"url": "pmd_rules_java_bestpractices.html#useassertnullinsteadofasserttrue", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseAssertSameInsteadOfAssertTrue (Java, Best Practices)", +"tags": "", +"keywords": "UseAssertSameInsteadOfAssertTrue", +"url": "pmd_rules_java_bestpractices.html#useassertsameinsteadofasserttrue", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseAssertTrueInsteadOfAssertEquals (Java, Best Practices)", +"tags": "", +"keywords": "UseAssertTrueInsteadOfAssertEquals", +"url": "pmd_rules_java_bestpractices.html#useasserttrueinsteadofassertequals", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseCollectionIsEmpty (Java, Best Practices)", +"tags": "", +"keywords": "UseCollectionIsEmpty", +"url": "pmd_rules_java_bestpractices.html#usecollectionisempty", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseTryWithResources (Java, Best Practices)", +"tags": "", +"keywords": "UseTryWithResources", +"url": "pmd_rules_java_bestpractices.html#usetrywithresources", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "UseVarargs (Java, Best Practices)", +"tags": "", +"keywords": "UseVarargs", +"url": "pmd_rules_java_bestpractices.html#usevarargs", +"summary": "Rules which enforce generally accepted best practices." +} +, + +{ +"title": "WhileLoopWithLiteralBoolean (Java, Best Practices)", +"tags": "", +"keywords": "WhileLoopWithLiteralBoolean", +"url": "pmd_rules_java_bestpractices.html#whileloopwithliteralboolean", +"summary": "Rules which enforce generally accepted best practices." +} + + + + + +, + + + + + +{ +"title": "Building PMD from source", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_building.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Continuous Integrations plugins", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools_ci.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "PMD CLI reference", +"tags": "userdocs", +"keywords": "commandlineoptionshelpformatsrenderers", +"url": "pmd_userdocs_cli_reference.html", +"summary": "Full reference for PMD's command-line interface, including options, output formats and supported languages" +} + + + +, + + + + + + + +{ +"title": "Code Style (Java Server Pages, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_jsp_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "DuplicateJspImports (Java Server Pages, Code Style)", +"tags": "", +"keywords": "DuplicateJspImports", +"url": "pmd_rules_jsp_codestyle.html#duplicatejspimports", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + + + +{ +"title": "Code Style (Ecmascript, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_ecmascript_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AssignmentInOperand (Ecmascript, Code Style)", +"tags": "", +"keywords": "AssignmentInOperand", +"url": "pmd_rules_ecmascript_codestyle.html#assignmentinoperand", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ForLoopsMustUseBraces (Ecmascript, Code Style)", +"tags": "", +"keywords": "ForLoopsMustUseBraces", +"url": "pmd_rules_ecmascript_codestyle.html#forloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfElseStmtsMustUseBraces (Ecmascript, Code Style)", +"tags": "", +"keywords": "IfElseStmtsMustUseBraces", +"url": "pmd_rules_ecmascript_codestyle.html#ifelsestmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfStmtsMustUseBraces (Ecmascript, Code Style)", +"tags": "", +"keywords": "IfStmtsMustUseBraces", +"url": "pmd_rules_ecmascript_codestyle.html#ifstmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "NoElseReturn (Ecmascript, Code Style)", +"tags": "", +"keywords": "NoElseReturn", +"url": "pmd_rules_ecmascript_codestyle.html#noelsereturn", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryBlock (Ecmascript, Code Style)", +"tags": "", +"keywords": "UnnecessaryBlock", +"url": "pmd_rules_ecmascript_codestyle.html#unnecessaryblock", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryParentheses (Ecmascript, Code Style)", +"tags": "", +"keywords": "UnnecessaryParentheses", +"url": "pmd_rules_ecmascript_codestyle.html#unnecessaryparentheses", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnreachableCode (Ecmascript, Code Style)", +"tags": "", +"keywords": "UnreachableCode", +"url": "pmd_rules_ecmascript_codestyle.html#unreachablecode", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "WhileLoopsMustUseBraces (Ecmascript, Code Style)", +"tags": "", +"keywords": "WhileLoopsMustUseBraces", +"url": "pmd_rules_ecmascript_codestyle.html#whileloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + + + +{ +"title": "Code Style (Apex, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_apex_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ClassNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "ClassNamingConventions", +"url": "pmd_rules_apex_codestyle.html#classnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfElseStmtsMustUseBraces (Apex, Code Style)", +"tags": "", +"keywords": "IfElseStmtsMustUseBraces", +"url": "pmd_rules_apex_codestyle.html#ifelsestmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfStmtsMustUseBraces (Apex, Code Style)", +"tags": "", +"keywords": "IfStmtsMustUseBraces", +"url": "pmd_rules_apex_codestyle.html#ifstmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FieldDeclarationsShouldBeAtStart (Apex, Code Style)", +"tags": "", +"keywords": "FieldDeclarationsShouldBeAtStart", +"url": "pmd_rules_apex_codestyle.html#fielddeclarationsshouldbeatstart", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FieldNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "FieldNamingConventions", +"url": "pmd_rules_apex_codestyle.html#fieldnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ForLoopsMustUseBraces (Apex, Code Style)", +"tags": "", +"keywords": "ForLoopsMustUseBraces", +"url": "pmd_rules_apex_codestyle.html#forloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FormalParameterNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "FormalParameterNamingConventions", +"url": "pmd_rules_apex_codestyle.html#formalparameternamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LocalVariableNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "LocalVariableNamingConventions", +"url": "pmd_rules_apex_codestyle.html#localvariablenamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MethodNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "MethodNamingConventions", +"url": "pmd_rules_apex_codestyle.html#methodnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "OneDeclarationPerLine (Apex, Code Style)", +"tags": "", +"keywords": "OneDeclarationPerLine", +"url": "pmd_rules_apex_codestyle.html#onedeclarationperline", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "PropertyNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "PropertyNamingConventions", +"url": "pmd_rules_apex_codestyle.html#propertynamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "VariableNamingConventions (Apex, Code Style)", +"tags": "", +"keywords": "VariableNamingConventions", +"url": "pmd_rules_apex_codestyle.html#variablenamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "WhileLoopsMustUseBraces (Apex, Code Style)", +"tags": "", +"keywords": "WhileLoopsMustUseBraces", +"url": "pmd_rules_apex_codestyle.html#whileloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + + + +{ +"title": "Code Style (PLSQL, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_plsql_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidTabCharacter (PLSQL, Code Style)", +"tags": "", +"keywords": "AvoidTabCharacter", +"url": "pmd_rules_plsql_codestyle.html#avoidtabcharacter", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "CodeFormat (PLSQL, Code Style)", +"tags": "", +"keywords": "CodeFormat", +"url": "pmd_rules_plsql_codestyle.html#codeformat", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MisplacedPragma (PLSQL, Code Style)", +"tags": "", +"keywords": "MisplacedPragma", +"url": "pmd_rules_plsql_codestyle.html#misplacedpragma", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ForLoopNaming (PLSQL, Code Style)", +"tags": "", +"keywords": "ForLoopNaming", +"url": "pmd_rules_plsql_codestyle.html#forloopnaming", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LineLength (PLSQL, Code Style)", +"tags": "", +"keywords": "LineLength", +"url": "pmd_rules_plsql_codestyle.html#linelength", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + + + +{ +"title": "Code Style (Java, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_java_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AbstractNaming (Java, Code Style)", +"tags": "", +"keywords": "AbstractNaming", +"url": "pmd_rules_java_codestyle.html#abstractnaming", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AtLeastOneConstructor (Java, Code Style)", +"tags": "", +"keywords": "AtLeastOneConstructor", +"url": "pmd_rules_java_codestyle.html#atleastoneconstructor", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidDollarSigns (Java, Code Style)", +"tags": "", +"keywords": "AvoidDollarSigns", +"url": "pmd_rules_java_codestyle.html#avoiddollarsigns", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidFinalLocalVariable (Java, Code Style)", +"tags": "", +"keywords": "AvoidFinalLocalVariable", +"url": "pmd_rules_java_codestyle.html#avoidfinallocalvariable", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidPrefixingMethodParameters (Java, Code Style)", +"tags": "", +"keywords": "AvoidPrefixingMethodParameters", +"url": "pmd_rules_java_codestyle.html#avoidprefixingmethodparameters", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidProtectedFieldInFinalClass (Java, Code Style)", +"tags": "", +"keywords": "AvoidProtectedFieldInFinalClass", +"url": "pmd_rules_java_codestyle.html#avoidprotectedfieldinfinalclass", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidProtectedMethodInFinalClassNotExtending (Java, Code Style)", +"tags": "", +"keywords": "AvoidProtectedMethodInFinalClassNotExtending", +"url": "pmd_rules_java_codestyle.html#avoidprotectedmethodinfinalclassnotextending", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "AvoidUsingNativeCode (Java, Code Style)", +"tags": "", +"keywords": "AvoidUsingNativeCode", +"url": "pmd_rules_java_codestyle.html#avoidusingnativecode", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "BooleanGetMethodName (Java, Code Style)", +"tags": "", +"keywords": "BooleanGetMethodName", +"url": "pmd_rules_java_codestyle.html#booleangetmethodname", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "CallSuperInConstructor (Java, Code Style)", +"tags": "", +"keywords": "CallSuperInConstructor", +"url": "pmd_rules_java_codestyle.html#callsuperinconstructor", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ClassNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "ClassNamingConventions", +"url": "pmd_rules_java_codestyle.html#classnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "CommentDefaultAccessModifier (Java, Code Style)", +"tags": "", +"keywords": "CommentDefaultAccessModifier", +"url": "pmd_rules_java_codestyle.html#commentdefaultaccessmodifier", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ConfusingTernary (Java, Code Style)", +"tags": "", +"keywords": "ConfusingTernary", +"url": "pmd_rules_java_codestyle.html#confusingternary", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ControlStatementBraces (Java, Code Style)", +"tags": "", +"keywords": "ControlStatementBraces", +"url": "pmd_rules_java_codestyle.html#controlstatementbraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "DefaultPackage (Java, Code Style)", +"tags": "", +"keywords": "DefaultPackage", +"url": "pmd_rules_java_codestyle.html#defaultpackage", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "DontImportJavaLang (Java, Code Style)", +"tags": "", +"keywords": "DontImportJavaLang", +"url": "pmd_rules_java_codestyle.html#dontimportjavalang", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "DuplicateImports (Java, Code Style)", +"tags": "", +"keywords": "DuplicateImports", +"url": "pmd_rules_java_codestyle.html#duplicateimports", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "EmptyMethodInAbstractClassShouldBeAbstract (Java, Code Style)", +"tags": "", +"keywords": "EmptyMethodInAbstractClassShouldBeAbstract", +"url": "pmd_rules_java_codestyle.html#emptymethodinabstractclassshouldbeabstract", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ExtendsObject (Java, Code Style)", +"tags": "", +"keywords": "ExtendsObject", +"url": "pmd_rules_java_codestyle.html#extendsobject", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FieldDeclarationsShouldBeAtStartOfClass (Java, Code Style)", +"tags": "", +"keywords": "FieldDeclarationsShouldBeAtStartOfClass", +"url": "pmd_rules_java_codestyle.html#fielddeclarationsshouldbeatstartofclass", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FieldNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "FieldNamingConventions", +"url": "pmd_rules_java_codestyle.html#fieldnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ForLoopShouldBeWhileLoop (Java, Code Style)", +"tags": "", +"keywords": "ForLoopShouldBeWhileLoop", +"url": "pmd_rules_java_codestyle.html#forloopshouldbewhileloop", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ForLoopsMustUseBraces (Java, Code Style)", +"tags": "", +"keywords": "ForLoopsMustUseBraces", +"url": "pmd_rules_java_codestyle.html#forloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "FormalParameterNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "FormalParameterNamingConventions", +"url": "pmd_rules_java_codestyle.html#formalparameternamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "GenericsNaming (Java, Code Style)", +"tags": "", +"keywords": "GenericsNaming", +"url": "pmd_rules_java_codestyle.html#genericsnaming", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IdenticalCatchBranches (Java, Code Style)", +"tags": "", +"keywords": "IdenticalCatchBranches", +"url": "pmd_rules_java_codestyle.html#identicalcatchbranches", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfElseStmtsMustUseBraces (Java, Code Style)", +"tags": "", +"keywords": "IfElseStmtsMustUseBraces", +"url": "pmd_rules_java_codestyle.html#ifelsestmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "IfStmtsMustUseBraces (Java, Code Style)", +"tags": "", +"keywords": "IfStmtsMustUseBraces", +"url": "pmd_rules_java_codestyle.html#ifstmtsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LinguisticNaming (Java, Code Style)", +"tags": "", +"keywords": "LinguisticNaming", +"url": "pmd_rules_java_codestyle.html#linguisticnaming", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LocalHomeNamingConvention (Java, Code Style)", +"tags": "", +"keywords": "LocalHomeNamingConvention", +"url": "pmd_rules_java_codestyle.html#localhomenamingconvention", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LocalInterfaceSessionNamingConvention (Java, Code Style)", +"tags": "", +"keywords": "LocalInterfaceSessionNamingConvention", +"url": "pmd_rules_java_codestyle.html#localinterfacesessionnamingconvention", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LocalVariableCouldBeFinal (Java, Code Style)", +"tags": "", +"keywords": "LocalVariableCouldBeFinal", +"url": "pmd_rules_java_codestyle.html#localvariablecouldbefinal", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LocalVariableNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "LocalVariableNamingConventions", +"url": "pmd_rules_java_codestyle.html#localvariablenamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "LongVariable (Java, Code Style)", +"tags": "", +"keywords": "LongVariable", +"url": "pmd_rules_java_codestyle.html#longvariable", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MDBAndSessionBeanNamingConvention (Java, Code Style)", +"tags": "", +"keywords": "MDBAndSessionBeanNamingConvention", +"url": "pmd_rules_java_codestyle.html#mdbandsessionbeannamingconvention", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MethodArgumentCouldBeFinal (Java, Code Style)", +"tags": "", +"keywords": "MethodArgumentCouldBeFinal", +"url": "pmd_rules_java_codestyle.html#methodargumentcouldbefinal", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MethodNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "MethodNamingConventions", +"url": "pmd_rules_java_codestyle.html#methodnamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "MIsLeadingVariableName (Java, Code Style)", +"tags": "", +"keywords": "MIsLeadingVariableName", +"url": "pmd_rules_java_codestyle.html#misleadingvariablename", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "NoPackage (Java, Code Style)", +"tags": "", +"keywords": "NoPackage", +"url": "pmd_rules_java_codestyle.html#nopackage", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UseUnderscoresInNumericLiterals (Java, Code Style)", +"tags": "", +"keywords": "UseUnderscoresInNumericLiterals", +"url": "pmd_rules_java_codestyle.html#useunderscoresinnumericliterals", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "OnlyOneReturn (Java, Code Style)", +"tags": "", +"keywords": "OnlyOneReturn", +"url": "pmd_rules_java_codestyle.html#onlyonereturn", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "PackageCase (Java, Code Style)", +"tags": "", +"keywords": "PackageCase", +"url": "pmd_rules_java_codestyle.html#packagecase", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "PrematureDeclaration (Java, Code Style)", +"tags": "", +"keywords": "PrematureDeclaration", +"url": "pmd_rules_java_codestyle.html#prematuredeclaration", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "RemoteInterfaceNamingConvention (Java, Code Style)", +"tags": "", +"keywords": "RemoteInterfaceNamingConvention", +"url": "pmd_rules_java_codestyle.html#remoteinterfacenamingconvention", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "RemoteSessionInterfaceNamingConvention (Java, Code Style)", +"tags": "", +"keywords": "RemoteSessionInterfaceNamingConvention", +"url": "pmd_rules_java_codestyle.html#remotesessioninterfacenamingconvention", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ShortClassName (Java, Code Style)", +"tags": "", +"keywords": "ShortClassName", +"url": "pmd_rules_java_codestyle.html#shortclassname", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ShortMethodName (Java, Code Style)", +"tags": "", +"keywords": "ShortMethodName", +"url": "pmd_rules_java_codestyle.html#shortmethodname", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "ShortVariable (Java, Code Style)", +"tags": "", +"keywords": "ShortVariable", +"url": "pmd_rules_java_codestyle.html#shortvariable", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "SuspiciousConstantFieldName (Java, Code Style)", +"tags": "", +"keywords": "SuspiciousConstantFieldName", +"url": "pmd_rules_java_codestyle.html#suspiciousconstantfieldname", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "TooManyStaticImports (Java, Code Style)", +"tags": "", +"keywords": "TooManyStaticImports", +"url": "pmd_rules_java_codestyle.html#toomanystaticimports", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryAnnotationValueElement (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryAnnotationValueElement", +"url": "pmd_rules_java_codestyle.html#unnecessaryannotationvalueelement", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryCast (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryCast", +"url": "pmd_rules_java_codestyle.html#unnecessarycast", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryConstructor (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryConstructor", +"url": "pmd_rules_java_codestyle.html#unnecessaryconstructor", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryFullyQualifiedName (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryFullyQualifiedName", +"url": "pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryLocalBeforeReturn (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryLocalBeforeReturn", +"url": "pmd_rules_java_codestyle.html#unnecessarylocalbeforereturn", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryModifier (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryModifier", +"url": "pmd_rules_java_codestyle.html#unnecessarymodifier", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UnnecessaryReturn (Java, Code Style)", +"tags": "", +"keywords": "UnnecessaryReturn", +"url": "pmd_rules_java_codestyle.html#unnecessaryreturn", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UseDiamondOperator (Java, Code Style)", +"tags": "", +"keywords": "UseDiamondOperator", +"url": "pmd_rules_java_codestyle.html#usediamondoperator", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UselessParentheses (Java, Code Style)", +"tags": "", +"keywords": "UselessParentheses", +"url": "pmd_rules_java_codestyle.html#uselessparentheses", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UselessQualifiedThis (Java, Code Style)", +"tags": "", +"keywords": "UselessQualifiedThis", +"url": "pmd_rules_java_codestyle.html#uselessqualifiedthis", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UseShortArrayInitializer (Java, Code Style)", +"tags": "", +"keywords": "UseShortArrayInitializer", +"url": "pmd_rules_java_codestyle.html#useshortarrayinitializer", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "VariableNamingConventions (Java, Code Style)", +"tags": "", +"keywords": "VariableNamingConventions", +"url": "pmd_rules_java_codestyle.html#variablenamingconventions", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "WhileLoopsMustUseBraces (Java, Code Style)", +"tags": "", +"keywords": "WhileLoopsMustUseBraces", +"url": "pmd_rules_java_codestyle.html#whileloopsmustusebraces", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + + + +{ +"title": "Code Style (XSL, Code Style)", +"tags": "", +"keywords": "Code Style", +"url": "pmd_rules_xsl_codestyle.html#code style", +"summary": "Rules which enforce a specific coding style." +} +, + +{ +"title": "UseConcatOnce (XSL, Code Style)", +"tags": "", +"keywords": "UseConcatOnce", +"url": "pmd_rules_xsl_codestyle.html#useconcatonce", +"summary": "Rules which enforce a specific coding style." +} + + + + + +, + + + + + +{ +"title": "Configuring rules", +"tags": "userdocsgetting_started", +"keywords": "propertypropertiesmessagepriority", +"url": "pmd_userdocs_configuring_rules.html", +"summary": "Learn how to configure your rules directly from the ruleset XML." +} + + + +, + + + + + +{ +"title": "Finding duplicated code with CPD", +"tags": "cpduserdocs", +"keywords": "", +"url": "pmd_userdocs_cpd.html", +"summary": "Learn how to use CPD, the copy-paste detector shipped with PMD." +} + + + +, + + + + + +{ +"title": "Report formats for CPD", +"tags": "cpduserdocs", +"keywords": "formatsrenderers", +"url": "pmd_userdocs_cpd_report_formats.html", +"summary": "Overview of the built-in report formats for CPD" +} + + + +, + + + + + +{ +"title": "Credits", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_credits.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Defining rule properties", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_defining_properties.html", +"summary": "Learn how to define your own properties both for Java and XPath rules." +} + + + +, + + + + + + + +{ +"title": "Design (Java Server Pages, Design)", +"tags": "", +"keywords": "Design", +"url": "pmd_rules_jsp_design.html#design", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoInlineScript (Java Server Pages, Design)", +"tags": "", +"keywords": "NoInlineScript", +"url": "pmd_rules_jsp_design.html#noinlinescript", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoInlineStyleInformation (Java Server Pages, Design)", +"tags": "", +"keywords": "NoInlineStyleInformation", +"url": "pmd_rules_jsp_design.html#noinlinestyleinformation", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoLongScripts (Java Server Pages, Design)", +"tags": "", +"keywords": "NoLongScripts", +"url": "pmd_rules_jsp_design.html#nolongscripts", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoScriptlets (Java Server Pages, Design)", +"tags": "", +"keywords": "NoScriptlets", +"url": "pmd_rules_jsp_design.html#noscriptlets", +"summary": "Rules that help you discover design issues." +} + + + + + +, + + + + + + + +{ +"title": "Design (Apex, Design)", +"tags": "", +"keywords": "Design", +"url": "pmd_rules_apex_design.html#design", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidDeeplyNestedIfStmts (Apex, Design)", +"tags": "", +"keywords": "AvoidDeeplyNestedIfStmts", +"url": "pmd_rules_apex_design.html#avoiddeeplynestedifstmts", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CyclomaticComplexity (Apex, Design)", +"tags": "", +"keywords": "CyclomaticComplexity", +"url": "pmd_rules_apex_design.html#cyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CognitiveComplexity (Apex, Design)", +"tags": "", +"keywords": "CognitiveComplexity", +"url": "pmd_rules_apex_design.html#cognitivecomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveClassLength (Apex, Design)", +"tags": "", +"keywords": "ExcessiveClassLength", +"url": "pmd_rules_apex_design.html#excessiveclasslength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveParameterList (Apex, Design)", +"tags": "", +"keywords": "ExcessiveParameterList", +"url": "pmd_rules_apex_design.html#excessiveparameterlist", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessivePublicCount (Apex, Design)", +"tags": "", +"keywords": "ExcessivePublicCount", +"url": "pmd_rules_apex_design.html#excessivepubliccount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssConstructorCount (Apex, Design)", +"tags": "", +"keywords": "NcssConstructorCount", +"url": "pmd_rules_apex_design.html#ncssconstructorcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssMethodCount (Apex, Design)", +"tags": "", +"keywords": "NcssMethodCount", +"url": "pmd_rules_apex_design.html#ncssmethodcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssTypeCount (Apex, Design)", +"tags": "", +"keywords": "NcssTypeCount", +"url": "pmd_rules_apex_design.html#ncsstypecount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "StdCyclomaticComplexity (Apex, Design)", +"tags": "", +"keywords": "StdCyclomaticComplexity", +"url": "pmd_rules_apex_design.html#stdcyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "TooManyFields (Apex, Design)", +"tags": "", +"keywords": "TooManyFields", +"url": "pmd_rules_apex_design.html#toomanyfields", +"summary": "Rules that help you discover design issues." +} + + + + + +, + + + + + + + +{ +"title": "Design (VM, Design)", +"tags": "", +"keywords": "Design", +"url": "pmd_rules_vm_design.html#design", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidDeeplyNestedIfStmts (VM, Design)", +"tags": "", +"keywords": "AvoidDeeplyNestedIfStmts", +"url": "pmd_rules_vm_design.html#avoiddeeplynestedifstmts", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CollapsibleIfStatements (VM, Design)", +"tags": "", +"keywords": "CollapsibleIfStatements", +"url": "pmd_rules_vm_design.html#collapsibleifstatements", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveTemplateLength (VM, Design)", +"tags": "", +"keywords": "ExcessiveTemplateLength", +"url": "pmd_rules_vm_design.html#excessivetemplatelength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoInlineJavaScript (VM, Design)", +"tags": "", +"keywords": "NoInlineJavaScript", +"url": "pmd_rules_vm_design.html#noinlinejavascript", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NoInlineStyles (VM, Design)", +"tags": "", +"keywords": "NoInlineStyles", +"url": "pmd_rules_vm_design.html#noinlinestyles", +"summary": "Rules that help you discover design issues." +} + + + + + +, + + + + + + + +{ +"title": "Design (PLSQL, Design)", +"tags": "", +"keywords": "Design", +"url": "pmd_rules_plsql_design.html#design", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CyclomaticComplexity (PLSQL, Design)", +"tags": "", +"keywords": "CyclomaticComplexity", +"url": "pmd_rules_plsql_design.html#cyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveMethodLength (PLSQL, Design)", +"tags": "", +"keywords": "ExcessiveMethodLength", +"url": "pmd_rules_plsql_design.html#excessivemethodlength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveObjectLength (PLSQL, Design)", +"tags": "", +"keywords": "ExcessiveObjectLength", +"url": "pmd_rules_plsql_design.html#excessiveobjectlength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessivePackageBodyLength (PLSQL, Design)", +"tags": "", +"keywords": "ExcessivePackageBodyLength", +"url": "pmd_rules_plsql_design.html#excessivepackagebodylength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessivePackageSpecificationLength (PLSQL, Design)", +"tags": "", +"keywords": "ExcessivePackageSpecificationLength", +"url": "pmd_rules_plsql_design.html#excessivepackagespecificationlength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveParameterList (PLSQL, Design)", +"tags": "", +"keywords": "ExcessiveParameterList", +"url": "pmd_rules_plsql_design.html#excessiveparameterlist", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveTypeLength (PLSQL, Design)", +"tags": "", +"keywords": "ExcessiveTypeLength", +"url": "pmd_rules_plsql_design.html#excessivetypelength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssMethodCount (PLSQL, Design)", +"tags": "", +"keywords": "NcssMethodCount", +"url": "pmd_rules_plsql_design.html#ncssmethodcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssObjectCount (PLSQL, Design)", +"tags": "", +"keywords": "NcssObjectCount", +"url": "pmd_rules_plsql_design.html#ncssobjectcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NPathComplexity (PLSQL, Design)", +"tags": "", +"keywords": "NPathComplexity", +"url": "pmd_rules_plsql_design.html#npathcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "TooManyFields (PLSQL, Design)", +"tags": "", +"keywords": "TooManyFields", +"url": "pmd_rules_plsql_design.html#toomanyfields", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "TooManyMethods (PLSQL, Design)", +"tags": "", +"keywords": "TooManyMethods", +"url": "pmd_rules_plsql_design.html#toomanymethods", +"summary": "Rules that help you discover design issues." +} + + + + + +, + + + + + + + +{ +"title": "Design (Java, Design)", +"tags": "", +"keywords": "Design", +"url": "pmd_rules_java_design.html#design", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AbstractClassWithoutAnyMethod (Java, Design)", +"tags": "", +"keywords": "AbstractClassWithoutAnyMethod", +"url": "pmd_rules_java_design.html#abstractclasswithoutanymethod", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidCatchingGenericException (Java, Design)", +"tags": "", +"keywords": "AvoidCatchingGenericException", +"url": "pmd_rules_java_design.html#avoidcatchinggenericexception", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidDeeplyNestedIfStmts (Java, Design)", +"tags": "", +"keywords": "AvoidDeeplyNestedIfStmts", +"url": "pmd_rules_java_design.html#avoiddeeplynestedifstmts", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidRethrowingException (Java, Design)", +"tags": "", +"keywords": "AvoidRethrowingException", +"url": "pmd_rules_java_design.html#avoidrethrowingexception", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidThrowingNewInstanceOfSameException (Java, Design)", +"tags": "", +"keywords": "AvoidThrowingNewInstanceOfSameException", +"url": "pmd_rules_java_design.html#avoidthrowingnewinstanceofsameexception", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidThrowingNullPointerException (Java, Design)", +"tags": "", +"keywords": "AvoidThrowingNullPointerException", +"url": "pmd_rules_java_design.html#avoidthrowingnullpointerexception", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidThrowingRawExceptionTypes (Java, Design)", +"tags": "", +"keywords": "AvoidThrowingRawExceptionTypes", +"url": "pmd_rules_java_design.html#avoidthrowingrawexceptiontypes", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "AvoidUncheckedExceptionsInSignatures (Java, Design)", +"tags": "", +"keywords": "AvoidUncheckedExceptionsInSignatures", +"url": "pmd_rules_java_design.html#avoiduncheckedexceptionsinsignatures", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ClassWithOnlyPrivateConstructorsShouldBeFinal (Java, Design)", +"tags": "", +"keywords": "ClassWithOnlyPrivateConstructorsShouldBeFinal", +"url": "pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CollapsibleIfStatements (Java, Design)", +"tags": "", +"keywords": "CollapsibleIfStatements", +"url": "pmd_rules_java_design.html#collapsibleifstatements", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CouplingBetweenObjects (Java, Design)", +"tags": "", +"keywords": "CouplingBetweenObjects", +"url": "pmd_rules_java_design.html#couplingbetweenobjects", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "CyclomaticComplexity (Java, Design)", +"tags": "", +"keywords": "CyclomaticComplexity", +"url": "pmd_rules_java_design.html#cyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "DataClass (Java, Design)", +"tags": "", +"keywords": "DataClass", +"url": "pmd_rules_java_design.html#dataclass", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "DoNotExtendJavaLangError (Java, Design)", +"tags": "", +"keywords": "DoNotExtendJavaLangError", +"url": "pmd_rules_java_design.html#donotextendjavalangerror", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExceptionAsFlowControl (Java, Design)", +"tags": "", +"keywords": "ExceptionAsFlowControl", +"url": "pmd_rules_java_design.html#exceptionasflowcontrol", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveClassLength (Java, Design)", +"tags": "", +"keywords": "ExcessiveClassLength", +"url": "pmd_rules_java_design.html#excessiveclasslength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveImports (Java, Design)", +"tags": "", +"keywords": "ExcessiveImports", +"url": "pmd_rules_java_design.html#excessiveimports", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveMethodLength (Java, Design)", +"tags": "", +"keywords": "ExcessiveMethodLength", +"url": "pmd_rules_java_design.html#excessivemethodlength", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessiveParameterList (Java, Design)", +"tags": "", +"keywords": "ExcessiveParameterList", +"url": "pmd_rules_java_design.html#excessiveparameterlist", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ExcessivePublicCount (Java, Design)", +"tags": "", +"keywords": "ExcessivePublicCount", +"url": "pmd_rules_java_design.html#excessivepubliccount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "FinalFieldCouldBeStatic (Java, Design)", +"tags": "", +"keywords": "FinalFieldCouldBeStatic", +"url": "pmd_rules_java_design.html#finalfieldcouldbestatic", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "GodClass (Java, Design)", +"tags": "", +"keywords": "GodClass", +"url": "pmd_rules_java_design.html#godclass", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ImmutableField (Java, Design)", +"tags": "", +"keywords": "ImmutableField", +"url": "pmd_rules_java_design.html#immutablefield", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "LawOfDemeter (Java, Design)", +"tags": "", +"keywords": "LawOfDemeter", +"url": "pmd_rules_java_design.html#lawofdemeter", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "LogicInversion (Java, Design)", +"tags": "", +"keywords": "LogicInversion", +"url": "pmd_rules_java_design.html#logicinversion", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "LoosePackageCoupling (Java, Design)", +"tags": "", +"keywords": "LoosePackageCoupling", +"url": "pmd_rules_java_design.html#loosepackagecoupling", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "ModifiedCyclomaticComplexity (Java, Design)", +"tags": "", +"keywords": "ModifiedCyclomaticComplexity", +"url": "pmd_rules_java_design.html#modifiedcyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssConstructorCount (Java, Design)", +"tags": "", +"keywords": "NcssConstructorCount", +"url": "pmd_rules_java_design.html#ncssconstructorcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssCount (Java, Design)", +"tags": "", +"keywords": "NcssCount", +"url": "pmd_rules_java_design.html#ncsscount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssMethodCount (Java, Design)", +"tags": "", +"keywords": "NcssMethodCount", +"url": "pmd_rules_java_design.html#ncssmethodcount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NcssTypeCount (Java, Design)", +"tags": "", +"keywords": "NcssTypeCount", +"url": "pmd_rules_java_design.html#ncsstypecount", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "NPathComplexity (Java, Design)", +"tags": "", +"keywords": "NPathComplexity", +"url": "pmd_rules_java_design.html#npathcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SignatureDeclareThrowsException (Java, Design)", +"tags": "", +"keywords": "SignatureDeclareThrowsException", +"url": "pmd_rules_java_design.html#signaturedeclarethrowsexception", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SimplifiedTernary (Java, Design)", +"tags": "", +"keywords": "SimplifiedTernary", +"url": "pmd_rules_java_design.html#simplifiedternary", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SimplifyBooleanAssertion (Java, Design)", +"tags": "", +"keywords": "SimplifyBooleanAssertion", +"url": "pmd_rules_java_design.html#simplifybooleanassertion", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SimplifyBooleanExpressions (Java, Design)", +"tags": "", +"keywords": "SimplifyBooleanExpressions", +"url": "pmd_rules_java_design.html#simplifybooleanexpressions", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SimplifyBooleanReturns (Java, Design)", +"tags": "", +"keywords": "SimplifyBooleanReturns", +"url": "pmd_rules_java_design.html#simplifybooleanreturns", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SimplifyConditional (Java, Design)", +"tags": "", +"keywords": "SimplifyConditional", +"url": "pmd_rules_java_design.html#simplifyconditional", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SingularField (Java, Design)", +"tags": "", +"keywords": "SingularField", +"url": "pmd_rules_java_design.html#singularfield", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "StdCyclomaticComplexity (Java, Design)", +"tags": "", +"keywords": "StdCyclomaticComplexity", +"url": "pmd_rules_java_design.html#stdcyclomaticcomplexity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "SwitchDensity (Java, Design)", +"tags": "", +"keywords": "SwitchDensity", +"url": "pmd_rules_java_design.html#switchdensity", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "TooManyFields (Java, Design)", +"tags": "", +"keywords": "TooManyFields", +"url": "pmd_rules_java_design.html#toomanyfields", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "TooManyMethods (Java, Design)", +"tags": "", +"keywords": "TooManyMethods", +"url": "pmd_rules_java_design.html#toomanymethods", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "UselessOverridingMethod (Java, Design)", +"tags": "", +"keywords": "UselessOverridingMethod", +"url": "pmd_rules_java_design.html#uselessoverridingmethod", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "UseObjectForClearerAPI (Java, Design)", +"tags": "", +"keywords": "UseObjectForClearerAPI", +"url": "pmd_rules_java_design.html#useobjectforclearerapi", +"summary": "Rules that help you discover design issues." +} +, + +{ +"title": "UseUtilityClass (Java, Design)", +"tags": "", +"keywords": "UseUtilityClass", +"url": "pmd_rules_java_design.html#useutilityclass", +"summary": "Rules that help you discover design issues." +} + + + + + +, + + + + + +{ +"title": "The rule designer", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_designer_reference.html", +"summary": "Learn about the usage and features of the rule designer." +} + + + +, + + + + + +{ +"title": "Developer Resources", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_development.html", +"summary": "" +} + + + +, + + + + + + + +{ +"title": "Documentation (Apex, Documentation)", +"tags": "", +"keywords": "Documentation", +"url": "pmd_rules_apex_documentation.html#documentation", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "ApexDoc (Apex, Documentation)", +"tags": "", +"keywords": "ApexDoc", +"url": "pmd_rules_apex_documentation.html#apexdoc", +"summary": "Rules that are related to code documentation." +} + + + + + +, + + + + + + + +{ +"title": "Documentation (Java, Documentation)", +"tags": "", +"keywords": "Documentation", +"url": "pmd_rules_java_documentation.html#documentation", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "CommentContent (Java, Documentation)", +"tags": "", +"keywords": "CommentContent", +"url": "pmd_rules_java_documentation.html#commentcontent", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "CommentRequired (Java, Documentation)", +"tags": "", +"keywords": "CommentRequired", +"url": "pmd_rules_java_documentation.html#commentrequired", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "CommentSize (Java, Documentation)", +"tags": "", +"keywords": "CommentSize", +"url": "pmd_rules_java_documentation.html#commentsize", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "UncommentedEmptyConstructor (Java, Documentation)", +"tags": "", +"keywords": "UncommentedEmptyConstructor", +"url": "pmd_rules_java_documentation.html#uncommentedemptyconstructor", +"summary": "Rules that are related to code documentation." +} +, + +{ +"title": "UncommentedEmptyMethodBody (Java, Documentation)", +"tags": "", +"keywords": "UncommentedEmptyMethodBody", +"url": "pmd_rules_java_documentation.html#uncommentedemptymethodbody", +"summary": "Rules that are related to code documentation." +} + + + + + +, + + + + + +{ +"title": "Ecmascript Rules", +"tags": "rule_referencesecmascript", +"keywords": "", +"url": "pmd_rules_ecmascript.html", +"summary": "Index of all built-in rules available for Ecmascript" +} + + + +, + + + + + + + +{ +"title": "Error Prone (Java Server Pages, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_jsp_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "JspEncoding (Java Server Pages, Error Prone)", +"tags": "", +"keywords": "JspEncoding", +"url": "pmd_rules_jsp_errorprone.html#jspencoding", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (Ecmascript, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_ecmascript_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidTrailingComma (Ecmascript, Error Prone)", +"tags": "", +"keywords": "AvoidTrailingComma", +"url": "pmd_rules_ecmascript_errorprone.html#avoidtrailingcomma", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EqualComparison (Ecmascript, Error Prone)", +"tags": "", +"keywords": "EqualComparison", +"url": "pmd_rules_ecmascript_errorprone.html#equalcomparison", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "InnaccurateNumericLiteral (Ecmascript, Error Prone)", +"tags": "", +"keywords": "InnaccurateNumericLiteral", +"url": "pmd_rules_ecmascript_errorprone.html#innaccuratenumericliteral", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (Apex, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_apex_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ApexCSRF (Apex, Error Prone)", +"tags": "", +"keywords": "ApexCSRF", +"url": "pmd_rules_apex_errorprone.html#apexcsrf", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidDirectAccessTriggerMap (Apex, Error Prone)", +"tags": "", +"keywords": "AvoidDirectAccessTriggerMap", +"url": "pmd_rules_apex_errorprone.html#avoiddirectaccesstriggermap", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidHardcodingId (Apex, Error Prone)", +"tags": "", +"keywords": "AvoidHardcodingId", +"url": "pmd_rules_apex_errorprone.html#avoidhardcodingid", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyCatchBlock (Apex, Error Prone)", +"tags": "", +"keywords": "EmptyCatchBlock", +"url": "pmd_rules_apex_errorprone.html#emptycatchblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyIfStmt (Apex, Error Prone)", +"tags": "", +"keywords": "EmptyIfStmt", +"url": "pmd_rules_apex_errorprone.html#emptyifstmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyStatementBlock (Apex, Error Prone)", +"tags": "", +"keywords": "EmptyStatementBlock", +"url": "pmd_rules_apex_errorprone.html#emptystatementblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyTryOrFinallyBlock (Apex, Error Prone)", +"tags": "", +"keywords": "EmptyTryOrFinallyBlock", +"url": "pmd_rules_apex_errorprone.html#emptytryorfinallyblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyWhileStmt (Apex, Error Prone)", +"tags": "", +"keywords": "EmptyWhileStmt", +"url": "pmd_rules_apex_errorprone.html#emptywhilestmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MethodWithSameNameAsEnclosingClass (Apex, Error Prone)", +"tags": "", +"keywords": "MethodWithSameNameAsEnclosingClass", +"url": "pmd_rules_apex_errorprone.html#methodwithsamenameasenclosingclass", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidNonExistentAnnotations (Apex, Error Prone)", +"tags": "", +"keywords": "AvoidNonExistentAnnotations", +"url": "pmd_rules_apex_errorprone.html#avoidnonexistentannotations", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "TestMethodsMustBeInTestClasses (Apex, Error Prone)", +"tags": "", +"keywords": "TestMethodsMustBeInTestClasses", +"url": "pmd_rules_apex_errorprone.html#testmethodsmustbeintestclasses", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (VM, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_vm_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyForeachStmt (VM, Error Prone)", +"tags": "", +"keywords": "EmptyForeachStmt", +"url": "pmd_rules_vm_errorprone.html#emptyforeachstmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyIfStmt (VM, Error Prone)", +"tags": "", +"keywords": "EmptyIfStmt", +"url": "pmd_rules_vm_errorprone.html#emptyifstmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (PLSQL, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_plsql_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "TO_DATE_TO_CHAR (PLSQL, Error Prone)", +"tags": "", +"keywords": "TO_DATE_TO_CHAR", +"url": "pmd_rules_plsql_errorprone.html#to_date_to_char", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "TO_DATEWithoutDateFormat (PLSQL, Error Prone)", +"tags": "", +"keywords": "TO_DATEWithoutDateFormat", +"url": "pmd_rules_plsql_errorprone.html#to_datewithoutdateformat", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "TO_TIMESTAMPWithoutDateFormat (PLSQL, Error Prone)", +"tags": "", +"keywords": "TO_TIMESTAMPWithoutDateFormat", +"url": "pmd_rules_plsql_errorprone.html#to_timestampwithoutdateformat", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (Java, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_java_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AssignmentInOperand (Java, Error Prone)", +"tags": "", +"keywords": "AssignmentInOperand", +"url": "pmd_rules_java_errorprone.html#assignmentinoperand", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AssignmentToNonFinalStatic (Java, Error Prone)", +"tags": "", +"keywords": "AssignmentToNonFinalStatic", +"url": "pmd_rules_java_errorprone.html#assignmenttononfinalstatic", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidAccessibilityAlteration (Java, Error Prone)", +"tags": "", +"keywords": "AvoidAccessibilityAlteration", +"url": "pmd_rules_java_errorprone.html#avoidaccessibilityalteration", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidAssertAsIdentifier (Java, Error Prone)", +"tags": "", +"keywords": "AvoidAssertAsIdentifier", +"url": "pmd_rules_java_errorprone.html#avoidassertasidentifier", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidBranchingStatementAsLastInLoop (Java, Error Prone)", +"tags": "", +"keywords": "AvoidBranchingStatementAsLastInLoop", +"url": "pmd_rules_java_errorprone.html#avoidbranchingstatementaslastinloop", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidCallingFinalize (Java, Error Prone)", +"tags": "", +"keywords": "AvoidCallingFinalize", +"url": "pmd_rules_java_errorprone.html#avoidcallingfinalize", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidCatchingNPE (Java, Error Prone)", +"tags": "", +"keywords": "AvoidCatchingNPE", +"url": "pmd_rules_java_errorprone.html#avoidcatchingnpe", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidCatchingThrowable (Java, Error Prone)", +"tags": "", +"keywords": "AvoidCatchingThrowable", +"url": "pmd_rules_java_errorprone.html#avoidcatchingthrowable", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidDecimalLiteralsInBigDecimalConstructor (Java, Error Prone)", +"tags": "", +"keywords": "AvoidDecimalLiteralsInBigDecimalConstructor", +"url": "pmd_rules_java_errorprone.html#avoiddecimalliteralsinbigdecimalconstructor", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidDuplicateLiterals (Java, Error Prone)", +"tags": "", +"keywords": "AvoidDuplicateLiterals", +"url": "pmd_rules_java_errorprone.html#avoidduplicateliterals", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidEnumAsIdentifier (Java, Error Prone)", +"tags": "", +"keywords": "AvoidEnumAsIdentifier", +"url": "pmd_rules_java_errorprone.html#avoidenumasidentifier", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidFieldNameMatchingMethodName (Java, Error Prone)", +"tags": "", +"keywords": "AvoidFieldNameMatchingMethodName", +"url": "pmd_rules_java_errorprone.html#avoidfieldnamematchingmethodname", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidFieldNameMatchingTypeName (Java, Error Prone)", +"tags": "", +"keywords": "AvoidFieldNameMatchingTypeName", +"url": "pmd_rules_java_errorprone.html#avoidfieldnamematchingtypename", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidInstanceofChecksInCatchClause (Java, Error Prone)", +"tags": "", +"keywords": "AvoidInstanceofChecksInCatchClause", +"url": "pmd_rules_java_errorprone.html#avoidinstanceofchecksincatchclause", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidLiteralsInIfCondition (Java, Error Prone)", +"tags": "", +"keywords": "AvoidLiteralsInIfCondition", +"url": "pmd_rules_java_errorprone.html#avoidliteralsinifcondition", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidLosingExceptionInformation (Java, Error Prone)", +"tags": "", +"keywords": "AvoidLosingExceptionInformation", +"url": "pmd_rules_java_errorprone.html#avoidlosingexceptioninformation", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidMultipleUnaryOperators (Java, Error Prone)", +"tags": "", +"keywords": "AvoidMultipleUnaryOperators", +"url": "pmd_rules_java_errorprone.html#avoidmultipleunaryoperators", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "AvoidUsingOctalValues (Java, Error Prone)", +"tags": "", +"keywords": "AvoidUsingOctalValues", +"url": "pmd_rules_java_errorprone.html#avoidusingoctalvalues", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "BadComparison (Java, Error Prone)", +"tags": "", +"keywords": "BadComparison", +"url": "pmd_rules_java_errorprone.html#badcomparison", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "BeanMembersShouldSerialize (Java, Error Prone)", +"tags": "", +"keywords": "BeanMembersShouldSerialize", +"url": "pmd_rules_java_errorprone.html#beanmembersshouldserialize", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "BrokenNullCheck (Java, Error Prone)", +"tags": "", +"keywords": "BrokenNullCheck", +"url": "pmd_rules_java_errorprone.html#brokennullcheck", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CallSuperFirst (Java, Error Prone)", +"tags": "", +"keywords": "CallSuperFirst", +"url": "pmd_rules_java_errorprone.html#callsuperfirst", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CallSuperLast (Java, Error Prone)", +"tags": "", +"keywords": "CallSuperLast", +"url": "pmd_rules_java_errorprone.html#callsuperlast", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CheckSkipResult (Java, Error Prone)", +"tags": "", +"keywords": "CheckSkipResult", +"url": "pmd_rules_java_errorprone.html#checkskipresult", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ClassCastExceptionWithToArray (Java, Error Prone)", +"tags": "", +"keywords": "ClassCastExceptionWithToArray", +"url": "pmd_rules_java_errorprone.html#classcastexceptionwithtoarray", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CloneMethodMustBePublic (Java, Error Prone)", +"tags": "", +"keywords": "CloneMethodMustBePublic", +"url": "pmd_rules_java_errorprone.html#clonemethodmustbepublic", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CloneMethodMustImplementCloneable (Java, Error Prone)", +"tags": "", +"keywords": "CloneMethodMustImplementCloneable", +"url": "pmd_rules_java_errorprone.html#clonemethodmustimplementcloneable", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CloneMethodReturnTypeMustMatchClassName (Java, Error Prone)", +"tags": "", +"keywords": "CloneMethodReturnTypeMustMatchClassName", +"url": "pmd_rules_java_errorprone.html#clonemethodreturntypemustmatchclassname", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CloneThrowsCloneNotSupportedException (Java, Error Prone)", +"tags": "", +"keywords": "CloneThrowsCloneNotSupportedException", +"url": "pmd_rules_java_errorprone.html#clonethrowsclonenotsupportedexception", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CloseResource (Java, Error Prone)", +"tags": "", +"keywords": "CloseResource", +"url": "pmd_rules_java_errorprone.html#closeresource", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "CompareObjectsWithEquals (Java, Error Prone)", +"tags": "", +"keywords": "CompareObjectsWithEquals", +"url": "pmd_rules_java_errorprone.html#compareobjectswithequals", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ConstructorCallsOverridableMethod (Java, Error Prone)", +"tags": "", +"keywords": "ConstructorCallsOverridableMethod", +"url": "pmd_rules_java_errorprone.html#constructorcallsoverridablemethod", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DataflowAnomalyAnalysis (Java, Error Prone)", +"tags": "", +"keywords": "DataflowAnomalyAnalysis", +"url": "pmd_rules_java_errorprone.html#dataflowanomalyanalysis", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DetachedTestCase (Java, Error Prone)", +"tags": "", +"keywords": "DetachedTestCase", +"url": "pmd_rules_java_errorprone.html#detachedtestcase", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotCallGarbageCollectionExplicitly (Java, Error Prone)", +"tags": "", +"keywords": "DoNotCallGarbageCollectionExplicitly", +"url": "pmd_rules_java_errorprone.html#donotcallgarbagecollectionexplicitly", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotCallSystemExit (Java, Error Prone)", +"tags": "", +"keywords": "DoNotCallSystemExit", +"url": "pmd_rules_java_errorprone.html#donotcallsystemexit", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotExtendJavaLangThrowable (Java, Error Prone)", +"tags": "", +"keywords": "DoNotExtendJavaLangThrowable", +"url": "pmd_rules_java_errorprone.html#donotextendjavalangthrowable", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotHardCodeSDCard (Java, Error Prone)", +"tags": "", +"keywords": "DoNotHardCodeSDCard", +"url": "pmd_rules_java_errorprone.html#donothardcodesdcard", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotTerminateVM (Java, Error Prone)", +"tags": "", +"keywords": "DoNotTerminateVM", +"url": "pmd_rules_java_errorprone.html#donotterminatevm", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DoNotThrowExceptionInFinally (Java, Error Prone)", +"tags": "", +"keywords": "DoNotThrowExceptionInFinally", +"url": "pmd_rules_java_errorprone.html#donotthrowexceptioninfinally", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DontImportSun (Java, Error Prone)", +"tags": "", +"keywords": "DontImportSun", +"url": "pmd_rules_java_errorprone.html#dontimportsun", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "DontUseFloatTypeForLoopIndices (Java, Error Prone)", +"tags": "", +"keywords": "DontUseFloatTypeForLoopIndices", +"url": "pmd_rules_java_errorprone.html#dontusefloattypeforloopindices", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyCatchBlock (Java, Error Prone)", +"tags": "", +"keywords": "EmptyCatchBlock", +"url": "pmd_rules_java_errorprone.html#emptycatchblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyFinalizer (Java, Error Prone)", +"tags": "", +"keywords": "EmptyFinalizer", +"url": "pmd_rules_java_errorprone.html#emptyfinalizer", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyFinallyBlock (Java, Error Prone)", +"tags": "", +"keywords": "EmptyFinallyBlock", +"url": "pmd_rules_java_errorprone.html#emptyfinallyblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyIfStmt (Java, Error Prone)", +"tags": "", +"keywords": "EmptyIfStmt", +"url": "pmd_rules_java_errorprone.html#emptyifstmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyInitializer (Java, Error Prone)", +"tags": "", +"keywords": "EmptyInitializer", +"url": "pmd_rules_java_errorprone.html#emptyinitializer", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyStatementBlock (Java, Error Prone)", +"tags": "", +"keywords": "EmptyStatementBlock", +"url": "pmd_rules_java_errorprone.html#emptystatementblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyStatementNotInLoop (Java, Error Prone)", +"tags": "", +"keywords": "EmptyStatementNotInLoop", +"url": "pmd_rules_java_errorprone.html#emptystatementnotinloop", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptySwitchStatements (Java, Error Prone)", +"tags": "", +"keywords": "EmptySwitchStatements", +"url": "pmd_rules_java_errorprone.html#emptyswitchstatements", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptySynchronizedBlock (Java, Error Prone)", +"tags": "", +"keywords": "EmptySynchronizedBlock", +"url": "pmd_rules_java_errorprone.html#emptysynchronizedblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyTryBlock (Java, Error Prone)", +"tags": "", +"keywords": "EmptyTryBlock", +"url": "pmd_rules_java_errorprone.html#emptytryblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EmptyWhileStmt (Java, Error Prone)", +"tags": "", +"keywords": "EmptyWhileStmt", +"url": "pmd_rules_java_errorprone.html#emptywhilestmt", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "EqualsNull (Java, Error Prone)", +"tags": "", +"keywords": "EqualsNull", +"url": "pmd_rules_java_errorprone.html#equalsnull", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "FinalizeDoesNotCallSuperFinalize (Java, Error Prone)", +"tags": "", +"keywords": "FinalizeDoesNotCallSuperFinalize", +"url": "pmd_rules_java_errorprone.html#finalizedoesnotcallsuperfinalize", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "FinalizeOnlyCallsSuperFinalize (Java, Error Prone)", +"tags": "", +"keywords": "FinalizeOnlyCallsSuperFinalize", +"url": "pmd_rules_java_errorprone.html#finalizeonlycallssuperfinalize", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "FinalizeOverloaded (Java, Error Prone)", +"tags": "", +"keywords": "FinalizeOverloaded", +"url": "pmd_rules_java_errorprone.html#finalizeoverloaded", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "FinalizeShouldBeProtected (Java, Error Prone)", +"tags": "", +"keywords": "FinalizeShouldBeProtected", +"url": "pmd_rules_java_errorprone.html#finalizeshouldbeprotected", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "IdempotentOperations (Java, Error Prone)", +"tags": "", +"keywords": "IdempotentOperations", +"url": "pmd_rules_java_errorprone.html#idempotentoperations", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ImportFromSamePackage (Java, Error Prone)", +"tags": "", +"keywords": "ImportFromSamePackage", +"url": "pmd_rules_java_errorprone.html#importfromsamepackage", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "InstantiationToGetClass (Java, Error Prone)", +"tags": "", +"keywords": "InstantiationToGetClass", +"url": "pmd_rules_java_errorprone.html#instantiationtogetclass", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "InvalidSlf4jMessageFormat (Java, Error Prone)", +"tags": "", +"keywords": "InvalidSlf4jMessageFormat", +"url": "pmd_rules_java_errorprone.html#invalidslf4jmessageformat", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "InvalidLogMessageFormat (Java, Error Prone)", +"tags": "", +"keywords": "InvalidLogMessageFormat", +"url": "pmd_rules_java_errorprone.html#invalidlogmessageformat", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "JumbledIncrementer (Java, Error Prone)", +"tags": "", +"keywords": "JumbledIncrementer", +"url": "pmd_rules_java_errorprone.html#jumbledincrementer", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "JUnitSpelling (Java, Error Prone)", +"tags": "", +"keywords": "JUnitSpelling", +"url": "pmd_rules_java_errorprone.html#junitspelling", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "JUnitStaticSuite (Java, Error Prone)", +"tags": "", +"keywords": "JUnitStaticSuite", +"url": "pmd_rules_java_errorprone.html#junitstaticsuite", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "LoggerIsNotStaticFinal (Java, Error Prone)", +"tags": "", +"keywords": "LoggerIsNotStaticFinal", +"url": "pmd_rules_java_errorprone.html#loggerisnotstaticfinal", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MethodWithSameNameAsEnclosingClass (Java, Error Prone)", +"tags": "", +"keywords": "MethodWithSameNameAsEnclosingClass", +"url": "pmd_rules_java_errorprone.html#methodwithsamenameasenclosingclass", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MisplacedNullCheck (Java, Error Prone)", +"tags": "", +"keywords": "MisplacedNullCheck", +"url": "pmd_rules_java_errorprone.html#misplacednullcheck", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MissingBreakInSwitch (Java, Error Prone)", +"tags": "", +"keywords": "MissingBreakInSwitch", +"url": "pmd_rules_java_errorprone.html#missingbreakinswitch", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MissingSerialVersionUID (Java, Error Prone)", +"tags": "", +"keywords": "MissingSerialVersionUID", +"url": "pmd_rules_java_errorprone.html#missingserialversionuid", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MissingStaticMethodInNonInstantiatableClass (Java, Error Prone)", +"tags": "", +"keywords": "MissingStaticMethodInNonInstantiatableClass", +"url": "pmd_rules_java_errorprone.html#missingstaticmethodinnoninstantiatableclass", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MoreThanOneLogger (Java, Error Prone)", +"tags": "", +"keywords": "MoreThanOneLogger", +"url": "pmd_rules_java_errorprone.html#morethanonelogger", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "NonCaseLabelInSwitchStatement (Java, Error Prone)", +"tags": "", +"keywords": "NonCaseLabelInSwitchStatement", +"url": "pmd_rules_java_errorprone.html#noncaselabelinswitchstatement", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "NonStaticInitializer (Java, Error Prone)", +"tags": "", +"keywords": "NonStaticInitializer", +"url": "pmd_rules_java_errorprone.html#nonstaticinitializer", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "NullAssignment (Java, Error Prone)", +"tags": "", +"keywords": "NullAssignment", +"url": "pmd_rules_java_errorprone.html#nullassignment", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "OverrideBothEqualsAndHashcode (Java, Error Prone)", +"tags": "", +"keywords": "OverrideBothEqualsAndHashcode", +"url": "pmd_rules_java_errorprone.html#overridebothequalsandhashcode", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ProperCloneImplementation (Java, Error Prone)", +"tags": "", +"keywords": "ProperCloneImplementation", +"url": "pmd_rules_java_errorprone.html#propercloneimplementation", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ProperLogger (Java, Error Prone)", +"tags": "", +"keywords": "ProperLogger", +"url": "pmd_rules_java_errorprone.html#properlogger", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ReturnEmptyArrayRatherThanNull (Java, Error Prone)", +"tags": "", +"keywords": "ReturnEmptyArrayRatherThanNull", +"url": "pmd_rules_java_errorprone.html#returnemptyarrayratherthannull", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ReturnFromFinallyBlock (Java, Error Prone)", +"tags": "", +"keywords": "ReturnFromFinallyBlock", +"url": "pmd_rules_java_errorprone.html#returnfromfinallyblock", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SimpleDateFormatNeedsLocale (Java, Error Prone)", +"tags": "", +"keywords": "SimpleDateFormatNeedsLocale", +"url": "pmd_rules_java_errorprone.html#simpledateformatneedslocale", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SingleMethodSingleton (Java, Error Prone)", +"tags": "", +"keywords": "SingleMethodSingleton", +"url": "pmd_rules_java_errorprone.html#singlemethodsingleton", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SingletonClassReturningNewInstance (Java, Error Prone)", +"tags": "", +"keywords": "SingletonClassReturningNewInstance", +"url": "pmd_rules_java_errorprone.html#singletonclassreturningnewinstance", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "StaticEJBFieldShouldBeFinal (Java, Error Prone)", +"tags": "", +"keywords": "StaticEJBFieldShouldBeFinal", +"url": "pmd_rules_java_errorprone.html#staticejbfieldshouldbefinal", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "StringBufferInstantiationWithChar (Java, Error Prone)", +"tags": "", +"keywords": "StringBufferInstantiationWithChar", +"url": "pmd_rules_java_errorprone.html#stringbufferinstantiationwithchar", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SuspiciousEqualsMethodName (Java, Error Prone)", +"tags": "", +"keywords": "SuspiciousEqualsMethodName", +"url": "pmd_rules_java_errorprone.html#suspiciousequalsmethodname", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SuspiciousHashcodeMethodName (Java, Error Prone)", +"tags": "", +"keywords": "SuspiciousHashcodeMethodName", +"url": "pmd_rules_java_errorprone.html#suspicioushashcodemethodname", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "SuspiciousOctalEscape (Java, Error Prone)", +"tags": "", +"keywords": "SuspiciousOctalEscape", +"url": "pmd_rules_java_errorprone.html#suspiciousoctalescape", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "TestClassWithoutTestCases (Java, Error Prone)", +"tags": "", +"keywords": "TestClassWithoutTestCases", +"url": "pmd_rules_java_errorprone.html#testclasswithouttestcases", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UnconditionalIfStatement (Java, Error Prone)", +"tags": "", +"keywords": "UnconditionalIfStatement", +"url": "pmd_rules_java_errorprone.html#unconditionalifstatement", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UnnecessaryBooleanAssertion (Java, Error Prone)", +"tags": "", +"keywords": "UnnecessaryBooleanAssertion", +"url": "pmd_rules_java_errorprone.html#unnecessarybooleanassertion", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UnnecessaryCaseChange (Java, Error Prone)", +"tags": "", +"keywords": "UnnecessaryCaseChange", +"url": "pmd_rules_java_errorprone.html#unnecessarycasechange", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UnnecessaryConversionTemporary (Java, Error Prone)", +"tags": "", +"keywords": "UnnecessaryConversionTemporary", +"url": "pmd_rules_java_errorprone.html#unnecessaryconversiontemporary", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UnusedNullCheckInEquals (Java, Error Prone)", +"tags": "", +"keywords": "UnusedNullCheckInEquals", +"url": "pmd_rules_java_errorprone.html#unusednullcheckinequals", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UseCorrectExceptionLogging (Java, Error Prone)", +"tags": "", +"keywords": "UseCorrectExceptionLogging", +"url": "pmd_rules_java_errorprone.html#usecorrectexceptionlogging", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UseEqualsToCompareStrings (Java, Error Prone)", +"tags": "", +"keywords": "UseEqualsToCompareStrings", +"url": "pmd_rules_java_errorprone.html#useequalstocomparestrings", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UselessOperationOnImmutable (Java, Error Prone)", +"tags": "", +"keywords": "UselessOperationOnImmutable", +"url": "pmd_rules_java_errorprone.html#uselessoperationonimmutable", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UseLocaleWithCaseConversions (Java, Error Prone)", +"tags": "", +"keywords": "UseLocaleWithCaseConversions", +"url": "pmd_rules_java_errorprone.html#uselocalewithcaseconversions", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "UseProperClassLoader (Java, Error Prone)", +"tags": "", +"keywords": "UseProperClassLoader", +"url": "pmd_rules_java_errorprone.html#useproperclassloader", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (Maven POM, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_pom_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "InvalidDependencyTypes (Maven POM, Error Prone)", +"tags": "", +"keywords": "InvalidDependencyTypes", +"url": "pmd_rules_pom_errorprone.html#invaliddependencytypes", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "ProjectVersionAsDependencyVersion (Maven POM, Error Prone)", +"tags": "", +"keywords": "ProjectVersionAsDependencyVersion", +"url": "pmd_rules_pom_errorprone.html#projectversionasdependencyversion", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + + + +{ +"title": "Error Prone (XML, Error Prone)", +"tags": "", +"keywords": "Error Prone", +"url": "pmd_rules_xml_errorprone.html#error prone", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} +, + +{ +"title": "MistypedCDATASection (XML, Error Prone)", +"tags": "", +"keywords": "MistypedCDATASection", +"url": "pmd_rules_xml_errorprone.html#mistypedcdatasection", +"summary": "Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors." +} + + + + + +, + + + + + +{ +"title": "FAQ", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_faq.html", +"summary": "" +} + + + +, + + + + + + + +{ +"title": "Gradle", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools_gradle.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Getting Help", +"tags": "", +"keywords": "", +"url": "pmd_about_help.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "How PMD Works", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_how_pmd_works.html", +"summary": "Processing overview of the different steps taken by PMD." +} + + + +, + + + + + +{ +"title": "Incremental Analysis", +"tags": "userdocs", +"keywords": "pmdoptionscommandincrementalanalysisperformance", +"url": "pmd_userdocs_incremental_analysis.html", +"summary": "Explains how to use incremental analysis to speed up analysis" +} + + + +, + + + + + +{ +"title": "Documentation Index", +"tags": "", +"keywords": "java", +"url": "index.html", +"summary": "Welcome to the documentation site for PMD and CPD!

    " +} + + + +, + + + + + +{ +"title": "Installation and basic CLI usage", +"tags": "getting_starteduserdocs", +"keywords": "pmdcpdoptionscommandauxclasspath", +"url": "pmd_userdocs_installation.html", +"summary": "Sums up the first steps to set up a CLI installation and get started using PMD" +} + + + +, + + + + + +{ +"title": "PMD Java API", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools_java_api.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Java Rules", +"tags": "rule_referencesjava", +"keywords": "", +"url": "pmd_rules_java.html", +"summary": "Index of all built-in rules available for Java" +} + + + +, + + + + + +{ +"title": "Index of Java code metrics", +"tags": "extendingmetrics", +"keywords": "", +"url": "pmd_java_metrics_index.html", +"summary": "Index of the code metrics available out of the box to Java rule developers." +} + + + +, + + + + + +{ +"title": "JSP Support", +"tags": "", +"keywords": "", +"url": "pmd_languages_jsp.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Java Server Pages Rules", +"tags": "rule_referencesjsp", +"keywords": "", +"url": "pmd_rules_jsp.html", +"summary": "Index of all built-in rules available for Java Server Pages" +} + + + +, + + + + + +{ +"title": "License", +"tags": "", +"keywords": "", +"url": "license.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Main Landing Page", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_committers_main_landing_page.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Making rulesets", +"tags": "getting_starteduserdocs", +"keywords": "rulesetsreferenceruleexcludeincludepatternfilter", +"url": "pmd_userdocs_making_rulesets.html", +"summary": "A ruleset is an XML configuration file, which describes a collection of rules to be executed in a PMD run. PMD includes built-in rulesets to run quick analyses with a default configuration, but users are encouraged to make their own rulesets from the start, because they allow for so much configurability. This page walk you through the creation of a ruleset and the multiple configuration features offered by rulesets." +} + + + +, + + + + + +{ +"title": "Maven PMD Plugin", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools_maven.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "What does 'PMD' mean?", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_trivia_meaning.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Merging pull requests", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_committers_merging_pull_requests.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Using and defining code metrics for custom rules", +"tags": "extendinguserdocsmetrics", +"keywords": "", +"url": "pmd_userdocs_extending_metrics_howto.html", +"summary": "Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provides developers with a straightforward interface to use code metrics in their rules, and to extend the framework with their own custom metrics." +} + + + +, + + + + + +{ +"title": "Modelica Rules", +"tags": "rule_referencesmodelica", +"keywords": "", +"url": "pmd_rules_modelica.html", +"summary": "Index of all built-in rules available for Modelica" +} + + + +, + + + + + + + +{ +"title": "Multithreading (Java, Multithreading)", +"tags": "", +"keywords": "Multithreading", +"url": "pmd_rules_java_multithreading.html#multithreading", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "AvoidSynchronizedAtMethodLevel (Java, Multithreading)", +"tags": "", +"keywords": "AvoidSynchronizedAtMethodLevel", +"url": "pmd_rules_java_multithreading.html#avoidsynchronizedatmethodlevel", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "AvoidThreadGroup (Java, Multithreading)", +"tags": "", +"keywords": "AvoidThreadGroup", +"url": "pmd_rules_java_multithreading.html#avoidthreadgroup", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "AvoidUsingVolatile (Java, Multithreading)", +"tags": "", +"keywords": "AvoidUsingVolatile", +"url": "pmd_rules_java_multithreading.html#avoidusingvolatile", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "DoNotUseThreads (Java, Multithreading)", +"tags": "", +"keywords": "DoNotUseThreads", +"url": "pmd_rules_java_multithreading.html#donotusethreads", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "DontCallThreadRun (Java, Multithreading)", +"tags": "", +"keywords": "DontCallThreadRun", +"url": "pmd_rules_java_multithreading.html#dontcallthreadrun", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "DoubleCheckedLocking (Java, Multithreading)", +"tags": "", +"keywords": "DoubleCheckedLocking", +"url": "pmd_rules_java_multithreading.html#doublecheckedlocking", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "NonThreadSafeSingleton (Java, Multithreading)", +"tags": "", +"keywords": "NonThreadSafeSingleton", +"url": "pmd_rules_java_multithreading.html#nonthreadsafesingleton", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "UnsynchronizedStaticDateFormatter (Java, Multithreading)", +"tags": "", +"keywords": "UnsynchronizedStaticDateFormatter", +"url": "pmd_rules_java_multithreading.html#unsynchronizedstaticdateformatter", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "UnsynchronizedStaticFormatter (Java, Multithreading)", +"tags": "", +"keywords": "UnsynchronizedStaticFormatter", +"url": "pmd_rules_java_multithreading.html#unsynchronizedstaticformatter", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "UseConcurrentHashMap (Java, Multithreading)", +"tags": "", +"keywords": "UseConcurrentHashMap", +"url": "pmd_rules_java_multithreading.html#useconcurrenthashmap", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} +, + +{ +"title": "UseNotifyAllInsteadOfNotify (Java, Multithreading)", +"tags": "", +"keywords": "UseNotifyAllInsteadOfNotify", +"url": "pmd_rules_java_multithreading.html#usenotifyallinsteadofnotify", +"summary": "Rules that flag issues when dealing with multiple threads of execution." +} + + + + + +, + + + + + +{ +"title": "Scroll layout", +"tags": "special_layouts", +"keywords": "json, scrolling, scrollto, jquery plugin", +"url": "jsmydoc_scroll.html", +"summary": "This page demonstrates how you the integration of a script called ScrollTo, which is used here to link definitions of a JSON code sample to a list of definitions for that particular term. The scenario here is that the JSON blocks are really long, with extensive nesting and subnesting, which makes it difficult for tables below the JSON to adequately explain the term in a usable way." +} + + + +, + + + + + +{ +"title": "News", +"tags": "", +"keywords": "news, blog, updates, release notes, announcements", +"url": "news.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "PMD in the press", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_trivia_news.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "News", +"tags": "", +"keywords": "news, blog, updates, release notes, announcements", +"url": "news_archive.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "PMD 7.0.0 development", +"tags": "", +"keywords": "changelog, release notes, deprecation, api changes", +"url": "pmd_next_major_development.html", +"summary": "" +} + + + +, + + + + + + + +{ +"title": "Performance (Apex, Performance)", +"tags": "", +"keywords": "Performance", +"url": "pmd_rules_apex_performance.html#performance", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidDmlStatementsInLoops (Apex, Performance)", +"tags": "", +"keywords": "AvoidDmlStatementsInLoops", +"url": "pmd_rules_apex_performance.html#avoiddmlstatementsinloops", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidSoqlInLoops (Apex, Performance)", +"tags": "", +"keywords": "AvoidSoqlInLoops", +"url": "pmd_rules_apex_performance.html#avoidsoqlinloops", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidSoslInLoops (Apex, Performance)", +"tags": "", +"keywords": "AvoidSoslInLoops", +"url": "pmd_rules_apex_performance.html#avoidsoslinloops", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "OperationWithLimitsInLoop (Apex, Performance)", +"tags": "", +"keywords": "OperationWithLimitsInLoop", +"url": "pmd_rules_apex_performance.html#operationwithlimitsinloop", +"summary": "Rules that flag suboptimal code." +} + + + + + +, + + + + + + + +{ +"title": "Performance (Java, Performance)", +"tags": "", +"keywords": "Performance", +"url": "pmd_rules_java_performance.html#performance", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AddEmptyString (Java, Performance)", +"tags": "", +"keywords": "AddEmptyString", +"url": "pmd_rules_java_performance.html#addemptystring", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AppendCharacterWithChar (Java, Performance)", +"tags": "", +"keywords": "AppendCharacterWithChar", +"url": "pmd_rules_java_performance.html#appendcharacterwithchar", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidArrayLoops (Java, Performance)", +"tags": "", +"keywords": "AvoidArrayLoops", +"url": "pmd_rules_java_performance.html#avoidarrayloops", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidCalendarDateCreation (Java, Performance)", +"tags": "", +"keywords": "AvoidCalendarDateCreation", +"url": "pmd_rules_java_performance.html#avoidcalendardatecreation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidFileStream (Java, Performance)", +"tags": "", +"keywords": "AvoidFileStream", +"url": "pmd_rules_java_performance.html#avoidfilestream", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidInstantiatingObjectsInLoops (Java, Performance)", +"tags": "", +"keywords": "AvoidInstantiatingObjectsInLoops", +"url": "pmd_rules_java_performance.html#avoidinstantiatingobjectsinloops", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidUsingShortType (Java, Performance)", +"tags": "", +"keywords": "AvoidUsingShortType", +"url": "pmd_rules_java_performance.html#avoidusingshorttype", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "BigIntegerInstantiation (Java, Performance)", +"tags": "", +"keywords": "BigIntegerInstantiation", +"url": "pmd_rules_java_performance.html#bigintegerinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "BooleanInstantiation (Java, Performance)", +"tags": "", +"keywords": "BooleanInstantiation", +"url": "pmd_rules_java_performance.html#booleaninstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "ByteInstantiation (Java, Performance)", +"tags": "", +"keywords": "ByteInstantiation", +"url": "pmd_rules_java_performance.html#byteinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "ConsecutiveAppendsShouldReuse (Java, Performance)", +"tags": "", +"keywords": "ConsecutiveAppendsShouldReuse", +"url": "pmd_rules_java_performance.html#consecutiveappendsshouldreuse", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "ConsecutiveLiteralAppends (Java, Performance)", +"tags": "", +"keywords": "ConsecutiveLiteralAppends", +"url": "pmd_rules_java_performance.html#consecutiveliteralappends", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "InefficientEmptyStringCheck (Java, Performance)", +"tags": "", +"keywords": "InefficientEmptyStringCheck", +"url": "pmd_rules_java_performance.html#inefficientemptystringcheck", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "InefficientStringBuffering (Java, Performance)", +"tags": "", +"keywords": "InefficientStringBuffering", +"url": "pmd_rules_java_performance.html#inefficientstringbuffering", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "InsufficientStringBufferDeclaration (Java, Performance)", +"tags": "", +"keywords": "InsufficientStringBufferDeclaration", +"url": "pmd_rules_java_performance.html#insufficientstringbufferdeclaration", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "IntegerInstantiation (Java, Performance)", +"tags": "", +"keywords": "IntegerInstantiation", +"url": "pmd_rules_java_performance.html#integerinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "LongInstantiation (Java, Performance)", +"tags": "", +"keywords": "LongInstantiation", +"url": "pmd_rules_java_performance.html#longinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "OptimizableToArrayCall (Java, Performance)", +"tags": "", +"keywords": "OptimizableToArrayCall", +"url": "pmd_rules_java_performance.html#optimizabletoarraycall", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "RedundantFieldInitializer (Java, Performance)", +"tags": "", +"keywords": "RedundantFieldInitializer", +"url": "pmd_rules_java_performance.html#redundantfieldinitializer", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "SimplifyStartsWith (Java, Performance)", +"tags": "", +"keywords": "SimplifyStartsWith", +"url": "pmd_rules_java_performance.html#simplifystartswith", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "ShortInstantiation (Java, Performance)", +"tags": "", +"keywords": "ShortInstantiation", +"url": "pmd_rules_java_performance.html#shortinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "StringInstantiation (Java, Performance)", +"tags": "", +"keywords": "StringInstantiation", +"url": "pmd_rules_java_performance.html#stringinstantiation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "StringToString (Java, Performance)", +"tags": "", +"keywords": "StringToString", +"url": "pmd_rules_java_performance.html#stringtostring", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "TooFewBranchesForASwitchStatement (Java, Performance)", +"tags": "", +"keywords": "TooFewBranchesForASwitchStatement", +"url": "pmd_rules_java_performance.html#toofewbranchesforaswitchstatement", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UnnecessaryWrapperObjectCreation (Java, Performance)", +"tags": "", +"keywords": "UnnecessaryWrapperObjectCreation", +"url": "pmd_rules_java_performance.html#unnecessarywrapperobjectcreation", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseArrayListInsteadOfVector (Java, Performance)", +"tags": "", +"keywords": "UseArrayListInsteadOfVector", +"url": "pmd_rules_java_performance.html#usearraylistinsteadofvector", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseArraysAsList (Java, Performance)", +"tags": "", +"keywords": "UseArraysAsList", +"url": "pmd_rules_java_performance.html#usearraysaslist", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseIndexOfChar (Java, Performance)", +"tags": "", +"keywords": "UseIndexOfChar", +"url": "pmd_rules_java_performance.html#useindexofchar", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseIOStreamsWithApacheCommonsFileItem (Java, Performance)", +"tags": "", +"keywords": "UseIOStreamsWithApacheCommonsFileItem", +"url": "pmd_rules_java_performance.html#useiostreamswithapachecommonsfileitem", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UselessStringValueOf (Java, Performance)", +"tags": "", +"keywords": "UselessStringValueOf", +"url": "pmd_rules_java_performance.html#uselessstringvalueof", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseStringBufferForStringAppends (Java, Performance)", +"tags": "", +"keywords": "UseStringBufferForStringAppends", +"url": "pmd_rules_java_performance.html#usestringbufferforstringappends", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "UseStringBufferLength (Java, Performance)", +"tags": "", +"keywords": "UseStringBufferLength", +"url": "pmd_rules_java_performance.html#usestringbufferlength", +"summary": "Rules that flag suboptimal code." +} + + + + + +, + + + + + + + +{ +"title": "Performance (XSL, Performance)", +"tags": "", +"keywords": "Performance", +"url": "pmd_rules_xsl_performance.html#performance", +"summary": "Rules that flag suboptimal code." +} +, + +{ +"title": "AvoidAxisNavigation (XSL, Performance)", +"tags": "", +"keywords": "AvoidAxisNavigation", +"url": "pmd_rules_xsl_performance.html#avoidaxisnavigation", +"summary": "Rules that flag suboptimal code." +} + + + + + +, + + + + + +{ +"title": "PLSQL Rules", +"tags": "rule_referencesplsql", +"keywords": "", +"url": "pmd_rules_plsql.html", +"summary": "Index of all built-in rules available for PLSQL" +} + + + +, + + + + + +{ +"title": "Report formats for PMD", +"tags": "pmduserdocs", +"keywords": "formatsrenderers", +"url": "pmd_userdocs_report_formats.html", +"summary": "Overview of the built-in report formats for PMD" +} + + + +, + + + + + +{ +"title": "Pmdtester", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_pmdtester.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Maven POM Rules", +"tags": "rule_referencespom", +"keywords": "", +"url": "pmd_rules_pom.html", +"summary": "Index of all built-in rules available for Maven POM" +} + + + +, + + + + + +{ +"title": "Products/books related to PMD", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_trivia_products.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "PMD Release Notes", +"tags": "", +"keywords": "changelog, release notes", +"url": "pmd_release_notes.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Old Release Notes", +"tags": "", +"keywords": "", +"url": "pmd_release_notes_old.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Release process", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_committers_releasing.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Roadmap", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_roadmap.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Rule deprecation policy", +"tags": "devdocs", +"keywords": "", +"url": "pmd_devdocs_rule_deprecation_policy.html", +"summary": "Describes when and how rules are deprecated" +} + + + +, + + + + + +{ +"title": "Rule guidelines", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_rule_guidelines.html", +"summary": "Rule Guidelines, or the last touches to a rule" +} + + + +, + + + + + +{ +"title": "Scala Rules", +"tags": "rule_referencesscala", +"keywords": "", +"url": "pmd_rules_scala.html", +"summary": "Index of all built-in rules available for Scala" +} + + + +, + + + + + + + + + +{ +"title": "Security (Java Server Pages, Security)", +"tags": "", +"keywords": "Security", +"url": "pmd_rules_jsp_security.html#security", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "IframeMissingSrcAttribute (Java Server Pages, Security)", +"tags": "", +"keywords": "IframeMissingSrcAttribute", +"url": "pmd_rules_jsp_security.html#iframemissingsrcattribute", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "NoUnsanitizedJSPExpression (Java Server Pages, Security)", +"tags": "", +"keywords": "NoUnsanitizedJSPExpression", +"url": "pmd_rules_jsp_security.html#nounsanitizedjspexpression", +"summary": "Rules that flag potential security flaws." +} + + + + + +, + + + + + + + +{ +"title": "Security (Apex, Security)", +"tags": "", +"keywords": "Security", +"url": "pmd_rules_apex_security.html#security", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexBadCrypto (Apex, Security)", +"tags": "", +"keywords": "ApexBadCrypto", +"url": "pmd_rules_apex_security.html#apexbadcrypto", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexCRUDViolation (Apex, Security)", +"tags": "", +"keywords": "ApexCRUDViolation", +"url": "pmd_rules_apex_security.html#apexcrudviolation", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexCSRF (Apex, Security)", +"tags": "", +"keywords": "ApexCSRF", +"url": "pmd_rules_apex_security.html#apexcsrf", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexDangerousMethods (Apex, Security)", +"tags": "", +"keywords": "ApexDangerousMethods", +"url": "pmd_rules_apex_security.html#apexdangerousmethods", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexInsecureEndpoint (Apex, Security)", +"tags": "", +"keywords": "ApexInsecureEndpoint", +"url": "pmd_rules_apex_security.html#apexinsecureendpoint", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexOpenRedirect (Apex, Security)", +"tags": "", +"keywords": "ApexOpenRedirect", +"url": "pmd_rules_apex_security.html#apexopenredirect", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexSharingViolations (Apex, Security)", +"tags": "", +"keywords": "ApexSharingViolations", +"url": "pmd_rules_apex_security.html#apexsharingviolations", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexSOQLInjection (Apex, Security)", +"tags": "", +"keywords": "ApexSOQLInjection", +"url": "pmd_rules_apex_security.html#apexsoqlinjection", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexSuggestUsingNamedCred (Apex, Security)", +"tags": "", +"keywords": "ApexSuggestUsingNamedCred", +"url": "pmd_rules_apex_security.html#apexsuggestusingnamedcred", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexXSSFromEscapeFalse (Apex, Security)", +"tags": "", +"keywords": "ApexXSSFromEscapeFalse", +"url": "pmd_rules_apex_security.html#apexxssfromescapefalse", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "ApexXSSFromURLParam (Apex, Security)", +"tags": "", +"keywords": "ApexXSSFromURLParam", +"url": "pmd_rules_apex_security.html#apexxssfromurlparam", +"summary": "Rules that flag potential security flaws." +} + + + + + +, + + + + + + + +{ +"title": "Security (Salesforce VisualForce, Security)", +"tags": "", +"keywords": "Security", +"url": "pmd_rules_vf_security.html#security", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "VfCsrf (Salesforce VisualForce, Security)", +"tags": "", +"keywords": "VfCsrf", +"url": "pmd_rules_vf_security.html#vfcsrf", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "VfUnescapeEl (Salesforce VisualForce, Security)", +"tags": "", +"keywords": "VfUnescapeEl", +"url": "pmd_rules_vf_security.html#vfunescapeel", +"summary": "Rules that flag potential security flaws." +} + + + + + +, + + + + + + + +{ +"title": "Security (Java, Security)", +"tags": "", +"keywords": "Security", +"url": "pmd_rules_java_security.html#security", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "HardCodedCryptoKey (Java, Security)", +"tags": "", +"keywords": "HardCodedCryptoKey", +"url": "pmd_rules_java_security.html#hardcodedcryptokey", +"summary": "Rules that flag potential security flaws." +} +, + +{ +"title": "InsecureCryptoIv (Java, Security)", +"tags": "", +"keywords": "InsecureCryptoIv", +"url": "pmd_rules_java_security.html#insecurecryptoiv", +"summary": "Rules that flag potential security flaws." +} + + + + + +, + + + + + +{ +"title": "Similar projects", +"tags": "", +"keywords": "", +"url": "pmd_projectdocs_trivia_similarprojects.html", +"summary": "" +} + + + +, + + + + + + + +{ +"title": "Suppressing warnings", +"tags": "userdocs", +"keywords": "suppressingwarningssuppresswarningsnopmdviolationSuppressXPathviolationSuppressRegex", +"url": "pmd_userdocs_suppressing_warnings.html", +"summary": "Learn how to suppress some rule violations, from the source code using annotations or comments, or globally from the ruleset" +} + + + +, + + + + + + + + + + + + + + + + + + + + + + + + + +{ +"title": "Testing your rules", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_testing.html", +"summary": "Learn how to use PMD's simple test framework for unit testing rules." +} + + + +, + + + + + +{ +"title": "Tools / Integrations", +"tags": "userdocstools", +"keywords": "", +"url": "pmd_userdocs_tools.html", +"summary": "" +} + + + +, + + + + + + + + + +{ +"title": "Salesforce VisualForce Rules", +"tags": "rule_referencesvf", +"keywords": "", +"url": "pmd_rules_vf.html", +"summary": "Index of all built-in rules available for Salesforce VisualForce" +} + + + +, + + + + + +{ +"title": "VM Rules", +"tags": "rule_referencesvm", +"keywords": "", +"url": "pmd_rules_vm.html", +"summary": "Index of all built-in rules available for VM" +} + + + +, + + + + + +{ +"title": "Writing documentation", +"tags": "devdocs", +"keywords": "documentation, jekyll, markdown", +"url": "pmd_devdocs_writing_documentation.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Writing a custom rule", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_writing_java_rules.html", +"summary": "Learn how to write a custom rule for PMD" +} + + + +, + + + + + +{ +"title": "Writing a custom rule", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_writing_pmd_rules.html", +"summary": "" +} + + + +, + + + + + +{ +"title": "Introduction to writing PMD rules", +"tags": "extendinguserdocsgetting_started", +"keywords": "", +"url": "pmd_userdocs_extending_writing_rules_intro.html", +"summary": "Writing your own PMD rules" +} + + + +, + + + + + +{ +"title": "Writing XPath rules", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_writing_xpath_rules.html", +"summary": "This page describes XPath rule support in more details" +} + + + +, + + + + + +{ +"title": "XML Rules", +"tags": "rule_referencesxml", +"keywords": "", +"url": "pmd_rules_xml.html", +"summary": "Index of all built-in rules available for XML" +} + + + +, + + + + + +{ +"title": "XSL Rules", +"tags": "rule_referencesxsl", +"keywords": "", +"url": "pmd_rules_xsl.html", +"summary": "Index of all built-in rules available for XSL" +} + + + +, + + + + + +{ +"title": "Your first rule XPath", +"tags": "extendinguserdocs", +"keywords": "", +"url": "pmd_userdocs_extending_your_first_rule.html", +"summary": "Introduction to rule writing through an example." +} + + + + + + + + + +] diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000000..d09943ce93 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,675 @@ + + + + + + + + + + + https://pmd.github.io/pmd/pmd_devdocs_major_adding_new_cpd_language.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_major_adding_new_language.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_major_adding_new_metrics_framework.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools_ant.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex.html + + + + + + https://pmd.github.io/pmd/pmd_apex_metrics_index.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_experimental_ast_dump.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_best_practices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_ecmascript_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_vm_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_plsql_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_modelica_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_bestpractices.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_building.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools_ci.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_cli_reference.html + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_rules_ecmascript_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_rules_plsql_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_rules_xsl_codestyle.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_configuring_rules.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_cpd.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_cpd_report_formats.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_credits.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_defining_properties.html + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp_design.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_design.html + + + + + + https://pmd.github.io/pmd/pmd_rules_vm_design.html + + + + + + https://pmd.github.io/pmd/pmd_rules_plsql_design.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_design.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_designer_reference.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_development.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_documentation.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_documentation.html + + + + + + https://pmd.github.io/pmd/pmd_rules_ecmascript.html + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_ecmascript_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_vm_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_plsql_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_pom_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_rules_xml_errorprone.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_faq.html + + + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools_gradle.html + + + + + + https://pmd.github.io/pmd/pmd_about_help.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_how_pmd_works.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_incremental_analysis.html + + + + + + https://pmd.github.io/pmd/index.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_installation.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools_java_api.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java.html + + + + + + https://pmd.github.io/pmd/pmd_java_metrics_index.html + + + + + + https://pmd.github.io/pmd/pmd_languages_jsp.html + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp.html + + + + + + https://pmd.github.io/pmd/license.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_committers_main_landing_page.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_making_rulesets.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools_maven.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_trivia_meaning.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_committers_merging_pull_requests.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_metrics_howto.html + + + + + + https://pmd.github.io/pmd/pmd_rules_modelica.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_multithreading.html + + + + + + https://pmd.github.io/pmd/js/mydoc_scroll.html + + + + + + https://pmd.github.io/pmd/news.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_trivia_news.html + + + + + + https://pmd.github.io/pmd/news_archive.html + + + + + + https://pmd.github.io/pmd/pmd_next_major_development.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_performance.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_performance.html + + + + + + https://pmd.github.io/pmd/pmd_rules_xsl_performance.html + + + + + + https://pmd.github.io/pmd/pmd_rules_plsql.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_report_formats.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_pmdtester.html + + + + + + https://pmd.github.io/pmd/pmd_rules_pom.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_trivia_products.html + + + + + + https://pmd.github.io/pmd/pmd_release_notes.html + + + + + + https://pmd.github.io/pmd/pmd_release_notes_old.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_committers_releasing.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_roadmap.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_rule_deprecation_policy.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_rule_guidelines.html + + + + + + https://pmd.github.io/pmd/pmd_rules_scala.html + + + + + + + + https://pmd.github.io/pmd/pmd_rules_jsp_security.html + + + + + + https://pmd.github.io/pmd/pmd_rules_apex_security.html + + + + + + https://pmd.github.io/pmd/pmd_rules_vf_security.html + + + + + + https://pmd.github.io/pmd/pmd_rules_java_security.html + + + + + + https://pmd.github.io/pmd/pmd_projectdocs_trivia_similarprojects.html + + + + + + + + https://pmd.github.io/pmd/pmd_userdocs_suppressing_warnings.html + + + + + + + + + + + + + + + + + + + + + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_testing.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_tools.html + + + + + + + + + + https://pmd.github.io/pmd/pmd_rules_vf.html + + + + + + https://pmd.github.io/pmd/pmd_rules_vm.html + + + + + + https://pmd.github.io/pmd/pmd_devdocs_writing_documentation.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_writing_java_rules.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_writing_pmd_rules.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_writing_rules_intro.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_writing_xpath_rules.html + + + + + + https://pmd.github.io/pmd/pmd_rules_xml.html + + + + + + https://pmd.github.io/pmd/pmd_rules_xsl.html + + + + + + https://pmd.github.io/pmd/pmd_userdocs_extending_your_first_rule.html + + + + \ No newline at end of file diff --git a/sitemap_generator.sh b/sitemap_generator.sh new file mode 100755 index 0000000000..03e25a0bcf --- /dev/null +++ b/sitemap_generator.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +# Sitemap generator for pmd.github.io main landing page. +# Assumes we have the latest version of the site under "latest" +# https://www.sitemaps.org/protocol.html + +WEBSITE_PREFIX="https://pmd.github.io/" +DOC_PREFIX="latest/" +DATE=`date +%Y-%m-%d` +# Priority is relative to the website, can be chosen in {0.1, 0.2, ..., 1} +# Default priority is 0.5 +LATEST_PRIORITY=0.8 + + +# Writes to standard output + +cat << HEADER_END + + + + + ${WEBSITE_PREFIX}index.html + 1 + monthly + $DATE + + + + ${WEBSITE_PREFIX}${DOC_PREFIX}index.html + 0.9 + monthly + $DATE + + + + +HEADER_END + + +for page in ${DOC_PREFIX}pmd_*.html +do + + cat << ENTRY_END + + ${WEBSITE_PREFIX}$page + $LATEST_PRIORITY + monthly + $DATE + + +ENTRY_END + +done + +echo "" + diff --git a/tag_devdocs.html b/tag_devdocs.html new file mode 100644 index 0000000000..d4bb17c3ff --- /dev/null +++ b/tag_devdocs.html @@ -0,0 +1,1949 @@ + + + + + + + + +Developer and contributor documentation | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Developer and contributor documentation

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    How to add a new CPD languagePage How to add a new CPD language
    Adding PMD support for a new languagePage How to add a new language to PMD.
    Adding support for metrics to a languagePage PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. ...
    Creating XML dump of the ASTPage Creating a XML representation of the AST allows to analyze the AST with other tools.
    Building PMD from sourcePage Note: TODO add IDE specific indications Compiling PMD JDK 11 or higher Note: While Java 11 is required for building, running PMD only requires Java 7 (or Java 8 for Apex...
    Developer ResourcesPage The next version of PMD will be developed in parallel with this release. We will release additional bugfix versions as needed. Source Code The complete source code can be found on github: github.com/pmd/pmd - main PMD repository. Includes all the code to support all languages, including this...
    How PMD WorksPage Processing overview of the different steps taken by PMD.
    PmdtesterPage Introduction Pmdtester is a regression testing tool that ensures no new problems and unexpected behaviors will be introduced to PMD after fixing an issue. It can also be used to verify, that new rules work as expected. It has been integrated into travis CI and is actually used automatically...
    RoadmapPage TODO: Update Future direction projects, plans Google Summer of Code Future directions Want to know what’s coming? Or, better, wanna contribute ? Here is the page listing what are our plans - when we have ones, for the future of PMD. It also give you hints at...
    Rule deprecation policyPage Describes when and how rules are deprecated
    Writing documentationPage PMD's documentation uses [Jekyll](https://jekyllrb.com/) with the [I'd rather be writing Jekyll Theme](http://idratherbewriting.com/documentation-theme-jekyll/index.html). Here are some quick tips. ## Format The pages are in general in [Github Flavored Markdown](https://kramdown.gettalong.org/parser/gfm.html). ## Structure The documentation sources can be found in two places based on how they are generated: - the ones that are...
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_extending.html b/tag_extending.html new file mode 100644 index 0000000000..e330169a4a --- /dev/null +++ b/tag_extending.html @@ -0,0 +1,1973 @@ + + + + + + + + +Extending PMD | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Extending PMD

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    How to add a new CPD languagePage How to add a new CPD language
    Adding PMD support for a new languagePage How to add a new language to PMD.
    Adding support for metrics to a languagePage PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. ...
    Index of Apex code metricsPage Index of the code metrics available out of the box to Apex rule developers.
    Defining rule propertiesPage Learn how to define your own properties both for Java and XPath rules.
    The rule designerPage Learn about the usage and features of the rule designer.
    Index of Java code metricsPage Index of the code metrics available out of the box to Java rule developers.
    Using and defining code metrics for custom rulesPage Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provi...
    Rule guidelinesPage Rule Guidelines, or the last touches to a rule
    Testing your rulesPage Learn how to use PMD's simple test framework for unit testing rules.
    Writing a custom rulePage Learn how to write a custom rule for PMD
    Writing a custom rulePage The information on this page has been split into several separate pages. Please update your bookmarks: * [Introduction to writing rules](pmd_userdocs_extending_writing_rules_intro.html) * [Your First Rule](pmd_userdocs_extending_your_first_rule.html) introduces the basic development process of a rule with a running example * [Writing XPath Rules](pmd_userdocs_extending_writing_xpath_rules.html) explains a bit more about XPath rules and our...
    Introduction to writing PMD rulesPage Writing your own PMD rules
    Writing XPath rulesPage This page describes XPath rule support in more details
    Your first rule XPathPage Introduction to rule writing through an example.
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_getting_started.html b/tag_getting_started.html new file mode 100644 index 0000000000..4141129a25 --- /dev/null +++ b/tag_getting_started.html @@ -0,0 +1,1907 @@ + + + + + + + + +Getting started pages | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Getting started pages

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    Configuring rulesPage Learn how to configure your rules directly from the ruleset XML.
    Installation and basic CLI usagePage Sums up the first steps to set up a CLI installation and get started using PMD
    Making rulesetsPage A ruleset is an XML configuration file, which describes a collection of rules to be executed in a PMD run. PMD includes built-in rulesets to run quick analys...
    Introduction to writing PMD rulesPage Writing your own PMD rules
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_languages.html b/tag_languages.html new file mode 100644 index 0000000000..3d5916d863 --- /dev/null +++ b/tag_languages.html @@ -0,0 +1,1883 @@ + + + + + + + + +Supported Lanugages | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Supported Lanugages

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_metrics.html b/tag_metrics.html new file mode 100644 index 0000000000..951e3b64d4 --- /dev/null +++ b/tag_metrics.html @@ -0,0 +1,1907 @@ + + + + + + + + +Code metrics | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Code metrics

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    Adding support for metrics to a languagePage PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. ...
    Index of Apex code metricsPage Index of the code metrics available out of the box to Apex rule developers.
    Index of Java code metricsPage Index of the code metrics available out of the box to Java rule developers.
    Using and defining code metrics for custom rulesPage Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provi...
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_release_notes.html b/tag_release_notes.html new file mode 100644 index 0000000000..d9c29c89a5 --- /dev/null +++ b/tag_release_notes.html @@ -0,0 +1,1883 @@ + + + + + + + + +Release Notes Pages | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Release Notes Pages

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_rule_references.html b/tag_rule_references.html new file mode 100644 index 0000000000..a58b94c409 --- /dev/null +++ b/tag_rule_references.html @@ -0,0 +1,1955 @@ + + + + + + + + +Rule references | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Rule references

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    Apex RulesPage Index of all built-in rules available for Apex
    Ecmascript RulesPage Index of all built-in rules available for Ecmascript
    Java RulesPage Index of all built-in rules available for Java
    Java Server Pages RulesPage Index of all built-in rules available for Java Server Pages
    Modelica RulesPage Index of all built-in rules available for Modelica
    PLSQL RulesPage Index of all built-in rules available for PLSQL
    Maven POM RulesPage Index of all built-in rules available for Maven POM
    Scala RulesPage Index of all built-in rules available for Scala
    Salesforce VisualForce RulesPage Index of all built-in rules available for Salesforce VisualForce
    VM RulesPage Index of all built-in rules available for VM
    XML RulesPage Index of all built-in rules available for XML
    XSL RulesPage Index of all built-in rules available for XSL
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_tools.html b/tag_tools.html new file mode 100644 index 0000000000..36159a741e --- /dev/null +++ b/tag_tools.html @@ -0,0 +1,1919 @@ + + + + + + + + +Tools and integrations | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Tools and integrations

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    Ant Task UsagePage PMD Description Runs a set of static code analysis rules on some source code files and generates a list of problems found. Installation Before you can use the pmd task in your ant build.xml file, you need to install PMD and its libraries...
    Continuous Integrations pluginsPage Introduction PMD can be integrate through some of the Continuous Integration tools that exist now. Here is a list of known (to us) plugin to do so. Hudson Plugin Hafner Ullrich has developed a PMD plugin for Hudson. Please check the plugin homepage for more info. <h2...
    GradlePage The Gradle Build Tool provides a PMD Plugin that can be added to your build configuration. Technically it is based on the Ant Task. Example In your build.gradle add the following: plugins { id 'pmd' } Custom ruleset...
    PMD Java APIPage The easiest way to run PMD is to just use a build plugin in your favorite build tool like Apache Ant, Apache Maven or Gradle. There are also many integrations for IDEs available, see Tools. If you have your own build tool or want to integrate...
    Maven PMD PluginPage Maven 2 and 3 Running the pmd plugin Choosing the plugin version When adding the maven-pmd-plugin to your pom.xml, you need to select a version. To figure out the latest available version, have a look at the official maven-pmd-plugin documentation. As of March 2020, the current...
    Tools / IntegrationsPage ## Automated Code Review ### Codacy [Codacy](https://www.codacy.com/) automates code reviews and monitors code quality on every commit and pull request. It gives visibility into the technical debt and it can track code style and security issues, code coverage, code duplication, cyclomatic complexity and enforce best practices. Codacy is static analysis...
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_troubleshooting.html b/tag_troubleshooting.html new file mode 100644 index 0000000000..3ad1051dc6 --- /dev/null +++ b/tag_troubleshooting.html @@ -0,0 +1,1883 @@ + + + + + + + + +Troubleshooting pages | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    Troubleshooting pages

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tag_userdocs.html b/tag_userdocs.html new file mode 100644 index 0000000000..e78052954b --- /dev/null +++ b/tag_userdocs.html @@ -0,0 +1,2039 @@ + + + + + + + + +User documentation | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
     
    + +
    + + + +
    + + + + + + + + + + + + + + +
    + + + + +
    +
    +

    User documentation

    +
    + + + +
    + + + + + + + + +
    + + + + + + + + + + Edit me + + + +

    The following pages and posts are tagged with

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TitleTypeExcerpt
    Ant Task UsagePage PMD Description Runs a set of static code analysis rules on some source code files and generates a list of problems found. Installation Before you can use the pmd task in your ant build.xml file, you need to install PMD and its libraries...
    Best PracticesPage Choose the rules that are right for you Running every existing rule will result in a huge number of rule violations, most of which will be unimportant. Having to sort through a thousand line report to find the few you’re really interested in takes all the fun out of...
    Continuous Integrations pluginsPage Introduction PMD can be integrate through some of the Continuous Integration tools that exist now. Here is a list of known (to us) plugin to do so. Hudson Plugin Hafner Ullrich has developed a PMD plugin for Hudson. Please check the plugin homepage for more info. <h2...
    PMD CLI referencePage Full reference for PMD's command-line interface, including options, output formats and supported languages
    Configuring rulesPage Learn how to configure your rules directly from the ruleset XML.
    Finding duplicated code with CPDPage Learn how to use CPD, the copy-paste detector shipped with PMD.
    Report formats for CPDPage Overview of the built-in report formats for CPD
    Defining rule propertiesPage Learn how to define your own properties both for Java and XPath rules.
    The rule designerPage Learn about the usage and features of the rule designer.
    GradlePage The Gradle Build Tool provides a PMD Plugin that can be added to your build configuration. Technically it is based on the Ant Task. Example In your build.gradle add the following: plugins { id 'pmd' } Custom ruleset...
    Incremental AnalysisPage Explains how to use incremental analysis to speed up analysis
    Installation and basic CLI usagePage Sums up the first steps to set up a CLI installation and get started using PMD
    PMD Java APIPage The easiest way to run PMD is to just use a build plugin in your favorite build tool like Apache Ant, Apache Maven or Gradle. There are also many integrations for IDEs available, see Tools. If you have your own build tool or want to integrate...
    Making rulesetsPage A ruleset is an XML configuration file, which describes a collection of rules to be executed in a PMD run. PMD includes built-in rulesets to run quick analys...
    Maven PMD PluginPage Maven 2 and 3 Running the pmd plugin Choosing the plugin version When adding the maven-pmd-plugin to your pom.xml, you need to select a version. To figure out the latest available version, have a look at the official maven-pmd-plugin documentation. As of March 2020, the current...
    Using and defining code metrics for custom rulesPage Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provi...
    Report formats for PMDPage Overview of the built-in report formats for PMD
    Rule guidelinesPage Rule Guidelines, or the last touches to a rule
    Suppressing warningsPage Learn how to suppress some rule violations, from the source code using annotations or comments, or globally from the ruleset
    Testing your rulesPage Learn how to use PMD's simple test framework for unit testing rules.
    Tools / IntegrationsPage ## Automated Code Review ### Codacy [Codacy](https://www.codacy.com/) automates code reviews and monitors code quality on every commit and pull request. It gives visibility into the technical debt and it can track code style and security issues, code coverage, code duplication, cyclomatic complexity and enforce best practices. Codacy is static analysis...
    Writing a custom rulePage Learn how to write a custom rule for PMD
    Writing a custom rulePage The information on this page has been split into several separate pages. Please update your bookmarks: * [Introduction to writing rules](pmd_userdocs_extending_writing_rules_intro.html) * [Your First Rule](pmd_userdocs_extending_your_first_rule.html) introduces the basic development process of a rule with a running example * [Writing XPath Rules](pmd_userdocs_extending_writing_xpath_rules.html) explains a bit more about XPath rules and our...
    Introduction to writing PMD rulesPage Writing your own PMD rules
    Writing XPath rulesPage This page describes XPath rule support in more details
    Your first rule XPathPage Introduction to rule writing through an example.
    + + + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    +
    + + + diff --git a/tooltips.html b/tooltips.html new file mode 100644 index 0000000000..6406932903 --- /dev/null +++ b/tooltips.html @@ -0,0 +1,75 @@ + + + Tooltip Demo + + + + + + + + + + + +

    Tooltip Demo

    + +

    This page is purposely separated out from the rest of theme so you can see the bare minimum code to add to a page, without all the other theme's code getting in the way.

    + +

    Content in the tooltips (actually "popovers" according to Bootstrap lingo) can be pulled in dynamically by placing the JSON file on a remote host.

    + + + + + +

    Basketball

    + +

    Baseball

    + +

    Football

    + +

    Soccer

    + diff --git a/tooltips.json b/tooltips.json new file mode 100644 index 0000000000..73773c9ef3 --- /dev/null +++ b/tooltips.json @@ -0,0 +1,29 @@ +{ +"entries": +[ + +{ +"doc_id": "baseball", +"body": "Baseball is considered America's pasttime sport, though that may be more of a historical term than a current one. There's a lot more excitement about football than baseball. A baseball game is somewhat of a snooze to watch, for the most part." +} , + +{ +"doc_id": "basketball", +"body": "Basketball is a sport involving two teams of five players each competing to put a ball through a small circular rim 10 feet above the ground. Basketball requires players to be in top physical condition, since they spend most of the game running back and forth along a 94-foot-long floor." +} , + +{ +"doc_id": "football", +"body": "No doubt the most fun sport to watch, football also manages to accrue the most injuries with the players. From concussions to blown knees, football players have short sport lives." +} , + +{ +"doc_id": "soccer", +"body": "If there's one sport that dominates the world landscape, it's soccer. However, US soccer fans are few and far between. Apart from the popularity of soccer during the World Cup, most people don't even know the name of the professional soccer organization in their area." +} + +] +} + + +
  • d2Ln5=$&Yd_nM`%;;bOp!4Y< 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 blr`ZhUzy;{yTPf8g8vj1ROHj;&R+jNm`Az? literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000000..8e000bfb44 --- /dev/null +++ b/index.html @@ -0,0 +1,6362 @@ + + + + + + + + +Documentation Index | PMD Source Code Analyzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    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 WE_iS@c=$SaG#{^@+8ao3zy2RyUskFB literal 0 HcmV?d00001 diff --git a/images/designer/designer-top.png b/images/designer/designer-top.png new file mode 100644 index 0000000000000000000000000000000000000000..45942a0ed47793964908a140b7d8c8d6f36ee670 GIT binary patch literal 79215 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 z z{WMdif-I4yO}#i?bo=`_062kROqZI%=&JU#{Zb1-BTS~`WgqMn=Q7&Y)pQYPq6GsM zE3IE3%Qf4!z8!{GYfG`bsANwVzk-?RwKZH2G~2H|OCkxHpA7W-(G0l}%0m9+Nja0; zgN}UCA5UEvC0Jn@n(;b*CD#rVXDR7yJg}?nzqvE`jtT&J^-~0$f~g}ZpDDB?lQmA{ zd^cYp$ajn1!bxERl%PO{b}|FWPucpHrFwJwRqXz#>4c_#$oN~~tWA|uZ;$tswx9)V zU_0;2Jry)^gdK(2-$vKXWa)IK5Lw%^ksd!5V}UU0*KZkW0Dx%DktT(yo--cW=Hv8M zRrC`g<^IM1;@sqbzGxnLI zy0X`V5sf<3A9-vpDr6a!GaJeWy=Ws(wAysab(!<@$Brez(QzTmt;>Hr@vtR=wBg6z zhB)oP{1t*s-bph&Ez)yvwN{(dk+0Q2sEubwJ_XTYlPv7TMK8+g3!_%z+Zl>5?}Txi zSQIY*m&+?{4u7y}{%0nQa`nqIKNrE~R(r%!dU~_jT3sERws}aYWvh|zRX<3a-n2_d z2|qo%UhWLexqTY)McYT^d%USKQXobK_GdR#D|sAhh1TMFUR^U;K(lz456XMoP(i z;Mc-fge6-$7OsI(W#j!iED29{;n-_dR@PaI29P|?ueVBSD;J+b9sPkxCuQnrreu82 zct8-OG79Ql@5T7%bFA~H%%*2%qD0AK1|fii;oI*R#CStP-=(H}%5mEteXp=9)TXF8 z1pBK~AcXDp#zd7w#Hv%GQw9zzec2pJtghzG$wZi>hi5x3WShD5H&CQWB@3u`nHD^7 z>r|2oVEkw0RiZRfI_f?fM$;~gVbc-zXE;E7m?_$rG=?1%C#q^)m0C2j;?cTF!??q3Y=1V$xH#0Y`NEj#deYQ!W%FAAT?4DbchCJne&w}= zNnoH^K~?rBeUe}xx!Fx(-HT_)7q#ziy-13~O|NjBC4nHzG8zoX2)g%~2~X#Vp-jGd z%sCzwekI8BR{Lb?O7OCwrxg|<)?g`oKk*6DSQI`b=w{c3SUI%4bZf*Y^oF+oE9&l9 zar>D>dfoP1bErIjXMu-(;>pVBq@>!}+Gk7L0mXSV?XLS5{)(h3D;`hDY!!hE9!Xe* zz_CeJhE-f)aKGH)p|A?;^R=HKdqT<{rlc$A!I!*Y_`cAwCc*E@-07LeLB);WEcyxd zdO}GDXF!DPjVic3sJtCK@?gnhad!TKhXD3E*v|Xeo1?5vJ>BDA%wKyYUvb^`MB^r* z5$&H-#Eib!mCc(**icqRJMHO9S(2umSC8 zxIOy*{boWNJfMsIo5q5rxh#E=lrQdD9-U+&MR_EHt2o%wc6wvSZ6#Wh_hxgrknV=K zipLdg?v+A5j0yrOv3QQ>R-g9gRKxZi$^U!74|%Lc?eWso6IC{ZTYLt`7YmiCU9ZT^ zP%Vu+8wC zJ1^HrGy5{WiBwn@NelVO-?q4bYJ$Se;d!P;8Uf9}GgzY?^=|8Hl^Ze*RYa7s7Y^lAAySs{}5R z=4oBUh2nng%Gmco)4$?r3b0gN{eWG2}V?aUuV1K-G%KIo|KYqdc zvz%zuz^7PAgfa(qEEdDau1imiwe#`RGHSyPo~E0vzR{HQGyJ)_D4Z&f;lvmme#|&u zK12j-xh8y9@R8#1HXoCP@P5gKv#t`8OVxMu*fcT0!-sw>ZD|x2dN&WfrDaL={5RCZ z-2wB)=gj z&6t|ooUFSHfCk8WkJOczN;&@(Gi9DyA?<~<4TpZXV6DN~5tp-!i^=tlrI=3^PxDH1 ze^I$CFb<;UC2=b0mH$&q0su`DcR zxpxQC{q}F~)_)>MKj4+kkmU!;A46PiH(K$^8o}*eJ*5a2{*L$9ESMPMmdWHbO`B-T zxNsch+tuTL@z9{asEbGms6A%)Kpp<>CX|(oDGpV5YZ~VMb9z#Cm}zdh@LCxT4i8GJ zpsK2De2jU%J<;?BH+G}=*8Ullu_2KBlYC`6eau{G(LR{_=j}zJpy5HEkRv{Ewj#r$E#XxPM;U>33RlwmXgQp#%6}6;1r|+n4woK!b8aA0v8=f#|c4>oDrl7>9a`o{)mOM>BnX@|D+ee_O zF~`Mxzp!5xnA0lxtB73}fGcFi#*Pnphi7>rn$O~!{r;}jtN?F3eN68amKvCnp*I{U zJ7U=O=+5iFOnP^8HLMX`mfh5DB+T_~%4jh^_ZC-i`se~g`J>tJ9u2vRAf`){&rB?4 zwa@hSN(@k#)EG%k%1BI;71!$EBN}y9Rv0LsRceUd<$ZBW$xz9lE~6!5NjbyXW%x7_ zVp#s%?uB4IZ|UG5p0P(72Mf`Lbib8yYr={xE%EIaa)QTmt7N!JXpN(LY4`nJW2S`2 zAlmLmQEnq$iFCW~$$nINj8aZH!IIhET|N2J`wmggqJ`49^qoegB`n+d%CxsFo%zbl zl{?PPqX)~);I#yZW&lWjWH20D^||;PE&~Najl`|eg>i6U>V>oK?&NVfc;Z7yOwsMf zLY=L3JJo~}_E*kaXN+8>s=v!;b-6?;tDGjpG)mKHvP3_2_SfB)^{WJLx;E~(;jZin z^GkQVA2)#~YmIm}S64+d1V6h(cajuHvN;Y{5A!T}hKK6|6M{3Wre$vz80s+5FN&Zi z7Vk&JV-5-=#!#{@-&D`A8YA?idAZDo!a{9M1#PT&9mh~RZbvUBcg@lYvZ;o=VQjN@ zp6|M4ZNvkQhlcWbYmgz5E8m+7$icc((PNl0uEx17*Mf;-pST!|j;4a5AeEaX3LKDw zPi{uUqRp#(mTaXTlh-a@>_JIkQ#a4e-{Egf_W4b;y^rpq zxLO2~uZ`iMPLm!ujr<`$Y2!_@XlGqMBpSS}z=EJvKfy-W+c`-ScYqFe4o$k6=YM?aqz3T5ZTg!ANky%SUB018Z@cSF=F2eM^%x=7F{Flqq z?Oyvrc&;eR?T&RRm?C^UVVJ1E12XH*Vx;}SCr|jQ zH5N(IC;irsMD_@nr|a@7&3Dex$GHhvVGu{dI6ISj|8-M)bb0jfKM_Xjze&D3WDN9f z=#tKF`zusalJf)AL{2f=Zh<~J+%5jatA-Fe?ygz)JxfA@r=6UP7ahsOv)4uV+YjuuefK)#x)!h#RiAkG*P9xgkaLZBnP8US#kCs&&4;l9 zf0Vn^EGnzz7{`|<1ZK~a1FY-_7lj(f*SYDhvCCBfjdTT3-0r8fEY&m3anc?Cm@w)! zRoS1IoJM*dK8PL6ds~yv3II||*4#k*^Y=kR6LwTRJuintIh#>#d3bOIfPT`3$9A2& zs}uE_q>|`mec>h7hhPUHjMvmBd)9WeL|zCy5;T1JLb(MSxSE+ul?1~nw}$rHq?1WB z7PTV5nCHFNq9H209TfMLhwEmg15dEGjMaQW*(M%nc#r#TH$%`!2o+NZ@_LYd)$8BE zW`_rds%5RZthX4-#sc*V`zWamS2`Oa(vnHI5I{B6B4Ypuo3L-nXd>i-_JboA)V?EH za}9RhN@nVH0}}O*&u?z>2@(B9-W}INNqkP`+&q{U&_7m8HwNm}ojo+jX~4ej9jLnl zD!i)06ZMFZBo=fIgH*!57@w~mZ&*m?_P|pyWQZpsUrECoaaPxBg|MKSoI8F(q0Eo3 zFr_=&X$qonfWo&X^1 z0-kr?umlY8*&{0+aTMT?GhJ~_&I9no=AAm$!OX*QE&BZ`imW}y9Bbwtn%KoRDGc+} znxOEDKrZ(TQFu`YTdCwPk*;0A>e`q|o9X|}1%Q#kNNx#rQ4~Xkd|DufHP|obPN0?s zWm0G0{+u#;FqS5ax~JQ!u(Z%rMG>K^P{-dEd5%L52~-Po9MtQ-nfMAE+IR_iyx*su z>#}bvC05_5mmlmSkt}S*mB186zdER_k71=3wbe*ZHcDmG?k#T`XJT>K{P{`oc{+mc ziHpFpM|PRh)?H$9?j;2DNHqxFM*l$3rN7@RE9z{oGo|o_Yj|wF1*3!ev07B{`QaEE zv-te|86}2=jtu>EPfPvv{d!HCybuz*bHm4H(0p!wjSLizwF*J-u{}@K+^LGz=*(|` z46JPkXePShI1H}b;9t##2~I^yC}LP#(d$#wUESY%s+C{zh%g*9ep#t&wo-_Q>B`kmx0K^k zJemGj6a&{6e7i5b?(HezCRy{oo|WKqV2oyfC=TdBAswl@QQO0wvwg8U`JJv#zBY~{ zL*e!S*T=S<4FQDW&krVROR$Iqb%rL`$&Fmc5OF*FSQYp*B>l%_6Uu48$ptBSwU7hsRV4MUaz-JNjS6Z_ag(1QKD?Mkv!Av+MNbw zuj(+a9KdEg^xKOEQL_%CLfI4|AB@YAWKa!}n;uOyYidMP`KZ0+H}=Yov#ub@v#N++ zqBCu7jx2x_K6i1oL^qV z*XQxXm3u~{sYsYXc_OJ!zGL5<;Jm%8A?u; z+TQw!ba*;C2z6ZlphW~>se4JS2nm(ZNv9W*wUvX7XG@aS8K0*3sN+RH~f7Vh^B0v|1{XFxB;->@O z(?rlqm^w6Dnymh@7#t6+9Ekf`%A4aUceT?QV8@~U{{uBNxVsmN_OfFAh}^UTQ67*} z6pwS%j<)30c6LWvn%|W8#Cc0RYpwomQQY?7@eObXTXfpM?v`(dWZc|1pZ9y%segc_ zKnFW65_@V$v+6C(f3FO+uGS$&{6cI%=8U zojLJskyk)M3PapaF0n&D_wM>wYTs%~B6)q)I>6-i8dyc)@!Z1ohY(K5tdvni6iuuG z<@Xsfr`$(t}ytvTj?iBqk*1SAW(0i;9w`Fil)zY0_-1ad9L^(@Cc4} zJH}s25IcUsYMM?Mak-=tmegnY&WT%K7BF%-AQ9M!c6Vj3Rptp4v3IRO zoMp9bPT`k((82(JegZJSrUWdRA6X2mLMp4oEV08xHe2Du_R~HVVH>#IZ!^vkhwmDS_K7=-RKG&GSnYJS{J0J>?I2&dKcAO-FJ*gTMwHmdRI?!x3#wT2d2YOq zSy>l0ouhFVG8&ediYGM&;UUt)`bLbO0`%H=9bQ8wURqKdmv+;pJq>G<#zlRmtab@m zna&@ZK3<+*st3AU;@x?7x{6N3W3e~|j=Y?)_g25EoYTgZj<#`XPtdu-7<=Bm(2hyU zy}byfp<@{EiWC={g4W+IgP9&TF%y>L{UBQ$+(EYkPks}t$yj(;JTx7FwJ6=hEnTmd8*@gg79dDF17Cx3-1N1VOo?>Qx@b9e2DPbMJj$4IyVwi?kFhP z!?8{HQzJo8G*u+J($yxK=zi?o2*gb6e8>r_Jf~_nbzhDXTL}RsFAG+Yk1@R9-(Y?K zB1CeXo?KbRjW6DZ$|$D&Qwk990_WYVC&8=(0dyG8l#dZ13Y*jO0L`WopP+KLZOxi! zw#D(F0eYI1IwzIZAHibi^ne~(ma)L+h~G08iojo&(C)DA>d*EtzwO(=fYL;s0Ma4f z?xDCmVu467KU!JG3c?<;&q(S@XTK4yuXP=d+(kV<4xyqi^O)q|7QT6~siLb&Z*~)CIl1U2&{}&*PT@IsIg7)W~ zb$&EygV>xH7zTKe-#})FRMyi`{%-~?`j!FJPBb)dF`9%ciZwL{m~Nu<7>l${gZ)}+ zB+*8u1}wxotAz=I7EGX^rNL3`o82T8e8Abd{nyL9IZMVutaIF6Oe4NX`6O$1xt16M zg&T7qlJW}iHem}>7=jAkW-HB|m*t~BYB14*O?|!C=ZR>f*?%X+dR1wC*}Y>`cS~em zlCn|)ZKMa5aWpxIZ$niT{@6^>h{ndao!+;3<6;&>cF10~#Bxh>H z_Tl&B)zR+o>Zg>C5deD)57bnYsZ?t``R!j~amrD%w)}wL(QGkJ^5ZFy@?hc|i`wDn z`pVHO#A|x3*?oVS4esd+5bKWe;LY}s=yfZWsRiq)?pt8_p>V#s;$+`ZchpS|0iieE z+`LyEUi!OOvc>{E!F=e+aWUeg=GL9byn<(&C zA?8Apn6FwuqQAFKUHY|p`hnv2p9x4MGM)Z@#(y#i0hB%f7=-NKX)25V&qxA5lFVTfcAL>J~CJDnvU(8subOhT^6P7@@ zV9^5z7aXmyzUW>AA&I7#$kB#UX*Dsm<=qaJYcqm2qsh5D_41jOOp5Z9{{s;MhRWLS z*0KSa6H1<2u>M+O#aSkaD>lJr*mFH^Q_&D8pwbOV|Ahu8#%a^_RkZIF+<8mL#n0s5 zd{=)4vKE^!;LQu|V1l_B*LifWJlEiGpQQjw} z_+%*N#w|>nr-VkE3*8vP0{Fv05D)`Y75`Scvsi-M=pv+^*@HID`ao}uFpS2 z5O-C-scB3C2I-Jwqz$Civ#Jsjq@T#RQ?62pSW8li4qvcb%TnKZwV>!(j3EU4&en|m z7Je1jcanIihG^RB_>Fb6*ou{Yq>}yar8Qdf(FY-#?_`$mt`M4&2JZFvY&PHj_VHSQ z(_sig|1>;lN%vKIJKOfJ=)#m}3FgbwOs6TEk8-cMw0kOtc)_ZCljQOt?@WJp8##=I zX;12Yd^kOt^wbiT@A7jr(vc9^iohNym$#$=et#SAOsP_UBa;N%$K=PJiiFZVykFaW z_=I@!0i*(2vObWw)3!LP6DF_PM=+-Jz~5@h6)*^3tRk}-&W!O4RIflUCpsrZ5JXs^ zqz0s9HN_vY;yrM@J=4I+FC}!D+K`lZ+cpys3NHTuse=zcED?~Ct)qt-pY#9gP^m$S z#Sxp*#QnoTh?veteutj8f(jxlXiBgI4tL+zICD0SY*!W3fJ=e1r|c(=|u0!B;-YilbU7loSMo^x^X(G@(0hbV!; zgRnRH;ES(PU)jX&{!+ZR+n?RI zClgtC*;f9Gg>y`0X+f2;EdfDBQ)pt zzFnPk+~QFJ4AHYCOLqI_bdpvi7dkEVmD*C_W78>+z>B11UFQ!D;J4IXtGRrzK;~6% zWMGM1SR?RA{vqR-qL}T_@>Lf%Y4L^>k>{+gKsl{a?k&hEC5sAoH+TKhXJt!+Z4^sn z0mIMAJ@Lxec>%oMw6dal&M>2SS*G(B`eR`8KcA2v;m%q?aqYFN&2?D?p<@ufXPYRR z_d`~e6F-WN7zL1`n!%8EGa`imaG`Ob)zV0+dxMRq&@{8LiT&XP8?c5)v*#%WN)^kl zm!c;eRs!90IX(U#0D50t63oa3lGo$s$_!!3(VN%j=$v?DqC|9}UE>-P_ z-lxE#|D@pBML{fffeJkg&;u!HDb$Boh_EBreO}#wP@nv;=)M4>hXI+#oQolyhRt!r z3RyQ)$B#eplIw;p3k@}7SeoUxm??sh_63zX3NKUJT4B?|*V8QSv-QJG_v@2|JTx`! zi!j^r*)GoRu0-ldSiku|NcFk#3;DO4>Z`al3J~7BHX0I5-QsdftAke-FjSV7vVbCU zu(sGrw_c$`M3d?6cyaAWZ0HKLXsw_}7&fhFaG}V1p!BlbMF=KYe2cpLy6c=**}#nU z(Q)Or0>xd_*5c(eV(JtyN59kTV2;oOh}ORi?6uL)of;Na#DM+DQ0Gm2Ta)1FUdn{7 zCH)22?Rme4?LFGE8n%+zKw`qQTKJ|1s?r9lb`kYQ_XuH_f@tXFS?|hrX+QfQ9jux~ z{+gJ9NcC-!&xoOA%Mw&R<;u@(&Hof%mIwrOy5kLC)A3s=ZCKEHRQ}o9(;x-_GCQZb zwicR+gf@32vg^`dx&*T5GsHQ1&yx1cS+soYVyL&ueN$fSO7Een1;^J*?1Erb1$E!| z)@}2mG>mUk(4)3~?0bjP><@d^Vv(n6VsbA!Q!ItMk}$}+VbYUz*IM6JZjV&IC>?I( zAHP*%xs|HvG-@E8Q{0Z)=xr^s@%tk*& zglFxRcXI4kwRh&NS(E2i4qHLq4>YUE^*Zc(pM{ocgdO(=yeqQjn+2X`DdvZt=^xvt zP^~r|Eulr*Cs+k<+z>gBT(ZXhemJBV2>PJ{FDf|l z%Ko-2R?n61$``%=L7QuikQ%iaut(D)K*rM9E+VOvPf5MJ)CT?^?O@ggUwEqa2UoB@ z?xxys71O+0uOw78Ug0Cm*t=Li3$Q6yAIIU54C;^=KOXD<7l4f%g(n)j99CmCxAes1 zVE_jcRJWVmOt0WC;2{s~o9i2@x}<8H{OVbkJz&ZT{Ja??laJf85lw!D*(jJM2k(8; zy&)nnoHyHvkA%WqnG)GP8*?9@uuw>TiKclWxx?)alM zR`t@IEOGnzk0TiSfqQ!?25R-RiZ_tZ8YX zIEG6c5SIl+7vDQfKIPNe@7Nng3|j|7Iobis#lG>wjOO>uUrHoKan#Fjs27^nV>UWX zI%x+$OLvD~LnBHwU(&8#f+0$aWs^}*u(kjv9}BD2Y9+if3{^CnZcrRhnQg{JZDx`r z{N`M6y+n!tE9Ivv%0|ciZk>u@;G^=XhcSI=vy{%C!}YU(X7&Wm{|wJ}b-5KRAGF!)RrZs$ua?Q~g9_VhDbMhm_0H zhn}=Kd@M1ZQsg3LSVq*jJ18IrX=xC-zyuSMLeXS=%X0}C*X}#f^9$4^h}%iq?0(up zTQ8$0x*bN~uF+U6pR#%0qotAA`k>Sp4IRmJ#@=0I^tFPLL4QFxR|MC4@8R|UI@vZN zhpd7E91&DV%_LJG-i|ye{;|#Vnp042)Wbz3^voo6UXZW#K*6JvCv0TyR6T{^kN*yc z{4@!GL3d+P=<<7P%1B{t)QcLFX(bbKl$DGxhM- zP45w2S)ifKquRgi+*wGFir?hO46J`(h46SlWT4HX+}qa0@7i(}VZy@Od8tRt^LctZ z+U$NtR<>$apa`pRKlR;gcK^=5bFt+xy!<=R$e>k<7icV5>b-|QsN8m?M+f(D4#PB+f z=jP~XK)5FuT%)7dK{q3KUvzo>DXS2}!_EVzdpy0f#kIHGC>;8=fs0PiNm?BxvVr9N z@F+L;KI@epq0m}zWz>lz#nI65ZBQHyyjlIN=pK zVw*L)TQ8^9lIF<#XPwB2g3hKKufT+p`R-A4Pr45LlPNZU%cA8I$Y~7u;vBn*#A<{y z+#%R*?$YjQ%*K2ORPVc7rt|$KVKQC ziS11Y8_UbEV11OC!8KD;S@)K^X;qXgBO^M`_QN90I?(KH;jz&o;!%$=lI7(Dq|FN}ug9mJI=D<~ z$Sbb(4k{;Et(u3B$$Ru#9whvx)5QYi*hpm|t%C5y^U)Hb3^>4SzVlUtCMKSQcR3awKOB)%S8(cu-?5TyqChMY%b zuFEOcIeBoc2%Y0Cb4{yiL2W+lQv+iG@MnFi3p0Z zUoY41Zl<+WyyX#YxQ}NFbBWm@WZw|_mNb(xuq9OHgSf|;pWK7+OkX4@=l_gJwN^Ub zNgA+HeT;KeB&#?FQvjQ*f7i!-Z1N(a#>1kN-x`>nkL#+T^0XRJi|kKv-6Qtxi?0D z0$CZF*!ep~LX1dWH%KmhSDoEugU@=+4l5CGhJ<7|@V8j^!Z^9?uJ;#wp43!7R;?`@ z`*}a0K@dnf&HGSzgE~W-*iZy*O0&59_#I?vHi)3?6Ga3!@VYx$G1~c%R_imo$)lW! zHu)FCRw)nAU@3+ZilzN#tqNK4W>=%jkHeLjTd=v-q-`Im?65&%t z-OSxUUo7IL+Yb!%Dp9Y!zZ7tgFCvIsDNu1HjMGpD}Ad;$+;!@JR8qHU98-R9qk_AzRko%eVla*D6O!SraN{Tpm*Rv;w@g z;xNfZJGEP#qG$FgIhV+t8Id{ocdA82kEV08+%UP*vlW6{Ef_8>=eSnG!waZtE~0c2 za-@B}jF)5UvN(*rJuvVqB`f4d#;7e;Ac7VjMJi91o4!7Q{TzkX?(z5C0;6<1Sq|t( zN>0iqB?VmBEt;BvvM49JC#Z&@b|;3FC26In72L=Z%*F2E$v#Z}n_Fw=4W5rb6}cd~ z`^efFKNS@f56^SKPF!4Eo@i952BFbF4c^X#$UUY`n_=?T>prIs8cS@H>pk_IrdQkK ztFp}O;A_BdL;yq(dg^IQZb+H>kCtsEhwfuQSVQfSBKi1vyh%DYr94WX_mH^%3i_?x z!2v?P<$w&d(l0u6#x)FGLLs^K<)D{O3zzKG&@GYIb!6h9Z)?~XL$%?;H z)F{jXn@((IRNR%-KxCiewz>fcL1fiDiWZ&^(WGd`YG9YC zWqG{-+0kVmZ6hg5z zZ=v$r=eQD#E%iMar3|`leG|hwmlqH_`3@D5#dLzOMN8*7M~g9=%@kQE(RNAx9}_}L z$7-%eO?ZlP{-4@y_AXtuVzvDyeCH{y!XuK?06Stvc(`FGp8QrkO~;n%w(F z8dm0G^pR~_l7(@KTpcH$|CKD#=)A0(ypIqYKRoG&1{7DL-3gq87cO)jW+n+--zNqn>Tke+Ne6{*xQ6?+H^;f|szFr3Ui{^!Fm2k3--3k=8rmJ_;?)kHbE_`8_oK0l zunl*(7YsYOHCD|Md63*+C_L{P z{shFf8k^E+ve~RL7V|RS?u|Rr24F=Gh@$RR&{~y%fPN6_9x#}C6K|+R+fTzl|H%qcHo)QA)_kVPOccfK16P8>pfz&V% z-4saAE{^=}D1HNk-(FmIe7rW-e|n6I1g8cb9Nr`Jjk=zK!WIZQjdTIC5?UKVy7Y&? z$7j;TGpL;tRjNadG=q1d4UZo(EvNPkkahTMuJ|EcRa`n~Y_qI-G9V3DptB({y-8h; zQ+6PMTO25N?$qvxK|0SBGCpmdEPI*`y=tTHdFJG&`4ijEUek8HN)a66@CKEOVaiv| z`rPjCw$X!bdFpv}3WQk+k=p-@u(u9tD|*(2sZfd+C=R6rcPnmf32wz5io3g}g#y8g z1b26LODXQ|S{#BD_i)qpcg}b2_uTv3wf{=?UOQ{A%-U<_op)y3ZgG#M3RjjSF7!nr zSl;keEaCQi%X}zETUe9{q?oWcbf-}|%{Fsk)=nT|M=^lzq5DWPiB%?bJxho}_q;E@ zr_mZ2?)97YLAZq**$a<{w)C88oaC89YK;4V%<%bB;IVLmvg#`|N zY{4MXO(r5&!X2@-4gnTec3(r$rz4*4I_TNXolkG8i1)W&hItHXMJ= z4?c9!TgPo*y4nhYm2`NJ6=ej}RtH&2JJf&KIRH38YF2NXNnI{G!zGE$m|g@;o#Qq1 zt>sV5mb}98X$ose$zDPOAXMV*gYBdJ>&saJ%9`V4kHq{Mqgu+n{S#|s*PMHqgy^ja zJ0KG*!ka&@hk3HOcec7S=z{*>brEB^28aCPoI0-i+Cug<5 zq%M=B!^;8P)14sA{L(ia1A@S8TXdYH5~w-JVWs%(A<8li_39z2HvOr z7WQ-X&e3ypDqN_fk}-u0G2H=Z!Dxi=PaoJ3oY0a>ec08>mXXjVaJnt9aWSo7C|f_3lR?8q0ObGI=U76 z&s;Q>dxe**i}e)V6CSFS&x)E`&%Py>tGvcxwHM00IZZlKUo&)uI)11#eqK~I)_{iq zaboGcmQ-6|a`ypiN8|uPSC82ykD9ro<$SiIOSg%ingBwI=)py4j1S+d4~86BA|}Wl zJl4hup^~h8)wOkp+)t!_$A~I9q6Eh#`Vs=|2j{ zX>m5?;5~Ui^?we)d!N=}An$p)mn$MEoc8tPa48Rqx15hrPPGC=cr$No7?7;m+(G33 z_87wrv0joRl>TQ>UIg(6xcq;I*CBmX$v}TLhoN%+%poe3HlgajBI0E2sfWJ@+0LW!GH>pft#ulz7~5I+Y%3=xUP zb^#azk%J@3FmLomp?ukuOy1>VmU6Q{@K%|7iuKo;?=YI!*(xsaCde4=T~=ayjj;1Y zQIkDRp8i4TyX3o^4OHEKkR3n{{W?!8>%wk>OgPAl;+j=c$ zg~j4zB8`rct>j|GW6FHN+xc=y?89$^lHNdRP$KB*PE?6(+)}%30bEhSY?q=~{b0{oocE(*X+7t$JuK?&qcGWOhcf{}yb#e; z_!a^J{!{9S@88VvXG^#ISd(aX&H0#ItDb4ga%hZJzO>54l4a5v&=A`0tbMkpH(>OR z?ONVlU88ys206a$I@c-}t_DfIzHJ z*0E#?rfOi1Lw;q#?-*t0Rv=wB%(KiJKU-9rpexX$^*^Y*6id(_O~~zMlil#WE-;aS zo0}o;%P(|OEcF-D;fFaF$oy4g#r1lC(&f+H*sfOldCy{r(kRMY5~=QZq1~1F2FnyX zA{MFHa)h+3c5^Hqcg^UIWiO_E? zPjBz6&9|4Q2H()}?VK=N7&v%2!`~rU6t{h!6eZMp)o`k%FKcjh{VgT<6wTu!RN9r4 z``0=~88qF)IGB+uWIITJH*p_!`~is_nK%8xwePdS*ren3ptHQtQ_ZjXWxWGUM36ez z36)`5d>h$IB#8`fYw>s+pG+t&0-5F77zpyo7(Y!VAI(^*ef430Hsi({)n!~(d9E#P zYW#Z6f{FJh)xI%XUgfqb2~aFt+GrKh^aWYU1<{Q{mk*?eX-qvKmp|a#4xpf%?c(9Aqbj&yaH=$ zS5ja`s@xXh_r5>9Fy~iCxsph0J`bfA&i#>mzcZ}6Dngl^fZl&)`C7qN_^wpaAu%(Q zFjK&^^jiQETj<1*d|u~6apPO2w2b(;xKYRzH zG8D^#J3UYI@%$=F;$G9&fVk(>;ry79v9UBYz>A2xWuO z9T>SqIQ}+&2GL-L@rv0c{_cFNanJawq>3m@n2|KEAH%Xo8TjsP7RsKu(uY?cav7c~ zPgz45Z?((4s=m_G7wT4h^+(HonyvZ6zmT40LPrXF&ooxPUeQyOn$k8FljZrtWBd0s ze&+#&_yewji;Ys^`kfgy)nT3y)bimmW5)-(o%}%d2;+ho8R+|Op&NI8Qu1u=+sRcb z&D-$nn_wo@D)io7da1%bA6K)u&0p`4R(x`>CrSk#YN@uB>>) zSymfX1m=Rl;Bx*~YlN@p?_j}`(}d2=2Epqw;&Q$; z#reIA(cmQr3PFMeT+m}mj$9JBJY8=9pKF*T7XHA3&DH%)nn#kydP)KV8&xQ*z)VQc zckM#u9Wzb@A~z6ebTEc99*SOtA;Wu+M#pVg{Qe!Lh`$Ccj~1aUuuFlI!QMw^;Y56I zt(j0MKpqyi>iL8X3(|BjQ*z7YrsTAit2QN@)JF;?34KKvgNK?Dq zelt4EJM}^~5)J-t(AAD)x=#5PnOdo@lArey9Z~qN$YX~KMN#`(;%9|7JO}BEu$ZnF zb8zj}i}yEOeV+kFuBe@NG=arGXEP$nmP$%y2pUgDIgtZRZC9HYK|@Rp2E>e1+4Roc z{f{=n0(Cn`T(Uswrhy6B`Amnj1nwvz@y~Q=4<=vLcF8=H;(=BVX(k^75(miIl~oJp z>vew?isb-`1KR2kfy_uF$VM7pBIRn+7u>4HHYh;0AHgE*Q{O?wa;;OYR&@EWXXluN z)QlBFvNQujt5hCF_@O%ALr>gTYGA2l}>ujg~Zc zk6q+H0;eQWIPsaNVwQeVGEH*Fl%Q7gr?oby%P8R$!fRJ4uBMphXEq_vMVhD8zo$}Ods*=;@ zFPa#lsP|69Y0@mQT+~uVdN)qUVy!Oeq%<50-#kZ!He;lma@$%=G$wqxf{3(?HsK=8 zoW$`Z-a16Z-iqJW$x8@*6pYOx$no|HjL1<|^s4gqI`Q+zp)qUQ(phQ@TiiJX(!|2& z@#U1;%~0`hxxBY4dk>ypy97Oz3pd+EUhFJLPzc!ph{O8X5zm@{hL8^|>B4fiXnh8a zJ|ZU^CXH&K|IYoTMpJ1OTw9c?6Ei~Y=-5}6xfA!~!cqTF4GlM~t|LzK&_#gNjeF5Q zy5<)eLnk0KnoO4ZbvSLL~f-Sbw*X$Tr;o~BLlt`c|k=O@ie^pZAa{JZu<_N zsN;U712>LzJttMsuWEgHM zYhzboI1b#$D@5#|*hZaYCB}dT8*Sn){5{)eQc`**e27H(phWbrE?Own1^oSK$q3)MkK(Bw(d<-(&0kt$kd$~tFxiDS+o?e z%bVHzY*Ha(Z_{}5gOz6x4PEDC=4#Zmn}(+w{%cj4E$zKyb5cv?`RKGnm~f~MyV42y+s zo_csf}SLPQ*CXts&G%DoTWeh7Ft55aTVakeZ zI()R7AsN{~rOi3=nrsvaGO_`);en9$_sG*a0{rWXNzN?}0i)+FDkr7r_*80Um zAR=qX{d8pL>GoIrPKFCcWI8^kv^Q*F?~11P?LvfE{Y(XMs}{7he%5$FR+z0PB~sqF zo2I95Sl^ETwk;`mm<$fg~`hyw=+K^H$C74$_Pe=(6ParS#21kfDQo42~i zo_m(7yDH>D>*IwBejB*krrhZX-@qPg4zAj-+BsSFl~suZ-UX-dN2^;jEUGc$rcAq>`6n$EcjuuUeV(CX-xc39;bNXaSndg9($v%M7TiXdEM86 zN}HjwvzS=d*1D9(O**uMl679FO~vEdxl2lT}0>nlc9cTawwrHqW=r(`4Gw<%}+<9NVVX|ePQ?Jc`&|fg!zDS_OdR?-- zs=>I8ZFTp>5SNit(W7}uNZ{#LruW8?DhAAY?R%fq_0#TuhMwsLl)EZlRB>NLq}{HT z-3);3LL4O)+aV2#Ubmyg=qj`Zja%&@k2lL+NZ5D!6hTR%Xb{dxnOd_&n2AjIY zGFnZa`>Vyncye2O@{q4nIuZ>L*ze29Ge+Z4S-p@jc|6g}kZTD^&Br5mp@j!rwP4M( z(~!M^n&xllWYueRl!QehND2H}Yn6)>-iHy@fuE0G$K#Yfu zI3$;A*XmXp*<3tN*7mnXwK=Q9PJyYWN!AI+SD7FW*j{ZZnz+YD^BR9jK#|vD3N{N{ z>iK04%I(dpkWq@;V(U58%mVi@wY#UAwjGUecxV{=lv{WGCp-Y4UnM#vUT-@d_Uvc& zPYli#tD;jdtF@LT!{~s^i-1t74)wTL6;*~pF@fH17ELqSbe^rc$6*%pXM5$D#Ah1~ zg(POj(nOf{P|RI(TKQzdFJ*;^B4YxR3yULxeA zEBuf)jZJ$OeNhqBUK^?TPH-OTXY;Zo>ad6oP;|Sy(0k;)VPdgL#Ni6kI+j##<>UU) zS*wcI6Welg!jF#q;&RXEcU(9k*&yiIT9_yfP^b9o6FXUZ=v=Bq&|@ ztx4B(wz)XD)B3O&4l#ZR#mZ~WDd^p6{pLQhQS!z>i37G#VMbS2bh{R+)gXGJblNPq zkw{>b-FNSF@fAME+s4-yMHwT+Ls+7`e72qjQdso76J(MgAp!tgC)!{j?a!asfgktS z(CvIZ4>2`_=G6AuT+vaex!c+)Sw9cytVYB$Y@H9dKQt~Z*I)Z*%uqyS-1{_U?DfE= z9&g{}Wj{hBdc3v2K*_QH=%ZiN(0*zi=XHFS%ayG$eu;#XO3J%Rd70eqqM0;9_8M22 z6f%HO+$<$Ke-{ti;KsnYaV00AD;+7$ee$GiEB8RyRn;6{j2ioBn(h-sbZ@``8K($v zOIKW<5Ap6BHFl4d*|624bzi9vgFwa*64Bx{PGl&(kHo@T6 z1I@N=!t<+s>C?U|m2V>(=SX`{hO{3g_bRKtrZ&_ffyDkvd**Uw&&r1Rkd?qH1gu%7 zuSII=t)pp;0nk1K}GH9jGk(!F{84aEcMj0EKggiy&B@bg-kSX5W{?cq) z%I917wJLrN;ks7Ty+%|tZd%c4S#LMpoB6T1hb`>7y4y$Fv&uIJ%BQ+D>#b-zSj>vV*U2c+4DbCPE@x^f|iCaH*eB`i;{X8*((4M~7{TuJ@= zs^*8JvzQ7VX7x8q_Z|CDyl{ugu@E(kCrE2X#(eyAjn@lMP?UDZlk z9qluSJHK9Gho0)^lHsI^K31HFtlJrDQ@);CS!ke`_`eNLKEp5mGi{AYZk`@w{Pq@7?FzM!*eZ`H|yC21gj(gUlA$E z9qONJ)Jz_?iytRX2a63z8+hoOan3<`r0mpqkUzWD?9V>AD2pw| zvYXo`zL_w_#y%~PXL{Y6r{J*z3*WnPzrf1qncZgD_~!Hvu+ zbdn}xVW9A1%x$m>D%+!P$FC(Tj-GE>2+Fd9+x6+_ar4pH?d&uCn-dUK-AXL3F`3Jw zp3)iI_2P>1Nh*)$Kq22nNDV_cH>U4;z}7LFzL5D8dZ{{HjhdifMB~{noHxo{BbxWX z%TD)*rPpMP+X>GVG%H=Ka#IWQ6y(}BcLJT&^GZ4a7(RZif+le5PHH2JhvP(Y_-5*_ zu0kx_h}~P=7fZVi-&H2;+wwO zM)g>W8|STw48di7kdH~MpF)xx!K<--0RqCnPv^`21#q&e-9784?42)=)|j=JJ$&s zN1;DIGHp*7=X}Nq9eRplj-rW{g2w@iN>0;sS8u8vaBi z!mUM-IHDlg1NnJ6Xgep)ED2c$QofrQn~~GZ13A!9;2TbF|E?jP!9cPNegZ-wPc8U- zd^EB4#P^xtNGz?o?Io40LK5jX;zo#D;dPZGk*9F&L_v!MFb@p(-%~{q=}l}(r(v^r zoBcY)1~Hs->>>;!#9sXL{Q=rov~+#=YE+}q3px^kDRZ?#xd+&D3Q>#eO1PsRd9m4_ z3xD%YJ4#SKeb1GB(Pd9pG+1^bu!=5KOEvCwI*PHujoyQe-V37qbLAN8nDNswN7VRE zs5wLIi|*^C^Df{?|-c8{cI_s@QJGk{+2do2@r_BXiN zN&t*rAtKLor7|8gJF2@l5eLGQtP|yOMIjCjS#> zNG|AY{f5O8L;U9?eB|%Rs^r42v+{5FXc|=tp-;2^O(-d1LdV>~Ip5~X{>UpwB#T9q z0X_SJ5756x>z>#DS)J&F2)aT-dVKk3-G(}AChO34N)r9~3XbFBcY>daPZQXk7az*l zGDyYA*(3wAXGi|_?fLFz;vu4b3lfsKWZ}rd-Ps6q0<8pSE2Vo(*@@CcVrtZXiL7`) z+;ZOk0ZzC}N^1~(dlw~$Z5HpT+HvwwPBJelv*TJDvpICLl_CbG>N)3dE>m5wt7_z? z4LD_%6q2r=s(@e3^!PT7>}plC^NAd^QV7V7q#Cp%LQ=(mT?2Lb;9RB{V~py0sHM?- zz0zpxY9%gjwkKk#IH*pURSOdls?w-Nnb0ll!CM zng=|l*LFI$+x?q2gR8!GMM@onCbe-~8-u*7aMrp;M3rE^y9#->p_KbE^Q7{61GbRM zm`R#Q^_4v?nmB@Ovd4`<(<=pXuAMyln$f+x?!cBZdAlb$FBO`zOQijtI0X$#4pLB# zD=BaO4m+IfF5FHQ9tOuQsnK{Apfe47arv1du|DljYS{>IZy+QRbiZ^@Qy84ZNOj$5 zEMLhW!o%ShSiA0;3vWw_XJhrUIw|8Y7j{PkO0K0M2x|A|lZyI^5oG)bKU_7uPStmJ z`LR_`2wqqBxWA!sMt7L6V`fTTVRh-MT$zw6qGz);{b5|GBbnf`-Z_^h$=#n*-meKqcj;VZl2a$_*KCu$Gsv7$2Sv+$6nm4@%1GciztNusD^rrsn} zodW7~vK~F@PD;v)VGy8I9mJ7NFGfqzaZ%G681PWfzqrzH1X9n1)zpNh4rK1`HVg0! z2=a(z^U>7-@u%mR6Tq>~EWD-Latdx)5og#D;p`=e%>l!qZvm{Ck1X!XDVfv&_%_>7 zyX!;4Jnu^Er?UbBCmkoQv(j)%0PPa=gL~;`rlBEL^P%x*44iR#uFgefwd|413Q`${ zlWBalTwV*(g!eIAcP-*qY<@s;c*iqgYu>&y{R#q-UmNv2O%!_B=elPu^7dc*4HDSR ztZKFOG=du3yrC%$#Mb<7rgdq}w6z}bO1l99?&!@#YEO{><6bVX%OwR~VJ~mdXH5Lc zq6ViOvmgv`OMSOweK;d^5lAZG_vtDj*+?0Iv7BZ%A}7OwxQEAeG?k>XvT`z+qJly? zzq45~_7&@5Y6uI5ITyvUN#1Ys2 zYk0I~d1e~@%__4-MRsB@{HfyLLS-(I(&91iJKbeLuF*jni@i>w&+-XesRV7K0^ zS5pj@O{6Gp5#`w5uTE06@`h8JkGNNe+zcqDvkG?>^3`PyqGt##OCGj?^X)}D*~35T z;elkP>1NnG&eLkYuZ(|O_#hi~XW(gNlo~`?wLcadC0w1)m+zif0&c!2eH|iIEaPd~ zBUn{YkxW?f7T{#=>odBHV(xQ3P$%DR&0bunbhX-GJ1_{t9@*oVi_$Jkn3bUST~%*C zdGG*jEi;5A7o5FoLq5Z6e}v8p+UZ~It4ZVsx_P&ys2C*&PdUt6oQ)xOsOgzHb7==a zV<6PgL<9}wYwOXv>Vh|}=#y2zF8XIw@-Ercbtl5yL`gCV{*qmVhDb;jY-GK{H=D8U zOOBGBo;OJW2={hBUB+gkL{@ykwNx{ml}vd3g?)5*^WfpJJ?d`_gl#l`%(mR*^Wf@x zES-5^FCwz!ej=%8kYx_0j#}=H5v-Z#h!>)foD^14F(Sq9OlrPh*NM!>p?MWe=L=eU z6w%EnGzRB}l1GGIr3w&Tue6kGOqnd#c+AvLkQ3jzK+Dh4n{8K@^tck(h>u1Qz3ys| z2c3J{E^cc1xT)0hTm5>SnO>CodVR?ku?I-Z-of)8@y&($MIWFyA&darRvx)uBMZOJ zV~oY({T$6HK#@|F8eXcK{U`e0(!t**+A`Yj)RE|#1{Dwa_j%8Lky32|H{~8YI=p96 zR`o=M6~w0{S6c4iJ3Qxp_HN-G`x}9<#ukx#6QkUZ#Y<-kOOMXMwoEzJu?67{t=C)q zI&b!~4Ev%lFVqKr1iwh;FShZEdT61RJY6MYyTDK<^r%P}(4i{qAdDffEAdZWiXvFa z%Wrs3FBI!6duXPEs0vtsJrKrzZo8xyMWUO{`+%*2(RZi+#(P zy7uI3e!(-KD~*N^LC1~4ZIa;cTxi;IB-3`Yqea9l zjU*FR+r{>{SyFyeI!}DZC^7ts1u{|1<22W~_xHnTK_)3tAoiUXlIIF`+kP-orLg&n#` zwUmdx7?th#r@nLu)ur)sOl++AP~yq2U<%yvaAGdR$CQF!E?Kk-5OaL`!aB=fANWkc zkynY+*tcJ(9|Z7o;-h=}(Ypfmp`W9@4};t(e3?oZGp{zi-!yF$E38CLzjkhx=4hp< zNaaADZT-GClpOEnpb2R|Vq&FBi2lKQT!B-J&T_v;A*!3?l>ddbZQVNItsTF81tt}) zO}D!E=gRtV@iKxAl2{4FWNj`|*MaE{_aU#FFeZ&r)Vc(NNfU{avvPR!fM1?CSGo$VfjxI52jZJu2#q^_ledy*_=cs~f zv)|=8UmBPBRf0j;ic#ZLez{0c6MJ)Rf2;ts{vauExfwgn4F-O7@Q6?)4-w?3B*{p! zqMHuur&^z&l!lLsaFw3YxpEeH0Tb}(qi1K9onooC4_H*JYiEI{Ek)f~;f+i8)QyIm zZ(@bqon5~edIHU*r)O@}d=(822i90STAcb%?62*_nvh4MLx^J3Q@(tL4|m3r8g^oEN|sM2~Y$HeSX;b+$E1K zQC~Tcqv~lfI2sR5xvke_ThXB+Y4t8!nyGJ-ow_D?=Yyhc(QsA&!*m$ok`98@`0H3) zhXDj^-zd!cTo@uXemWo)ebgr7zYOX?{ncSur4gR=eN*n{#3FDsIPjzCz5(6!^@q;j zi>R|sCwauukF*LxToLfpZ)wrfXGScr-}@0OR_Vpp9yL@3M$frM_j;0v5Xv zYQ=GTYtiA&5HMAT)4FE69<`B)U)p*OX6akvyzO3K^y_inW!{046VU2C$092(j)AAq z857(6=T-!Nb;LDGNx}FuHdFzhj~W2bnuBcMDU@nI=zP@y0Af-D=^`N>+N0TlK{)+C zgQCJ@AJzgEmVn-levmOQ9Nc3kfi#7J;h2XV^9-`@7bH{CA5JSNHG(PbuERRjqowE< zTaG5f=ailWn4XSNQi);to=;1s05=(K4`a)^&D#|#^O^E78GXz|Q%O;qq@*y%V-dB>HQfkQv>e+4Q`GGHYNz8#jOO zyjvFcna*-nd0tR->13BV;cL;B-|-xS2zU9Z(N^MC3B|#iqqdjCIH;y6M;VnNU~uD? zu99Odrz`HSWH_^)3pLnVA~$2#Wgj|>42wJu@Yoa%sHw6?R5F@&HmTg@=Wua=%0q?Y zX^AwufA__Q(u3h zXXS(L);j(;L=#G|ux!P~ryGxeLC7*fp6mGSkJqj@7m$^*mg-zJejzZL{ckrF35ge_ zHQMhhFU}vEQSC>kqWUoTo4Sr8iP!S0G$|D60AR)O(5rol*imuugpUMRTWHwgso~yZN4Gu8sr5b$t4)wRZ(PZhjWnri~l@UYFOJ(a<(^6FyCkdD@ zjBQ|fBp{JMm=%Me1A0zSq?(L%IU>(XajBz$>~+Q-Hom@!U&y!ydfGOom>t^^Edwzo z%MbVAc|8dtt)fcH`2@B4Y!wlFIgptQm1YU<(-phj_vc>1IAz*(p*y}pn&10PoOecO zvg3^7<5cs*PSy@Qull${d0dAb7Aox?0*q~WT69bxBxyZ^6#xVPQT-jKA(H9FV(=7s zm3|8mIvLTnJ;RZv*3K3OCc2M8NIf}O0Y{*f_Fj&uT7IR1J{Hr%)6RPzijr>nd;gzp z8O?8r@<38_k2TG?h-HsJ2AvbP@54U7*01<%()@#6FGtMC^|H!X5(+Zb=o&7;9ierw z&C}N>b(CN#6D@Fwu-a@}{@pNfX&9LL5mqp!-&KtC{#iJu&F`|P%Lc815~0)?iwUL$ z+~`xaZguIR?hP6QlJNU0+e+IO3~wKn@o;?2F30UZ_#p+PNV9Ty`cAVdM5Pd)DE6g; zBL`<0L!oU{_;cBT0_%2BAEDt%WBs4}iaQ7o%@+`w_|OzxM#~fgi4Wa2M9VhJ25&%1 z2vG$BF$}1nbR4}|N$>5nR^%&ndhO+PG$fMGTIxBLo_ZokNY^bjsyA|g z8@ciNcL*-Sk2K!&ySf-^GY$@0uq40y7ZKQI2VNFs(CvrL@QGIz7KXtZe@Bb-1sxdU zH}rXdeHGFGQIk%!U>T{Iq1eJ;toaZU7=)MzL|a>rfiFZK3A&laeF%B*U&s>p*B5D6 zjcjTBlD{;2(azb6T0Lu=N7w!@;DhL6gv*HCz~Hu3qL9HCufJXD+i&%8J$7B}o#xu> zf8AL{s;V)onCzuRW46!^77AjuDol_I>gZvcMO6H^e&gD}ihmb6j7!_jtxoGJQ$`)& zkd_*P!6sH>9v^4-+bm5-=*wOh2mcx8n$at=rbWeV1TleLtm25oxE-8E8#Ab+#_(OP zoSTuKV%45TF>m=OhObVdprQ!Zpmw{&Ri}9KL2|^qHWtkw>IrK+Pbrri5M%OMrH>uM z4g1d@^(9P#Uf~fASw;o|O`L+3xCdQM+!`H@?i_EpJWb?M?@lTmOiQF`G;YHveB(bZ zkkYMyK;K*Qi+Q{u-IO(G*Zvp|I92V&8VY!8I|6Q;IcDbsC#nb= z8ev7}XEXCY?2hUycGK#avP-_>r`L8PV=44jf*87Lksg{ucqh>}WGD8oIZAy!`*B_b=g8iO!44Km80r}}@i4ZWOYBm&@)M_Mr{ z0;xR?wl1w`sIF9)Ok)bN2b9+x1b_+^T#~zLoQORS;uaicRl(RWsFk!}fFlIU56+jS z)=0ncV&=Ean^#9+n+zhA4{A15&?(|astq;V5xKA;-EJ8OcMQSljU=B>(Q^ml6Rir% zM2-H16Kf+fI7->Cr1ZB9YtV}#y7*Xuyr5%1ejLw< zt5)ApCDNo@Mb(2<)m=&eCzhA(&uL*uc*}W#AkQIFL8i3yKtGc-9WpY$UO5rQJ&PX&V{<04uuSQot#?ZRd9$JBeUYkDH#ABotWh zKIv@Hz7o2hADu^}5bJZJXvs_I3p&U_f zM7F+`e=SzG_RCr^`vPT<9=Nx5)_M9#!VbL8ZPE8-b4A$ua(~i(ZR|;i;X)X%#ouKP zx6_PovHH0|l2-KVL&S*7^tWEE`guZG#qIup8{q3Wp?p~=lO~{dydq35B4{)I_(m^D zs6gW*5{?#JGfj%yg+OiQn~TgcUNkKeh#)r|9l`tm}> zDtu}-_;U8fjr$xhad48nhNa$!6exZ~>i;N!4O-jR(I*EjmgGnpl;rLE8|c#-L85st zj;v?_*@@q>8fc;takgd)nGl4ld-w?~2|qVHjlt zEefjHU=~o+O8S_mJfJmx=)gy2=hOE`hBFTlCZ>MQJW0BLSwS(l(7U1Wz5Mx{0$H?k z?|5o)P)CX1F8Zvlpz#manx`RPv;iB;_EZwH@TBvK&5|Q|EGj@TWBsf7(8t?;X`s?$ z`~E-`>ch64ry4WPJeIEx^>I4iE(sM*GzYb(7Ziufs|Tgp@0piNR2(ziDW@_TlXU+p zrImPNb=S>{HZLF^j-@v(X4h62`HqRjz`k&`|ugd$8&vb_bu+Mcq^Lxa%Ew7kW z?q*&Zh$ep1F^bKu79P`gG_d0R14m==gAC9w>nkTfIzJW<2Q_=@Z6!CYg()!RW6@hc z%=2hqLD_;BP{#N>f`yQ@@cMn6LL_cN0)G7S#ghb)$9p=u=pkrL#)K&Z3=icW0MOT(gBu0x60$2&LulvNNU!N zD2i{oKsE)ssmWng_yo8(mYvgNVm|URRXpKwr8nLnC)}djR=2^%bhO#86bYk>B{1Hy zWsulrie#!57S9mdCy6e>8m5DfU{N~N0u3A-;)mMP7t_{Fe+PSTyzlsOp;F-qH+t3I zT_v?8IqN54fP!oSob{W(fpIR~wVssRB}9nV0O)et68>X+Du%Ufq)bzO4Bxn}muKNr z{|=rqq3L_npEeIP*%h3jrUT?4VqXs+MLL9NSzoDoN7V~Afp5%bE@Okym*_MyP<3gH z_-qqH`}VHwb|e(P7|2cZNn@f2GySwb$bP)Bm>xF})v=RBE9Coah>U~0G{#bRQRa>y zB&?amK+cTWB(BWLVpSKQ-NU!Sc-XgzCiheE$)bDoS?A}qY>l;OjH0*pX2e3XVcUKkAC}WW&pkG zzPs!?V7$GXtsl3nFpq>z287vV;d{HDT314WUqqIIle*Ff%9uE$uSa(wjqqq|?7 zwaUuk@}#bV=Scides~%=IXU@I_Hq_q{C`{g@8(qZ|LI2j0YSbd{ogoUKY#uV zm)OWFM{LKsF8@c}H%>L&!J05;(2<#0dh*l$qK0W?its$Ilj!st^foRM|YF;XxU- zd|GFPq5u3Xp!rPV*?&|`Ir4=6i>f)~zGZ8whD)a%c2;^J$saIa^T{ZO?9VJWhO^7m zff^Uw1pw+L+?Kv{*1wFBXy*(z1j&DhMyQvRm6o0-^}rlgtC(^yWDW>jSTFvFJE9fh zy?V9A<%aq4*tFyz0lUZnTl;P7x&`qyRDpXgsBqN(*2>&RL{r{^Uj%?LD_#M$U* zIt=?|g^4!5ZP-RHf^$;nAoRaF@^I3gkPm@Rv_k6N!`Xc|UX zK_T5V>86}nyNi-`p0^F5XI4b-gTMa!9ahPIBr~7!pBDwXb&|OQzV^ZmCO4;T%TOEq|Ip0+xmEN2h7GHYb5PM=94Ct7RhoWBL6=rc$FHq-k#g zD_;G`d)qSg?Mx38t9O5sK>nsP3FA=u*%PlKwVHeI(eX|U)PAuqJWMtHH63tN2;KoH`Ed1s~XVyl57tYn=?zApIY-|3_WSN%cV3udVKh+R_=U4=Ns}-uV~rxOEC2qpE23r> zp40g|MGHC>U)ZlKvq+)8)Umo_qMImhU0UO-n-V+0*o;qApo^R+zuB99-gL4e*Dar# z->Yl~YcVkx_>z(Rb{=~X!NDj_@)i0wE}~_hPVa8xeoLSA((um;-QWE3_Qo3H0&*k! zPJ*)Gv%aj)Ovwe(evc*3+DE8xu%v%4jw<&>RKrjRx{Sb4xk|Y3GwBXf!JC_kiZ2~> zP%HOY|BA`!I=e_Hx-8n+gv5fd8{Q&G13#$Bb_&VI3Um2C-ohCc&26NF<6M74vhE$ z`T)5j*wKY~;Cx&rYDupQuGu6eeDr zXw=|Msrou}mo8>p(|azbNnf>k>|{*3t-wb@qhADpr9OFEYo3`P*V#YkkMbPmi?l2X zda0lF?5EG)wY>ZOAFe-dV@JtP_|C;@mWmY4+;AQ)e8A(j{VNQb-lnz)^xNuq^d~}+-|+PU0Q)NNAH}E>Tu{6kR5Zw+YEhv99@9o&|Ha`yjPukTZ1T#?whe9@SLg{ z0|^v%iT<(9(z!(x5H5n|qu6}+!8=2Z4`)p+W$%Vc{z$qQLeder`VeibYAXDd-%gr4 z*kYyC6CvsLG#us!qIshe_{Zg?Zc*A3YGRV3sVAGZekR-1p@y-NZs_ABL=mY=Bh6}G zOmC5FI~B+@7G`0{%W(~oz?sMd{NmF=VgA*&yW4cG<+hN1J&4>{iC#hbLLAMpkI`9h zAQ_H9@#TRYG{@mQ&LI*ER)bly0Tf1}>8Dswrw^V-TQC*Hq&%Cd({jH3^vsy0idzR* zTo>dy{jrBdb+eVA>}jLNznAFyU@rTW)@LYKQ}=6B3>&lFr)xh!zLxD*XGAp9?#f>O zp?c{MgtM~)(+~DBnUr;gfXm0@YO!vjw`B}_+0=4;?HbY7-)JN?Ropv)d)NXogt zOucbReS9xgQ*xbF84#Gf(&^7*GZ*i@k-A%B!G-`+nm+}2YkZZb#*_v6h`WVYkQMHL z!G==BIwFmbAa1#B!Ht?SiXVA_9G!pX_}3H$zMW&THC1@|XeW%vR-a$EdEAa2qadzH z)@fh~S32F_V8tM1X1|C3bd8C^`!TOwkfPmrp2GBLe`iI~)Ww_*llx{90@>|XayXY# zsv$#=vPkPaB}C5WI9Q6vQN@ghvUx$2~5Ea!;dBf`_ z1rFznn173(I@BOr##8E89b|i!elkDvYHi}Mnx>PiHm zikUgZ>!LBG#{hKY{)?BU$j8+9&Hb2QMdaM$+#%beau-m}&vUQQKcNS^Z953nxPpw& z=axxOCb_3P+w`~qT1iEFIX0UxjEs@GRIphhZ(HnX96CoFma%);sYg}OWVke)vqM2t z`+0myiXX>#7u0+3yJ839I3ZQ&E-WUVWQI?xBgrO@fa^tLD*Io?eDD8+BL6bx8R+Th z|C=%Y|JJTHf%o{0^gv0i4_5niKyyu`9s&y6u5#e{BNhm*R0dBt@ix!nhWz5uqc@C zF>ys0;IhMG`R_8MwbJV&cYN|ZQ-weo32H=P-QuyHi^El>rPvfpOV?;b9jQO<3wpQv z0VC?0XcY$x1O)1|0#&KhKO}rz=%C)h;q;$DECd`QDnjaZ^Rw`Xd{RXD`P$A19M;Q87i|=^D`6Zom8(dbSE&48de-A8>7{hU%VZ6^kLfIK^0P?mKhDgO`o|Etg>4c;Cm>{tb%x#I0tc z4$2&iJ%0LrYJ0bjxCi1*-B`bvVOS2Rb(T4#3Z(IKqI0GV{7Zn6soi&>Jl|UX&Mo;@ z-Bsasn?q7jMW4gw_vL%i{~Mj&S`qy+R7T%;s`+g4e{uHKaaC2h3Fq8)^OP3hNzg{jw5KEwu#M%gO=3J`FWqC_4)%Q9=^b{KY z7CciTs#mekqB9&@eStKBU>uYF`O|0HA-BvDGsJf_fN&;)XLOL+d-_G@X?T z2VuDcsfaNW8}-2P{ge{w5;%@Y&FETy9rebqG$$WZrNL&9Df{Mh*9Rxs4R`sI<4ce7 zyuD*N@5=y2m#tzoyoKwo&t$cyL(@G@Yxgc5ROKJETOA)cDDg*cwFNJCo*OJQXpR4( zpunXGBnX??8^lLLvmhd5Csq6bzET|7^JH;`!RjS!9yHz9iH_~>y1KzmLm$GGcF_LMX$xNgT|s-Ygzc>+>X z(lpf(+PrZfsyw}JtX!7Pe<%TymmNC8+`_}w+T$6c7&++z@K}(1;W7gsxRa2VS97co6NC3p$;3`IYZ%F^7oDt3AvnWxzCf zUW%j_Gba($bbVREm?1)&?#r(kYoC~diH`21Y9cyR4X>_B-sN1hHRfzC9=H?K2TN(9S1f^<fj&lLe8&YNFWrfUuRhaVoI zql+d?n-TBs-fTr8kfET2P}Mj$`3{#Gww-%^$FgE)RIwNA2T7%cc^(nJyn#7PF|ShC z=J+M2`@*Z)S2^Es4+N2rei-x79d>Yy4Bb4xF`UR83$vA?)pwfI)NsvgAWI)-2=OH$ zt!J(nwjuicP(UI>(QNQQk!{vc;P)bNf95}M8sj2U;cDR;s)Sj_6eqXJ&_Qh@N$!N? z<^(ZQof3Rc>U8!tteVKhbS1DhcE*fc^w$8HFrUrGW~uM|qxBa>>2rpYLZpkdfo>;P z@^i5U*O!yQvE#D1+~&1TV`^P<(^(B}0<{-Bo!L|&JmBW_{_C824kdbYCnS4tVU-w1 zqCH$G_uO?pN(Sm)7f;n~=G);k*}}3^M4WVze)r@%xw0khfcXu(_ ze~a9?{JNLX!?ZM2Z@M9EXc{;#f8^58X;;sjwBA-DUgG4n$9VIXU941SIvOABW!OE| zxAWxv+{}CHvQ~cK>AfPGN+q1H9*bu)m(tsLNRvY%yp`ui#N*bNYg!LQqNFyTuH+cm zM~+~B=kf_4y;NmLs(gcpdrj(lEu&_i-pqPo>FMbivBoAPC1qx2A}f7xZ;0R8+FD%H zshN=$!V93Jqw6+e)r3g^B}c-BMJfk}huiiw66vI*8ADEkgS4FQC8V3RzDNq$hGT_u zC_W%D=&3@DiBQM#6jmCHeJE930(vE4t^5*O@qk7iP{@zAZuXYtUZ9-878@l-aWKX| zqm3Q*;?E06{%4J!kzhj(^Xnq5kKDt*i>l$0>WWNk9Mg97=ymTxHBR-6J+#0*i^O6W zOYp{5?hOX%Svc&N-y1H6{8%qU-o#R@@CUJU&I<<3yx#)=7pzP>NP9rPqzca~pWNxQ z;Cy}XHdaFUSW7la#;~xh&+t9_11wJa0oAR}*B+Q*9uz=fT>Xoe`bwXwnC>5;^2KCf zZ(-vL!Vlz?**TxhMNEORyHIkBrVAwf8S_(wEYkb?uA0sRHGIgGJF*1Zkhg^V>osao^VuUQ#;HIk#n zCf5tlGF$r*3TOnB6VTF8cl2>xOc^rv;BtduUkjKC*NSbkjA%RQ?c+?-@r(vlb;3z_ z5h-Gp*AiLYwGB%&KL8#(CI;b|zNM5@W+YiCkCJ4BC?K7X zkaSXd`Dt{N^2Ij7zsNOio2q4oKIyJJJ%3p%^v6!FGU*>Rf+InlH~cQAgyRY$HxI6= zswO^6rESd8dqxW2zVz*`|2nUOgd~T1GVuphuY=<{DM#zNXi1v>zuCEZ*5?pp{q(j+c`Z!OkOAia!Tsj;!Sd3S51A#6Z z`K%lLjq9F6X|pb?wgu5cdAL3CtEJh?&D}amJ6Q8;>Mld^Swa!9*@MyKI}g6>V6DZJ zngqyZ7Y-TDNOWVJc|YbTEZZDe&y!-no^l|#0VfHmI-w#H=6;@t*4KUq_ZgookJf>r zSC2BGxnrhDkz_^rHjU|_OYOiN`Kt{EgBO>UmKGOH!bOFIghWNh@)^z9ZS{71>u#lX zC%b0j4mT64+CDrN}v?N+NXar{UJ_4)1;;q2K(SmrAxLG}HWJe!Pyx}E)xN$0JewdN&b^iJg- z;UqQ-p3%4k=DkQrr=$9E89OFjB^>_b^Bofyl8K17NXggmVZ4!((Uv#wNF*Hh#ryYz#G)f2;{x$$NWmX zWGn64Yhmun-7LUc1FMTKzKR!HN*+t#WZIu^{Uz>uVPRo8R}GB!^Y+fD$w_@A)B1Y`-CK1)_WO%1KsT+vuC5ySOa&TjM$PWx z$R9%AG=u#2XX`I(DN`)=Wn3&yo!_ck6&^&BI9*P!P^Xp?#6PFg?}qU!3(=ot%4`kR z4@K768f;}zGi^TZ#3f~Z9&&TxG`2luk01${TA$ zd>Qk75O#1~A&xIE+8WLzAE(BX4yteNHU9|YE2p&&9C;y)G}q8Bbn zDg~^CtRWzrGM&xBgaYq9s2F4^ zcQdkX&ND&=7E3p>sgPQs*I7Gc9h3fS$F-wx(tRG8Z=BEgT?5x?{(;c5{Q6%Sz$vhm zB^6SMuGd=@khq4}I1Qc8S#WpJ-+NgydHOzs2#NFvSgvVh1KKAJ z^%Z#Lw_uJAi;p;rEc>H*YT`~OGc|A4q|-s4g@?DRGA1Q)Nn1(Mw1TPMf|`Q)u8(A@ zW+Ujp zQ*MTUHj>I76wP9|Z-2VF^n7d7MkBL458IqyTnMo`ln{^z9dF@u55i~r{i^Sl!V8`U z`uLEftgo*Fje59fN_?S))diXr#=1pr?b*+%HS&2r(R8-6rx8sZiBHEro$B9v9?~M> zh~XkDjMR>#!u-8kXf-sB^vht?0pG9OI`25@ZW89G$aX}{}BqS!*x(Ra5W_~u)deq^3 z?tU<00WWNO`nW0ABT5d3)qJ6?Nj;~4jSZvex$JBzWIsP7bitjU@6F`@<4bw{ayeC6<9tdSSWMq7o( zdhPmrqZp^4o*4CP-HunfDX73OuVR$ziRGM*>ext5yqs zb;`b+q=Ks*^p}c?qeIpr8pfck^4I)J7rQQejw{FTCrfL*_@8+3zKs2pCCoRw+S2n% zAR{eNva7ie(DK6CKjzGGat`DWTxI-TL8;Oko;Ol5s@5xkxQTBDH`TI-BN{r)v}?l9 zC0!YjANG2hSMQ-nhHSdY4$-psjOz^3Z<#Y3T!6l7kSTp`_l&Yqj>0^PK@054VU}># zA}b>!^EIva28Z$XMX&ior)Iyfx|g+YK9z(t_Qp@?dnP{2~TxN@@F4xmgWIQfbF>u)df$mQJ`uiFv^pW&-^(o=iO|O;56q>ohEly4sz&#J+tW{dw)%_NH1=izO>7ONqu(e}dgYPt|FexsT)(>(5_<#9bJe znCWs^IXOAr-lAa$$a_CKy1To3dq+*mgvcW#czJoTkc3SUfyLUBpOo~9j7%_R#J5F< zl!lhJMzjBIEj%`n@7%+H){S9Mwm`9swSDMQyoNWyLpdeINVuYC>}}bGHm!?Wbf_{5 zJ33>Tq5`UZt!X_yo%BoG)s-B+CNfvil84MToz1;F5`MIP_!;3*XaHwt2Wup267k&++eOoU^o5OtGF_*r9LODZ5 ztsKLB@=mTmwtCGnD4oOedA?>Vek!9P81~&S;XX$V7;z~JwBNOS0CX9nBo4oKBXFsC zPydm1{Y+?m7qh{^724TN8=lQ!AbB1u{}H5TqOJZPe~a4$90^l(mn(#W8-L?P<-Z>A zcLVpF`QK&O-B%kUC~lv-&f^zHN# zqj{BV=Ua`-RSZQ{`>YtKKL{}+$a%9uAQ0MJUE6(hcct++sFoOvoi88U>c3o%-J68_ z=!bE5mk9bq3lvWT5%Zhx_Xm>*UR_`3MD1%_NX2sIq(a*{jK`MI6V2W3u&56w3>&7a?_x z3Ch`{IO*2LAQ6G$SUc0P-Vbv6H|;vnz;nO6pZ;+qV&cTJv$M*|O1u>yYdbJ7U>Db} zeCC2wiqP^n5K1B)<*c{SeJWEN&($#!mA~gruf}caj%+G6#lP#Bj;&FR*oDf;ju~OG z13LXC*!bfqi*FPWxW+FUDmCG4$aCmA{3{@cbH-TJVd=XfH-=qoz@g#Rs-(aVI*4hK zpC>^Wt*;u7iJ5nwL;awpkWiY;G_%v-`MMT6igZ9c*GUb7ho>P1`Ob8n4K7KEj#406 zq$=v+92(hAkIWZ;zCxrv5cKf4U7gj|)^d9SDg+=RqBAAQV%aRCXlZeFy%~W|yp`a+ zoqFH;JmeqZpU{MCc&%2^+=+^`3V6Y0TnSqqBHT@6A54eX^5t|EU6~I)Aoh>uuKe^e z=;&|7E>9|ysd_dk^~GFV=jyNAkS`*MhpDbsE>=#2HS`p$&r3Q6c6T;v>_YiL&q@k( zhs-7s9D_eK+^zZXV7wR;CpJK@O+WH>b=%3cB3Y^V4sy)bRK76Jkm6sK%CpjMfA+xx%{3CgRgw*R8 zuj)#7W=(DE!|j<;vgFwr`)mSVa|QL%%QAeXUKW!ni>f;377P9r4r`mtQXM44B+Hy> z08&j8#5AfG;~B_{JlcEpe&^1Suu%bj&&OAPMSMJ>|IK$k*=9Dt#km)T8I(r|YvppJ z_I$te(v7FPY_&Ois;RHxc<&I|ABOKe3pt-z(dHey@y05oj2}>Uo6hZFWCK+{5>$sb zC+j{1+X{>u&Jl1IobT7pRXROr?1aCVW(^2gen`q}GI+q@$t_E${m>mjh2@UmV9Nk! z6_%OhmoXhcu`?cBmAOq}(Npa?+uF8ApyJE?h~h8zqV1^#i|fCVzlo5nkn9#hnH$Iu z`7>o!xZ>;7!+~_BW={3LISA zlGb`yhLz1RHNZO;oh6kpD#fZOC|w74cAR&%-wXagJct* z9paYg*xhjNKHIGr9+FoGk7%-uE46nubn5Ms)H+*?Y#tId?-pA+c0EkJksuPR)A|m> zzCK9Worwq4>=}AJ63-v`92+89%Q0d43mKjbpZfE!#L z2PRMkBQfpXtvfVw5%SZ$2xZ14AA*@$Ler5K9L{H>G-h-*vV;6lH+;3Q@VT^j!t}Br zWP)ih0p3eWxM8n*Kb7Ds-^W};$Q)e$H+2K`}f}a?KuC=!;bl1Y8+ooqS^n>NC1}+>%H3oz+Rr< z{eFRiD}VMc@5#0Nhx+ML6As(zCjGz0^s-v5vdDk;ub=qSwlf;F8ZO_BT1u$_3o4=- zLM`k3!$p<~2*FwQ1>d_!_|Dv}E-9HY^pKkqG{ipWWzhN>{$RB#r*BdJ%Bt!wp3{;n^ePigR{1hGC@O5t=V~H}yljwuk zxa7j=p%W{l90T(uf|^H7@aTT&F+X=&YZA!?tJya}h&XW-!^|NJkY zQ!o`DA0GolzK9dR71-L^!sE^RF1`#>omx1IFDS)EN8iA#kV>%SbDqoakOYwQb$-{U zg_uV^+zy-SBJH`+5lbHFC{}+y@37EyF=*DRWGN`oE6_yvVKW*` zc%_B$2n!9r+WuluV8TgCx_#_=d2lIwY-ivDJ$eeM>Yb>kr!=_yRgl=FdAXDD0{-8Q zX6EqxqR)Z&Ds!qsm^gmm(+bnOu1^HZC-+}!{zjfmzAUjXwgj1o8^z}hu2XZb)DJnc#qZa^7k+8ga=Y3llBDfoP+&i|)ptoQEoBXFK6A}GeQ`Q%a zm2)`f^FO}Q7sIj3C4NYjV&}#%Csze}pPfx+ zwN=F0_{!~Q{S{;aB+Qdu<5y}e5VbpKIO(-C@Gm3wXnY%~KlFYTznju!khoYIoby(W zKlol+l3IFV^~K|Rkl?n?ohf36IKq8IzK^VpTu`#-PFpo2{nd-MjCX0~piUTx-iQ&@ z=h1Qqg`D@#m9&kHAY4~bY|pfbaek4~9*Kqs2lKo{xhJRp-eOc6Oz+aXK>A+rhw{OQ z`^~*Q{0F?9A#Z+--h^$XCd1E9{-cv$t? zpF<$GFnw?oUzkBJ>@_K~^yFKo<_xt0e+>eLJPsooSqcjMNZ;v)@Vr|pq|(Zn67|^_ zh~+jfEt|0mUz(zai01&IHWIh%XkN4W7l@HNyqY1e?r7dOf?m!y?eeX&0X=Do6jTN; zORNjv_zjtKnJC3C4Gnv!NK-=j6+{`RHKSP?a=t;KEHBp9q9$kwXsALt1!do(PjF8h z{^ne1q9XOl$#Xyz_S@6sisdgqvknV-w3OUo_gE;`|3R!G)O)c(WVpYwODt24HjcA*ULEDkOypqVI!%Fnz zl`uZLQA|6Rovaf%FR0a%4QxG$52MlT!6!olrM>bgM4?d*U&_M#@NtGT{OLY#S?>G9 zuOV|TA~Ei8=@2pRka!>Pg#V8dixUApBq=P>VP&F9Tp?<(6y3MMO%}obBMa*Q?&&~H`DAjuoe-fxff8qKl( zS`l`mr`}jS zuZYL-zAzSNzoFiHX13cLb?MDf45q{Ty+GYBzeVuok3Io=)t@Y{vX9>49B;fyWTI7C zYdGB5bCcxd6&40@O0|ibjyc$44s#@vl;LUa?mVsU%TqPU+7epQ3uE(ZQaU4xCh9YF>$*2;E6`bzf~|ooC8x zy=tg;hMYV25ER9)f{QW>)>l{A+1lqcIVZd1R=-C_zmAa5(9pQPx{4+Ffjg732uT{BU15vs?0s;aqF0N{x65UHoSrBOA_-p>VdT1Q=9;YV<$i8Ye(-q(}yv$OejZMR!_eONc;Z6 zf$(mN6uSNoGMYx#zCO%<*vD7bd1Aq3%URLgjc(Xao^WNo1nT>uZB2)BkBHnO``s^5 zkl_GfcIjg?>+1{wVbAXa1eTNcTaEsykkpvwyDvA8|EU*`#GQJq=kM z#0{!Mj^zi6oqu2M7dFcBCmjJbrMgOPEZKF0LC|&;OYN?&BU*82iE~{K!u}j{3kK;8 zkPTCR!TR|VcTHzDSa^KNWBOpoPpSw1ZtDP}p`(wvuhmrBo>131*M!%|>o7=F8=GL~ z{uBfbt^9o@A>aUZp~Ck;?Eh z_@3l-UzLaKbQ%xcNNY#bP8rHf^Qmc)+okwPWozh{_$MX8_{)o3GWOarnOPyNfB*z#2(4uI3Ood2rRzem(-m+QxBe0XSQFX5SaV;41|##mo|ni^z(8zYCuq2J`KTZ?}M z{orSt#owAB#Xd}feU9qJHJI8#)y!emxKC!RO?F|Gfu?=}v9?SKCt=2#<#Ap1uKYgX z95UTguq0S_$-7Le55s*m)ZpkuFY@3t>4u%SFYDA_u}5VaoIW*=TDDB+gVA#TPXj)knN|L1S%pY){mW8w<_pwufLs^U=nS^KDCQi6`GCEk1@Wq4I5^8=igo@ zxhpMw8m=)G_^@iT&Uo)KXb3x-x!6xipsFULgpha%Xng=2UX7{@UKnB@)eE?xvll^Y zJ26tVA_# z7Y|C9A7O!g1e1_Zs`sfT>rT(D`F6FP1owYM!iG*Gn@R*M1~U@v3vuusJoBvYx zJ=JBVYm`~cEGEgwc1&xD=hh7yRXxOgJ9H$ZDf^7p1Z^rfufF6@zVbe|ztb~xst_)9 zy88}VP_CBbZ$F$F*RhLH*?FDKPGgkhwVbbRyjXNh%g-GT+J|V*V-{SWdb;fhkQe@* z=6-ui&$R~5k2vSQmMz z{+Cvt*!xziG*L|zhumj&nQ!!SaIL1Drop15_gc%1N$+fJZZ?jYorBjN2Gla}lAJL~ zucfVDt&R=tYEIro=^;?rlZ-yta`@Hh_A?9cb;sd*+yA2C!TY^rf6t1jG|iMZ+}zYG z+T`5+6$+?D@|aZVHb+nps~)s2VtNJ6)KPDmIIqJzB%Q_Rv>H46U$)Q_m6bQGacdbf zl9CQmnaA*KfRE~B5Tjb92`@FGel@Z@#cZ+au7KZ0mFKb( zoKZ!st}!Fg_)(gC>YULh5d29^q~^7Ahcah~4IdarqJ^Lp6}Hz_k(hrypLCne#8)YL zC$uWXbsm{xKe}1+(6f_Sc=Pu@#}&_2jHkz<-%}Q2pt};#bHZ`q>J6ZQVUrs z7^Y&Ad=5aHUwTohN0PWD7kyZ=$b2x&nzVu=^C=;JI`GK_S~uC;8@h=DrD!0#@{*ep znAP~hoAmbMHqA{ELmw#$6OU+=j!4D@Bda|}Uufq0$%=+LE@Mr0YQf3P%afH;wf?b~ zbXHQ=My-4;bFE=v5sE1O?*!L73H54J=koBAhVhBxmRn5qV((~!jz4+w=!Bz*^7dYx z0#)~j&vvHjOvi}o8mDMIQG85MKL)&K)2AF`Z!I2#=)82xiN?M>er@pubT|fE`vK#j z1B`6uO)`sKTvaACmb2a>Nv?72>DDwCA0Dqw;Z2{PQ|n9UU6JxnC7e<&49U$p8ERVj z1Lod@@dneWv8iVoOw8F33?v^FZg%00DtJU`4QWPZYyY3p-KumsmHrw5U2h(8Gi^wA z-IA^Imk%9V;u>uhn##1 z8o6#m*;+SeG)Q|m7=`s!ic1B~jG0GSGf_mNjx96qU zQF+d+)-%uBCb2eg^dxmZGtj?Ar{1DHRXj+OxV&JW7tkF}tU=;&w(A6yyEUwJ$=L3f zF5w~%-T2N}#%&aJpKHw--UXcVH@_T$phq`*?fc)>Pm(ccK^THwM@v%-wwkt<+G%kl z%xN!nH62o~qJM5Ltj#%}og;`G2MF#qTOQi(XMzs@p> zly4)x(iqb>Sm#CTd(*5a%~$m7UnFH-g64>u^M?@+B`zQj#l0c(11q*M-9fFy`ROJg zF_3<8x%FLl?Ja-8DLy;nd@pL@QI#_G%tVz$Z8d}g1$gbbANXrbC%hp>*$O%;=vs+ku^DSn z7QLHdC)2NApeoEOT2;0+%~H*Kgsxnr@_SNon94QXpDDHH$JrBy-8dbNPsJ$=0Idw; zF6in+Hp7Pnv1U$pIah&tjk&sAga-Qk70F6#9@?FyFmm*r`}$>_aXb#}jU z`EIupw9H@PaFCJ;?wmJ?hUq8A$D2O;xP&V{&uOW!w{naRk)meWIAqwmIYFvPKAtne6reRW04WTPu4aj|3&SN@q9PcWCLS|bj9{`MK!!xc1?))*OF6TB|IO@ z6{8L*uYD{E?rSsjpWwfqc+Y+P;<3%%dIq--go>1T^{V#BlhIrp2pe1dSvBX_`C&4x zrKm#D>;$d7V~Je)IBqU(x1?Jd0Ns-2GJiEvcu z&Ueyq#e+O;P2Q|bmKN2i5k0ogXKtfJa+N4{UF?ql3#!I0cL;BKx$OI_6HNly*wMZm zC5Emyz62{g0oB80eZz_tN4Bq0vf*uarhj;$njY`(yE#wz#t9Sq1dS$c%Z21K zdP@is(4qanm(ypk2h>`zmp-l@8xYGAk;7p8c9WHp(}ZwyeU+hL`i*f`?!$~R zy&P7NqOgdZE46=vWl)_%QZ{tdx(y1Inw-v^X0A{5^GjWqUY)3vw2Ymb#Vczz?x`qg zN?W1u8n&SH=V#e&pPUVkS8SHAu2E>%;kEtJtq8DN0#Mh1$3#m@L+xv!h^#n#9D%|NA@q-su z2|^nyrpYSH>#N%;5D8X_YT1PyR2tnc@b{nsR^px|<`S}xAU3~q{Z+>%xw&I?T#8Utq2lD$; z6@Uj4X(%`>x9PQLk$vM@vagWv_)KS?JMhf@fzefk1Tj8}Ec05nPS#@%%CjJUAf=Mg za_}~&CcJ+TxOZl#2|O!4%RAE9Y5a=?>M}^Mfr^}{wEC4+0g`gc`!vTp%uLz`^w);l zk_EeBqnPL+)Tc+;8;5+;;JwRnJ3md0LaHKv)0iiB90*)eUJjYV+svD)Ui*N(7Z~Wc zazSo~88h;J6>jI}QCjrQwd?)$o2ul00&xsjyT%9MjTY$#NPIvSpWVT8g1%otp6!m! zHtQUP8RWdOx+Yn#{uuiMFt+|9>KfPEKeYfDN@^d0hDFlfZ5PTljG|3j$TUGDT`@iM z7_aW839i)1ZaH5dDB*oJJhxkIXso0CZSUdNy&E?`pUsS&LGgmNmT>RBY98R3o&sX4 zXe*S&1Cu^sTI}vuq*1rE=U^&sFKBx>ro&NW8`%SUN9ntK3{V03jVm#v$zkIXHVN&3 zk%lSkyvmMCS)sn@xy@}r8M;dx_nTA}FB9v?=p%U$;ZL;XEppQ<#~wA^48>giY!f-Q zDY@YtOY7+yo1n&8nX?GMy)!& zK@Jf+@kCpLt8(P>lXw?N_P;e+w-txNBQ7p7e}meMEpvV}e$NQHdhWoY#u!?2ZU@eE zXz&K7OYzEHf8SAiQeO1IJs|s(zWd463+ZQya|-?+DIH3emU!>xF)!mz)inw(v|an4 zA^bFhvu2?V$X4X?CTM3a3F(gh+DM(f$SYh-#*HiDpry~)(%fBX1W;w^mYlr45MqJe z%Ca80){R|XF?IsM-d5vosKoBd2Em;o%oua}(+?4gU7xDu$sN17^bI>|#L?~FlCes~ zl8Yd$z5tiqHG!z$e8RePVeIm}i&YWOwJa0qDMKAM=hIk96~~XmocBq#{;&U|6nm;c zc3DVuqUBno%T67_$#3oe{wc44;g+S^rjQ~b(Mg9@h49#Uyhtc6xiG2y6L9v%$|{}{ z*f3o~Sh$4kP)Xp~8UfBSbxqCB;Gwk)@-$-{Pp#k}bxVhnR)x5j;P5UR<25Za5pN(f zIoJ&%1QIRk#)HY81IQWTb*J4MnoJpLEV0}@#)=(2F)g{%v_Jbm>ZYMUmO|o#qOlal zsr$QA-$N-?AYHFGzENUMv5Ish2v0CRd2Di|1fX{iZC&wj0#>A2-b^OvZFkh=hd#3# zM|(pc?;ijOS>kAIJb$P$;^*-6aGT@m{GCsD7Dg0PS7VnhjYLCCbYFEjvaPP)h`vr$ zYP)K`{JctPk+8ajHsf`kmN14UA?55 zkd9x5Nh+T;Mdro7{dv>Mo?}lAW5r+V8}Etw_W4$a4?X6f&phsA00eLwxAij%0R{X% zNEj^5SX#4O4i}S~L}&=H7V7PrY%VjQhTLMf%-EXHn0?r4Zjz;i2BjS=znq7+Q|w_v z9Ped+*sdAxt#!qNKs{_}iE2};hYfE)XZYS{HPKA>s1T8anJ;NmD>tu-=Pw03yF zzi16d9@`Qrn0=Fz82UD?O`6c&v0HT0{V#l+lbS(!j*n$?8h$H+O0q)Z{7L5YO;xn3?DExL37& zM(8RA)DA@aZeUH#*?6E;T9xCzPGlJ?>gywCJ^#~_nYFj*u6~e7mzuGh1z(Sdwtvc( zoy7k|HP`z*UUiOEw^~L*<#tU6A-MwBYNna` zu;J<4zFhG6WYjLWr+3zW}K zEH|c?rI~?OmtIU8>C!T6QXs(|_n!b*36wfgOq;0kS>fDrc&Qtrh3jN9KVLsnW4}E> zTU#gB9$aal;57`xX4hA$sc(tOI7*E6oTFK7apUb&`!sr0c2SkZg(mrnZP^v^6tOn? zx25_dXrhb`mx?A7TkR=+%GHSei{3$ccvOBRp?V-dDT_d$*N*hV8X7FEcTOZ@u{#t`H59dKrw^Itl!M_ zKCSDr6A-^JUssVdt+rBb&{@1MbGDLX4DvbJXt+_Dwz+!6_yB#MpoW)sP`N+p)54AC z-)a$40y}d_7h`sE#>^&Fa*2y+ge0P9(V~5s4^Xq(*jzCj3>(>4d72OG#S)q|6+%`D zA4YalvV>HTXNV=)=GV%+G2JCGM6!W)Q*gHEU^}h+P*7T>thkAoR0$3hluj5;A-PAl z4&0k85?)8wB~;+t9e#sPq7E)hWLUxV-70QSi(T+(GZ#!zyGog2b#nVHP-9m7Z2N-$ zP~z4Q>VLk*pLnuZtQaJcPq?U36T-z{zQ00!2W>sER(P@oiGtoc_5UHA{*L*7TgX85 zRzwG95mt9gM|&8&3F)I_3Il4RMC>F2LHlpeO?MYmoEg-*LZV4XQz_}kCN%;$k3Gki z&fS)rRf1aQ=eN`NW0Z`LqEsd7aG2AG=j@XYQ#_E#R!~An(j8B$@gwu~>om(|Rd+^s z(_9tR%v4gr8HFSs*X)GiBhl?e+6C_kRjLX~PKLKhZIqb+uwC^u<^nQ6FpXAt--+Y1 z^tqgN&XjtNw%&~4_IL$k$??{tPXXPLmy2t;(<^{#s0%yGIz1+eF$+cLPYk&!5${jF z7YLrd9E{>#dTT%`zY|kXK8xgBT=3DvAJ%&G6ON|4C>TT2CRQ+$5znB+A8`zp@l*Y`(h3xi#yO%f8wdV|lq zR`Z@lvgn%v?rGGzU>cu0SrG^X0%Awj8fFf=dLF`y3hA};Le7ke=}Jpj8h}@hf0O_( zilC+0u-_Jr5yrRM*eip!#{LV_^XCuk`&jjJ$T4qzSs}B77AQ~d%RfqnmeCodPgM6B z-FrlkxE;*H%9K0-fXm0PKRW#7a+;?bmy?0)Wxm^}@;jmJ6h6mmSgB9Y&an*{gVB2b ztNoEq8~>`B6vS;Hd&g0>IqR@@$=!x(V$qjFhL^R=LK~^y<6@|CtFLJ;l_0@GXE0Wq z-{^b7vFO6br`vtA(f4d}BjZi9hbaGy_*G51QQnAd_KE$kWct*+qwIXD#ZjfykscYf z&*5Z$4{~|iT%&Ah(6VV8$#NE*skG;2@^uo3|qVUDCMO0Q4BnXy_v$#61Nh8 zb1EHO-Q#NHEO#Db=2miWI>)}FX|BCPQ9SK9A=6FDZo3)C^a;It`sTA`YtFlzcuKIX z71Lw71R+q{Kt$PZ6p>dps9U2oqDk;m51EDuli2vR3^NpCl8Y2xEi3r}_0wg>%h zqVI&W?uhtv>9^rkC0xEHFKjNZ!oRVirtTphgdlfP>3sN)K(q;bj&<87CPp{!Qi^7a z&ZI|I8y}qe(%J6GMHV<>C=~c3G3{4s1~P7 zR3!`SheIsiaXxMl1xgbCD)#FAsPa+o%_h>JwM_s|Jy7Xd5(xwOdl`Prph#QZKsf15 za7&0tMeNW0L*w_o>7PPLL1#eKu%{c>D?V`E!$_&|o$JK%?BmAnZS;1TGUIoz zeAOAMooksz1m>RfoX~wHt$L!JpO!5U27*I_I3A97+EP`PJ?2L+)RGJ8O%-%H>)mBW zI=QUl<`}vJ;3Wvv=E}i72ftq_|1}d#!TTvQstt zwRkfz0J2b`l{j~nhAcCFOv^J;HzpGOGfjah3# zLootGQb$Z$bePbA9*!D}>##ME-oSC2CvYD>$B$`&pzF0UIu%z6%NSGM=513;^X z(Lf-5t}5#5E2l922DlL$um^bs;1hrrnf&porDgOPaBe4``!rTkL_`5DJe+&^(*__p zkN2dC*4@m?)|M47;CReb8qC))qHBcwrZ+F0J_xL~!#(X#>I_sI+Rx?F(Y}d6$s-h2 zGwcG|{EMVYXP9okR>cF9rTC;6KHWeMfEw_-p3s54mP;Y@x_Ng+)g zfLfV5nK>;_SVsGErOt}1tr3C0%0i4B_ zx02tBhP~uA3dbfyj?tl4tR$uG1JwtS4sO^QlvH6gInIlx4<0l`>%^%=E6}{fK{2zr z{{ylJ2~YxvgnsF8a&byg(MZ&QmoG1`D-vQLkuDe3FE9jbL1@|Hf$`3)HV*(ysZb;6Kcw^iEz1ed9m6bH)* z&Ao-RedxP;WWt~WH>|2XaOrY-;xZp}*~U4nEW{@t@DbOtNx!_*<~RH@)p-f&uNf^m|zbBJ6^C@y6qY(+cQktH(1N z(VU6SnB+loQBnhc{8J1N>Zox08$9p4(Af3w$HO1qmSvf1D$wTNJ3LrccJ|t1W)X@} zy$Kg|Zz>=TQ(5=Cu~u%>kczm~%t?>8#Ucr>aF!kU8N|C4ekTML->(`v8tuCYP^byT^RJ!*G4_{0bDf;rbLV zq&u}=;B!1qJuiy9y<6P&J&UmyPe82 zcQ~)&Dv_TGuCOYe)y!!d2J_XL2$3WIuFrgA1Est(eQ1hnS7c-V<%gS}U2MoH*B4dv z=RkkPw~_nm-;5Av4>GDK-pBRahN?A{7Z`ANVB{V29eU#BRBDZmsi*>(kZIV9&Q4*i>%HFxuk{S`AI%5Z3=TqiZPSmjJM2FjOGPm z)uQ?cD4Tl`j#3QYkoi82%x#zvU0U1L$RzZ9c(|QB?pm#HbB~JretlI<%-8TB-ClnY zb-aT*z#W7-Y7yrP+}~sIy*oGYbtGcUMG@7NX1lB?hV!fKXj83fs5Vh+*B=k;t-8+! zY_EUBfER9ig)hJ_ENKd%cToPB*1WDL8 z!s}djzDOyqusg_B<%2LWvB^8fmE&p?d)_~mE5UeK`^YZ8v2vw2gFp(nXT@lo^hy}( zw9A2MMZsAXNU$c-qV-}=LCB;58SrFt!y4)=f;@7~ES`6I{JK1@_)G{szeNY`*hSd$+h?`)1A+^qYlUE``4+s}@n((jy{Uw~N@8TIt^(nlQx^EJtv6ENa*KC3Az zF1JEtto&(3J)PJDP(&YYJ<2~PJA!gUeC|`G^&G7EWyvO$GgK_8BoW5?wV*SS4HM7E zzWPZuHNETvi-(7`^58Ku$24c_!etcwb1=Jt-df!K>TSY)r3sAlDcSXoo6+A@+bvOj zT%zM1AvTW?f|!B*C8ern7hbjrIcrmE*_Bp4y;-hZ%(SbRGfTJD_&Rp3sl_u*XW-m^Do!i$m+SxzKiy!owIc`;Fph)7Oc%e0$ z;^*}Vwh>oUoB1J}%S^~gHEDhD2bsRfUE5m8_arhu^oCx!E$(T)YI4Ou4P9dFPs14x z@)*RkJg*C7X~tf7Lbzf$Z-}zrieJ^;rJW+QC4GZ9`hv?pna{jv?fx;YlVmcvtZKE2;4P0*JbGRKn^CB_ z`n!s2^$PYc?jHdFnBFM}EiV5)*@kC+pPjr)y5c9Who(hNP?M9yc;#b9W*^7%rSdX| zi7MWmn)_t!smDjz`E#t9K*IB^S-TP(7CDnYV}Y8crNDy>yv0CD0(Yax2J-akP7Y=< z0Kl#KCToKDEywo_O6F*obvgY zO?!zffuo?#cXXU-;BJn-;Kja^vB@JRVH#pgoPL(c2Dz0KOMid=cA%$`QTEa*wdm^K z0ARU(4X{C5RaI3>>#9i5MUsMcNF}QA;L*^}vQOD3{Sy-lu}lC%>%Tbn)?eYRr~iT* zlu*Twt*xz9l7nUyJo26YcVy(PizqsvPw#6)ztBGYL%^=;%KO;Xo->h{TQ2MJ_c8vC zqpgeF-F#-rfNge(hpCLfk+1Y?yP$ECuQN?u0?zSc_P43=B+AoZ{}99qbZT1l731?% zC>8YjK2T$k{x!5}MAp&E^`^p{^2)ca_-?Kse_VS!6Utt_^#Zcx+tg45CQd~+3$xj* zhee!{J%lYc8va}Dh`g@({&rTp$&VOfdY(EJ&}_wXiYY|%najl}t-8}>w`Q7E zXTZ;cz*p9T6(9{r>HR{NP?F>PE&h+koZ-dZr_qSn;VUPZogUk@m`jE+DF>D`2JF{C zDJEhxIBf?5`$^V_Qo$PQO5c>t2mg?2Z0KSd2=KbOseGN(8Yc3#-k$h_^V>qf z?IiC@`Y?(18iOe_WCtOgrdrG%J>r2s=tH1T*VW4Rf@x2St93q+XHGD8pySqHFy-3R zI)9K59tT>4ui9WW;jkm?ro|!})k=lX65nU`v_xZr`Pg>7;0BuP z^yI9QhZ99K$45A!^(hRq#(*A~yS;o!C#i!|Mlu+nXO_==^7I{4p{zTZDdqgO-DMws zqZ8#&PGw6wB-x9+WcplMoH51qz1&$l3Zm1N*9xNdd=AJ^4pf%Y#5|?0`Dm#Ew|smO z6|Y>!a7aF#Zfd$JcuN>{a}#YS;k?!cdT@codNy@m`wzq{Qm(RI94H1=l z5`2L6%93F?X{OiTI_y`x_78*bx!u$P;FceX3Dp`q6BHQ>DtU5Jks=)O>>f$Yb!%QS zkq;qORz!BuzRWOwcA7$whqjBuCH2XZX6fsF z)U^ol8r#&vT`XryFy%L!jj$P)c3_0mQd#1Y8LWY;w@2_KKR^I|q3c7On^4hcyzCdu zzR<^Hw>1!DxLQ9-M!>nqyjy1b(bY0J9;2gXTxc1M5QtlSY5joU3BC@X_w%l|(A}XI%%}>8a*S$Gixo&ctYh=v znWfa!Bnok5_77aC{d_x-_Dxfrf$DMes+CgGu3P-IWRYjEvDHK{>*~t<$QvGlhM4P> z6UzIh+klw{LCk1hAT5>HrBvgWjrs>kc)pLfex}{m^P&hwH)PMVPq^{=2}r;G483$bY&IEHI+F&oV)EXw(Rw(Y{v+v+DVc^zbYyB2n;ELB z0{~<>|CtdGMws0urrfFZ>to0#yiA2Qwe=<# zU=Sp-Z%L~H;)}*|Ir8jfG7;K+woL$4p^jpQ)8It?+O!wK_p$&dJteoBv(I@^*7qaT zbvG0x5CA`;(M)|MQHM6t3(IPCIV-GF+dCZ9_1v% z3_g`x-#ZbxE|&`oAXmbtegNz{JI>g`22qKp z)WPs{UE~tle|5CjKHu_BSnNhcAUsPJ(+*ASgxP0pm;3RmDx>YdEaI>-i9exhDV-os zn3hX2eCOvnsu_s%iIwN{Z(Q_N=?~YYpY86cy39yzu-jmN++IBVS7V={hz(#o5jgER ztx(Z1>~K&n*P+j5Rt9|fn$@pn=xZD8r_8UWSYAmVxGg|lMD4$49t9gr$C1aBC0eRW zQ~zzh`jrYDKs>zu%hE8i8>BGQvqNyg5{zB6s-SR*&1$TO(tR^>@W`dA+<3rhNZ9jW z7E?!xRi26Nrt)HysYp}M04I|;k8Y9*z!TYctR8y2-)&gYYE0yN{_x2A`&~iO zQ3mt`BFAoHljL$U0qoZlF=bwSW~AHaL^V2BVfcJjmrkMz#zHqhMOg&1_`d^@>NizW zCYjjRVWY(G9-1vV5+zx77c0Dq`wMSNVAE+jJ2n$yjR*2%^rdDql9AKCEm0OgWIM6p z)7i10?rX)S@q+iD6qM|1$+k6olfc`ZV@^O{QtH!oJuz=!{aGp}q9zMdLA!n4Jmibp zQ-{~#>{$*o8h}B6vX7&7nF%O$&<;8_rK^8WW8$o-4*7Rwy&K#6&KxW*JsH6f*UO0o z03w60Td-a&(TCh$J)hlmk=5SeemVdT6p?}y?HDw>jvC`0x$RzONHqQyC1O=OZ#rY)CxjG z@~Cbn=#h8X!j;)@6)YFcE!F1nqyp;Sj;l}}Q;es2UX@aRWapD#yQ%DbU~0=P(aK<9 z)Eh^c>ADlI=IndrRn1=CqePX8rsaF^QDLgOk`$GkoK(jickfeMu5VAu7; zM{BFvNGEvZ_nZI%o8-Oul>WB%SR~9Zr>^TiATaRV_4K!MJvI(9UzZM$2yeWocy(jb;*0kh{|BIr9ZjB zYCToUxAJE=X?~BJUbIDwS2Y;RJ1kv3`;)eydZ*L&_~?IXShYHDMymfBHHN+Sw#E;1 z7AZI;!y|(H^D%w%-sW0ofDD>W@AQiKZ90IjNn+EU0tU?UeFKdy z;R(lga5_#hW(%pdG7=1iI;AP0@HC_3!i_L2SdDGkt9N;cFZ)~MQWJfY1HE+=s|B}< zXPNdrBz)lG_%h*jRnv|Ab?Bx?!)cZuK*n{u&K98|7Gksn4aVc`7b2$MW8cs&8Y!St zsqDdQzpF+?s{W0!&&15K#~YAsmU@Ntt}?>6TgX?7y*Qvf}%D3c^ZFGCFs0~%mhw>*kTK^Wf62&klZ7=!DgC4t_ z-zfkyKZl!GdOnW`+iF@gh9vHLX~=@GlBKlOuh;ds@)df1BcpyV@a@O|su6l34OD*? z3xlPEwN_4okh>FDtg^0>W{XF^zR|QUs&K+l+c}Um`0NtX#TgP;yVJ~{g3j6APBz#q zN}?;M?j>pN=qMYHI^VH3Hp+ZVnZ*IamV@5<$vREM$vkBsb-&YFz^~8uv|@g|Hz=YL zb3}9fac_GvFn=_Q=oS!M-CiC`Pk(%_5_S7GJti*0Kq+uZ5cC56x$UN4X|16I;M+>3 zIZSMIxDPQC+Hj+y7`EFhR1!|Jk-kb;>yUo=E*omaY|gYAOZjU`eYS1rFpFqsx8;1e z?wU({-#u&eI}<@B9YB`kbLrFl4j%%I5ajPTh{cJYDTaIH^lT7yiyzjVP7#=i%23#{ z5p~rWbx}oWh39uNVVpz&pmWcy#^Y*oxS%MJUe+fG+qPNRj#PB67XHK#J)3k~71xSE zR$1x<#i>gnl7;Yr26Dbg%BSBW37Ep#`iMGx0Dx#s(EFsr02z7(|I;G+s$1zj;zTi- zFFFI&nn$6Ok@gKeVQU+T^DPf63V0G2eNIK&!Gd-^#<0 z6sm9Wtb75A-UX`xOm+HB-~`J8Ba*F*jOLe>&d*mBLoTpWJGQySyF#~3awj!gk)n?< zd}eM(U60++hKi@>ptgc!<;)>9A?+koGsCR#N@hu8iY)f#sKV~$&hkkR9t=C?{0874 z{II}5y$d$+m^k_@vU=j)^zW)0sxz+(2sl}i3UA{myH~LZIX>Ao;PqZYnCE{$1K4=% z=K6CU75}FC<@J4~zH+&xj;$y12CmVQxh@%HM~UXM7CV9mWxG3EKpeHTw=4;|6cUNm zYPiwj@lRdaTc2(r^3Y8rG-+Qub2jFffpNiTa+-TGcK+Yax@}6(st+UwAP%Ix@nts*o;Q;tCMhYb)!+NsJ1uLBr;X&exc20u8 z5asZ9)2aR;#r?kWjmj|$68;Wzv7T@X0U-eD>5@GS9(n8=e)7m=ZD#EP(c$K8nIi(r zTHj7XV35-pB83hA^rpq_1xD?jpLRm*GuiX69XpCx>Oz~z`y!xcrAIsB!NBi)@blIM zc?>{J@59wfU8MdxatB+huhf5LPQNRTQd?}|)BMC^yiMdGsdu{cQbacNKsrLC{6qPu z2b1fB3)3nAwbOBIc#|G1F7>lyz(0@0UR(R(_*!uvh~W7h33sLY+3zuU4`=%?Ko*Pl z{Zg%0O^qHPPnPxhqfwbgL9}f(Oy5!g4PaD+jDoryI{fC&Hy_@F>1T;oA-ins0e=n$ z>?PfW%Sg%JE7ktsPx`>vac`%%>^ue1dHRm%;nfm_-`D9=qEG&;TI^Zfzj5Sy7t#W{ zTuh*v9g0x-vEnpcEL2wn(UHlq3Oo0all8=mCdrsJETA^|Dv=yryI;{;jgej9N9K!+ z%6wI@`d)?bC28*CEQ^7YG8KB?pQ!Mwr^V^cNb_qS3R%Q}r@L~EF2MaMz4ceR2C3O} znqS1oL@ySMm&ojFv}_>iZC+7e-94Is;*I1`cv0vM#)O$ZW9Rlzw!NJXAf66+*ivBR zJ(+jzWhiXhSS_z#)nJ-Uk$?d(>PFsi+@k?}9PJP##C)EGZ@a*FSb)N9Uf+j7mL|h` zQz`pjh(D_3mHHuzQKFM)dM45sA^+%fG{xF(M{B~j$+aaMSEZyrvMtf{g2>M_Q6racU8l*u`!gnTb93pdP9~})^{=&k`#1i=5d>K1 z6yI6^u_mr>|3~d%jeo)5D!fEg!iDGce1{)Vx;^q~PPBA2XNbx6`}N`F^{XnsxMZ9F z7OXF07807@cfcagD{z+`3yP2ouBa9gcfZ0+9mZXX^l0Lwib4+E z8rJn~lPIHQYzk?Y>jFn}3cm2CZj_cO&0!qr3_|EWQbow590K8`5%773=p-Z@*!IV8 zVFrZwrdK|7Pw~BcI9`JuwK&Gi*!tX1rq~n^3$^xygsD&iba`}TNjog^SrS7dYoPWY zT-uj6_CijUMG_QCXIxO4q-Zv%!NpO^q!T zD}%WIBFq)#EfH}6;E-PRnojvtG;>FsX7tluEiOjwTs5;+@6?~okMy@QL1X#`W}Z%i zo9V>*Inyvd*Q9SR10+7sy_j_&yDDaPfG+$LRxrwbPv)2HSJuYR6(WE-rx13i^@Cvcw-bKgx^-I*x*nhh=?I>~`0-$vyIf7xg7$kd)2HJzdg|B8v=ZDT=3)`kpI{_!X@*~e*~gLABaT*?K#JVD0q{S9Yd`Xu*vm&aeLLz zw|Na|iAkpeNjY)%pPI1_3Jl|Q6^EX$;sL$_8>m1ym@ymg)+mX8lx_VEQpAc&Wx4^Y zUDBo~`nWoH%+^p?Yn!IM@*H8_oFU0f?Xr&?K%`01;9zaDnG+xX={X{U`t{)0Ex^b$PT8vx zEm!qxj#6z-buA9hQJFV(uV#g(WOB|8WkVBSF~;^o{|1ZJ^RoF76kiu7Ha7ObSL^Lt zfGm-sJo^0w7D1c>V>+tXZ6xe_hD|T!cIt7arn}pxvQM~kJLA-^f^%}4l~60HOyzVG{vp7?{~%j;vC!mN~y6r8)og!8hGWPf|S zAyY!#^~+AZ?eA-^2LL2;cEk(6a?rJ%&=L3kTk3B%^%VY)PL_9q(yL@DH+~+Q6pMG( zaH5Lx0X)e{gze_;z5-?RR5$M$8~^bG5Z%@FHu5^VYF3^|(a*1CoU)^Yee57$Z1*xK zD%PoW$%mG3CyTWxhv>(?e`t)_#{Q>3S_%J^P%nvOR!Obd>}S?5LM7R0AhCVK35q+C z96EKxV*;~RW+nyKR}~kjO6JLyvGSYeo3OI7vi~+E$fGX#b*kh!vuo!MKYqk)q+Wcc z$(o5mT$pm}bKLmGc*aaRF{ud(GX=)=U)9FgQdv!TYC7kaQ1|aD_7_?q%fO?z#etqBC*O2YP#eU%p#9B*30<;ShWJs3 z3{~b6v8%&Gko*@SCG*Go>CeP5 z$dWeBKsomRjbPFcBN=X>gk`u%xz-o7gZdR@Xox(?hkl0K@&8P7_)bFwTJrez>({UA z2IV-^FBu2xABUVAOk|u*ckVC?=Tc)d)YgoFe;#^nqc5F{_|1z(h(<|B8Q+(Ay)sxo*hLHN_(|EiM o8=L>nZ~||6Jm3DWeVIaHU}mNKrc-PD{c-8@ZPEC4G0myt1 zQ}@a|Uh_1@wIBxm?7J)}q}Ly=`_{-V$$h7#$VZ}=gDVgC5gzmc4-tt|9ZL)$jzJ>% zm{zXwWx?@Mhji=oTbubc|G)wkQcr_K6~BPzN&VAx-_wulah@b%DtHvZSmH>Ou!};n zRDS7}0cgnF$29MMca;cpOj3(UU;NVtiSnx1xQ*bi?yzSjFVR*y{(csA$+lWNmHfAH zCD`l1_U{vU`)?Y3vHxudO;oQ%{`a9#ZK7bD3SWuFM(vd0|aP-e| z`98Pixn8&?T*x-*)M5nQO*!sHX6e6-P36~6{a#G_%QU{k-{{}B-p87P&n#qduB&bp z)>@40d|?xg^zv1xNpOsb!4`hM*3S zS~QXlB&wA4ba+an9DNJCe$OMNI0OoV=_P>4p;ROfozR4+h)aF)ac@osu8`&Bm!FM` zfBu~#Xc+bfg=ngI54IPgW&Baz&ugM8Ar3sB+0ZX>B0rl{3?xEPfqKKN%uEL?KA(s8 zDK~aJjGuic!~!xfGUbWi&95vg3?H15-RdoP*b4ZD8k2?glVLhAPZRc`=uu(@ap2=0 zArTkqe@p~XsxE#blb&@G8_gcU=v{{hfOeFROE7zA=DRAzrjxg?e&L~SOf9Ua=m&W8 ztEVO>8p_iP`K{UCApn5clwEz4yos5=jt2vLS+l6!k7&s|Z*NPojXe&7|BOQDl4$ZY zr0hf&02ucV_RlikfJ{t03*GA={{4vo+r?}tkG-fEs@A6>n>T59C(rz4gZ&^BimWya z41};ybo6ROj<>v?0fC%7+@< z1UG7d&8)LdpFSgT_SOf1{c(NVv)Snk#bzBW9_MwduTa`x2IrjuwyPY6RGhc)fULj$ z-b%5dPG_~+cnrR;s=Q?9L{>{I8wMe?FYza%{Vml$Hl(a^4DCQu_9ozEz1ds%hd!F(z#GW*Il*6P8^p+f-iwG*f)pm&1dre7nWscq}xw_~OS*)REm zA+ct`^|avCb?uE55$9wEqa(^}&`s;x_PQ_C>xQn=?hoWCfq1qr?jJIW{H~xNj}b$6 z+1s5JcgfxqC$Bjrv{nHyUEn(>s}ZCAd*Fq#k2_HK%#KElM#SqcKl;>f49SM%JvdhMr>aG||u=yP3|=wwUlp9lW5``*-K)ZT2gV+d&o8WS3Sd=`Vk z7j&^xoS$+1a(dXZYl$0U%bsw$_91t|W=H$@^&S)b(e=6Tc%eOu5dz}E)a$ljF}6SZ zck!@zg%xICG3VXbA3RDSM9Ei)O@=nBk)VrQe{MjLELf8--8g zu@$tsA;tHaAuXhSy81-4!F4*=NJ17wYh(`s-H2;8r5Jon&l58)kH?y?!@=?8%Nv`~ zb!*Z6JgulsghuIJPy6lC%@VxUxb8{crkS2+v)s!0T4Ls1G+6iFFpP!x(|LSO0Ec}1 zu#&wa#cJmVo)>2Nz5Cg)s~ou+K>8)p@VCzMdM=bYeO+)^P| z7!f;|DUR(eFnYaaE>7p^M#J>3+b&vqbDgr_cR8e3P#RP1;$xA8+~qQ4-$H1w1%*ta zuIYCCbKTzf%tmxAtHn#eE!(qaB`{N->@k#}7szUNnwZOewkxN3$9sJ&0|_ilim$SL z{xXt$^5EFyo8OYj5WdvHv}E;BPdc75DZsHP!Rm}4q#;qQ<@r=7)6t`j=b}%RF9A2F z@QfzKH0-}rSF>|)W|8)On6op*gmAiW<7xsm;PLQetMfe{s{4^3mGR=j214nr2ChSe z*IMh%4b)7*w(T>v>=*Av@hS;H(=$c5Pr?lrc67qML3S&9(+0&~1biZhJD21L3`IW0 zEo_xwmZlrE2&u0(tez(feugPIXCh7%uMfB)AD2a z-%s&*Uw0Ibl5EOyqAf~A5ufmw?WNYmTnoxv!Wne*A*1!Oqft8XxulL@=Cn6vec8Ox zWINcOy&bWp{x`y@Nf#6q@rZLqm43`Be;LuEXhZGw>Ygm8!E2HIwL`Y2#eWEav8JX51~8~-X?G(+zWj>~}K%0||NiFaLib2K$@;{MaXZOTziT0fi=R7pjZ`mpT52VbB-yrDKWKcN1vt=u4UK zP=s?P_Akk4v4fw!GQW=OGlc^lU%}8!-9)+#tOc+WqNTc1!`ge@UlH}4beNN+N%xPB zj=tRqi=%h#Usf8C|F6H^bN?`=I1)FDpYXHFN(WJNk&3w3fyl@FDdRC@%HZ^G7yOu- z0a)TCL*BFeyb3eXIEc1E$H&LNetiIIFWqln-hn`%@$vC!GW;@u$9sxkWn9&48?)1B z7#_p8=H}Mm&{vWuSyhLB=P{5Z|p^7_DQQf?}!;|FJ6#NgV+4p!jsrBugBfyI#MYpuH zFeZJY2ydmEUUa4mCJHwp1WF!m{=s{5*p0p!j9)0qm|v2RlXtouP7C|rqmjI?K8+9z zox~D{GzLKLQ&S1QP*71(^+yxm)c1=0^%kF>#%)cdR7gK$%jeeC*4EdbensG#n3!;; zRg{#359}?2IL$#S2UCNSKxicEaAZO<+a;-eNyU%rlu_sTo!8G9A|<1<0aH7EyrI)_}Vm# zNtNMR1B2FMNpq1Haa&ugKU$4Y&E$pdS8`gOScGT<`xEh9_jGGI+P>a8qc0UJNb)f_ zdpfPPCn#53xy4=B`hH~voeww>{2G%`Z`eb1c6Mgcte`+L-RY0Ev9Xzt4hae2;NTD> zbDAkq`1$iEW75&NKB4%*ka4-sZ22jCw6{OAs)-U&``*l3|#%zTk2sH{i3{yO>$p zBf`l?dAjqSUtaMky5g2d`d!ZbwkT9$nB#sCO6+;Mem_te6;@o5ZalXzhjjed<7a;d z5%e@rtExL%6N62zySw|zN)sD!dwV;Y!FyI-1^N~h1+$7U4AOL7Cqq+H)5?fkE9}aS zI>?F>uh9&XAheyd@4gvVAf`Ai+e01bN~9q-;CDR@mGg#|W^>|A+vBYrFpHpzPG%W9H(vAHi zOmJ+|y<1QQkI&_G)Vx#2o3}e~?0_g^I)s#eRSwDc6teJz?;+-`r=O500#KhvAy6zT z9dT@6aMC9T7&G5*yvJtvbd>M+Nh{*2l)4OseqBruNLu2{P_*LWXr{ z%kTA=Vh73>ZP#kd1`cP6cec0tW61;0);kIc3evc&u8-#I{%m%`BHTza3llT5ey#aX zh7;%w8JQtRTv8N&Cfy7@YIyJ?);6xpXul5yAor_I@Qt=>W zJ(EZ@Ac%EHZekWomN&(=vu)Nz7I2*pG1KYJ|7u|`vZOx28B~*K4T<`|$|4{F+YQNy zQYBm<&%Y?c@{$UuJJ!gfbv(JU*yHbj3tnuq3pVK+Dj<+T4A+Tg#>d4~Q&v`fil-UU ztki|;f|0r*YCYX9=(nD$klkFGugW1MvCRz4ii^{M!e zOYL!?mUPO7^f+g91AS>jxEPYqME2yPq20*MGR(4?J!DtouvM0iDrJrLcY4?uCUt>e zTF=1ey@dxJvT;sEI$?!XNFaHPwWFO3Y@c|>TzA@)zFRDlXZ7saUk?DSx80u$1BKZ~ zCk{Jo1SAd+)1ap2mI`J(}F1j@>JnRlW-p&dmS|t|M;NpEYZ5M zy=vSs>Trr50cGCFtRLp=|GG-!DvTz9tw4LjP8jJMD&M!%JR6ru3};stc(}<|Ur_@Y zye~6q0>pt_6gJl9y$!<+c?YJSI8Ss{VHtI7j&~L#=-Evv@)?=p9^v=KUUDyyUqkNZ zHlE{h|J+p9Saa6??(IxpHB>o_(a78&CMEU1zp??sBO(r$8^E{cJNpwkPMm2zkR!?X zg1S0aFE1~7c{GKY3?2s;S65dL4_2iDj^~UivmWKw!=~?4(L@gewU?er)Z*Qan{sZ7 zmJpk#51so0dPThI!opI4>)6dO2ZzJeZ#h;QTWbBU&TD@(RV@02TwHkueVG+J^8|Tw zX^(#L<7AR5j1_u{1@&dHy<8T2w7w{C446)*%7-{31{!)4bg@i!Ct?aeEngUc!Jl9T zsW`f8+PNTD78_})U57@N-`3$c57((=iQ$F|0NS;&&()hAIaS3TszlnDCGpH+-+}?< zj)|m8bO7sp6H16t{!G}*TUQag3h&E3QUQ;sn3zUT=6h#TYioL7wZr#jKPRx!@p!Su z>~e36FF_PZ2&`RBR_IhSN3Q+tnPKathV9$@RW_~BL921X-t1>M_M);kkDg|d8ceE{ zOqy)(hlyK%ulFzc3Kj)$EJ^@?@%SV7;mq`5EPYih+1F!eRgThthL=gb*QZSaf`Tdi z)xkkzn{Rn|JwT=?4u~IcneW}8qy+)F?-l}cI#0BVH%$zMziyCx z@;r@xQlo2XyuQ(P0hn!Sh9`udd(;qGS2`yQecyxR)JqC%8&Zecd>H3CR=kp;+vW78 z;?*$gDYsn2wOPdGaSKG010EqHBFJ#c7NUi;m!ONCiGe$ruJ3M}ZIZ;}?{cOVLZGiF zl~3%GM{&!WtURIShE7V@Vs>Ya8J!+hbvjNw1eRIPOv1MvOHQFO$Uwg-yB0XLa&e>0 z^KAX%1SjGHRa_Jyhbe64GkBe@FD{0MhF}0DA|e6~_}cvm78y%QN-jRwLUSaPNGEtI zv{u&2Qv$Nq8Gq>H<`^kke{ZV{0syt)IPM4c4v~z@_%I~d?HgA8_C2r3{TFNH!kcBa zFneUTBGGN2t=av3C-K!>5E#xa3!ua$}vLe7#3DJa*rS7$nwJ<)B$qhy3?x8A?G z+vOF~M~J$*#Nh!{`@90wep?CXS!cTuj z8frjsJ3g%_Kv3eKw>Rd`%!h~D8r-QNJeAbcy!<8H*SDRE-3A{3EY+&lj*0vk7SeLp zyLC(JZ1vUDVh78m`6o~{&vzt48qz*D2is%1ZHUwP(ppZ)aH8Qt0-XnOuDhV3pQZ5H zvkR=2d=1xIyB3z_=H~b^FZ?1FGx#hwBTmdi7ccjnXm*bnLN_DJs~{RRJFaFlfa26Xl`!yLsU{yn*T6a7g-!mC<2a*c+qPvd871P4JZ21uN87N+~Fh8*?5^V9(^8~BZ?kCQU? zAwdV*j3Zr)-qheEScnrY)z!(64Fk4K*AWH&n2WKwsV2=k9=XZpx*bvVOAYa-e5M|u zu!lFYHfi<~orn~ZP1YoS3!c6pdO=yQ@m-SdUN@eLD0*I`Ubk{co&W2&Ij2p- z@db3hq2OL&@JglKb4OlD$Lp0696`)5&8pH1ze-y+>qKO~eUH`iGeX|Dj z?=*7zmN`l3vlF_rm4oqznY?5$q0!&LRD>6fA$f&i{`=8fQ&GwSm3NLG<+#j0ig11qAe6`xD@jZWG%CF2tR*W(__B%J#ct0B zXO%4W@v&91tI7(O8tOMaKA>Fr7U5$=I)*hK+87phV4LGwYl9EO7Q7*q?>v^yEfI$C zGH9*MGo>j^t3vyHUe9Su*(x}_D7~DF8G^_qeLfNIQTPp6+M_?ad*NGUd)n;0=H`4$ z81xHn)4RO9b2=v(fxzD^tRs0~W%P2s3Hz(bubxTPk_`?Z%aKkSsdepF)>qw1nLsJMEWmI9>BTyqxvOfjB;9(LbPNPT$P{d5 zo|f9pdo?$5WgM6kgen#_m=cEGDx_b5t2+07|NbB??d$Cw5*jK?6VJQuwFAq=>-9DX z?rE7pK|v9?bTIgsj$}*qvBhbHXFQB;_aKN)WoXp%Le3iN90;1;vnJFjNkquCyGIfa zncz}7qUSZ5n3@v94_q$YO3S9l7aU4+35|NwZhElY>Fu0YEn+ zzh-tPQFJ&nsXbL+=;ej1cM2A>&Z)~pGulFFDvz$VC$}7K_1z+y}3DQZ35GRa?{JmfC>mASvA2kPX%|vgz>pn`(;Pul&*Gl5xbe_guc z^(&=8Ujx!3J-$liq8b9)om;uZ$o0PK07|Pc)6|>GJi!!V(o}ddZ zm2&4?{p|(6;86jM#LN<&NdUoS=l3Dw&eWW238O&+Y^%*>IeM_#!WBEP0`h;jhk!j# zmhlM*Z?_}aRPkV>%PUN>$E`4O*vb>(h)ulJCHB3)ioP;MeE}Fx{gN^oPWHN^4?3Hy zt(2HH3LF4i1G29B2j}ul*JCGx>B3(${*d;xc@>Zeeqxyz1po(nWib7zk|izt0vR=b zTI^Hnou6r3pO4!qwDWnVG1BO9Eg&jzK1P2<>7mUD{jxZpXT5*N- zG&4&;jEb6T(EuP%Zy=`8^X6pPS8X~kGOXnK1*0+Zs}99tHV!T{jUNk#SFga&FK&nd z`t~kA1HX@5D;e{lvRYL+tB@=#+97qH)0#jv_L>y7JpT&wh+I51LJ1 zvg{P+wM8o4XsM_+{RIyFeBq%TyZ#+nq;~)iJXn5qYp6xw@P27KA>fn*F|O=7ZjF^W z=i!inj<3(l?PQy!{RONavzMsR+%kC)RPysg2_Lz8nGm4s`#h`gW7ijiZ+UQGFVS}A zba$!m_pB0-gnMjhbO=z^ly zw->Dq&iF;}cDHMWUJrqi;J|0wVRFVKQKMW+!H0H{rG=Q{mg@n`KnoNN3{FNPg<$lY z#UDrfb#raDeWvFy`2BEm76>_-gKdlx6BAQYQwIkJVYiBliv{@jG>#84X8SO!Drs+wrxH z7)EXAL&{8JY2pXxyxiVIHmSQvk|mL}Brde<_P!D&IY2dJevNLiYBg za6nkg+_59yP)6r^t=KB-ILH}>GX&WKvJ{6rk}Z}$S$>1RCsuJa{$z*&T`CF2A=ZDzO3{p4u?;CTqTgb z=Jm725ys3HrkqGFft|t4^7#+y_)Lh$y9$T5f~A467#DK;P~Q*@y+=^`u-Nm34Z%Fc z8~GqS#11$LEwd6QV1 zsRZQ7l+-uvrW-ui!zh*>c%g}T&@{7g{|}}?wk@V3EFrV$J%S@KX01Wm-ExGfw^>s8 z+;KeD9-PSx^e{9J2M6bl%*Ms#+WqCFc;2V=c5isGLT4EmQTO!p%h-pqYUmA7tg*KNrDZ& zPZY&t)u;Bc*!v!TQ$;ku9~iBRjO;DnO&P4*J9$6)>sN5(if6%1D&L9ZfEC?@BvKy# zUu1StYU=HQ!hCQrf|1dNR0Luk-AJal$HtxbLvCZ1Zu7kFof1shfS4+ZfbK+V2b;_~ zv&TNUv5S{5^i-6W+9uMLellR1HAmKOLnnT!|0)XO=a4@8o}EAYE{nn7DRq~nl3L&X zrA_)t_aAqunRhv{B7Xl$4cV@Xrw(O;f`TY0C`7AQg*L6Zxm~@z`Of+O6+>8|d)#nq zU|?VflCcR1W&Kzr7trO3r-AX}CnqO!w(j`@q5tX_6Bzb4JQ^@Y9@ZI#^3XH#`s9q85KXnT{x4yoQ>tp=1rYER zCP>Ikf+40ggw+?YhJy0R$vUM(C{l3bqdzeL(G>dX>MD*sW3TfZ z9HYmNbq9&$e1Wv+K@iyobB0(h-Qa8{nEB(cbcp9wn}A(hRp{}eSH4TZCcF9Q#IWKK zri3IIS9;Y=oHgJHHfvF+At6_nu;qlizParj!sQ1~WXm&~tdSBm7O;yy>)a-ZA>|ce zxVpf!0-TB^Zr|jwR5#1K=~+lzb>LBs*v7O>OYj zd6VY-sK$uX2|+em_Aizn&&?@WkU*A=^Ln$t1rylXY-%rjQxEOrnUl`4 z!V`GU5R3pIwcmq?j$%-EDPWxc_1MbF3qtbm!297hf2+WG{F`JydT|+!cZ1)uaCD@? zQ&@~=J2qBC^8G90VTn&L|MXzf@OvIC3yIXSUu?ef`t})4?Y_oHGi$`*HbIln>>@&h z=k$?oV0x1#+aikcaItaiS-1zijH~SZ)9TMTxxK*4v8Kqt74Q21P#RorEoPwL(THov z=#EIB0^vzVmh02aQCGm%w`cM@w>be);(r-rHb({R;|~8q?{qW9ORmBREdoNDD-8wh; zA;-y$D2^S!1l;LUS#%!WqGx%7!cF*^vzc26G}+cYv>yK0zlIzpMSAwT2r||k-IayH z1Wor}>pV4hzpMn@$TsQd<}5NkMyQ%Hb52q?4Nhyqq$LM}%>Dp8uRk|yH|v>GvbJmT zhp61IOS7VBnS>R`-rv4#7Sewo$+1f}P-u%Ja0Vz929=lu_E)gb7wvj97W%@Ov9i*? zYU#+-YVBm8X3YyaBRbfpr|MEoe4V0B?}mAyfgC|J-mmQz(ibJqPzNeN3n9w?Q2N(C zfrFr^pLRbD!3B}msj2o)ZgP3qp$iqjbVD`P* ze6^9Mf@690lj-?#bIGlqXI#8K!y1zaF@9bRu;qKMwNnx!}RVysnlZ|m_ zE1dm~oudAc|KUME&I9^OOwcY=N&zO~Rx(_P_mS7>}Fop9>d7Cz4ZJcib( zwBmgUO(y+~0Hn@%c04TST}$j*J##Zs9!lv>&Tgc{AYwUn#M6qGTN+!@-XAYG%tt*Bl$f+IT3RCH95ApX@7&oTtRvvGLBP@ni0+bP3T{_%JZOT-c%ZAX72BP*O5O=6wxk5L^_;?qoaWel}GGx7zFV)?V^@>%j)VjKi2HgSeX>_O3rTW&Zf&J}o#+3=vNC-2KVcry zI$J{1t2fov!bi4Du1-3fYvSWMu0e}BoiAe}cuFcZdF`KReb!_FZ6a}2Z&qW*=DT?B zDE0NrU->JWNJ(kJZsDgvt6S;t_4Ub$w4|iQY7d@s${+nXJUiOFM%frX|An@y6Q?C< zLQ**>{5y$rJO;2Q zvR*Dne61;S?65$$#ns_da_k^}?-$cn>2EGF^xSB`V87A(^W8qzTCDSOt+!q^-n-{f zG9I%r$e=grt>?nHw&8969(3m`O>PJ1F}g{3Wp*#t6CNoBda@jQSomzZzvj%mTTfN_bdNrc$HQ|MIL>s6LV470(kc>$py~t z8zb=mdCVtw-RJ$M*PQTCn2v(%cTpJM=k%?y;w{gdg!tqbXn>N{nYw=ABh%C~Js^ZCAgw9oIXK94B*5u06T?%`OPE+LP?}8s?c* zNxbttTk-s1Byc%jwkwo0KfbEldl^c^D8X$iP}WW?rO$#Fj8#S*!~2Sw&(VZHnLL+CbUYYcWqAV;wxi6V2-!8Ey~cSAf`M zoJ5c8h*;e^lBrE4b(~Dvx0I{18are@NvXPVar2ERrXS+RIz2^;tcAl#2ptXfGbKkO z?%41lTnh;6L_41nnAXkqFhlWk*w*vWI>IBp}^kg>DR#6euvb7zFq zeptfQGlv|nM2wJ1h!v0>mVvK^8B z&SQ8z&Mmz7jXH+&4o&U@n>Ppd8X5vnuoF46*Ku2)FA4*P((@`~<(if7K`=cA7W=d| zibHWg$+9XeNhAP(waAykk|Z{qiT^?6XAJlpw;^$D&N-BBrvwcfAyzBT5CK4Q$os4% zyct!85`rZj8{DxbXLkm54?UW$N~`>uG0N{gm+9=XkhQ7h)3)GxE-d9~b<^$l%-Z4A z`hyApY`l1jPgY`!q!j;by$?=oVN@XCbbt5J8!%>&*PQVnwKG(TJez-jyzX@5$I0iz z-Vt&Mt*S1{0(~{^)SxZ6);?rsKzk4xW z{jgl;P`+61G$h>Q&N7mKf?z1oX}d+cdwQ`OlP^xCG4V8gLD1s(3YI@+KS)YS!c?HK zdqgk>cj6!PQalZlVTCzuQ3e2re9IkM?OE$#^kYc@HhtuERq0)N;a{4qv;g zj|f36K1-9vxv}a}X;uF(kQn{`6{}wTl1`s`pMJ=^Rq-wnIBSBvZ=s2t`zDj$e>stJ zrl^xVyYWF3e*ZEGfo$!;dsVjyk{>i}?2VSBqI@_cP!HGOMvOE^?6q1!SI15D zcL65NY}uxDqavEi>q>i92x-VuRRHI&=F=Ugo7G`1E z;q+6u@`iF8$8aWBR>eYnm0XW?R}E0_?$qO<3q`X(>%xAewWJ`cA^Y|+KngOTGcO=G zowwHY`p$R$(Zb)DP2-b0*eS){7agf&$L;N@GHg^S4X(HSiNwzo62%HEj6crSTU8pn z;LS!`lHXn&>ulV0xOMM36nn1)+ENDIGLaolI(vbg2+lyfhtx55RN~Jys3LON*Nziw z<3HU(mz@VIB&&Ro%OHW8Qj3j5e3MU;Kj+Q(`DU5qf7X3AD8^ie#M~QIb?TFR%;2HE zfA#Sc4$z(roXDu=G2GrOtv4^YX!W}?LotUEqrYocXh?Zwwut}v~=@eRrULvzq)QCn-R8_?Kc_B%At$xkFJCy(#eCKzaul{+7 zf8Dd~S1C7PBUevU-Qmb{~ehZ_B| z!nhAaL=5MN^#gQXZj^qSb*L0%y_Kc zN8%IvD4m3)Qhfeq_3RCKVs2aayg2puZS=$rrwnGyqrT)MhHIJm)J0VD9~^a&z9u1yNZSrHHz&KYnagQch%&Gz!^n~UFLRQc%~_rb2uoY)3X2cq(uDmbLP z={Y%_VuQo&Ul~n~B#&EBH_erK=+;**Inh}3`W<+4JeMC(tYVKc$k8dwE?*|_F!E*) z1@P_3sGk}#XXx|k+{G26>{u%?J?)%Hnl|?_ZNrl=OglitE3CVv%2P&W*QZJ z=l}V2f;Cy?1ULLsu)wsqNN0?t+Udw9xb=}N1m^BJZH{tOoqB)1N&8#2|IO_Pb$a1U z#B`uBHrANHl5I}Ul&m>@!jNiZZ#W$ma<(ZVJFiMtsuL&>#t~haYk#X#<#OSEm0ejL z+oblDoE^s39NbCsd*pDo`JO!db#f+VhfgZKoH&3#RmI(Pb8$lIVF8K^V;`iXcC+=M zGkNB+6>jl5vn{$787fZFjmoAg|DL*WJU%hZb|~i{f0-gO5Y9Lh{jmSrU*qOpxSfD< zwi!Y3WI+B6!Ec&9xcu0aCbyHEuyn*IjAX%+=6`r49}j0Vy*=atPH(=#1gDjNj^DiF zIynuYSU$2JC6&QgbR3vK(08APE8H}fTDJ=40=J=++YW{xoUmk+!Q@t-sU)mdQsn#oeiNm>@aYLTgn8rR79`T7+x~@Bu zHTJQFRd?TVJm~)!SZL<`e8V(d_Wk82SsP5&?wv?{N3j?ESAVdDx?xqN`h*e}5gVR` z2%YxcM1phE;+}pYfWxFM%EIFU(k@8wOEDRRwProQUM^x1-3nnPNmiT+{107Wf zEo_HTg;w&M?5g5BPQ2RAeNlgs3Yr~X%oiK1^}){3Xpnfit>s9QAw;7knHIB&D@98BLqlK5rwcJT zr8va9r``@>DIMSaL*a#^`nIJ^?;aQk1h++uEH@XdHaRq}oeBz}lT2`I|00Z6Iu**W z31|+fMm`oO>D@7i4r5eo_S(KmS{$Vs?&qfe0gfbnae|<}2YNH(6!mCfsi(8sFOYP( zFdF;(rv4brigLe|lXR1Jsp!WCQQx4gYg-ZNiISD_gsG*40&IoJw~E@=Ys#LD8KTZ1 zLEk5xeph%?=Xl`3CN&$S|GS&tLYh1(fCZnHVB}TY7yt>F4W%`k7$7$whpuRySj6V1 zt58a*QZ%?&%QY>~|6@dUgiBq7m(s;?ic-E05y*Apv$1_)AfzFilTgH3`XuGAoF@JH z$*l=m+*x5H(AJ5nHIl=G@Rxlx!D6Z1w7LJOodTu zWPkaPgl9XdDnKmfA>N+u{O8iMff6pL<^Uz~O`58ufm9@?^*gB=Rm$xoa^vABCFaex zSGWA(NY!|S19Su^Yw-T+;_v|BNdtZk>qLw`2m%eCZg7;2BF*{KcDto9eP1DKg^laZ ziZ6ITX8X?Mim3Q-gaZ|UX1^}bJzoXjv%=-NEio`G5y@_EgSAR6MGxx|a5x(Zrq>o$ z#Pl1=dSN^kQGVCF;#-R51bW3-g+aQkM`)&uLteKoQynOOL{WYe#!o!lwFnDtn?wQf zGTWbZRO;3fe2#Am+-)$q9#k4ahKa}u*=Ds1Jb3;hxAZ?NrB<=%_>1)Gt1H_VMN4|O zw7e!WDpLQpoA-6#US`-fAc{eRk5xlr(Hk+5ZAUk`_J7peP&Ft-SxvKLO%5FYGqWY$ z32G2szq{LKI2PFeqD_{tHO-^dX0@+S%iy|}C-N;=GhVtQ%!gNXEJRc^tg|lYT*T|V z9*cF`IL@3BM*|Y?2kWN>q)zqc2eOA3xonQN!k?xO^b*^DKatvYeF-6DW77`!$~LnK zqI=Ww*n~;-TiNX-7Am>6*S_A`^TN=}rSr85zy&DZ!OXwC{^AWXnij_Ix4g1LbvT8F#+??AmW0?QNQI!a4!Na)t{|2;@`8E^pt~z?|z4$ z?F)zms`#GUHPXO}MVsBWf3u{2=W*!= z(KGXFh)CzNIfLCaa>uz51#er6oMy0pH8B z8R)O%*%PNu{+;|UYyoSJHEmsgj3LdQ^O@xM>k~ZtmK8(31tJTXNk>+XMIBN8TD@P< z>v%6Wp3Me6Ibo|2LZM)_=u>9jHQjdsN0jajZ)@leD)Hr{y+zuI#9wn*9Fo}nD&AWv zw|YnL0>HmNJ(C70qaXu}XQP?tk&W%EdtW!hI<|`npq(4mZPpLR7%qQvT7qOjeBLXg zl0y;!E4=(4#V6B8A_x2%>SyMcvOaNsnt6-Iv#cZwh+^G3!{B7mXPO~C*S#n*A$~Tt zD!+W$!gMYx3>lZ_vawXo@e`2w1<4@;+!y=nr}>1s3hrF zkkzt&{X)4AIh8ZUU&O{_ctoTk4GROnnWy=1pHXgkQlC)+zR4ql*LC%tD)Ef|2`fxh zT;}vQxtN568DS>lxNY^F_4_@U?Hg=()L68LTUaAHU9PY2?GY3l9!tw;ORx|pjRM`+ zWI)hicc&uwd38fv3IGZ%R;reKH$b@1<+LVEmNT2I2{{X0wYOcLtWKhKL!9i_MT9@X zFM~%myuft|4o_ZmunNr?C}A;6M$=0&?F_DD+ijFlB3z&g~Cv*tF|BDL4{T%o>)LS~XL4=!E-AdE?4 zATyPZ%vF;!sogInv~1xb>VZRR_j;wm9G3$qFS7t%04pTchfi4+2y*zi0N5JDhaOS% z(jijKe$dF;$nX|v6g?t8R*nC}rl3`bnV^0fcE@9G!9;PQi$TKOc=TupY|8w$cp>#s zn4DhDfjYt)C#~cdh{qc#c)aNKt`B)dvFmvKiM1mf-fI3MI6z7_r5smaIVneRuflxf z$XdeCr>yl}+(3|cY&2!|zghq#0lJlR{;ILV2g?u8ibKwN>FPRp@sD@LJlc%y6W<-b zc0#*hv}~1H3N0R=RQq*zR78hR+V&{C>(Nxh2wRGg(MPZ`_S1bhEN^og{67gU*W-`N z*E#1q2!S=Cw)@8w_2YHi{~v4`Ae&N&&EK+EU14GyB~YCdAAQ@v@`%^{kPg+~ppkS}Z+aTp3YVKDuEs+i~ z@`}hWOyL3M^jUqb5y#|A)D_-Lwu)q2l=je3`#px;CymKWXHzhwn(gUv`{heGW5uZx z{Wp3n*!$P{mi6S^Yd<1{-UUu)lBYM_m9|x8bW8^RN)c(-_s2lL$21;YULB1(_REqq z25+C7Tp$E`@fgbSdn(WFscF%&21Q_rN3$_99xXT6&5JbOP<^=04tRRPf4~_%l;$;Z z5cb`uIF*I(%B)xeJ;DLs8_BMV)Ji4QGi)bv6YHVoC)JTT@@a#5?S7_uv_nY<-(}el zp=tG|tx2hfK+$TmJotcSdftE*jgZf7h@yBng6qBvn=3@ilXUEcY$^GHp3Ad@+rY&C zni|QN7)5eeKdA^cji0Chc7hl0ZMjWbj7#G$Si;gvy6Y(OpkB8}6is0_S$lPT;hH4e zlW)uPBWn4_j~^Gi$hSCYiFJF-$}fG1U`I&R@Yeh1<1Z%~h5ip)Ul~?a*KWNiDe00f zkp>X~X+)(%xiU!z@Xm8t86RQAdj^pwqH5=KsneQ zVYhwr$Q`9~we;C*qeX+eM4Mg%D=W;ZUwVL@4JDoC;P8(5%y6fl_bb%lB-+uhVd3<) zCgr2M#4?&cjF-kpZyHCTJMY9@CYdD_Y+S@(Bl34$c3Sh_4+L)$7z+uGB_ioaaH%4B zMD-_ZZ+SbZ4^yQUVkHJz8^6pSQmZ(cl5^(V-ZjwB@-N?|l^#&*K=gA!v^Kbnr)lm^ zv>E;Nf1x{xbefCHgkT#(g5E6nWBz~_#hTEA{Oi=KA2`@m0=%8;t8zTg%Bzd|cL@lR zZ)9A0>a4q>WKe2e1466Q5aZL|I?5@=0>!z7Yu(eS7~2zGz4P+Wgg3*_^@jn?=VOf8R|u;%q)G~TnkuR@yfA>!zmT7Q zOYV4%eCf}&Oc%jWrGpyngKKwR@4n#WGByF-9|Y5X2b9>wEwumsrfns}>b60Gc!w$G zVTt_Z^5dypBUCizT32=f*0*BA#mc3bH-E*(2yy()dbIWv_VmhS-RWV2>)iszfrskl zbsIufa8T(4(PHBlw_D-nO#Hjxgp2lOjLf@}Gh5j1Ru2!4vqxvzj^LBKahKA=RGyq? zd)90}^xq`dZ$e6%0%&e79Zt-}!s?vqnBq;EWE5IX^e}`Ro8DP{Z0CXmG~Xr{CVovU ze&em9(}cUw{EX%+-CLOIZeWy5WhKSi@(|k`(DA9qUo6F5R~G5hL8Zd@)^>MX^J1I{ zm~-A(jhoOwZP94$>%5V2uAWi0;$JJ zjU5fk$P`gWD`Y26P+x*+)wHf1#A(qOvNq3AkHe0Uh}`A{NNpu!a=JaqJF~GuZP$A=gxw-n#ou6#W z11%Nr*tZ&f+0>l9I-Wbm^NT~ggJUzxl?>29w!wl+j&w08PYAlSnvfI2#aq%yC3BD| z>@)QB`rTIRrfx^)RzaN{>0qFJ?qe2pi7+!wD*X%jH~L9_QKuLaq0@|qOz>lmQ2uxK zliTV8>f$pE34)d7+9N4{mYwda?+c@xE$_&X_?<(EUeVD2uOQ1uIQOAiAqt5WO;mU2 zq?l`(JOsh?;`L=7&+!_2>cYpnc=OD*Uy1S5^wohX7Je2bTKkKOimnh{UrYeN#l;0h z8@pG|<*F}%7e4I?c3`In9*y>o(KyAM`pmX}QL@W>n>{kr&vA+u60#M#RBVNv9hb3N z>OWkg)vyz3XrO=lO8=X(J=W~(Od(H)onmnMG?6y{O(AYr{#(YvpI_^E7|Z1SMj^DI z9GrIN`Ebe3HR_5SI30nE*qN&w9P7RhdV%oqBmLf2p|5fl%;leyxx%=-P1Au<6}7wLa*(9BYjD+#D{fXx>lpc<*2zU)&4}+Kbe_ zln-=Dir@l7w+Xfxi*w^gLWNF~mfVuaS<&P(&ci0NSE__R*2$}|A|jGb!G(xzDIGCc zhP2I14J`Xmz}sSwLva}JorlYrI#sVsVnbG{9Dg9&+CF4gsmXiv_Ago*m%lzmFgd&G zt93ASqTXRZfH$jCOjDpI9tjh>ogQ4-aA>t8c75Nggaqg|$J8~0DFhli=k%yt*5A+U zviAv=n_}sn&qI_@ZC4U`OX6`5RX2w0 z0^LW9Z?;#DEtA#{Zx__Q;O6z3j>7_FZ>)6cZcR@YR-~?FW5@3?oI)q`sCayFIy+u|(m1W|lW#cdn?bh>~;_)Z~Snlv%DZ;QrK! zT@XUzczwOl9P}kJZXmpzyH?+pOdAjW8vQ(adWSL-DSf{3wRuA8-3tU@e>dF9!F|$6 zE$vpvv2j@soo;Hy#DhE`fm4aFXf;oS%ekJ(Gk`pL_BAsbe;Y>}$enk0cOE_@;WZxA}gvT+@4uv`pi-& z4-sZeZ~wNQ+KI+1u89K~c^QTp|DN6nSY;ZZpRG_-nCu$p`!>TzX^m{Q-LcCg+N(O! zyUpxME_GO&O}a$1!DroGmvXELAjz9r4K5S#ril~a1x&x8NnGTyGb7)Uf%O%saa2^N zAxGu+ZVu$ner*p0X>ORpH$u4=Mj?MpEQD`rQZ05@Xn;a*r1TfP?!ocYfrrobn+hx_ zV8#pn=}|CcY#>82l)p)TLLGX4(zGf!v~MY}H=psN=9Qr8@%R4TVMA{`lA65T;nIAE zP~zX`g#HW==)GVo=6Fshh zKC_Bi1x+WcS%XEHf3H?Fcws=UDfR1Xkb-V8Bw#^VBiv%C=Z0H$vxav}7&7Ege zG`#%ffPzGIaOlPVdZ2>IY~Z~@y|`Zu3j<7kka@;@wZ+*DH)(=DVt{V|wBPKlhcxE< z+elV3Ep%VZI|nM?7A+B}{qv$gFEGX2_rxTSb35D)$91(evR!WQ)Vx*tQgbtOv{Ll< zcNyDiS;g9q&3x}1-E8{FsAS`v_>CB>a|vx^iUrqXCdV(Nqi%=En^ z`NRS`ea2JO{3`$z@pIqTDxYn?WR>Ns+>dB|x0_E4&Mv||rJ;fe?b*3Nfc1KxcE9?> z9IXjZ_KmC;Dp>@7u5|!#8!>b$E5r{i zMGxR*d$W(AHZ=pcR%*%JtF_dgFt$CclWfq8`1?Z-(a& zV!h&=yV9#vfNp$7;`BHtZJz?Xt!Js}I~kh1B~3kV3Z$6yfm$u@cNhdP?H1?jjKPN% zojq7CTpoRmP|4EJLBY!J-3iplrJ|h7$VRlq@1dPs3t4`>R6kvM;#CQKfNFtJv=6$Ef>!t*C27i>mrn z6T%hX!2|C@lK%eY{tmjYCu_{CtsdC0sQk8DCH@XE9U5`!@ZG=brbM&+9U!!DF0*yO zIDEPK;;yMlGX}a`T;~W-e6jSU7s=&2xwU`A zmX)0`|3pW*H>cV-a+4KoNUvkCqqU5};wd$DOx!hG%TgTo#Wpx=#z>pR!!Y^_#b#%Q z_E583)x;bsLqwu%^#sSC;Y)W3O7VJIPplDsb;mV7+MTxojEjv-- z$0Z3z-)Md=_%MCNp#z(nY<6(g(S({kk%CbC>8_~B#ds82NP=D)m+rZ9WihdO9O@2u zw=GlilrCOw`I3UV(Tc4Kx*wxaTr;3G$p*Err>L6wD#_X1WDGOl$&pR=XfqLN=%v_? zPvGMbdUJ<}QXq{Ac$U9nYCDq;EK9}so15F!>1c;GcmMIwo5d&fA>(elUwv5K*+b&> zO>v;<`8jp;pgnCkc@Q}Co<4@r0A1#Zp0`ycv5|VSW&flm*|n$vR(PEeH|n5K@Au$5 ziT?>@gv4Q1M?!JKOX3g6Nt$(`mVkVez?77v-*AZ%TxAu)2UyOXfeYRf#89<^JL?{% z-wYC53t}mMK2bOxX4;zQd*zG{hSMnyXV_}6RYu8aq;b3x_6ro&jATx*$X_rV7Ff}n zen|f)yf{Wk2@jxc{6km2R&sD>9Z(GnWK{07i1#>Y!n?kc)V7;MpLr1 zH=U)KRbm?M)neayL!|G{xuLoJr`t9D>ABh&7d zt-;fkJr5_nazkLD_M19Azd}{Hjqk=sk1mQEUZwE5ng8TfcXi-ys==NNT19$CvAq`a{fmBdZzMcmNc7%es@j-{fSj~Nhj8RF|XLG_xB(0{IzB{q{0Xs|izhN}(i zXP}lEJA%_dU!-?uh{l7dLCY8v%adISz9n2JUTxa!-jBqODx6RS(5KLi?v!7?0 z^Kp=qjx}jP_h!ebYsq@1Towqe^o;`(6dL94{G<0p5Zh+fRzjSFAl2n&nX-k9p>oTa z&Qd1$NAu97z;@aVx0SM7T^bTBZ|@2ZS{EF(o)t}LgVu(pw_GNQVxpD?YM0o{0mbVS zb$ZJwFksCSAz_-$4o>)!XrrRXveZ`%bLykx<{|}=MTXAKjfoV8U^Bj+ z9=!b{Tp}u#7U&5`q>`l;ZMpcp$m>U^&PL;5PtOS$yjC;Ry3lK# zSI0>burBq()c%Yqe$h<8(pc$UI5v?@M$`<{1SM|-99lsWZV&B544d2{-H#T!j#!89 zDMM(dmg<;^T1@Ge=z91zlH`*HLcXs4Nnj$d^5_F}TnL#)fIEVmA z6wWMIziT#D!en%=dxB*Y5+(ZG+IaE|r}9EXgh=-_V_Xhem!gcviXXm@E0@r@E_SGC zO+_s!nwxkGzp7j)qJ3Dz6n<8Zo^P%??)GYae)Xv_ zlyI(FMFJKmu2*Q~RzF#~Txl>d3=5N3df)I|CGJ=0vB0yGXw-6lampt6%x-JIN+6es z!THRuF-!~WHbqv7GO5orUWu;3Zd@r<)-oC%YA&oK_Uy7SlW{Ju!vH|dX7B_-&gJvt zD)Bcx@W`(EUT@ps$YJpsU;1Ph=NJ;ovEjZ}78S7m|l|wC!^9dV@`8%v-kI z;UU7e`d3r#sPl@*p#Mu-Lge#&;@l6R+M+3kz!bZ0;Hto%T6fGUO;qnbI1bmTjArZN z7;pV`2sTfgG`Qqra-iakrp>NFi6`O;iRqVf?yUVs=t&Z}t?6RHmev+L;K^)aF{K#7 zY@A%>BCUBju641%jRh19>8>I9MQyWY-WNZh=>i%dpcNwPr zOgcDo=2_(4NM-LT7CheWf&)Szl{5Fy<2s-XMx+1iQQX~)7*c@^+LU}BO2m|u$yVd} zfXcW@%wsus_f2U=7@NkbeS|0(HMBag3cu4-n(k%{!fNcN>$un5>c&WaAF%$og%=vc&C1U)qiz5P zFTY;+15&^fF@V)a78NN9`)NZ)Y1c`2h_Cq|!Kf6uMVRVLEfxW!3PFN1jh~l4)P7qz zA!!j(v>*D&QTW>R%C3rNrk8obWF2)(U#O_v?n?x%fxDmNgR!zAV~8aZUKg>8$G zZ?c2(1AzQ-A!mvNt6l;MH=sKdIKsev67}O;{>&#}_^GAV%+4Uw_G#`RF?qw!vE@X5NSE;EI~>9s|=ghpFXdD^R+@h`G?(GdHcFHWHt!Zh%z|C!<^jxBBi&K66P20c2t zFo0ND_FSpqloZ;5rV)k>2?tLp6S)|M7y_g{@)K})^p zZ!KZ<8zhsZp)ec|>T5%doIHhEat=K z$Sw?k&To_75WJ-XUY<5-6JfTPcJ<>h=QvzpW40w!SkhPvXD%{?tf2_6s8`$-_b?L6 z;vJjKJa4$lSi$``eShWLGTE6+*hi|#{};&-Ef^JJ0AZNt8wp_D8nn1}wh zmNf!*JtfSFZL4PTF{@z_Vqf4x$-nggW{@7E{5FRx4%!dJlb;7GgO3vFn!?>%b{p^2Sy7FI0jf4k zm4_yahrje@u8E*r8a)V-D%O*m}+7q zL4z<0Q1xz(mqKw?=H}Fx@EaQ%?x4^qm3UB)v}I&6C|unrVg7v7y+7iy>=817;o-h0 z_SL>GV`zBH=X1VtOiJnf_cBf`du6s2n>kG9zpCiPMa|4HB!FgxBBA6c%Sp1sA6giA zH_zXylCO9Uty@C`Up=&=qhoMTDszku7X_xxoKx^u|H#BeujzE=q-^qlHbc;t+%aS3 ztjfg3rkVqPEaBdgh~Ey6he}E(AR?m@P53A1dYwEGn?DnFQ|daqSTfW(bQzb*@s^D; z%;mN})pZUjr81!OB60-rpW`=j8MxC2-{nK*B>kwZ?Jv63@rCoA_;Zi68pzDGp5zkD)LB=h*KwAKMl@; z{$qA6vBvjzTK;pZXTuNR#s0q4`?eP^FMU?Tf6Y(D>l}y=DR)lE9@83D0$B%9z39xT zPl29n#=kF^w@NXw3GyXQKW`gV);ug2J=Z5_3c+6y&5ohzxcqxdHdUCU z!MvhRk}dqJixBIbuU5#zHvdQ=?@rpmKaGY)`+YK3zr!~)8eU~gD!nZ1m&|8vH@rgh z?4PDjoeTRt4dDs8#oRX)e$2~<7kY84;yYm427Iv;QP7lpS0|);v9G@A9phC&v|Xel z#-+()LuFaQN7?R}O0J_jcZ+2=;v=TZ!xJ2SVS0KexiZD$RB?hC0{m^Cw_o?!U%$QE z8joVCWoLZ~i*}Br()8VDA+uOahSvK;!~tH@4uT^xVkY}5m982TwM{o6Ykt7rWytAiTy`Xp0b zGOSr=W*e8wCB=Hl%Z{>;jih`Wr}=%Zkes6U9_b8%rg^592M;NgYl&vOG5B&Iqd@?2 zGva`f-Ra%Hf^IpcU@TJ=Q^G#ILw*7g99qikbofTPqQHwsBvnJSjI5ves^GFUf;n%l z2~v*Axx-tHOnTK&Dr@+Vv4w0xgODSgtD^Jp7?SpBrT3fG_dOR@R)K=jHL_VI08!&# zr}t+qS@)(`j@*Z4E}7-4>KF!ax211zI9xS=7>A|=@99^9qJ!qcK=fgb!iaa!9)U#H zjGh}v1Kq)*w$Tv1$B97l5bFLi7%A^9RpxBA-aJK0zi64PZ6>aL{aLyGH!me2cZSOR z*%B>#!E^-zwdiGuqYq$y)=Z6f;&Qc1xTUEsQ*b)Gmr1LSb5SIGbGmEET74C3OBVBH z;Du0_YkA~6W1ZXvCKuMV2t|P7d0NhpCf_Ek+40c@ud=o{DMz_Z+@CS7pXGl>WLb&G z&bA3kzzp!F04qNOTuT=8Cb-|-Cg$LLnq^}5O~0aRw_|bd{A{L)V6->ts63$}{?F-M z4yTTva%4|W@Sck|;c9$zOT~qexiOC!=(p#Qy0UZv5UIl5X+tqyS~8(9R68@7hj7K` z@^(!IuE$lkk0Z~14(ICtou)LD{hF4xd3JLQ5}WTm>8d;}b@w_39rT@5&==>gx%ezH z<^IJ>=VqqSand;x(M1(vKOQY42W;>lI(+3eo`?_5-%*RjJD-0z`J--Wp!38*d(_aSryK9e zP8~L<3apAP6lRgrK5}=zTK=>)Ccj2Xxrz+{Spnm$Ok0a-h4bMIC-}A}#_?5#2gbif zd$~KKX}%#x>`1|yy?e8XBS5(xfkHwLLAT90F;LypEuoQ(?TPl!mnhKjtxVOlWRPOi z>nxaqO`s22YB>`-493k(A+J)<2a6<3rm@956a~FR1ym=V=ONm&`BtJ_WWdiPrYrmJ zjeAcaU6L0K7$!Tys)41+vt_!@4Js!it?^IlLdAtNL6o%2H*5#yGoIQ~gQwN_3l z+%SM|TeEnh2q?GOrS^ULl(K!NEdjZ^M`oA(GI)0t8QY8i@A>|r`WuWe8;nq56;Gln zWx6dk&if*sx4oav%R(fGE3hNZxmmp2uM{y`By(#v%lRFaQLGqV=%TP#v~I7kGpt>9 zVrs^s>*u(?(r!5?<6G@~21jvC_;@YxoQw9k^cNBU%y#Ub>jmn2+|a=UU0v$jV0`?hDekir>d{-7H&{NVlJfkbbh(MvfHo6zuhoEn%g$F@+w*X0(L?vi zOi>IEkLPin&y+s7t{}nJAHt1jN!RWAAg+J~0A`FVbZ-Z6Weo0LmDOZ)P=(QdCy7)R z{k5eBF?6kn`GJa3@YY_E*ft`fLJGFFt<83dr9|>xj$Gy!U2)9oqeOoD>wCQu3vw>j z{H_l_5rl{#5jd5<#p_i(Q`J?WLsG=H@(Pe2RlWQaqs>f27L)sQ<-&SHGGc=pP|+73 z!j(G9Io-a62bb?&T%6OPs}w{GP~8Q+#Qil;p<9eVe`dlXyhdX7t&AeyWt392|2;UYyzh|4#6EXM~0X@mGC8$vG! z@dDYimV1%ntDMh9DJWs2#-^qs1vMjyCp!ir(87m)T#eZvb+l=_ofDiioM}fI6J~NZ zvJ04wiY{8o2=eF^m*34wBmU-b=PoL*I((D@OI^4ynztn+pLOPZQAUyZ`Je;c&4hC! zFb^V~snSQw^~ii?>Mr8&7E&KNYvya=AvyjNmq+mZy5#`A4{l!bTT&ZtV&cIOn{h;A zAppej6&Ek|_`aRYp2LkbR8V~^sk7S{ugEEYO$LAuGUI7nSs$%{i!a-$(kDG#FYcOE zV@n*pSrr50iuj0eq-+7zL~aEPTaHjT_!YI+6|Zci&GSIAUSf@E&syW}!p8_q*w|4+ zmXFKZ0}~ipeMbae@8MEG#P!z&XweuL*a$kaWgmc^(E2?g#UEkK$GYktWBowirDja< zo8dUS8OtmQTDsDAm>53$bj`UpEJ)63YlOpM>sR`6hu3iUrE%kOU%Z+1cWx=~H7++v8;#`{GB}HqUDpB&*356F zJsRo9GBlulS;d-iw{eLi*h z{&P3PjQatZ9@Wh-S7!bn=kw$u@G2(3;7TN!A_FQGNbYSHWzIai1VgQgtw+}kn+bOA zddLqxeMtk^yR$~EItPyiRg<q^0tWsMP&uj^2cA} z`-W(ob-oqkRnlrPihWwvu>Z5KUdxsAz}|dyi~rjV57pK3NWQ@QW$?)YWUx)lgu`m! z_uAY#Zy)Xt7@%x>`Dg7N8d?cvydsBb4ojW84r;hkPpX)cV^ylf33G69Ci{v_$Zl(2 zPQ7z+8~>yZ^TveV+4CWHW^}E^{(c=tPpoe%b>l;;i%J8h<&^hGx`mU`<%2y#Zp15B zFBgUN`JAN1YcgB509s0Jco9PtRq&M>KftE0R7 zlTRQ+wCV9;{cE*IIf)P|=g(XlxeHdI31d=Ho@d7;S_q^@_Fp5zUg!q5ZZ;ThB)yS; zyZGRAIm=pOr^?k&9>FD}6F2^R<74If3t7bF+t|5v zquEdz3C)|cCSomjp7-U^N$_cC>WP>_Hx$Uile<1c9wRXq$NYuX!kGW{~W(6Aq3YiI3~ zC3z2%E_l)ucNATpTXu0tN3WE=Bxy|}p~6)=-pl7?*VCeiHiA@n`&IM2a>y9LD^BC= zi{$Aa*s?ftz^XM7#B3 z#E}y594}9Meg@QTqVU&Dg-3bHI@{`Sq-9cXR!8M`V#viO-06{r)Gc$!Z&zcayYSvc z5oSrxAT-1dmNBw4@I36dYle&>4w|gKW6#ivY#64cuA_8Iyw)bY85&fCAz&)n^ple- zPDTbOKKFa+KX}|-^^4Me(DeVt-?Z#D(CmL?<_+kc5&K~}TSiye(#j->O}vk)_Eln- zqNa|a$O;a)#A>O9_TNkM^5AJL*?R7kXZhj4-~!g2{+FzK4Y9sAq(pZ;C6Wo@+A$mV zkq>vA+uv#406=d77iCP6MCA|T@2oa0by@0qlC|WF>X$d|Re3hl>b;WMk6E8(V53T- z!{za4xwnlq^-7lY*uQ=rzH;OzJ%$C^0*U5t+IxjL)(-Jr77^w?51U%)0EByRTb_b!&Ztrd{BCHt4sAT|Z zI#oq*h%RgMxuOC}`#Ki&eHZZ7pU-FX3#H?!z>mlU#<%*zBVrS(g^Fg}*yMhNk&oqX z<;P5gBC{D)p5@J5_71*c*%XfFN^28yzH90(gkkj0t^7mFX~hT?+Rpd&7{9`;i#9`= zt=dEI?bkBpVwOluK$O5BWcmD22^kh~=>QXKl6m6qTKMJ5Bw~orxXyRQo?5#;Kk>94q zjdCOG16E*uEpKa9ejGVp>UyUp-L30)MC)K>b%XP(;v|c}#TX62Fr-plvm`=T%;(b+ zmtfl4k?-3mno+KnX!l3RC1QWr@OF!t6xnG=z(_eiLhWCDJ807`A}TubriLQ#R#n#IQ2gi)q49i_nyw`OM6~TkNJz08qXgxi_e8Opx4P$y`tuVj2-!Vo}Ap| zhYBGpxD=kID}|w62h$CiI~bx*5=5lfEDX)v`z1%bR+bMReQ`WnY~hs&Zg$FHS3WYE zU4!8|MmyfX)cU*#_W9OFj#MsLBt9B@7dIpU+5Lga3H?vjzLt9F8q9%PbpTcUrFg@-KK-a*L3_afWT44r3T@%o58#KV85uD^?nYqa3B6@Cm8pT^G zXLSE$1kdNVp>Z+(1Gm=+5ZW6*SMzHOdhMjm;C?zfw{l}&Jli)+#F#r^s_#HXe@Z;x zA1yh5*i%8{!dOf@e)&VPJekD>)|^n3^N+~T9D8G65>S?nYo+BrvdpZA6GCw)Gf$aK zW_vKl1P7;w4t$-*Mawh}ghNE4Y)sKZD687z-8mxM__j7O!PCg+yy>?ym*04wAZWj2 z$@@lL*dSHCkt-Ixh)4?ao#|M=Ts2E*)}E+YZOD3q<5`+SV{8rX!PQ+wf?zwIcvllo zFzy-L3-{apLpmMlRkijW9QS2QnossL)I#O1kISeGe&EA|@q}PH6F+Fkj}{ zy1UuEl_q9wxo$<5pbMI-qoj9LtV-A{XGKHO0Xen5@FyCbk&$$z)oQUnq|4D9RIB#u zy#pUBp6IkQ7-Fz;9D}CA_Q4a8gcY&8so@$!tNwfkXDs!{)h1358*QY#izHc;Ck29L z;Tw*X{(h+9bl=p$y2bJJaoe{K@If zp?1jaoxFAWJ8y)0Q*!SuDc}W~TW{nvwpJQ6Z_L5(2_WTdcS1JK9EnjPoqQ#YR2@COy?)DeHu?~gzBXp@} zism|a+?ssXN0zhYc^O^n_Q1FR1331#;v%=@KdrV-<+Pt85>$R%%RuO1&M? zp_xnNj~_Tl?-I`2hPSEb^9Piu;KNIQbGAU|ximG@6Y^$~w%nTPfK_(uv32i}*4+sk zuUs&A)A;l`Nc~ztyfL$ZoyE{FBqBl)R}rs&4p|AEeU0)yGzx~AX~DE z!l>i+))WRo->HuX%foAf{@aqqMZP$xV9AxaK*alV;7}U7U-nzo^%Tq(a|fP zotl~g{q|b=6$vHr%xr&<)HkY+d*+suDQj7lq+ru6PL3y(NPd1+2W#ro*Vl_=VgV8@ zAMN&*9Hibvo;iLn0>CqsDCn|hXqYo*jEmw2=yE1XYA=BXd?O9U808J@m3Jd5EK35# zHhX%nH1_Yf{8K%i+bZnC61D!w)i)|8{TfuSn&Wm3qnna288WKo{{4mcqT*su(};k; z=wtM1N}Fop!N>oe(ryW%viZ!=Lq1KZ=?8muU`q_T>?Qb*9{;O04w*Ahua4m@)z~GAb$B24Bt-O@{qG{ zFrGai3TfbbTnEh&AxL0BNDd}28=Epk%(^8xRU$0u?p3rCb+bTkL;n6>0Gi}4kd20% z8NATKp*(-#bHnS5jI2BO#gK*5`9C6T^jfe|K`4$O8(VqHZ*NRz+?>PHCIzaeh3FG2467qG5a>W8s}_)Mb)!nYS=gC^-@qy6Rhnho6XwP>+ZzU!T%JLD)2gR!7>#?0;boOTpUZ0 z*kFddyXH`9lO=Y^aB12V82$y)ZGj%J*$1SS&x0^_X)b;H+QOUrM}LetUTmuofSm`n zO5b?}*0M4ca+J`)i~G%-ji%LYS_Z4r+u8mfi$;>al`_$g@`FtGN}3(d?I{t2@Rsj( z{N+fo=sHjSiYmd|gsk0Z`x0TxFIlR#4ss;6KwWt;%sJKmm}T-dtj)ao_erL@ejupt zw=?d%+cTuiNcX;s%1@%ZhkF>j#bH_?_An_w8H7t=M2x>f-Tru9K(SBX7G36f*Sr-^ z$3ALiA{C?H^t$g;PwDGTwJ*nO77eY70z#$^*w|(=Pi78985*g|`=&B0nZXDM_`f75 z^R_;}skt2vIcZsNrtHG~VA&PnwH&I|YB1F2al{w>1qSHD;jO>*eQ$}q|E6HzfuVsc z)v0SoL5IGw`<5DUoapALH)YvvqE+Qah>fr55nD5KxU_YXwMdIoX`+h<)j7u6{k1R} zMtfv|=F;TsE;w1gV`#XV9ry0i*i5*ClXw+pfq$_$ ziRFzq1Fw$FwOY79kJ`Cr*9CqY)a=^U15;a({Gtb*MbG3PAZgDUv}XWEa@Q#~Dam!S z7psx{YIm%2W#xJ8#N6gEG&0r@OL>@vn&gv6uykGej!KC5|H6Q@&UHy*s!jgN zuZ#KO=O;!KhN%y=^#fU16KjOI)@!B7-$#Qe9Nb-1BKwd1=V=ZtE*3E%;%Xj=qA=A; z9PA6nC%N-;XpB3ky8mOQYNuP48wIcX|1nc&{G=rM-ytu;!tqNCs8SwZdU1JAc2lrYiI=d~j8?Rr{P8?v;UDdbjur0Cyw8G|BI8Vr??0LGW0yfR| z(j#Y{-oATvT>NaWknyGVJW^bvKI7D;)$J+c|3-PTj=s&CVVp3xG~HJE1zgx2uA7MW zx3#y9c=SC5!f=uzf#FvppxoZn&ijj5II0HS1}l>=sm z2)X%_OHGn2FzQ5W6slTP;&2e!@hfY|Y&|3PIALY@7ocnL0u`|cS*gUPEy3lnWy-@* z%+FlRZex4j+spx`188$*?Y_Dpbs?5S25L@?{SJ%&FGwJGIrVuMN}1bTtiG%y^Op&; zap_0@=plG35*MdiMSve12i3YyzTo{yo`WVNrXh2`$C$J7ec@rnhyx!Mu(;`lpZ;S< zKGHb0mHP=tqfZ=|Ppd|5k1-cSrR9BwJ^#t+UbDmnu}JPByw?A9XaLh7$`652bXG;T zOh3O!uO!PdZ+Tn@+M4I$IwU1!@Ln$*SRuLTyNgL&Mt(!Ww=eN*%CAD=9M8Dg&J~~@ z?urhe0#VzSrKrrNpuU(+Z}$H20csDKI}54x8H6g0f7w<0yHAe5OdE0#AF%V&D)HxB z(|wU;0|x<`=|kZg#!pkc2o?w!e~)Is{4KhmA9cmB%Jb_(Z+=deVwZRbH&JX{VeRZo zP}Iw>jj<;2E3u=@;pSLDMoYujsoxQs60q1I`pTJ!;2R+^hspN~vnVG*$5HOny$Fx7 zJ8A-&3&&?Ez*E7oN7q@pBE*uq_y_r3&kZf~%3`ojLJ9!FIIM)3xT6jCFqPfruPuYn zV{;$f-ZGmm{=`3z(1w+#qHT}aqzDwTAE&w16Hpz(J;>7?qvBPIBG-5L`aYHcqcFkx z8s)`w(1gbhhfAq!*-y~sY|?WL>!3DehzRF!Z&yym7zXpTju2=NkASh$0jV1%YiS_^ zHKJbXVxB&lx<3#R=Awj(=R@lKW&Qw(R7EHA+vIzUsIpi-=k z0Dur}a7aiAk$;p^{+eP#$cx&2!`Rt(Pf6F^H}f)ZjUsgezP@pY%Isg@_NJ`XZenz1 zm{U*PyqB}LPWw`2cGt{K)WtbXcnX9$YdWf2L;5o}2}-1xZQl3xVD-Tp1oM$0ztplz z!Pfepi1<6^+`FdtF&kA!%dY^7-mx>SB}S0~&cOb>4qP-k{$w$p6?djawaGMNCCj`9 zYkRgA(pa+DEDKf%QBJ+c&D~$mrOZzAj@IZBnt04VL$8_*8|xKQxk08o_<2rxzU_W+ zEw1iJ#TKS;P?)}M3)q1-Xt^0mX1wVlMK4sepN3)cLp;%`lVZI0s|vCGVEJu=WZ_bl z?`Rp~$h*RjXf=ta@#B7Q81=`6dvZdrBpEZv*lT^PqOXvRRW6txk~g$y;5FJ0<^lsTIO|91Z_do{p6<{$0&tF{Lu*4Y|lP^cV?t zw!+OroR$?&&~f+h#HCT$^=!UCvVAN#TxMC~;MaTpCHaT9906)&N^icE&(9`{qCEK5 z*ltB|-j|#A*;hC^noaRtBrFMM?g?^Is zp6Rz{14xft<=qRsGf#E4ZqVnLBN@v!QMfQYfGt43Rl7T(WM^?9DKbh;E0s;lb>}kp zA{QHF*A#XN-Art`W&QTo%U`*N?Zgq7_4I)(Nov*C_TP@2%l495Ia%)>C&Oo5ak^#; zi$LGHqbMn>l7^xiO83##(0lc1sl?}6JblDXU`SK+g%_lBwyE}h{ZU-za z9XMP4hi>#8j0Cm8Sh)3XEF2UO8Lp}@Jw(hs#pz56PR)@*v*%G>Mh}5-6K1D3+b92L5QhX=3AvL)5KJC8P8; z?HNv3M)}YmlKRl{NKjwN>YqcP6W;I4>L)4s*-c zzQJi*z2-v&giJzMUtMT;_fCk)806USNIjO|d^J%j$^QVP?LX`#d|}*n<1f1~lCMuw zHM=}Kf08W};c)sBq8@^EzFRBmGDI@r#DNfObgaRzyPDC3km@m(y8$aJ`%$jO|L3df z!(6&r)0OrR%a@KVKKO3Q{2Ld`$t~Bm)aMZ2W)+M0vB@5Hd`%$jye8C3!DJk5*F0d8}7{gvEz43jzl9!hU z%i9HuPy;`^^i-nbYNl*;7$qQ=J=Hy^2Fcy6QxloCh%w_+sjOj>Dkgol?VUm~Y`N26&QiD{ITXj@X#4&Fe*lmL|XfLK@iafvt({0C4&l z>jV*jPQpxFN_#mQkN)Q5-EWl#VfkZ{`Ol5aCW3VVK3&SdcGecoOwZS+jU3;lCGte$ zNG>;Mc1y96D{NfGq({h~?&TTdANaxrFHOf9ZY0|aA_V`$6!{#Cy!H~U9bS)fi?!N; zEG9TOXL|fhf)m<0PJmvdbcBhopjl|!1mc;kw?7XBm)ki)&OQi!lO_-4zFx3$ugl)$ zwQ?0?WdX{HFzi22O|IhN;~N?p5(SHZdRD-&vffM4-T0Hcj5`~ne0_elChv*de`EIo z6dVX)piJhNx|k7{gVWr>%yPASky318W~Q$MVm%+r^nV#_(^a`M?ZGg>Xm`^gAN$N) zR~K}RDxK%MobwKc@uTWcNN)`=&cT9JST&#K6sa*{%=vP6pk z-r8io|7y-X5IIEEG-yRRD*w`yXDnVa9*67uax0TLe}Zh8;&j5mLJJp6n7q{+J88Xr zovu=g-!G$Z+Qz#as`h4#A^2z%_Qa&PX#kktq%_>WLXCy-RKRs$&)*L8iI`y#H}r)! z7#>m$H&AHdVp7!|2w7-2@o(!{SWwUt`zct@@l*m$X1#9&&BR$6pd&|#);rsT(@3t! zD+xB7^|B|J+~m97e;A28Juz1pcrDJBeBkQY%DF5J)E;3?8`x<&%K#x=Jb?0&DGWP0 zH!Gq18>kxHGTW(Wn;Tkyj?GA5fglI@J^2)>FvZPj@sjo}y5&p26SuI?T`_>E;Fkec zAQ5h{%zwm>dCXuxCl6v3@c!KjG2-1@9jpMa0BP>h{*rrHj8jzx-8i`}|E^ z(R6xf0Fam(Xe0{2tPgmx_Z<=KY7=AkMVhf-E%M4{c180Do$&y&MK-`T}O zDQe=jQaQ;Oj_t)>cpzQaH<2DB%Y#I4c96Q3xArYiVR*3uwx{(|-QgTp?gvvP)r0%` z*z@u8N19*t^}sk;35vkicmyJ%G#{fdM8prUt;@EyE-lx>R zpEy?#wNMX<<3rH3{h-?m_+WMaNvD&ryU!?a+IVoU)~yn3Lk|d75nJfiV9Ri&;XFNG zBLjf2Pz0cxN!Y`z7NZB_NzF937Qf14O0Lp{XDyj=3I*Cmg|;56&3D=lpo&5hEuGp< z`a)UkQPMo_KUs_4nMj2sb~&Z` z2T^g(_y^efM4-)|ibi3%++CQ{$jJZAx2QM~mcqzmdWik~ZC=NN7(fv%PYC=mtHuX( z(P{&W0ay7vD}AppLSB<6k&?_h+cj1~(Y zovV&#dxxtG08a)q)szk`G~K~5wE|Ap{PiGMAiZBp(}#9gOtqm8>~9Ccs5A@pTzTC&-T3aPr>KV2JugE<@M&%oQ%|2UhT z4@~@zA1Zk_V?G{a7bGypVeb~+P+XVsN8Jz4=JyLp=;7GdC6D@oqaNi$(Y*SVsm=`g zUu=J`$vW%zNFYb?q0XaflgNZ3&K*tA`d;5xmI8jSokVsz^+xIgX+N3DcqY3*ORn|3 z(aQSA5ts+#x2#?UNR890mZGhsVhD3{Oa)~A-YZLC55r`2@ke47mF>~k=+1h&UuFJO z*~n=l*LdQLcKu(-;vf{avLETkJJ2^13juqe@;X46?dmqCEbXnVDC(O4QDH0$410FN zN5xah0#Lly6#2KHA~7RIF1rp=3dO-!c?71oPVzZSfL5|AIXoReln^6duwrkhC~khzoZxH80Gh=@=YN zd$s=d;-7O>=QOx_yLk9_%C zyD&b2?5e#+WdZh|NlWne3nCE7H;u?1L^UbshUax;z1ra{ zTUTJn^g)<1-a4lOGN8)!bTcym^;%|tsW?(;T8&?YP=E3Jk979>-|gSUww~tGPz;@8i*|9`?11X)2|bBXA999{M62%bcWEGx+vxIntf+}&GN`#B z`hmgXeh7E<{AWcs!R4mIot>t5iaZUzBbDG|F?%w+2vDq2YdbXRSrS8-TB@BtmA2~d z55K(zgI_VAvNCj|UGIBhf{c2k`Z*`Zd)KT+tM!+5I8X0Fachse$V2Yi^-=fPtxYRB zZT!aoCNnBc!MtGcA+-<2p8izCemgfMxibKF7QbM@eik3Lx7oa@$l^fy9M7lMu%%Wb zp4lrEKFeomHhe;a#mE^kJl2(5rGq^L54`Ha>l9PjMB-@W&xIfSgNnvfaR#(PIS6)U z`C?^N8+`?U(n|h?r#1_n%4$^Yt zaJwIQ+{`b(rMbvkZ0MYtn)KwABXOVK_pzFb0;wm%!*S~o;TvQ~f3{a}S!;Ppx5Uya zd)&J9x%n+xTAgf|jH_*n-`DK;=1`kvpl^@c42|SJX-_*Y*1dc2zdhz+m)J7)+3ESo z_1X*Ie1Vh!Aj@$)+*$lkAz_w?RoiU)`d^H6#!5pb+lpFU$mW55Hycz-Lzu5# z<-0N3x@D~q!GY#}M<@SQmF;VOc|Y-Kwbdan83AOgI~Q?lEA0mY<#8vr%t8)QJ4B)> z;i)5fw0>cwZK5PQ*hq1!^ZICitLKpxJR7hKdP4sUhh zKMR+u7ZZr^J}+j5Kk7v&kRv*eqBZVv>nAHpNdpIZ^gPEEwyJV%@itwly|tS{_2X$k zvsen=Pb&&0%fFGk@<%Nsu&wEXt8O{;{uy5Ho=03kw{B*wn2@}DOIm?}xwvwN`(JRQ z4<@-rjP{Z(ain~12k4Z(E3jJ#H?@`{gK$DsECVvx)%+HVmJ&MSwJi*(LXoomvWv;) zs5D+~XaCb2X-@OyF>JLzR9M@UN57jnH7*O4`2Oxbet!wSY;)b~jCNSiBGl{sF%C8J(@N{u?o-hJH)=HCsnTWXyJE}^+26E;S-mJGDK5e9e!oEJ zM3L?phN2?*KYoxVZ_$~GJZLJMynTxkEBf~2^BZ_NrOsEl@FL&>B~f?DiX^$&MdQ1n zfujhjUll}JF`%VkedEoPD=(NXSAyvhn_iq}JyUr3I>Xb0AB)?kT$({!%!Fo&0&jl# ziG(1}S&t0d(i;Kgc8uUj?L>|v{uUOCn~K;JRpY0dY()hYJ|6q2NnNsJx2F=j`5fkC zVU=!-NMWBFBT`c#Nmcu29^)}89=4BJ`NN)LTjO`i{zhcbGCvRFi-7W8`_aoY%e5T0HE7k? zpeA;ygW%KbXs^PR3hO#wi;eE&UsJ@YnjQkskX+v6_l)VphrMuJ51+e-owJNV`A z8*={!i%@?H4Zc!ShYvytl^OL6ljGJFW+!E|n8a>YWnGM$N4BhK^37J~?%n zS0#7##2wC7cyClt_j8dTeTZ9fAO(-aEUR(*SEVKIFU*jx=xH5Yf1Or0zBg`TV{>y;-NM7k z^wNgmGBy9ufMl%~h}=-`T+ET*FD~?W;Hj2xt(k*oP}~WN1e&56S&!&8t|eC9Or5u`nt7fS}0>0(J`dPv8zSw(iA}nF_-+ zQL0fp+l~0PvXkca<4&%R^GK|)y~?j?WjhU*d(L>*g{$ANgrk{6kTycMIvbqcbe|A^Zv|v!&ocJB>MO+GaGYKop0+uc6D{dHFH= z>-}VBY!PeDA!0DsClZTy0jd^6hXTBG5-*od3-wxZs`~WLF9M%ty$ZfFdyVatBI~-0 zgkzq_hw9?uES_hmB^g{SLYgfN7k|KlxjSWvFOG1gOK&}r$F(Rq#ozDktpKSYy1qCe zfBLIc7&O7jNU+I4qx&#eCt%WXJrmsTtfJ#}@qJ^yO@ethqfLYkqSjX_-PcRhQ(GOUn!xMhCT}E`Jd9nC>__FFwW$I}k8h_os1bsA8&XMJ{ zUH-Tz`~&wF*c2_;XRm*dSDDXAF`%yAs7JrTZT8WI#X6Z4+>LRAVyQkjT*6PwdC_=R z@9iQ?RAvHk-#B6!8fvnDeGm;bItvstMGNuR+Z%LK9%GBSm<*|bBXV(X6dv1X^636R z#dW{2*0%byV&a4yR?k#m{_+S?9PpV0IEL0z-1(*@V%O1{JPAWr&T<17fQof>#P^EW znP&%#4#-)C!S4+is*rEJwZc(4{2H&~8o^2*z;Da&)Hyonf}0;x2hfFX+|wQ!y`CLNI9|`}_^uP-}C?pSN zCfEF)O8}&{Q+66p(q`Thl#64#?8Ssdr2Vdc{G6>%MbWBSVY*=nd9Z@01g)%NrB&yR z(MD~v+}Vwe5esA5b*Pi@I*!p{utpvGRlODL4}Dd>!7B1jv)e9WY4!FxpLc1UAAtgS z=1r;h%}pt4G-*Bgt>;}1+ipk2TDFt^t@K(6S*-W^1A?~9Zt72}hWFOY2Pyb{Z9$otm~5Mdvqp zWk9yl$HQ+6LpV;Mrg(wbJ75YdPfnA1+Je|%I{bZvy5BQ7E-Vz7n4y8!fbd|5Or3MJ z6220ubUnv}7NL$5r%d#_HA^amvdw-S!j#{&Z)M4Ons0&Gltf8SjSed@E!M0}FTjGms;DHkR6 zgsiL|n$9RPaEQlW)OxI?HbagxKqf+s=A(I|rNjB|E1mO*Lm^?Y)4z*lyVl)~oY<>x zCk8*0P@1p)p4MjMo|}9q$GF6#-c!0DN43q>}!ywWQTZKJ!Wzz z@K7*s9L^5EmG?2&=2QOp*&>XX)o5r2Ooy2*>v=Jni7wyZEf*EsF|pFFj3c4o#8}jQ zy%NAOeVOPg2me?DSH+r>m-l`f38tCo#j`chC!&U(G|I%8AqGo|kIz-g2eMci8X7*% zNWNgEG%+#R*w|o>4-HbGSFIbfE~FO@-Q#iUlha*`S*PQSpO!|;7f0*Y_Th7#AU4w~ zQPyfuBf69TzX91I*x&s&;{6)mpZ)oLP|w=Q#Ns^_HMQ>k$Q=ApQI*P6h;%01CrYHK zpU8)OY=sh-nAR$skC&>)bH!>&@hIG4dxVD=z9faTxBDBo9v{EF9_{nTYUZl!6tNKX z6LE+`Z$=wsrJ#VReknPYY@?)X-^f)Oae#a}pB?y$h)rsQ4DtMqpU1>Kuj%EO)v$9l zdr309$U6Svs*;vX)pQaL#Dn7R?+-j2`POIK-ICqX z`EDY-mz5(RP)9vOz18qTjsyUGWR^UKUua`u^;?y24a=7}E--1eeb}>zloExT8eVvk z2EU$}M$tt+-ftTp6Eio&%x!le$-r2o)PRamxhbcYJe}t0N)+mKvRMOY=xo2vUsg3w zO~0{abNVg&KPHMkDM6hn)=H>`dG8VL{(n(ll9 z1j#W=9yi4+6IOr94yEnX9JYw-HMYim`!_b=%gx86!@dD}c%=`<*gLDma9?>8RdlMR zUV!GpS(e|pd!B6$`q)!}K(-}(E{C$@(^vKdudQ28e7g-ZoN{UT*zI+V&rHjKzj$s{ zrsPvsuaaXqDQJ26WQcPk?D_l^X}bf4KzQ-nwc33Q3t3#^32j+;Pf71vogBw&=lcn& z$@v^UM#y5v0m)2&*LsH~aAdNssCz5^(3=kWOAuU=F(@$l>nEw*sG6>{UY4KaArT^@3Iup6j z7r<|!hO?M&nQJyFMyCFzzCaETe-gaTarb{MGlqDy;rnmy`CJn zNgpHl!#E(MAkbVSh8yG$-__^u+-%M2O^OVrZV~NDw)Y+B6xK_|oNW5vLdA|7AHW^b zyc85_ZLDBDOMhj_U;5|hH0>WyF@t~DmQ(&4Tr>KPGY?(0Bo0>g&Md>AAS!8H9WD2R zQr_59s%m6PUJxEqE|)*{WX$1=HdcHu$z8q1JBreNmSpqZwzO}N0f90>^yqkXk63mm z>cszyAq#Q)OK&#f)EdS7nRATd2ZqWC<;#xrYpz|F^4HiVtQ}o?_+`TPg<~N3NIi~r zDGgWK#M!U)DxvqaiwL`iUdmO)_pO*s)zvTR)x1iyKZc}6>9<_3ZY3k@PmJV8-x9ER zDyaM1K%m6Mo54Z&@+D!i(lTL+X`i83%^Kh-TMY52?wj7vC+KUubU?J+Pn>?jiwikJ}ee5Pk}ZO5i9kJU!KaOwSUA(;(3;(=xm zGJI)s-wKLgW`QEg@0ICGYt=l0&y9ZST-8ruempuzkxCMRiw5Dfj;1#s{lz4C@Cq4NRHQin%6BorY5=} zQu%4;+{-MYOk#()SHFHt>nVP5IAKfa&9ba|q**R1)3AJrm90kh<+IEu;2LuJwlbL2vc!;?%p|3TvtHlF&G0pI^TrDznA0V*l7I*gWvUzH;${i|M-l z7zDpxF1dh*hc?#ah#P45YcZJwOCHblF>$4FEEtbXch6)U{+@ZQ?G_AR-{RPy4tpyG z5=yM5%hOW}mO?hLm<3TltS^TMxQNTThpBxn3*3QzWB!;le-)#zd_{?gU{Sn@jF%Z4 z6mBMf%II1!xWOs=JOA)uo22VFRjW2{=^14zsZPTaD?3_oFJqz1K0uB`E;{i}e#VVNZL&LU7S&KAWe;;*H{pY;tO%kQ zM~k2SlV2A;a9oBR`Or1mfORHI(6=1J_Uv7R$WtE*vrx;B-^PPAf_DSB4O zyrURRsr))L&3Yxw#wacge*59+7clC+ z9%F|VdyZeNMVi;XV(8}fK{@<6e|EwTMfX01EON>Qc?Y_3XT#gJep*arQ_@w6uv`_8 z&z)znXUo=Ng5ZftgVed6dJhUOKlCE4Br`qbT2oVWqV5`5;c4ddGxZuS3L}W*=#8PEqjp z)3iA2qPktOVbtK*$Zdi0FR&1nv8e9ceuZf{a7cKqT(gX;1CsD#IzM(cmj6_KUu8g-vby)MxC@msbN^I-I$pH@$^-e|J9vHHBAStkj3h@NL zlY#nDpDwlNp=2EPjkL>=T~3(fbj7;G4Qb)3GUatM?ZJ2Eih^akUPci=anVMitID0JHp@HY72P7?i~#~~Pe_#*|;f8Yg)sO+5~l|2%I zCu`KQUH9l) zN6{=CPegk$soIE?g#ARdq_xxoi@cs0>}CX06>19uxb#4Ov1s$Cdf7(W7K>eXGsP}KYIc_o@6@PasXIKM44#u=+6&*^0BOX_kzo&y!SI1@n-A_Jr1C^G5J|FF zKF&2~SA<9x*Q_sz0kLI8pK=S*T15;SzVus=%-{!4x8*-K4KuEq zBUoV6lUT%Bysijuds%f((GG1vVF+^}KkaBXS_`}NaY|FA@zLB<3GCPJ(`nK~-0qz7 zk?fp3sKB-MjZ?WD+F;Poz2NMlU(y;8r(-xi7Lh%Tn)zoL*@y0hdD^C(14e*HOXuq< z___Nx5;=ZE(Yc}Kmt4?bjp}9$A17~L%1g2L=LH{~t0kxiL;=04jXX~|ma%Z?1*qz8o`-D1UGG!Ud1*pKvtV%&sZSN4 zt&seeT)|rOaZUSMqcC;IT!Msw84N2}Alc(K;nq~_ldAicS;6%Y{C$^l2~v9u?uh#A zQIR*sfQ6YG{*yDGKx86_DI%CcO7;PAuybcOyM@@-Oo4eaw3;?u#Ft0lDC4qtb16rf zgJqpPDHItL#O@5`%Q5bcYgcs|M#u7+>=e6X7jk4V>ki@(tu4%ufiBwD6+Cj5t2X$t zbF|)hc|(`B@|lEh$0KfZ?8W{3sJfU1Q9HF=)*HbT=`?rU2OFc!V@}B(BiW55$AS9t z?%<4%7m>vt`?)!2>~mEjDTPqYM-$DlzXLSGnyU{&(BZw3VtU@kvxX<;*}`q%3?G&4 z62ya!+4Dy${p_!hRyxBT@3fr*P#uUo)hLU@!e1Is0eQgU)wd~DEU&;fx1l7!giKC* zXX&0~z(GLy#JUrRMzoYx9UjTRQ`!yb!FRV*=T&^@(~jivDorYZRbHp4JB#PJl5;UI z$S2ByJLb_#^~)wH#tBqEIpIV*?`5H`GH4Nxvw?rs?4>;YE^`|Us5LE8%cCNVSBST3 z*FPeQa)hCe8mrJvqp=pb`gEy%#}a>Bf>Xb0ygQtWEnIT7YnErZm?4&3SoX-J3aE82 zB`PrL5Icw7G2fj|LYnGC$c857vYU^59F3z`U9pLQjiyn^)dUX{vwY6)ko)OkDs_bs zlSt5YH7JBSR1b!ogKhQ3I&Cz%BzQgOz5B5)cRZu}QLH{in-s^zu1Qo}YKU~g0yKW} zZ)q>wcvYBQ@;H<2ZeG^VVz=OeFuQm!1|}W_v)hO~N7K9XrKw8q*u)luQlVeYyI4{| z-bU0c_jbPl;^keSTQ2pMq+T%>jh2gh20P`n*zUTV&&~SAM!re`P-!_UD@#~F<6FNN z5R>KRR^PutK@lsBgM-sry+i-9m`j#E8oQogGvfgPQ;Zk$*)=%ccXxMpY)t9@QXlt%f6sHmhl~`|0^Sw&b0UfXLFAafTCc^0k2 zfU{BT3gkX0RST^y)MUIKWzD#qUT;e>plU5$e!J3@qi~G5xZyA6f5%0_{>Gi>P$vqe zwu(F#Jg)A4_}~_6X)hP#4R??EW2^b6K!MCso-i+vrWt6j=?sJ)`wyclTCi!(*$o+y zmvs!3UVLn%zO^i*ClShTHMTnaOVKiwtZr~385T^k*3KG@4-hQUcR%p|}txdo0ZCg@;l)-Ixnn z0Ge(-G2f2jCgi!`#7f`79{%<)YgwhEKKBYkYrH95wVQ?j#op)XhKDF;I?!^`KEV$M z&O5Dpr%V-a5y1?mBSDjNfAMHm#8z`P7!Bd9Z%KeQoSb}fyE7G@I&V2T;pfZ0&t4kx zaXE-fB{|y9d##H8d~*;-($;`v^=OKFVw5FAe{t-j>Lzljz5x}RKc6h#5;c?3RiIT7 zB52Sqz((^G1%yjtVq4Swd!Hy&HSlV8TBH-BH^bv9^yYE?VRMBf`o#L*NPc`TGJVCS zBnM8Wp*Yl`KfUp^#s=zgt(Wovf!pvYev(v%oTG|twX>^OQNxc30ALzX3qT`sE*Aw} zJNtV^MkSByTfa= ztA0>CMt->{mF5}40~lDWLYcmo`I%9_@&q~sIBAK(P)3+fY_v_p#IhG9)~nUkR8-~` z1Tb@t?45qx{dGYs@?ItB_F2&UvOmr*?OyKtk5w}p{xD4NM{u>!+3Wl=E~J4>$mfVD zqvuP6;C;O0(1^=^UPgqF$6aR__(#K8u@4EcZx!D2-~Hk2@pv&u$$UDuQ(1!MEN-|j zco}TNtv=fn^+B}mr7}=xM}>om*N`VV;$Cyb6x3$`FaXnbUn?DAew8!1AKy2V~lY0R;n-R@GmO z#<6cd^{Z0q^pYIxbW%Cukoe{iinz<{Xs$R8t1%e_jnFS}!0EW-Crshve9r=UJBM}^ z%;~T>~|g%P2;64l!i%JN_(zhP%w}zlha4VBgwQm5gq5 zd<_)aw4Blolg}Oby5Q|1kzJ4;_Kw6VkJsSM=?~D~S-^Dm{IDWaR8+(~wgv#dG8k@Z zVj`EomTlrD)^{9nB1+J{0OI6On=CIJ+@e9x`b~&oib`( zFNxc$jO#9%TX^tn4o~3hm_C@z>qcT215>}+wAB}Kbh4YbTpMj3!E`g+p@JZ4c(9VK zAeZDKkmDjj?%`uHOuIQuoRniIX}hm~eJmO}kngqHY%)SL5MsUQMSL?S@f%iQ#t=!-f_~Fdgn!W8@2QLw4UaE#e#q(A`h(w+3OMJ>$#Zssl&U}z?%5=zs7r1 z#pF;z9ZQY&XOsKXZcDU{Y!o}VsATvz zrd_&(6MllUxR3&^=CN5DfzQd6K8{NgUwLgwNqe%^v?n{7ypgfYm6aycem2S^DI6ZZ z|A;rdfql$oO~R2kHXNW@0>c@>h@#E!(k)+pTmJB$`9VH8XrWhUOO6Rl3~C03!q~QC zAxqg(-ZNpH&wE6dUmHT+a3?QYN*CUX>HA!#E#|%oX*`#TM=bVJwb;1Wp`_iATt=X1 zH7|}Nq$IpF+Wcqtrp8L1(h|!m`7+0n%ewPvY4KG7O0jVe8V(xfQPqrz;^^)OoakfJ zg~GyFxb?_(I>D$GLS|IdFm@h4^{9AqOIfUatN*S+9v(bs2<=qwo3qUMw3;fPr;=~) z%=!H0FWN-xeMIh(`7KnL?I|CFE3+bmmjKpbGwF+gLwqywu!bs@P?nl`m-N)qdOc!F zvf=1XY0Atv^j?NUcr9f)|JEN z4d%$VsF(=*ojB>v5xCZO(>5j2giG9x9FJwLz7WfD-=j=qu81UZpWaQAyT;}!yDkh8 z(dS@fPGNox?eu>CUF*CzFF(%z6)^pF`D})79oW)K=G+oK8q!YN5)8!_VYOGzWv2UL zqCb$*OtW+qC=MW%_|k@*LGt(uu2wU5xhKcPTLkQ=B!OfJLYIfUbIK!@8Ld^E;2^Ne z?20I^FlO$5OwT1#N=qQAwZMh9KHF_vDo3lrW4Oo|*JQhk43&z&?)uFc$65M9A0)jQ7+h$pIqDPYaHOs!m*?{H+AHQKd z-rI{x8-HCS7Aq79_L+?cjoXADt`Lnynbc+lBMzTi!2O+Vb7lGH(LrzIu_SP#7QL5r zQ#gDG{``}o!BWj}tFC~A9q>iP;Uhej1NOY+_z_EY?PZS9;6z-BY@|&6H06u7&|36l z93qBNR_%nJy=Sn!uTi@dkIs;V$}2Rzw|@qjJ%mwJ3mN}^Sapd?kp9_)r70-#$+M@w z5$S2NJ~qf})x?^q1RLr34Bnrk)S|gF4Rxq!y{%=^xp9mLD5e#Q>VTaeZ(ode>D5w5 z9pUjsG*lKEnwFV~#u^b`UCzpdN~EUyf{W$DUwy0WdW(aj+jHUO=0+b&4>TH@oMOY5 zb^EbEi;r*AVWud!gFo>sW1?@GC4*LJ)ZOVTH@qJ{1(W!;j+ptH!A>uJZn>bjUFc6s zEC>65KwBjZ4GmRQ6C3t)Z;>fZT?L$=4bf3i%+6-l%u~_wZmD{TsV^H zDVSN;Rg1=E`eq$irl~TPN#MVs_-jUh;sw>rQ8RZlq{-OypEuh&tQ1uk!z<4g5SJ`s z9hfz-BvZoa`XB}G>)^vu#8<|*K)5%M%1AcIZRmye;fb`UR)`+GJCnpEY2h(8uz8q% z{qd?F?gcY%lc2{^`Nv!$MD)IG`~WG^=bPL5BYC4R)-livvibW-<_T&VDCb@d?P6}R z43)mQ_{ae=gTi;8=(^qRbuS6!xriqtyRkf9r}O1U#8pU>{&E$u=#Rz%dJNcTmTHAn zR#C)*BmQ_rVzavPEp1*b4(ieReP=>k8|npsxIckX;65|I1snK^9;_vF=!m0 z=(TF^#S>4f(?aDztwbA6loRPv?Ehv6-hnc6O@Ms9GCC9O&0nt5AmaP z)qTPBv-1z;$9W@7wQMEbeZU(UXv_-fmk!}u@!Z1kk^}^ z&#=`4E40>H*2W?P1w|H6MzNK)6hw>6IoHNFZ4~B`F7lo}_@Ga)HWe216>{xvFuH}d zXg5}8ZP*LCjiI@`368AMJOhn*`~ODmHIHs|Iw$38sI7Vg6^8FDFv$o1M|T*CzUxTj zbzrc;cafvo<83l&EyClMy<30q7@yn6Rkqa%>0f+_i7-Hv8#d47G=87XCw{CJ7aQXm z+~aaOAJ+KRR~(f?Dp-CCoD;b*OA`K1)a zor1TqdqDF04{jUHlrUX)E|7l)Uo83M5fYGtaL<+$cSjzpt;H% zx6*AF6_tkU0Lfx#-|lhR?W=(`=ec0~`c~s#Mm_)JnE5w2jhMknb^2C}A^;2-jjtqi zGhvvnE*x^+4qC67-jpLF?!5_}7WP^y@{Mff+q<8_cI)a^ABOTWZnb-mmZVgl+#DiP ztoB1)T?e?axtZ%mZ3`?Qm$VS?#I0%;*Uc4GER)-b*5HpvuuH3q?=TprR2_NQsmaJr!)-C&~sasD~3GVwV+J@byF%DGB8C`|}UeLrr}ZD{F9?4%358G(X7!vWKN#X<1e-D5L~^sL5x#&RQ97 zh^zob(5!v8l16XK{joALI_)suu*b=Bv7zAm@S8k-Ah#Fi?%D>6)AX;iW5g?YH@k~( z+0oH-uD{{hSlQr5S~v$iG*vxoVJBel+&L@~kNVwnN9#Nh=+&2e+IJg#Xysjx*5-|P zC{EMvS3>WzFcYja^_VduYt&sfi>*6h-tN(`o0|Z%`L=+|L*l~N0vxdEkjF4#W-qZz z<0=`$rQnQ_fyQ8KtUgfeVwXg1`bXAT9e;xvK7~?l1b*5j)Cnq0+r5E^?(nfLW6<#B zH{nmm7tI;aoIa5+udIn|%Kp&<>H<>h9i2oux$Kj(OHDV!31{5l`@D2w@}6?$vC!>3 z^ryVtzoDgK&e2$D&)LcL4u>M?`3dP za~v7kkhcr*$#z$6pVO5$LN+DFdCN9X^Yb<6@pbE&UaP8o#>d6>Kb>8N&x0~Dg`d!J zc1)|k;I$R)P_w`TsS8F4W$#n!9(LWT$=kHtm3=t$E?HU}eq}YAq<3={TFG9Tc!ek5 zcLMwP5F*g3s@jie`Gfp~vBom4L(fNH6EV%RdH8X$CF?}NaJ=WyA6^GGU%1E|i)exxSV}Es z`v2dE?L<}LO^PEj_$QSBIg{A%X~st-BlirKqgn}KipZr3hnvJt`k{Tiv5K^DBrHxT ztQRI>(+lin=Zm>8KG@k|I%{sX-*vJ={87nj@b#`>fBZ%+`Y`h6ybmw_G@}5X3AVdI zW%p}$==_GL^aR?%F20d_6i&Z;{?RbjB8eaF(`p&r_nVJsT0FGdwx_pLnvYix;7mKa z`YZ?3XpByqt{QfVga;aqGIdO>elUO58hGP+e;^_rmu~rZ^KmQ&s(&Tt2%me%{#B#k zRO76GKzC~CFwEn!r8V?r%*}p|Sf=5pHzRCc1iR3=J?m?xJ1i*((U5u@7YcNQ%&&>C zeC*0kpDRWm@!_dqv>Ac>j zhY^T=Q$3UUX$Y!n|Jm3FsECW5$`i<-@qqZ1@vfD1Y3YqYt^`Q9B<+Wxi*A)5mUM^6^lIGe}T4#>yzYF8x z-F7>CprfZB@Oalp;{)z*RzQErvc+ITwrXlq*G+Fq6&Sgbh^9UVeb;h8!=phH68J}o z0&_>6bJ#y}IZxz2`XQi`#B2h%hudk#2+K>=KikkM zN-;q7A07cVWjd7dw90{B$+8_DmX^sv;>9TOl^O3b+5_Z$y;|bXQU5Iyz{=J0Y2Q*T zW7>VSHq(TeLOcmp8XxSCJQK~dH$|%%mOu3GK|r=UuOmBei)Lx98cH5soy&hN2Ltpc zeR8Sub$L4bf6md71~})Y#=d-6Nsb3@ts79wAq5Hd1 z1PaWDQ}*)2nV&YS$XWkz2=LHSNcH^ex#5F7gtl@^dV+xWmD40A+^u8CUxR;$Gnso- zxybL|F6GYng+Y+;extpG0#e|FvZ+e z)6)_6)=)}q{lrqA|BJIOa~FZycEvQyU_d^~C$X`$jQ;Bj;LsAB-qXm~xna{no)IQ7 zpk`^_x{{^_bzWlf?H;-oSn?8*N_nOm(_H2jBr9R5c&%<$llQ}+Ua&T_Gj-F(P89Fa zAF4>UJ7!$NnvOUJ^GW(d_h)|z*zcU!{oGgo1JK=&k&(F|FyixxvM=pX(a}ky(PC&j z!`7NU=MVxxRq&_DLsdk+g*m~k?k*G8TxwzH028;up_>}W=Ke3h?Mq22PFj*-ZwqQl9S)WtN zarSjEID_A3{3jhdsY++5cSU>v65(JzP+{yxQ-zj1-ZVK~#)id5m^mGN#f+PYV_^8` z#qICT_6dwJ286I7az%>*TWvG-&IERdD zUAf!nGMZd(|LwBC4JJduf>Fo;?gsCuM&*zhh!+TkMgYmU0BwaA3k&NFF;AJt)#2Cf z%8H5{*@Ur*CJK}5o{;J3d!gd)Nv+n~@!kEywX|PNbHA=aU>Pi?f~S3IC6?+b2P2rh z)}@0TtBYo??6T8x{Y93uEo=% z?7K&pgDnq2C`}Y4An)dzMl6sM)AJD8v(YGK2d<%g24USWjl2GzqY+0_PKSTc-yRC* zkaBK4?7)R3LyZsM)>^i`D$g4i^?Y0A*JRQZ(3RvDt7?@^p&vLXTuT$DYnS!CCPf;Z zkRcB{gV2_Q%%8XpS8+KC`qy24L-aJ@s)?do1w3KfnkQP&T-sM)ZcA^E%9ztJFfj0Z zRh8)K=n$9iXE-^hcplf+A!~K<`rdABen^0Rp8JL{tPA*>u=XP?p=Y&(gaqn2DdaKr zZSH6~x#>1t=r#;(>mH#$Em7CCd$sg%r^pa~o~2a5^YY-)(iF|rcJraJ%Q~sS_VF`` zDA=3glw=97+Hn~$Yt&xIYa!+o4{l`P|Z_Vl-4NdI)uzr*3)apT3s-42rH7sLt$c-GtG1gjpnSi z&&hg9`;-_7#*icC71n@hcXp@0^gdE%C#>|&o-HnjmO_81RFRCuC%-WuIZ(LHr7yG) zkufEi5skDsIZ>U3s}yT_Y;;wakpVqadVgVU_r*g)r={mc_tpNj+tTO{d(%Sxe_O#{ zoI=ew?RX@jur7?w`n>N(qXop!tSmH0m(*t>e8|fNI z@ge_C7ZtB)$L{S<0!%#j9a2i=-kz-;Dil&Vo;8-o$HG+`W!lTBNvGe+dv6C1^LfJ} znHDQe9{NmV;;i|w3>cwXJi9}ZjbUV?8!AzRMZ`-2f0mo+&k*xV?YMaobo#K$+3NQv z-o^bF5R0b>8G351#OW7%7AkV&3z@}&;sbt>xv7!j#^U1=U@NKyyM#Mmrkqb>bMk&*(JSqv=)t z_tj^NEW+?5b}k?=%vLEJUhf^ip%Uh^W_+2Y&kY-8eZvsBTs1{c;e-}y%Nr(z$9IIL zf~VDsK}1hT0W&Y}&&ZfehlD*)@1@mkk<9-Y6=lz;Mi!^0PRsSikje<-@%qBBK?uk} z?np%od(^HRTBr+e7+tcR3Xj`qlBk58%_LlvKDp3o2DE0(kePv9{pM}g_QU{wH1gBh z^EUD>i%vNQFr@rBBr|>A=XXK8xO9Jo))gqU_da)=h}YqZow(-iHNnvW?xbUY<2U?( z4)()$1LlT~Eh#4Q-&Ghf5v=^xM3y3g#=HJk?2q4^pjOp^eq%kox#!Zz=ym&lBZ=r| z1Z)ECsgvRljxNW#2t*xGBcWx^llS`u*8a@XS+%VmPI`BT*YqI=FUF+y^!%h1$rhzH zS$G=FUND;vR%*8DIAUO;{DK&vl6atPFV$*GC#T=wsz1LYP}rm#$FXa2?oP5>*UlG>A3N0dZZ0)_&LY9iz3RI)|munf>ysee{pEnXOxLiv!hPTKWJcn}oUDQv&o)@Vb z{ioxBrYT-kp!lk;`IRA>)eYvcD68~;!ufiaqrh~F*z5(tyM(qKbW~l_ z5KQUfNXoAR1WE6yGh%{Eh1}0urKU@z*dl-PdAb&?nzeI&4~bPS(Ut;Jab}$p+O{(= zbm>n^_19p9(c2B|l_sQluhfW?b|(Cm4qdJBXGl9FFDzA{lG>L;kI)mg-gjb%I`>XL z%j0jPcYYPhrNWzI2T5D3a#ab^OY!igKe8{hzsXvGNZxmL_G#-S`gjmyrkDT&zyZYT zU2XKl@a9JD|WrFI~fdoQv@$uY5M<#C-%@;G7ukrFyYrT5-KiS$lrA+#iCf&0JrzW3~X?>*0X?uRo! z&NbIuv#$BhG2Ssoh6B~5q(?n^H!fa&-%Yo7q2&cYcRDlrFZBIyGAEBEcf=p1D7!BM zruG*pfHwkrE~5ote4qL60?RKE4@`nrEcE-Uo>k$|b` z@CSgV{sUoYwZMNz$RnwW<-EHBYnsm6+`1 z_RjPxY23UepI(pg+xJND$jMPlz#_H>p6D^SvV#8|N6vP5G>8ctA)4ytt&+9 z&K1>s9(hNAaq@o)T(i$%;}7TO-%W5;^Xb18v$W_b(x|3()-M|{{~i0EY|o0N8V(Ar z_oLbmwjY_HVVlP-XDRQ7wIco}D8-~AefYD6@8mXk>&$SVE{btE1R<7B*aqWWo)wib zi5I2+*jada8u-L?i%(Eqrb&Oi_LH=F4I$ZkBpsVi_OwbMT$gc1NLS}w+3~BzPew@Y zD77SMriRcuXUnkY|60;l+>2lARoibkyxuR_pqQ)UcSw{OK^8`)|P$Ae<}5 zzTh$1_sR=q-lJh)F+QAI)XtJl%O;}o^F}kMNg7BkeAiZMRg!9#Np?itl$mM#llV&K zzg7c_Fd5tbbD|iaS3Q-)Fa2EMHqC)XmF|NVztRf0fO$LmxTMz0+wg7|jCIv{@^LF^ zoJ0E5od6fSDJi;-H(aPvF%%6bh+=-Yw{nv&-{yWKpHFl9&GO~aG%poeS=N&bBWeXc z1Kq#V_{^tS@%OvCl<#t0yx1eUF548lg#sU(wQm(F27i7!Bd^kNWH#DYeyaH{^c50v z_L(>)X#cd5nz@@8y2S-{oL=CJ8?hsh^#O z{Jk(E>2*-Jv3ho4J=BJio^4JWkvWc^?Eiv%-amWsU#Wk;QrG-Q%kn>Mq6*T=6-jY*^LbS5Y#k@6$LY~_^q=uk;ke;RPPaaH zCj@Tr-KwT0rUJE#_gFi#MlXs#JXQAGJhpDWtFLp@@%Z0pAX|+2p@YZniDK6^$^e_= zdwSRXWVXD;kHjg!^c--+ev{f}1w=@7$Hzeq%rg?Y2U)?W`{J)tXr&EW{2N`)^R`FE$e*__=bt58XwH8N3EFr4m z*B{E?&HR#>ZRxeE<|9D$tp5F9j*k_=jMJmvKhN>xs_b}*X`qJf;%7RSHg?5N5q6n( z{>u}$YB!f=;2MPjr9479e?5rCfk~80SjXsHl>lAbO5=Dh>!>+yYqrJ`P2ce7SxUdX z-qXigwRxl0|0{vv?SNnRf;b;PuKTjFzqbdN#%gJ40bT_4Tdz4za&dD5N3%z*!HXP? zLeqEeFy6RU(p!K}9B64NFAtAft--CJkDnzO$?W}k8UOvjJ^RS?jH`yLyO>c9kll@T zU5(&f9U`&%`1$h-Sg)Pa7bLmKK;;;!f|J8@O9$H99h8>s_6A7;{!&Np@b^snnfozj z&GfDtAfJamZDYfiB^f=V1n6oV{iXGmno$YoR;qme(7soqV;4O?c>dSUz~bIRmqUP~ zr+x45yU+B0d0t32{@2dW|2S!jdo$l%JFjct{-Ea077}89`QbzPYyoy`&2o`eV?6W2 z|4cGVb}1B4ufvD7lc^r<1abF@8Q#1ErvA5%XEpno_NLd;M<WhxwZ+%u$JFzadvH{37KmJ`qN5ilFrK9?M1$&VE)VZ^*;YqZ4M;Z+! zAPE#}b(hbIPyHH~$=J1I_#d(o(4g;U@NH3uJM5`4EXMSJ<_}@AzF(9xtl`7L=uDiY z@XB@fP6dImx6)Lt51ut@_WQPJjsVUQ`Mfj5EMGra`AqvvE8_i!2dou8?D`}myu>B> zgnyV=T&@2pfN$bE;+C2j9n~Hk#i7+BEk64IcatB+9p$Y042fg?O!qS}Fgz-Y2^BA7 z^0mp!e5nQ@?X@B%%MeR3vD=v;GP^71*>cpBZ6-U{adTzH>xUQCRIj&-#-YjU*ZV0( zgjbPmmi^85M$t9r^1#ywJ^X^Lnq+Jq?YFK-r7>0`_o+!-FV6~*o#$L4hb^x!ZXrAb z8DxoxqcQT|u%$#H9$KD4MFXE; z`WfzfN$;CJ@R6U=ENKrEIIV%S=68a9QdRN>-aLG^WS|gu3t_DFWc&BeD&Y?tTy{7@=1>OBwUkU(EKI-YARl$_HjTXJofX1WO1h#$|ch2X0?_brR00P{5 zKY7*rE_+OUuz+vavo+n7{v))0d!x(JKe^U7X7r6LRTbbOEigp`o$N(kn$+sbvDnPD z2=cKT)&6^l%i=zVgJKY)qwANLuVF8SI_r^>ZfN#Xm>%TGU_t`zW1d6d>FYYS?ui=; zx}Z>W+JnclOJhj(cQQxIG}{uMgLl9(@M8Ag{g<9iU$mw}{S*G#KYy@VOSqjjrS4wJ zsLgS^rASJDDgd3lfcQ4WyY}t#=9K)VdJOwV4Bel`D(#hx;7G+$!Z6>DOX-- z&I9*_3Nk6&N*XT$9c5`RE&eIa;8O3a1kXB{EbDRjiTbT z21rL96z;HV(-amP_MVfOhv!$p%zsF61aSm$5IW4J?g#X=$ZTu~#^VyDs) zmq_gl*slWpzSJTxe}Vd+akFe+VE+F(qnwexf6}zr`lfVIJqNMY&7mcAWo{4a}RyrWv z$8b?@hEi->TPeUuFE!pY?uBRo9@>4=Xuo5#zOTp+8!5zS4|q2L5-BTCozyC+F6CyJ zdN-J7KT>LIXFB3r2t%eu-FNw!_T!8Gf0cOH-dHZ!Y*c5T#HV%AU7dS1@1R=gH_>Tx zm|V=E6aH`8NHtpumy6%2cBf#X_i2b?yyqDf?wWl|EYV-;Yqb-P&j~%IAW2#^;U`aK;2bw@>}#ze@Ok7`$c0a%6=H>$UgG`uER0zy>RVw>Le;tl!0|sE`S#8PM?t1c9e4 z#r_V#X|`{B$GpIGn=8Hc+xLHkWxx-qLdv7}F4n^{wa*W*sTE`rPx-O6YGdGQuClaq z$SqXEQBV11;djdK(SK>z&(M@h67q?cEm7Ws71*==^(0s3mL(dJsUL#)lYsUdr}_&` z3DE4j*jt@Q%XPPChTZmT!&V_?C5^1~VoyP)Cl?d6YqOrv$7IsES?%pnj3mVbS4{VClwnx?d^($z;QYTVI z3I5ha!troYR*K7FaeXPlFwYCMOm<$=`)#0GHs&bF{VIoL94teug_DFiP_J<>cZ$*1 zq_st#EOI69VtN00PjOuT!e%R~?pMAl!=l~UWc*X_lQKH(AU9-FH()CPq#5d^(?;v> zC$%C}N0E7)brKHY!d7qYG70?c(W{3tE8LSe9|*7Z))U-O#2m_-S!TE5Ax3AD)p*W; zV!c|kGIGWFAE7sM_p&cO`V|}g0DHg5(ANDir}M9JzFUc-YR;_TqghQAdPK|*zQbsx z1QPm>FRJ%ObU4A%C6`Wa=4~z%U$kdn0eS2XBbVuvJRO`j zYDW0|(!}=Tn`-6=i61zOu+>UY9hKx~e@p!HdKQgw@LcLk>W*$Y{ualv$eQwTNk6Fx z+p^%%zd`uf;~!ypu{uN@U*Mx&*Q~aWDy;O2qjx@Vy2shMTSSO%m+KCLWJ*f4u>aaZ zQ9vvCU1byX&)B=e%vR+WCoiUSH3Qgy%f+%}j{_D8Yq`Q3QptnY`;1T8hDmZm-)T%S z+`OP;zc*rce!wM0R(C|Okak9IjW>*ma-Js3pu8=3`TqWXNFNPuqq<7xEb;I94#GYf zVo*=II#o>{S)LEc&&wQ&(@>wiu|?hB$n`kEr*Qv|K2t@$?K_{!?Oq_xi@d-3auMqT z-$Q459dcwfNVFy76dgx5RE{1Hg@K|3XZajK_e&XMZcAExeFM()k9Ts-v7eFU^7Q&KnMbag{%e?v=__S-s-aj%!D zb=T{6aq)iXG8g6QSh{L-5-$rnG-mH@`@piM_%$NFT1kuzK8y1&E7L z|B+QmYKF6ALd*w?cmx8TOyrp8uieJYSRE&r4tQ08@r&7A5E0yY zCTwrhn&Y-dCn$>P35MKf?obaBV0NLkdM`EdcsrrTy%oGQ9z-6@=V1Q9WpUNj1*aA! z_r%pN%aZ(jSl-)P-NWjYlhPTS45k_5QW1WW)73i39E>Tp_khSpKJE|7mxGi_;PKvCLzA*eV1$YnQ0Pxnj`!e>aL~3E~_q0g`)e z=Kt>a{C_`S|946VVzfZt)C=-sFBmsJ8xZ8p`!VN5pS*8fpyK~Cr{`ZQt7k-$ zSeH97Q}F_iywCiN`wt}fCFXO%zqkPBJ^tUCJHajV?MviFFpmJs%a_QtTa1usEPA@u z1!Z~T(g2%3!k8R;rSUoBJZ<6ou3!2}0$64O>Cl7s(xnX0G|8r=be6;U%L78LGnX9S z0(#PLf~Ks^OrWr+4&g#^`pEKt3aP=p8>CE1 z0uR0VDLYw+rvc&efk;dH&W%qq%7HaBt2|V46rh~k+!W=_WGQxXq9dGt#bkPNat&ht zZa2^lE$!U&LBGn}HyU6tSie-;lRHf*7VBa3p7cP;9jl_v;7*yL=Aa1%(-2*&W5Vt+ zuzalst^qpGgs;_>lXg`nwt>^HP|ydYFGU~Z{jF)18)ZKV>ogNcQH~d^3$3D3qLOn$ z-g6j8r*7weySfD`(%2AGC=cq(uYOI{3Pd>EI<(J|ohCWBMHE0)!X zc4}(Vy`H-ps3jVxWj)zKZCVMV@^9h}_ z)6v!*$2cbcdVKgWt(W>%&?8G%CJ1L@O}b9FoFG@~up%V88oGxR5_+~WOfqRF+|0io z@_X`KOXD-xSL^#u=-GGGQ(hxp4soo7cxUdV2>WcF*1HO^^Xb&a9qEkd8I;#$@vrn6 zwe2Rabi}h}^YAqTy)QFDeLmp&P0JpIJ?!3$_6eV{A9tHUW9fs-&Zh?Gg$eDydXb?c z7dvDit(z@8IF(SF5&UiN_yB}~mAG+SUuvUw*zDT_B0gGFOs=^KEQ$n5@(04^u)Xvzkm`t^5)k(d%lp$fxv|0oNXIpQrIyDv?!-a5e`?5ESg>f3`1 z3JQG%`Xib4@%HpQO3)Pz9jexqea^6}0zy%}A3}=3)D6VURL=D;j$Wip}e8QV&EHBkOj?m-aP-lISQ0|v^UX@|AASdDe6Fc4Q^kaDSHyS3Qr|hCE<9S3Y4u<$o zGA8N`xsAx%K1HC|-eT8U;qD|E{OC)yvj*1`>y9UDTSCdIx3pjctA#{3Tm4uPm0eNM z;iJ;qFMY%u;#m5tjT?@No}P8&JX!)kjDCRb50{mb*pHD*x%HC%&GU-ou5Qg67&CZP z@yARhv0_dIQdl#4w{v%2zJL3%7nILWoyk&`nEt~VS_Xf%QZj2X{BQ~0+6PPQAz*u% z*l_lWI+YI{#rB@9pUy_vBt*`S9L^HZ^Zc_tv!Wl|vcb#P5y84xS>7 zF5Slgbp+^LrNb{KI7&aLaqU{UPm<3eQtp*4vLm!PP8mcbi%q1_xq+nXG3Gfvt5Vv= zn|oNe^G$05S40QN{Xq-#_Lc@$V#8h!hu4Qb^C}e`B(P7zvMW8E707gwsA5}rzAm?2P-BwuZ$8d9b|S1Ce<%gNZO05+mnhlx zZm%1dDKjmsFc_>)6@9X!b_pY z!?sOl+uB|Dx4((XyYFR;K z6aCV~5X)eX-ns1G?;bDE#|(W^lOar}J19=s@|Ae__v-7sxmU}#7BO>b+|NMm{e!Ui z%cZ#r_%F4ZPA;_i*zHWHKN`_gxQq~rWtH>SMD3LN&7t~}vU~~Y-R*7T#<}7P>HF^X z2Tu*&KLrV0m$?_}JD~+b5d^xCB(Rr9a{4XnjZwFMZ^YG!-kvpFj7} z9%n#&sIFk-U&0A_W}m7;4I-KpItZkzts)xVaWnRMZc?ic&tF;2lQ3hB_>td6IVS5i zs;ymQ=gi)sug~*<+2>BJi;cOLSAx9r_Rk)7-Y?rm9*eoD0`$yW5DoaG9b@#%aW|FW z`-)S-JC#riV&=dd9_W$HyWeP7irW_zBIetp`kD;R?7|Gs?~H10P?TOvdhpr6Ud6o9 z#nSp`YT}ek^WalM1+k-a8AG9#$ARSX{{+n8M5H{!rA}*YUrOYeC~n;Uo!_ zTp@1&$G<>G&e@@cv&Wpd0Wu0i%uz})S`I216opVbmv+uR^9rq-c6mQqbAm?l7BZ@j zpaEwFKI@$0_(HYjjDEp(CiwRerf60&<2+} zV}Hk|%l#zYe=UkyZXH`loiFQwE^yt5I{2`wBS$1lG7|XIa36dsnaV1$Nt&jW)ftxI z#vIO75|9q}r-%ROFVVltqi1cdtF5Rbqt?m}6BB7Qr})j<4I<)MqDmDlA%UW5tR-PQG}oO<>%{ zL(5B9VX{`I7QzWHy%N%#Aice5rZn806}-$-Q0%JI*Tl(5?A#r%KW1@l$t?=Mwgej2 zbCm`WnW$zse?FVB)aOkW>f#MFsxX~BNnem(*+o}}X;X=f4=-V~3q@JBa~l(lH49^TERjNBKd)I?bZMjG$f75OIVVdpVkag*=Bz~ARV(ok zN<;Dh1)CPHn>nfR)`&GQRyU549y@F9dTaW7$C44@+=_#&kW`n}=*o&0iE!%Ot1J=K zO`J+}@!_eRY*rks;xc$j=+liZRigs}tQf>30U_F5uqu%bf?Jt|otZ*tz60eZNZTvR zcWv>DvV0A1cY-e{OfIppB!Wpr_dA|R6*tyWT(3cd)ujHpW@MBBQNx` zZ2ME|e0sex98CTA@_tV+KI*H==3^+G>#Dg&q!LYnQkDUj;+DTpyJfd>UJps1`PsQ9+j#%yzNZiimy37B^()+fEesWpP$m~6|_X7D2n=l`x#;<&1E zxIfj&_1CnLG>RfCHnspbcq`Mr&zN9+Zk!-mo7NRn6XuV*pOr=SPJDb$1`g?T)h-4+ zXn}}f?KHD4=vAMSAVGPS3YgesH^fBdPvSvTc6xG0sD2{6VZlD?3OC%9Kf1 zGZphm?yW8}ke;jAhixrWD*E&06hJ-#ejb}bx zh|mhB$`xj5FwI+cHqQ{_njAR{{Dlla9u#rNO#TtG`q*7?wzjav(qGed@aEk#{jS!} zQRkI_lbDSlay?8@l0(W&9nIzteq2X{lw=`wMmBONph}$E0MimF`><#HWO^q{MCG;5 z&a`@>d0KDYMqPh3N0vMwGVz8v9-lNg_NCx5DBN*>5=98u?9{>%e3PQZHR}g)D!&77UF$SMTl>? z$J0gdg_8n=Hsx%SIA%}`7U8G}oQU(jB}z(MTLrWCQ?&!b!nKg@^}uyhgm2|g&$)ey zZI7k_?texwYQVfrVhyA?45FgwvK3UJp4&6t|1D-oYE^ch&H89{G1a)5 z{>Croj-8>-+*ybA@-e$jZnBzlJb_kH+7?r*Q|F#+-8R_41WHc3+cOOS7yd|a(%gLPf6=F`Wz zkk7o+VVv8eHsfGxvG2nY1u7LWy9jCZ-gyzqM1AG!t(^ z4YFF(%&Hfaehvhd()MC9to7_9_KRXN)$l0x#(pa|!4h^SoP>3WW@rYALEX^}w*U;c z4++5L^J%cLEb<-aj`-taLKYu^KJP3qq5FxIQ~YKrKJ^4wn+*!>OM8l(hLLDS@Ng|R z@i3kKW@2ATjzFHN@nyj*9EvELZ}e><0Qb3a2${$2ynzVQR?82+L>B9)28ElxP!8QZ z7zRTQiZpvh(E(*|$3H8f7?Z4N2#5ndf&wWMk_V z%&DmCaDx(HJ_f32T4nsV-B@@uMl@^;uX`(K{{j zPrfAkl09P4l5e3j(|6GFisSZj4~uH&iR0{j?2*DOlQd7JV`p+;KYc)WL-&ku;b`~*}0+LhX_zd%CGLqgRc0~ebxK2n=$IR;~muAu^5|`{OdihPdO?Myui3E=0G@AZQ zo*QqO__YGm-)t@uomv+hwKEmTXZZcTl*Ssk_`rQnS2i4Rnp=#=-R&+Ij_NE^1SJp4 zN2!*PN*wQShm*$&`An0Tb56~#5YmBL9;0p+o*$+3i|%Mcun8sd zu`VrZ9B&X=^?7~d!Irp};RoOQX(_>|%P${SJMPZ&c^pdF)ELyc0Ab*dwM$>Kw4^eT zupn^EDO(m4q(u*r8guhZ)b}Dq9okld>Gi_CV_c@TMnbHQ=s0deBz0U%W^{Aq%UBM27A7lFz}ap$9OYZ18uMs#}&ZfnO-w z(!D`>4_}-bn$wqa+bt(Xv)lNqypdqMujr1d#$6hObse);RxJY zahRwXWKa(>t4hAdEMY+E(AjnD71a8?_X|~s0`+gA5N(t4D(^!*jbh<%!nc{3EwjWV zB@`j4@{#u?2Dk&i%nt?M9)P-EM~>v_V44%V{I8yNxS4xtn@jjr4bly*XCz?qm-8wW zIP&BeZ57ID%sggA5csp%qTH;cjo4~_z5XY%lrk7f}034AtvjnXo2#5c_tYBMUcy%R|HiRr+TYi71-Pad;q+sdA*2S+o?6g&0gcjQt@|=~9!fy5LegMQPqvSb4Xc zasz~eqGYP_v(>5b;*|m!?%O|J^r6P=jEV*+{3SqF@L^WT z$($`bD{Q*xm93xH(2lluuL5TzU((~!1J6#)H7J_REDbtWSC#XKJ+0f`<}6D=V5ANF zu!q>XFE~@vDX&ezEdg(p5uqnZkQtX+kv@oT4#}yti=AQpeHq>;!j)~&&lzYJZriY4 znoRZ0wvHSGP@`NMy#fkt>%OGQ(?&LEjUV|oouCnJrbbHJ#Fl0Tr+7YXN{-^wKkYS? zOpM4Q8^s*wVH}%~&0O|)rv9KS_kD2-$N2VYIP#-nO!8bTX1zmcZFWywNim$pNzVo* zty~(PcipFSHgFYm?+Az2S(;W=+IFme`prz0u)^?b9ObiHW$7`N8zHveMb9Tyr=zBwrKbo#otvu0M^L-7E%Uz}gC>5pC%?FBq=qmWu@S zlou08ftp3Gu=$s~-SFtA7G{eT5{A!}hjz|~X{71x23Nz52W7lkc9?n7l-~4!NLB%0 zTK+Zm{EZM5&%+*c@X7@1CBJgenGaA%ckTEYHxAz3I< zn&wud!<1rGWm~lYPv=74XCHi{Z~rg9eN=yShO4)GWpnO2teC1#nYr?Ntrj zbuS@R@C9&@Xj41!wh^YHo9ewt(qG}$z-%={5qH8i5{6=JEJl-)Ivft zc4NtHKA^wTREby^zIdSbkIiAW+h=x5i|p5BP@Q{gcdkN@xWd*qtraquFw%-T_vwNu zZr`}myt?>uTsh@shSdBhw#jG#Zx2BY!#2iUH^a5;!(tPx7#-Vs2@=w9b7Q+oFXql2W0Ct>Rc63sfoPJMM9 z7nfwGsMPX>xVT#HjKYMb+Ix#*%-msstlr?SaI(w9ToGu zvEl$2>#4&^hJTI9UC`7$J>mR0WnBfd$Woraru~SYzKH+XxWjVvstX?dfcR###L^$9 z{DKejL8u1zeym?xhQQ+z^p|3$@c=`=#jknYw80KrZCk$%3Y)WwtKP*{o(`%{W zBE)fhbGtlgp7s4~Yon;*Nujgk4ZQGAX5w#S*JMs|E18ATs%qL`=KAjW)Nc16Hp8i3 z{+X7*)xG**{swNm{;}@INOXwKAHlmPNGgTyAHiTBP%ys|h-d~p;yS3WDsG{i1s*Fl zWSIEDZZcGCCA)LK368+)WjJsyPEU!|Dj|G1oVrGwFpi90u(c#Kn1^VpOEu>?fWVR%!(p z{E?9V`GIFo+OAUymr4n8AYfyT>7mWR6ms*wC}gd$W>iyDxz!3>~XE8 zp^~odf!u5ik}eu+=>(~Yt*>-1EjIhSbDRauncTYmsPG}mYghrcWgx|)naXbsyESG7 zzuxly!H&e+;g%NK@#w59iT;M|N`DIq2&d-Q9LF6b5d6w@#@J|N&nxQ@W>CKJI2#bu zVZ3d-(b$)dR#tgxo6jDDptF_VI`T=FQ|3=@cd2}FW9hV#=p6{kCD4HxHUc)H@)3R5 zHGpa2KHN?=Q~zi;U4|iJHV9%>YOV`69(*lV`1$ia6@43!e%RNLDGh$w9i0`z*{>;E zj?t7+mzW+Fnzw5t|(Z)nYE(foKy-=j;UNf_i% z9#1?wom!&zOJxq^2ek&t$kci2ha=-v*h@+W^6!HJH-sCT@(k{QIzapPAO&~UL9fcc zJJ@)C%%La!URV6}oQ$em75}``U039`?3-8)Ln+aNWtuF$BGPqWp;kNL+C3ax(j~k` zGRN}lJSOg_DJbA*ycTo5%bVHj9rl`5Bh^RTg6Jg~GE=%ObfLwVz(D>=WNUXo50puc!TMJK~nh@14S3Ifvq24|>pQra9EVN9n$wl>wNy zF1Pg%3gDXlGr)K~Qt?PF44SN`<{(Uo`$jX5b?hb6LG*U8>87bZu zQ%I}!Aos2u9t6rkI1Ov3&h-mt^i_oaHcOXJzVrOIaT)LSG&RX58`Ce%LWURjZ&c(N zIF6c-nuMku_ivEkG1V#i!vY6GVT)@bD1SYsIPwf{KW$)To3EA~l9dt`G!<(KI)pLH zKB^r8a1l4*JC+TFp>q|~(!z~^ zXK)q^z7y;BoGvFNghzF!AG+0ixTOa*zzZre^IZg^Cu5_X^pANe_STy@EGwmTj&c6Y z{DAhqWr-zkO?)+CA-3tnZY1JU8rksOvgsFxoP-lKOe5CVbNwA%3bli7(9^|f!i>bj zULg2!(elhwmrQa{@?Dpg49*8U{pn7N&yu(U`Q>!GX0eq4cwqFfhMp%2Db^ZpwV0!u zS&gN;Re=<6X=I{x{IQ<)bn{L0Y)uDdEXYFJxQ{mpy0o~;qkANQj;HTyY|-Cr}F@)k38BA933+kbT>V$*6my#QHR z+@VdqWt2dkoe{<_SF{>anR}x$x9U({|E^-!4$9D}|DNXX;_4{-Nq@~&SZ}p~$6>zT zaNv_aH47*D)xwZBi>2kc;%e&D-YNBN5M;=#V_PjO0P&|E=Fgs1lIO@zE3){zIaut) z!dt~){?=&x@aKf;hSNVG#H6DgqUN57Zb{^zg4xJu-%8Q`^nv!Gq?%mW{B#L9tLt7_ zhKQo+ZN;#0Taw)8170y1(F@u7HbkGn*m<4^((zTOyS{4XZ9OkNU~&#jI%nRUxLU}9VUyD zHuOKH$GQ(_bErv-v5_!inI!guQ>zJkdqu8EujgGdJbT0}Ss#NwDy8^LoxzC?|C;U|w-*ZcD=*QpJ`cDEl589}OP!ad$X}J%$|zYQoY-4{&R%qsTQ4 z8{O+*Bj;Dc4;4?uhE=)W>>yL<7X%`Zx7sHNY0`zTY3GQY!`#+WJBw!fXzAs=O=a}d z;kXq;S?zHj!f{S^P-7+z2MZx3VWIcQ+-9QDb8}YL|Ysj2mMb*-z4|8!7va&pquP3d2$n6v{C0S?(8DeCFz9k4w$cJoRY|G|;VCXp6- z$0X3EyGv5T*IUmwNqVf5y2)c}l#ADEq3@HNoNh*Xe9YZlr=;bBXKvPVKNDkPM&^oV zIx-oHIr*?wRV@ecRZQ=vT~hM^izFiEq2Xb+!iu%~+ga$QgTWSwOoYXYW(ie>gfxm` z9_S9yOH=3Uiv4?cA)GVD+In>St@(K^)qeZM6__%I^^)hJ4@yf*g>SQXi@mh&WLN@| z)p2pnJZIyTlKQqARQ75(wd$wg>p7j0!LcDjAN9d4trsm9YQ^lyQwXOboUW)kyN8D( zFJDxz#RXE|r33or_*@}Fmy~ZRCYL_OR&bFMd;Ly@V6Sz!t5O@$kuIz6 z#8wGZJHZp|JN!eTZXI@T^08cMX35GhEfq1nFsyw3!Qgc+%t_E>ifOf5m2h*WhQq|V z@+rBs0C=rZLZzEnj@l9wRjuI_Y94&OcwZ<=0?ne zHC~^3nmDARUNcMi;}Q!gmhU7Sw|R6LU(R5+TkER`Th{hSDei;ig^wsSS%`$MFgrlj zdn*HwLsNS#(s~mU6RX-C);+W}&xC6$M6}2NB{T=^?bP1oqoY^o^~zkIJrTPzOgBds z(*Hz|EHh@t^W%X&S9Pg#{mh(W4aw5&7ti&@`CqI()-NnBg}OuS5uC6F&1SB*1b)fU zdg1tDFJFbp6hS`mikY%D)5-UhsjT^_v0n#{4}|Tj^@l6Fx;{I6^tjb8cJ7&1jt?qSs@4c+?VP>+i~hDtV{E}D zBQoz>YOetNEZ3i(hqQ$)X@lG8%OB~bNSL53NDXrmR$xb!J-$PgboqFTPe!^xpd;yu zhnt6sxD1*~^#Fs33W*&Rz=CJ6hSVWIVLZ+EGQ zq~%vI(X}gcj-p+wI;)8%KmgJ0ipB{SjL7Q0@wtGTbX{puJ$7(d`I$#f`zbej=iJx* zHMjNtr8>%kTk}R=lL`>nja|<}4|&rsC^T3*!DY2kak%n?MC9LSX-`%5Zwf&<4UAq+ zhtKwz4yBKM(Ip1hSi+e0ASt}>Ysy*lb?mgrR)V?M( zpkFhyeQ4N`%7>r$KH1HM`HPHAKFO8a=T&_+Z~4odej|TwY;~R?wSzNqH3ocmua825$ZKnB zKi#;4L|riU-%kv-)_^@=UMrD2l)RF*1+wd%cC;Vn;T!ADWQ^o`2)nqcCyr;yc4=A! z*}>G&rL}kMW|N1WL34YUZeeX(5K*UDxYC-0wuU>c*bB)nux<}gBNgU;Z9}F zcA8I36V98lGd0kipSFwY)J4XSLUpCpCl{kMz*2V~ zi!5(fql>e*K7uj2Cedtl@jWWJBOGk2H?Xm5+e(I!boES+%FE>P@{~?fQa<^bD)HxrDD=Ygcj#jWQE84ey(sgN7QC z(u_oN4JCx1`yttK;kc2TS_2`t46|{GzK+ z-LRwvt!|IPWZ?FD7@A0Tw+6i%*Uks_{Z)`i8@&8L?63&YDghAK8toTC`umI}{r?c_ zmVSu4;VT}XJvrBInHHqpJzng(@<5{Hvv9ov5yfM}>S3pW*SnG5a?%|KDm#^ok4!O( zKzLKMQI<~A!OZmpO5VmbKp(*GJ0+cl`?Vrlnjt3o&NGov&#+ynOYA051-0&+E2(b? z$rrb+S_(ROkYqvekUMYyuFg+8qNO&thpr04b66n7>r-OD67ODB8=qwe+3Enn!EvZL z$7YwAdiSl9W+wcA`cLZa84pxOM#fCpWZU_*+`8%-|9c2xr*I6ZFu)>BWKzMktZ z#nl(%)A42JC0AHYS&{JtsyG}`0(U#i{VGXPW3 z#=&h}Ajn_3cjijA4G;G|b*~dtr4K%Kw{f^1`a|MJi)0@xOYw;_2a*FOh7gYX!4yQ- z)(NE7u4rp(|J~jL3_grln^CS=?`;y)mr$1SyLQwjF+tR0fYsO-`VYnYmihH|%!X#U zZ=|}K+9jul;SG6Tgt$by zb8d<8dRR?^=@qA=A``4{E*+Aw@gUXLg@v_PNjFx$tbei=+aBmHP0M8SQX1l%+{(zmm?WzCzN7Yn^)g1aw{M?nibBM(X<a}D^e-e_HJeYqL}A2CO&KveSZ zXn#ESj*MP8dz1iTuRH27WQN^*(aWzG^dif!WV%N8wis8gn|%BT@o?MO(P0uj`_tR3 zY*Vr6c?SxX=_1lim_}sF^Q%4G<7YO!sNNA z{XX*<*Ei&i`FWpH$0`U*>dEd{2R3{VcCwOyZsnypG}Qu8g#d|$|A{s31Oxiq($Z4V zCl2+`ZZ)L?Q~~{^7r|KkZ4b}OLILshNuB1uRjceHIoL)TA&Y+w2#5&#Y&bag*PP;~(NNH7qvGCCoMjZsNB5$~U)wP|)n4Z>Us}~x7EXf%tX$;3Z){z3 z6<5iVB82gY7Zwy)1z0j478Vs1+2C^1pZ)VzAjJxZy|a0lwD6K?Xia6$yjCw%XxVKDPAh;=a1Oib5AX3sIC4&e^gLJ8MBi%@MH$$jMm$c+acXtilCEXz13^mjMbC!PJ zzOJ)>oOAYde(k+}aSiX9S#Le-eV*rj?pt^-C$7$6)vp^LaGyn?7H2>i%9o5hJ-?eR z%3))`4*N8lE+^V8*4eFUs}Wbce$%IYd3rvs(|&X*M^dcfpI4-bygL-bDkbbS)4DvF zA_i7WLfP#@5&;+@uPHV(Va>~;T{Y6*ulO#odEro(TcyWjBgGhZhkF}>P*o^7>bKQD--`l->IvH>Hv?kWGXZ!Rs zQ&T0ts3mUA8h}{gvTRjaU%ClEJJ~!vOpX*v4`)kKP{^i2f=a z!+U)tSI>K~Ct2ay10a=l5UC2`In(&>2IbQQ$|Un=S^Xb6#^RkeI7@}S&*n__cmx#( zKkm|aXg|#09Lzj4wX#+k=4EGI3-~{I@>|wov@9TSwT;)q%FoTtPJR3~aBS)HioT5n z2L?~$&R1viT^D65x#Dj9X`%R%ugYJDw|JZ-mY*Z{7(oir*LwaA2yhhN?QL0zFgoVV zZIGlaW=0vj!6ETOt}OK|$}y#=c}=aHp<62*Tj;>g@Swa3LJTtapoXIn zDFfXWrp>{A#b*wlu&;{{U7f;O{qCp7IwvQ~4t6|n%J{-EpVQHND5E-nF6}SNj8oBo zUWs-2XMa+M=O!5dVhi2}rS)Oq;i*V~R^)6(*8xy?YrU9|D_Zd5qzsRaR+5zk_IdPM zCZ^_OA{2^>Z+|;{)m6WG*Tg=>-g9FAa9w+~?RPz1HRvw5z?1KV?{?PkGM%b`u^i{} zj;1bn!p<*^2o#T8)2|o3yZt5s@wx7ZCTD)(0YHmvu&N* zm0PW})l;K_jH;}Oriy`#AF(kLKgoZ^m>zlD^-OAroJ=H{Ac5-6oxa&s#+Uv#xwQIK z&x1lH4og2i6;{^Q(Kwne8PL{-#{<-uc7MuF_gI17D47MP#ZOlWP8`gP>T7viLmUL`Dik;+ z^Jnf5xk|j$x5%Sq44j=k}Q^)TyjF>mtPF)DEQC2Aq_v)R#5Rj zd`blU`tq1Hk=YEU@L|wCGvGL(Mq#3)d6n8qPHG~N^V#XS-|71F=5Yo%qglx7I2D|+ z(_8n0qg(o8Q$3q*1J~9Aehfi={?+C{9Ka7Z8_fk-%~K!;3HaXDw03c+FCiks!(CEj zeJ3U+ZZD6>si~F3Ig?Aq_fSxl5Kjg*SUl;k@^N0`GtwB#u^u*Ng<=f}shTAO)%?0V zR=3suIY~JGIWQMs6;YJ;7@?@|E;SUXAR#<1&P|Ph?)K zGxJMnuxj0~vAxzZNJ;61y*u9O(*d6hq!`leDXqR}yuZ?)C%NyXJHI-S_<%|uVQnY; z4i*=8FOod7S_Jbrm24#^3=6@pR<}cx)mv#*0=oIi|F{xW&hPw38e1Ut??FY zjyNl*&pV(76OfIuA+HhP_FtjSy7p(>GFLl>lvD@ytr{C*0#!hwpDu~V53xfRp5|P( zjUjS-8}9q~<($b+u3YbOWzTVN)OUdsrPd$$=`*UrBht|^@Saw*edlXK<2sT`mu0sZf-PPkXpoN?%^zu)F31@ zlqTzZXKXB$ckIC&piMS0F(G$VOp})Xd(|L?ttN8JM^eZlB@5NOxvUiB05rxzv-~@T#U_F}};18duQXVM&h5E01y|_y45Rn*Q4O+87_7zo~ff2g!33 z>*kJzq-vtq$8DDI<2_o?1fez;D`URjiA)2)5#+MJKmeJFo>u7@*)kNqK`GffEpi#baIxkAz4(De21-4?I2-d{p2@wb`13o3TE&Jn2EJgn zrR&f}{`$@R{1!FKa_o|wUPO(?ADhYa<=fzqF2Ad|CnD+SaO{L82|UVG@a1ec64SS~ zYZ{_qaKOGc;w}qqMRV0lEs*rBF}Ew#=Y~?uE`1uQFcm0bRd1q7ovafmUxFvaPUjm= zc-LK(QNmr!tPpkiV2_u3EG1rA5om!tS2Jg4Fb2upH5RVTU1o~V7a)S7R4;N~dQxrL zccaiAQ%-F_P4394JSizjc$Y5g=g${xY;0i2=J9g#>OyJ_8X8(Pup-`B#g>=DSma4i z{;a%Gu8-7&ExBk@Q`*SSL8$MQ(dAvu|+tpOf~ z{JMOv+QUPxzX~@mYQ{ftJ0fndLrUmV*WOIU*h0!OTfUXZgFxD*FV1(8_2g_{luJ&G zvYU>$#7b6()3FKq{Aq8iav%BDV){6=U^MCJ zOh4*Iu)%}RXarDN2w@bw2iVHh>rqHJ_S} z4p3Js0m8>m9@z$TU=fJF)uFvOuSmiJ0s@!}Nr;Gu{?*=%C39h9vZ373pT<`Tf8#mi z*DPS=(^}XsbYuhzAKQJ#vK|q1d&lPb8Pb0S$+{unha5UN9FYWv;tMnrVGoPCH08`^ zQ~CyC zX(C8zP-zQZoW(#>kFs#PuB_jtzJ3Vj&aFH>`lhbJA@jtPdp>R0yd%Vv7{X5lkt*4M zd!B`q`QBp8;@*AVpGg<<({&XVKadbOPlWK)4mfc#L`P~hbU*I~jW4xhNk?vR1;Sa#HnMn2I+=JtPq8Q?E^OJb} z<_)Vs%iKf#fT>QE=>ToC&_{8b*|O4zV1QTen&0b-!%2GYxjv_88Dzr`Gve zi8cpo%s{y<&Zx=xEi+1EZaD`RO*2+ayiT9?E7D!dR{ok?o6k!_PnUh)Jv>AmCu_{; zWK7A~^J`j~$_&$jbgjyw;`;gz)mMv#rWd7If1N>UHZxSHqRTa&-hrbs<|MSUk9BNb zD~MzB-*NsKNXz~3SUns{t9wCd#MJ7(o5Vk)5iHT_3K4|9{`C?(b#T8c*a~xT$he0c znhEN(iLe*6usC1*otxDdinHOqv6>hz@tL%$W%4q0W|uP>J7$~XuUl<9wXoUa!37AO zgwkPISwU%(^(0&OuZS$FC|q}oMDeXhKzL^o;;k3`IS!9XJZYzft2JD6Xi`8i z?c($IVWZkj8DBABSH^jCp8fzSQzpeW^UEkz%`}`k%XN|9|A7T4k?wm-OEg+$6e3-! zp_yLXxc`1hR-;(GRD-wS6}Nt~yWMCSe*&AJ$1w#pb(`y+N}-y7^;Cf*JuoMDCZ_np zIz%Jdt=n;a2rLK|Psy1>bGQ?tqmATT+;}-Lt0oV0 zGOAr2*0XBd1+|0!*}g@V2voHFnX5w8hn0j9i%{Dp7o_djS#&rHtaZTrXvHaWPO>{u zZ>f<>u)w7T!|>PfbL#lpS;PD@77BcPi?`B^I-9#pq4bxI*;yCgQsTN@Hs9gsI_*!l z04(Wi%{NbO2D}bgaAex))WlnrJm4hk>wg|hZWroUS7ScSiV?hk{%{!IBGKhrF9}52 z&u6HwP7PWWc3oN9%ko?-iSG<&E3 z3BSOfgRMLZ*yt9tfL;l%rXr6&P zI?2YHBN*^29RZuORi0P}-H*Y-$C-KJ_LjVlrQ;-gds~tAypN1X=i~Ak5RtYk9%+5y~;0 zP+`8qk<}6T(zjm3rKi2#`1%%1;bB^CAl@=C{Y@)E?fWFd*nIA<_q(eeOW9T~7EtJz zlth|;zM@~&1vx`tbzXE@9+;3ccX~kvv@WZ}=3_EohUk=lDbj|$xWBPU7xKihfAr`V zdfpigb^S97Mi%CG?9NIFx;N57HpiD_lVhUq?sG|USU69Xgl({wwuW;9bx>u9sGeDw zKq?Q|ab`+p_hd(Wc$E_LLNZ$&hbr>cKbC6eT(~+Yla}ZfLKoD+vy0X$%-{WLnkrku z=}S!0;dF5*9$<6RSf1lBQRoTmA*r0G9xO4@+e^+hJPh$W+Op5ULDn`qpV$Fsv?AQW z)=$)a*G2{g8C?><@I{4$Sh^0Ppp?PTb(HJmH4C`Tw`B2njZk%P>67BpMhaM_&WYaQ z$z&f#3)tN5OV>M*=Hl4WlTSZ>jIz9dXmyWJKHg&TXyHm8Tshtw4Y;Njxp`V+m zDXtRf5?s;xh>DIK5*76(>-X>9iOC!4>Ng$&65Z2#i<7kFGM z5d1F(ARuZ^ED!(3KMITn_J0@x0ZMVs|KuS4sviMVD}SSgfEXaaF7ofM|Eb~E)Kqfd zNM%kn1~>VfXyzr9agWR!9kTOKBAqd=)M8EyDj(Z8-E`*12VAE_v(SQ)5&)gJTy_UM zNrON@$Ez6WrwVUT8lF7rV%Gptv$bJ8#>LYMQ#Xx~0Dod@&f~8rfvrQp4}|xCNW#e* z`~c*L+FRnMPqoVX-eRGqq0Las=qp4cSMH`+w= z9E10DOM@2hBwUJS0z`f&$iS0rNq!iyz zR{Hy{bblz^nby3{2&*17ZRc9Q3bEp`gZzSPnVLUu(UuRV>g6( zo2c~?!jOv1?){FHhKC<=;Yg;(7G7T(h|mDaa?&!~TGUa)Kg%xEc#n??Vd2LxI(1+u zMT1SITpUD2&1NjZ>!_r;m(74=J$(9Wi!AkrBP$Ngwu9kU(#k!9<9S34%5 zmP;*Yl^v3SOpIb)-g|v6-XuRv3uIhN>Q1-F_m-)e+tko@pa<3eSe~(Q??ugnaB{@v zxc!n`cCYA5QZ;ASwLTX=femJF+ZP#G)9t~M(G+*@`%4E+P%Cb+7VGVrOX~Rzm~s6t z=B@D1J}ds?;%)e}yMvA7-i|*KjQx3n*?MO^wqPW?+;;qo@Z5Ix&%w|)Z>fXJ`{JW{ zIqeJB>D_jE*63k*Q>a9e+o^Nn%o})k#M3JR4q!Y)cgpH2IO_jA2!N{()k%{LfT^Stq~&QQlE+0f@Y z;Dl_mnA|<#plq&*x;EeLG!q0X`ZKg-5vA3>zMq(OWjV;h48>HP-u*n1T*H_&$tlOj zTkEg(y}sm;=&noRx{W3mCl*dgH`lwj-Q^2BX&h{V(Q01}!uL0)*Y1zbin^8&10Z!WGLCn4 zNQsDE6Y)5=GZqWBxocK}?^G$(YdZz&UaysRNrXiaE;1D}$4T}gs1{wJ72x4Q)CH1& zb$BQO=aMe%W+7vmOXKy+mb=H@J(^s}Q6_H`BQ&uZt8&^j9z4fQXA*wEyQ>0|#IaAO zftS(@eF12;muWHIp~Y71q@lOZwH=;>@J^&kJHPo>EtCK$ z&;Rv~TR(q~YrB-*M98x{A-4=+G~$&lQA~T#;kKGV%-($k^}jd>;Qk0QmP6j3CyA;k z1bs6$IdBR$uwyM9erD0oV1IfMIlKAw0~OuuL>M=oV)BW21bK7_^ZbFus376u2dB{v zCv=oAd2Yr>v=1Cgw-TbC;0o0=u=ca4<-XTX>55(+;Jtij2?!&J1>@RXP!SRkh+O{( zz#->(KE6AiEfr0*-0b0C!BowR7-T9xoUhJzScMw;-@9ddJVWuo(?jiK>D9*R@s4dC zx~}(r2(PKB3BbUsvzb-Q9)HJkTx))`=svj5Yy7^TM&pusUTXHv2FI^OD!yiaG2-DY2$L2M`wVP1g;7a~$QgG**- zM*Pk#gFQr!$(4&UwlX$^&&L<-mXl-sHI?qoua1Ws=mXHi6N^(d%E!XIjkdX#TdwOm zC(l=rW*tq5)ezhS#~`k@2QO(yB)FQ&mUY85-w*6!UsU}utmSdbuAVhC8Honn)4qU7Q*#)lEXrdgCr--}h-X!g`DDRn?v0j z=l&_)Hxk~VWS~(`Klm(!WtCWTBeSAtXLI86JI&azKix#YSi+Xs{w6lZdc{{ls5i%y z)bMks+i>!gjGG-p{Z&r^wf+VPQRL~O>Bz(RayhOW_~D!eIz7s2IDg+`wLI{X9T8Ao zw9}o|BX-SK`-1YYkWdHF}pnH9JA zFgEl#xwrtW69@BX;KWGIYoB%x!>5&$2gKiLXgcNxfi#qa*62IW@kGtyK%9@~z_4xWNP^(i)Mn)zTMbYTE_K|jC z4O{c!R#0;Z>hA&3QGM*vian?U$l%v2>^&DUOESh?@$?eb!LJA4F z&S0TBEc%@;lx{`CX+|ae4&!p4h|wg(lZs^ncIBGFr^G;lpBzCF)gSNYshQ#Zy8`#p zsq(SgVSC-T@ZgCH3Vf%gZr?ryBPEfS2WEKaH};tvFST2p%DeL=xY%MwwBnPJlJ!BD zm&Ddw&erj|UaOMEd7InlcA`O(RvuY@={*}*pG-f z<+YcN{J4Dk2>&$U2&3+bK~X5pu28S*^zRPV9W3P2)=F*UyHayH zwu)+fpre@bZfSNv431z;xRbkT9xQ+Q@Sy{UNUEw9-=C$Xq%>KKWdLN-m51=+grz0D zfR10&)*i5xbRdZN^XJbWKiF;O*bx%|a%*R22R2{bHy;ILKR~p!soXX*yANh4j`fXh z^&)&O54qjv$)p-}5#a13UPuUwf=o+EgBVu_51QoWtlO@MovnDH4SCyr0{AY0=EFx2 zG_^Mn3i7i5`p|REL*e^t85O#<_IZB#D0S@Fn+W$4dBh@}u<-q#jsW14XIyD&Y6@iO z#ijmUtDiY-AI9wvI7KvKSxYubmgKjC8Iqqg*P z;(Rv4sW#Xa3=>Jx7VB%=V4<_!k0V(T*8^@{-wB9^bhK@>gQaHPw&>!IpNa-QsU@SH z^7b*h&DgM^a#xkm8Ob&15I&e2nkm&?1;bj~+uI506@37d1+evLvnoycj_0fCg@lCo z`L#JX#7yJ%foUr8x5nJMU176D{Pfk60nlQ zX?KW*U+U5iUxh8Oy4RM2FC043SD{<&TLksnt<=ZlcK*`&>R=~i-F;{>dZmAH23|LB zv#=7A9R*bA6(}sEfB1?heC~(&rx*~Z%8Ibw{+;WK=Q}K~fRpb|-4To5XX(CgasJdh z^-ueSE07;!7#NPfKB7c@jXl1sFS%a401wxxJyv#yWIlQfTE`w}j^cDGm*{`dw*wcj zx%|qqb9a03EQv$BuJgNp6lU{fIQ-ADXXyRi-9oKRQq13LZDWJ*#fulum8)IU?&Zn+ z9pufjg065%?z_J8n;}MrH5D)nX9~*%6@pxtx4Q?dOgdS{Uw< zMUINQvN$CR96qW{4cf5H=M~-{JvViYW(#3Bg^)fh3*{~DZX_I`^;L!<@7RRwtxc0W zLK{^5BMVH}g7K(Dyv}lDa~FW~0s!t0#vv!6qIwvhhdeI%k#0M_JUZ<1+N z)MYzD7(0X4!2oDkoHvsx7L0~P!nc?N&}9yo^13Ob{9$#mftYkRaFYu$^R3P5Cr^75 zI``gDr1~RP0;rEyHGGUahTRy=K~;OB57pkM6JmPuV^GTOVA5f&ij$=3Gj|}JTVsnb zKjmPN>)s~-qQnR;`y&jYi}$)~m5p38dW_8o81?xw5gkIqq0t(krX1m~uvTpvHdskm z^=*reJmTGbXpcykY!lRTWs8s5p;~NHKZW|v4vUNH?FAm?=PY}FmrhHcJtzsJ2fQXW zw#d@!yC`9q+(;%TWo6}h`{j=x0kZ!OpFe-r)6+XjZH4?#7@Mv<*yq)6K0SZCv@AaT_-&|RL#*tD{nrm`MhVErs6tPOV@SGA$c#&Qe@`0z zp~}i@VG1Pn^=I)KK+C~Z#te<|M0?9{RaDl3Y{+HcpOpdG?%lK|4Tt?y^!o^sEW*@K zwF+G-mwgk^c}M&)2zUX;Kz)`If4rA5qyty5}_<`MYEw zSJuOgGFC(rZ8l$gd(CW&WMxN2UWg!raDTohUYEJC@*>{*c|PeZO&q433WSrGze;C@ zdSB?QbAs0Sbhqar0XmU%AhAy>RvkAdQL0D9fqe>-TWQQp07F+M^aS`gumU$OBqRj$ z=){^5OeW}FBAW}!LcrSE+zw`R>uhPVzI^#YDd_HlII8~}#nLIISIQ{SL(W@3YB5^H zL=1N9}(Xg!cqxsmI=p6c>61?L*Ah-NpPW zc0L_Ex12|QWo3CRyxiI;fU|2U>;%deVoj{2crb=jam(S%67DHri=8?Xo2@d332 z;4LzojmO+Cii_7AUkw-Z%cVwdE*yX5=wE>R_N`H_gqDPXPW;* z_GpnZL;Qd#P#iNpKK|&@qi2CxRmCb|+AbdDZJ#j@`5TgRW+>aw2Fil4vF$vA4WpiX z6$VQZA3gXf7$?TijhZtwxcl_2#04fmd@{gaNJZIB+i!&Q3qLqiOi_tJM)Pv*y*OH@Hoy0Gf?bz%?W!1pvXfSE05G1CpVyI6K>+ zN;Teyol?e;w+{W4Jr)l?>pdZ(OuwaA+097eYZ%%fbSJ+(pOS%$zjKC)Z&^^!_J=Hq z^JE9o+I&#SV|Ch-a(EWH!578C^c%xkfmsH2`H0lVtq=lV*r=9)|-kosOD25-i(bD3;rjtd%QWG2aDXNQc_lO91<<%c|PlJPS3QEW{ zfpD>-OEGvzGIEb4zpci`C2<#;Byc^G@w>>Us@Q@;-d&v@>aimehZ9c12Dwza5v=;5 zNGPDjYOz@s}KK!>*KA0b5J(ZVlNn`AX%YXoR;idop%VGkEXUtZkaE*N+BCp2?` znIS^=fSzjav@4NqbzVW7%Gcn*Tl_~z!8@Y?EUZ{24V}w%aZuJwx$l{G$xqlKJOPux z+F$Ep{S63oW+%FqfVjuM1b`n-1~jc`##d=W2QIATaEDW(Xf_Zi6!gQS)GRldpivZ` ztVZ+5LBpOd24ikGH?ittW_Mgjgg}1u+gDjdliIm?dAL+U*MkX6sXTTQ*0q0Suz*UI z*f^#|EaM_ZYENI88)t8dlnN@ z?_*lAo;{5*lpjJT*L!J*i)cIP(H-XuVzz2)r-zGXv1#YqMxvWK%5#GQ`dT!v+%);EJ?-qLA7R%VaqE3k z((Jc;cp_x6spTfQD^OX+=pYSpE;=j0`A>eHXFN)ZIzkMhQhkku(?CiWXV1WdIL2_v z1=c65d9NT5yknCQcmUv2g2r~)8Q7#O2$~SyL*=613y(K|3Z42Fguk8D_6NKc4o&nW zgSEx{v%72BOoY+BJPvU;A7*_MRoW+p29e&=M z$Q=_!`n-SN-sE<`Y6ulF?SEc8Jy>OHZEbC9YpbF%ktGqHChX22BC_H~T0a5AZU7*7 z`VkW!pC5ee{e71~Va|JxDVa|eQJ->b~ zc)7!UfzR9drR<0q!IRNn@6fIt=7Qz0T}bcooYrPWw9It5(~Pu>szNkAD5PJ*)pqB` zI5C8!vErbiR6>w?O;|-T({R>cznfUJWGsAdvB-Em?{>7fU069L^=F<%sMd1hGUjD4 z&2kyR>?y}~NlDWzVY%WVz8=Dz$)Xlu_w-vYzzBFr9>n!Hu-?J(7XUdtHGfKM@b$w> zLl2`;=`;Xe_wC&=T*P=*JH;=fN+*;6Un%PX_u0j%wI}|I%;0jv3dk9{;2U<32kh4? z>M`8~$XEP^nI2?JwL;HaK7#@3cpOh`7H#+wo(g_xEFHXl(slH_iS01B?iQ!7F)brmieMvTq28`u@r^E$aVJJ{v*2Wx#Q2qLeCI9b(jNzXUlUM?oR*ml6MkB={}EJjk`04+NaF)?st zQll)lF>F(@wA^j~ikie`DB=W|U7c!k1;8Ex9@tI^vvsWiEp2x1i$6W#q_YTKl%?9A z-QD7G1Kmz(TFlT$#F{O-UFO&PlZziqCy`X6*1t*iv@1Ur{y1^i4~haf^It})6kc4C z)cIHpw6#?KNaphuzxkPBxQVlz(Z_%qL=KQnR)3L_&Ut*Tt@>^{kZ%`syiOrAup)>&ztjZ%nsyAFMTbx;RQ zwO|gOp?@_9%mol08W|gFyT5t-Meqq1WCfkVV*DVvLTc5ss`U!K!r`Odj6waJ@i@yX z1&KPW5kx0t#0z{MpHbb*Q~@jxwAzJ%SBxkP7&OPNI4@#=N`?pS)vaP<@bW6re-wgH zuGzYlrGQ(2%hBw=>JupK378=v8+@rF0P3n_CP+m4%HZ|$r?x!g_?Zco2u55{e@VnS+smWjw zfbL}Rbi!CRFd1KTM{Rj{-GDm1moo3gX=rG!E>P!D4o5SD7pJuUee0KI+}{89jOPDx z>hpiwhVs9s$o_Wr3;2ulYwLYrJ-j3MuL|7%QyTYw+rIq&$w_}uwfHyJ$B)db8w&x| zkl+7NN&Nfa|9X=9@UpvAPkXQ~VF<8MP@kJHb$@$)&%)oG32aqcw#m0sU_`ARWvVXM ztb+G`c6M&gn#~fa!rLy6`E4|dgCnNBUDMefvrtV z_su8o5GE6+nI8#h@qL9|wD(&+>&!h8bR;usdOsizTbP@&x!(=J^*myVg9#-nP|jD( z;w(l*%!Q3R0vdFn(W2RX`Hvn6dRmp;GU$9RM%F4#QJ(_E(HR4|V;NWDMCe&qq%7jB zJ3G1U)t&8_Mr4~(#?GUjmR6=uqRn!ZPivdWYHORTgeAhr@zeQ4DV6D(gRN)L23)Dig?!gtS0M%T7^Ay9K5!g z^A^aI$;Zk(H*yX)!&b@VYgWAdgrT90-_VtS|uByxf zpfyvrtU_&mr+)j_-tjHHN5Wmn64Vcw-Yz3&QjY^mj^_^ZA1uy_^(>*D6Bb)+Z9GXa z$G@ezR`i@rcP|tPMN=KGLt8gUM_{F{j`_cR%zA2+2*J#Aw`abxB0yrLRyxErs%rc5 z^jj>hdf%G~QY*Ys9nQK^sp$s!i7IpS!BG}p7wBcO;loQpy4;D$a|ju7W{grpA%sYM zJ}jor#|b`)mjDXtPi))iis914-s5A`(Q{wxyGlAYy!XA|$TU_2TlNyNB|i=g>EHXN zlPfK-eZDamturL!e~IAO5V>w$3>$wWZVGi>+Q}D1TGLsC437F9um?xP9f>iTZIK)1 zh@4F(ei|{uE*9o=*<3XA&_CDa)lT>xTCkm2VWw_Aw9XJnIVotMkK8D1aG3F%=}D(q zXZ9w<`|wX#5M}96J=;YE$(=~1VKkL6Lint+<<4kz*t5TUVMIGL zD7r2h7pIITq1*liJ37o^iBB5y$!URNclDM?^NFRwx;#{6 z)8a?Ri!SL(E?0?F`+Q6&ny(iviZNQFesWzN4Lcx)#bQ)~LSp)G$?@YV?>{Hz-s<=? zlCqs&*SWPlRNW;-?v%)nCg&KFCj;$Sn_$TpAG@*fmFA7EyZ%Pr`E~z%`E^4WUGswr zsKvPGQj*NI7fh5A7w?>-r?xjj#&pQwrrWW-9;($(EepD^>KST^O-u8seLr5t?PBcE zRA}Bg%C4yLYQ6cU=z<;)tpW37cMo!Wr&$?HPCZ~%ce zqd>_mMUK>hy@>qS+5g>?wVI&vwnZhhzRH-_r?Ff`Ii_F(t@f!pl$h4y#@P@rkIzu) z^&0|)DPjqiSYW>q&dYLQu~_N)Utd~oHCm3-G~LOo$;|QhG3xQ0rsCWiM_HYQ-LQ?w zuwEXsuh)7Q?o%`OKK-YhiPErae|2pjnPV;Dxqu->oz4SZM0LSHXoT9{41TUPg4Gh# zMShnO-@eOXc4-~p=vD`4+#5VnYp=w&KytFb^1VE~D@y}PpyZ)G9u~#2u+%!&xfrWB zgFn99$UsDVEn!j0qxGTt`0W5~??h7}P?fdnxt6+xL~SWE8S*anIbu8r56nOYlC$1( zI0y8lPl^4gdI=lRqh4dD4`OvxVmAVg>W-;8(-K=6Ye@P)M zCH>+zBBlTf2=xn24&&q7^fzi8ZtjUjX_V@1FP=xzaV@~og^WfszojhB_J3io==;*% zO|1!;s1&ce>l)H{Erq+ES9q!WxQi5P*vksdJc>_lCWDSCmU+u-_wS#&0O+- zA<4r6sXsSfowz%*^3gLspMN$+XE0eU9??$A@b+U*wUfs(SLnZ`-cGz6dXokekp&o1 z)oj+H2}-h3sF|&PjUN4(d^Nrky^PFz#qM`87c(;U=IM>wg^yXh(^w>?C;0GQu4HQe zC{iv+ot%>yn@Yq*@-h{M7Yf1uGeop09mISKAJOW&DQw*j;?-4S-U7S%+Kp>s8KwyN zZPTwR9IS!wUrZ0a@18VlNf5a4Z=JoptxWb>!Sm-soc`G#t02C{^W3U*V-sGna0?mi z_|tC_E(=m9vO{b+AAty$t2+PrbKHfr`*y~M(*Z8#WGpj#fHC{& znP|`3b9V*m=6Blr)HyZgdFM?EHv%hIynp4Z0k8kkgn*C`NG{Az&A(a?!)rtKOC7J4 zrOv46As5^#$j++Ihn`Tatf*%^@tG{13FNY=t_~-|6E(!6SIRMqMAP;%BdF~ymh7`0 z)k#S$-6(vwVvnPzJQ{m>UVtA=Z=bOk=v*!5Y48%(&T3e4ih}T=&mU z^$~m4T{;j{p7OcRkY*_st;#JL(}7L^J>0p4R`S&qPW)>Bx0LV4&=1GFF=F(KT1ASMdz%`d6JexoRVWDoDtII90ifc}3&NK0gP{^=)w z0e_eNzGIKl-ugd876D)Jzv`SQD4Ie4saXdAo@D<~zW$$`%KuXvCjTn@C;y6ag;G7g z^w%}DeEnbD%>Uy${jV>MN-V6Zo(l1PZ3DNu=gFaZF-QBr)b4FCwQUoHxC#Fr9h z8)CGV8k`6jL`pSmJ-j+Pwm=5CgjPVP3&9%o3s z5&%F0D7}}~@yR(^^9~^Nd_enWJvwot=Ji1^oj#m?7AU|}BpPy~d81k1=ezEk8!LG| zJ0mLI>0OxXEr3i!L`0~inH7vz5s8o9UCPwCv~Fcx_Vm0+U+f?g`3FDmHcs-l)$U`U zmzSg{Z>Ok6^zrJm2F#O_CVcr_(9>P1Qn4}$e7-7wO-f42qlbSK6m_gct>awo6?v*Ya;=2=L#H)b-nF-L?>+tTel^y>G41N~NXjTs z2G%Ir?3(q6+!k-UnyE3xT%56&ybqWHLyfgYBfxZiuWIkEqKZuG35ps^>?I7k&co-N zS~Jez8<62sf2$=HJ-c3-e&@R8Jj(*Cxcs6NUPwn{xDlrkW*WRKo3Ny|5;i{Lq zMiN4f|6y}(J&aA#$J#cTziR_!A(v|%cH@)(87sPa_yFho<4uy#*eOo-&4N#WgvMG0 zsMqM@3Ai=>#-|L57XZsh}- zHukKp-kdM8uCbkAP8Ko{bKBWn$f&&VZy0Hkf|pbPU6uioGv|?1mN$vKA@X4sY?UVIm47XWLKC# ze&J==nz(2j!e3|O`)wppkhjC=0Bn}#9HCVMn|Q&jyiv`+|26An--atD<5Ma<>Y6~d zC=HL6tE-kWz7!(uK9-{L_l}L^H01foQ01yZAUuD?$sOfABdY+X@?7!XPuD$_`x2>5 z`2K#dh29@1ji;2EZ=PX)L%u;LK`jnO%Ypj8u&TM36~&IO{g6YoZPTyqv2tb%kCHvk zG2|_`^6{gkGn*%drXug|_8(SICaCd9;QI`e z*-IlWaDrjEw}Rjk?nOm?t+$f6@S|W(hy$K|LXMt>&oQ+-=9j-LewQI7!d#Qt$)y1B zm#xSDFlJ3K;Ca&rbPlF^UO+Ih^KqRESIGO$J4n*AcRcdbyi}`EmEH#dJrHi>q}h9a z->MKfK4I_mj?Pt=92)2v^g8`p#cht5T>Q7k@nc%X)8C;A>+!x1HKM%VG!IgSsZ46K z?&o{Um}XXEG^hgkul|6~Chdb-i?q#b=eM>PfVVmiJ0K9I*wqBgR~f)_AUFNmx$^*j zcK7fIxAoTgM!I239b|Q*N#Mzut?_Egr0XtBb^tC`Rrh9*0NM>#t6=4nr(0&@7)6+I z?ybzsxS|F`!C)kiVg#N|ne&@ijCQv2|tbTzcZXujzHcXwTMlq8cg+0*z1$e6Jp5Z1}pj%-Z8Q ztq1Fk19Rv3DLZN~8?>o_(|PyPYjoX7QB!#N=W|N9ufxX0InwEf84xUfJ%#}Looz-Y zfItKus%Bx!HMqKLo&*v2Tm96$j|GEu#LtKBKk({?@2`u(>suwL?(!5+Z%O6{9@S#v zC%;s&EfFiLZ{JY3sjDP35N0C#O(=grL`IOpM0pAVGjEHvoF19&2Wn)L77dFP#GZjb zA73iO{WAi~mx;K=mFU2fHy}mW_URpSc$aP`SQy1N z6xTdsB1YqCI|8*XbuB^1)t3iM!i-7`Du*n& zZq9cECygxPW-i9VJ}71mAp-g8YN0p^CrOT|0IRD@P|D#rb|H9j&-nxc4*mFUt2Shc zG5|09cjLb$G6SahS5aYGhm)zWpx)I!sXg9-h3deam`O1tCY-U@IaUlJ9I;^)pjg2B z;@!b@v%=}`BTu^%fu6q`>mrE3b*8tYsd)mNwZ&5C7x;inx>4K#Z6c#U=c9#A|2TPX zP{35y5tXeE2Y%oiLD1z`irgbvtB1TP>Hvb}vB@XHuB~FV-bRt@Scz_=^Sm=L$5byJ zM(h#pqzxMFUo2cOXD`MLk!IWeIBHH)$%@-1zEWB54_5}O0oPnA+3G8zmrp(RJ_23l zx6_FN54@M|_&BVnB>3S;0FbXtnT9mxrK_r_RJ$Iicr46sBCALvyJXhD#+g^z`YsDF{cji`$TL5vcB#qw(?j{)D{-uquX3m6e|%nw);_31m`Zz#^^!EgV*Lqh1&f6xOP=)qNVCzXo6?&(pN?_$O6zt*s_M+bVW z#zqIk&%k^A8yiC~oVcjUmb1tZT*l^rq5M>)bz#4qUWpY6X>_R60e&H2#e&$~RruEo zT-$&k>Ya|CHRA_g3%p4S+xs7!v072p?H(b~jzLTqayq-=P`E8T?DEZR5zUkd3bfi-}pZC3Kj@RS?q>5XoKs&G_~&WlMPvv_A+CFElUS(5YXJy4I#!eA z@lmfnDljqfcR^_G$8K}+$G1{ukpVnwuSZ8Z-6=AWmcNmtNH}V(3CJ}q=18IWp1V&~ zb)vB6hGvF9=dnb_kbK1oS16Cg=Ts^QOqU*RQySUi4r`Iespeqc= zyn|LN3gd>#ASDsk?c%Fcm7YaY@}Ng8Gmhbe`3L~`x?QmJ40_{Sa(P+EB2o*6{`oZ| z8qpQHjoyj>GYLEvzl)^OBRQcgMb3-gCTo=F%K-E^E!-a2$#7(r5h$o1yB=04&Y1EM zs-2r=XQE*s?`{12?rEKy9D9cV<0}({H=Tz!ob@4>y1M2;#*h?4FBP{oL$~&|XzA*n zJ;M{I1?mM`1DCR3^ZCd$7|)|1{Q$5cuZ0c8Xg zulj5wTncIy>PoMC5^t&@py<^cktOYcsGWaMtC^Lo#! z?wwD0Dp6R1{szAvs^IPYa*$2kZ5hUIHQpp72it`G+93w>!{bfln`s!f_n27Kf#APl zUVMvNl@AfYG@il>YvLz+>Gl$Lx5_11uTX_#C%Jj8;#GC=0Vx}vU)U?10aLxLG2y-! zsorwWf3ty6zU^Id*qDCL<+7bDA*8)K>D}?XXbO(C@CRDvnc(y8)0$miBQg0zTBT)Vcm?3S4RCDiI^w&p z+)0#dIm@`sC9P!wq%0`k_-oq63d&0$I~B}r%0Md1o`bd%1gQ@f&b_7RCmd@oLq$eO zYQ(wnl2m9lzRzi7Z!UKee9yX}sGUheUTHzWQjZV%dn1MeDB|yV`uRji96C_vMaASS z>|n5XXo)aj0Qk`f->JcR!lykIq#P4N@7K><(cVYQ=j(sJB;PmteddKGRWWBjc|#N@ z@Gq#0P4Ngvr1a#ih-4i5t0=mQW(XzI0~_v}niXRL(YNgz5Ik*5RaHB1O{pP=x;&BC zzf~fu=A1{3caeAWVPA+QMDk^*GmCroXId1n=hG>d8lj)}DUEv37}4dOzZ~45(-+xy z2qA>GEL?kE@izxuh8FW{F{&|PF%o6%e^tkk@%|J%F*&Vt!Mi2WR`Of$>RF*qLl`v7 z5H7;0`^)=B5bt}?eZRTGspm}8P)^;XI)X5&8S9Z#G(q*xO9tB2|Xl+fbCfmPh z2S{9=MCA-!Z-Dd}{}1_HSpq|A|dr2I%S% z0YBKu6EH9U5|Z$@g|^EM0#R^hf$Rb9iplYkYOI2>uVXuQ=hOkXK*3FP;o_#`f5qx& zU%yAp9Eb(ny#weO7)nY?Jgv$#nd#B3YuSozvuL9K5w(*1IsB2!?5Ua)|yF`bN?H8E@8UHlA z632JDLjzYtxdJ@;z$`{IAbFBVE!OmxRs`RmT;La95249+!VJ#KcrH^g{>X z9UpW@U%NlMeE=b0B>$o&Q&TQjrUZ4h7Kf{|w^x>xtFV71qr_3%krfmsjj?ImXH}y3f z_XIvZTpuwV;m+pA)isuF(%PTbWwaq2SeSU~TI$9d&G3E~($XeJ)OMUj)o@s8IMewK zNgXbHtu5D}) zL-{AHNmpM_SGSYj;9zhBKW^0wee)R2iPE5yl2A^LzrUe+;b=$53H}UIgBr+dS4V!~@{Mqb~BCDr9SU)?t1o%Ue<>oi^NmM!D z)mWg`oiH%?>`2^9s#2>4nFyyPpGJE7oc7ZtX3JVtCbc640|T$_>sVveY>kJ`v!2fL zMF(h4Ad^NeGVonp&~K0%euVul7v zHh$j1^*{P~CZf{cF;hk%7W|h}+|p7G2%R1(qqkGiN&yrt(@=AETJ&(L5%w3KUMrkv_j)aJ?KyhC*jJdJ+y&SNz{d1ObjcGcdo{Fm2ZT9|Xu zSCyDOUws1Bbmg)cEyB4@Z)dT*_HoY#aX`drJV*FcE)RY=#lV>Q^UNc4Wb4$QW=&bvrCfKacgx97YnKnNQ{BI{-jW9!{j@wQhM#9hwx>k)==U zJqy8h43FSy#nnw$-suZL(ydH@q0o68;4QVohy$;J%7&AL>edd>(j}DZBrb(9_S}WL zDQfshJt-7Q5z>#q$D6q-eIzL- zr_(Q_ydqtu$ems%c1KS=FLMQTVCc{`PGm2@67{=D+?kC)L}w-^vZQpU4Jt08mi^pS>WYNGMOB`Q0nKwc5X&%i5Z=$Ic0|D zK<)5Dl(7DJsHd_(_JoCeiMDO?a-0#7OeR+-jiL3ge9H-oNP4AXjVMjJhIp*MlNPA{ zB5!APj56y4S0 z^Z(g9{|D9nf50TyDU~$&c9EhdX?D|!WxH`DpvxzSF`3(t{5rojv1bFJbC^(FOM2HPJO9j{mu5{W#v}Y)mVZR~7iH4!-{xHEjaU`!)nfoL6^DGRUKfVEf?&*s?_Tv>VD=|!Wuu{q3^K>N(P z72RF^l2^Grfo{}vb9RSDXpKibP+ef}Cl2NdG zbXh;LH(YPd;^!I<+*7Sa=xawr%~sXL}k>>G;0vx}bp!D@_epQlro zEf|0PvgLL-E)o57(pB4%XPfENcl=m}GmoEC#c2ThS;t=>Elv&|_OCQP9PbHqZ!A*$ zeL()%QE6>2R}w1rQwj)%v-6(o+7q8l1iCz{$zmf*&C}JI;BtxbTsq%pHO>uuMb+q3 z!t|w7cb;7&ulpzoR+*z*QnIe$_^ElIYoAGV0?$O5i6lY)?fWkT=Du6UN)7h5+6uw7 z{k?CgXHVpNkJLy4^lXl4c<)IF!FLhG5t6Q>JNGv%6?Vl69mGAY>gb#0lQSimQxQJl zw&;`3Y#ovpQp3F9Cf!j7?WtAZt3>1L?Bp)luw4A zNnk0lvcajN>g;lIm4`#b`FC{v2d6HpPhAc7{Rjk^-^x$_p3D4pEC1PkTZ6X8ER{m9 zWKpy3A<7n7dJrV4Enc{_5HZ<%o=V5LR;~YIN6%Y=%`3kJUH1HDOZ@{h?cWATfzk=( z7IVw_pIrhT%Q}sNe(diJXc`lGuVq(Y1LVG2E&}_N z*6$#mWtZQ)FiuAe>lE$Gcu_UFyex9+eyyxyQ9B-gE?*1$NrxDHBQAOR0}BGKJLV2z zZap2Vxwgi8p)wpli(VM0GUJ81@S*Ij6CDj4jaAhYgwJZhmh!;NUa>%7mCw#EDd?0f zgg~_t8xtH)7l2uK%>CKMW=-G7?oefyVs2h)utKRM_hp$^H@|+6n33;%(|ggIlKVk{ zN!!sm$7;aKa?MV1hN{-%U`xX(LwnlncZVA|ZwWrG)!fLJ>IeBQOXa(fyCjZpBjT=D zTQMZeRxk!1Xl(5{zX;?dF8Qh}QAP9sJ7{KNEME?q=?q%^a^yVn(Azt~Ig${jx!M1fwY)>r3D3o)TZ z#g<0b%`EK4Kj1t{`@_n*h4)@gaNPAkm7=M^;bC%Yt;~*GEG5kQ?_R_zHs)qHs%TX2 zrkq>bV)lj1v$gPi>mY~8vs0za{A*K4xGdYv27x*rIrSq;iL1+G3tQa+Rpi*N+=g;d zm`O6$%B83K41SWO{PrMA+-}FN3v@3vMOM`g%)U>p# z?4?NnDELD{z-JArMX2CrXz3MFI@%oX@FI@UiR2Wh*im+~w>M6l9~!O9zdpA9-qDQ` z$}dMAwBB^Q7j6Wf`LOn+zt`m25en6|`s2$KlQXPx({Z^Y`9<{!B9rH5a9xmdz z3bD=Xh>feR%8jD+sQB-Lk)W+_uhnx}0(Bvm#Ln_l#OO;aSsM7SC@ONBHwVj|$A~+* z{@ymwbN=wLUuuTtlC-XK-sRlZRj>X=R9w9!hw(hh0svvie`o$|?zzHEKJ}hV zTGOBJbFYAl_Z9FMc_wM6C~j_A70^wh>xqGCF*`5VG9@!k6sI%CJlk#lH@8iwLf*Ths;#ZzH^Tnbz&vi)>uYv zmL^p|Oro#QQ9C0@r##@7MR!%G>FM^Gh!eKkZ0*joRmKiH|FGokD&mO4#$1e_>9O^@ zc#6Ln-hwZ}*_N2_VCMEyv*cq?(^E%kC5z5qbU78Omba|Cm-XDfm_Q8FJKxR=Bh$eQ znb`_~lvK$0|H}I@!C+5hN_$Ux$pWaQg6ZKgch1%yRDi*FY7?2@{7z`zk&P#f> z6GNee8&$DVNmiT8YYeS8;HF3S_Of0|5MbmuuUC$?Gc2E>y_|;O$%^u`*q7P?`S89$ zG`mrO8#Vhthf)pIr#sBAO$J%s&BA%8cwxXa0vil+ZE%kbpfhyZ?Yd4uHR2&f{pR(m zP|fal+*@2))?EHtZ`QV5La9XfcGM28s3QhT==kk`mk6PoR;UctZ&F~yWHk{(ixC6u zX!LMO_J-I5@|B_{LbB*0Z(SbefZy8BDu0I?iq!8MVL zw5i7{93Ve2zGtPct`^<1_*gT0ptYVzik<5+=Z`HK-YPem|Lh3)rp~A940)01N1UH9 zRbH~vXEL);8k<;$uD*!3(l%`pS|iLJ*R833I4HDKQWq%i<>dq^x{^>iAMCy9r+&&-mu_6xr>N?^J_V>xPv(P`E;QunTQ$&qy5Vb-HUU9baUV?k zycs$O$GX*#1Y?N0y1?BVY;-5$YhAX`zWIqk%7dtX%3Jyv5}TVlS-sr zpielEDIfQfrPo3=->6w!hzmU|VVa~6l#Ta2SlAXN5n{2`RhwAlLnZYIMoo!vJu-VC zRa$cR;roqTb0~V>V<0ufuAAR}s-d$<=$8*N>EipTk2+;vV-8}w(H!NZ0lb>@8x+&s z$TX~JMpZ-}jO#Qpcaj>=Cz9U@VI zqJtCZRcf$Ay^az_HD2BuxD!ce0$J>eHHP{wRuwpdBJ~B6B@_;{E(c^LEx(h0Ur*daZkT^g;n$ zSieb{Wx%gXJI6ms24BX~;24$^Ttf)IQ+R$BWGOQ9^T=m|+)Hc9Q(AU?Z1g1hO6tq! z2ig8J^iYV?!M;(%g+-c|@$b<22ZbNXcir$`aGmApk@-n{nht3Q4!-_f!_mqe#TUW;rk`>0d% zCmiqhZ|DB>jBjBa*EeMRd)PR&p1||A8bUXjqL=>Ro2U>%z%frLwpg3q~%| zLVmpD&cbV#Wsnfr#raK?V4F?Wy_4H&hGR*c0#hAH@yq#s^zcpQnz6m1=)t($eRcN| z>un-8sAN0CxhkL|mgE!t$t(5b+#jE!X>$ox67|*^vf~B0<+X%13!c3km+3)co=k!V z`i$qt4UW1Ry2>zBOmr8bUxU}?9%K`bgQJHv*r_9mWyd)Z15YEGf$Ru5E9ZXQUE_*@HB{1TkF$R?m0dSGa-OXFcVSvqs5dpL}RRo)hv=4WT!~vCC zhShI#7eO$M#Em1{dS6UDgEL9}xh~_9z=83=z$8jx5pz=>IY2SAFC~AzDW~>8Pt+^_ z!M4+DYWD6kE27j@Lkd}NzHXxG!F_Bj4dB!J7^6Fn>wlOVovcpbeViazM_wcd1k?MW z&`689zLR0N)PCEvcyidWas=$Taow<5mrnC(b~j+x>sf!6LIftZjD{lqc=NPrw}Y*Ev%awSwmU>4O;GFEcgC2gjI&G5+9)%2!3Oq_}aE&G$TFCIFN7R#yF=|^Xr4mlcT<+W#C z{lD|MuXb+ZNeeN#6b^L=F#vi>S>)C{H+B)t+bN6;raQAJ01(01sqe^4yB`x)daFpO z)}o8Ca@u5~^TIcwD`>POCdY;;991d;Aq$GfWtIi@?xeJX{w&M0F5XI!uX^WOJpJ8I zZXe&`TrZ3g5MtP&7(lTjfvlvv$R5??j>2Xc7Uxqr4e{-IdV6om3kB=qEBoI1FZ6nD zE*-NshHB7XIIc*0Gp0?; zC9M+i9v1+FnL{3q%R8I&9av=*FhZ6!Vd8H>X{(R{sb*JycgLH@L!Y?OmpS%RPVjr8 zs*>PtrjXt&y1hfJXk^9PTVGq_2>K7CZ<&Ulq&4Km-VhtEW^jYq|h$$QbctiUS193dj0n87o~ zp&%5m{5kDTTL#w3c8#BO@S1JPtG5*hGKWFvlk2WAi?eK}q}pp%jB3D6u%3x&q8b!y zxgA~63fx+a@iUi9)tJ4iCq(9QAtDH04>#pDd-Z!Z(#Fan$b7hF`6w5wj%ruKhR%EZ z!>)kf($raq-5cNaP2!I!JoX2rfjM+~({i7|yZ{hdOn~$H)Xk{1)v(qb*0a1HJFmFC zC_dkJVeJ@E&mGI(M6Vt)NH@_I<7`=p?Rve`a!V^;(-5WR`@@C zw+TBhaiQzC1uL-KNk#pb`tvh7@xkVZlQiMs6K#vX>7-k|XT`X2^e;;@m-|;MA>ntE zbxPTpbB^#f_A~bh1Fi1%nwrS%edTY$@c1$MshzDGv}krZ2tZ=ojsVO{>MCI@DM9CoV632SW}Oiy>BM>ie5js^+EPkk7bA>9~%;9U&ic% z@~X98wdapdtvX=y_<`Ore4!2EEY+nQ|9sB^;`vKxn<^&C`nnk`grH&*9y@L7e>ZWY>egKEtfGdVnX#V>1Og0nWV817164%1Q)D#cmbNU zz{*PdPxv~r`%7wbK<#zDYTg<8PxWtIKKjYP0Yv`D3*=< zRO+q0Wa6C2Uz0_DzkWWQEw27nIYscN@`u23RtX;P*BcGL?y#OGGCY4TCcXLWVVHz;Gsk*B1SWH%HcL~rk-QXw6TZ&Cj^?rp>67sVg4OAQGftk)lYeo-^~$S z53?AW&w5VLBlOwKp(q!ETWHe}0akIXiW@XX4zd^pI~uPHk^jU}(BfUjh~}yJ>Yg9_ z6^t(kg=Fqyn8z|p6BwPaz<@M*he)Do#3z+oEWuBn^MmQeiBEsd%4ML`eVIhZ!!Lb$ z%iqL+ zpb{#f%M7qI(=UrGa@IgvtWIFxunTKItxkFZN_7h<{gp`yh&Tv9;Q$Bvm(nei8D+UI z+oF_dkpl67qHBvCX|=B}{`&1tdK;FY`-I6m24X~iL$TO2w~!*8xQUCoU6 zmx5|H8fVbvgWGYK0-Mw0eD)|_$HxIeO4lFeMa@&H)es`|k{d4J+IC4wuu*8JG-;eW zAr5XpxRqr+GM@a*N?4oZbAVYz3jRl036AGAF;qar@LffhxvH7x=aa7`^Hi)qNAYKd zZ+!%Mvah6$7-0~Rm6rjg7}IsdtFbH;4ODzx5JD2I?)+P}*@0&M^;4$HJPTPSf7;NPPJ90Df#2O;y2$866QSA$LxqM4!{qozG(86<9+BG1u%ce0ZJ zeggYO15!CAh31~_EtFKl_=f9=x~f~LBeFeSbQ6jHm09v%AlH9QKKcKtNmQERgZ4tO zrhe$-f16YD|E62Q?#Wg(cx~aHG#>3SU(xd>y%~9_5{I|WjR#Zk4*iTd^#iS*g5V__ zC6k~cOwH+|4JNPRe6oI5c^J9WQ4i_<=?;6G`sLP0`CM`cNAk4!c@ zOioTtH(F4!)pa+08O zsLpb~>vu#%cy4KUi^zF)Zh5!XdRkt4dV76ZM}JB-fPsO6((HzYh>3}bi;j?ujg5`C z#*ci4l-u={RXLTIn3tu&n6B%X!P}g))1A@hqHAEHgJ7d{MWdafrCVa9fxxDhmZ)7g zs^jyksHm)xf~>m5t)9cLS!J)bpRr()v9PeRZl1EA)v~g&vbDOiTYj^M3$uv7v&r7I zhd#BlsI}VYw!6N!bbhz#`MQHrx{{>3Txh$SZM?a;y>~mkd}h6mioLbWzLrE&d=lV(9qD)yw1{#h0@8l($dn>+UwJpsMFKa)UjvO z!`#%=)YR0~)z#M4onO|bkk-44*3jM8ZCBT%QrFeT*wxb5*xA~k3)YG%np#WZm4{-RA4wu`}O8R^W@e;NallX@cRrvEka& z;o#unTSwyJ;^Xl4lq(v1jJivgYUK=kN3Ao^j}^hUn?(>Bn&C z$g=6llIqf#>gww3>+9{ihwaKo?(XjH@9*#M@bCQp@YiYZ;q4@9F z`1tqu`TF^rt@)z5`Np&P;=1|eyZQO~`t;%Zq`3R}?EC)x{HCz{{QUg<{r$wK{o$?t z9wq+%{r~^}A^!_bMO0HmK~P09E-(WD0000X`2+Y@00{p8{|OvO zu%N+%2oow?$nYO6KzQ&FiS+6ftBV*jUfgs-&zTRFG_s2J?b|g`YCZ|06p7q7aIwT} zEBO-HCY7S3WD6(HkeFY~HtqU`4y8(Dk;2hjS`wVIE3mw6oB6F;8au0cbxG>9OQTh! zvg}gIl&P;1fn1hd%eJlCw{YXiolCc_-Me`6>fOt?uV0#xh~WA22M-`x4HGL~%($`R z$B-jSo=my2<;$2eYu?P6;KPVSFj^Fe@e>jsw9cI9Q!yh+aL?eJdI^pux>#s-Hua`7 z9Jf4+zHzIwNNve+qUMClrn{}vD$uKJ^;S$Qxo)JiY+H9o%QtUU_q6|W>n+oVV}H}D zU(de1`}gqU_YJp5Fk!=pJL})izrX+g00t=FfCMu1nM9G$G8$>Dn4*RXk(km3NFtF` z6c$u1b(>5}T|-G8dDKxyAKqAF2ppS$l1)js)gi|t&AioBB-jAM%r@wh^2IdY71IPX z*QBurJKt~@$9QXjqf8Ab6hV%0@{f|73k%cV1_B?m}Hj8-+>cV zw4g}8(4c}4J=lPP5MU^Xk%gjQv6el!fkPH@a{O}5GIb=y&NaSx;)NQgkOK}n%TRJh z9YZ?zRHL?KHxqSY$&*GTD;mk;TH#!i2n{V@sp_h%w(9DuOws=*7$98cXXdTA=Bn$i zy!Of%nszeC$}7J((F2??puoZ<8j-}O8^n-hTTIf>#806+i8CTi*?7av9YcZxjyK>S zhsBC)Idui5P3c%|j$dRWs!2kU=S?stpdu}-{PyebzW}?XC9U}RYVg4bC#>+ol%Yw{ znxxrzi)wvT_zgSX^3iQIn8J1jE6|WD&mDSvgWR^(+_KYfk$6LoFvOT7${XHTx~_5H zEYk%i;RsW2H@#$W3OdF>^%gm2r4{hfOgHVcl(KGFFvC<=ZS~byi|MeM!nW368!Gf+ z%9^i%BhDRO+!4kpN|7^8EM9n_M?0{^?P8(6p^f$$Ga>)yMIDQ>o8+ZX5?w_aRoFoc zIo@1T3Upmmg05T6p!M|Sm}jmzUG+)bW!9jFF8b)CD+VmYU1Ma5#k8Sw4KMqK6HaZj zheHlMxJVPcVWQ$4j6DCrClPY;S4<%%BE0$U)OVL?XdDpa{=b!M5zHgeXj*3ctZW z?sf2mFpS{<9mb0q+VF-r%pne|wZb0y@P{S5p#T45NW>z-a2`lZq7s+L#3nlNiBOE9 z6z4HM5snauSj?gpGuJ{48u5!@4B!;UNX9anQHf|0jTOsB!Y#V-jc{a@5N#F4I@*zR zXUwA>_ejMLP9%g30tFxNFi1U&0)cT%q#_r|o-PjYj*yHb)%ZxsNLn(6-cECt9 zh!w)HK?@GqPk>tVqS#ZXK{v`#$RzZmOynkMyk-j1d|-8<#HdPFdO2!#^rbLW2uNp& z#Cfif6`xQ-3d+gSp8B*^8jYz?hbj=7&QzHUG6f;@fQe72p#(+1<(+;?)vBt>r9{mt zM~wBwKO+hD|JHM{7sT z!jpzNOs#5p!9&ox_OO;Et!#^ET5bOVwzFk@t#0iq+S&RxhPBOR8bOKMXYTg6XN~P| zm#e|xBGX~AWY8zpfCW8}^&+A~u69@2TjqLKfX+SUV@0CL60D#ENAMbUx69t1D)+na z{a$!q$yo+H0#%@31t>V-+4lO^oZXGDfJ--DSKd}5ugFA4XkotpI{2UO9k7I%J6=#u z>;rPZfewr?EaN`-!_W-ygh%Y#`hFD&B~U>Wq!5B4P&Bt7j`1!dOyU|}_P`mrg%WDX zid!TBLS)UZjE9^^5!?94e68?BZqbI-^jHm^^e~a9oJblY`N~8!u}Gl&NhUivrBn{{ z8;y+RGRG9h#9c-Sd@zdpwjlo$9bT`P=d495oB7TLRq{nbp$Sf^fSh2av!HuOW;`3( zom$q&>TUrDNH9pqgO2nB?R@A;7Zc4HQ7>sAE$L3*uh5nb^(yteMoxSB)YhZ4s8@Z* zM0eKIsE+m1K+Wn}hY_`_&9x0%E9+isPSv&!whS?SQ&{`@*!`llu$TS9;l{bRaz?ha znFefTTYH8Jjjl!>F~~vUK@a`C5;~9}Icb3d8J>WHA12onWEA3G=YF?ez~Q@F;Nlkc z#zltef{kQU0vK*tha=qJhDsm_9Ofv48{)8(bw~mhd(nm+*zFc<=z=W{Z;4&JfsNud zrA9QV1|eeB7kcCS-ueIDw_YrcaY<+#eZTk$^V(94fun)sMRG(Ih`@*YJo4H=hoPQ* z%*joj^x4LqQc=jTFK}2x72ir2*%S-?4Ys|vJ<+4sV!zL(|iNOB801fTgLl_CvgNJHb>f{j&ZVqG)=$1M_JpMeJb^&NDzVAUiH z8u%dGRw@e3$^sJ(EhU2L(ftY8B7CL*-!Ez@8p+=W7i|csX4inl`Y?WoJ#51`)M)}u z$Ppw^F<<cf9|M_|AOW#RVPNA&WPRA(oP8V=H8tKJrVV{E~dXF5n0iRS??lEqU@F8-b3rfKai4Y^> z#tGR_6k-qzc_0V0KofkD8)R{Alt2k{0DRYgf+&It_lFL?03vD-3g18v!5}GcKnZFP z72u!^ACiJY0fa(Gghq%AF*t)AVuPE2gU0gRIm&A zXB|sH51Rkr251loT!#*}aCQY(f{!SAZXgLmat@y&J5Mnd@vw=xp&^=Zc5x65^x$&F zv5GH86o@z$;J}46;e}v`KKe%!jtGg8Xd9KNaFT-#nRo@8I3#p82c7pF$$*Av0CBa5 zdP|{zgW-A(SdITfYNde$J4Ia4)*eOS1&JUGvA`(b@C<4YGxRVsB`6BuD2_?6I7AT> z`&JE)kS85t6f5zHWkC&L@Ceo53x7Zq!mtd6@FKzhap!gu;wS~gfDQv$kdJVXB|(q& z7>D@C68uLLiI4;#zygb~h3!`o!oZO%00srvaEX@1mh5tXP$G>! zw@%g=nx!LqnYIZlPz1ODF-fNv=?E?0Pz~S$8)~qG>R1%e;tf5q2er|H>C+UtS9P!< z8?qxiZQ%{EAP3PhIoXhoQxHMpk`3ZA9E-pX;m{4DKnBp6dcWBevB5UO=^Vcx1vLMF z0zPnyv-p-Jkqy59l_)R-AITO$f{aY@B;>#j^gs%BStM>p6K^;1-;1D#1*>KgDdhEv|>+>XPNiI#{BiRrnd%&NJ zhjZ@-3$jxUUGNRY5HHpsIm?g*%kTA^xjp5pfn>dBt&IeczWn0~jRP0^v>@SzEs z9U_X9UBEUP8VA#m4cKr9^7##%8I240bE4U$p+jsK!DN5Njoru|=|~3Tf*fxU4%E;F zW08(;u$-c>2GEHdWWXZw$Q1T4r|5DaC&?7-a5if22(J)9*7*iZ;UOR*B7Ohx5^$=L zOR=YP$|8C4r%NFZG;jiAz-xYqo=NJX-LMHXZ~=a1${p<8*2 zC1I;*KnSWJ32mSSRX44I^9`O!jb3`NSc8oag(|r4Y-PG0OXsTB=?&&cn`;`eKPU=Z zfTzBfdNWgX7a|wpQVo<)2X`>3;P9ww0Vsk(D3MSbD*JmMOR0Ktew+Uw10}!$pu(Yf zXNZr$Vt-bE<a++sp#@75G1nfU=Po5 z21l8(ajF*A0xD)RA}$fLEXb!NA-wEb7PbQpzu*QX(4O_fqjCS}2IJ|T*L#?y@FT{d zmbSwktqQqrNTP8l2#kxRV|Sn}K@RWNGVI$vf#`|INTA(-qai?{-Qup`0Iy4ty@W#) z{%0GdUQm z4bUA_ubk9f(WFhTNnyu?!(F z1D3jowS3FDY%;t23%y*;z#Ni(xfR=h4Ysfgnr$A(Ifx8(R$<2aX~I*YtE^M$V}l4Z3j76 z>xqbi2Hmj~@o)&zaf|fO3(#SGbms<$)5_oRt6fk9gpjO6VGPj$%1GIMkBrV`Q4EpS z1cnoKKeB#^qpOiyB1)Zh*H;ztN^;l{d4so<(Q$K_ycOuz1S^?H$)5fP@fiU0n-N!TO4fw6! z0Ui$i{nOom%jPF8xWfzqZg(S(Yj%9&vMxl>Fwd? zj}GaPPDZ5p3aMKJ3;SkAtm&wpS90#dogU(!E>8;;&|4N|rjY`PF3_o->w3ZIt$t*$ z4(kv&SR&y~D_{hppbWOB=(@h_S+eS&+3S|}>r-^vP{{#eMW(CG?AmS@ybkRoChbxL zrlvUrWFQA6VC<*9?dmQt&hG8C2JTU$XRmMu7qDb)Z~;b~?d!hpCUoX=?(T*L?+O)5 zdHxEZppE&(3UII*qY!BP{_srU=m0Na0{=wBb_-91n)j6g36JX#&+pwn@d8%yP9*QY zz>y^|z?e*gD?ANYbl_=I2hhCler;0ubs_>AB9 zj{o?OANi6$`IKMzmVfz}pZSk}4Q*c+Q4jY%-{wx=Q|K@brhodVpZco5`mEpjuK)V5 zAN#To`^umV@o@XNpZmJM`@G-#zW@8cAN;~U{KQ}U#;^Oza1DO(_Mjj0cn)nIZ&9T` z`_y0k)_?uj|N6Br56A!C{oeom;2-|t|NF_``H1E3tls?Ue-O|$^tV7=bD;C2U;Wk~ z1vP*JMS%L75KcpI4FEAt;6Q=}4IUh*O$aN54IMs&C{UR;dGRb>#F$azMvU5$apdRd zQALg=G49)B>zqktj>{zm8&7MV@R_$80ZQZ_w8&~dJx^?Z|#hX{}-np~@ z;lV>B(ksHO3?D`;3`vO^Ay`B*g_u<|tCcNZ#++I6=Be^LE#e%SD!PaTg>8c2gJ88s zXH>u{jnJ10YzF^*pvDlTN8r2>01N>YmLd7krD^;aTnl48UdqcO)EeG9I~i;C%jJ0CY91r6uU0Wzj|%n_2KYMiO=x8t@54#_T@yGfiC z`1s8k6g~+qm@li5=cyE>!b&Ty0P(6pH{XOaPC4hKvraqzc`&fSCZzDNTa-v46jMM! zB2dXbJTw1M5Wx}0k7Yc`!;fsf@hlHDK$%n?O7ge^4oc)8<{NGjY33Vrkl|#~btoAH z8B0U)1{ptGRRb1pDqGPSIbe{1h1|4BVg(iSSPco)3i3pSf^?NZ1|eV*sG41!?PDBe zc7P!S9Cq+wMs9l8VIhK+2^NPb2HIqZU27nAH)W#uBqC+F31*XL>VQL-;>7W!jyxVY zM;%X;d~V>4kR%SvkQ{Ntri;!ohNd#aJEs>%(kSC4o771|jEj(R=3+OJAxR!_qQvMp zLP|Pk6QL|Bri@?CsmPfn^d(Y-YOqwtSbl&L^Aj@7Jd;2F)@<`mrI%*9X{Vot+O9kW zBaHvgK5r=$6juIJp$}86MpRL;H}fWzJm5$~nN4=7#t=DvL8gv9z!^uFxWy3WlWo3v zMvYME5#^0+!WqYqJmgqrlS0rDr4GDBkz!J-NNe!~G9FRmh;g`~fd$M<&|IJvUnIzy z7_S+~8aPn6JPBXNsU`{5ACW@yQCGL(5k8{D{L6tj_goFo$FT;H5QKOn2@P;8Z5bI# zV1bN>eBq{XIeZZXj$h&t#}GA^xi^vOJ-$esI?~f9X6qhSMiW7jyU3X|RB2xl_tZYb z4OKRYNq&bhaz+&-(ULL{3`zuh&LOCz5pAe}1|<-JHHHEt=O_aS+PV)?dKMpyoWuV$ zWJ*fV_)(_(oGDHJVN=vpxIz}T(1kAy(9|T#Epn|1{MsY8b}}=K{BDN-<4nt#N&n^+33cB$YUVLSe`-J_{MQ$LXP90 zqd;84kU;)XAgH_KKrlIuO>#pGFn}PAHfgQuso^NpI3GV^p@yBEW0mrFr8tyfjc33C zOAi~)EiJ;2@F1laSs03Y9#$j(q9-HAF_Jv^aR@9}#AMYu<{{SblX$c&2^jyB;E%54 zoN6q?fe`$}2-QIYAB?brj$EHf(0RWSj>u?g0uT)4IZt}l)1FM5+MZ~5m`B(E1w4Sk z3UD|fAP&)>ma#_@Llu>Ah(ZmUfaof>7!H1%NGjx@MjLh!jxH|o8lsrP6{EtqH|(v7 z`}t3*{en^t09Ur2&0L*gjvFj zBTWEeOcTjC5;5bKhELFpC~0tmCN$xQLl{XZ&`jAOnsbq0gg^ztXwv_WWTp{$RAUo1 z(7?{bK~8gGWSu5)#`CrSLZX@QXz{#fYE`>h*0we-`K;PL3G<042w@6pP(dU{ftVm3 z)VD=M!x98qsCYw*Tnt<|zBo6jFm4UmAV)XVLe~ z|FZ~q0xMWeh$kM;L|}*&*pY88VI;oXW(PNM;2Mlp9_p|`IpzPeP7q&28=9~I3#?I* z(z>%h@Jyj=wY+66cX^&Nw3=)QLyKP^0R*fds9}2RTZ1N440{`C;IhGvaMU>};i!gk znfncPPy-HIESw&);f-q;g1T{jgEvZqM(&Pg9F$0;9yKr!*Ay}d$J*o`YedKy!Sn=I zEeIl+ClI588WA@Y2pp89IuM|ab7SbVKw=GGDPUGy%Nhvv9?ZQu2!pJ0Ad`FCLsm+t zp>Mq|NiH{XoHcMnJJvaeUY{cfEKoDV@3VIN5K9!rc6i7kC^86RwmqDD6M4c6F%mfV zFrZc=vKx^{FixN^5-RG1Nb_>O^}TO?!wI%w?$avtfQkQ4$PNs&I24-|{tY)ngS&kW z116+fjZj1d9P%&(A0)>p<#vM_UU&mIrYllYiDC`kpr}RHIL;Q#NE?tChd4@5gmEl` z26=>}3P3H8HmU}7cjT`%65(ocGT0IWkvSL?Nk~%9yyiETB!8h=8man12j_x_GQ0{_ zUfU#m6%mIms-a3Rh(R2p2*WR$Y^6td#3Ll(n2jxBj+pR6eIzNxWVIf` z%#ofW3qlO%pk}nQAPj4hq=7p4L`5iAoM7N!4Z-f1=qQhxzzAbVgAD|s5ZtzpiL7xWv6Ao- z^sxwESb;}~L6ZoYp{TMExi{2Wy(2`zBuqUp+o!`YghG7u7<`TIy#G?N+th06?qSe?r;`xR7+Kp0&?XIUF5|Ddk8@UM6Kh* zVI;<4G{$2rL}$Sbj8))+ zOOT95z=Ap0Ee~-{3q?{3JqKq<2bDXoY@AgDSO9J*@?} zLWX{@1uIPkE#%TgWz>!)@KQ=O)??i= zLFffiNC#`+hk4c3 zV#wJgwOLmn33TlTO+Z?MC0e6JT1f~`hb7yx4c20v*tGppkY(Gpb=$YSSW8`28fXCt z!5S6FDj#^(9BSEWh1tK|rGMpzR>*~3XoXf#hJF}Si*VJMF$7nbnOJCrkJ#CnIfuvH z9&P~F8`~vA=!Zr?JdEH6L#Tx+H5pkY!Fg4M(Uk?ueO#VURI`=c+5Jz5RomOmQMlFJ z-R0eoWl;aB0k}uFxe39V4|s$hD1saEp;0YWz;)hiH3wDw1%4pfWoU)PjoN-#g?I=C zL;coTAi;iMRZ<{@RfPxc=?7cwpj?oJY$L(z6_P?#g=*^FMBoSUCExOu1#|FK+V$W6 z#YMEm-2pz%-ZkI@?pTp!1!g4-lg+JL7=<>t03-EV=Y831O@?6L*%G_iapev@m4%PU zR!JaQRj7t+ZG}=Og>oQ;au^D3_}NWNU0IM)J;hp!C{#kIh+WNAR$bv17KRT6;2|dB zN3GF-B;X{TN(5%&CiYzj;nBpnxyWFJXU&i@O93M_RSSmM!8M1(t=H}qhMk26Ysl6c zMpyq?NQDp%vFlZ)4UGrQb%fuDS{l}f(JfuD``NMcgnmebY(0csa*r!5;zBlLB0Q}~ zRpLb^NGEpW-c?p8OavQffghy>TcF!f=+qw~RXFA1myOy%?c>93g?9+sb9jcNCBZ_y z-l2fNq+L>XctoO=gp8mddp-^aim>zMw zL=Eb#KIVlk>aRvUq!#OpRp1BZEl-AOYvl)@HV1M`>yj{Lu9j;69%`_*>(d+SyslV@ zHtVzY1rG)6z!vPmChWpC?88Rv#8&LXRtFD-#Knf}$d>HFZm?#^$jip;%+~D9=IqY) z?9T@6&29#-zU$KFGQH00tL)0vW^G=O25ayHPY8zCo^9Et?c28P+^+52#%=%J*6rQ~ z?%x(}-zM(hF7DhOZsS(&89@Lw(jf3?(Ej?>)wQ{_yZd??eIQr z)D~-H?d!8vhBwC0^=9w(cJKFw@Ay`4VH=_9tZ(|Z&ifv={N``_?r;3|Z|i*P0VnVR z_mO1qZtxcG1!pbtF7MxU(DU}|4CUMm)zAySF$}lx4Cn9-_izmd@eU914;S$gM>hd? zCJS#w0cY{*%;!aixv z3eNE+uTXv%823F!ai9daf^x=#PIZt19W+KuRE9*@N1UO@peT-<*opt1kn)RA2BWZQ z3O$EZ{NN^jQlQN4vlvQ$$687!qKNe9+^i|6@r-Z=9QcJtPq+MwJ)H?!B+&FWR}c1Z5Ax7J^ngZZSOKAV zm{M3b3jMWXTn1%;98`~o9mj+3)^k1=_7(DTh?ZMS)l@#AEiyQR2|jctPxMc|bz`h0 zx8_i<5(Ag6YHZi`cvJ=$AcIZEh@e6Bu~WC5xd@v(^`={pzH|TpIPy-oY`XTu>v&on83Htxx zhm7C&^_g~}DEY(LmpmW>KH&Er|M%Hnnt+F91twX-Pnrw`uHwgXYKbdue_nV);90eo^oO zD=-Oe$oa4`1e@p{N>GN1A9-Jhg)>0+cqqQ}Pk)vHh%+p##al*$Of_U7P*{;u0!uY{ znHX-OQG$%TWj*91QggA|vQ2PGSP_$`TD)K-gd~E4;!(tS{FJaj8Bg0Lhe9}3tESF| z3NaOZ@N>5EOo=E-YQ|HCgoQkL@up5K)}<%atW?!)Qu8vZJY}1ZsF1Vi6H1jVT|VMQ zmQn~7UO!3IYBwuCQC{TuiWTNpJaL97DT`I-(bWHEbvF4DrAAoYSZeT!g5wLBC^;yf z$svO0&mTO1X#Fc~`ZVg)s#mja?fNzB*s^ESu5J4^?%cX}^X~2Ycjn{5A>esVx@BY0^#}UQdK^%|T z9XWO5aWkY@9)9+zBZ?I<-FH}2)Px~SHP0*v)_%{x0ohdQ_$SqXV&tU;N`h&)pH}Bc z7LkMu#sbGLK4oT8JPule(uN%x@}XT)A)*3722CN4N*M8TV>Q}5CC@oM8YmAx0@W3a z29Qa`&r=aO1=W*LW~F09)$o(a36Pz`WkUZbd=gBTl$;vf}?@c}5~Sy!Gi@ELn7 zvdIpb**QpNMo^`X>_?w~Gd`IaRU+0w3Adiqw;@3xO2{I9YH&-5f09;c$Vuu|D$F@6 zN*YnTYJ}V3gx893PE+i%7-AbtsdG>@!H5}ECQV`~k2odZf#fDhtgu2{HW^IURDI&$ zgcMT1fM-)yZbics5h2+I3LQI<#7qC;pdbt~U6R?;PiksaOc@leXVfRnPDSTHR4GHl z#vOm`mJff@@h2Y!wx_PMa?G2leAKQhMr8Icy*Asg z!TL7baXSZ{bhYw|ovwF#cZLd)m?CU>=P5fl;f1HCZd1>m^Db2k*Edyv`o*{JRPw}< z$GMbjBFxkwDq0tQnNuQ+g<@2gnV?&-Yqg~OTFxO=&zxZsqo+%L7e8&_c#c5`#VIY1 zV)j`w!z*B<(h`p>Bl5*{4b6ibPRJnz)=$#(uR&ITx|F9OtqEsS7d#WW;pNIHb%@@S<}7sgYM{ zkNdJkiYD=~p*``1ACRUrro|)^5v5{$4s(ux$|Iospa#2~^%#Emg+fJKkT%Y#nWm`I zL$xFuFVm{lwX*-Ut!@pK2x(=jTPY(1cC~8@Lh%VC+%*Iz=))+e2}5iWwy>0egCV@& zg+wfnag7_07w%AplSqYOdRgo__#qg@dcmB?NURqY6fSkdLa|ySEobw97}RhuZZ_ zH&Me~OR%Fq*_8u+jY*MU5CVrm%m#KX0aRS}2}GJt9ybMERvbB~GxRks?^{L^yz2v$ zXal?Foq}7epbi+&K^!o6SRhgGuw@}uv5Z9$ZEcGZAL>Q2l&w%{7t0S-a+X60J!=Ku zD&i57xWxY^-e6owIG(?a;%|4ejwz;jooX7k#@7tsGQ`;)b>vu3KHJJN7Dz;GXk&?) z3XwX9%p!gy`N!>fQq3cso$jAZ!Fby1;R5_}-!0lH_;XwJ$xejI2o7cw4&9$=g4=pKIL*vUzLXSR6k zza#ItDM7xH1SxppO>?@_p8j-h;yO$hif67V91pQRzjUHLPotmEfU;ihquW zk=2uH!#YC;IS+VcJjcHFd$`(8Y;*hA zH+BC~w}BmOZjT$=n-YztpRMk7v%B4DOYy0xE$_e)x!(4^H@@?&?|t*T-~RqLzymJu zffKyo20u8ylZ^0zn?oD>a5%&tF7b#{eBu^|c*6m{k7ZoE;}!q7$2-0ZeFwVaCOp_o2D#9-Iv6H>*W@3Rif) z{N_JD_Q9WgQlRG>?tef0<1hdD(|`WiSVZVcumAn?zteHO4(g>Is#)8cA({cc4+2(} z0v_N3CLjYopaVu=15O|WQs4s4npUid24>(?I724v!}Nuq2#z2LmY@lmLo1-43U;6R zK_4m90zRyu44PjH9v>+PO8w=a4(_1)MM9?8QvU^^5DuYQiJFR8$0{h3czplD8eoAQ z1Xi`hP`FK@jd`F6ULh8mgA^nJ780K=sDdVZp)GWw@tK1Y*n&C80`{fD52(UB%%J&| zLoSFP`N5$bYM&g!gE1_D@!jBE@E{-tqWj?=x&a{(9wH(p;@X_vtyF|v?TU3^R|!xI z3+w?cutEya7!__JVL3x8kRd2epE=L~7c`$S;J_F*pE)3bcU4z15Z@}6q6r2JJfPqj zqQER@A3huc3%sEn)}Zs1Lml4X_U&RX(qQ20Y1)T9l!xl65l>}f-QK$QQ~9r^#UKl!#g7NKx5~x7&nL`rDKnSeB5B$I*z+xF}WfZ{T z541rIECFIJBk_^K3A|z&vLO<*;Tz(ER?+|p$iNSL!9eyxT-N`99n^z6l)+%~z#+gu z6VyT{&|y8K!)J!(XqM(_HbD%Qf)JDe4S;4nSSAc$re<SzrXH?sRqBNsID;s(Cpr7!Y4EtVD;RfKF0n72u^(W+)9nk0d~*4d8$n zI06j}!9ExR4G2LSgn$t2BUL^HEVhDWmH`TcCiayB8ZiF>3ZQ`_NWvTTLJ0hTBpgDK zy2CS-LI|h;l>%e)ye z3HZ$bzT|j*>U+#&EVKdg$qrJ=#JsJZ3H0 zz=PJJEa1aC_-QU?UqK$^aEc}qsH;0H>$?hpJM8~yI;=n$1nTpRA6dNNyRv|l$}0_g zfu7m{K6HWxAhIlyN= z7ARy&D?HevPL{$;Z8?0EwS#y8Kg|dAc3~t zBbg*awc9Oh;j{6HBzQ{VpW zyb>(K;={x4X5AvB)2c$hD&(^=s~@snb8`PIG&brqhM35XF6qV`cH)h9s*qO{fwZ~g z%f7C9xZ^$;h)arl~a18YnEA_&n(o(G1s!TH66t|)P+j?vB!eTDGVL6n5kz$`aJY@Fi zDGuaq8Mpx&yz3G)?!4YB9n!!L*sl}hFB3FD;|?r7w805fCL6e`{AS<0Hi6U5!o*VL zvNq;^yiezP?lXEUNR}=Lhj6n|>PenZb(n%2tbh^VLIA2G?7nbTcw(`}0vo*I%@VE7 zih>l(Do}1w^7&^{Hs3xV?S0nhK8*k9GESrh{3;Dh<%n{@KBNH)xF_{0ulFuNt=1*9 zmf`nOB@r86y>jbg+9MS+D+<1$J)SG};X@i6Bn0PZ!w%=-2CSa?uM4`uverW!|LeR0 zE)Cd$I~c4Sx9e~w@B-^%C!7G^yaVQrq7!dera&48KO^W$r|60>CTFsVkt{0|(=jDe z3vEIO3;}2W0wh$Mr^4_Hd!RFz168u;E7~Mb>J!htXC0`*J}3qkDuycHYEl+$h$3Gn zlmKHA-$c0Tj`FI42CF&PK(LbS3D|y0L{IZUkzr~*C$ zYpohXgu-H~-qiWFGgbO3JXHT5`^qgs7OV!i;TlsZY)XP8%q zLO1VoKQn>f{&C~7aS707FOU7%04UH`U!}lyzEI1mGVF?KZAn%y$7gLJ7Vo}i7~DZ^CFN3r)*S>h5GP+J zWPl%(p?Q_S4j?G>@>Q0m;wpMq4G?n?+f@xv?=<_Bd+w-Rp@2V*VqbZyh|<7#C2=pX zwOs|PF|0uOy0ac8YZ@v+ef46WTJlyo3g^2e?;YqvHok?@MC(01C& zG@Y6z;&e`v0#%xWIb?AyLgnu6LvJ6SaJzB|ngdkY<0Bw9aoYk^?)Gyt-#$1u2$G<4 zL!UmnCERA8-Rd#+b+>5tGsKeXZhki-hu=Q5YnRr-^|^z1H|+HlV;kdxliF>=dN%|I zK@7y;#IEABVsOZS3~C4BNnf&SA2@=)n>LP`0AeEQxiD_O?o3MG&c@^NS+Rv;~Aw+Vw`Z)s(6tnV;-wYP4x`H?N;R9fkDf_y@5l=BQ0?~oR#DMdlYJYHo z|2UAN%IP+^3*G;AguAR2M&EnBXoe#n88p#Qm|3pb+sxuFX>r0XuDM>?e^dZ8=2qX&AU4?3qmx}|@*qf5G` z3%YQpgY~%ss;9cDuR5!@da8pTrxQ9=N_ufKwyWPduIIWtzchWkbY&JjipfH-N*&k^{t>Jj$oM%C9`j zqdfe9gUQQZ%g4OQll;uzJUPI8%FBGryPwO)AI_^h{jI#uzn?dJ!_g-_(l5QzH$BrY zJvp!gI-I=AZ|u>3L)5c_)KWN-Us5{m;Kda{oWI}qoTdq7rv*pJ>s*95yo2*E)ym`!WKB;%2HF{ zSH9(6KIUitzUFT}$e+F8e?GG%zUYV0g14?Ch5#hK0$fZ?mi9qPMg!-^zUoAlsQzxt2Z^;`dtYrn3{_9r+5>!#!R-#`B6zy8m@ z^shfa{1Z5kU_pZi5hhf)kYPiI4uE79c!$h|qe) zie*b-G+L-+`7%TZBcocjjP{LZPoF=51{FG#Xi=j_ktS8Tlxb6^PoYMYI+bcwt5qWr z!2{_3&sJI%!G;w(mTXzGXVIoryOwRjk#FI~m8-GjNg|P6t<3p|#*DlzAw7~(q6ka9 ztae^iyqIxg$B!XLmOPpA(r}Bka`oDlb7#+=L5CJSn)JZAr%|USX%Z#gzb^Z}UP9Zp=CcW>Xnfd>~poNCssT>*V9y_|V-=g*->U#OaTb&z#Y%FM~?8Hx zf!6lj#L=f$zn*=2_unpOMy_0Xef#(E=huJGdVl|`?Q*T9TL4MKh8Fm^#1t{!2n7^5 zVA>9`_b9B;!V59X5Gdm`OK!gpK@3sE5y|?`MAfjnD=)p2sma9_KvBcR5Lk%B6!SFy z%u&Z3dF-*O_>S9*#36|+(#Q`_OmeOiwcGB-QB3&`ltKQ$O~MI%%u>rOxzv%v`Hl=z z%rVLAOvy9fN>RWoTUwD#md@)^&N=CjQqW5|ViG(=4~^5&IlE~F8&SI%)znf&CDl|_Q^f|=Q&)8rn{60- zl~q_sgg0JTHD1_9*W_j+}XV9R1R!u`WeRHR4;z?TRrI~Kp>8GKNTI#8(uG;FWv98*f zbl~aQYk2ngT5Pbz4*P4fy+%77XR@xk7<1B&`|PsmKD(H6+Me2+V#X$W?!V>!dTn{~ zR{G}mkd5@`#TjoLte`PXvCX18{YDPwCnx@6^#FIq$nR*!~wl~I@+tDX|?Wom};t|Z1c1DQpp=KQ(bACuBebQI9e(&_D zkb)Ep0d1;?K?+)6wqBS+9?pmY{i@~+DF{Ir;Gj_Ab~Zc>Zm@C16V%XNvk4m1#4kB{ z#U?_af=J*bC()4J^dU8`ckQ@G!;-5^**p8gU4}4V^kbzw7${Bc1q*AiK?z*~0~)BH52FD8j|-nDLrG4udh&Qi z7_0%oIj-P+@i3ne`?ilZsK9jVgW4PMP>mZ#F_To}-zbd;yXyUKe=$g+*z8b&HNGu; zh+u&xqZSMlyiXo^L>y*WAmDy1mL)tSQ_N%%qjy0#C5DwLrPJsmym3AQrmlb4g%bQ*J7~7nSPCoX8alhMJ@FsU@NqIDC#5Qfy$fdm#T(} zVzUS~V=&gSknP%Cc>r2-AVCFz9c&vk%8yNmK@PR0?Ju-pTiYfAm`O8-G3)?=7Knig z5O@SU-eKIXeE|e(ghvxhP{cTVV3!PxhdONF1C2UOsr)D=@7#kyK2DXqZuA2q`SnmWCwmgA^xN;wfoB2c#w~ivR6w6^&7X(0c6*q)ZzV4lGv$FTos> zm8=?^7FQU+Kn6Rm!8shfV(-Zt??2*Tv0fx5`IzSv(xNX=@o-b!_Jj# zp%1MB1xuC-HC99H@;2h7nWGnWXl~b1-~;6UDiMe%V-kS!Dra=-k+CC}tKngn;xjd9H@{*T)3B8R6?Q&_xdJOO!$qg-Yom*wG5ki+k z&0ReB!R2KqO&gl1BecQmo~K%y=}qTgdb8b^@BG3ELJ&d^6e@%<7z&a@Klj%+x91zC z8^A*MWIAjx1hFYt88m1$4IF&}{rOe@(k@P0hbNus9B=x*p6>ESPs`V{VYq9TUON(o zpzkf*ILC(GK@v#b1Ae3&@++U8(`ao6>f+i5`*`wkf&J?y1Y2yg=s7$Vi0thCox3Pl zYCLv#%rcMH>9w~#&)Ccg0vQNFm&i?C#Pb2)o9E78H@@n~-d}dRoN4FqCH+uG3c*`( z4I5u{qYE1X%HH*+T_c5r#U|MhaKVZc-Fqtgeu7q>c&JzuTZAVZQt7V&Y>?e}+utq) zSU3NP1CGZy`Jo#8uW4Ye*lM0I^F|%c=?=W$2F0My_)BVxs*}t| zlw8Ew*p3Mnuip*<1x6?Yguv90peAnVevse)6gA6W*z6l!~d6 zjy2~}L;B3bn_A0dWjup|b;cRHx><5(i$BU?kmdufK zdLeh5K?j&G$B>`|bl?;0;ewDUPn2;V`Efr^kaFy7o1}3dCFyeNDi&=gh_;aiR=}j# zXcd_Tm8_7&)Gr>(aUI7-mZ%38F|u#83~SEe9F~E%qOCoat{+h{C7pv20rCYaksx8x zdWs<(II1RX@+NUICw1~Bd%+pBAtZnDC(q$0)nOBafggf0Bu6qR_u(Ai!70t?9A?rS z@WCdlk}9n-E2$E6a57{3rx^Ajbj0$0!jde*vMk3kbkOoFY0bLYhJH$NJq}SN>9Q_C zLt3yUFZGfaq(OTB)-WFaGB5#iFa@(P3G*-wGcgf!F%`2h8S^n6GcqA_G9$AXav>FR z;W9H5Gc}VlJ##ZbQ!_hrG%*u1Nud}{GhhNHH5*1XQS&uVlN4mZ6>5PtZPOKGAvbk% zH+i!+ce52p^D>hrFs*?e)`1?d!8nmqIg|4^n{zpja~)8x7pSv3t@ApuGdry_9nN7L zoRc}h^Ew2G(A4FNd5Fr2jT=ph=f++gl6Of_Mk-J z1RANdQCIYQ(r2~EuWN!~3!Tu2iU9{s@xqb_Ki{-WXY?Ir!43`xA7u0$?BEL^Ko#^e zM=6Z{zy=+cMjqH=z{AhrH z%(2q{HWeNui~iEV6-*UWZFKaqwLfQJRrRwLbdT+WfN}vX6KnN1`1@ARqm9}Y6rx;ei2{geC>eL);Kn3K$5uSA) z_CXV{mIoed6eSBueIBb~iM-!5u1fZ4>(nhX^$`yhu2JD~-Ab=46 z_H%Dzl)2vY9k?}Azm-+%!Br{Dp%m2lLVyp}FkNvLIM|hEDYqY4@@HcrFO)$CmOuz- zKm+KN5>a$%k=3qHU{gCR{=O{!+71hxt7{}{3D$_gV7KGIro$)!1z z75LL*Mb&TL;R`;%a6=YlKNVFe;7#K+Y*JB{N}&cGfv)5MawGRQbhdK6HyPKHFZ^O9 z=Icg;;XtBvQInQ*Nf&j}Ap~l`2|}x|P=MYVE3^!5Y{E9AiXj9@P72-@T30Is>eOox zZtZBGPJ#CW`tt*Zpl=C*KLHnH2X{sbw^el%Z0L4xhEpEKDSNeddn;pdzqf?{OVDSv z?KMoHy*}VZbc0dZw|&pY9Hd}`&Xx)4m)@LUb|*`J6WA%?;jVfhpPaxA@V5!YmUq`K z?M}xPF8Cb=$Q{0wZ;zLOLH1-jGCxx^>GKYZ(@aw!28Q5M*)-6*nZ~WC&TqVFusq9mJRg&#%O$-bzPvgF zH3<<(Ud3<)O5g~L6^7Xy$wxfTkzi5{mYZwU^rfU<)q^2DV^-;1Sk#T16@f_*DiR${EUF$94dJr9cjl00tZuZ2nCRV4wz? zRg`|92JrlBJRSymV17GnjryEpJNjeyQ)KruZ%?&?RkqiuJmNxY(MJ+4-(AOxUEaH# z-ctjGrS27iPY!TE2aI6I^V#23v}vCxFLRUitaAOwmaeWS<7p*|W-7j>nuYgV^wT6c|v zx$sQuew081T)lR0ifV7^uCge?^oP~t{t4;W4>B_DXI`yN3f%ti zUpIA`u3TZ5P*s7i# z3iaN-`!J*<1VSFafOuE0V~iO1P^NtUH>-lGdgWXt+=qlk!eaa4$&*)2Uc7kd!hJi6 zG^x_1Oq)7=3N@kh3pcLZxpeE= zy^GiDyuEz;`uz(yu;9Uj3(unk2oD}2kzP4w1(}sF8Z%z8y4B`HpUY}a?1>CH8o6sj zOPfB8I<@N6tXsQ&4Li2%*|CioD=39Vh=Kcm#$!x6#xS=}DODO% z!bJt4@er01MahCK`;b!qB~C(IYtXmeh0u^eZ0^$r3bw%WU3gqfv`}~I(eRu(%r%FI zL%)HBNmCjs~c1$hD(6BX|i$|VhJB)DiMAxt6Eqm*vUamPzhm=&g) zj!JULCZCLQ%ABIga?69MxT<3=DicD@HMfAtD01kw+h@LpHrla54^4E@LmA^tF*TPE z?M=P#972{!>Q=(U`xs+`&EFQ3rqed>Af-VvP|ZbiWk!jR(j0`aw!ZLGxAd3^8B=9@ za`G84z;Z$WfxsX1sS@8&xU@F}C*+b)L=*8O&pA~35tPOrPfodnmWF(x%9?M^dFP(1 z>~iR$r@CT`FG42&<0vw|VhSjKFcMjgI+DYq(YD`?du{0`bZ>gLtP5rE1=(_~@Xh^B zQFi+fZ+!E|nZrDqLL?Mtpeeai=Q|_;$o)$$bzkU0Q7oRQIynUuk2l~{&VKt1f^1=? zpU+Q!{r2A<*Xa7A3NvGmoqjsmoeo&JE1&@nh%9F~??}#TpaY{cz6VN>BF4}GK{C?4 z?tL$V9OPb2_E8KLT#IqyfB_zaLKOF@aD_~{T>M6czZlAJhBQps{%(k({;^7c0PNwf zf`-5#3h`J)nxGMl7_TELu{|AZq7%9IFq=S$C#69lQH;XEEUplKBCDYnzX--KZU~2D zBvJoN=fgDrzGz2Q9HJZF*rQ^k!yI(1qaE*v$2{tBk9_Q-AOF}2cL>rQ8_nP(HoAe0TXb@io+PCyONq);0%Mb;1Z68d zxyeUUSYcFHRz6Fq(TyHb%!YKfClf$ zrz3EE;9NHt+tb=d5)7UNgRv*uNB#f_KlnmN(z;h)0<*Uq?y!fC`rE`dRShMm84C>i z3nkcWZ7N{ICq!)3=*k$5#wbP=Zj9qAeD|}0s6raLFyCIJfe=%y!g$dOC5uVTh{XYq z^NPVUw=HC8et^(>tpdeDTPVThTESU9XeH!XPaFXXU;9`wKlB~StXieG$- zZb-I`GwyT&leOI*cUKZhG{=vzyDjk|dDX##vIchC>fIEtICY~)F*xAfjNro)hLD0w z+>r`Hgt>e808|H~D8aenxqImd!3o~%jxv-12_Zni4}PGEH!r&$_~=9kSi-$h^s=uo zEVQ}Ljqa0$7_m%U#V07i0TzJb#ZVOnwS9ot#Qvfi;kc@&|BXA_>|-B?r~;9zbqHyz z;yArXxEnfa4ncI`TIp~^8mb^|@4}AM&wKp<- zeT;k^3lAqDSi`uqW3i!|cqe>*hNbw&2nA|VKEXRhRHx{_cB5y;B@<-3dt~V)FwAgS3Cx> zeh;BEPm&AR!)w0g5nXo&Qh*O%<_6jGUtuPQ0rn1rBt@>}3O0}dc94O)Q4d|%1SUuW zD8OHEHUiJKK^FLCgLeX|kPb|c0aUsTeDcFLyh>N)h7QYpP zA{KfnKzg^Z4C*%p`NnQl)o(tijK=bMhcILc;e<^HWV4qAbCU*HU?#qI9N~3vw#I~9 zf^i8^3f~x3NRR=}H-bxW4uhu?dw4D8l_l_aekZ^+euo2Sa4o?=1Fv=*aVLRWq9pW~ zJT_2k)aPVOR1d-CYXH)Jhp3Q*LuP?j4D%NTnV<>3kwZrV>bC+Gh7T^8ZQLV@DM^C$ppxYvnVwjRDA5TVFq0`EZkQ8j zItiPxS!hZ{Z^lSsCx&VEb}No1VwuK+NeP@jk}OOadpFSu2FE2oriRLyBur>(ytj>E zsfXWKg(63UL+A)nFfm*c0$X4XOb`O&Bae9r5oK7OIuQ(VNne|IFRnHb`=FBb7(waj zbOiyP+o>Kl;5J!?4+`lHh?$59X_(&=pitERpI*=gHlbbG30|(SiIhlfDu55*Nd+&# zJ?Zd?+LjWZS%HLCiA|6WHlP8j;0_$Bl70qgg9cDN62V3*Y<9Q%-_vbGRTAP0_6ZTC_fA%Fu6YF^TT z2sPsaNAe|lDg|4@e7`XqU|KgA6o6i!2Bk0)Wab9-(2$Lo38lc8XOIbwP!FDf2))n? zqTmH(fH=%2Ey9xyxljdl_Ld!LZEk@71gE)~x>0l>xS=QsXSy+A)kX;TPzBXi2D))4 zw^{-}kOhR066Jt`ui2u_>Z~B9Ou)rhBPf9<012M}2cqX_`36--8KmFZ8n4$0&v+BS zR|OBJ5CwN*q^2I~s(b~pgjQ$^5r<N_b<#m0$Zd%EAMRib*i$IZpr3eaq^|Iv+~#dFi4X43 zi5xUw))Od#G`SZhxs_|7-D6v>d9_+Ax}$49>xOB(d5poRx=iJxX6w4B0fek3K~;#2 zvYTDDJ4GunFIxtf0%eo4xj+gf@PH-oc%9q3lzVIlM!6YwlcY<%)jL15 zDPm$9gQ=^%r|Ye+>$+%*yUydbZZN**yF~ZZylRG#kl71Nz%(`R1%R`@^^0fkV71n( zzx$gqo+q}ACAP=-SYtc?S>S87$ue-}P!L|?B?Ym-3CzF@Y$Qe^!4*8g4Sc~AJi!jE z!2{>P8H~XYEWr!B!62-_9elzO+`%Dy!741mDU8A-48eh9NHuK3H;luCBnt`rz$ok` zI-A2mEW|@h#D=t2Hi>!stHevpDLRA;x&Xyb%nQ7r3%q~}Q*6aljKx@7#k%05?F7c_ zB*tM(#$#;8WsJsSY!1Ot3~k)THRi@|9LI1h$HhR$aBK{qs>gfG$9?R_e+4|p~^m?%57x-MFl(*ZL|(YK@PQS%eRcnNkI;@yvyI<4ZDoXx4b?}5zNJ0%fx)l zPGQVXVav!I%;AvC8{-Y$kQCrB%)$H(&3qKo?91Iu&EM?J;SA2>EY9Uj&gbk6ATzz4 z%+Bp>7drGmu_H6{JkK~H%CEpisI1S$GRs=z&;Jb20X-op>dpmi&~E|H@yrUVFe{*O z3yFXQQ_w2|bjtgTK+doOPEZYs(j(812YIjw)*v*_AO$>74cE}i0v`EtZ@#=kOy@@36Fq6{2&T)a2os&45#f0iNMj~;0bE?2uK+&H4*|<{-Cm;;F zT^i3&2b?ce`A z*363k+yjn3%WdF$f!3fg87+WDJL7jP02#8A&)I!IgRR=$tqz7D2ST9^q96uB!P>5E z8h_o_LvaoyUJd*};;pgQ-M!!c4dXH1KE*BI1a9MDVGp*j130h*U@#5;U=PIL4`vbM zLq0|azTA@y8oFZHtPtHpKn8M90@GdB*iGR^qYg>10zBa2sX+~Qpazs6<{Ez9fNdJj za0hU(3Cl1P9S#R#P6?s_2VIUD&L9INum$J?+%nGReNHI>9=bPf;*-6!7C@;SY`e=o*6LNv=#s9T}A^GiPuCkbxN&FbY+E8p*Z>KqVC~s354R8r_wWz& zFbSvt7WVM%;co8TFb(uj>B^npnI0pr018Nu0-yjHaG)8ZkRua5>bMgO+>Pp}Ar5tL z;RTG|r|}cj@C;!f3?UvA5w9BZ@bJQ*D8WwbCy(+UL(s^s)A_Ih3;^>nzXJIH7W_a0 zIiL?TfB-A70VyyI`QQl-KxrHB0j4+q0tj#f z@E#90kO3ut0XR<&PoM%J(C^5k*RL=c1uyCipF71M+TJY>tUc#> zFAj|o5B#w4!k`VM(f5lI3vi$);GNs@Ak~4r8oezPD4p_?Kl#Sa@@3r&7!dOefC12e z<7_YiColwk!0n9g=sAxL-0ly~-~iz+>H6RgnIHkE;1BX}11=Eh9RLLWpbjK(0Z;D< zzaRD{!0pZu0f7+q4uA?}e@x9C88jn-yz&WVS~DsD2C;+Gbe}sT56h+@59;t`^cM!I z-R9v>+b2GMcTfk3fI?{gvSQ#GyZAwd1Cl)+zl81{E2gbN?nH{v{(sy0feIn zee-ngf=*ZrdW+K<&@Q`Ka8GQ{TPj$JbCfNjwM^x z>{+yF)vjgR*6rK3=Mbr=R*mgBb=tIrC3`NO-*{p9>9srd9KU7S+&U}q2<$p<-y~0_ zT-owv%$YTB=G@uyXV9TVk0u>D+#(`)0R2%-tKe(cv1QMuUEB6;+_`n{=H1)(Z{Wd& z5AQ960Rthj{oT9gZy5=k!AklI)`3M7i%|YapXTpmh85vgwD_0*N#nR6IrRM#7Xg*H z4JgE;fWpzmy`uT`@8{3+Xws#c;tDDP3nb91Yv59FK?WOi@IkShfuRHzz=H5Xw3b1l z1RjLJ2AtAD6mdinOEmFB6eo)$wbfc9?nM}5lyOEHYqask8uJM+pW6JPCkPP!c_^YE zQ~HOSi}D%L$0u+qXe0{S*(kmBSaRv2dj|4nqbKg`?@KVlGzuxDXc^EzGz&x!LpIxV z^G$6M5yrwd+dOBPHL6($#1#AV^G`qn?ejDiSp&p191~S^QAQhe^iklNX-2knxHv^6 zWk^UVn3lLSp&fhJKma37QBf(A2+SDh8dUUoNXjAyVrduud!G2fRDW)nrbzt6^!3-E z{!@ynGt)HID>~~`c3Ec4@{2D!&(Y=_X{nvIT5PY?)>>|-)#e&(n!%=8u#ReN-+(lPjdgrybUVQJ>H(!4D^|xPu{lx_rV3+}>;DZfDcwvPbPWa)1Z;AI_ zT-HT5GR#&~%}_)k_4s3uLl$}D-TaXU2?h?>;D8pU(Ptec7(n13XExw~0~WA^nE?aL zut$vzFu-7eBknN|Rw~(Z?;m-TIDi8NGzg?tFM+lCYGH{0du_JccKdC(*;F{Bp}P$9!|mJLmj!&qD`&bkR$9#T8kuxS|WySzo<%*k703b=p;DLKe+Y zPp5IjNjXQJveyA#9(&MXrcf72R(^Trn|J<2=Ir4GmUi@6&!6=OLPwWfUdvuf>7ijx zrSHElh`H^vIsc!l+y6D|PZE)Te){XTzy53Jk%u4t`}hBU00vNi10-Mp4R}BVCQyM3 zM4&O!u@4AFP=XVrUD{KN_avOrVxcIRACEQ_(B)P z5Qa09VGU_`LmSrc9kuAfEPVJwAO=y0Lj)rK>sVM0SyZqX<_O?A=s^$U9qM^gq+%7V z_&k4XX?gDBBADPOKPx<96ORbv7|TdTF{06oV)R4)_Qyat#!-%Qq+=c7Xbfj$P>*}$ zV;}VxLU-V!9{3<+Aq{y*L?%*^i)3UY9r;K|MsktvsD&)PKtxPtvWT@f;UMvWL?tp2 zfKG%W9{#|wE2dJFt7K&>f73-+?gxHiNMjfi@d#X^@s^MH1RKlfhcH@0e|98hF^zdl zWb&^VdGsR(HL(d*JTscfXr>>XAq886(3AKGBq6)W%|d=toZ%#=H_Hi5bEXrW>l~*# z+sV#zzH^+VfB_7C@D6yo6Cdfwf+~3b=)+oM;gXsp=nuQl1$UIg2`2nxF7{yzCrGdu z;%MR%Q*+AXxl*GW5n&93Ki08|?!+mjFmICNs)DWuk zoavI-|qs}R|0 zLa+w19Ik*MDO3xTrV{wG z3C6-hlR$$K$lwP(kRWg=3`lnr*q&D1ClXdr12lND6j^Wt4PZ>dHhiIw>G(ly-BAh} z*i#jQbVo0KkPa9BpdLsDu|4le$X>X(29oe3k0sFt8sLD+zD-9NXt07GY?;S3h5;J7 zSqdk3`NoCp#0hE( z8mfQ-N&Ggr+-$Qu+;NC(JAw&zCL}3JfPyTzAq)GwatUaB+#-h{%xM7lAl*uXAGo0m zI$mTcegJQdtK!H1Apm$AO0Wcj3xePF26!QX+f8@4mE^^ZF*lK*0z!7d6|=}f7f@i< zSzN&eCs6c29nk?rm*MEMSb7;kZ~~4)I_ETK!Y7lcK^h=r}v$PQC0T@hz64)?vK!OlJu%JSL8H}LNGQEP^ zrt)LB-=eK0B(AXIrrWEBUZ^>T`++i$0;_{Lfm69dN<0?ZCmX1NGRVTE^EetHIYknu z0{gNM=sMIJB-FzP^CP73vpF|2B-BGP+=Ifd6DxpnzaOds6#ybhpn(&(f*<$+M4SaC zXo5rkB(x4NB7@tudH^K|O1`AZu2D)mz3P|;3`J2K#oma(!BRC{lOMZ-HCti?UciQ1 zxHb9Fr4ckiTfD{p35GnnCLmM+ZTLYHfI%2^gUF+S$uq6WyFBX?MmLax88ina2*MT| zLeZna2}8oJI;8AdJ(a6NoohH0SVDZd!YnLbtEn(5P~WUI4Bf?L0Z4|L%LZYL?EgKL{!8p z$bu%ozb2@$jYI(^;3O#oy8lbJbz36sQae#2MV4$ymmCOF6s(a-uT_L8TT;agl&N6< zswrIT$y?;9pelhxFb709fy3$2!Lj2XZRj6R zQ^~!0Nz*({2aL&(f*+Ym1TjDbbch~%c&R}chff%Wd$0##n5@MTJfHkc6T~B9Pz4Ce z1g8`#1ak&77_j8~AZxrlXymqMW2#{TH_{5qW0atxgrHuK1-Cjrilf4?+d3BiAUKAT zy+Cq@Dp-Mz+b82oPe*vOn?s~@xW3n`Iec&gF{4LB>Vym+gts)ld(41&D}@lyfp@^n z!Q8if1hSsPhrKj2LrMo52!Yu%q&6cVh!jL0f@5U|4~= zLP>tegb*MD{-G%aTuIctQ5?-t$iA1=Bi1-KHOoUCKgIL=&o&-)N{k3JX zKB9WLpem{m5Q4=kh6*i#y0S(IG6olQKCdhyg;L{LDD<6`CNi6|YorN!Dxs9Am5v74z zFroRx#8Nncpc038;0K5Eg9A*!P%BLxJyv8*Rz;b+FuF?w2D1a1|reLwk`lumJ>s0)3zw^Qn!OVA%%D8uUV=G@>OV?b|V8qsbD3 zo6T9oMJAy1S;j>wZ9>|5TrGlqS4TS9M{3G9GbFI`t#xv%709=C>ZbL>+JZ9CxQr|6 zqM%~9t4^#@V`W>|eMwpn0@|%z+Qo&o4GDc%)a(%<||hyC^6{{3G84qyQ0Ujz2v0#4uq9^n1WUk7er z2!3D*j$j5>-~gUr3~pf5$$}r^;2`qg4hA9+Cb}QGg4CJdO8VY(0N)iR1!qu)eSl#Z zz6KhOqO^@&93Dj-ISw9XfEC~of(VrgSPzZ>f!yp8eaMGQn1B)>feSDddN>0n9svlr zhrIoVWf%b>7*bQqno+m~RsiELzJ@O*V^+9^kD!HHzy&mJ<1fAiY(NKVfR<*dV>`ZM z2PuYJNQGS3<38qNKMrI-9^^mnV?i$DLr!EuR%Ar~He^SBWJr!=NuFd%u4F@Q1zE^s zP2OZq?qpBqWK6c?Oa5e1E@e|bWmMke(IEmp;Mg2~Wm0Sg4CrADfQHwol?dp89$30S zIO6+Qh7O=x^ZXMvGy2J(jizW;25FIw>$fuwj0WNO4 ztYHeMc!fv60xsBtrg)0To`X>^kTqdy&hBhCaUgS01@QG&RiNr#D1$>lgQzwKM@WXN zh6iVG0$X@(sNRP*r~w(k0(y3aAF!uHxMy>aZFq2ntS0DUaD=kn9kX@^Sr}_qzz417 z>a;FvgPR3+ux{&~?tm_bLoi3SX6twVDApU6Yw{j79r8Z&u{Tfl-#2xF=L1p`*tgc2wMQ`m$R@BvmB5M-fa3(s^-Hw*Fw=VIsr z54Y+Wv*%*Cf)uB1RKM{yP=VS`J`<;bHF)({$La*V142;pSU7_ruk!B}Yp70#=jL@` z|8D7n&@R~ZVc+QA$^s=%zj8QsC3owMu~9Uyc2f%#9&P{?P!+pn2V)2t4EO+IAW}ql z01ntRomD_oU)-)InW2ZCVTd7=6ozgX8U<--m6DK@k`jjQ?ru=J1wr9z0p|#&?N0jM)#tU0dhIgZGW68lgTW`Zw&Q2&_gp zy_P2_PmJrTPZ+zu9X8tY`cyv#=FJ-=?in#t>}a>+ZdIiAyhx*h4K#QE;d?x z%|G~)i3DaKfK4(l0=7XR~|_{p5_ zjYB@B$&TIT(3QKK|DQQJUh6CHx$)7va7qC`!NpdG59Rmk{O)||bpJY#B=B5lrN_+~ zI1mv7Z!oRD207eH)JQOWof*7fJP?yl_d?_HANqgORw28o`T()*sbZxFsyl(=yEE15 zXfe|kGbT%>gon@G{?KRiZ~JIQ6wisC9yT=Rw~Z|NXxk(7pU~b2WmDJwdcOg8;6vMl zLw-TQY}t=2n|+e}g_eTR<(G=wpT(FfT5ea!pjCyo_(xlL1|vC*%HwuP)5da!EtXD` z)Kws8* z;U^}RZ{$=rMyUT=vazvwRMtbelZA>DB@n7IRh8DfGRJT*V_KMU=4aocAg6Pyf~2M>KKdwIOb;QbxPV0>J^n-wD0{u@4^dWg=*s%7{ma&sd8+uKD;R0&mJjn|(G zNfwtW)S!cVI7@9o5tO+NRJHM+1D}`SG$NcVs| z6){+^W3o70Q&HTrhpcJ)sm}Vvq*cbh@$X47b5_fW`tT)bt5=l!YrP){Qxh*gpbm{F zUS&PXck-_EC*z;N3BUOGk*T|UZ?QpCd*kl@r=_nQuVugO*9=m>HdyqiP~%WFMyJQ2 zi!%*lxcx>W8>0IR-X6+rq$j9tmRrQuXEip=S3C?R81&xWCcsp%;k1RN5BYyLy<0A) z@BqmzI8Z=UKhhvk zg-X);3Au)iN^Ao*r)T-r$XsO&u49+S`6Y-MZ%1Wl%#oMA!}?!(UX6oEnPeNvK{SrE zRg{7*m)Pm73ePqvrfC<2d@fs*WPLzkl3faUIY3Wq7EpB5OnakHC>L9LrIvWg>BziO zBqGmH67D~Mcm$8ovU-wH`@P2Oc~=AzbAE{}{HA@+nOY!wh(0*Bd!`pK%&lSQ-FZ#}4c+9J;JlznUZp?epCv7htC7^W31F(ngXtLRgYQWp~4?sR&3ja`rUV|0u`9zmcz!vF^Hzv z0%H6|LXnsdScSHwbCpaj_h?u-jRa)>jpD)3e|L z$$&|;#r1`B`04sZJ3HfsAA3ewQu}q+wdOy(LFVo+2Rvh}EiF1C)pl9gFR%7(TsiV| z_$_)AF4c>=ta&!B%^9C6!P|I|jkoGB9Wt%_eEf~3Wq zmtsuFt*pI+_XuPrlo8a0Yb2`v{SXb$NOb)gd7Z`pBBVJ|B5|F{QF_SYAHDpB>H=Mb z^f15fGZ}jW8(O0aBec0ll8fsmdQ*Dzu)Ln<=l&);81;_v8#FD!^&1!0<=6~9_X#nd zg_=k8@;}35(X1NR@BDU`?=7Z8b6y{O7m6?+|6DpM+pO#mm>aH?;p=gnWiNn-oIQmCiB-WXu=hfkvxdpY9YeWqaUV#|1|&Ok&IJe z3z)~af;lHmg5cu*t6)=pTlVYa6jRzV8@v3D3VXW3LNkEvfItGrhbtcZgfQ(43hwO? zhKVgd>+D$PKMq^bs-#X0M}{-Jb8>_$0^&c^7Jh&FbwczTqUxzx^p<>y+{(WD?>Cz( zOQ2Au>6oM6?@FQ=Rgm)Qu#|)b`nRB~W0*p*J}_2E8De1$<7WJM{6AWP)Yu_~>;4o9 zV}<>4_J7^KTA5PN6y&;-7%~FBn>Tfxf>Jf;&1d&N6NOxKJh1`t-->^KC4!YM2G|ul z2G@Uu{boIW|2V|-qyjusuWRXP*?XSOvI)s-2^M14aBwYj0S_8M1S7}&&@s)xk!6a(z zU~7Q5XVk1Zj`|c&S%|~9ew|$z6!ihjCaEIucqRXEuvMW_aD-y;BaE~vN$*$kr^}yY zbnLoTN6p`7?ywVoJ{Bp&V~2`>AR7ePI$|UL=RX#`JJz)P>==2#sR97wqyA9_M=z*M zYY#w(Km3-q2GtoKS|~}T*4_TU!~gPF593VO8jEDP`^k>+*uU$T6Iq74t-{)AS{&g}KvMBpv&a*?3SEKPWt7r?6D9%DNuRu&EegDJDK>D$NSFACxjv zMR;=j-W{A{RhAnYq_nrY{jyB)+n~rx%zRX-w5>gHmydMs*$S!a)OSL;(aO4U3)eVQ zm3p8^es%L+Yo!7S*H=m|rT6yJ3=dBw@MO8bZ_2E4$Uzco07)=F1joWD4}jhDk6*Iy z{2P?8w>PTg+<%q|`xnJ|45Tf@vth#pTE7Tpe|y6)NF09nuH&0o`YjqpTb(I;i;x1P z%ylmJD9fwC^PeCQD>mNp2qE|rQ}HJn?hpAJ3J zgX{ZmPvY(V9)9Kv$R4a@b-p%r&jOI=CO_@mB6`v~PN`ROym#>8yD5|QTkkVQP1QyA?|m<70iZ>QkS%K{mvycU$~&~~KZPTPx` z7q&Ym>yGH!@__fYfhLLasj5-wPH`K{!2=G_wJ-bKc+usSIsUwdWjwLjak2S3NgFSp zZ*9h(I8Ar(Quq~S;0wpntn7pT7vf7_?Y=>q6dgC-&jPR*jNNj|vUnBD#;#NCl;Y)_ z`frE){K@ARMbwc+%>FB6v9oL}Ss6Mt#EfW-FK-`a-2aj_<6N|~6y@h!Y`c`x_c&lR zeD99V{znx~d_Qk)xa|bMC;s-`9zN%9t4IAsNlUwxkND#EcB??BlAaQ`0p5Sgj{N_v ze{XlL2#+S--7PeHTD!qpZ2PpXhu=Jv%X%7<*f$_LjVljyFn)IHRXhnbe|2T;(`J*G zReeuem|aXW9j%AfSwJMb6ckh>8oOBjrsxs2bDJlT5zS8pqFVP_0$si>MBF(5PzeH& z*b0T|?_Rz;kDEE$nJFlRUfCE5I4^JtU5Crt?|1GAJg41%eO0%)0Ol0LBh>n-%nHQ~ z0b)-XWymOOKqI{Vx-`7Cy;F5gU0g)!Sm5&a{XVY)Prv&{W~sQ`rk z`u9cE+g1QUaaFm$VA*95&w+~mEtf5S?(P2v+6?!(>oOd#VQWIt=jS@p=nVgi9*#U`mcV?{JqmA55BUF#MEH^o$_)L;NE;maATINkCf$%s-48J6|z=fjta zrV@sr5#ZFvn|U}ndR9W$||RnF{~l6?K&(_^ZpD5WtlEtUXuB>>wA z>x~h#SOB@)Ac-dc){F=K$qYH)re|6VW!_<6=Veq~l*KwR$vG8-{mgsztiTs+w{eW3 zV<-7_Ok~a(=2`*^6IA4OROed0n=C((gwOZ%9baWvqP`Y1PUf>${KOE8soH*W6hLn; zeNMPOViSI9S`LQNop7gAF>{^V@~}t^aTrTlzPy18ay$1L)*mYK{TNo|HuB+=N~gFS(UhjmR*@2Uxx?mu*6ei@Z)>bXAkuB zr=BKXvFQlrduwvtzV{x?{~Rnv!Tq4(Y#AzH(&h_EJ0$U)Ud#_i_A2w@!&xG6 z?XqQNaXm*BQe3}zO-E;7gg8#smZwwP>KF8flO=gab^4>n_k^skyro+R(4b^h39#e%HZH34lsu^QM(y2R~7C%_ucj&P`UP(1D+2))~>VkIT5Xw!LmiS z2R1#=x);GW9j1hnqK1e07(ExZkP1QXkEPcma$QYI>)+d!D_%%_dT`37-FDc(Q*qBJ z+@ns41$>Tjpm_70_Mvb$2Tfx(hvSAgsi-4?fXHP4!jvCy8V8@YZy+N0E|7}r`R&}KqV_W+8 zP~;_mKQ>4{L$1|ZrpKijJ=ikQ_os`)bNk@eW7mNP1N|_waMDRuqBLGkzbDxxf$X~Xt-Y>=i-@bA_ zo09xbSh|1hA!aGGGXEEgw2v_Vsm}_vSCC^=g3@wuP7ucZ-&dl`TF#PX!5t$si2!DT zTTA{!lqxnDAclGU&Gb0D3CQqXk*OE-mAd?^ci+1}#a9OB#K*0Mq*Vp)_gi1qcJx)K z?7va`*V@I0196+F{A%jVq+aW`1Tn(HpthmsE;q24(BDDC-w~k~3B-$x(8~hiWku*! z9r3Cy^v@gOpF!g9AJ@{dHKX&Ajl%&rE!d5Mg zj?bjspTb`l1^u zRXpF@XXbtsa)0zT=<@vR50j^L|Fgk6DzDP3bcThApVfT-BE9VY%iuHZ43?=ioh*=f z-biL5ctb;7$(EcXJNoL9rJIKS%k1a6*yjAXGwIm=eHPwADBJlJ%wc^nj!7znCE%p6 zI8W;NwZws$MWvppW5Jc5-{F_;=fAIuY}W_h1pSGQQx6C{+h2VBT<~EG}!~p!3j(b1ZonFKs`958e?0)Uw6ak^m zk~TyOq|;9C80I%@`(%g;x0l>#9G(on@7N z_nUh#?RyHTMEjl&od5{A(76^lz2fn)VT!@(6_KRSJ`!om~u#X7c1=TxyYoP5MHCHE&0x5}=%voJw zenWNgu-S|`!~65IAB_JkH{a`U@86&`ad!qovGffLOh%lC2q7;5Forfvo;7>HRxW8) zivlf|wdhckr9baf205*7pEhid7=?8V{qSKG}g;~#LALtdG%|G;DJ^%b9rRaRot%>#d_L9FRlS=IW zPUjz&{5xL>Wxu}oUQ%*>b@+~*`1eN7`8ZVZdVvxFq+bJ&n&H4~h%i#)H4tjyCdEU9 z(`2qe_{@~aA0Z-8b895fg}1!(nt~kk>+ri~Dl~z+k+#a~WDgbwgu7Ftgfnd@oZ+hI zspDvgp>-)y8I8lL*lQ@Z<^<``DKJH$?nDb9wBsv>-5{w|C#H07tW! zStC(_ntbw!uH(PUE$KT7&6Q2bZzZLhYpPp^ zqb8?!G-Q?xQbOn}ISzM3G=7q$71LMoJ=ncxzGRrwM_(#aQ@kio6s#<FiGAV?ZZGzAH)TK9e41~R9j?=VWg#qk?SXh&Bp{>_me9+_ z*b?_-msiEcY*^8xI?>nF>=wECn8~MB?69kYcaQm$P-lzUp+Hi7JZZ^R7OD(B>}dXF zsqtihzRvg1Rff!RF?znU{e_FWZ;;{Yd1uu-=#ggBo7s=|cAG*85G<`6nGS_r*T*dP zd;gKG?0R+fI8NS3h+7NMU3Y9>lUc(;{g9L)$5vd4acw6414_f#U@7@^ zs?gtqP)W}y{&>>A?=y+0JSU(??z03nct4zFScCIvX#}SeJ=!fdOdNL=uYWvHA$A=` z!TFiOmA4=26~!m!$`QrfY)yS{bw?t58ph|*KHO~0Cpm`*r(gjxi#&xbDS z35@R1ZH2qNPq=H$s|K;dA_KvWIxc6UEUeynA0i#N9tTz};eci8WKISdixbu7KDDMR z2ChyjFo`uFvc2BvYw^XaJ`z4V@Y|1;+kv0ol1M(wd24JFnz_)__e`ul4MO1rVE%7M zIVq+Y&gEfIIZ9mcDaxyL)(xGT7ai$n3|L8YI;~&_qfI?V)@ArFMATF( zx`T>`<^;97nsW>GW1_OwKT_;dq4FlVJ_GP6pu$HuOoTOz)z{rW;RGR8|taB zt=urwqjh9R7`0F%Due@$!!tN>d^G`5_quI7vO&79Q#bb$PjRpUW$+nhOFSN>NCZ;r zOpf_a!?YVg$zdq>Bd~2FC@Zz1Q5h7V%j_SkMY`o9Pp=}>olj<*NJZ6 z?E_{VD$uQFwCEnx&XcNLkkoF9omHuR2ElyRPvUz+Lvb0goKrb-e7 z@l20#0@22v8`szg$ucm(ntqFd>EH)FO&Tbm1#wFFD7#0)l}6TpAh#)_(mO&J8PHwg zsLgbaComPBVGNCe%uG#WO;~vAF|!mILzWK7n>19P2#dK5v8R9R9+8^fylgMIpOmX? zPhNzba+-1-J8^!@l-azWNi!}fLR(Lc&i#n$5XP{I&|{ue?EPfBB}!jlgKQdqqJ&aNuPcRr7^RRk&A@y^yALxp|$)&bpF>G=;5*2F*8#N7EDNtn%+^mdr zw+7w=fd3wB>03i`ZRj*^x^y^bbQmR~6rzCvku;*Rm1R|}!B(ZHa&Or>BU&Z=tUDE? zR2!v*0c%(TQ+4HjdPAOKz|kB?TI@t5Etypss047%YXcr>lP|M@NMXRe6BM0P%(d%K zeIto&onvb}Sf3zikRhMvE>rLe+}N@|XAPb+0$<@oljvkpgeD)Ai7`<_!U@o5jUsTAZa9U4IW~oO4Fxg9 z?O!AxKa3gE>peVW&MXCvWPp;_(JB2*vV;$c{Q69Kie+JnlxMmX#s;W)1C9>x1kRA} z0b0wN#K)*2x?Rg)4URQdZA*QSbPDeYQ)bPahUk$<7)B6MSJ|0 zd{Txf7r`{_!FcZjiT*P)snWYJ6Wx`0bEt&HgAP>JnME4|u(QMB&6(!Ad9&dxt4W53 z^S;1^`G-wnkG3C}=P^7k@zs~;(BD7RN6#5aFc@p%u_@;=_XI^A#%~iS#@)rJ^v(p* z!hlxzS&})J!c*j<{sEH?aA7BT(-Fs+9-swCLp#M5V>w{LO0P&cL zDJ+{*sUo}Bx?np>GHU~Jv_jPAyOB_7>2416A1$z zb^Sg}c1P;wATx82vd;|_J_OyuAaEJJXW~Gc&vcu~er`<9?|MHUtbgte2;P@;r~B;@ zmxFBdV9olCT=ff1n+j?;ufX@y_n6QMOLv|M4X-T?G~X+`7--1axfuPk7j z*s*!uhQ7@}7U&&RP!>ka342U_AV_WJ;%;fSwU zprZin=9_|bmGv~!6n7K7M%T9fiX*Q*kj-WZGVuv9dWxFAb>3w{zv)!erl9=$WAc=d zkYk%g3g%cO;~rDo*(dP`d|VMS{%umyN>@-r7arC$BhR1eauMzAzcGYl8tXz$Ad@8S zB`I76eYr@gFixfkOZJ#fhDyOtb5s6ZgmL-*Rtv zvWM2J#W=9fZBo%231dHQ*Hx7AwESHsYKoCj*OVFIQ!!&4bOu0>^b<{(e~e9fG$~VH zMv7u=M2S8l+)FQ>TRit&{9^V2$hcloz)?!$mT*glRvCv>0Z@1v7w)!I1C>d6t$%;h z4f@{r4F_PJGdn8nr(>~B{w`f_6L`dFUF~vJJ!w%xnqTwcs>rc>D%t{m`-;A@X||E- z)wXWKWMD1PzXGpZt9?`vg{jnJc7nY@%>?dq{>&YCEny6lKO4U+Lj2b|EKNbD)(F=t;&mQs01qk^0C<;f;xMm?rFCzV zbG8%3!@?N8n?+VFjTslnS-$BU)InwwTHd)<+33~5`n%rBcHhqsDI-Vuy#WVfDx`YK zs&XN`ZQUYCZ6as%Jse`&AJVFBb`xtQE^{fnKQ-SC^gQHV|NG(lWC40ZOoe)OCH(0c z464^ekpYDJlJ57I2hmss(bt^yv=xZ@njiK2d6O1IKP;zNP}WP%@>U|S>@!+?Meb-V zs6|2U4Toj(vy5f|%Zg(2Q38lPcYk-2>{K zLHwel;?|ju3xL5RX&KgFDjbv%NN!G1AY7Uf;32Kqo!|0FrL3Qcx&4OsJejfvG?f7N zx*2fc;MvyYVC6y{;fkeY{k33da_P6$RAe-eigua_a>RubgHgOb%I)Hw(feP8Q5DK;Fyx1`;GlnuPO3#y=Us%^;8$%^qY&SEH##V% zHO)}>nkZq`4l^vua-lUV$%lcI*`)lSUgQy?JDzHgc`+;ZZ&Ha>p8bY)`+6=1AN4W+ z_mTXE-}3VY;&VJ6DLm+Nw&hQG@`^Sb%m@YGf5d+VlL{b^C&_hJ0DI|2wRnbwx6>=E ztAB8-b-IiD4>JWkz^5x8MfaXbacsQrJ-W9-YKFWxq6W$rIaPjO`_Q=;{^xVu3ut7~ zk=OG_!%Y?L59jjB*4g{cuA0F5dSrc!7mAOj)r;StydMOxS}KP?;|U&h%3JFs} zkjMIL$kKkl(Eg_3 zU=*i&73ps=)i$YLO$yFOHj}uD@UnT*{8*7D%sG7{T%+X8~5%LZ3zII}nBZmnHLfPM&yM8Ne6}#31q3(Sph)F3LI-E}t4u?RLdNH&Pr58mQT1vjPxE znHFh8tsvtRt!3L5PYZJ9QjRohbC`Dz-nsZ$bw8!XRZ`U{ymH7LE@LsYpkodb8%^#{ zYj!e^5t$af&3!3S84=GU)(TuV+`dcH$xdFJy8xOn5NvzE+Z?*&qad@m#UTt~9F1FT4Y@*qm-sLcg zyx8`!Ux6S^z6KpZG@>^_s>5_7nWNy_-H*F8?X-D69mZUJ?VYL~7OFFrImd8O<|)&$ z4Gj-G6;7teXfWduYwr9n{|PuOPqiR}_4MN>;QPDpmE&Z5^&}j(9ZFPF+_PCa?r%0Y z56uU+&ugIFQ`9?+RNgAUmemG}pct+H?tCuv_;^1i)ffBZ^}`44FLFL>Z=6*zT0WpO zF%$dMzO#{l9pT+f6#wM3ne=NK1ShhE{-q%kdM;9Nmx7*>uLvuDT1IC_x;Q+3N6(5t zCP?34n1dCK8>T?BSAJp@E=%0V5}|9yf0Qt!2Ud|f$uz^oGUZFB`O~^?cIVK-09EoK z>i}TZJ6;-~G0oz0DpHxX=b1MxbZtE&x^dzoo=hf zCurX?K%ULcVazD$s^yvbB%9xcfSgc^m;l2Q*VD1wUHHj6w#!&2sqs{7M8M~Xu#(nM ztT%bBUUObt!RXK{{gA@IK(G;rYSSV^gJJy;uURy=qxNW*wptg&7D35v%s4kHlBWiU z)_%9FeHZdV$MmI%RTeopF&p|^A0kEwF}~kC$SC(x{6C>L8Ep)ja)&MxR&TUAy;M%O zwfh3b=LXfgeC~Is^948CO;X5DXgu7F9Dfs-Rh3YZP`{kf4}UJdgPrgUe@tRGWX$Mx z6rU$1DEHM<`GX+%Fn8Jx;dUyjB|xbyp{h18AyU9gUK7X@cUs*!C|=7grrU9B*cP8m zGl{j)$3AqHvCa@iQvGYylme5(lfFP#4^FkM6DB8aqbEG2my}t(lW5^A9}~aW5m|3? zP|@A+fGKg)y@iy*0VCr9=~!vE_`x?h<~BZYl+4yF0buAL{Fe$9{VU3vLJFe$qu~kL zzjG@AKmNV>dKIGEMSN*V6X7)}xjEs#K(8z$v+=)i>Ygu~f_S(d^-OeS0o#!J%eqy2 zu?FJ#)x#Dg*0VXq*H%O0;QvfN<%U&&n2+)B;Iw4_Z(JtJP!rlPj9_wDqNPof9WW3C zmK?*U7~4m{coTdsOiE27!n(6)>PA*4)ElGMR?bYHM zki`k_6&a>ZC65D#e#F2ZV52hx?V^#f_^s+#Ak|u_LggZ>M(Iy1l>;97xKMYI86O6# z1aKt~CpH;vL<8r41(uB?e1l5@>r8l5A2el8mH?{>2EBUPAM!O9OG zsURZkAyhKU0Fa?Wk{D+xXG0#!RKxr|?B&}1p>NzMJ)oc}=Sf@&7m$mU^se*0be_!0 zGD_vOj72BIM0+cU2o!|;oZ6Z;YJXoBqLz3hKA6=!M-HR*3>PtuP8bq@qT84j$)dOh z9vu6?(6*6f&}-=TtA1Ny(tKj&bT;WGM*UN3GX!&81Ei?wBK&jt_YUlnM762I})N$GSVEcb=5$?UUr_Lt`jeK1Q7TXuAbYm zwxE?C*1W{sa9v#|b<0)b+ZZ5l$=mlb7_a&-kMODIyyJi3Uo1`h8#Q&=_QdyeD|eNc z{U!KkU!la^pOHSy-M-b2M7d$Z;=UAqL%y~if-r%t9O}avM)3|}{y#}|)e<;ACJo&^ zm`U0(B<-5qArq$uC-Jb2-JazT5{&gLCi-jk4Qbt1bypUSQR8BMoeQ~BPV}YS)vxTc z0}tOywqg2g#YsCP?HQA4_vK8;*(?|N?QSzLUY}*~R{Z)guUD02lh!^ho%n~q#V@GO z)BA!{X(S%Lq7++8=Uv+6-~E*P$x^jyIDVH2c|K%`qb}KIMCrbFTPA-@;UX>0D(Mxg zEMiOk=GPEkXM&Gko#khp^0673#>5|nn_JONZ#~U_rfxsU{?(;HLskF7Kde4ilu1kW z(Cugb;{yj*LV$>*h@NUs7^Oz9*)XR1yKkFZk(1hme5A$+<_=3`hF~<4aq_2l*76N( z-GYE$w6Hk*ZM?Ri{g`y0M(7F!6RTZ5Ly4lh@lO2{K!rbtfA#l@FL9Pc{Vx|I`-c)@ zIF5(rbQbs`v{)b(rVd$@M_I6=X)Nqua77seDAtFmC_r%U3;6%)6#9%bd-6z zy}GJlTkg@FAAz#H^PO=Y>$j(xyEzDFVt1^^e}sH?3R5tQyhR3ax?t1N62nLb{yB)| zoIvV4>%7y?WVaT+?LYFhxXYVd+&)P!ctqyWOwCvHNy~*YDQ#)`==WZ)giz+qx9;5& z<|6U2|VQ!5n^jEvsqumr?gwihZ^1a>4iLg!MhR8er9`C;IUfaD} zO2l6uGpN{(Ge7SF@_h-?v??+e69YTHl#Gn2< zAH3c_dfcnL$WFXc3b~#cefRHo6Y(E)AMx5T0D#2HNa1reL*Qn(Ef~BBM}Ek36E}xI zq{HYJ0!IOiv}R%S{$Vs1!7RC9%v!GV0Mqlr=Ki79O38jdt*lcFK)@+7<1(5bb^u?TL)>FpKswi}CZ1@t2PF z$&GRAiV41m!Slw1AY&u_qa(~>V_!zcv?JourQ3HR?fJ$U&b#Cx0|M;5M@%MJ(>lY}R&Eo4}@J|1PuH1y4u7uu&guaUe zf`0-9cf^oc;)s9ZSZ?C`uEdFj#HowKX=Kujbkdwz67iFN(n4<1QdiRQLelC*(i$>( zLpu4JS@M>D@=k8@Y%J_xA^GSc`52jUBAs$-mU6z6yqBAD)s^yhA?5la1%OHg$)rNe zQ%M3+;fqOT&8ZZNsZ^J#2vi!aOd7p;8e>2jGB1s}JB?*AjqNfGgG%R=N#{0Cza5ay zo0rbtoi4bTE_9iWMP-P}WQdz*NCsp`=Vi!tXUH#RC|+jZP?;(+nQG>l8gc18shRh> zGj$d-buTmZQCWsES;ppBCIMMyd07_SSyqc#k1n&UQQ5XK+4kny4guLtdD&09vt1Xn z-7m8}Q8`{RIX>n&egQfDc{zdIIl+rLA(uHsJSsO_CO6VNH##6UHZM26J2!DLH~BI* z6_uARlb30pmmQFoo0pg0omaS+SA3aQipnpS$*(leuMWt6nU`PNonOD0-*}ndj4EiA zDQGt@=nN?6$}8yUF6dn>=({W+pb7_M3Wv-KM*<4R@(SN~7fvh|PF)sGql#u^issCV zJ_QslN>0s7&I3v= z@=C6{Oa3mFTwj&|m`g#jr4Wl!lE6}UekoZ`DaBGL)m15ixr|n}jGjN6G@uOmG&z`n z^C!SiS7jLHa!%QDZn9+b5*MpQIg!7oTyUveh(Eb(noH!WT->5UGO$8AFiA|dLT0H# z@u~v1l!Bk;Qf02x2&~k~ue>&^RIjbny{gn_t}>LZGPbBP39K^9ud?W=vRbNobX8@| zTx}~`ZEsQS5LoS$U;VVF+I6Yg{i@oNxyDPj#>b+@FR;cxzb3G!Mym%zaSRZ^CAkow zmd#Kr9Bgo`Ccfuo;?m3Hs|t>0WsbG7nJ#k{WAH5uB&Fw7;nJ&O{^Yo6u&REg?KIfv z_yz*}KT~b0sV_%%VD^}Z8>*g0X`)vtxVE-d758dSx~}7CQXCGf2!NN7fdy`QviL+V z3|L^gR)G`7>skB03qoX>250vuvowQQnj!b!C*B!SmPWkFzj{^h9%fhy)*!%C^Wky? za3G;>cn9VJXd2-)I$cWat8HBH_u?yUn&pM@;7Ep+z$5YX3L7v(eXxK&SQQiTv=sE? zUL&nQaxjM12mnt(K$uHmAqWULp&pF@8e!pM{v@<`SSK%x6$|}+uhMfGAb@Ba&9C3n zs+Yht%#Fdc`(eSy5L9XH4Z(odGSRCU$a4dNItGT|TJM#%|2GEv`d-;ENbOESVv^4* zfoV-kY)jHo3xy|8z1El<-!}5HRT0-ZItIIK+3_D7UN8+D%ufngLxxN@d{}6~9K%A^ z+HeBx#32iiL@8Ku8gOT=EDj4&By?K6>6+E5f3pemOa%-swJ;Id)GfOL(NF`=7QCky z6#;5bfH@Sv3tV1@BD#%AVO{V#b+Wop0_+z*i2;tpDdA;^eor16Dqir$3is+Y8v6E6 zj|(Ou81sfHsJTpl#0=X$oC_DmcT)_(GO<80KvU*^nJ2cBt(F9Z>m25V82$m=TB|V> zfLzxm;ypXi#vpA3RC}#9F`7NXzI%7KaKm$&hk<&&;1W*#8M&;SdMe&;cFD%frdnF&vjUNmJ$lN)G4PEs<(1v{*2P|K~v}x{CV;oFqg=hfdlSR=3rAR{heK20VruV*T=@FFULe7$E)K7LLqMd$ z3$vk&>dhfVDes& z7YX8ZYY&hg3*~YAG+jT%J=uD1dbFgJ1jI2)RK&x0UblFq0v*3}e?mjpaZSGWTj6g& zT&2L7y-udLbLnprd46|@7qn=f)gZ>(s^Y<-o*!?I-6%D_BP24-xrK%bDQP1ZWfy8%=%lC`5smv_@8P+A2kBB#|n}M^xaih^vIuOY9{4a z0|%wQeWhKm3uteXALYEiG&J_%1MA8?GznGnm$xf#D_(S#%K_i<*Np@(QRys2U}ijn zW>b#evme8ICcoUpw5rvE`oHx0e5oY%u`C7_)Jir3?(5XsQhvogN;FCYS00v?yF#rz zdu6`>!UVtowk6ej0}3ZI$MHRK4Q-&GvksQ)0xKXS6`a9k{1*26$356xEQkUDZ2AW` zE&e`u)v0JbCY{(~kp4yRV0h+X;#wg=VPpJ>=*rT+&Rmx<47M`p&%h`zGzxU zdzkOWiqON}LF2!p=Kp4ji^skTZuu50^JwmIAQ~P_3XljyNIiV5y0;apQ`xCCL*oLC zv3i|IwHcjQ&nWQqKjvYn$uXjJW9LeJqjpHoi{%ErgST0IAWCfgmw)w4N5~RF8wp#B z5@r8laI1L1kw1P}3eZwiw~H=nxtDOrnb7%E|8|OJ;v3!BrlhHu7m4_0D7t;Su(xAU zYfiI$m17!w)G#+%TzyjXnHUK(d{Mh5-|BP-vo3Dsz3xG;%ylaqvhDqRmawAsrd5?{ zqtfjJ**K4ISsM*XP}_q&B@EqPYC-HbU%4l$#`kn04{4MZi-T&Xb%3F%Er|Px6NfO? zFNd-MtsM;~HE19<>8m{s7F#>N7yKDy*^ajS{9n4$SP% zH0S=f1ltmXYI|*Jjd(c)viLFIBmfmGo#qsne)+ahaB_dN3zT;wJEVV^SKqh(24Z;( zFu?Ap{vY<lXc`Ktc~ydhfl1^xl=KAfg1M2}lzW5G5g@DpCbR(9o+i5l|3A zM?j2#h%`eJlp-KPs5$w+@3;5&?X&kdH)oG?bM_dy`;C!{r_5)qxz?Ifzx?rh(PdOq z)@V~yOk*@dV;J(wieERqzoUFrRPN56eEZ79?z~ zJZkcN0e^RIF_2-`ck4$?{a=1*>aMG@h?jL04-TzUck8b<-@o?h(d>^^EJzad#rKv; zz_m>l#x7&M*PrfxrP29})SgzvJIOxZd%Ocj)KX8Dx`K7D$UX=oy=b$34hKAzKnc{c zdqf%$L#7wzhI*t!RwYki9=Q_|O}9ab83J>n6WWlzh=I|?04bH?J=umV*Umt_=Hx*E zAx>4#JSpra>*w+ykI04$Lpy4FQlQ~C$Da=67Yg;_xi9^4s=oB{dSCt}8Ak(7g_t-l z$B%JR(Y3RFD8n8GMC6I+XVSvwZ_Ny{&+P|cC2o5DW~JUCpfX+-PQ}_a;!;@wqoZ(l zvLaP_0W;*nMYhTuY?r>jMd|&JqCW}Lyxf(9SDF~6G_LqKQmIdm8G|FK*C|Zs@8$V- z_sP`!ZlsXKKKCu`q3`M~gO6h3e=$^_x|3qk%>$pSzH!V}BFDUaCly*OHyj0aZA+m0 zQx`C#a`4JK_3y@9dr(p5RbgY@X^-wu;QVI6ZANVamW6IH{cNBs4g8eWumnM_24f*b zSmh!8CH3V7V_UfhNO@*rc+VZ?V_#cm@!?g2&0=>2sXM#YlZhv6&t0prZfZTXJhHr z%8knyrO9$t#kTeE*^9;IUW#!heB-KikGMsbvMR(v@E$ZZvrC>2O<3nVZOjGYRUMX^ zv{^5L@9y3FBqgAlp{=U)H`%db*$%{H|I9&z+EL8=^(ANbJM0q->()V8`nIPbK(T`Un#Wl-S6=l*P~X;TCd;x-KXJx|6rxnJ(f(RiA2N1+mIM0Gfj{9b3Sbz zi2@0lp2-sBZ4@V^e$5-H8b8`@r0G+i_ljT_dgGO4Yj)oIiL=j}l`J}Ys86nM`5T{S z!TslbO+B0Hd|$+#-N>}eRAzT6Ni);BS(fYb_GZP41TFunit@MqHTC^k0WVvBybY*- zAGFn{pF-Up`0A6H_N``^NBgbT?+MyLZ&u6OgIc+gX%J=`KiY%elc{w=x^jDabb6i` z7ciR1Qp!7S4Mi}Xz_%F%yB}l*PAF}(t2%#1H4b#b3FhRE@Xr?{PQ$;D9ew%ke07ec zh?)B4zT2M)uHd^nb9?pv-S2l`od?9&bMv>|0OpwqOEZtosMQyVdeJ{CDmtUr>j(7i zZMLp<-uwN&^}65AfW-TlKcCF?@BbZk4@>|1JyHL`;cCVE2Ss<|mhbCv1oMVPpTUp- zm8JohgMfmWAi?Zy2Gr^VG!qsH71K1Ny-bKZ*Ndc9Ycqs_mJ zr5qZkM{mcaDhbx@w||7l4x^Gq#)AjYNldlIDZ2(nQr=vcP#lC};^r+A{KoqF{#b51 z+wv4(_|TMNJa53nM_J-Szag;*F^u(59d`b(cg^83WEsZbs>lecTcYPi#Y?K7!OA*D zjH;T3nyh(`tZhPhE$l#i{Gl0^C%ds5&Axhn-`GBIRm>|F_EDzNvWw$zN*GhUq4FZx zF5zNk{@SZ@#Z?QY3&j9E#EqK42f*9-2|n4|HibXNf4p--_T>DUS0R6P@X$SGv4q^- zFNf`d1;QarJpfLPzcImZM5%nL!A$rJc;ikKMolVG=^|;sLDUVU9RN}7!DohO!N1(e z+mMSOm$9t!@R|?AD!~42LXp-b&VcP6>z`c?xr`0m$vB7;`CtM!*8JjbU%>T4(kBn@ ziTYTo4FeuplX%9-hQQJv9M}db({zR6@_av?!1TCsa0sujW|z6z({E(&@Di&sG{Vm= z4pE8ZT=MIoHQGiG`4mH|pLEe$8C;3h6oHDR8`5Zga|+F-_$3H#(qFCu-|23mT1Sc9 zf@nUzKyiJwv@=xAdkE%U=AgO(;B<_%r^gnZc*rGB4B;-gi+511(DKvow~YlMoY_Eo zvCXExOgp1PG45TFlQfHq-P~BUV?CKF1f@3k6*Zp@vFBVs-_WEF&bI49mn}#K6{WGf z^d8mp1kXvf0WB@n7nPcawHmz*lGn6tf$7f zk2d?o&vjie$;QE#P-1j>8S@Glp^+P%$JclfUk!^;yGyT(YnI~H{K=aDX7v{ zV3v!SIHEv%q{!%=O@xE{@6_G-XaK&u12W=VsJ}6Y63e!OMWVLpPbvN2d3Nkm_-&eD zN`qii5A!vGiHNAurr$FHbL!wg>mT$YQ*b-|3cnJa5{ejGiv}H7EO0{+DG}RkgMW`h zGxRgCoD@aKXAPBy>dYYB*?URm9QmFB4cGZi7FZVV$+AEsnZz4fo+YLKy?kvL!!IfX z9r{xDM4@h&%#L~8Wl^DNNBo|5wn#6qEub8D?MjO9Lfbl0Y`MP(`*%pNg;bWPj%nhIw>a0{Lvy$<9$F{CD5FfmBDL=?=L)1Eor^(pL+|~yOuk*@pkKP zsyP~VJw1d!1=*`(A-NGt&=rU$8DlKh(q6ananrAX6!Mged}3~3gVVHW(smeb5<%zW z+%WK~NsptZdbsz9+iJCq3$YD7{D}i6`X|gsv>NT$`8-&{vrsxeGKSZ?p--K=WAhfN zXMf-CoqhwFZgd^8-`N^Z%hd(@JTuRb*>IX9;%){?zkxkK08RFiSXk+^1nLU+PBc9Y z@U!cC${>Tt&;Z;D!OMCOQIctlN6#$czaQLF_JVNIXLve3yFFq8j}(Lot$FY|U6SS@ z)n)|9O@<|854YXkCTkLXSO3t(MHn6gE&zVvvJIxMiSU=Za9kam4#Eu<5{n&Tu_`?v=TyWGN4W=H$MN>d}EGLEQS#)-OsCJ_0y>2d4^Xd%4b&SyQr87y-i$Sx0S zPU(xy!T zq(_J6*Vwe7YG1uQ;I;r&4@!}+PfoBJm@4yhFc0eW8y4#G6h*tX*Kwlf3))ex#fiJL zWrct6C(=fuszW8qVq&U7v5}NzEs9A`h~Y$WH@ss%gGAbBpRdE8V zJb`(>dMCS=SXDbzBWq2ao)C+V1N?--lECzE6l6(^^aA}Owe?cLIC)3?pm9il??1oS&raEp!*A0EZy2~{@$IFi6(c1gB&V1^{H6wXYv zz12^r)*6YGAfXJ2dT}?P=Mi9eNHK0L?n*|yejq4rJxmB%TaDYg<&*ig8X4Jr4GVN{bU^?*bIw~v{;PB zKWf)xHvpF(y(k>UgFNLKNYK+v>J;vZi`-%ic2$550XWivE+*8l3Wh7z9ZnlY8@z#U zyv$Ip+bagy8V?CjIp{kKu_(s_KmrSQJiwX2932k`ioZQpbAtmql3XAnMp$=@MS1uQ zYn(7;B;(Fl(=wVlGXWsPvv?-@*g3j;QS(OvAQ!OnULu~isOLmLp)w(WFs|K}aQ+(g zy*7;ZHumNq#yisHlB(`tAoTuJf~p;rUxQxIc;eMcupen8$O1Cili*_kxxW3*jFfn( zR8hMZC6<(cJc0RWJF)nWYow0Ha-y91$U?FRz}<^V2mxr73YjU6#u?iROktnkq1Gr2 z9YTKtGrCrar2;UvA#hPsRgL~{yv%%eN6Ftb(mhe*LO{j~Ci%Y_jhpH}|WnWUxUoj?- z?Gt9A>rWie`jJ@MNGLb7s^*@d`Hg18RQYWj$hBBCZm*oR4IA153eQ^5Xw?F8kah%FC@FxrrWQ zn}BVw?I6S!Kcjcc#$y{B)CP&zjth0UWLau5E(@7BNxa&oZarah6{mQyP?7a5MUoF< zJ_t4sfw~c3q1JA+592@x6gM8rW&~NL>u#hO>b ztu#?JD<}rLq=S1GeY-nnKlWcB0s@-)-EDF#ZKx2@HuE)13=LL zRj67?ViR=XD&L#37nYr7_gN6*c3>%{9Bfg=TkWxUEa0at$qts%9cM{d;9_hMiyUze7~}3- zXc1{)7QXuGT9F+d^!W)$R!2xbzBR^Rn-TyRf)O8@Wq6$D7ZwC z_8IJ|1!VPVAM+pGWfdX6%D7v&hH&c(L9Fj$Nsv}K6#v=+v#a`faUqEWPpONFyplz8 zCPJ|ki+gWro_-EVeMQNyCqmzattWfpuvk2uE*@*%h7LJhrpv=3sW227Rgv`3 zo2KMZI(U2-Rs8S!=3y_(Bi@x~s7*06eIywjPocrat0@%lp>7XLN1$Tj9MkVSbT`gv!xe3951nmNwD>hUjDPpqN^N~(bjeF8uN zu?*HEs7|D&m)N}TES3R};y}E&YQdVcfo@QJN|A)Nb^>-dEIn@CavSoy-Fv&R+(^+q zxxJc~4d;c2gzT5yiTno7#@X0`qI6dWa{@(TJXpr4+S%sX`mo}q-OdfGReaPqc|dx$ zVOY-?lyp^(6Q$j}`jG=QdeKkp`q~{IXqdsJcd8Syd9dC+*u8D2!gi02=J5A~R{!m| z+5Hx2yP%bRYWtUNb~c!TGnktsWVo#1k|aiYFvwi<=dBQ|?TJb6wfLyK5w^I5u`*N3 z2GiKe&6&p@tK+vooLDxBF1IxL`$^()xzdTc&~;M~BPW{54{b{#Ut}SoYA&FC3$PdU zWPMFh!T?n)22#TS;=uvCbjg~NX4hi}!ePbb(B+L^f%#BK?N094E}MZDj4*njQZ>Ac02IUYXldCvuQ54k&_ zW6kFJW%!YLR*UJl>c^mxg5im2$ae#y+dNk~mZtmUjJuneoau_k@=I$5b3~*U3YHGRr=gl3e)xYl< z1Fv)5%wSAJOOWC;C~}@8tTQRzmxK}c83HFIbqFy&Joq5n`S6K`P{_!^UdG?t*!~B1Yc0-+qnJnqUk?jc51$_#zJML!&K(s= z92ILEm6#uuIv4O^Yy5G;Mnu%=$?D!yV%2q#I{Blwkh|xTjQk1 z{G`|Uq|Y~|ui{?m$K%1=6BF)&q1KbOE*{5k&xTh|Mh{{>tzxJ)K)Uoj*AJ4m%^BJ6n)AThusPI=EkGf41WO z)Wr8}HSugM_pI>n>92#Q`Z%hI#M8~yv#o=(->}%%xu+iaiMtx)Kj!2;XYyZP^8Q`& zK_Z#rb97iiK58W&50DRDoSd$bnZa;t)Y(ZF8Itt16-#?gIdE-Ts5gm4!lBl0N4WnH zw?^2;+K$Lzy0Ces?3;{pf;v!!vHaCtv5`Dw-?7@8f5b-%wC?V1{QM(9z-f}1<^1;~ z$4aeom2dsplbWb>sBn1cf2j)p1a={8^VeUQsRqx1Ou2yl4Wn#nI=W7F*i{%1Iii^FJ_EewR%QZ9YnG%k5frq=+_aU6F3wl00Tq+w=O}+zXfye4wvxUaN*EWwewu#+|m|Gt+)pwVNa*roAPtNbH zxxg63gHE;fH>U6N1oPbcQk@rcxv}KiM;@|GM2)DWL*MX^$cUX=O^&7(Pwt;!cb~M< zBw?(DYVBFIW#}7>^hTtTa>E(4NJO8G)E2&YcGpOu1pYe*uHGA(!j{^KRbkc_yr+t7 zljhqp5=4_NGR-1YpH`+NZ(=Q2wKFLy(OlkZl9rm99t~LQtBQmdHdoJH0H?`eRVI?*xaFkCm zm;jQtF;d(Xt$AvHC|%p&`bO;K>uGXyfakTbY?#=c<v3sxkH?^uZ>E}k_Fe4*4Sg|n|qR$8keR#Z`e%jt-&81EiVnWZDby^$Z4?&;#p4n zXqK&Yq1z|~e$WX5qZu8)NFyWoR2ov*QjM%-(B2@{wpr;Y^|1%!v3RMiWWaPc;7fh@ zC=!^l=`IR$@zp^f?}qsE2F$O--=j-rA}Qq=si`wl@S9PsP7A>{8`(ue!!_X^w%X~V zCC%0!;b=pE*Ce!}B#dA7Ba5B2+(&E9HB@Oe>^&AjP50_Zar)*GM`Pcu_S1-&w?n;; z2R9oqyP8vxLL+LEZcFiMo6F=z8;!fNOP1=G8&(wsm7`NO?A0V5&#@2KNNetqB!)N7 zTaj7)a;ne$HW@)kK@$~lPqTbF?I(y06FuR07cj!J#RHy+!dRf?*=Ff<7abG#o#L+h zI=dfyrS1|ibaWSAeTmFSl$clzWzd$R%Q9ELJ~duDqGIi^S^8&o(SqH(*649*_7B3y#NahQ%UTKiub8AaFZ~h|d_Kss)%=Wub=_s)&+nD~)JnMcI%LaiChm!1vap z+sc)OH4PV{_)i4ku{|Aol68FF+Y{#dl~N;W8+67>dX@1RFs}&@ZqJ9`QYY2w(BCZB zFZnrf$*!^psL_b0-yrwvlwPXjzA`KpX@LYq;8XHq{6gg$O&CsE!KQdDL=9!h#IML2 zF^Gbgb`ZnVEBn>d%P>MQBD_m}dCZ;Ipy39gy@I})pf*L`4b=5lQ(dxFoQR8Iab_9_ zOU5!a2+y(~>_Liv90%f)r?DLq?o-We!0^r_fni_*q~CJUTRy`O zuxg-cY=ppoXiK;kq7%JC1R<}k=wJaGkK#t`Q%bv(T||4+0>hJU_}E9& zsBmW@QG^WNVY>S!h<^l5w648eX=G9&UIGWII)zaBY)+RHr3}CQK-=dAHs@toid%eX z8}ZF-E)_4dP-Xqwr2aRNZ=+#Ajbvfv+=6lBD4l(2ORTpxineL(et3DWhkzeh8Y?qA} zlL4TP&lcV*xIR(8@-ASy<=2;YyJ}eEOBt!n{)wT|OX7Hd8ySH4+ShMYfB(L$*WCWs zUWb;ZelJ;{ish-nu$EV^^J~40Wv1J_TAC5lwZ4uuu5{>#=DPcv7j0y&{=`MRZh5yE z;z~!JncL;CdUg6T$p7KY0?UCa4_H1dt7dlP%($)ZzI-^-ZMPo|t#2nUl;19?ncGb8 ze*5)QKC)+~VI!=y;|F{4-M*UnzfBr#ed`~imSn!ymA1ayf2Z)^uhIPBZtHuds^A9@ zSt3Zp`~8`2Lo6lu_krViY`79IPg&yC5LDgw?4htE;n%e0Bo7WBD;h}~BC~BD9$D!E~RQ>n54A_#2AvzP9{eG{M94GOpd+BY1wn|DVSsmBdS-trl z48!boEZJfSB13-~64llWm!%F;`Am02b3TV=dqf@z91`R8&q5yst3sHX6|Gda@hKi; zD3Q~&h>Bk^<43Fk2Bb@jfB4ZYNk2RfqPq3x1*9;|@NVQs0v@7}#FC<)9mN6`gxN<9 z`RYURB_E21+w(Hqv~--7dJ(jz!O!Vqzt5{@$#H%L<`8Z(=3n|-LI6L{o3G=a zhp^eQ8>}@`0?#FLB(@gPw46jf?rqQOSFXw+nWOmn-eS~}Mr3Z$-uPsq#BLwS3|v(~ z#xdE6*>4L1)bu#0oVXPYH3|gM!B48e@c^eCI2P*(>~i2a&K8*H2Z{WY7S7J&)88nv z@%KYUfWt~qn>uDmKn>pY{LnizX8qasv*#K;e4{{;b<7;QdrG(A^`*!(9r7Zpe$*RS z$QFMf@51SfipVdUZ1!6GOy^nD?e9Dr9;}7$rO#$`PC}XP!Fgv)9<=D5G%DSjg}AQU zJypn-d!#L?&2$H;<$ynBy7s7j0fJ1>-$nqJNjCsZL?nFvl*w)5+e6)b*t~!pq(i1^ zQKj?V{J~aQr$zyYNP;mEbkjhx9z-q4lzyIh68_IMfZZ3hz+4~Me>^LBM!2`4@Zzv{ zJZ2|VLwowmDD8)(LOw8JhgMNOd8s~N%>7tx79=ic zzwMr{1nhswLy(LCmUwz(fl2a|J`xSsyx2_T-1^B+Ys8UtsYmULVXNF#HG206hS8j; zZgB(azmZ0N-Hi1JNCzkPZ#Ug38_oyC7or7VE=VRU9^yp&Ny(T(0BV~BffGm<=sUGh z5t~ENa?}gvZl2UHjLS5JCpQ<^JPp{v-wxPKyJX|J!iu;bEa*3T^kftzd_f(45Kw`4 zQM|pjvIPl+NLt2XXQgjDD;Q?B8fAI8eyRaOU@pT0wgJg zB*?rW-FOsOY}Q!MZJd6xOY@{>z(%;s)prryrYV3A&8dXlsE-oSlowN} z%2S)|YTjJZMbJ4Nfp>PS_`JsT&M>-enh)x+!48%uv2&T#QiUR>$i@OH0zmb>Yt&@EivSjEI>_;$^;avyuGJ;ZBKwXZ|;~uT%o*bz; z&2*c5OFoT;9?hv6b#ilBCWUx4Q@uys>cnelAB`n>eeIWxB`qLf98@Y;BRyp*O_Y&J zI?>+EH^R&m?uBymLD=623}YPHQ*R z`1>NYsM2XZ$pFhfUM21)6%Mr^)}sP?wz!y4iH2_ySUrvhdhz;pMlHAcX(<8=K7NiN z1~ki__8Yz!mOKZu%4F9O?BmLmy2|YAwd798x>Cu9qmrpwi4VIa9|t8rnv_i2_rnr= zA5;J2*{n?CsLHtBmr7fec{wTQZ%$VCWQOOtba|;K-50X-q;e82XA3)KUardhk)z3P zp7Z!;R?ttSJ3n*FrS4*@?xt5g+sb*`#GGF(RmgqrS=ivSA2+@GesX`jS$I};W47u! zW3~5AmBj@qocOPJ6gx~76iWo-$cXAv<;0?(^cT|7<IAm7aEGK7=x# z>Z%kfmmMQx1_;E0xj5a}P&M1S@|RLA`ljL;F>0v4ZwrrHUnRNZ-fQzK+%b=Qupc;Qf4Wcc3{|QWct3wsh;Hj74Nk#nDAcD4rXLd!J9MO}dg)3o;S2l4s!PaINW}W_mYW z)AJmQ8#8Gf#q5hwV19vZ*APExtzB7&XS3-}s125romSoGd0uNul zpBmma1Y$O5lVnFnAs@&;p0pI#e)9M49qsMq=9V%Q%5Ui5CS{DYKt4_fj;3sk<^+B^ zll@ZcPZ;X$T{OHtijgnPB(tGFa<|6ACO+!j>Q;}}EkM(4ODM+}sB2Q5&K^~S>2#f3 zT7KY{AGeI$q--o8BJ@2rm!5n}ke${;(=}sOsd^}?%ywolT~7IoZy0f2!?eYh^Oxnm zGuHi>hyF`vHO_vjN6sWpR|gFTUg#rxR;A^a=1XVCdPEDr8GW0o1c)Rq4u1_If|8%} z!K|5eKPc{zHtC+t=Tddb(yui} z=_okz_k_O!-S_n`(F*i`dR2*q6d_l65=7VnFF%V>2t?7G{3C+RM#AXKqE0yamdq3p zbfGM;IQ)v@7PS(Ba|Q~a^&a)?wm_(i(RvhJTRXh!b`M2udN!h==}8?dcxUXs5+g=w zUZ`%$dt6Lw)tSs(TAZQ>L{>$RsQkWmjBy_S3X^P z_sjr8`}%P7M}qQs5RsxLdDF4nsz@vKs9E|;jpHk;IsZ!m&UG$b@_bgI6*f(NozQd31?8?{2?{<7ynenPP|PHAoG!YJ6P zCnle(qv{pfdau16y_WpDX2M$q;KjXpi_td5( z&W{jFeUZ&2f-V%#<|iG)nT?_6EABEINW`+UI_4-;KgB-31;e6QaA*udScFs|Y+V9YYMNaCw$X?6efPe_AhN zQ5g1T-c)fdZWD6V?P_2SHTtkkH}QCzPfppf7*XXU9W^qWUTC!Ns$lYR)*b4!^HR6O zjKyl1C-^4)6Vrr(vUMjqNU|@TbUo_@ZrLe2U-r8@s9LH`T1b-6%b0MG*&;2amza)f zaKQe{oxwvC!5{!cxie4z1pR;YVF+{;#13#%{)z~I;Jg+Hd@Bad%;A>Tu+S9`a1^-w0zRp;`YU) z*##L33g!T|CEyS(b_&<%^vd;1%AK08b;$aZvgqcGVVuu+^|j#^LAw&KIal_8^gy?_ z7k4ro^7e3JnEMQ8F9WiFI&?o^YL}aBY3#b9Pgf`DqTs<$PRBGZSy|omIh;dAqSw$~ z)g9}{Tcg)j%J0XUImR~ojRs&;y~NFJx?m#FEgM8zp2hY#+@?Pc1Xq@9m$r$y=H_$d zf_?DZEEN-9sUg*27a|)(AU8O2rv8kccW3mO;$GM-G?KY1Tr_o$t#0$fp zDBl8;6mNsUSS|oB0%$2}PCTJ23ysTsc=Ld8j@@Ch{5I|9(sEPP&rWesjO-AA74;@d z;9{oYlo*VLIq`>6aA#C;27Ip1&opH+51D$a0C5w;M3b>t#8mXx?+*O*?o^phe4Cww zbXy6VTdL6nU4?8WIYr9($fE`ESd$$CE^z$#^Q$MW`&YX5$^_K4aR8hy>&GBR2Q+nC zi4KR;eKdNR`DU4Avt_m$YTHV$Bv}`nrt~^X`xVf@)V5KVP@ugERvb6(YYC{o;h9-u z_m7V|2PUNB)i{24Xt}HdJkTz0>t*Eh;=SKFZNL1pBeAt zyj?>B+zpJhw)4x-`^{4x@cYmKA5EB*7NXxmwXNPMQ^=C&Lt-sHXw+9r+ zCwpJNZ)%WMU%WqM`}te{>?CWDd~yz-L~j>Mg&hPPLqYgC;cjN}QmnY@AXsFL;ikb7MFBKHgLW4mEK1-Z4;HD0k(eBLZzQPM z5E;o3K|qII5IA$eNR@(6f*c6$GtvMf*bc*M*2O~bTZF{>(Q1(($vTKQmZxjIK=cx4 z9;sNrS2I~)EF_LWXX)G@A*^AWQalVT%#w>wl3i3v^It9zAiE%RkBrl?s!2l3Pb~o1 zrnJ;>FF~PigXWC8X&F;J`stEbsSP2PDepGreu1EY~q)F@^K<6bn$U_29 zS0*!aT1Ld=??w$@|23A|aZ;v;v9v*Q-_B`q#u6~(PSdnlIN0fGJ#JYRu=K_P(JzrmC8V%QP? z{bKz0fNfB*s1L)Y;y*j6v}F2_&p3tGa_5Forle!JYL#8ta4!Fq2N+7gW}Ksb`|fmqr*T;Y|UGfdN@=kmg<9Fs4+u)4*0r}`55p|JN{_1|h|v`Kdg!|`8few~=n za?_g2NLL_uX%VgMEI-#C@n>@GVQ&3=Cu(!lgKp=OfI$MYfI7Y4jsTD(r2p6^s>%C9 zo{Vp2?Hh`s&og5I>WS^lpW~H|HP=7BeH}0fTpxb$vhnHWOxv?3uk(2hw!Y&rbOIMU z+IE%(vt-;yJKo%`F-@9dfv+Eq#sCul(OcIyIhGKDBO|}O`w_2q=4HWC3YP)=RxY&+ zIveQXF7UW2KD2H6ri4DDS42g}`VD-y*an4+$bo3##_A~gUATCIK^76sqhxH20>j(7 z)lrH@!-{l2#nY1k9Em>x@LRJ@1c#Fr1X3PxI;apT*JhQPPasQx(gV0fs%TRsbDCa1 zyaW(v@-4|=6RKLywy7I{%aaYIGO`^zcR%HlmsKn!P5o(@MPfzYbkl+->?{~G;f+v^ zaC%Q46P?Z^(D|HRQYylp&@~`hn;qqA97A9xDj6wa(10~T2+9$F>l-Ly5<6lNaU(XE zv4M01KbHD=aNDyz>;BfG0fshwWJKj(ivFdfyC;Z6#7}*&DzG0sLdcc7bPotTvI*l9 zunq(bN;Z?G5%RT^Xh6KaBkqGhcBXszuAu%`YG53X0_?zqjiSDX^v>CYN>9%IG!C%>f3r+c zqZC0$+JdgyZ?DgP%*n_LwOKLu8-c3hw*{$ceVzqAsD%UEEm!j%7zOmx^HkamBr&s3 zhur*7|(pN+vD7SKV2=-&x`9RXaD7%>KBtPbN2#W)_ah0si|!z z@A!Mr)NAYc*lVZSk(`TfUdZcH3;@_?T5Orz=3d+bZ7mG1x}80^2RcfHU5O>l!H_ZF zAEp#t%sSvgIR5i09|qj9`zfBh?3g56Z$V;uAX6)7!0?Djz)<$yK1qsYI+1b|hzF?% z>p(P2@Yk0<7~fYu5vU3$yaCE*glwedkJ)CPdQ4XAreX{*Va7wo*pipMZ9K<}nXIuQ z2EYuPWnyOf4jQIvEz3;BkwYIxB`6u=}Ftz*f}t31h&W`l*6ap zPybZKw7=M~9thA_fS?Z?=pz5t@4t@;pCp2s(~Z~I6`>QHq9y%|LiTMN;)BO&S3sOC z7s3i|!P3O+TWWvKUZr^34Jg8IxEPtkIp$*8WW0!J8IRcmilLDWA9eWuGX3_b7V@Ie z1c4^La+~zXqOY;#{j=(Wa}@+`$jx{v4!7Dy(;y>wW1l_k=^o6@b}si4n{`2=d*aWs zM7AU^LYD{9sSIv!0Q~2=7lYbB`~dHNTX%~P;tR?|k~9>6(`WpXg=fPPm~e5768^I; zjl}*mZUq*oCCj2^$etT*@R?yF6w33dKXkGYAQVr$_v;=Vt(v>~!*3 zwbYNVG@-uM(>vBxVVlMiYPu(F0~avNUzjE|@xp`4>u}dl<5rEh=~;1tm~O!-urS zIJ1dlfyM(ndNUhl2-C8hMLK^xz~v=o08S@zdzmD{IILwGskrpyd+iKkoZh%Ui6k_d z-Lkj(xngiRLdx#H?%BVYlTZKNv;V`K{2%7z|F_Hu`TvPI$#4!jT*><gw#?F&DE$n)e>xPH0S4jZ$*d7)zfYNZnfdLZ_x`(ybwW$^9g$lqBuuC_O zCjz3=mcjJM3(I^_FK$}Y>o#}^cGnQy2OMF|yJ-e9Hdm;{UMN~{XG|40H{ zV>w4qyCjM{A+kq#1hF^|0FcWDW=fEYJ-ObteD9G)=bP!4( z6bV{ev0nZp(3LJ?9WjVk^o)zHY8H$e*jfIB6Zy`H3o%ufQ`+9%;eGphy`hAa7SZ4- z!2#3=yr2JgZ_NY!D)f|RtDdh=t?k5_z3G6zl1ujI6Qh@|HNC@CKekIdxM zr+ztAKb{7ZfB5k%sQ=rKf{-yO-@?fGs*1vxAKzA=KcJ>v!^Lt)R~7~Bviz5j@qZ&3 z`ajen{#U%T)_mrzI5UOYFXzUf#=vXJUM*DPs| z31?!|&HGBc-f<^u{sK?lM)#HT|E2>|i|KxkQRu)>LbwvoKXl+9H>@AMv6};v3Zvys z+W8GA0LzzVz!ZmgZvW`|4?0lAE?$v}%Vv|!_gu~u*Zw}bc484mwUSMbGfoNMj`&r) z;}-mO<|0&7y|a;a^o_Gj-gi#z2>BPQ9h5r4BC;tWgu z5VJJr7S*z}Qu#z}x=etQ`ub?KURg`LN`r|96nB9q<7P+WWejR(C%IUnC z2bsF279gZtF>V1X22>S)$ei_fFP?2J-@y?OShdZ&ekp2XGJ+s$I=9T&d@LET*%<#u zL=I5Ug|5FQa>$hV)2H%mz43Yi8_?ExJ^a%8V%YFj%a>?VF_T|K>*HK1_iGd!O-zpz zOp@5LVZr8|x9bf*SZQs)$p=CbF|d`Ly4PTRo6EXfA`>rNswzP!$)LQNMwcW(YLw6p zN48ZL{o(o($rFy-W+@WK&GLCvx;@nGUl$AhxFl>;Ob@H+d0kZ21Le&S60Rks3E66M z(eub@?=9N$o^z6zki2a@5n&{g4dT;{TJVb6N)o1;8dm;Nc$N1npM8&-T!-T9YB!f% z^@kXkJc-Ekg$}iVm8c^vCfqlE-2Y$G^Z$((&yi9I31Ub}4@926s`!)&ra9xaYOefTVv*Iqd}v-Z z{@gHLuh8ms^_LnKl`YwCsx{8(V%Hw_!^Ir^h_%Sr~kfXH~9J{v?QhP zpG^P#%{SodJP{55WcnITHKdxEehN;TT|L=PiS{k*Y!|-2t+dMQ>p4MbT z;gr@>UbwHu$hNoKnyd`|?)J{P_4oIT8<0fHdlXLT!EF)er%`YItOmpz!{~4ad+Spb z(x0{(H4lChV=1-|v5n^s|Ezfg*}B`S9v^HQK2G~h&^|pT3DkZ1M9`rG5@1Dl6wqc) zMDJ}T;_k!MBj-_|qg5jIyHq3&&E_-6hXs@?7ZL}rSm3aNIexr}WDmc^l=sP;LUOYG zk;O=^XvwA2@;6gLkG?Fdl>|uc`YxrJTrar#xDT2TCd~z)(uN~x+}e5`u#*1-Vn`Lvtibnon2EpY<7=X z^Sx$`N5hy;jh$w{a7}3oQJwALtN90%iwCn0xRshvyuM|)RA=qq^t+gjQGWMgWx%`P z-Ryw&lVZB{s3vNgfa=>u0U>RWti;XkcHxuN3It{*B$CQG=2star@XP5MZxO#z);x9 zT&L(WZsl^ILZ|k_toMd;nan`-_DDx}!Ca4KfU8QE$iYVS=v0wxbBVt8?C$56EcXjX zZ2mk|?bk5BRXskw6ZjhEc$ar?GT)P-@H6uFx4$2(bFWoReR^50UgbwX|rG; zd_3?V%x;ye`(u7EV^ia4=8N^xJv2?%7N) zYtYH9YKh>*-Ij$-ot&;eg~xj)M()pkPvyGYC-&SWm+UvGDV$-yE1Vr2E~QlmlQstO z9;|#F_#}K-9~%4~^Cy;(eD>+~3(N?GaQ>@sXI+Mvvc1YZE!AKME4X&bpC?4!ViwDG zVhg=@@Sa|)lBXVl#H6owabEGc{zF!^!zY}%Yn*XT)T~h)o+vKsBBc{tn%Qve$6em&is%zLj#HiT47o}A@uGmEKO`m;px!uDZx4)dv!)b!99QbZr zVaVZ%(G)49^E1}GoIRdUKUkEyS)p_F%CynQy^^1CI|&jrGt)s&Giar}GPHjQNWN@P z5TzG3xYKsa|B+0Ye5SFnwZZE=-i$Kkz^a=DZ)RRQYJQU0#*xQHIf2`>Wv!!Dj>lYvfgZ7E zPV@kELBPy;qW|zup&tOOGN8xx)(_4xDqy^(W?Gsg-!EYqfAaz$iB{n$00uz!hyjRh zfJ4fg5E>{1Q{BDv@Z*e#IGm5Gwoc6>Z2UQu2CaW*+D!!441q0?o&|VGvx0N+Qd&dZ z)kuVH+R{i3?>&OXEs(_HUACc#zyb}zwt`*TsLjN^qKb=8ob|6-hxz}=p?`AdM*hI4 zsNVDDd8b!kcqxmqwo*&0F*V@u7qWX-32^Di*AcuifAS@vCVBkO?V-RsK$?7mnIGaV z^R-Rh9z9t(RZ$ngQV9JtxYLLp5Qxqb+#@4`QVE~k64jTvYSgakt!+NKcDZs5cDp(2 zp~KNl4*PAMqT@!z&lnkx+}W6m-4%;{>OHg&i z>gKh@V>C+@%E%pU}uK>WIE2q+$0CD52|I)*svk~BLiVkV%%4CEIt%`N%2O z_*X)uT75}?s+Ms9>zvP@A6aglhemZjbq1nNse1mn+tEcNPVq`YrMooZ?kufK-cj!y zVmT^UM{Ms{ozCeEAJskCJml;D)tBEzK4q6ti3iA{~yrkxq3Q@-UG^MM*RCVzI}klA{DzA{qfZqXJ;)fi_6w zH~3=`6}2apfb{zY0Kl@{{$dg5*3mNTSa7xg%n1r0P}6QkQ>QarrUINbV>uUN&X3>) zX;gA8Ft!8)j0!M|MJVdWP5@NYM5r6R5NC04dBl_ARf;S=h(plUED!^$ol_;g| zFB>Nl8f|jM|Bythz6+Q4gc3*$w}T#L0{~?8IKT#69TjJnfHMunvQgns*;LG^*wdZ( z8!dRQ8P@oOSZ4t3DY-E2PX&TG0c*P(rIO7D<%kVRqvH2O90LG?DC&0@THg=^*#no5 z&3{Aop`#~)Y>KCfrandBOi>R3Hi>&7iDyL#Y^Z4GLOlF#{ADWa8J^w)rHewP_*6dZ z4Mm7&M}u0Tuj@zWh~eT}9?FG2Os7ia8pbPyVjVrBPfwF;JP}Pc4`Vs7sfY*gZ*Z?* zS`MnmHHgRGLTL>GJ!&wtn$gbr*3>~r1K#xeYo|eg_Xy}~_6z}f(DO*hPhBb}nw6IO zZ5-lxI|w8kP{Nj;q?qpUL94_Hq`MK(vmHd*k@)~mHOkVBj*FVIxgg-7$Nm})IEna* zc7LSJ7)h21Jr4~t5e-tfWtLEp&i!7S<+ZywCY15^J<}nbEAJ5+oLB|8KI_rbDbIVU zEcy`9r&K-ny-G7#HJ%)zZn5rVGW2A+G-TK&1`lgyu^)v<&pq`GLlnZ(JUP>e8yVp& z&jziZSX{|^U=S7YURHoQV&fURC@1!lHS61ohydbL>Y%Pfr@H5neTgi&l*(ZhR|j=&o48UGXCC}CPj@asQWx*FI1~0UoUVMD}A`SfPZsLnan=eM-1zP+CUkwU! zKIUKODY$NyCx3)P$oMe&7=6$JxBg{HE(weX_hiWkRk^EKQGToa2{Jc?@d ziry3zk>3{ie=2e{C`N4-l)f!)cPjo(U3gots2yIsEm~X(FHzhq*k8Y0Gh`EoWJdcxgSp^omod(terTW(kLAxvXrC zo_AUAy&Oib@_zmjucTtjTloun<=N#W&nn7_sVmZ|$``aMTB<5uCRRN2s2J<1Xz;2O zk1mfSOH|y{tc(<`EV`R(@v>4(qx?jqs=umm&8tc@x@xPuYV2*9;C{tMU-^{S%c;aN z+r6r#$bGEe$4{8^4YM0t-SC(qme${Spy?Vz*lj5Fv5k$3{^9oCX?=QXj^6S;X z2plUzbx2cp@}TZ4r|wr<-T4wFvQY=%CV-R)5IX`aoIsUJprIugJr`+k*GBjt7-<2_ zcCVSjU$Z2?X3Kre)Bc*b`ZaR-HUIC|0(SL6;q`*K^&-{vV(sV-KuW-MS zCx^dL%zdNK{ziV8Ao2~a&fTDKfY6d`fK9XNhc_77=^2bR7%exL{%*K+&|tycXsO(2 zmD_03-e|qtXnW9T|GUwdyUCTd$z8e0!>-A*y~%sI$?JEM?{Z_X(frF^(A?$+ zxy=AVbJXu0E4P)}wUvjrRpz$6Y;UVsZhQ5+jlkVruiV~1aSVmGx8%0BwYPUHw|D(+ zCvtc6DtGkTbqt1g4Ci)?w0DdxcTD{5nBwl7QSO|x>s$!$T+HoUYVTZG?p)*UtRwF- zq;D{6DMQw2ImrkB2nz=z0KX7mSxi^bCIguO2AYD&X$%sG?rE{^htnY04F=!_gD3_h zi|+b!&>h;-4dem*#DIS1B6eRA?;Qacu-+1BT?}L0R2p?GE9?w~3}BufK3@*8DZpMe z1I)e`&j|i0)5|l~8`T4#BT*)95b^5Ga_6jc7zVIC;F3CosiP0W2;xiwg7O%^B!Dck zAD-T)-ND9*Mrd#JDWU*8>JSs-8XnF8{b=A*E0C3O-;J69SbBhC3fn1(0fhj_k&@he z2buE*JvRGTC=DJA(Y9vb!PG#IFN@DPLqs71d4u71`;c~8-?hf`A$>-$E}~lk&?6!9 zmXti4G&bxe3n8_?O&A+GXrpX}v*fFcB+@k$sj!u%3pjwX$a44qp=nn)>N_?R!8*<}KA95n^V+zLlP3U6 ziIgK&(J8BW<7+$<8!8j)_7fj`C$=Ic_VXqVQzpK2OnhCLAgN4#v!6VQnEakHd6GAI z-ZA;NX7V(J_Wuh-gaGt_e6RrMKO}>ajv-Lu%%Jz;_QRN>9_xQ`X8pSY@^Sx&^M8|! z|3#e5U)sN|7uIGH-l8$37 zuRji5V_+^fdhgWJ&Pcs|aey7$-~B`@`5(#fdYbm1bj%tAsH~S4J?Gsb0cUSh*%4)sodF!Md-G0gxj_bUAW5OUdfMZnC{sS zL*m4o6LLw&e)R|0a?V%aP5)b#6Nn$>3%V3)r>1hU`|+_lOnfU%o6T!0U0xr@A z-d2XGuK1@kRkO-Db8h!4VLU1d_2Jnspv;IM$f@2r)w8^6JIA+a&;72_w%FPu^98S+ z{Lt;Hofi=&KTB^|HEqq|)>*uFDNhu?44*yh`1YwpA_j#JOOII`Q_OaMxmTVSyuVjb zh?Cf_EY0%Xuc|D6x&N}JX@9?(Fi4j0scG04hVy;w{IK(?<7EG!jtH}Jy%GI#&H|Sx zQhg{HQIq~rvPfIrvLGC^9D}xOUqW4&zIKS^6D>bhfN1x+DU_w zUpu}p_f;qX4BuSMx#ibbm~b?x&Ite{HO=rckB`Z}^F1C%?bIAksGJ@iPpZSEzE5eh z`+c9*7p?t1W2`j(y~~Fbtv3g7@%=Gx<5Bx#!9L`(!oc;J{<{YBkr86|OVY;hP1$iX zC(Hir^fVg$XGHy#06y^eTEr>&^XWSFA3}^{_x~4XrXa)=rGIf|J?WoYPpwU^N}ii^ zHpTy+M>+Fg%wz7yQn%i_bMJVy78!TKcuUa5lxX3x8r8+nLs^5bZ49$x|JP_C!(U1B zk7j?x?8^U-XyJd3as^%cpf}PP2T1YUB3!IE23Q;HvjO6haZ3EpQ7#Vx;rCQIy8S5x9#kZED7@(t zW?&B8=w%~esr6AuiKZ#VEG5IqE;dI=HeFryS2j4OZ>B_|P3`TC{e0y4HTqa@tcEqafTV{Su=_S7R!?sJ` zvRcNKow-do_$N8j`3Y8s$$p=fvFa9f9NTx&!j|%|wyVv<- zXo3$-b5u*+71){D`Cp-P;R%)6qK4B+w%?06#w&G|My4M<_+EmfuhQ2uoOzN%(W2j| zGPE9<$!hyvCX-ra>|r>Yvt&`eV&9`g$2CqCe~JWYmnxM4=|L;sEA?-@y!C8kuKe1M zD$~@L78Qo`FKrcy>5)XrHPt*$->1)t%qs3mX6GFm`OFFa!`T)$2LbWmx#1L1iyUfR$r12Ve zrP22j4^G|`I!FRbovh=vukg)6(5CTXsUy7LH=OxI+LuVmG?C0El$om5KV)=y?bk^& zQAZM3{5rMv!+dqzr7h!77MWm{q#8o!E|s^D!~P>=i{cF|LybDGN&$|4{{3X8PW;+WGm8c;Q5kdWues`?Nuc z*Y44CWzPVXYb6b}ekFQSyE?SRG)SGEQmNYgL@oftULORzfZV`*Z0oi=1I7o8$NV+i zY%BbGnVKVS>wX3|#J3zW+2U&&t_Jh>8B)q1#{)L4Vd+Ks$}2I#Ce zmncjHfE&jB9QA^LWhSr7cl>gJ}GLM__&jG66F?em<;B^vD-h@OHV8~$oaVH4z=PIo}aKPLzIB7qeru>d9NFEUj z3E`+_3O$D{7OX?_uJ`%FJoK?ZdZe>=n%x>as<_$br%n`f(3M#U3(ZDz6gt=uf(nD9 zY2O8|{P2@h0_`3$e(;@#L%i*sdB^Az$MGHdNxYdc$unv2{=y*SqA)}yEmBY? zM8DisfX#zvG4dBaScuK+R+HEHGc%uZ2zMyPx(T~g4$?&i_<4qPWKq-?En#lG8$GzyKhz$;$ z0!k6Qu2#ZWvtw8@@ty1#{8`{iNL+(Wa#3d7u+n`jjCl-thyO}EyPF?93G|BS$&8NY zDFbH&gHA=AYEWiLEncz1ShZn?Fi*2v?yf!T0s4bbBY+cQSy*Ux%zTUgl3S>to`0lR zDxD3k3is%Ze$)k+*EbGm+DQ^4?(uBP<4@TkYK5t$Y>%YUa7x4An9xKOeWy9&*DJmC#M3FV99(8xS)=2~PFx37 z{DiPJkC)jjyQ`Au6PLY6g$-BJLG*{LsPZiLGn^BS8qS>NZH~=g)p_Dg^a3xqD~e~g zJj;3<7V~GkWc<&dgpG z#g$|27LiJ}OmAz6;M_|N4ZF>)1LAw1Z*&q4v-Z}IiN3ancg18e-uJ&9?BIwCaBA^i zgL?t5J!Mh28?_h>cE_wLy1y3-ld$qulmQA@70}}f92W|0f&=R-lfJvVzFd6tQt7G7 zcEQnExbxIA$=g2OyI=_#$Lo8KNI%mcT+SDsCq!~&k#`F>T1!-}Swe_(yR6UH64NQ% zX7BlZ7Gb;TU_1WSJ0W;i5hW0xI{KqK!2Bg_Nf;(Eb;m>obZULie5wq#?M7|-P?!pP z+LXsw7Qk~YOUMI%k1F)DE{p?~#{?~>9=ehF+-cjxTeQ5)e!uL>i2t9=3g{42lUN{) zuOyKdoY6~VvnY2rng}P|N+*d*ncL4#hsrG%q85La?x8A~kU^CpKJ|L{Bs?lr+g{eZ zw7AYyy7e~hUZTrR*fZC%7taU0hpt+-|1#@LGV5Y{F7=~YM5o4k003QjNg)|}KVE)p zje9#NJLXY6g{@xyRNli{Gxi^nA@Qk3)AmKs9z&;o?Lv;t(vscYe(fQJWF(nwa8*y+ zUYbqPZ%!)x`d=jDrHA^jn!vF1cKuhuUUlZc;6~0w|tR{S?Fud<=2;%>!sUk__*s0Lroc#t1HNN>pywF z<}d=>nSG=7`wfL;Xe!G-B*7`RBc0p^!}bQ_>91Y8*OqMEqu6b zmm3{_H=?+JN0?{YNqm z8lUCtP(dfc-c-QV|>u7G*;d0lP z-(611or22x3wB(*%-T@{bbUlx+cMg}zq6Je3mEq}=Q|Y^M zNRN!@;~VQib@ZvM^tnp*${Y2vIQRBO_nsfnx1{wOcJv#s^qZXboAM0YQW>zYAFzrT zu*n;+?HI6M8E`!BS3K-A zJ{=%rZ0N!H5SC{+MrAn8ei#=qoRBx1MD7?)Ss6~fMDLZ-6iR@Y5h%l@&}Q=v3yQEP zt&g4OZ6VKyO2^>$-%b7z`Z_#A;ym<^4u|THaMdZWrVONLV>qOPP8a}7jG#4~0@YxK zI#xi~F`8U;Fb4o+;5+(|j^-I@v?h(3ok($Ojm_DQFGP$_BS&15!E{sObO?|N0u*Z6 zND*0~Zh?6=0(eZpe|x*!YQ{-ClRHKu^FAXLM}xW%jx~hI^OecJ=aYZVX_`q8S}a&j z9dw}(-T;`QTb-&QQK=B%7wD(zNYomXaNhW2GZLyhHO2M^Sb(KwR-L)q&_A~a3#>cRso_v4L)5-c|;QaOVJK@uhzooK2t)a3x0Gz1Mra8b1J zPH77CQ09FJc7bM+N(NqtQKB$|@x%84h{e2o^>NOW+h&&uo_m*H!j zrjx|Z115lyg!OJ9%^fL3uR2HyEtN|GS+4@53I&|UfuJ>@4u;lA9T?^}jqjwsh=Ft? zAYxb`{}ia85JH6jabtibXc~&qOWYA8h*@m!*{lJ;8PQ;g7gN1x%8vpdYzn#j2p~)X zhyw&r{$L&quxkn^Lj)o{p@v-_S~RGc5uo<>pc3Q)0}&{Op%%@5m#Ypk?Eu z1_{)msez7rPrr#dMgmhPo+2zjM}~&akGcd2=LEnW7w#5fK6Lrha6Y1T@LMg~*hG`4 zl@LG|b#afhsTw5R<-$)+8%s6n)C>U7BPIbhKTtIQ4#R8@`Gbl`RF`GI(@d}>>4hs8 zT8bR%N*cE_J*WUZO=}97_TThe8!J(#W-Nr4U}m17MMTG`hyDUz=YM{Ho~Di@(E?zv zyN)R9G`!>^B;PlIuSY}bjq{Pfer2kG>Q$X^<%h`C2qesgTnL|B{bp9EZa}LNg@8sC zLjD=b5c^jj!7oow>3yW-g=lJ1~~WXQ<3^-q^USDYWhqX_>AxqcadgA z`fJ`KO#vBr_66{4>OucI)h%yq)#{0{?p2Q?WitqmPxNi4lHyxYW zw~_AivGwx_J^|tG9g2=?p!%)qSAZ*k${W2MLB_ynWk3?VK;5r!=pbda6lhNRreq3Y zc?DY?0CH~Z8st(P+}xB(qry~vpg8Cr0>S`2{16x-YR)wqv^&X39eTb3c>NXzrsKJF z-ji)62!=^|V<11VADQC0Zn$q@i<}1(xWa=}IL)_>a};iX0BG|alNYLye<55JyQalD zsk}Pg8N}D_GaZqFL;h0nQA}Zv zb}Bkt8&KZ2Nk#Brc=~crXPIe=c*XA)!U1J)enS;$+1OhU)pAY0eGJ4Ro3=zVk_O~F zS5Ajk&jq-h!QjKfHYyKf!Lwph#bm9p@{7ONc&OiKr~;j+n|z%v+lKNQJB55*&hANB zif}r?m|_qch$li?>HA}PM}yj4JshSbag@s1wI6~^I-qVm-<`h^zkYmPAG-c<(d4=Y z+pvuWj+x1D3rD+!EP`G?LzMubwC7j`1xk|qG3fHy$8>H1eX2AWp(!we@yde)EwyuX z-=ypP*j)lG3DD1=0!s(;$8!XV$*XM@V$$>slM+im2xnRa=| zX8naEz=oo^aZe4Em2Pe!Il*os?aLc(+m_O)o4on1ENY|R0TwHf#?Lcmm}HiCd9Ud_%dP3Q zM?pLTN51p-n{Xb?27l2-1EM-u^)EWDPveZL4;Xk6Nm=};n3Cz`=6)d8$GtL7!7>Db zKmsk`stb?}-M?EX{(S@dsDHuJ?81cz(_13^*X06*O0v*}aiPr(28JpB?aJXCk4%B1ce`7>U(%6k*;~xQbfjf(ncghomoUnJoNS#`Ph6*f2xHs5$?I^{ zplLnP&Y+pF_msg2O_ta9`?yJ)4EH%dXa%DL)ETvxuSQVC@sZEc&>1w}BL}$I#Cl#c zSxogk7Scr{K{!$K^q&5+h&Vk~AEqb636E>?#W*=C`CW756)CQqcOKo5CAxoSTxHFz zTHStsJ>7Q;b`H+iMg{O*yo`Zen=&Ob!Ce`s)Q%Do(HlT(@PJ55d^DG@2NOU&Os^8Qbbmu%fQYCOB=%ls2$jlMa=@xC&e* z$eGJe*neOO8O<^DCW-Qx^aEC@H$`+w0J;>Z_#)~7p|nrn+57(`%ejufmjB)34h<(` zEE_tupXB7ABxl`9wap*o^wkcPWc^jUzXE#Xq%CNujo|7n5x`d49~yGROS?b8M?MA$ z@sF_ak|?v4mj!pP0($C$Z5z{-<;B5AV!F6d%riVdRv)O7pE=f#9fw8?{2s>xzIPoua`Pr@em3yf-LU zoUgk1>8)r_P`zwf%~NZ?_u|V>M{>sF+2$cWHUrnJ>SKOnqv>}jJ2zwce-dksBg$=# zZ(F&p9oIVNdt93}c-Q*mes1`xk3zneb=TT#W{{4rGi$repyI;o$5N7Hsq%TgbgYoT zW#aB5=Y714HW9{w#=>Skbui(A8xTLWKljTpLM$qU`2NHmi`4_+MF~lkHB*{m^#BeO zu>_GQMa_vd%MaWFn%VTRwG`TaYAO}w3sa}Yn8q?;gdm%vTephZ9KHmHWZcRu5F3rN z{PuFstun&gnwm&6ETBk8RduE>2lUl1)OS9P{2KnX{SF1jb(5ha=i9Qi3vZllwG$(o~)@h`3|4d>`b!n9Eq5(}xIFFb(L&}?!IBcu21+y|1+US zLAP#s^y0ZJ7Fs@iEDi2#ci}w^b=jbIv(&roD1g_gmNWWFwjrnA6j6Hr_9iayY1x>o zu8ecG`CwpHV~3k`$otVduzT49D(-SS_lUD{qzqeYbYOHsKbIE=*K~q=v6#Vx!fg$z z?;SgcLu8+7Q7qyWg-yv=4yow|6|>%8L7Hbq>EMF?PPESpEg!O44hEGgbb6VDEX@|c z?pNxldf$4sG*_WZ>Cbn1TZR8(RTZaBW2=H~-lotNK1a&so{gRSHR# zTB{aPem}asPcBplc<^p{?Q}4t>qqBTkFw?U+j6JfP&E?yN3GrP$NM4an+|)ezCD`^ z_|Se~wYy2yD<9a0LI)MP?mh}x`N#(k8`e<^OlDr$(xX0mYuWWplJk6;8vnibPqU%@ z+{(7nP}s!%u6r*|S9Y$$A56uo1r@We?&|41n8}>Dm!;GxDjxD+uIw-KGd}KZ?X0jj z0V3+JLRJs%z}o?@xq|B{t{e}&@TK{#;HKu)&jI-Gl}@$$Z3U41`$OStiQ_C!Zp<%g zbv+2%6D_Yg43L`f9F*OaqZ?FOJ9>cs6i7>f5vR^Buj1zvjE6PMX*M ze8oRJfBTq`{BwR?pudWBtkMS|K*0dcfj?Pt{W&t}yRJ`&#@ z6Bo5Q5dA%uA$>9|eX>G*a`Jsw<}@5llNDV1$cjOIN^yOtr+rsT|BVAGQxtG>eG2_A zRloOLhxDtn^lJ$9Ys&X)Y4>ZN!yFSd>1qljg~|>_)eu71D-Hcd{r$#s{Wlu=cmIvRx&>VhY4K4D;>R zQ(75}a~;M74dYb??&fLUK3CqC93p474lo?{8b%B~`ab*^V!)L$ZyBJT4%>WJ4i4{6c72|*)%%|IZK=gb8Qt4- z3)&!km?mmCKp&=zfa!_FqRw#l2(f-=u%Ic3t3~pCF@rk$J|E(U3q&8K4Rr(3Ghhs(O#`3Zw_FKcVDmMVwDe3`@n{kGEl_2@bxDE?ij2KSZ1`>e8 zW03Hbxf^S9F^c@7SBbg|<1r3sI7S9{84GJ-fnG)F`%jq!0`MGA{9Q!+)iap4DcB+u zwikgDQ^(t+ft>+x40^`b6vqWf<02(+EJDxEVNz~=ePaeALQ^uVv$CsNayp3tBgAHw*E3K5J$r!|3?*6=W zyrs3gY2lW!q{XZP{df@1IO@~9W2E^_i*b3eSS3%G;`gb`X_QZM7W%m-_C^m-5P4*r zmT;V|jFFP-gu<{<6xIS0iX(MEeGpJNj+tALlo~2d2x@7@InkER?~>pcl8Q(35V8@MoTO!ZM2SIOn#3GDqf8vwyklwePFp`e!270a@UXLZs-b; zb)`pmrMGigZ5M2V#(Apuq`T72YcEJi;f5_~15x-b3!FUZMk8S9G63iL2j;gML;nZo zQyGUETL_?n`#V6kSz_JQ@g4+=0OX8AC`^>JAVz@St&DvR#gn}^AeK6`4eI)`(5W{% zYg>N94YiiGuFC|BokQF*y9zFfuy*hVNISLm`P15$A8TKs>m=6oBjNRL3hT!@>)$Q! z(8@#$+Cbbr?X#c|1>e5Sar0a^t)Sg_iON~6#rFzA6B4^I=4Uv68TemTbgipJY2=)a zC){6#A}Ik~m4RH_Fu9RwdvhGu^b~!$GFC}!EkfAtlkg^!iOzPd=1$~VUBVhX-;rG< z{-AM9OD2Ygu*p5R$+NI|aeI^ZWRnl}0m=4(U*v;;^asIVAR_@Qh{B!uy;pUm^##CG z9Qr)9hw0f0eIm7ZYu}dt8L#VrxhFg?kDL*u$IC_CA_uj=9Mx^NR2`XdA5n@rEV|~& z_M5LfH`${!+;_p8uj1_%;~muF)p=btM7FdPx3s0VbaY*Ht+sS=TY6cpdgWXCueJ=D zwu}e2Zgg##_`6!DL&Zo~PO3O}ltx90R*e8$z-P(o0$$k!rO4xSwfvJUO#9j^{mD4D zx?vYpe+_qz*n?UqU>N5-f%B5tcD34ebKiCk-uA$4duDBWm2Z2AxVv|4dk4FlvH=-) z!RCq@6%efA$|s5|r;hL`$ZAKu|I0gs;E_}K;HjPPjh(2Iorkbp zEE`4Fwi~0k8>_n;XSEw|vg@lJ@Beq(JnIhGF?1)X$+OO8CuPA?*>?xh>6w?{5oV(C zAUNKR3Lfzn{>yAH(|s>1c<&i*FFR}RdHG(>qrLEK9R9=|Bi$o^zFY8WH@2V3#k?r%e$mbd9&pnFK3A#RgR^!3HAuE@Dj0x$vGw;=R`eMD%g5S}6Ac9*kTA~{+!P7t z`0231#H&;B^TFVk!-X$ZCvZH@^M!~;ft7g>0q52NKC$b}L|D z4ELM*%WvGr&4o`%ivGD8Uqm;sM@XCx;E^vD=4%60ONe{p53@((?o5GgP$Ug>+%|8| z9aGYq6P<~Z!_Oxq2KZ4o?_s|5;ZNwIZwpLIJ)qIbAS=iq#OEj~;%I&FE7wiOKUPyi zFXV-CTU*Zp5TP+NDBO-B(4Bx|N2k)C0c>_*uIbSTj%WxH%uNLp#zVbYV8ZHHCc-!W zMUrgG!3BmRS)p*M_cnKFg!`gNbdW77E1C)gYsmr$zw)00x0q!N%&T z}=o>#AGs0xYvUvgp z7NP6gP(ghl0u!x9h4)JUBP+iOiB48aBVNxhi_G2IeN*}`!_B-x4>*tS>$#-b-u2YB;vwW~48cc%> zJnMwYCcI;ChPiUadhX(63bB&czww0nBRC*B91vlfz~&8|dklW}DXttoKlz6to(ZQ= zVSI(dk?N@#G9Mg(HsPU%UrdEy5K!3`bBaBUEfcS76Q_FJTJ#65$PW!D#L2YiBK>Aq zJf?$*;cjWslcx!+#F^std#|YAd6$3GBJtk727yEz12!gj7sr8#4yM98JAN`W1&}Q^ zXl9fil)|IrEPo}t|Kbycxr)b3rNR7=(aeY#VJwxGI@=XboWDMl#`6oI8OJ@0WwHT& zeGH^sALs`k^Pu9rh%_w}Sq{5zzR59D#jfJbqYgd1LG4_L!jc~V3v*m5fhJ%+((O@; z)|m(aHeMLKg>7(^sf6v%?R`uwYQStbw>}^I{3!2+0R3HRc4<51j4dM2^Zk=Nqi0(m z#Im=UmhxDT66(V}{&viav;G=XEEfPWg5nYprU>5=KtZ!xwO>a z{jT2c;Dr0KdMFi-kI48kMar{1KDzUcZ-ZzFXO{LoBUq4wlh`u^L*{dpyryzwxd)R0 z4P!Ya~&>QxGh8j}Sf+O4_^xt){9S^`4l)|(H zHrS-zx(xHcRv8TxxuZjo4I2sO)0&t(rbpO7%7eI&NMd_&veX3)I*Zt8RI1kacN?T4 zf>Ik&7{eCewG|^}8y6?*=ym8VdyJq}Yp34VYz# z%XAQW_vi?Rpb1B2Exg2>nUSi(Jh@T=RQ(tRKL}?Jr=NIbh6d9EKuObd*Cs=OHCP`2 zVj?;@P3s0ncIoEH-aF%LF+#X^93O0`CK_xq`wnQt^A=0QvF%bW@n zWBKQH^55SdYnR|xdhd>pekR|J?@JYPj00X(qT7UC9_~Q|q4Nj{@yNg_EkB4*f^Ma( zI;y{zeWsBfj!v1t;)vn1G6 z{ZmaSN00c=-~5PJv3`C>@sJC@Z}s;JWpBvdmFSan%vFI^d^LNWWR*8Jg^f|~y3*k0&f?R7h1=lw!1{Lb>T39RJJa(LaaSAySxuo-pw4w!ZZ#pE1JlB!FBf~!`v{gE{JK2ASCDB}f)_>V z)w~|{ks}#Nd7Bp-CEuQ@&uWw}euiWdsYtC#>Wv5m&5o`>z>PiwurW%ch$&lOhoKPAJ@nf zwJ=iS!h;rw)Fb}XfbYVoYbxS~%c9q747`0lvg}&xqk8mPGA_}!#*)uX&6{dIfEBcL zt~*K06)`nd`tpl0h3vJ*{R%7^^x0(*mawc+{K!Ep)DdHeHdEr!L^SSdb50Qx%yx@8 z-@D#1oPD`qF;1?Fl1|Mud;Ni9IKm~ow8UWnx2a2Ac_D5%Np~&PW&($gbd+q0%cYN;vn_*)U9ykv)qK2ooIS*b=;1*3tUOa|8P-*k zd-8|Vsf;VDm+(f$BBNqcoVHfZ<|2eQa5~9q7{vRFh`(gZPsN5s4_s1=4kO^U<==#j z`&(VfTjtqO8f~2j>N?Il_VrNx7&aO8?~h?rFKu4z3G|B3D?syF*k{foUlyBIsp ztUYizZhP1DSAh^KMN!YRFAl0H)~DW}7Gcn_T{w~ zWa)~!-|aW;F3t5{QfTYZo2FPf7(7whqBCa6_TP(n@R&X>nAr_0Iv0*1^x$2PG%1?7 zV*_>_)yw>f6n~{-^MXf9K+?yvjA3k-JEk9*+QfJq9YiqE4kI6T`Zoq8spFRyB*cbC>bYjeb#uyUTZ7m|vL2 z%6ucChKBo?Z@~v7rh$OON`4lbY25r~T7s|41iRB|pTu4?T@|ehb4AO@wFT*5gD9P) zIq9^)*EgU=he2CWWMwHMHK(VuhMzbTe?6_fMpq;EfgwmeR`A+pk_ie#8^sYPOt$Gs zc9H@2B#>2hD>}X}nU!34j2MUt&7_aQZm|zn_C-o_;Pfo|*dMlx)Yp)b-F%(d*E!(A zOh>eC93SX6JXfNg-o=w6U97!B`{lHw<9+R8FD!I-@!Hr>Bh_Q6q6>v&60k|1PcM?T zuRr_?S$FN793hol=yXXRq6v2S`OCGik56Wj#`a8kk3_x>5SZN^H$j<#6VisSXlr~7 z9Tggg;c=zdEs(O9<-c=1CGY1ce|$pe`kVbPqEvEF=M3-f_L0S6>GC#c=7==?L}`6n zSRfQuTtGL0{4%W5xAo-y^Ocs@1<%hO^^>4SghY9Zc`Yc?(k*E^rB_Id+>0c@k#rzI zbd2~ENaoz`0S7;uJO312;UQ%%+cdUW1jO=)2OQp(uppEFKn7(QLqK zDQNd!L?k%c$6j99oQv$|TIp4gfynM|3Y6ZWdeN&H7cC{xCr;JJ^fVbk2W*xtR`eI_ zMG0tX6la_j-T`dd({IYM6iL{o%h791Pk|&mVkS31(!MWP2gzpF)&v28MZIG;;<5af zihEvRfQBUg>lfFr)G%AcX(><5^4U%acRDL@^hUC5kVC-=M4&`Aq&*GX`jj>WBdCuP zy8piLi;!hSq#$YpkJ<)brP&nzP$KJKSWXbUOo|adu~Y3WHThehCXyogrS}S|M^igm z)t**V+eiV^D@5HVgBiu2y---`eZ1==6aijUu?0lyH&cY~7F+d*gjy*D!+uVhMfK^00!?ar6zBA)!+=l&pln=U?HPmcIr*_cD8eMn$Tq9oOEXdF#fsga zp8YN7t6imcVyt@xMEsa8qIpvcJdu3++eiNoOLzazWW^;Zr+MMKEbAGPP zSx9nD$df|kY)&I$b573Ba#|w_A?G=*In8-aB9a;*L?kJl?d$bfIp=X=gXCRRo}`Q|wRp+2sp`JG>J$!e>Qq%~`)OBBHFxh;@|a{gQmSBa zE8Wg8BZKicQ(h|94xN=+oyAd;XP%NRylo>U<*Qm#;9pZARVYhgRt#stP_Oo>3sm|& z+NEO5Tgk9eJrNE|B|Zv&k5q{l5k>}}rfYVyrph*@98Z5jJuBA@`sKr!b%)+K6ob@l z^pL)Bc6fa;>`ez7Jy<0fmQ{A&C85aZ?SHm4`NJ#)E|T{$r0?l^_xF_JjUPNjnzdea zZu{$vao%yva%z<#pvgp7fpxFVa!IVd*e(&?L3{Z(>nYQd#@Kfb0?hg@lk-Mw-eM@J~uL14hqXS zVn(a3$!dgTK(b~rBQOURHZ3au1P+>Hmbs+FFc5|xD%%{$Rt1#)HXB_9--`C1ub&#EpkH)jN>sKQVxq( zp$F3ECIF4G1SEA^jigsqOy;K#VQgxdS_!b9-uALLVNql@OrLaU98ccTVmr%2e`Y`k zGrCf)7ezcHnZU-v^l6<1(m@l!7?$n~_JqWtTLCOKfRdYXRSmvpj0Gft49ePOjoNxV zE15`Vn*F%u4ZjJJM*;Z;0rx8|icio`;ef{5sF4doz-4%(r-f4KmVOMQ5!f(iS#VaR1@``3tlRvfH|D0xR;DSQeW zst-*DXow}4chEMY2V`0aZ~~dFQHtdz1(f^+Ju#rRbxtcZV^99(L;t!`UGRi%;#zx6 zWuRZ1xV|VR&N8BQ>Tvg!3+XPnKL1^+KvXQ=LQhQH=;N-89eMj~I0=+)^JULv|4tk^ zq!EwR@38ss{mOsG-h;=XAAWc{BlduNBQRJ!6H5m{Ebj?FnZYapcmmq(6UH{!qYROF z1#~MteSJh2J8J3mL?6S3YGsj+B3I?ebKxIsE~sXgmqbP zu~V!k@;_(D^K}5Ul$lsCz(zenTTK(Y)6M;$1k|UIm%mujTm3UeP#QlKuy4+xem=D) z>o*E3;wJ#u7~lJ0pHUB**uVCV-B)1obsG0fI1@)hXZd5beUR#jBe&y>+!gJr75EyP z1Y=G!2f)kD`)bus>x5Gvt@^vgft}#klbk0^fJ5QNtY=*`;l;1krLx_BN>~;Yv*kI-aSF_H5p#%3T?)YSX%8s4pjjO7RJimA^N99+SiSpyeOdbpTdu#^?N7o z!c%^lDQElYV-_1)P2$=OWj_e1yblHakd{4<$Y~{hYtA|3n`5!) zgh@vxoH_q}Wo#N-ADcxtw7(8Yj~Y{xZL@c0wp>KHKuBj;n)&NEG*0EopJ?X?dZx|^ zSAMq+crst&BBDDoIFmTELW03(Nyak64Qq^-qWTy(VZAjSM3{_?tE6fBpgB)~0FW;yn$ znoXz2lWF;*2G}HxEJ(bJIV=f_)2Jl!#LE!M+VdZ^7c?A;752-#?kxMDasN~2{e6uG zKRO>UG^ngyRCdjB-mbD1L6X`sY0f+_*l;%Iz}DF~(HEkJN8q6kON2itLPU0(^e=Rc zT(I*w4P2|jca;J9U%(OQo*l+p|3@x{Kj)u5fi*?lXgA6oFkz%r61!^HEk#-11_p^TjhPIeK4S z3GGrOs;ur9KTwP6>a=)b=X*=bK)dgLK&INPWay9a{|uG$RP7|eSp+hFBeOj9Z#;=< z*+)SmDv)>X?!cpqmspv!4xWK_nZ!+pC?98H_2a5^Bby@w8rQOS$Uol?9NGB}uv|-6 zj{B458=jQe4S_^weq-Rf?&>U^H(HGwphb7~-uqGT>i0yVe$0(H`rJ>ov|c;0Q^Y4o z?3_#qmu}L&&R3TFkIURIJqO-O?4P94#+_89ejBSdGSi+~ZS#&y_@6-i^x>#oGY3G| zh|X15ibPdL_Gd$yKgjE@Dz3wOQD&)&hbvd7Vk-7#&sbGX!Hy(>S&J#|&#Uu)-@N$y z;rzc(FaGVHXZ$$z^EuVCT#0e4rzmAd7Ou~27VH+Qnk_PPKIQ9Zlb7 zXQAYY?obV-#z|7&5{3G+#1>x`ifw|L_khU(Si;#Z@ue^&ja78WQgD^jp0 z=wS0f`tN%c_U?60DRNY#p}M0er1pV%%yQG0sEh`=-Cw%}AHVM|zvxWBdp~bVZ@Cxp z5g}LCA81aw+GT=M&MfAaFY&uSUS9T|g{5CSV@&i@&k?QoY|Ft!txVQa$Y*1MB*1+< z?&@=jXXd^h!wQ^kN-N(HJYxd28o{N&Q+NpnSbCvnWkf0_Y_mw>fz;ocS<~Uh39E6r z&fVGZb1kj2V^ZHza)j>nWS{m-LaIk5)mGE2r!=O|od+UpripBF zuc!6VmuzMX`Tr^vC$INNK1@%odp(;$170ZA>gfihpqCluD&2yOyjdi73oceIDX(uS@J>_UOBuxpw0N%6FmJruE#L)M zj-kQ+ljqIA3&W&_$*|=Xvh6L!GF&x)8+*=gdGDE)rsAl0$u7cFs)lRs4F2TH^8WMh z$4O>NGd8)CTIkEpUx&~P(L5c&bmzlSsi*IPMo*VME7Zm3Azxk@j&YUwgu9hUlcIOC zF}F$CXXoZ-`Zjr(G#q(Ld=eu{Fz&tRRM8;X61c#+o!EOm?6!NiT6-`5{X+Iv41s8c zfmVV07=M1z3**%QzOy;Lk65WEhVlKvfCJ(+BdyFu?;G16MlIPCTB0!z3V(Edn^Ch# zybxAWcuykVt+YZ7+xh-N#i6LO%0AapA=tKm26;wjLrN$c?BaazoLSE>!ZJHC%sIB@ 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 To+gZ$_UWJwjGHEnfB*nH%Y+zj literal 0 HcmV?d00001 diff --git a/images/designer/hover-selection.gif b/images/designer/hover-selection.gif new file mode 100644 index 0000000000000000000000000000000000000000..09bdc6bb7ddbc5b1ec1c622427a8dfbb075f771f GIT binary patch literal 290234 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 literal 0 HcmV?d00001 diff --git a/images/designer/parents-bar.gif b/images/designer/parents-bar.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a266db4b1c2c5e47205316255a63511e8fa9690 GIT binary patch literal 27446 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 literal 0 HcmV?d00001 diff --git a/images/designer/property-edit.png b/images/designer/property-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..5470ad206f781b19c2b3feedf00edb4a75b09350 GIT binary patch literal 23927 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