Skip to content

Converted copyright statement to standard format#29689

Merged
zero-24 merged 20 commits intojoomla:3.10-devfrom
nibra:fix-copyright
Aug 12, 2020
Merged

Converted copyright statement to standard format#29689
zero-24 merged 20 commits intojoomla:3.10-devfrom
nibra:fix-copyright

Conversation

@nibra
Copy link
Copy Markdown
Member

@nibra nibra commented Jun 18, 2020

Summary of Changes

All copyright statements have been changed to the standard format
© YEAR OWNER <CONTACT>
as discussed and decided in the Production Department meeting at June 2nd, 2020:
"The 3.10 and 4.x, framework repos. Introduce into 3.10 and merge into 4.0 and then do missing files for 4 beta2. Niels in charge."

Testing Instructions

No functionality has been touched

Expected result

Everything works like before

Actual result

Everything works like before

Documentation Changes Required

No. However, samples showing the copyright statement SHOULD be updated accordingly.

Scripts used to process the copyright statement

(Also see nibra/fix-copyright for progress on this)

fix-copyright.sh

#!/usr/bin/env zsh

ROOT=${PWD}
GREP_PATTERN="(Copyright )?\(C\) .* Open Source Matters.*All rights reserved\.?"
SED_PATTERN="\(Copyright \)\?(C) .* Open Source Matters.*All rights reserved\.\?"
OWNER="Open Source Matters, Inc."
CONTACT="https://www.joomla.org"

main() {
	echo "Processing files in ${ROOT}"

	COUNT=0

	for FILE in $(grep -rilP "${GREP_PATTERN}" --exclude-dir="vendor" "${ROOT}"); do
		YEAR=$(php fix-copyright.php ${FILE})

		if [[ ${FILE} == *.xml ]]; then
			REPLACEMENT="(C) ${YEAR:-2005} ${OWNER}"
		else
			REPLACEMENT="(C) ${YEAR:-2005} ${OWNER} <${CONTACT}>"
		fi

		COUNT=$((COUNT + 1))

		printf '%5.5s| %7.7s => %s\n' "${COUNT}" "${YEAR:-default}" "${FILE}"

		sed -i -e "s|${SED_PATTERN}|${REPLACEMENT}|" "${FILE}"

	done

	echo "Fixed ${COUNT} copyright notices."
}

main

fix-copyright.php

<?php

class GitHistory
{
	/**
	 * An implementation of file history algorithm with renames detection.
	 * (This comment block is from the IntelliJ source code at https://github.com/JetBrains/intellij-community/blob/ea20241265f9fb956c5a99b1023765aa0e941979/plugins/git4idea/src/git4idea/history/GitFileHistory.java)
	 *
	 * 'git log --follow' does detect renames, but it has a bug - merge commits aren't handled properly: they just disappear from the history.
	 * See http://kerneltrap.org/mailarchive/git/2009/1/30/4861054 and the whole thread about that: --follow is buggy, but maybe it won't be fixed.
	 * To get the whole history through renames we do the following:
	 * 1. 'git log <file>' - and we get the history since the first rename, if there was one.
	 * 2. 'git show -M --follow --name-status <first_commit_id> -- <file>'
	 * where <first_commit_id> is the hash of the first commit in the history we got in #1.
	 * With this command we get the rename-detection-friendly information about the first commit of the given file history.
	 * (by specifying the <file> we filter out other changes in that commit; but in that case rename detection requires '--follow' to work,
	 * that's safe for one commit though)
	 * If the first commit was ADDING the file, then there were no renames with this file, we have the full history.
	 * But if the first commit was RENAMING the file, we are going to query for the history before rename.
	 * Now we have the previous name of the file:
	 *
	 * ~/sandbox/git # git show --oneline --name-status -M 4185b97
	 * 4185b97 renamed a to b
	 * R100    a       b
	 *
	 * 3. 'git log <rename_commit_id> -- <previous_file_name>' - get the history of a before the given commit.
	 * We need to specify <rename_commit_id> here, because <previous_file_name> could have some new history, which has nothing common with our <file>.
	 * Then we repeat 2 and 3 until the first commit is ADDING the file, not RENAMING it.
	 *
	 * @param  string       $file
	 * @param  string|null  $hash
	 *
	 * @return string|null
	 */
	public function findCreationDate(string $file, ?string $hash = null): ?string
	{
		$firstCommitId = $this->getFirstCommitId($file, $hash);

		if (empty($firstCommitId)) {
			// Not under version control
			return null;
		}

		$commitType = $this->getCommitType($firstCommitId, $file);

		if (!preg_match('~([ACR])\d*\s+(\S+)(?:\s+(\S+))?~', $commitType, $match)) {
			throw new RuntimeException("Unexpected commit type for $file: $commitType");
		}

		if ($match[1] === 'R') {
			// File was renamed, follow old file
			return $this->findCreationDate($match[2], $firstCommitId);
		}

		// File was created or copied
		return $this->getCommitDate('%Y', $firstCommitId, $file);
	}

	/**
	 * @param  string       $file
	 * @param  string|null  $hash
	 *
	 * @return string
	 */
	protected function getFirstCommitId(string $file, ?string $hash): string
	{
		if ($hash === null) {
			$command = "git log --pretty=format:%H \"{$file}\" | tail -n 1";
		} else {
			$command = "git log --pretty=format:%H \"{$hash}\" -- \"{$file}\" | tail -n 1";
		}

		return $this->runCommand($command);
	}

	/**
	 * @param  string  $firstCommitId
	 * @param  string  $file
	 *
	 * @return string
	 */
	protected function getCommitType(string $firstCommitId, string $file): string
	{
		$command = "git show -M --follow --name-status \"{$firstCommitId}\" -- \"{$file}\" | tail -n 1";

		return $this->runCommand($command);
	}

	/**
	 * @param  string  $format
	 * @param  string  $firstCommitId
	 * @param  string  $file
	 *
	 * @return string|null
	 */
	protected function getCommitDate(string $format, string $firstCommitId, string $file): ?string
	{
		$command = "git log --date=format:\"{$format}\" --pretty=format:\"%cd\" \"{$firstCommitId}\" -- \"{$file}\" | tail -n 1";

		return $this->runCommand($command);
	}

	/**
	 * @param  string  $command
	 *
	 * @return string
	 */
	protected function runCommand(string $command): string
	{
		return trim(shell_exec($command));
	}
}

$history = new GitHistory();

if ($argc < 2) {
	throw new RuntimeException('Specify a file');
}
if ($argc > 2) {
	throw new RuntimeException('Specify just one file');
}

$file = $argv[1];
echo $history->findCreationDate($file);

@brianteeman
Copy link
Copy Markdown
Contributor

How have you calculated the year to be used?

I thought perhaps it was the year the file was added to joomla but that can't be the case as for example with com_actionlogs which was a brand new component I would expect all those files to have the same year. But they are a mix of 2005, 2016, 2018,

@brianteeman
Copy link
Copy Markdown
Contributor

Another example is joomla-cms/administrator/components/com_admin/postinstall/htaccess.php

This file was introduced in joomla 3.4 and the first git commit was Oct 17, 2014 but you are setting the copyright year to 2005

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jun 18, 2020

It is the first commit date according to git, following moves and renames, retrieved with the command

git log --follow --date=format:%Y --pretty=format:"%cd" --diff-filter=A --find-renames=40% "${FILE}" | tail -n 1

@brianteeman
Copy link
Copy Markdown
Contributor

I have tested this item 🔴 unsuccessfully on 573b075


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/29689.

@brianteeman
Copy link
Copy Markdown
Contributor

There is no way that these are correct. Either your query is wrong or I dont know but I only checked the first few and they are not the date of creation for the code - therefore the copyright is wrong.

I am not against this pointless change but if its going to be done then it should be correct.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/29689.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jun 18, 2020

Apparently joomla-cms/administrator/components/com_admin/postinstall/htaccess.php has been copied and renamed from a file from 2005; removing the --find-renames option results in 2014.

@brianteeman
Copy link
Copy Markdown
Contributor

I am sure that the same will be true for the other files that I saw were wrong

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jun 18, 2020

Likely... I'm re-doing the change without that option. Will take a while.

@brianteeman
Copy link
Copy Markdown
Contributor

seems a lot of work for no benefit

@infograf768
Copy link
Copy Markdown
Member

Also, adding « Inc. » means all sites using Joomla in their site name would have to modify their disclaimer. Plus headers in lang packs, 3rd party extensions, etc.

Is that decision a requirement by our lawyers?

Imho, the Production Department should better concentrate on other more important matters.

@mbabker
Copy link
Copy Markdown
Contributor

mbabker commented Jun 18, 2020

Also, adding « Inc. » means all sites using Joomla in their site name would have to modify their disclaimer. Plus headers in lang packs, 3rd party extensions, etc.

The legal entity name is "Open Source Matters, Inc.", so I would suggest that the copyright statement not using the full legal name is incorrect.

As for the date change in copyright statements...

This might come across as a pointless change, but the other pointless change is modifying every file in every Joomla owned repository in January to amend the ending date of the copyright claim. Additionally, a copyright claim is being made on every file in most every Joomla owned repository of a copyright dating back to 2005, which is clearly not factual.

During my term on the BoD, my question (which was never answered regardless of number of requests) was "why does every file in the repository need a year range in the copyright statement", because my desire for "pointless change" was to remove the year range from everywhere except the LICENSE file (making this procedural change allows for the generated patch packages to stop bloating when their diff includes the commit making that change). I would still advocate for that to be the ultimate end result, but if that is not allowable for some reason, then the changes Niels is making which removes the ending date is a move in the right direction.

@alikon
Copy link
Copy Markdown
Contributor

alikon commented Jun 18, 2020

Imho, the Production Department should better concentrate on other more important matters.

fully agree

@brianteeman
Copy link
Copy Markdown
Contributor

from the osm report

[Copyright Statement] Following Hugh’s request, Luca asked the Open Source Initiative for advice and they suggested this page that includes the clarifications on how to write an effective copyright statement: https://matija.suklje.name/how-and-why-to-properly-write-copyright-statements-in-your-code . Summarizing the copyright statement should be formulated as follows:
© {$year_of_file_creation} {$name_of_copyright_holder} <{$contact}>

nibra added 2 commits June 18, 2020 23:19
# Conflicts:
#	README.md
#	README.txt
#	administrator/components/com_actionlogs/actionlogs.php
#	administrator/components/com_actionlogs/controller.php
#	administrator/components/com_actionlogs/models/fields/logcreator.php
#	administrator/components/com_admin/admin.php
#	administrator/components/com_admin/admin.xml
#	administrator/components/com_admin/controller.php
#	administrator/components/com_admin/controllers/profile.php
#	administrator/components/com_admin/helpers/html/system.php
#	administrator/components/com_admin/postinstall/addnosniff.php
#	administrator/components/com_admin/postinstall/htaccess.php
#	administrator/components/com_admin/postinstall/statscollection.php
#	administrator/components/com_admin/postinstall/textfilter3919.php
#	administrator/components/com_admin/postinstall/updatedefaultsettings.php
#	administrator/components/com_admin/views/help/tmpl/langforum.php
#	administrator/components/com_admin/views/profile/tmpl/edit.php
#	administrator/components/com_admin/views/profile/view.html.php
#	administrator/components/com_admin/views/sysinfo/tmpl/default_config.php
#	administrator/components/com_admin/views/sysinfo/tmpl/default_phpinfo.php
#	administrator/components/com_admin/views/sysinfo/tmpl/default_system.php
#	administrator/components/com_ajax/ajax.php
#	administrator/components/com_ajax/ajax.xml
#	administrator/components/com_associations/associations.xml
#	administrator/components/com_associations/models/association.php
#	administrator/components/com_banners/banners.php
#	administrator/components/com_banners/controller.php
#	administrator/components/com_banners/controllers/tracks.raw.php
#	administrator/components/com_banners/helpers/banners.php
#	administrator/components/com_banners/models/banner.php
#	administrator/components/com_banners/models/banners.php
#	administrator/components/com_banners/models/client.php
#	administrator/components/com_banners/models/clients.php
#	administrator/components/com_banners/tables/banner.php
#	administrator/components/com_banners/tables/client.php
#	administrator/components/com_banners/views/banner/view.html.php
#	administrator/components/com_banners/views/banners/tmpl/default.php
#	administrator/components/com_banners/views/banners/view.html.php
#	administrator/components/com_banners/views/client/view.html.php
#	administrator/components/com_banners/views/clients/tmpl/default.php
#	administrator/components/com_banners/views/clients/view.html.php
#	administrator/components/com_banners/views/tracks/view.html.php
#	administrator/components/com_banners/views/tracks/view.raw.php
#	administrator/components/com_cache/cache.php
#	administrator/components/com_cache/cache.xml
#	administrator/components/com_cache/controller.php
#	administrator/components/com_cache/models/cache.php
#	administrator/components/com_cache/views/purge/view.html.php
#	administrator/components/com_categories/categories.php
#	administrator/components/com_categories/categories.xml
#	administrator/components/com_categories/helpers/html/categoriesadministrator.php
#	administrator/components/com_categories/models/category.php
#	administrator/components/com_categories/models/fields/modal/category.php
#	administrator/components/com_categories/tables/category.php
#	administrator/components/com_categories/views/categories/tmpl/default_batch_body.php
#	administrator/components/com_categories/views/category/tmpl/edit_associations.php
#	administrator/components/com_categories/views/category/tmpl/modal.php
#	administrator/components/com_categories/views/category/tmpl/modal_associations.php
#	administrator/components/com_categories/views/category/tmpl/modal_metadata.php
#	administrator/components/com_categories/views/category/tmpl/modal_options.php
#	administrator/components/com_checkin/checkin.php
#	administrator/components/com_checkin/controller.php
#	administrator/components/com_checkin/views/checkin/view.html.php
#	administrator/components/com_config/config.php
#	administrator/components/com_config/config.xml
#	administrator/components/com_config/controller/application/save.php
#	administrator/components/com_config/controller/application/sendtestmail.php
#	administrator/components/com_config/controller/component/display.php
#	administrator/components/com_config/controller/component/save.php
#	administrator/components/com_config/controllers/application.php
#	administrator/components/com_config/helper/config.php
#	administrator/components/com_config/model/application.php
#	administrator/components/com_config/model/component.php
#	administrator/components/com_config/model/field/filters.php
#	administrator/components/com_config/view/application/html.php
#	administrator/components/com_config/view/application/tmpl/default.php
#	administrator/components/com_config/view/application/tmpl/default_cache.php
#	administrator/components/com_config/view/application/tmpl/default_cookie.php
#	administrator/components/com_config/view/application/tmpl/default_database.php
#	administrator/components/com_config/view/application/tmpl/default_debug.php
#	administrator/components/com_config/view/application/tmpl/default_filters.php
#	administrator/components/com_config/view/application/tmpl/default_ftp.php
#	administrator/components/com_config/view/application/tmpl/default_ftplogin.php
#	administrator/components/com_config/view/application/tmpl/default_locale.php
#	administrator/components/com_config/view/application/tmpl/default_mail.php
#	administrator/components/com_config/view/application/tmpl/default_metadata.php
#	administrator/components/com_config/view/application/tmpl/default_navigation.php
#	administrator/components/com_config/view/application/tmpl/default_permissions.php
#	administrator/components/com_config/view/application/tmpl/default_proxy.php
#	administrator/components/com_config/view/application/tmpl/default_seo.php
#	administrator/components/com_config/view/application/tmpl/default_server.php
#	administrator/components/com_config/view/application/tmpl/default_session.php
#	administrator/components/com_config/view/application/tmpl/default_site.php
#	administrator/components/com_config/view/application/tmpl/default_system.php
#	administrator/components/com_config/view/component/html.php
#	administrator/components/com_config/view/component/tmpl/default.php
#	administrator/components/com_config/view/component/tmpl/default_navigation.php
#	administrator/components/com_contact/contact.php
#	administrator/components/com_contact/controller.php
#	administrator/components/com_contact/helpers/html/contact.php
#	administrator/components/com_contact/models/contact.php
#	administrator/components/com_contact/models/contacts.php
#	administrator/components/com_contact/models/fields/modal/contact.php
#	administrator/components/com_contact/tables/contact.php
#	administrator/components/com_contact/views/contact/tmpl/edit_associations.php
#	administrator/components/com_contact/views/contact/tmpl/edit_metadata.php
#	administrator/components/com_contact/views/contact/tmpl/edit_params.php
#	administrator/components/com_contact/views/contact/tmpl/modal.php
#	administrator/components/com_contact/views/contact/tmpl/modal_associations.php
#	administrator/components/com_contact/views/contact/tmpl/modal_metadata.php
#	administrator/components/com_contact/views/contact/tmpl/modal_params.php
#	administrator/components/com_contact/views/contact/view.html.php
#	administrator/components/com_contact/views/contacts/tmpl/default.php
#	administrator/components/com_contact/views/contacts/view.html.php
#	administrator/components/com_content/content.php
#	administrator/components/com_content/controller.php
#	administrator/components/com_content/helpers/html/contentadministrator.php
#	administrator/components/com_content/models/article.php
#	administrator/components/com_content/models/articles.php
#	administrator/components/com_content/models/fields/voteradio.php
#	administrator/components/com_content/tables/featured.php
#	administrator/components/com_content/views/article/tmpl/edit_associations.php
#	administrator/components/com_content/views/article/tmpl/edit_metadata.php
#	administrator/components/com_content/views/article/tmpl/modal.php
#	administrator/components/com_content/views/article/tmpl/modal_associations.php
#	administrator/components/com_content/views/article/tmpl/modal_metadata.php
#	administrator/components/com_contenthistory/contenthistory.php
#	administrator/components/com_contenthistory/contenthistory.xml
#	administrator/components/com_contenthistory/controller.php
#	administrator/components/com_contenthistory/controllers/preview.php
#	administrator/components/com_contenthistory/views/compare/view.html.php
#	administrator/components/com_contenthistory/views/history/view.html.php
#	administrator/components/com_contenthistory/views/preview/view.html.php
#	administrator/components/com_cpanel/controller.php
#	administrator/components/com_cpanel/cpanel.php
#	administrator/components/com_cpanel/cpanel.xml
#	administrator/components/com_cpanel/views/cpanel/view.html.php
#	administrator/components/com_fields/controller.php
#	administrator/components/com_fields/controllers/field.php
#	administrator/components/com_fields/controllers/group.php
#	administrator/components/com_fields/controllers/groups.php
#	administrator/components/com_fields/fields.php
#	administrator/components/com_fields/fields.xml
#	administrator/components/com_fields/views/field/tmpl/edit.php
#	administrator/components/com_fields/views/fields/tmpl/default_batch_body.php
#	administrator/components/com_fields/views/fields/tmpl/default_batch_footer.php
#	administrator/components/com_fields/views/fields/tmpl/modal.php
#	administrator/components/com_fields/views/group/tmpl/edit.php
#	administrator/components/com_fields/views/group/view.html.php
#	administrator/components/com_fields/views/groups/tmpl/default_batch_body.php
#	administrator/components/com_fields/views/groups/tmpl/default_batch_footer.php
#	administrator/components/com_finder/controllers/filters.php
#	administrator/components/com_finder/controllers/maps.php
#	administrator/components/com_finder/finder.xml
#	administrator/components/com_finder/helpers/indexer/driver/mysql.php
#	administrator/components/com_finder/helpers/indexer/driver/postgresql.php
#	administrator/components/com_finder/helpers/indexer/driver/sqlsrv.php
#	administrator/components/com_finder/models/fields/branches.php
#	administrator/components/com_finder/models/fields/contenttypes.php
#	administrator/components/com_finder/tables/filter.php
#	administrator/components/com_installer/controllers/database.php
#	administrator/components/com_installer/controllers/updatesites.php
#	administrator/components/com_installer/helpers/html/updatesites.php
#	administrator/components/com_installer/installer.php
#	administrator/components/com_installer/installer.xml
#	administrator/components/com_installer/models/fields/extensionstatus.php
#	administrator/components/com_installer/models/fields/folder.php
#	administrator/components/com_installer/models/fields/location.php
#	administrator/components/com_installer/models/fields/type.php
#	administrator/components/com_installer/models/manage.php
#	administrator/components/com_installer/views/database/view.html.php
#	administrator/components/com_installer/views/default/view.php
#	administrator/components/com_installer/views/discover/tmpl/default.php
#	administrator/components/com_installer/views/discover/view.html.php
#	administrator/components/com_installer/views/install/view.html.php
#	administrator/components/com_installer/views/manage/view.html.php
#	administrator/components/com_installer/views/update/tmpl/default.php
#	administrator/components/com_installer/views/update/view.html.php
#	administrator/components/com_installer/views/updatesites/tmpl/default.php
#	administrator/components/com_installer/views/updatesites/view.html.php
#	administrator/components/com_installer/views/warnings/view.html.php
#	administrator/components/com_joomlaupdate/controller.php
#	administrator/components/com_joomlaupdate/joomlaupdate.php
#	administrator/components/com_joomlaupdate/joomlaupdate.xml
#	administrator/components/com_joomlaupdate/views/default/tmpl/complete.php
#	administrator/components/com_joomlaupdate/views/default/tmpl/default_nodownload.php
#	administrator/components/com_joomlaupdate/views/default/tmpl/default_noupdate.php
#	administrator/components/com_joomlaupdate/views/default/tmpl/default_reinstall.php
#	administrator/components/com_joomlaupdate/views/default/tmpl/default_updatemefirst.php
#	administrator/components/com_joomlaupdate/views/default/tmpl/default_upload.php
#	administrator/components/com_joomlaupdate/views/update/tmpl/finaliseconfirm.php
#	administrator/components/com_joomlaupdate/views/upload/tmpl/captive.php
#	administrator/components/com_joomlaupdate/views/upload/view.html.php
#	administrator/components/com_languages/controllers/installed.php
#	administrator/components/com_languages/controllers/language.php
#	administrator/components/com_languages/languages.php
#	administrator/components/com_languages/languages.xml
#	administrator/components/com_languages/layouts/joomla/searchtools/default/bar.php
#	administrator/components/com_languages/models/installed.php
#	administrator/components/com_languages/models/language.php
#	administrator/components/com_languages/views/installed/tmpl/default.php
#	administrator/components/com_languages/views/installed/view.html.php
#	administrator/components/com_languages/views/language/view.html.php
#	administrator/components/com_languages/views/multilangstatus/view.html.php
#	administrator/components/com_languages/views/overrides/tmpl/default.php
#	administrator/components/com_login/controller.php
#	administrator/components/com_login/login.php
#	administrator/components/com_login/views/login/tmpl/default.php
#	administrator/components/com_login/views/login/view.html.php
#	administrator/components/com_media/controller.php
#	administrator/components/com_media/layouts/toolbar/deletemedia.php
#	administrator/components/com_media/layouts/toolbar/newfolder.php
#	administrator/components/com_media/layouts/toolbar/uploadmedia.php
#	administrator/components/com_media/media.php
#	administrator/components/com_media/views/imageslist/view.html.php
#	administrator/components/com_media/views/media/tmpl/default_navigation.php
#	administrator/components/com_media/views/medialist/tmpl/default.php
#	administrator/components/com_media/views/medialist/tmpl/details_video.php
#	administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php
#	administrator/components/com_menus/layouts/joomla/menu/edit_modules.php
#	administrator/components/com_menus/layouts/joomla/searchtools/default/bar.php
#	administrator/components/com_menus/menus.php
#	administrator/components/com_menus/menus.xml
#	administrator/components/com_menus/models/fields/menuitembytype.php
#	administrator/components/com_menus/models/fields/menuordering.php
#	administrator/components/com_menus/models/fields/menupreset.php
#	administrator/components/com_menus/models/fields/modal/menu.php
#	administrator/components/com_menus/models/menutypes.php
#	administrator/components/com_menus/views/item/tmpl/edit_associations.php
#	administrator/components/com_menus/views/item/tmpl/modal.php
#	administrator/components/com_menus/views/item/tmpl/modal_associations.php
#	administrator/components/com_menus/views/item/tmpl/modal_options.php
#	administrator/components/com_menus/views/item/view.html.php
#	administrator/components/com_menus/views/items/tmpl/modal.php
#	administrator/components/com_menus/views/items/view.html.php
#	administrator/components/com_menus/views/menutypes/view.html.php
#	administrator/components/com_messages/controllers/message.php
#	administrator/components/com_messages/controllers/messages.php
#	administrator/components/com_messages/messages.php
#	administrator/components/com_messages/messages.xml
#	administrator/components/com_messages/models/fields/messagestates.php
#	administrator/components/com_messages/models/messages.php
#	administrator/components/com_messages/views/config/view.html.php
#	administrator/components/com_messages/views/messages/view.html.php
#	administrator/components/com_modules/controller.php
#	administrator/components/com_modules/helpers/xml.php
#	administrator/components/com_modules/layouts/toolbar/cancelselect.php
#	administrator/components/com_modules/layouts/toolbar/newmodule.php
#	administrator/components/com_modules/models/fields/modulesmodule.php
#	administrator/components/com_modules/models/fields/modulesposition.php
#	administrator/components/com_modules/models/select.php
#	administrator/components/com_modules/modules.php
#	administrator/components/com_modules/modules.xml
#	administrator/components/com_modules/views/module/view.json.php
#	administrator/components/com_modules/views/modules/tmpl/modal.php
#	administrator/components/com_modules/views/positions/view.html.php
#	administrator/components/com_modules/views/preview/view.html.php
#	administrator/components/com_newsfeeds/controller.php
#	administrator/components/com_newsfeeds/controllers/newsfeed.php
#	administrator/components/com_newsfeeds/models/newsfeed.php
#	administrator/components/com_newsfeeds/models/newsfeeds.php
#	administrator/components/com_newsfeeds/newsfeeds.php
#	administrator/components/com_newsfeeds/tables/newsfeed.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/edit_associations.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/edit_display.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/edit_metadata.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/edit_params.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/modal.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/modal_associations.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/modal_display.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/modal_metadata.php
#	administrator/components/com_newsfeeds/views/newsfeed/tmpl/modal_params.php
#	administrator/components/com_newsfeeds/views/newsfeed/view.html.php
#	administrator/components/com_newsfeeds/views/newsfeeds/tmpl/default.php
#	administrator/components/com_newsfeeds/views/newsfeeds/tmpl/modal.php
#	administrator/components/com_newsfeeds/views/newsfeeds/view.html.php
#	administrator/components/com_plugins/models/fields/pluginelement.php
#	administrator/components/com_plugins/models/fields/plugintype.php
#	administrator/components/com_plugins/models/plugin.php
#	administrator/components/com_plugins/models/plugins.php
#	administrator/components/com_plugins/plugins.php
#	administrator/components/com_plugins/plugins.xml
#	administrator/components/com_postinstall/postinstall.php
#	administrator/components/com_postinstall/postinstall.xml
#	administrator/components/com_privacy/controller.php
#	administrator/components/com_privacy/controllers/requests.php
#	administrator/components/com_privacy/helpers/privacy.php
#	administrator/components/com_privacy/models/consents.php
#	administrator/components/com_privacy/models/requests.php
#	administrator/components/com_privacy/privacy.php
#	administrator/components/com_privacy/privacy.xml
#	administrator/components/com_privacy/views/capabilities/view.html.php
#	administrator/components/com_privacy/views/consents/view.html.php
#	administrator/components/com_privacy/views/dashboard/view.html.php
#	administrator/components/com_privacy/views/export/view.xml.php
#	administrator/components/com_privacy/views/requests/view.html.php
#	administrator/components/com_redirect/controller.php
#	administrator/components/com_redirect/layouts/toolbar/batch.php
#	administrator/components/com_redirect/models/links.php
#	administrator/components/com_redirect/redirect.php
#	administrator/components/com_redirect/redirect.xml
#	administrator/components/com_redirect/views/links/tmpl/default_batch_body.php
#	administrator/components/com_search/controller.php
#	administrator/components/com_search/helpers/site.php
#	administrator/components/com_search/models/searches.php
#	administrator/components/com_search/search.php
#	administrator/components/com_search/views/searches/view.html.php
#	administrator/components/com_tags/controller.php
#	administrator/components/com_tags/controllers/tag.php
#	administrator/components/com_tags/controllers/tags.php
#	administrator/components/com_tags/helpers/tags.php
#	administrator/components/com_tags/models/tags.php
#	administrator/components/com_tags/tables/tag.php
#	administrator/components/com_tags/tags.php
#	administrator/components/com_tags/tags.xml
#	administrator/components/com_tags/views/tag/tmpl/edit.php
#	administrator/components/com_tags/views/tag/tmpl/edit_metadata.php
#	administrator/components/com_tags/views/tag/tmpl/edit_options.php
#	administrator/components/com_tags/views/tags/tmpl/default.php
#	administrator/components/com_tags/views/tags/view.html.php
#	administrator/components/com_templates/controller.php
#	administrator/components/com_templates/controllers/template.php
#	administrator/components/com_templates/helpers/templates.php
#	administrator/components/com_templates/models/fields/templatelocation.php
#	administrator/components/com_templates/models/fields/templatename.php
#	administrator/components/com_templates/tables/style.php
#	administrator/components/com_templates/templates.php
#	administrator/components/com_templates/templates.xml
#	administrator/components/com_templates/views/style/tmpl/edit_assignment.php
#	administrator/components/com_templates/views/style/view.html.php
#	administrator/components/com_templates/views/style/view.json.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_copy_body.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_copy_footer.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_delete_body.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_file_footer.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_rename_body.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_rename_footer.php
#	administrator/components/com_templates/views/template/tmpl/default_modal_resize_footer.php
#	administrator/components/com_templates/views/template/view.html.php
#	administrator/components/com_users/controller.php
#	administrator/components/com_users/controllers/note.php
#	administrator/components/com_users/controllers/notes.php
#	administrator/components/com_users/models/debuggroup.php
#	administrator/components/com_users/models/debuguser.php
#	administrator/components/com_users/models/fields/groupparent.php
#	administrator/components/com_users/models/fields/levels.php
#	administrator/components/com_users/models/note.php
#	administrator/components/com_users/users.php
#	administrator/components/com_users/users.xml
#	administrator/components/com_users/views/debuggroup/view.html.php
#	administrator/components/com_users/views/debuguser/view.html.php
#	administrator/components/com_users/views/notes/tmpl/default.php
#	administrator/includes/helper.php
#	administrator/language/en-GB/en-GB.com_actionlogs.sys.ini
#	administrator/language/en-GB/en-GB.com_admin.ini
#	administrator/language/en-GB/en-GB.com_admin.sys.ini
#	administrator/language/en-GB/en-GB.com_ajax.sys.ini
#	administrator/language/en-GB/en-GB.com_associations.sys.ini
#	administrator/language/en-GB/en-GB.com_banners.ini
#	administrator/language/en-GB/en-GB.com_banners.sys.ini
#	administrator/language/en-GB/en-GB.com_cache.ini
#	administrator/language/en-GB/en-GB.com_cache.sys.ini
#	administrator/language/en-GB/en-GB.com_categories.ini
#	administrator/language/en-GB/en-GB.com_categories.sys.ini
#	administrator/language/en-GB/en-GB.com_checkin.ini
#	administrator/language/en-GB/en-GB.com_checkin.sys.ini
#	administrator/language/en-GB/en-GB.com_config.ini
#	administrator/language/en-GB/en-GB.com_config.sys.ini
#	administrator/language/en-GB/en-GB.com_contact.ini
#	administrator/language/en-GB/en-GB.com_contact.sys.ini
#	administrator/language/en-GB/en-GB.com_content.ini
#	administrator/language/en-GB/en-GB.com_content.sys.ini
#	administrator/language/en-GB/en-GB.com_contenthistory.sys.ini
#	administrator/language/en-GB/en-GB.com_cpanel.ini
#	administrator/language/en-GB/en-GB.com_cpanel.sys.ini
#	administrator/language/en-GB/en-GB.com_fields.sys.ini
#	administrator/language/en-GB/en-GB.com_installer.ini
#	administrator/language/en-GB/en-GB.com_installer.sys.ini
#	administrator/language/en-GB/en-GB.com_joomlaupdate.sys.ini
#	administrator/language/en-GB/en-GB.com_languages.ini
#	administrator/language/en-GB/en-GB.com_languages.sys.ini
#	administrator/language/en-GB/en-GB.com_login.ini
#	administrator/language/en-GB/en-GB.com_login.sys.ini
#	administrator/language/en-GB/en-GB.com_mailto.sys.ini
#	administrator/language/en-GB/en-GB.com_media.ini
#	administrator/language/en-GB/en-GB.com_media.sys.ini
#	administrator/language/en-GB/en-GB.com_menus.ini
#	administrator/language/en-GB/en-GB.com_menus.sys.ini
#	administrator/language/en-GB/en-GB.com_messages.ini
#	administrator/language/en-GB/en-GB.com_messages.sys.ini
#	administrator/language/en-GB/en-GB.com_modules.ini
#	administrator/language/en-GB/en-GB.com_modules.sys.ini
#	administrator/language/en-GB/en-GB.com_newsfeeds.ini
#	administrator/language/en-GB/en-GB.com_newsfeeds.sys.ini
#	administrator/language/en-GB/en-GB.com_plugins.ini
#	administrator/language/en-GB/en-GB.com_plugins.sys.ini
#	administrator/language/en-GB/en-GB.com_postinstall.sys.ini
#	administrator/language/en-GB/en-GB.com_privacy.ini
#	administrator/language/en-GB/en-GB.com_privacy.sys.ini
#	administrator/language/en-GB/en-GB.com_redirect.sys.ini
#	administrator/language/en-GB/en-GB.com_search.ini
#	administrator/language/en-GB/en-GB.com_search.sys.ini
#	administrator/language/en-GB/en-GB.com_templates.ini
#	administrator/language/en-GB/en-GB.com_templates.sys.ini
#	administrator/language/en-GB/en-GB.com_users.ini
#	administrator/language/en-GB/en-GB.com_users.sys.ini
#	administrator/language/en-GB/en-GB.com_weblinks.ini
#	administrator/language/en-GB/en-GB.com_weblinks.sys.ini
#	administrator/language/en-GB/en-GB.com_wrapper.ini
#	administrator/language/en-GB/en-GB.com_wrapper.sys.ini
#	administrator/language/en-GB/en-GB.ini
#	administrator/language/en-GB/en-GB.localise.php
#	administrator/language/en-GB/en-GB.mod_custom.ini
#	administrator/language/en-GB/en-GB.mod_custom.sys.ini
#	administrator/language/en-GB/en-GB.mod_feed.ini
#	administrator/language/en-GB/en-GB.mod_feed.sys.ini
#	administrator/language/en-GB/en-GB.mod_latest.ini
#	administrator/language/en-GB/en-GB.mod_latest.sys.ini
#	administrator/language/en-GB/en-GB.mod_latestactions.sys.ini
#	administrator/language/en-GB/en-GB.mod_logged.ini
#	administrator/language/en-GB/en-GB.mod_logged.sys.ini
#	administrator/language/en-GB/en-GB.mod_login.ini
#	administrator/language/en-GB/en-GB.mod_login.sys.ini
#	administrator/language/en-GB/en-GB.mod_menu.ini
#	administrator/language/en-GB/en-GB.mod_menu.sys.ini
#	administrator/language/en-GB/en-GB.mod_multilangstatus.ini
#	administrator/language/en-GB/en-GB.mod_multilangstatus.sys.ini
#	administrator/language/en-GB/en-GB.mod_popular.ini
#	administrator/language/en-GB/en-GB.mod_popular.sys.ini
#	administrator/language/en-GB/en-GB.mod_privacy_dashboard.sys.ini
#	administrator/language/en-GB/en-GB.mod_quickicon.ini
#	administrator/language/en-GB/en-GB.mod_quickicon.sys.ini
#	administrator/language/en-GB/en-GB.mod_sampledata.sys.ini
#	administrator/language/en-GB/en-GB.mod_stats_admin.ini
#	administrator/language/en-GB/en-GB.mod_stats_admin.sys.ini
#	administrator/language/en-GB/en-GB.mod_status.ini
#	administrator/language/en-GB/en-GB.mod_status.sys.ini
#	administrator/language/en-GB/en-GB.mod_submenu.ini
#	administrator/language/en-GB/en-GB.mod_submenu.sys.ini
#	administrator/language/en-GB/en-GB.mod_title.ini
#	administrator/language/en-GB/en-GB.mod_title.sys.ini
#	administrator/language/en-GB/en-GB.mod_toolbar.ini
#	administrator/language/en-GB/en-GB.mod_toolbar.sys.ini
#	administrator/language/en-GB/en-GB.mod_version.sys.ini
#	administrator/language/en-GB/en-GB.plg_actionlog_joomla.sys.ini
#	administrator/language/en-GB/en-GB.plg_authentication_cookie.ini
#	administrator/language/en-GB/en-GB.plg_authentication_cookie.sys.ini
#	administrator/language/en-GB/en-GB.plg_authentication_gmail.ini
#	administrator/language/en-GB/en-GB.plg_authentication_gmail.sys.ini
#	administrator/language/en-GB/en-GB.plg_authentication_joomla.ini
#	administrator/language/en-GB/en-GB.plg_authentication_joomla.sys.ini
#	administrator/language/en-GB/en-GB.plg_authentication_ldap.ini
#	administrator/language/en-GB/en-GB.plg_authentication_ldap.sys.ini
#	administrator/language/en-GB/en-GB.plg_captcha_recaptcha.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_confirmconsent.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_contact.ini
#	administrator/language/en-GB/en-GB.plg_content_contact.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_emailcloak.ini
#	administrator/language/en-GB/en-GB.plg_content_emailcloak.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_finder.ini
#	administrator/language/en-GB/en-GB.plg_content_finder.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_joomla.ini
#	administrator/language/en-GB/en-GB.plg_content_joomla.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_loadmodule.ini
#	administrator/language/en-GB/en-GB.plg_content_loadmodule.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_pagebreak.ini
#	administrator/language/en-GB/en-GB.plg_content_pagebreak.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_pagenavigation.ini
#	administrator/language/en-GB/en-GB.plg_content_pagenavigation.sys.ini
#	administrator/language/en-GB/en-GB.plg_content_vote.ini
#	administrator/language/en-GB/en-GB.plg_content_vote.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_article.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_article.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_contact.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_contact.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_fields.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_fields.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_image.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_image.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_menu.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_menu.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_module.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_module.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_pagebreak.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_pagebreak.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_readmore.ini
#	administrator/language/en-GB/en-GB.plg_editors-xtd_readmore.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors_codemirror.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors_none.ini
#	administrator/language/en-GB/en-GB.plg_editors_none.sys.ini
#	administrator/language/en-GB/en-GB.plg_editors_tinymce.ini
#	administrator/language/en-GB/en-GB.plg_editors_tinymce.sys.ini
#	administrator/language/en-GB/en-GB.plg_extension_joomla.ini
#	administrator/language/en-GB/en-GB.plg_extension_joomla.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_calendar.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_checkboxes.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_color.ini
#	administrator/language/en-GB/en-GB.plg_fields_color.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_editor.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_image.ini
#	administrator/language/en-GB/en-GB.plg_fields_image.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_imagelist.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_integer.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_list.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_media.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_radio.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_repeatable.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_sql.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_text.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_textarea.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_url.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_user.sys.ini
#	administrator/language/en-GB/en-GB.plg_fields_usergrouplist.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_categories.ini
#	administrator/language/en-GB/en-GB.plg_finder_categories.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_contacts.ini
#	administrator/language/en-GB/en-GB.plg_finder_contacts.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_content.ini
#	administrator/language/en-GB/en-GB.plg_finder_content.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_newsfeeds.ini
#	administrator/language/en-GB/en-GB.plg_finder_newsfeeds.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_tags.ini
#	administrator/language/en-GB/en-GB.plg_finder_tags.sys.ini
#	administrator/language/en-GB/en-GB.plg_finder_weblinks.ini
#	administrator/language/en-GB/en-GB.plg_finder_weblinks.sys.ini
#	administrator/language/en-GB/en-GB.plg_installer_folderinstaller.ini
#	administrator/language/en-GB/en-GB.plg_installer_folderinstaller.sys.ini
#	administrator/language/en-GB/en-GB.plg_installer_urlinstaller.sys.ini
#	administrator/language/en-GB/en-GB.plg_installer_webinstaller.ini
#	administrator/language/en-GB/en-GB.plg_installer_webinstaller.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_actionlogs.ini
#	administrator/language/en-GB/en-GB.plg_privacy_actionlogs.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_consents.ini
#	administrator/language/en-GB/en-GB.plg_privacy_consents.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_contact.ini
#	administrator/language/en-GB/en-GB.plg_privacy_contact.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_content.ini
#	administrator/language/en-GB/en-GB.plg_privacy_content.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_message.ini
#	administrator/language/en-GB/en-GB.plg_privacy_message.sys.ini
#	administrator/language/en-GB/en-GB.plg_privacy_user.ini
#	administrator/language/en-GB/en-GB.plg_privacy_user.sys.ini
#	administrator/language/en-GB/en-GB.plg_quickicon_extensionupdate.sys.ini
#	administrator/language/en-GB/en-GB.plg_quickicon_joomlaupdate.sys.ini
#	administrator/language/en-GB/en-GB.plg_quickicon_phpversioncheck.sys.ini
#	administrator/language/en-GB/en-GB.plg_quickicon_privacycheck.ini
#	administrator/language/en-GB/en-GB.plg_quickicon_privacycheck.sys.ini
#	administrator/language/en-GB/en-GB.plg_sampledata_blog.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_categories.ini
#	administrator/language/en-GB/en-GB.plg_search_categories.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_contacts.ini
#	administrator/language/en-GB/en-GB.plg_search_contacts.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_content.ini
#	administrator/language/en-GB/en-GB.plg_search_content.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_newsfeeds.ini
#	administrator/language/en-GB/en-GB.plg_search_newsfeeds.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_tags.sys.ini
#	administrator/language/en-GB/en-GB.plg_search_weblinks.ini
#	administrator/language/en-GB/en-GB.plg_search_weblinks.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_actionlogs.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_cache.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_debug.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_fields.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_highlight.ini
#	administrator/language/en-GB/en-GB.plg_system_highlight.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_languagecode.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_languagefilter.ini
#	administrator/language/en-GB/en-GB.plg_system_languagefilter.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_log.ini
#	administrator/language/en-GB/en-GB.plg_system_log.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_logout.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_logrotation.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_privacyconsent.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_redirect.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_remember.ini
#	administrator/language/en-GB/en-GB.plg_system_remember.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_sef.ini
#	administrator/language/en-GB/en-GB.plg_system_sef.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_sessiongc.sys.ini
#	administrator/language/en-GB/en-GB.plg_system_stats.sys.ini
#	administrator/language/en-GB/en-GB.plg_twofactorauth_totp.sys.ini
#	administrator/language/en-GB/en-GB.plg_twofactorauth_yubikey.sys.ini
#	administrator/language/en-GB/en-GB.plg_user_contactcreator.sys.ini
#	administrator/language/en-GB/en-GB.plg_user_joomla.ini
#	administrator/language/en-GB/en-GB.plg_user_joomla.sys.ini
#	administrator/language/en-GB/en-GB.plg_user_terms.sys.ini
#	administrator/language/en-GB/en-GB.tpl_hathor.sys.ini
#	administrator/language/en-GB/en-GB.tpl_isis.sys.ini
#	administrator/language/en-GB/en-GB.xml
#	administrator/language/en-GB/install.xml
#	administrator/modules/mod_custom/mod_custom.php
#	administrator/modules/mod_custom/mod_custom.xml
#	administrator/modules/mod_feed/mod_feed.php
#	administrator/modules/mod_feed/mod_feed.xml
#	administrator/modules/mod_latest/mod_latest.php
#	administrator/modules/mod_latest/mod_latest.xml
#	administrator/modules/mod_latestactions/mod_latestactions.php
#	administrator/modules/mod_latestactions/mod_latestactions.xml
#	administrator/modules/mod_latestactions/tmpl/default.php
#	administrator/modules/mod_logged/mod_logged.php
#	administrator/modules/mod_logged/mod_logged.xml
#	administrator/modules/mod_login/mod_login.xml
#	administrator/modules/mod_menu/mod_menu.xml
#	administrator/modules/mod_multilangstatus/language/en-GB/en-GB.mod_multilangstatus.ini
#	administrator/modules/mod_multilangstatus/language/en-GB/en-GB.mod_multilangstatus.sys.ini
#	administrator/modules/mod_multilangstatus/mod_multilangstatus.php
#	administrator/modules/mod_multilangstatus/mod_multilangstatus.xml
#	administrator/modules/mod_multilangstatus/tmpl/default.php
#	administrator/modules/mod_popular/mod_popular.php
#	administrator/modules/mod_popular/mod_popular.xml
#	administrator/modules/mod_privacy_dashboard/mod_privacy_dashboard.xml
#	administrator/modules/mod_quickicon/mod_quickicon.php
#	administrator/modules/mod_quickicon/mod_quickicon.xml
#	administrator/modules/mod_sampledata/mod_sampledata.xml
#	administrator/modules/mod_stats_admin/helper.php
#	administrator/modules/mod_stats_admin/language/en-GB.mod_stats_admin.ini
#	administrator/modules/mod_stats_admin/language/en-GB.mod_stats_admin.sys.ini
#	administrator/modules/mod_stats_admin/mod_stats_admin.php
#	administrator/modules/mod_stats_admin/mod_stats_admin.xml
#	administrator/modules/mod_stats_admin/tmpl/default.php
#	administrator/modules/mod_status/mod_status.xml
#	administrator/modules/mod_submenu/mod_submenu.xml
#	administrator/modules/mod_title/mod_title.php
#	administrator/modules/mod_title/mod_title.xml
#	administrator/modules/mod_title/tmpl/default.php
#	administrator/modules/mod_toolbar/mod_toolbar.php
#	administrator/modules/mod_toolbar/mod_toolbar.xml
#	administrator/modules/mod_toolbar/tmpl/default.php
#	administrator/modules/mod_version/language/en-GB/en-GB.mod_version.sys.ini
#	administrator/modules/mod_version/mod_version.php
#	administrator/modules/mod_version/mod_version.xml
#	administrator/modules/mod_version/tmpl/default.php
#	administrator/templates/hathor/component.php
#	administrator/templates/hathor/css/boldtext.css
#	administrator/templates/hathor/css/colour_blue_rtl.css
#	administrator/templates/hathor/css/error.css
#	administrator/templates/hathor/css/ie7.css
#	administrator/templates/hathor/css/ie8.css
#	administrator/templates/hathor/css/theme.css
#	administrator/templates/hathor/error.php
#	administrator/templates/hathor/html/com_admin/profile/edit.php
#	administrator/templates/hathor/html/com_admin/sysinfo/default.php
#	administrator/templates/hathor/html/com_admin/sysinfo/default_navigation.php
#	administrator/templates/hathor/html/com_admin/sysinfo/default_phpsettings.php
#	administrator/templates/hathor/html/com_admin/sysinfo/default_system.php
#	administrator/templates/hathor/html/com_banners/banner/edit.php
#	administrator/templates/hathor/html/com_banners/banners/default.php
#	administrator/templates/hathor/html/com_banners/client/edit.php
#	administrator/templates/hathor/html/com_banners/clients/default.php
#	administrator/templates/hathor/html/com_banners/tracks/default.php
#	administrator/templates/hathor/html/com_cache/cache/default.php
#	administrator/templates/hathor/html/com_cache/purge/default.php
#	administrator/templates/hathor/html/com_categories/categories/default.php
#	administrator/templates/hathor/html/com_categories/category/edit.php
#	administrator/templates/hathor/html/com_categories/category/edit_options.php
#	administrator/templates/hathor/html/com_checkin/checkin/default.php
#	administrator/templates/hathor/html/com_config/application/default.php
#	administrator/templates/hathor/html/com_config/application/default_cache.php
#	administrator/templates/hathor/html/com_config/application/default_cookie.php
#	administrator/templates/hathor/html/com_config/application/default_database.php
#	administrator/templates/hathor/html/com_config/application/default_debug.php
#	administrator/templates/hathor/html/com_config/application/default_filters.php
#	administrator/templates/hathor/html/com_config/application/default_ftp.php
#	administrator/templates/hathor/html/com_config/application/default_ftplogin.php
#	administrator/templates/hathor/html/com_config/application/default_locale.php
#	administrator/templates/hathor/html/com_config/application/default_mail.php
#	administrator/templates/hathor/html/com_config/application/default_metadata.php
#	administrator/templates/hathor/html/com_config/application/default_navigation.php
#	administrator/templates/hathor/html/com_config/application/default_permissions.php
#	administrator/templates/hathor/html/com_config/application/default_seo.php
#	administrator/templates/hathor/html/com_config/application/default_server.php
#	administrator/templates/hathor/html/com_config/application/default_session.php
#	administrator/templates/hathor/html/com_config/application/default_site.php
#	administrator/templates/hathor/html/com_config/application/default_system.php
#	administrator/templates/hathor/html/com_config/component/default.php
#	administrator/templates/hathor/html/com_contact/contact/edit.php
#	administrator/templates/hathor/html/com_contact/contact/edit_params.php
#	administrator/templates/hathor/html/com_contact/contacts/default.php
#	administrator/templates/hathor/html/com_contact/contacts/modal.php
#	administrator/templates/hathor/html/com_content/article/edit.php
#	administrator/templates/hathor/html/com_content/articles/default.php
#	administrator/templates/hathor/html/com_content/articles/modal.php
#	administrator/templates/hathor/html/com_content/featured/default.php
#	administrator/templates/hathor/html/com_contenthistory/history/modal.php
#	administrator/templates/hathor/html/com_fields/field/edit.php
#	administrator/templates/hathor/html/com_fields/fields/default.php
#	administrator/templates/hathor/html/com_fields/groups/default.php
#	administrator/templates/hathor/html/com_installer/database/default.php
#	administrator/templates/hathor/html/com_installer/default/default_ftp.php
#	administrator/templates/hathor/html/com_installer/discover/default.php
#	administrator/templates/hathor/html/com_installer/install/default.php
#	administrator/templates/hathor/html/com_installer/install/default_form.php
#	administrator/templates/hathor/html/com_installer/languages/default.php
#	administrator/templates/hathor/html/com_installer/manage/default.php
#	administrator/templates/hathor/html/com_installer/update/default.php
#	administrator/templates/hathor/html/com_installer/warnings/default.php
#	administrator/templates/hathor/html/com_joomlaupdate/default/default.php
#	administrator/templates/hathor/html/com_languages/installed/default.php
#	administrator/templates/hathor/html/com_languages/installed/default_ftp.php
#	administrator/templates/hathor/html/com_languages/languages/default.php
#	administrator/templates/hathor/html/com_languages/overrides/default.php
#	administrator/templates/hathor/html/com_menus/item/edit.php
#	administrator/templates/hathor/html/com_menus/item/edit_options.php
#	administrator/templates/hathor/html/com_menus/items/default.php
#	administrator/templates/hathor/html/com_menus/menu/edit.php
#	administrator/templates/hathor/html/com_menus/menus/default.php
#	administrator/templates/hathor/html/com_messages/message/edit.php
#	administrator/templates/hathor/html/com_messages/messages/default.php
#	administrator/templates/hathor/html/com_modules/module/edit.php
#	administrator/templates/hathor/html/com_modules/module/edit_assignment.php
#	administrator/templates/hathor/html/com_modules/module/edit_options.php
#	administrator/templates/hathor/html/com_modules/modules/default.php
#	administrator/templates/hathor/html/com_newsfeeds/newsfeed/edit.php
#	administrator/templates/hathor/html/com_newsfeeds/newsfeed/edit_params.php
#	administrator/templates/hathor/html/com_newsfeeds/newsfeeds/default.php
#	administrator/templates/hathor/html/com_newsfeeds/newsfeeds/modal.php
#	administrator/templates/hathor/html/com_plugins/plugin/edit.php
#	administrator/templates/hathor/html/com_plugins/plugin/edit_options.php
#	administrator/templates/hathor/html/com_plugins/plugins/default.php
#	administrator/templates/hathor/html/com_redirect/links/default.php
#	administrator/templates/hathor/html/com_search/searches/default.php
#	administrator/templates/hathor/html/com_tags/tag/edit.php
#	administrator/templates/hathor/html/com_tags/tag/edit_metadata.php
#	administrator/templates/hathor/html/com_tags/tags/default.php
#	administrator/templates/hathor/html/com_templates/style/edit.php
#	administrator/templates/hathor/html/com_templates/style/edit_assignment.php
#	administrator/templates/hathor/html/com_templates/style/edit_options.php
#	administrator/templates/hathor/html/com_templates/styles/default.php
#	administrator/templates/hathor/html/com_templates/template/default.php
#	administrator/templates/hathor/html/com_templates/templates/default.php
#	administrator/templates/hathor/html/com_users/groups/default.php
#	administrator/templates/hathor/html/com_users/levels/default.php
#	administrator/templates/hathor/html/com_users/note/edit.php
#	administrator/templates/hathor/html/com_users/notes/default.php
#	administrator/templates/hathor/html/com_users/users/default.php
#	administrator/templates/hathor/html/com_users/users/modal.php
#	administrator/templates/hathor/html/com_weblinks/weblink/edit.php
#	administrator/templates/hathor/html/com_weblinks/weblink/edit_params.php
#	administrator/templates/hathor/html/com_weblinks/weblinks/default.php
#	administrator/templates/hathor/html/layouts/com_media/toolbar/deletemedia.php
#	administrator/templates/hathor/html/layouts/com_media/toolbar/newfolder.php
#	administrator/templates/hathor/html/layouts/com_media/toolbar/uploadmedia.php
#	administrator/templates/hathor/html/layouts/com_messages/toolbar/mysettings.php
#	administrator/templates/hathor/html/layouts/com_modules/toolbar/cancelselect.php
#	administrator/templates/hathor/html/layouts/com_modules/toolbar/newmodule.php
#	administrator/templates/hathor/html/layouts/joomla/edit/fieldset.php
#	administrator/templates/hathor/html/layouts/joomla/edit/global.php
#	administrator/templates/hathor/html/layouts/joomla/edit/params.php
#	administrator/templates/hathor/html/layouts/joomla/sidebars/submenu.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/base.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/batch.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/confirm.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/containerclose.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/containeropen.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/help.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/iconclass.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/link.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/popup.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/separator.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/standard.php
#	administrator/templates/hathor/html/layouts/joomla/toolbar/title.php
#	administrator/templates/hathor/html/layouts/plugins/user/profile/fields/dob.php
#	administrator/templates/hathor/html/mod_quickicon/default.php
#	administrator/templates/hathor/html/modules.php
#	administrator/templates/hathor/html/pagination.php
#	administrator/templates/hathor/language/en-GB/en-GB.tpl_hathor.sys.ini
#	administrator/templates/hathor/templateDetails.xml
#	administrator/templates/isis/cpanel.php
#	administrator/templates/isis/html/com_media/imageslist/default_folder.php
#	administrator/templates/isis/html/com_media/imageslist/default_image.php
#	administrator/templates/isis/html/layouts/joomla/pagination/link.php
#	administrator/templates/isis/html/layouts/joomla/pagination/links.php
#	administrator/templates/isis/html/mod_version/default.php
#	administrator/templates/isis/html/modules.php
#	administrator/templates/isis/language/en-GB/en-GB.tpl_isis.ini
#	administrator/templates/isis/language/en-GB/en-GB.tpl_isis.sys.ini
#	administrator/templates/system/component.php
#	administrator/templates/system/css/error.css
#	administrator/templates/system/error.php
#	administrator/templates/system/html/modules.php
#	cli/finder_indexer.php
#	cli/sessionGc.php
#	cli/sessionMetadataGc.php
#	components/com_banners/banners.php
#	components/com_banners/router.php
#	components/com_config/config.php
#	components/com_config/controller/cancel.php
#	components/com_config/controller/cmsbase.php
#	components/com_config/controller/config/save.php
#	components/com_config/controller/modules/display.php
#	components/com_config/controller/modules/save.php
#	components/com_config/controller/templates/save.php
#	components/com_config/model/form.php
#	components/com_config/view/cms/json.php
#	components/com_config/view/config/tmpl/default_metadata.php
#	components/com_config/view/config/tmpl/default_seo.php
#	components/com_config/view/config/tmpl/default_site.php
#	components/com_config/view/modules/html.php
#	components/com_config/view/modules/tmpl/default_positions.php
#	components/com_config/view/templates/tmpl/default_options.php
#	components/com_contact/controllers/contact.php
#	components/com_contact/helpers/association.php
#	components/com_contact/helpers/route.php
#	components/com_contact/layouts/joomla/form/renderfield.php
#	components/com_contact/models/categories.php
#	components/com_contact/models/featured.php
#	components/com_contact/router.php
#	components/com_contact/views/categories/view.html.php
#	components/com_contact/views/category/tmpl/default_children.php
#	components/com_contact/views/featured/tmpl/default.php
#	components/com_contact/views/featured/tmpl/default_items.php
#	components/com_contact/views/featured/view.html.php
#	components/com_content/controller.php
#	components/com_content/helpers/query.php
#	components/com_content/helpers/route.php
#	components/com_content/models/articles.php
#	components/com_content/models/categories.php
#	components/com_content/models/featured.php
#	components/com_content/router.php
#	components/com_content/views/categories/view.html.php
#	components/com_content/views/category/tmpl/default_articles.php
#	components/com_content/views/category/tmpl/default_children.php
#	components/com_content/views/featured/tmpl/default.php
#	components/com_content/views/featured/tmpl/default_item.php
#	components/com_content/views/featured/tmpl/default_links.php
#	components/com_content/views/featured/view.feed.php
#	components/com_content/views/featured/view.html.php
#	components/com_contenthistory/contenthistory.php
#	components/com_fields/controller.php
#	components/com_fields/fields.php
#	components/com_mailto/mailto.xml
#	components/com_menus/controller.php
#	components/com_menus/menus.php
#	components/com_modules/modules.php
#	components/com_newsfeeds/helpers/association.php
#	components/com_newsfeeds/helpers/route.php
#	components/com_newsfeeds/models/categories.php
#	components/com_newsfeeds/router.php
#	components/com_newsfeeds/views/categories/tmpl/default.php
#	components/com_newsfeeds/views/category/tmpl/default_children.php
#	components/com_privacy/controller.php
#	components/com_privacy/privacy.php
#	components/com_privacy/router.php
#	components/com_privacy/views/confirm/tmpl/default.php
#	components/com_privacy/views/confirm/view.html.php
#	components/com_privacy/views/remind/tmpl/default.php
#	components/com_privacy/views/remind/view.html.php
#	components/com_privacy/views/request/tmpl/default.php
#	components/com_privacy/views/request/view.html.php
#	components/com_search/controller.php
#	components/com_search/models/search.php
#	components/com_search/router.php
#	components/com_tags/controller.php
#	components/com_tags/router.php
#	components/com_tags/tags.php
#	components/com_tags/views/tag/view.feed.php
#	components/com_tags/views/tags/view.feed.php
#	components/com_users/layouts/joomla/form/renderfield.php
#	components/com_users/models/reset.php
#	components/com_users/models/rules/loginuniquefield.php
#	components/com_users/models/rules/logoutuniquefield.php
#	components/com_wrapper/controller.php
#	components/com_wrapper/router.php
#	components/com_wrapper/views/wrapper/view.html.php
#	components/com_wrapper/wrapper.xml
#	installation/application/router.php
#	installation/configuration.php-dist
#	installation/controller/install/database_remove.php
#	installation/form/field/language.php
#	installation/form/field/prefix.php
#	installation/form/field/sample.php
#	installation/form/rule/prefix.php
#	installation/form/rule/username.php
#	installation/helper/database.php
#	installation/html/helper.php
#	installation/language/ar-AA/ar-AA.xml
#	installation/language/be-BY/be-BY.xml
#	installation/language/bg-BG/bg-BG.ini
#	installation/language/bg-BG/bg-BG.xml
#	installation/language/bn-BD/bn-BD.xml
#	installation/language/bs-BA/bs-BA.xml
#	installation/language/ckb-IQ/ckb-IQ.xml
#	installation/language/cs-CZ/cs-CZ.xml
#	installation/language/cy-GB/cy-GB.xml
#	installation/language/da-DK/da-DK.xml
#	installation/language/de-AT/de-AT.xml
#	installation/language/de-CH/de-CH.xml
#	installation/language/de-DE/de-DE.ini
#	installation/language/de-DE/de-DE.xml
#	installation/language/de-LI/de-LI.ini
#	installation/language/de-LI/de-LI.xml
#	installation/language/de-LU/de-LU.ini
#	installation/language/de-LU/de-LU.xml
#	installation/language/dz-BT/dz-BT.xml
#	installation/language/el-GR/el-GR.xml
#	installation/language/en-AU/en-AU.ini
#	installation/language/en-AU/en-AU.xml
#	installation/language/en-CA/en-CA.ini
#	installation/language/en-CA/en-CA.xml
#	installation/language/en-GB/en-GB.ini
#	installation/language/en-GB/en-GB.xml
#	installation/language/en-NZ/en-NZ.ini
#	installation/language/en-NZ/en-NZ.xml
#	installation/language/es-CO/es-CO.xml
#	installation/language/es-ES/es-ES.xml
#	installation/language/et-EE/et-EE.xml
#	installation/language/fa-IR/fa-IR.xml
#	installation/language/fi-FI/fi-FI.xml
#	installation/language/fr-CA/fr-CA.ini
#	installation/language/fr-CA/fr-CA.xml
#	installation/language/fr-FR/fr-FR.ini
#	installation/language/fr-FR/fr-FR.xml
#	installation/language/ga-IE/ga-IE.xml
#	installation/language/gl-ES/gl-ES.xml
#	installation/language/he-IL/he-IL.xml
#	installation/language/hi-IN/hi-IN.xml
#	installation/language/hr-HR/hr-HR.ini
#	installation/language/hr-HR/hr-HR.xml
#	installation/language/hu-HU/hu-HU.xml
#	installation/language/hy-AM/hy-AM.xml
#	installation/language/id-ID/id-ID.xml
#	installation/language/it-IT/it-IT.xml
#	installation/language/ja-JP/ja-JP.xml
#	installation/language/ka-GE/ka-GE.xml
#	installation/language/kk-KZ/kk-KZ.xml
#	installation/language/km-KH/km-KH.xml
#	installation/language/ko-KR/ko-KR.xml
#	installation/language/lt-LT/lt-LT.xml
#	installation/language/lv-LV/lv-LV.xml
#	installation/language/mk-MK/mk-MK.xml
#	installation/language/ms-MY/ms-MY.xml
#	installation/language/nb-NO/nb-NO.xml
#	installation/language/nl-NL/nl-NL.xml
#	installation/language/nn-NO/nn-NO.xml
#	installation/language/pl-PL/pl-PL.xml
#	installation/language/prs-AF/prs-AF.xml
#	installation/language/pt-BR/pt-BR.xml
#	installation/language/pt-PT/pt-PT.ini
#	installation/language/pt-PT/pt-PT.xml
#	installation/language/ro-RO/ro-RO.xml
#	installation/language/ru-RU/ru-RU.xml
#	installation/language/sr-RS/sr-RS.xml
#	installation/language/sr-YU/sr-YU.xml
#	installation/language/srp-ME/srp-ME.ini
#	installation/language/sv-SE/sv-SE.xml
#	installation/language/sw-KE/sw-KE.xml
#	installation/language/sy-IQ/sy-IQ.xml
#	installation/language/ta-IN/ta-IN.xml
#	installation/language/th-TH/th-TH.xml
#	installation/language/tk-TM/tk-TM.xml
#	installation/language/tr-TR/tr-TR.xml
#	installation/language/ug-CN/ug-CN.xml
#	installation/language/uk-UA/uk-UA.xml
#	installation/language/vi-VN/vi-VN.xml
#	installation/language/zh-CN/zh-CN.xml
#	installation/language/zh-TW/zh-TW.xml
#	installation/model/configuration.php
#	installation/model/database.php
#	installation/model/ftp.php
#	installation/model/languages.php
#	installation/model/setup.php
#	installation/template/css/template.css
#	installation/template/css/template_rtl.css
#	installation/view/complete/tmpl/default.php
#	installation/view/database/tmpl/default.php
#	installation/view/defaultlanguage/tmpl/default.php
#	installation/view/ftp/tmpl/default.php
#	installation/view/install/tmpl/default.php
#	installation/view/languages/tmpl/default.php
#	installation/view/preinstall/tmpl/default.php
#	installation/view/remove/html.php
#	installation/view/remove/tmpl/default.php
#	installation/view/site/tmpl/default.php
#	installation/view/summary/tmpl/default.php
#	language/en-GB/en-GB.com_contact.ini
#	language/en-GB/en-GB.com_content.ini
#	language/en-GB/en-GB.com_mailto.ini
#	language/en-GB/en-GB.com_media.ini
#	language/en-GB/en-GB.com_messages.ini
#	language/en-GB/en-GB.com_newsfeeds.ini
#	language/en-GB/en-GB.com_privacy.ini
#	language/en-GB/en-GB.com_search.ini
#	language/en-GB/en-GB.com_tags.ini
#	language/en-GB/en-GB.com_weblinks.ini
#	language/en-GB/en-GB.com_wrapper.ini
#	language/en-GB/en-GB.files_joomla.sys.ini
#	language/en-GB/en-GB.finder_cli.ini
#	language/en-GB/en-GB.ini
#	language/en-GB/en-GB.lib_fof.sys.ini
#	language/en-GB/en-GB.lib_idna_convert.sys.ini
#	language/en-GB/en-GB.lib_joomla.ini
#	language/en-GB/en-GB.lib_joomla.sys.ini
#	language/en-GB/en-GB.lib_phputf8.sys.ini
#	language/en-GB/en-GB.lib_simplepie.sys.ini
#	language/en-GB/en-GB.mod_articles_archive.ini
#	language/en-GB/en-GB.mod_articles_archive.sys.ini
#	language/en-GB/en-GB.mod_articles_categories.sys.ini
#	language/en-GB/en-GB.mod_articles_category.sys.ini
#	language/en-GB/en-GB.mod_articles_latest.ini
#	language/en-GB/en-GB.mod_articles_latest.sys.ini
#	language/en-GB/en-GB.mod_articles_news.sys.ini
#	language/en-GB/en-GB.mod_articles_popular.ini
#	language/en-GB/en-GB.mod_articles_popular.sys.ini
#	language/en-GB/en-GB.mod_banners.ini
#	language/en-GB/en-GB.mod_banners.sys.ini
#	language/en-GB/en-GB.mod_breadcrumbs.ini
#	language/en-GB/en-GB.mod_breadcrumbs.sys.ini
#	language/en-GB/en-GB.mod_custom.ini
#	language/en-GB/en-GB.mod_custom.sys.ini
#	language/en-GB/en-GB.mod_feed.ini
#	language/en-GB/en-GB.mod_feed.sys.ini
#	language/en-GB/en-GB.mod_finder.sys.ini
#	language/en-GB/en-GB.mod_footer.ini
#	language/en-GB/en-GB.mod_footer.sys.ini
#	language/en-GB/en-GB.mod_languages.ini
#	language/en-GB/en-GB.mod_languages.sys.ini
#	language/en-GB/en-GB.mod_login.ini
#	language/en-GB/en-GB.mod_menu.ini
#	language/en-GB/en-GB.mod_menu.sys.ini
#	language/en-GB/en-GB.mod_random_image.ini
#	language/en-GB/en-GB.mod_random_image.sys.ini
#	language/en-GB/en-GB.mod_related_items.ini
#	language/en-GB/en-GB.mod_related_items.sys.ini
#	language/en-GB/en-GB.mod_search.ini
#	language/en-GB/en-GB.mod_search.sys.ini
#	language/en-GB/en-GB.mod_stats.ini
#	language/en-GB/en-GB.mod_stats.sys.ini
#	language/en-GB/en-GB.mod_syndicate.ini
#	language/en-GB/en-GB.mod_syndicate.sys.ini
#	language/en-GB/en-GB.mod_tags_popular.sys.ini
#	language/en-GB/en-GB.mod_tags_similar.sys.ini
#	language/en-GB/en-GB.mod_users_latest.sys.ini
#	language/en-GB/en-GB.mod_weblinks.sys.ini
#	language/en-GB/en-GB.mod_whosonline.ini
#	language/en-GB/en-GB.mod_whosonline.sys.ini
#	language/en-GB/en-GB.mod_wrapper.ini
#	language/en-GB/en-GB.mod_wrapper.sys.ini
#	language/en-GB/install.xml
#	layouts/joomla/content/associations.php
#	layouts/joomla/content/blog_style_default_links.php
#	layouts/joomla/content/categories_default.php
#	layouts/joomla/content/icons/create.php
#	layouts/joomla/content/icons/email.php
#	layouts/joomla/content/info_block.php
#	layouts/joomla/content/info_block/create_date.php
#	layouts/joomla/content/info_block/hits.php
#	layouts/joomla/content/info_block/modify_date.php
#	layouts/joomla/content/info_block/publish_date.php
#	layouts/joomla/content/text_filters.php
#	layouts/joomla/edit/associations.php
#	layouts/joomla/edit/item_title.php
#	layouts/joomla/edit/title_alias.php
#	layouts/joomla/editors/buttons.php
#	layouts/joomla/editors/buttons/button.php
#	layouts/joomla/form/field/color/advanced.php
#	layouts/joomla/form/field/color/simple.php
#	layouts/joomla/form/field/combo.php
#	layouts/joomla/form/field/email.php
#	layouts/joomla/form/field/file.php
#	layouts/joomla/form/field/hidden.php
#	layouts/joomla/form/field/meter.php
#	layouts/joomla/form/field/moduleorder.php
#	layouts/joomla/form/field/number.php
#	layouts/joomla/form/field/password.php
#	layouts/joomla/form/field/range.php
#	layouts/joomla/form/field/tel.php
#	layouts/joomla/form/field/text.php
#	layouts/joomla/form/field/textarea.php
#	layouts/joomla/form/field/url.php
#	layouts/joomla/html/batch/adminlanguage.php
#	layouts/joomla/links/groupclose.php
#	layouts/joomla/links/groupopen.php
#	layouts/joomla/links/groupsclose.php
#	layouts/joomla/links/groupseparator.php
#	layouts/joomla/links/groupsopen.php
#	layouts/joomla/searchtools/default/filters.php
#	layouts/joomla/searchtools/default/noitems.php
#	layouts/joomla/searchtools/default/selector.php
#	layouts/joomla/sidebars/submenu.php
#	layouts/joomla/sidebars/toggle.php
#	layouts/joomla/tinymce/buttons.php
#	layouts/joomla/tinymce/textarea.php
#	layouts/joomla/toolbar/base.php
#	layouts/joomla/toolbar/batch.php
#	layouts/joomla/toolbar/confirm.php
#	layouts/joomla/toolbar/containerclose.php
#	layouts/joomla/toolbar/containeropen.php
#	layouts/joomla/toolbar/help.php
#	layouts/joomla/toolbar/iconclass.php
#	layouts/joomla/toolbar/link.php
#	layouts/joomla/toolbar/popup.php
#	layouts/joomla/toolbar/separator.php
#	layouts/joomla/toolbar/slider.php
#	layouts/joomla/toolbar/standard.php
#	layouts/joomla/toolbar/title.php
#	layouts/libraries/cms/html/bootstrap/addtab.php
#	layouts/libraries/cms/html/bootstrap/endtab.php
#	layouts/libraries/cms/html/bootstrap/endtabset.php
#	layouts/libraries/cms/html/bootstrap/starttabset.php
#	layouts/libraries/cms/html/bootstrap/starttabsetscript.php
#	layouts/plugins/editors/tinymce/field/tinymcebuilder/setoptions.php
#	layouts/plugins/user/profile/fields/dob.php
#	libraries/cms/class/loader.php
#	libraries/cms/html/access.php
#	libraries/cms/html/adminlanguage.php
#	libraries/cms/html/batch.php
#	libraries/cms/html/behavior.php
#	libraries/cms/html/category.php
#	libraries/cms/html/content.php
#	libraries/cms/html/contentlanguage.php
#	libraries/cms/html/date.php
#	libraries/cms/html/email.php
#	libraries/cms/html/form.php
#	libraries/cms/html/grid.php
#	libraries/cms/html/jgrid.php
#	libraries/cms/html/language/en-GB/en-GB.jhtmldate.ini
#	libraries/cms/html/list.php
#	libraries/cms/html/menu.php
#	libraries/cms/html/number.php
#	libraries/cms/html/rules.php
#	libraries/cms/html/select.php
#	libraries/cms/html/sliders.php
#	libraries/cms/html/string.php
#	libraries/cms/html/tabs.php
#	libraries/cms/html/tag.php
#	libraries/cms/html/tel.php
#	libraries/cms/html/user.php
#	libraries/cms/less/formatter/joomla.php
#	libraries/cms/less/less.php
#	libraries/fof/input/jinput/cli.php
#	libraries/fof/input/jinput/cookie.php
#	libraries/fof/input/jinput/files.php
#	libraries/fof/input/jinput/input.php
#	libraries/fof/input/jinput/json.php
#	libraries/joomla/archive/archive.php
#	libraries/joomla/archive/bzip2.php
#	libraries/joomla/archive/gzip.php
#	libraries/joomla/archive/tar.php
#	libraries/joomla/archive/zip.php
#	libraries/joomla/database/driver…
@brianteeman
Copy link
Copy Markdown
Contributor

@nibra I can see some improvements but there are still some very obvious errors. I really don't think this is something you can automate accurately

For example here we have a creation date 3 years before the copyright date

image

@brianteeman
Copy link
Copy Markdown
Contributor

And in some of the files the changes break the code style rules - no idea why drone doesnt pick that up

image

@mbabker
Copy link
Copy Markdown
Contributor

mbabker commented Jun 18, 2020

@nibra you're probably going to have to do this in two runs, one without rename history and one with rename history.

With the namespacing work in 3.8, hundreds of files were renamed. So the copyright claim on the bulk of the Joomla\CMS namespace is now 2017 even though a fair share of the library API is going to date back to 3.0 (2012) or 1.6 (mostly likely committed in 2009 or 2010). So for things in libraries/(cms|joomla|legacy|src) there's a pretty good chance that doing whatever you're doing with rename history will be pretty accurate. Extensions are definitely pretty hard to get right though with an automated pass because of the murky commit history in places (especially when you get back to the "import the new trunk" commit somewhere between 1.5 and 1.6 since IIRC that essentially blanked and reimported the old SVN trunk) and the fact that a lot of files are copied from somewhere else in the repo with minor adjustments.

Screen Shot 2020-06-18 at 5 01 34 PM

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jun 18, 2020

And in some of the files the changes break the code style rules

Which file?

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jun 18, 2020

you're probably going to have to do this in two runs, one without rename history and one with rename history

I'll give it a try...

@brianteeman
Copy link
Copy Markdown
Contributor

#29689 (comment)

It was in the screenshot. The ones I saw were all css

@infograf768
Copy link
Copy Markdown
Member

infograf768 commented Jun 19, 2020

The legal entity name is "Open Source Matters, Inc.", so I would suggest that the copyright statement not using the full legal name is incorrect.

This is totally stupid and typical US picky legalese. We have been using "Open Source Matters" for 15 years and it never has been an issue for establishing our trademark (we had other issues that were unrelated to that naming).
It is again one these useless changes which, if they were proposed by a politician, could be understood as a way to distract the attention of the voters from a real problem.

Now, as some want to be picky, let's be fully too and do the right thing:

The Berne Convention: http://www.copyright.fr/hypertext/berne1.htm (in French) https://wipolex.wipo.int/en/text/283698 (in English), signed by all countries including the USA, defines the copyright laws.

The display of the copyright was already defined by the http://portal.unesco.org/en/ev.php-URL_ID=15381&URL_DO=DO_TOPIC&URL_SECTION=201.html (Convention Universelle sur le Droit d’Auteur (Universal Copyright Convention), 1952, revised 1971)

Article III

  1. Any Contracting 'State which, under its domestic law, requires as a condition of copyright, compliance with formalities such as deposit, registration, notice, notarial certificates, payment of fees or manufacture or publication in that Contracting State, shall regard these requirements as satisfied with respect to all works protected in accordance with this Convention and first published outside its territory and the author of which is not one of its nationals, if from the time of the first publication all the copies of the work published with the authority of the author or other copyright proprietor bear the symbol © accompanied by the name of the copyright proprietor and the year of first publication placed in such manner and location as to give reasonable notice of claim of copyright.

i.e.
© [Name of company] [year-of-first-publication]
in that order.

Any other way of display it is just incorrect.

Note: Indicating the copyright has no legal interest whatsoever since the US joined the Bern Convention, contrary to the Trademark. It is just an indication of the authorship.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 5, 2020

Why is the copyright format different in ini and xml?
; © 2011 Open Source Matters, Inc. <https://www.joomla.org> vs <copyright>(C) 2011 Open Source Matters, Inc.</copyright>

The '©' sign has been replaced with '(C)' in all copyright statements now. The contact information <https://www.joomla.org> is not used in XML files, because a) it would break the file syntactically and b) the contact information is contained in the XML file already.

@infograf768
Copy link
Copy Markdown
Member

infograf768 commented Jul 5, 2020

@nibra

Heard about fighting against wind-mills?

History for et-EE.xml says
Jean-Marie Simonet 07.01.2011, 12:53 $ Adding sk-SK, be-BY, lv-LV, et-EE, ro-Ro, ml-BE, lt-LT, aa-AA, no-NO in installation

The real history, once more, if not in git!! See again
Screen Shot 2020-07-05 at 08 51 05

It makes no sense to define a different copyright year for these language files. Please use 2005.

Also, I repeat: it was asked to TTs to use the xxxx-xx-xx (year-month-day as figures for the date) and you still keep a different format.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 5, 2020

@infograf768

The real history, once more, if not in git!! See again

If you provide the data, I'm happy to integrate them manually.

@infograf768
Copy link
Copy Markdown
Member

As proposed, just use 2005 for all. It is unecessary to use any other date for the copyright.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 6, 2020

@infograf768

As proposed, just use 2005 for all. It is unecessary to use any other date for the copyright.

That would be 'more wrong' than the git history's first commit date, as the date documents when the file was introduced to the codebase. However, I went through all installation language files and reconstructed the creation date where possible using JoomlaCode and the original content of the file. The commit date is now only used where neither JoomlaCode nor the file content provided sufficient data. It's IMO not possible to get closer to the truth.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 7, 2020

PD decisions about installation language files:

Copyright: Follow the legal advice and state the year of creation/initial commit of the file (package), so the copyright years stay as they are now.

creationDate: It is ok to use it as creation date of "this specific version" to accommodate Translation Team's needs.

@Bakual
Copy link
Copy Markdown
Contributor

Bakual commented Jul 8, 2020

Honestly, just take a year and be done with it. It doesn't matter at all as nobody will ever claim copyright for language files anyway.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 8, 2020

Honestly, just take a year and be done with it. It doesn't matter at all as nobody will ever claim copyright for language files anyway.

The years are as correct as determinable now.

@infograf768
Copy link
Copy Markdown
Member

infograf768 commented Jul 8, 2020

Language packs are not PRs. What remains of the TT coordination is not going to check each language pack for the « correct » copyright date for each ini file.
The PD, as it is so much concerned, will now take care of it.

@Llewellynvdm
Copy link
Copy Markdown
Member

Llewellynvdm commented Jul 8, 2020

@nibra looking at the following file: installation/language/ckb-IQ/ckb-IQ.ini
image

The scripts force the whole file to update instead of just the Copyright notice:
image

Is there away to avoid this? or is this just git being unable to tell the difference.

Then I see many database copyright updates and I am not able to validate those changes, it is hard to make out what has changed, since git is again unable to isolate the lines that were changed but just highlights the whole block.
image

Yet for the most part the changes look correct, and consistent @nibra great Job!!
image

quick_over_view
When looking at the large volume of changes being made, and knowing PHP and BASH well enough I know you must have worked on this for days. So I just want to thank you for this tremendous effort! Even though not everyone is to existed about this update, since it does not directly befit the code, @nibra you have saved the community many many hours. Thank you!

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Jul 11, 2020

The scripts force the whole file to update instead of just the Copyright notice:
Is there away to avoid this? or is this just git being unable to tell the difference.

It is your diff viewer; PhpStorm will tell you very precisely, as will the diff view here on GitHub (although GitHub is not very user friendly when diffing ~4000 files). Only apperances of the copyright pattern were touched, wherever they were found in a file.

Then I see many database copyright updates and I am not able to validate those changes,

Those dates are hard to validate. In SQL statements, the year was changed to be consistent, as those entries just are cached results from the manifest files and have no legal implications.

@zero-24
Copy link
Copy Markdown
Contributor

zero-24 commented Aug 11, 2020

@nibra please fix the conflicts than I will take the green button to merge this here in. When I got the initial post correct you are doing a PR against 4.x after that here is merged too?

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Aug 11, 2020

When I got the initial post correct you are doing a PR against 4.x after that here is merged too?

Yes, that's the plan...

@zero-24 zero-24 merged commit 2ca2d4e into joomla:3.10-dev Aug 12, 2020
@zero-24
Copy link
Copy Markdown
Contributor

zero-24 commented Aug 12, 2020

Just merged here. Thanks @nibra and all others involved.

@nibra
Copy link
Copy Markdown
Member Author

nibra commented Aug 12, 2020

Thank you! How do I know, when 3.10-dev is pulled into 4.0 (without polling all the day)?

@zero-24
Copy link
Copy Markdown
Contributor

zero-24 commented Aug 12, 2020

Up to @wilsonge i guess.

@nibra nibra deleted the fix-copyright branch August 13, 2020 07:25
@richard67
Copy link
Copy Markdown
Member

richard67 commented Aug 14, 2020

This PR has broken updating from 3.10-dev to 4.0-dev by breaking the closing tag of the copyright element here:

https://github.com/joomla/joomla-cms/blob/3.10-dev/administrator/manifests/files/joomla.xml#L7

The update component uses that file to get the version from.

I am preparing a PR to fix that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.