diff --git a/.gitpod.yml b/.gitpod.yml index 63a3e4fd..6792e9b0 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,5 +6,3 @@ tasks: - init: make - - diff --git a/Makefile b/Makefile index 90b11a9b..14db5492 100644 --- a/Makefile +++ b/Makefile @@ -134,7 +134,7 @@ source: appstore: rm -rf $(appstore_build_directory) mkdir -p $(appstore_build_directory) - tar cvzf $(appstore_package_name).tar.gz ../$(app_name) + tar cvzf $(appstore_package_name).tar.gz ../$(app_name) --exclude="../$(app_name)/build" \ --exclude="../$(app_name)/tests" \ --exclude="../$(app_name)/Makefile" \ @@ -156,7 +156,7 @@ appstore: --exclude="../$(app_name)/.*" \ --exclude="../$(app_name)/js/.*" \ --exclude-vcs \ - + .PHONY: coverage coverage: XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text diff --git a/appinfo/Migrations/Version20230916.php b/appinfo/Migrations/Version20230916.php new file mode 100644 index 00000000..66b91b68 --- /dev/null +++ b/appinfo/Migrations/Version20230916.php @@ -0,0 +1,191 @@ + + */ + +namespace OCA\ScienceMesh\Migrations; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\ISchemaMigration; + +/** Creates initial schema */ +class Version20230916 implements ISchemaMigration +{ + public function changeSchema(Schema $schema, array $options) + { + $prefix = $options["tablePrefix"]; + + // ocm_received_shares table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_received_shares")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_received_shares"); + + $table->addColumn("id", "bigint", [ + "autoincrement" => true, + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("share_external_id", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("name", "string", [ + "length" => 255, + "notnull" => true, + "comment" => "Original name on the remote server" + ]); + + $table->addColumn("share_with", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("owner", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("initiator", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("ctime", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("mtime", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("expiration", "bigint", [ + "unsigned" => false, + "notnull" => false, + "default" => null, + "length" => 11, + ]); + + $table->addColumn("remote_share_id", "string", [ + "length" => 255, + "notnull" => false, + "default" => null, + "comment" => "share ID at the remote server" + ]); + + $table->setPrimaryKey(["id"]); + + $table->addUniqueIndex( + ["share_external_id"], + "sm_ocm_rx_ex_id_idx" + ); + $table->addUniqueIndex( + ["share_with"], + "sm_ocm_rx_sh_w_idx" + ); + } + + // ocm_protocol_transfer table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_received_share_protocol_transfer")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_received_share_protocol_transfer"); + + $table->addColumn("ocm_received_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("source_uri", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("shared_secret", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("size", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_received_share_id"], + "sm_ocm_rx_share_id_tx_idx" + ); + } + + // ocm_protocol_webapp table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_received_share_protocol_webapp")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_received_share_protocol_webapp"); + + $table->addColumn("ocm_received_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("uri_template", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("view_mode", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_received_share_id"], + "sm_ocm_rx_share_id_app_idx" + ); + } + + // ocm_protocol_webdav table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_received_share_protocol_webdav")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_received_share_protocol_webdav"); + + $table->addColumn("ocm_received_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("uri", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("shared_secret", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("permissions", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_received_share_id"], + "sm_ocm_rx_share_id_dav_idx" + ); + } + } +} diff --git a/appinfo/Migrations/Version20230917.php b/appinfo/Migrations/Version20230917.php new file mode 100644 index 00000000..32810759 --- /dev/null +++ b/appinfo/Migrations/Version20230917.php @@ -0,0 +1,184 @@ + + */ + +namespace OCA\ScienceMesh\Migrations; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\ISchemaMigration; + +/** Creates initial schema */ +class Version20230917 implements ISchemaMigration +{ + public function changeSchema(Schema $schema, array $options) + { + $prefix = $options["tablePrefix"]; + + // ocm_sent_shares table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_sent_shares")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_sent_shares"); + + $table->addColumn("id", "bigint", [ + "autoincrement" => true, + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("share_internal_id", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("name", "string", [ + "length" => 255, + "notnull" => true, + "comment" => "Original name on the sending server" + ]); + + $table->addColumn("share_with", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("owner", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("initiator", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("ctime", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("mtime", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("expiration", "bigint", [ + "unsigned" => false, + "notnull" => false, + "default" => null, + "length" => 11, + ]); + + $table->setPrimaryKey(["id"]); + + $table->addUniqueIndex( + ["share_internal_id"], + "sm_ocm_tx_in_id_idx" + ); + $table->addUniqueIndex( + ["share_with"], + "sm_ocm_rx_sh_w_idx" + ); + } + + // ocm_protocol_transfer table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_sent_share_protocol_transfer")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_sent_share_protocol_transfer"); + + $table->addColumn("ocm_sent_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("source_uri", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("shared_secret", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("size", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_sent_share_id"], + "sm_ocm_tx_share_id_tx_idx" + ); + } + + // ocm_protocol_webapp table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_sent_share_protocol_webapp")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_sent_share_protocol_webapp"); + + $table->addColumn("ocm_sent_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("uri_template", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("view_mode", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_sent_share_id"], + "sm_ocm_tx_share_id_app_idx" + ); + } + + // ocm_protocol_webdav table. + if (!$schema->hasTable("{$prefix}sciencemesh_ocm_sent_share_protocol_webdav")) { + $table = $schema->createTable("{$prefix}sciencemesh_ocm_sent_share_protocol_webdav"); + + $table->addColumn("ocm_sent_share_id", "bigint", [ + "unsigned" => true, + "notnull" => true, + "length" => 11, + ]); + + $table->addColumn("uri", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("shared_secret", "string", [ + "length" => 255, + "notnull" => true, + ]); + + $table->addColumn("permissions", "bigint", [ + "unsigned" => false, + "notnull" => true, + "length" => 11, + ]); + + $table->addUniqueIndex( + ["ocm_sent_share_id"], + "sm_ocm_tx_share_id_dav_idx" + ); + } + } +} diff --git a/appinfo/app.php b/appinfo/app.php index 346f6b51..b45c7211 100644 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -21,19 +21,19 @@ return [ // The string under which your app will be referenced in owncloud - 'id' => 'sciencemesh', + "id" => "sciencemesh", // The sorting weight for the navigation. // The higher the number, the higher will it be listed in the navigation - 'order' => 10, + "order" => 10, // The route that will be shown on startup - 'href' => $urlGenerator->linkToRoute('sciencemesh.app.contacts'), + "href" => $urlGenerator->linkToRoute("sciencemesh.app.contacts"), // The icon that will be shown in the navigation, located in img/ - 'icon' => $urlGenerator->imagePath('sciencemesh', 'app.svg'), + "icon" => $urlGenerator->imagePath("sciencemesh", "app-white.svg"), // The application's title, used in the navigation & the settings page of your app - 'name' => OC::$server->getL10N('sciencemesh')->t('ScienceMesh'), + "name" => OC::$server->getL10N("sciencemesh")->t("ScienceMesh"), ]; }); diff --git a/appinfo/application.php b/appinfo/application.php deleted file mode 100644 index f3eab489..00000000 --- a/appinfo/application.php +++ /dev/null @@ -1,70 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh\AppInfo; - -use Exception; -use OCA\ScienceMesh\Controller\PageController; -use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; -use OCP\AppFramework\App; -use OCP\AppFramework\QueryException; - - -class Application extends App -{ - public function __construct(array $urlParams = array()) - { - parent::__construct('sciencemesh', $urlParams); - - $container = $this->getContainer(); - - $container->registerService('PageController', function ($c) { - return new PageController( - $c->query('AppName'), - $c->query('Request') - ); - }); - } - - /** - * @throws QueryException - * @throws Exception - */ - public function getScienceMeshShareProvider(): ScienceMeshShareProvider - { - $container = $this->getContainer(); - - $connection = $container->query("OCP\IDBConnection"); - $eventDispatcher = $container->query("Symfony\Component\EventDispatcher\EventDispatcherInterface"); - $addressHandler = $container->query("OCA\FederatedFileSharing\AddressHandler"); - $notifications = $container->query("OCA\FederatedFileSharing\Notifications"); - $tokenHandler = $container->query("OCA\FederatedFileSharing\TokenHandler"); - $l10n = $container->query("OCP\IL10N"); - $logger = $container->query("OCP\ILogger"); - $rootFolder = $container->query("OCP\Files\IRootFolder"); - $config = $container->query("OCP\IConfig"); - $userManager = $container->query("OCP\IUserManager"); - - return new ScienceMeshShareProvider( - $connection, - $eventDispatcher, - $addressHandler, - $notifications, - $tokenHandler, - $l10n, - $logger, - $rootFolder, - $config, - $userManager - ); - } -} diff --git a/appinfo/info.xml b/appinfo/info.xml index 22066161..9027ae9f 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -8,7 +8,7 @@ Connect your ownCloud-10 instance to your Reva instance and the Science Mesh Connect your ownCloud-10 instance to your Reva instance and the Science Mesh - agpl + AGPL 0.5.0 https://sciencemesh.io @@ -19,7 +19,6 @@ Stichting Ponder Source Muze B.V. Michiel de Jong (Ponder Source) - Yvo Brevoort (Muze) Mahdi Baghbani (Ponder Source) Parham Rahimpour (Ponder Source) Mohammadreza Vahedi (Ponder Source) @@ -27,6 +26,7 @@ Benz Schenk (Ponder Source) Ismoil Shifoev (Ponder Source) Ben Peachey (Muze) + Yvo Brevoort (Muze) @@ -40,6 +40,8 @@ OCA\ScienceMesh\Sections\SciencemeshSettingsAdmin + true + ScienceMesh diff --git a/appinfo/routes.php b/appinfo/routes.php index ab06c200..a9677dba 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -6,7 +6,6 @@ * @license MIT * @copyright Sciencemesh 2020 - 2023 * - * @author Michiel De Jong * @author Mohammad Mahdi Baghbani Pourvahid */ @@ -19,74 +18,11 @@ * it's instantiated in there */ -namespace OCA\MyApp\AppInfo; - -use OCA\ScienceMesh\AppInfo\ScienceMeshApp; +namespace OCA\ScienceMesh\AppInfo; $routes_array = [ 'routes' => [ - - // TODO @Mahdi: Split this RevaController into different controllers. - - // auth routes. - ['name' => 'reva#Authenticate', 'url' => '/~{userId}/api/auth/Authenticate', 'verb' => 'POST'], - - // ocm routes. - ['name' => 'reva#addSentShare', 'url' => '/~{userId}/api/ocm/addSentShare', 'verb' => 'POST'], - ['name' => 'reva#addReceivedShare', 'url' => '/~{userId}/api/ocm/addReceivedShare', 'verb' => 'POST'], - ['name' => 'reva#GetSentShare', 'url' => '/~{userId}/api/ocm/GetSentShare', 'verb' => 'POST'], - ['name' => 'reva#Unshare', 'url' => '/~{userId}/api/ocm/Unshare', 'verb' => 'POST'], - ['name' => 'reva#UpdateShare', 'url' => '/~{userId}/api/ocm/UpdateShare', 'verb' => 'POST'], - - // TODO @Mahdi: why do we have alias here? check with @Giuseppe and Reva EFSS code. - ['name' => 'reva#ListSentShares', 'url' => '/~{userId}/api/ocm/ListSentShares', 'verb' => 'POST'], - // alias for ListSentShares. - ['name' => 'reva#ListSentShares', 'url' => '/~{userId}/api/ocm/ListShares', 'verb' => 'POST'], - - ['name' => 'reva#ListReceivedShares', 'url' => '/~{userId}/api/ocm/ListReceivedShares', 'verb' => 'POST'], - ['name' => 'reva#GetReceivedShare', 'url' => '/~{userId}/api/ocm/GetReceivedShare', 'verb' => 'POST'], - ['name' => 'reva#UpdateSentShare', 'url' => '/~{userId}/api/ocm/UpdateSentShare', 'verb' => 'POST'], - ['name' => 'reva#UpdateReceivedShare', 'url' => '/~{userId}/api/ocm/UpdateReceivedShare', 'verb' => 'POST'], - ['name' => 'reva#GetUser', 'url' => '/~{dummy}/api/user/GetUser', 'verb' => 'POST'], - ['name' => 'reva#GetUserByClaim', 'url' => '/~{dummy}/api/user/GetUserByClaim', 'verb' => 'POST'], - // See: https://github.com/cs3org/reva/pull/4115#discussion_r1308371946 - // we need to handle this route for both nobody and userId. - ['name' => 'reva#GetSentShareByToken', 'url' => '/~{userId}/api/ocm/GetSentShareByToken', 'verb' => 'POST'], - - // storage routes. - ['name' => 'reva#AddGrant', 'url' => '/~{userId}/api/storage/AddGrant', 'verb' => 'POST'], - ['name' => 'reva#CreateDir', 'url' => '/~{userId}/api/storage/CreateDir', 'verb' => 'POST'], - ['name' => 'reva#CreateHome', 'url' => '/~{userId}/api/storage/CreateHome', 'verb' => 'POST'], - ['name' => 'reva#CreateReference', 'url' => '/~{userId}/api/storage/CreateReference', 'verb' => 'POST'], - ['name' => 'reva#CreateStorageSpace', 'url' => '/~{userId}/api/storage/CreateStorageSpace', 'verb' => 'POST'], - ['name' => 'reva#Delete', 'url' => '/~{userId}/api/storage/Delete', 'verb' => 'POST'], - ['name' => 'reva#Download', 'url' => '/~{userId}/api/storage/Download/{path}', 'verb' => 'GET', 'requirements' => array('path' => '.+')], - ['name' => 'reva#EmptyRecycle', 'url' => '/~{userId}/api/storage/EmptyRecycle', 'verb' => 'POST'], - ['name' => 'reva#GetMD', 'url' => '/~{userId}/api/storage/GetMD', 'verb' => 'POST'], - ['name' => 'reva#GetPathByID', 'url' => '/~{userId}/api/storage/GetPathByID', 'verb' => 'POST'], - ['name' => 'reva#InitiateUpload', 'url' => '/~{userId}/api/storage/InitiateUpload', 'verb' => 'POST'], - ['name' => 'reva#ListFolder', 'url' => '/~{userId}/api/storage/ListFolder', 'verb' => 'POST'], - ['name' => 'reva#ListGrants', 'url' => '/~{userId}/api/storage/ListGrants', 'verb' => 'POST'], - ['name' => 'reva#ListRecycle', 'url' => '/~{userId}/api/storage/ListRecycle', 'verb' => 'POST'], - ['name' => 'reva#ListRevisions', 'url' => '/~{userId}/api/storage/ListRevisions', 'verb' => 'POST'], - ['name' => 'reva#Move', 'url' => '/~{userId}/api/storage/Move', 'verb' => 'POST'], - ['name' => 'reva#RemoveGrant', 'url' => '/~{userId}/api/storage/RemoveGrant', 'verb' => 'POST'], - ['name' => 'reva#RestoreRecycleItem', 'url' => '/~{userId}/api/storage/RestoreRecycleItem', 'verb' => 'POST'], - ['name' => 'reva#RestoreRevision', 'url' => '/~{userId}/api/storage/RestoreRevision', 'verb' => 'POST'], - ['name' => 'reva#SetArbitraryMetadata', 'url' => '/~{userId}/api/storage/SetArbitraryMetadata', 'verb' => 'POST'], - ['name' => 'reva#UnsetArbitraryMetadata', 'url' => '/~{userId}/api/storage/UnsetArbitraryMetadata', 'verb' => 'POST'], - ['name' => 'reva#UpdateGrant', 'url' => '/~{userId}/api/storage/UpdateGrant', 'verb' => 'POST'], - ['name' => 'reva#Upload', 'url' => '/~{userId}/api/storage/Upload/{path}', 'verb' => 'PUT', 'requirements' => ['path' => '.+']], - - // TODO @Mahdi: Are these used anywhere in Reva? - // files routes. - ['name' => 'storage#handleGet', 'url' => '/~{userId}/files/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.+']], - ['name' => 'storage#handlePost', 'url' => '/~{userId}/files/{path}', 'verb' => 'POST', 'requirements' => ['path' => '.+']], - ['name' => 'storage#handlePut', 'url' => '/~{userId}/files/{path}', 'verb' => 'PUT', 'requirements' => ['path' => '.+']], - ['name' => 'storage#handleDelete', 'url' => '/~{userId}/files/{path}', 'verb' => 'DELETE', 'requirements' => ['path' => '.+']], - ['name' => 'storage#handleHead', 'url' => '/~{userId}/files/{path}', 'verb' => 'HEAD', 'requirements' => ['path' => '.+']], - - // internal app routes. + // app routes. ['name' => 'app#contacts', 'url' => '/', 'verb' => 'GET'], ['name' => 'app#generate', 'url' => '/generate', 'verb' => 'GET'], ['name' => 'app#accept', 'url' => '/accept', 'verb' => 'GET'], @@ -94,25 +30,73 @@ ['name' => 'app#invitationsSends', 'url' => '/invitations/emailsend', 'verb' => 'POST'], ['name' => 'app#invitationsGenerate', 'url' => '/invitations/generate', 'verb' => 'GET'], - // TODO @Mahdi: Move these to contacts controller. - ['name' => 'app#contacts', 'url' => '/contacts', 'verb' => 'GET'], - ['name' => 'app#contactsAccept', 'url' => '/contacts/accept', 'verb' => 'POST'], - ['name' => 'app#contactsFindUsers', 'url' => '/contacts/users', 'verb' => 'GET'], + // auth routes. + ['name' => 'auth#Authenticate', 'url' => '/~{userId}/api/auth/Authenticate', 'verb' => 'POST'], // contacts routes. + ['name' => 'contacts#contacts', 'url' => '/contacts', 'verb' => 'GET'], + ['name' => 'contacts#contactsAccept', 'url' => '/contacts/accept', 'verb' => 'POST'], ['name' => 'contacts#deleteContact', 'url' => '/contact/deleteContact', 'verb' => 'POST'], + ['name' => 'contacts#contactsFindUsers', 'url' => '/contacts/users', 'verb' => 'GET'], + + // ocm routes. + ['name' => 'ocm#addReceivedShare', 'url' => '/~{userId}/api/ocm/addReceivedShare', 'verb' => 'POST'], + ['name' => 'ocm#addSentShare', 'url' => '/~{userId}/api/ocm/addSentShare', 'verb' => 'POST'], + ['name' => 'ocm#getReceivedShare', 'url' => '/~{userId}/api/ocm/GetReceivedShare', 'verb' => 'POST'], + // See: https://github.com/cs3org/reva/pull/4115#discussion_r1308371946 + // we need to handle this route for both nobody and userId. + ['name' => 'ocm#getSentShare', 'url' => '/~{userId}/api/ocm/GetSentShare', 'verb' => 'POST'], + ['name' => 'ocm#getSentShareByToken', 'url' => '/~{userId}/api/ocm/GetSentShareByToken', 'verb' => 'POST'], + ['name' => 'ocm#listReceivedShares', 'url' => '/~{userId}/api/ocm/ListReceivedShares', 'verb' => 'POST'], + // TODO: @Mahdi why do we have alias here? check with @Giuseppe and Reva EFSS code. + // check in reva code, and make it to use clear names like ListSentShares and ListRxShares + ['name' => 'ocm#listSentShares', 'url' => '/~{userId}/api/ocm/ListSentShares', 'verb' => 'POST'], + // alias for ListSentShares. https://github.com/cs3org/reva/blob/76d29f92b4872df37d7c3ac78f6a1574df1d320d/pkg/ocm/share/repository/nextcloud/nextcloud.go#L267 + ['name' => 'ocm#listSentShares', 'url' => '/~{userId}/api/ocm/ListShares', 'verb' => 'POST'], + ['name' => 'ocm#updateReceivedShare', 'url' => '/~{userId}/api/ocm/UpdateReceivedShare', 'verb' => 'POST'], + ['name' => 'ocm#updateSentShare', 'url' => '/~{userId}/api/ocm/UpdateSentShare', 'verb' => 'POST'], + # TODO: @Mahdi where is UpdateShare endpoint controller function? not implemented? + ['name' => 'ocm#updateShare', 'url' => '/~{userId}/api/ocm/UpdateShare', 'verb' => 'POST'], + ['name' => 'ocm#unshare', 'url' => '/~{userId}/api/ocm/Unshare', 'verb' => 'POST'], - // TODO @Mahdi: Are these used anywhere? // page routes. ['name' => 'page#get_metrics', 'url' => '/metrics', 'verb' => 'GET'], ['name' => 'page#get_internal_metrics', 'url' => '/internal_metrics', 'verb' => 'GET'], // settings routes. - ["name" => "settings#get_settings", "url" => "/ajax/settings", "verb" => "GET"], - ["name" => "settings#save_settings", "url" => "/ajax/settings/address", "verb" => "PUT"], - ["name" => "settings#get_sciencemesh_settings", "url" => "/sciencemesh_settings", "verb" => "GET"], - ["name" => "settings#save_sciencemesh_settings", "url" => "/ajax/sciencemesh_settings/save", "verb" => "GET"], - ["name" => "settings#check_connection_settings", "url" => "/ajax/check_connection_settings", "verb" => "GET"] + ["name" => "settings#saveSettings", "url" => "/ajax/settings/address", "verb" => "PUT"], + ["name" => "settings#saveSciencemeshSettings", "url" => "/ajax/sciencemesh_settings/save", "verb" => "GET"], + ["name" => "settings#checkConnectionSettings", "url" => "/ajax/check_connection_settings", "verb" => "GET"], + + // storage routes. + ['name' => 'storage#addGrant', 'url' => '/~{userId}/api/storage/AddGrant', 'verb' => 'POST'], + ['name' => 'storage#createDir', 'url' => '/~{userId}/api/storage/CreateDir', 'verb' => 'POST'], + ['name' => 'storage#createHome', 'url' => '/~{userId}/api/storage/CreateHome', 'verb' => 'POST'], + ['name' => 'storage#createReference', 'url' => '/~{userId}/api/storage/CreateReference', 'verb' => 'POST'], + ['name' => 'storage#createStorageSpace', 'url' => '/~{userId}/api/storage/CreateStorageSpace', 'verb' => 'POST'], + ['name' => 'storage#delete', 'url' => '/~{userId}/api/storage/Delete', 'verb' => 'POST'], + ['name' => 'storage#download', 'url' => '/~{userId}/api/storage/Download/{path}', 'verb' => 'GET', 'requirements' => array('path' => '.+')], + ['name' => 'storage#emptyRecycle', 'url' => '/~{userId}/api/storage/EmptyRecycle', 'verb' => 'POST'], + ['name' => 'storage#getMD', 'url' => '/~{userId}/api/storage/GetMD', 'verb' => 'POST'], + ['name' => 'storage#getPathByID', 'url' => '/~{userId}/api/storage/GetPathByID', 'verb' => 'POST'], + ['name' => 'storage#initiateUpload', 'url' => '/~{userId}/api/storage/InitiateUpload', 'verb' => 'POST'], + ['name' => 'storage#listFolder', 'url' => '/~{userId}/api/storage/ListFolder', 'verb' => 'POST'], + ['name' => 'storage#listGrants', 'url' => '/~{userId}/api/storage/ListGrants', 'verb' => 'POST'], + ['name' => 'storage#listRecycle', 'url' => '/~{userId}/api/storage/ListRecycle', 'verb' => 'POST'], + ['name' => 'storage#listRevisions', 'url' => '/~{userId}/api/storage/ListRevisions', 'verb' => 'POST'], + # TODO: @Mahdi where is Move endpoint controller function? not implemented? + ['name' => 'storage#move', 'url' => '/~{userId}/api/storage/Move', 'verb' => 'POST'], + ['name' => 'storage#removeGrant', 'url' => '/~{userId}/api/storage/RemoveGrant', 'verb' => 'POST'], + ['name' => 'storage#restoreRecycleItem', 'url' => '/~{userId}/api/storage/RestoreRecycleItem', 'verb' => 'POST'], + ['name' => 'storage#restoreRevision', 'url' => '/~{userId}/api/storage/RestoreRevision', 'verb' => 'POST'], + ['name' => 'storage#setArbitraryMetadata', 'url' => '/~{userId}/api/storage/SetArbitraryMetadata', 'verb' => 'POST'], + ['name' => 'storage#unsetArbitraryMetadata', 'url' => '/~{userId}/api/storage/UnsetArbitraryMetadata', 'verb' => 'POST'], + ['name' => 'storage#updateGrant', 'url' => '/~{userId}/api/storage/UpdateGrant', 'verb' => 'POST'], + ['name' => 'storage#upload', 'url' => '/~{userId}/api/storage/Upload/{path}', 'verb' => 'PUT', 'requirements' => ['path' => '.+']], + + // user routes. + ['name' => 'user#getUser', 'url' => '/~{dummy}/api/user/GetUser', 'verb' => 'POST'], + ['name' => 'user#getUserByClaim', 'url' => '/~{dummy}/api/user/GetUserByClaim', 'verb' => 'POST'], ] ]; diff --git a/appinfo/signature.json b/appinfo/signature.json deleted file mode 100644 index d64d685e..00000000 --- a/appinfo/signature.json +++ /dev/null @@ -1,2817 +0,0 @@ -{ - "hashes": { - ".git\/FETCH_HEAD": "42cd0f2d32ffac9bd6eabeb6080636041951ee0128f8a9d06359ee0e7587a8faf0c8d26c005be3015914f7fc6a7abe829ed32ee1ce178c5f8e3344495e7fa5ce", - ".git\/HEAD": "767a27b222c7787ef23f7b5a86fc25e7e60f5b861e743c60f16d8ee04beeb814acd02bc82b3a2250eb430a3b8188548b35214454bab2dcc27d11c7fe207809bf", - ".git\/ORIG_HEAD": "be09a24aa9ff04d4b7d10648c06767f644d621fd67da203b7461831cec3acc2c37d718692c2b4cfa181811f3a0c8dfab3362068cfeed01b723e92c5eaca281b8", - ".git\/config": "817ea1edd597c0875713790828b49cf2ded7724da4c5e452c42c2768bf161894ce93acd7be4375910eaafabc568987ef52ccd91ecfd5c3b75a0a89a86b67ff21", - ".git\/description": "f7e152f75b124c3e1c5d12f00427729d9eec4e2c1bf70d7606440a6600d003367eb178331e75ab976a61496e79c2c822020849d28ffd170946397b934611b471", - ".git\/hooks\/applypatch-msg.sample": "536cce804d84e25813993efdd240537b52d00ce9cdcecf1982f85096d56a521290104c825c00b370b2752201952a9616a3f4e28c5d27a5b4e4842101a2ff9bee", - ".git\/hooks\/commit-msg.sample": "d6bb7fa747f4625adf1877f546565cbe812ca7dd4168f7e9068e6732555d8737eba549546cf5946649e3f38de82d173aaf9c160a4c9f9445655258b4c5f955eb", - ".git\/hooks\/fsmonitor-watchman.sample": "5168643c1768ec83554a9066754507a781b6d14251a46a469222d462efc6ca87a72c90679154e8a723349c91e7772b32ac9b08dfe313cded0ee0a6f17885079e", - ".git\/hooks\/post-update.sample": "473ad124642571656276bf83b9ff63ab1804d3c23a5bdae52391c6f70a894849ac60c10c9d31deff3938922ce83b68b1e60c11592bbf7ea503f4acd39968cefa", - ".git\/hooks\/pre-applypatch.sample": "cb78aa7e9b9c146e5db65d86dd83f04e2b6942a06fab50c704a0fd900683f3b6ad1164e74afe2f267f6da91cdff0b9ab07713e12cefc6f8d741b5df194f4fda6", - ".git\/hooks\/pre-commit.sample": "7cfb0a58abed1915ee1b261a1c661c7e2deea4e9227f77f5875af1a25c82e19245ba12dcb2f5052d994d0e81a3465daf37f9d8c670e17f9c96742f60fdfaaa56", - ".git\/hooks\/pre-merge-commit.sample": "e4dc204494f5062efa3032b00c64707a4f38978040482501b3e085f071e3ee5a9737d537e6a52002ceb4ebe2bfe09e555c5d969581e80b3eba2a922015c67960", - ".git\/hooks\/pre-push.sample": "cc98bbe0e3865e2023af04416e10689e3aecd3f3928cf90c2acc0d3d7306388886779025c8967c8ea198af1f4fe29d16c65d4e1d546c7a8fa513f5ba7df16850", - ".git\/hooks\/pre-rebase.sample": "00d21d5d72386c3d9b5a1c36ba85201f730556a8295d4353af54af7892ab81010d42aff209ec1fda61c54e4dda3737cea5fda64f09d40ce5004ae28239565025", - ".git\/hooks\/pre-receive.sample": "ee08c11fab7e896b2e09c241954ba7640338b12c75cd8040daf053c31b2f22236d7a0deac736f89d305236312fdb4f560a38d4d8debdcc9dcdd23b2d975907d5", - ".git\/hooks\/prepare-commit-msg.sample": "50ec8a0dd98427e80a82a8d8ce44462a845876e1594c9d0e89483ce9a8aaad616edea0e5c45c1bb69d8fe7f520c6f2260d6fa350d77b400899c3ae375e965bfb", - ".git\/hooks\/push-to-checkout.sample": "586efb6a206f73d8a94561266153a624e2753830bc431a283bed998c46ac00a9df4995ddfd0aa852b1a22b4672c80f2c33cee3fe2e3321e392ff4cef26dbf75e", - ".git\/hooks\/update.sample": "be3780974589d06eddba6fa0aa15a3e3dfe390e2827a1a6ae5cb83d6ac47e79ef9b1bbb53f067372f8dc70db0350d3770e78537fd3cfe734200ff824eca4cada", - ".git\/index": "8386686953b85a6affc6c3ff01ab727a46106265f43fa92147d3039b5bf9fdc715523ada79285ee3ad820470c48464a66536231a372f78957629988f96178520", - ".git\/info\/exclude": "9828c6ecdf91bf117416e17f4ee9caee2e1e37b6fb00b9ff04035ace17a3089b9d0a25c6baa1046c0e1c62d3da88838e8fca74ea82973d6b975905fde58f3072", - ".git\/logs\/HEAD": "e6f396add849f79d6a6df3e7778a942e285cd2121e04fca2db11f4ca59f7aac6e96b704c2337a5da52799643a6d8b48aae9565afcb834f3b4912a3c0d8e750cc", - ".git\/logs\/refs\/heads\/main": "a97b24bed9438f2c1b692a6bfc3251a3b2f1d0340324fdea73bc5287016cae42531cbbb6b50144e55eae9f935e10a0fad70de51165c9a53167332c93f23799c1", - ".git\/logs\/refs\/heads\/oc-10-take-2": "5481219fd6edfc6afeecfb3c5878c291895070dea2c52348db70c6d39c022580c1f44cca5e61720d305eccca46b36ebcfe4b53b72c28c3df3c9af7d40268b848", - ".git\/logs\/refs\/remotes\/origin\/HEAD": "a97b24bed9438f2c1b692a6bfc3251a3b2f1d0340324fdea73bc5287016cae42531cbbb6b50144e55eae9f935e10a0fad70de51165c9a53167332c93f23799c1", - ".git\/logs\/refs\/remotes\/origin\/issue-290": "c7ba1177ab58e2e1647182ba81cc38f031b4366b39333fb5fc4d400f4dd5a24e9dc9219f3879ff732e4b48e07c6fa43d0b503592bf4be599dc3da8815acffdd7", - ".git\/logs\/refs\/remotes\/origin\/main": "dca68a96cbfa03d6d898d5853a9b6b6691029c9438482903791b4e3f5000bcecab44f36f97ae309266eb2c3a591a8589f6759b46dcacee013ac227c5c9870b16", - ".git\/logs\/refs\/remotes\/origin\/mrv\/share-dialog": "34736066a916b2003b393851b970869d3eb9536146324eaac469669552f16dec5873ef6e4e340e7c4c46b3d06f98402fe4b60b4f85b5f6dd71ac48f41629efec", - ".git\/logs\/refs\/remotes\/origin\/oc-10-take-2": "10cf6364b9012d6539cec44581d06c7c9761725bd6c763f4725c616db04b4d41c2598e84d39dc0ac03bdadb8e6489bd967c6fde8576afbdb40066f23d558c2af", - ".git\/logs\/refs\/remotes\/origin\/sciencemesh": "440ff3032b3a2fd8952825bdfd6a48890672079a99407d30d3814f5d1444f735e6c76d6f16a087ed4643a2ab970d5af28759581ea6c66ac7b615774ff5b16bc2", - ".git\/objects\/1a\/e174ebeec16d8c8a9a5e5398cdfeac4c64501f": "63f4e6156dd5f5afee10cab5da2a6b9c71e6a7a32de6ad30eb9b7c6f288d48dd3ffda1b5a69a32661108f965f01baf3e2edc924367bde6285b8352bc21224289", - ".git\/objects\/95\/a75b91e0e78fc64849a609f46fdf9c2ecb652b": "88a5ef1955d041e1102675c81048ab31a553b17fd5b5eba7e72c1bdce40a24f82abf57ad6d418cc0b4f9ef941620df924b42d3879f43c70b58dc2ac2dec0e8e6", - ".git\/objects\/ae\/bb8553b633da3cbaf41400f37c6487aed1b8eb": "917af715161474d76fb92f507fa6c3cf85bd786ede873a8580666627c6ee45824006c1870ec37b003a02ab2e984171e0e4ff76adc09bc778e6dfafda75717939", - ".git\/objects\/c8\/626543f0a1be0a3bc49be1a9d1b8a05a13c965": "0630bc1a45ff98a22105c5c4e14b196a98dd7fdf2160b36e66a70eb3c9c3470511b7d4cb6e16bfb3197a7fa4f683d15ce6d810b09fbd8029f106d9d9e030f419", - ".git\/objects\/e0\/86400a45ab6a09e16dcd4e47d11fbcb1516222": "3c218837cb5d57fe85d767ac4c201b07aa3af921a8e28dfe5f025ddbed6a5d2ca9f6d79a62c7a822208735cf5b3c4c72778ba09148e71cdaf5db2f42e64751bd", - ".git\/objects\/fd\/67495858f59c4e9a702d9abbed00ae9bf7cc3b": "8096b687ca09a3d386b209d3151a34b7b18b2fd1ae6f28ca83a2405fb4642e256e4ef0da4c0fc6fc4a4aba2b88fcfae16728a519780ea9ff1e54e55ab88bdde4", - ".git\/objects\/pack\/pack-671fda6d8045f2289b2e2741c57c71055dfed563.idx": "6aadda852b1a46193a255df93589546b7570abb8bd9b2567e03504a6020fedec10f1ce936c5b202bc9172ac20e9a7e5e3973da33a92c152627577468a7603c1b", - ".git\/objects\/pack\/pack-671fda6d8045f2289b2e2741c57c71055dfed563.pack": "714350ddbfd65d16e8261122f953fecaca372e5a2bca9871ff4dd106e992f0f38fbbf9edc8169c9db84349b9b638254a98631f946c3083fce9779de9fe982453", - ".git\/objects\/pack\/pack-c6e5ef8572498abc39741c26522453f6f4487b27.idx": "98c32cf8bccd298bd23e78aa72736ff6fd5992424aa11ac26c7cd85da9dba782331dc9b795bbd310e4fbb7852c65b92748e0422d772e00385032276c07045463", - ".git\/objects\/pack\/pack-c6e5ef8572498abc39741c26522453f6f4487b27.pack": "9964bde614ba5ed622d5d9838b3ebb477a9af79e4eb726d933f13fefcf7f3ffb6b122aa52177add03c27a89eb6386b082be99de5edef1dd7b81cd89d9a86547b", - ".git\/packed-refs": "5d6004a467b314bbc8d485714d11d40d32ee83c7b66497e4701b029c52ab2fb696267131d27d8fb52fb666d5f8da3d069d1889ec79dd81a0f44f4850e67e0518", - ".git\/refs\/heads\/main": "6c234e9ece2ed88f1c255b7f24527ca888f08bc4d13f5cc19ca67f8108a565ad44e2eef75ce70caea0523b41d94cd1fa3ad84c383582be774feccc252a7931f5", - ".git\/refs\/heads\/oc-10-take-2": "2ab598d8a2423216a4c24a22225828d893c1af2a224bfa0b5ff06e6e9e5c811d1e5d5239fe742ad77d70b02348fafdb4798d44f4828694fd69a4b3164e8cd679", - ".git\/refs\/remotes\/origin\/HEAD": "9389d028754e6147cf04520f96de6d66cfa63e165eb8dd3069a900d9b6f4fde76e144e76afdf8a9af2e0f0988c0c674fe58a8d0662d63c0c634a284bbcc6d3c2", - ".git\/refs\/remotes\/origin\/issue-290": "953c69bd6741c0ab47a33f86482c0724e44527ddc30ba15b14622d10bb5c2f1180926c9cb3a60e760dca9e51b4118ef1e05f02deff59fdcded4d8fa8f41d392e", - ".git\/refs\/remotes\/origin\/main": "407cb873a7c18cc6b08171574b5b30d8ab04e56359c46d8db0edc6e100034a9edc7c1018692dbed1c5fee30418507c74b5e2022a5155787aa9cee1180b46b5da", - ".git\/refs\/remotes\/origin\/mrv\/share-dialog": "2b8d6609d9837502a5610663d7f7276d51c13a59d41102476b2c93b1af090decafca3c7d885b89c9a648e616130c4fcf6f68da4e24dbe91c49819fabb86bc1f7", - ".git\/refs\/remotes\/origin\/oc-10-take-2": "2ab598d8a2423216a4c24a22225828d893c1af2a224bfa0b5ff06e6e9e5c811d1e5d5239fe742ad77d70b02348fafdb4798d44f4828694fd69a4b3164e8cd679", - ".git\/refs\/remotes\/origin\/sciencemesh": "dbcd6400a480ca90ec073635b60e3af350e418dcd8019dc5208e821e55c4acb4b7593109041bb33a5fd2722b060690574e585fe81c7fdd6984dbc9b1d1d0ebad", - ".git\/refs\/tags\/v0.3.0": "51dd6c9cf567909e8728044ac6c57bee1e7055666d10afa038c638f7ab000c2eec630ffc513f9659114cf11944b64f6851a720fba4c465f7929385c16be38e3f", - ".git\/refs\/tags\/v0.3.1": "41eb49603bf98c690a224f9f97c5f7b802b3bae6b1a83a931c8c4d9545119cde76eaa12984bd921e343a9526e75c83171538d509fa268d024959d41aa8ad8c46", - ".git\/refs\/tags\/v0.4.0": "a64a0665b29361344e47cf3559ecbbe5954b6b5354d19f88d60839fa5e03b0aef094ba077705c214b781e467a6c91ce76ac31ef8d25b7e0be8d15150fc984257", - ".git\/refs\/tags\/v0.4.0-oc10": "be09a24aa9ff04d4b7d10648c06767f644d621fd67da203b7461831cec3acc2c37d718692c2b4cfa181811f3a0c8dfab3362068cfeed01b723e92c5eaca281b8", - ".github\/workflows\/phpunit.yml": "c8be078466c7324f467895b0ea44b74dbbead22463d276f509f9f5fbd1bcc56111daf96ad381ec600581d1c4b8e3f667c7bcf09a3a2e098ab137c28f92ecea3c", - ".gitignore": "4d74d36ecfff48faf1ff45f2687d76bb2f5ef2f090f8125be6abce2a7268130905fbb6750ef93fcd21ac715a21235058220ffd820526aaaeacacc99c0d398802", - ".gitpod.yml": "3d6eab5b8567ea95248c4a4c7fd921088714fd240ae9ed66b2aab8f6785b8f9afde1c652500befbcf72656c5b4c012868a33ef1004291769605050dd309405c2", - ".php-cs-fixer.dist.php": "2d870b56f8e884d2a239c22b3dc49678b73f4840be563504b57ce65948be68c6b2241c0b694d672b9a4e119482ee8f056e04e1ed4e325b41956d6bd72516fc2a", - "LICENSE": "49c0a6db176bc7d4bfc7eebe5e7d2ea77c65e45cb9b1da536097eeef823ef5915e7ca1427e6da022b191d5d78152eadc843696f4f60e39dfed91c373a22c0b37", - "Makefile": "c853cb0a8412c243a410fb255b3fe9178f20df38aae7d145e562cb05cc9a0ae48d4145ca3beb5ee61f66e5091b2efb55dd6c879b1dfc068f6ac6b643741f1f65", - "README.md": "0cffc95930f9e6d80c8f6d0133c3711491d3d2b59895a605ed3510592ed80fb45a56c3861bd11ea9eccd6c7c54e130d9d2730270f1f774edc0b8a84d93a49801", - "appinfo\/app.php": "9fa542d9a07bfe67f409012c670b03af7a8a15061c031932705f825f39f1700fa35ed5a4bcd8966bf3b12a52ab9bf2409ba596f6ca1a7e670c314c1ea0413cc0", - "appinfo\/application.php": "78ed1f6773b12a81947984f5cb5965c9c4786ddb18348a980f73531619e642b99dead496dbf3610c910eedd4f39eb6393ed981d9bd8a35e4bff9f3c668f991a6", - "appinfo\/info.xml": "cb8d06d53a33d72938a3d1dbc12798c8f3ab2871f05f5455224908858fb85aef183f643aba4f50742349b93e944567d4a33c9e516e7e3d40a30b11da8958dfe6", - "appinfo\/routes.php": "8f75ee08233c599901ec76c8f0813ea514e524babf0048af03d1bd02cc8ea6b8022013f0bbb5c1a809b923b77e0359069559574e85ea9504130b6e81d71be08b", - "composer.json": "4232603a1aa219422716635822392d2bf1dfdd22c71aa7d765d2629526f39ffac6a8617daf142142f1a5d0da86abab48d1fd2dd91ca8652865c002910b2a9ad9", - "composer.lock": "c135ae4d4612e1f3ff038e2c4fdbfdb9d7a400b869bb00ca94fda3b5fb782e959c94df6e448fc786e37f42a7351df7cf841ac2de3d97ab71a4b27350bb905d03", - "css\/settings-admin.css": "8535ecca2c469f19444241e84acf59252e12dd49ae14a20e3f3dc4a6dbb617979afec2a70a3096205a8a5be5b7f2cc0f0b2415b76435de0c0ee3048d59ac27f5", - "css\/settings.css": "bebb97cc0c69a63afce133459f93d60d3c174557b4333c948d34a440cff57d4931434ffdb4ad08148c1193f530b8e3c72b73c2e1907a15527ffa762f298e4791", - "css\/style.css": "a85189e9dbb861f935cad5b44131e30779b7fc06936ed2c13f0b01277ae68097d3f8f4d76211455bb8c91081273020913085fdeaa343c4d76b6335fd222b029c", - "img\/app.svg": "191aa8c850dd64c470cd67c5214c8f0ded778f3a07b7cce0c53f454039f9bb8d8a8def5dadd3bb8b88f088db3c0429103d9fea98aba191f997087a3003e01ac4", - "js\/accept.js": "7555b1c685ba0646a5801592320f239c400a0d1cb1d78439a9e4dadfd33a75c4aeaabffce7323a09b8e6b10b9a64c01598c11ceffd7b3063e0b8b0fab1f094bb", - "js\/contacts.js": "003629b704d2e1aee29a6f56940fec0695d92fc692c34c787e8532dd3b4b00fa7a3f537dea73bedc66b8c19cce03292ecb6245ddf286cec7729cba314544a40c", - "js\/generate.js": "b338eb063ceb58b25c74026e5d76ad4ea74ba65912315339a69fceaaceab60cc82dbb261a6d6fa64ad83b785e52dba59dd4cd3bc2413570913cde84cc3d001af", - "js\/invitations.js": "826c8e8d0a3878f1b6da4a715f1445e6199c30ed410b5f9e51f161a7e66d99a79e0ba000dcca95639064e2865628f0bd0243e14f3133cf422c61f751826c135c", - "js\/notifications.js": "d908d54359183cc0aaf5855f5058c95fff57e50ccd25c5d2730f67cf997e0029531aeb4252aa074ad7f22a03ba76c7746c636d06028d74eb0fe543af2df357d3", - "js\/script.js": "19b4cf08301e7d10d62a579b3198c62abbb432f8eeba409496df2c8d0f598ce94d8698d7fc4a6ba42e99641163364f532f458ca870c7d07bf93f918b6f4a2f82", - "js\/settings-admin.js": "c83e9437bd3b80d260578117b3b5a63aa37ab3bfbbbb6cb6d22b62287221a8dbab8b8a63bbbb558cc3d33ab80a87d85bc571f46a44f91e581abead9af702f6a8", - "js\/settings.js": "d5c1c4f845e2320a9dd9a5373a9041bc47130ad9e76ff6a37aabf015f361f6c0cc1ab06acb94e983d3613f4fe9bd58157ddde7b08235e884aad84413b6e9130a", - "js\/vendor\/simplyedit\/simply-edit.js": "9697b4179ab9607e9e85c578f766daf4b691ffe0c3f781a458792d592a32374b2c0e2d8b302dd846d716c70da10de2a7d0dab3e2312cf01a3257a90aaa4f7736", - "js\/vendor\/simplyedit\/simply.everything.js": "c09d46ef030691423d5c22c11d4f352f2c4718cf56300a4fd3715c483dfdf4a91cabac3c6ffce6a4991f0c8e05f28d9210f505d6cdae938a209be6ba6639a1c1", - "lib\/AdminSettings.php": "414157fa2830b038fcdba45f94fdc8f4e19f9a8aa0729889705ce764c8a535a0df8706f1f09c99ab869a87b380e727234470ee3d93d003fc187b578bbcba7c9b", - "lib\/AppConfig.php": "63a4727b0fa4835b7b8ae68d14a0b1ecfe0a44baf5e4a92dc831a7dfd3ce62d233e5d070480720712e2cbee7df18b663c0a1f6ae314386cdc1227739355f8337", - "lib\/AppInfo\/ScienceMeshApp.php": "4296ab1af56ab079d4054903cfc1e25f5250ffe0bc532ff87ab5d9b11fc638b9cb37759a28a3a00d29b9279fd4267743fff3f43867e3c2ece9f630c613ff0a90", - "lib\/Controller\/AppController.php": "41acf623b83199937fb517e5f86da943ffe4f45dbd9f17570b727e3e3e6517a19699d0f7c8a8b4b656a7273e229dfd728b8c09ff8472f1b1e2b9124e0310995a", - "lib\/Controller\/PageController.php": "a22a92b7eb7c769664abb585181c289ed430ba46f8e0d78e99350b59d82856ddc1b90b9182c467f65c9a20b303b9f9f09baa0cfee5a751c24188bf22b4986736", - "lib\/Controller\/RevaController.php": "a5a662e1abada05ea46eead7069eb6a4f4648035b3d37eca094c95c13a90c6f2e83064b61a73a28287331deee7b57fec288f50deddabc0274f6a70e02b7112c5", - "lib\/Controller\/SettingsController.php": "c5dd41d8d44f71d018cce6063b20cbdd20356722d3ceff167626c379e79e189f50eac342839fe3dacddb5d089b58ec07ae3db5c6f2b779856c2d99651079c43d", - "lib\/GlobalConfig\/GlobalScaleConfig.php": "caf417a369971bb1915a82b94ba02504c7fc3118b361cc2e044e4a6b5e3584e48c5ec13f39abc7dd6610cb65aac5c6a8fd6fb5136b063755c956085ea4272d46", - "lib\/GlobalConfig\/IGlobalScaleConfig.php": "10c4be609485e1abf9ed341291a3ac2a710a65a3ad2362732cec406235efef855478b2be4bfd65e7998a0cc73670180a6e9589d1b929facda719301071d26c87", - "lib\/Migration\/Version0001Date20211201101630.php": "966dd30adae5e67dfe96842c556e3f91c7b2d6b5f8caf85361e797fe12a7f1a8af46568f97f8eb36a99a88090ab015ff06f62ea8551be66fe714e031b59c409a", - "lib\/Migration\/Version010000Date20210118175358.php": "f8df4df79abdacef0dcd8f5a102d55ccf8097d66bacd1be30ee616442cbafd126b1c7d0776e87ca42ef83f480d7711d650c81feae77f69dad262151950119d66", - "lib\/Notifier\/ScienceMeshNotifier.php": "8fbf9bfefd7edf552a55fdc00cfaf535e2ad14916733a6653582f37cf4f278693e4640f2edf7eb7d026b5f1de3d8a7530fba89b685827ad53d0786ce71a709ea", - "lib\/PlainResponse.php": "326cdceb7ec13daa929acedf700dab3733fcf92bc6e2ac7c57998aa073431bfc6dfca42b03b58a63ba1dda50a0c4ea9c9703ed38abc889f4f328e4ac77b5a048", - "lib\/Plugins\/ISearchPlugin.php": "5f04a0a7a325c09d890ba2ded214ec39c5411f5aa120b2df1e9245e2acd5bae63aef3bd6bccf4a980f58d23dfe8d3e713d9c340f4bef428ef7484a9e8b6dcad6", - "lib\/Plugins\/ISearchResult.php": "dd71add1121d66294e03b28b131ab04a34dc01f4713dee0daad46b5b2e970fb35b6f615af1c99d0ba27d4c07876655bffa680190cc7388289dec171c46c4af7c", - "lib\/Plugins\/ScienceMeshSearchPlugin.php": "3827ec04e6140198db9a913f3a74f897405cece05011e957afe6cced8f38be44dac0ff66298f14cf8a5484e5758ab3645672d561c7bda42a6d8c0b6a6cd8c3eb", - "lib\/Plugins\/SearchResultType.php": "05e7712fd33cb67908189c0c6615a2ae1b04f65f3a998547d5d78b01c87ce6b95b5d61d69441f28bafec1353edf6fafda75c1c827c0d0105439472e701d2c223", - "lib\/RevaHttpClient.php": "304e32cd17fd23dcd48b3b0d6ca78c9327eece2c5607c180bc10a0a58d6b0edb2c0a4eedb7963fcfe85b98f30e464bc0ba534b287da23c92d986f4814a0ae988", - "lib\/ScienceMeshProviderFactory.php": "b2947f4d6172291b9dda0b4dd7f17ab70a281b36490a54816d3551e2c9bae2ca2d1c361e9dc491335f7220ed207a9f66bbc8a7143b0d59d2e3b190f53b810761", - "lib\/Sections\/SciencemeshSettingsAdmin.php": "18e3c55e0a8bcd2e4c7bcb114c2f3f7b552297945d145b1c1aba15ea8c2a337da447b49d2c6dfa50d3c2e6d1db73af4704bec9b8dfca5fb4a3291f8aaeca11b8", - "lib\/ServerConfig.php": "d10a3749c1a39f51777f91102717fc2c6b8888b49ff3b6a1bf28cc476b6c336756902bc127c25a1f99ae0db3d5617f11b09685de59506b61b1419d706cd00e3b", - "lib\/Service\/UserService.php": "80261e3ee775ce5b5dbf2c5ccae3625369ed3a7fa1cba60fb5e2dbf67a1632328f06870ce8ec2946c9e4461b47dd180f6f813f8e6ad0b00ddac35587d3d980ed", - "lib\/Settings.php": "b671f34c4f9fafde6cd0b18184748ec50297e1aadf155ed423a39fe657726ec154e8138cdf5c253d49b47c68e9a6308356086cd5d87beb42e12be437f547d096", - "lib\/Settings\/SciencemeshSettingsAdmin.php": "2433829ab722f7f3290e59b17b2e4cf99b7d31eb3aca4f84ec4a8ff1cc9e5f889a09b821ceb9637ba079289a0316923b056428677f89491b8d61324859684bf8", - "lib\/Share\/ScienceMeshShare.php": "e8adeeed81e1b550a97432a749da0e0ee0af74a42efbec0cfe840c1f52051ec75ca4bf7bcb6691f7df9b550fd7b7221a5113f4c0bac3ba1c5eb65a361cb840e4", - "lib\/Share\/ScienceMeshSharePermissions.php": "6858b0656f6777ae47d3d7c4e83f059e5bf2f7c1d75b80e2e3b1465bcd08602c8d6079efab4ae28d082bae523670ed10548ff3492aca430694bbbd90106d6617", - "lib\/ShareProvider\/FederatedShareProviderCopy.php": "2d692669dafbacb883923e43a05c1d767de928fd3f9011131a6c15d4b067182a52e4fd287214311c9d3466a85d2718ff724ebfb25daf246ecbb82144d8424b91", - "lib\/ShareProvider\/ScienceMeshShareProvider.php": "e8753016a2cbec2baa7a8ec6cc7283e43caa464471854dcabfc12a6ca5ebedbbf02f9c4579468b10c9f9cc3d1a7b251902a744c5b789f10c884b10d5405f3e8f", - "lib\/ShareProvider\/ShareAPIHelper.php": "92692c84b812f6e09caad8d809f651bf9c43ed41488445ba6d5833599e3448c850b546c88fbc12f5553941a3134452a0e8e54fd1f4b01c0418d257f6f699ebeb", - "lib\/User\/ScienceMeshUserId.php": "db0b6dc922c33523fe3cee97ac936ffcbbee637220d9d52a1eca93192eaf212ff75d8f700effadb022f038b0631ab9999b6fcd6217d8d72becc0deb37322e8bd", - "phpunit.integration.xml": "9ef4652123e799fa8061d79cecfa56cf6d9bcbaa18767e11c847f2970dafb639cb3f9d6494cadb889109350bdfef4d4867190c9d21873c4b8c06f8766d2c0c7a", - "phpunit.patch": "d0f21b54975cb68ac4ee205f27d5084c6296f2a226681d89b43a46ab85946d2d94388199df5cc9d64ef38c4b95717070bb83f7e1c0c106b819b13ab0c215b73a", - "phpunit.xml": "a7a0659e3da40fbb3366ab76591de40d3cc3e11b103c1da0ca3542806211358bbfd20652441c0cc7149f53cdff46fd62994623a71feed23fdeff2e9490e7de46", - "release.sh": "68e12370fcff5f2860fd04ad1286163f2b48a6d0f9563aab28cbb837c45152e06a8393fa075907e6c46fc3d6f9d5a3dd026e58a7ca26ceca040fa60db03a5945", - "release\/sciencemesh.tar.gz": "7d506fe4aac93052e63cda04cc60ce7b67e1618f25c2ee0b6598d43a6907ddba04ecb55825e029e848236858616b826aff3ed0c9b3b058333cd97fbe18ce330e", - "sciencemesh.crt": "f86744ea7daf31fe98d7bfd95ce2be7043af0eb7d88cdaa4363a3c4dee8d87506588aeef61abba410e212b233d52d4cc9f60af678a1026c91aeb157c82facfd4", - "templates\/accept.php": "d29ba0441273b90cb26758b67911ccdf49f858f7f9f78cb45d5da618fa911f3cd558aa79eddc1acd8d35b491abf39c5c6ec625db8e32cc1459e5bcff9f80b64e", - "templates\/contacts.php": "c7a89b15161626b53e6a35731a44e62c92bb27ebbeba7febe49a7df1aff4faed83926fe092759a4c9218f0640a88e87a92f054ccc0ab610d3b86695c50b8fce5", - "templates\/generate.php": "3e6f005ccbe96b15440b364a1d3a27a782fcf180d3fc23a26e7757ecc3e1dc44c553a7b0a8d6496acc4f5cd9b1ab4d750a5a2636418b66f2ceb9c5086a43a729", - "templates\/invitations.php": "969f381f67c74c9307d602d53d6b3722223ce555bc8f80baf16ce3263e7e341e3125fe1629f32d8766884a16b2f17832f32226bbf430fd9649b76aa1d7d0e6dd", - "templates\/navigation\/index.php": "d031fe73411b6d56e2b8d72e5181e225e803b01a5d78dde6c351d409fa80e6b8b71bee6e3dd280ad7a6fb327722f3ab16cd5f3823229e6814096f529a9901f90", - "templates\/settings-admin.php": "b92e3fe66e9a4097b89af263875295f0152bac82d50a2646d398e4b8875ffce43a557864f1f2b89ac0ec4b650e1fe301ffd4f4f19811832c2cf0b090afca4da9", - "templates\/settings.php": "a6d94ea354dd4ed0e2674de15c3679010f2512a3a50c05a38d6c504c973c3c4e7065e166669c666addfea36b171da9a7c09d9225d134df5fa8855ea2e2088d14", - "templates\/settings\/admin.php": "72f583fe3e2157b87298ae4b8331ad36ab613a961b09ce53130065f6392657d95ad2c4d6f27642c41263374017134e246551ca11beeff2e38d8054ad628ab18c", - "tests\/bootstrap.php": "7059db737ff45dc7bff9c34959f2bf128e8503b6068c799eecc87242b3e7de485f3499097ae00996944f56ecc3435e58375d07bae3e6e7c5d54fc0e6991e41a1", - "tests\/integration\/SharesCrudTest.php": "77f8248b2bd1d0730894e487085aa72bffdf40e116ef2308442836d8221c44979e9febff5778d11e3827a2474c80621e0adb6e009d5c59c8212f0387c20d3288", - "tests\/unit\/ServerConfigTest.php": "7471e86b08c84c146a127c7bc556972f78e06bc5c6a29fe4ed7f26fbe4e4b9b41383b293d3f00c7042262697e4e31bcb8ce4a9b751b054525070f90e7628d3dd", - "tests\/unit\/accept\/ScienceMeshAcceptTokenPluginTest.php": "ca31d49a08c247c884b395c9d40fbc343bec385e77c97df618a1871c77c4b87a04be15e2b2a97d78d97f4d37a881186c66879032825c4a395235f5f54ca18918", - "tests\/unit\/adapter\/NextcloudAdapterTest.php": "25a6f41fd8d8a7f9b3a64d8afc43f695cff40ee978c6e4a64cb044c08927c17ee260a6a16a0288aed5026021b809875acfb3f1118a300a15818ef87aada19ab8", - "tests\/unit\/controller\/RevaControllerTest.php": "9bdfd13179db7c4ae7bdaf4936f04371945eb726273bf5cc4f235a7a636efb1a34e4d1f62d69f4395f037999d8739ae3acf3ee297b10dc57e644d5691735ec2b", - "tests\/unit\/service\/UserServiceTest.php": "94242d68e9f46f63112b52d6596756ab2ff5fe350d108a036015b3d19652bf1ccb0cf3ca10fc814e6402167ccf15bc3b6a68157629f601e134597dd60f8042e3", - "tests\/unit\/share\/ScienceMeshSharePermissionsTest.php": "2a55e2f95d61ffa3cbba1684539b2eab5a328f83294209bcfce520430249256e4f66345c257038450695e25a0a833c247f03952a0bfb5e46a8fcfed6e519eef0", - "tests\/unit\/share\/ScienceMeshShareTest.php": "5b3830b7a6ea8648e86019ccfe55d03d92925a0668a559800802c5230efb60b0fa34ba57d340da88960790d5f9c6d67189ec68a459bbe9a09963da78744ddb3a", - "tests\/unit\/user\/ScienceMeshUserId.php": "5eff4b78904f9a8376d82a47362bd262b77c882f3dc6f865efa5b373286e9db6e69c3488810f135663f94b122870471ffbbfeba7beaa927f63778e21012e47c8", - "vendor\/autoload.php": "4c91a9bb9a1b821ae9ba542edd31f75d81b130e00805fcd5b8f7a424f9ac57a99d5af717aae7fb5f459c860a317d2e4728487785d104cdfde551fd3e83a5195b", - "vendor\/bin\/php-cs-fixer": "5a1ed2dbc7b7d342855335ad4d1aa53fd1e904adade8247d8963b0d366bdb5be01ecac66b35f68fc5151625995fc0fdf4fb2138195d434914f4d22f0a3c8400c", - "vendor\/bin\/phplint": "d142e6c1f8d3a99ff7f64fba181166ee0cc85985d4773bdcb24b676cf4fe170cbe55b83a3171ea8581dc54e9706ea58cda50836bdd061fa5c3f9f3d28fe15cc7", - "vendor\/bin\/phpunit": "8b6b0ee9df8be49e7a309c90ebcd575cb59ff4b034ba8218a29de097aef8b6e412f3dc831da1ee23beb3bc1b8686829ba889c7b3ef0733b365e22adf8865bf12", - "vendor\/composer\/ClassLoader.php": "a6884d84d11c4bcc2a53f86929ad8f519d5e1cda93724a3069df108b91a71345e59f2598cb0361ac0f88576fc03315a4158215b33e9609d8f07dbd3819754d61", - "vendor\/composer\/InstalledVersions.php": "733e68c171cb9e44868bb0f105850fbd0e4f225c67235bf30fb2ac5c3443c6edfb722d4b33aa91c82bb600e937cb6392eb1883694d41616e66969d7d42e23b4f", - "vendor\/composer\/LICENSE": "f3bb64009f41a425df5a9bbab53490f0eb9b74fa8d6aaa2f57efb928edc4ffff330260666edeaa04a91fed708c3663371cf01b284f3a08d6698aaef7a23f355a", - "vendor\/composer\/autoload_classmap.php": "da3404797802140309d89b49686e881a124959a69a263ef4b4b082825050d39ee771f1a1aba5071f5bd8bab8db40c41210f2d701a33cadc1d0dc4e7a9fd2e229", - "vendor\/composer\/autoload_files.php": "b33b30ec73fefa11280e7b29f0fd2fb030d051b5940fcfbc701c87ba6a8a2d0201baf377a09c1f482ee301911965204e4a15653a12be6d6bcc9564bf24b88d25", - "vendor\/composer\/autoload_namespaces.php": "30324cf2dc20c214c5b5c8fdc2099b67772149ddea1d1d51969c711be9a83d036e43746c600f958a6b49969b16a10ef93e9b1e3d5af9714721ead916b9aef344", - "vendor\/composer\/autoload_psr4.php": "5cc171b104934f3c125fa85bc998802c4e27057bbca290dc21910af74f10f955a5da0d9cd9d4163be0f0f67d9f467fedc9312691e378bb5c67dfee076008ce8e", - "vendor\/composer\/autoload_real.php": "e1ca174f7239199333d07bb3e53cdad46aa2439b267356342cb56f363c390182d78d81a27e3a9dbb0725a221d06040d677ff3484c1032da690cd90c73eb4d4fd", - "vendor\/composer\/autoload_static.php": "4b8670f8b9c85f4d7824b0e10d42dce2d35acb5e66cb2531bd2fb9cb87d0324416d0a2999afe32060cfc5dc117d8b311efa26545220cd14de1b958185b09b07e", - "vendor\/composer\/installed.json": "2d16ef1c310313c284f2c7b1e61f3a7219815d3187fcf5866c89c57af107f09a580a6ab85c62c198dddb8e6cc5ffb0a1dc44c1ee5562146995d7c503158c9fb8", - "vendor\/composer\/installed.php": "c6f4e39c70fea180edd0f83e369ae9657f56d6e73fb84a423309bd90ffb708e243396382d3cca4cb5e10e913110b4049d18c34b01853ca5513ed9e4cd5699cc3", - "vendor\/composer\/pcre\/LICENSE": "4d07e16e9c0dce9e55f082999aa4659a5d2bf1844c70703d44d6d3e4b700d3e262b10659262ac93c0e0832bbc6e328686a798b1358fa09e19d1d0e12c2a57648", - "vendor\/composer\/pcre\/README.md": "2f6a3bcbd4e04ae1a15196801b6aaf36ec9c084c6f3ce1e44c5def6e50fb9dd1a429d3d002e409ffc1404d03a3333c51a0b847bd06d153b12d81d966f623a056", - "vendor\/composer\/pcre\/composer.json": "bbeff40a52bb9ea992a054fd34d5863f30446532c22328f1e57ab9ec2c5ef8e9eae21e0425aa453d9293d888dc07b0c4fedcda8787a4cb81e8e23a66560fb1c6", - "vendor\/composer\/pcre\/src\/MatchAllResult.php": "7baf3e4a92059009b8a82e492819893c63163b8b53bdb7f27eb664a5994d970a09a588d1d773bacab1a71215d8b7617f9ae761b7600b2c815bd055502d2ffae6", - "vendor\/composer\/pcre\/src\/MatchAllWithOffsetsResult.php": "79ab6bd00d886ceee8d788b4877e601fc6d5968f0ee02b988cf287f735864b6ad42bb66f53d3cc736a3ae0a83961234ac4973d3a6784da2f6e750cfc98aac910", - "vendor\/composer\/pcre\/src\/MatchResult.php": "82f5bef8c0128acb514258a2cacb856c1ecca6ec4147501ce63655a04692940b33d0b1e0d280e42da4275360200abbb8b5721f533eb9139de8da220e22523c89", - "vendor\/composer\/pcre\/src\/MatchWithOffsetsResult.php": "2ebed788b6fe8ec9b2b3355a4336b582395084a561a0c41308589389f68ae1fe7353ecc6451f541b61e57ef9df9a52a9dbd53abd26c53fcbfa7a3c31e7231ea9", - "vendor\/composer\/pcre\/src\/PcreException.php": "93bd88853a212f23faadc6ff910b9a60d2514277b3220477b3bd88c0414bc997994256a15a8bff830ca5e7bbdf51a96df2c6d7014767291fe4523b8820b6a17a", - "vendor\/composer\/pcre\/src\/Preg.php": "4ba15938258f222840ba7bd59dc3e22226475998ad980d7b48658ce0fde62bb786e430278ae2d18895607a4f22f5938f4e7f22f30155773076a6a8b90a979f44", - "vendor\/composer\/pcre\/src\/Regex.php": "4faee64359894ba51cfb4c40973a14d9afdaaea4e656bd03d28fada65f12db6ddadf016e56c31e5ba18d453c57e7c0bc557db85481d80944cfac200e33299bec", - "vendor\/composer\/pcre\/src\/ReplaceResult.php": "0b2b4ee452ac72909a4149b7d686190d61abf57dac74deae56fe15079d6e760b234f36559147218bfea1400d0556390675eac8c14b8d8c43c211e056b4b65943", - "vendor\/composer\/platform_check.php": "3a6ee48b1b0fc814c7662ccca2cdd03481c52213f02ba32940dc33d717de0a421f9aade8a4bb75a93c0e91f7a523a139448b9f66bae26da8177c206c6a50e695", - "vendor\/composer\/semver\/CHANGELOG.md": "f6d6fbd5beb8cf12caae014ca18e3adad78aedd556cd3aa642d7eed94eee3d5ac6287bb308027c2abfa8686cebe921d07e9a29c1b02f105ea7bd19d989dec50f", - "vendor\/composer\/semver\/LICENSE": "efc5cd060451ebae8ab720526d5fdb32cf13c1486a677aa028c4b42f0cf0197151ed011584f3d90fb87ea2b9e43e6ed3adf633942fccc66c78c38343987d6ff8", - "vendor\/composer\/semver\/README.md": "a4eff4fdeaa16d5be5056286b32b19ff843701cead586c1f470bc64133f7afb7c2cfa238db22ead387099e09d77447e0d68f54c8ceacfd080d8e38b2c433df14", - "vendor\/composer\/semver\/composer.json": "76756fc3e4de23290f6f0d14e94c82f5f44b3df530952e573b8ac71f0e33a57fb2fa421356c556f3b3a97d88b56c14b6b222f004534414ee722305198407c21d", - "vendor\/composer\/semver\/src\/Comparator.php": "27a291b2ce262f862912cb1050c9751d0b72bc12dbc41b3b7af97cd44a9b5502e30f622bd9ce410adbb64aa2c24f79019b2d5413591116eae427c4a9db56df54", - "vendor\/composer\/semver\/src\/CompilingMatcher.php": "4e9722f9c787ce6d852c21172ef2a74a3b018403c33ce902c6262f44f79aeff4618d68e989bdcef83c5ea841320dc556cf637979ef7119c9a44e2c0a11f3e16a", - "vendor\/composer\/semver\/src\/Constraint\/Bound.php": "a55ea1decc63a97a106958d4e70d5deed8a4e20a49a899c1314989ef39aa670dda6a151722ba29aaff8bef3a11e40d01771afea6537e9cb55cab64f32924cf2a", - "vendor\/composer\/semver\/src\/Constraint\/Constraint.php": "35adb2d49ddef0e8b0e745b6790f108f6c5771f393d4857306ddbf6d2f7ef8e40544b188ce07530cbd5c3a505c0ee2f5be446a085997ee18ad19386e6af6be29", - "vendor\/composer\/semver\/src\/Constraint\/ConstraintInterface.php": "6946716b1dec9e78a0094f68b67eaaf650be6cab8066c9bad2d98e0a334359c6777ac037c9150b3a2e20307cf671771e95995ebbfa3cb7fb992b006526efd656", - "vendor\/composer\/semver\/src\/Constraint\/MatchAllConstraint.php": "e7b8e21a8c97fab18cdc05f9880b7c1c08a6526c031631911b503ae5d80f9e8453a7a85974d859b9cc02fffc7145c5fa19e4246204639d7069dc1ada5bbcfc61", - "vendor\/composer\/semver\/src\/Constraint\/MatchNoneConstraint.php": "c7c74117a84ed1685862aeff8c4d856f086debf30b1c6283813d34c5b8fb2d2987c005e3332310693cef664c8ddc0fef14a91335df1ea89a29efbd3e5ea83129", - "vendor\/composer\/semver\/src\/Constraint\/MultiConstraint.php": "4952f782e4417770e6775cf04c776d552a8d9058a795ac53a1adee590a7ea525c6ad10011282451463972862e0da3e57c1df909f31e3ac4dcd0b734f8a99462e", - "vendor\/composer\/semver\/src\/Interval.php": "39ee5b5f6428e7b7927da8a7ad3410ce9c5c0e97141eeded02f0d216a8f270b97818b212f1e448042a0af87be3e827389e18924977998ddff72834ce23128b53", - "vendor\/composer\/semver\/src\/Intervals.php": "eeb2f5a4c346a3ba04e1f6d0de4b793ce37980d4d924f0a31782f8f35f920ac2eb11011d67a1940da36c1e6aed40ca0e3f0fbea42d7f636721589ff744eb137a", - "vendor\/composer\/semver\/src\/Semver.php": "c0bab50e5bfd16e0f6ed2f43552e1004006ba53028a91ff94b1e25e4d90901c2c76abc97c6a17a38439a7f0c3aad29990e2fada762b8eaa758889b040ef8dfac", - "vendor\/composer\/semver\/src\/VersionParser.php": "b1fa2f3832c5557c17d7e4462e2373cda925960321a7f0ce47931fb887ea25d087510e2b3e84deac668a8f3120a8fbc7c9a66a4609444ad757e0b1090f9d5ffd", - "vendor\/composer\/xdebug-handler\/CHANGELOG.md": "99b2995e73d0208593506285831be7c81f61f08c806987d3328f419cf3756c32ad0a40979bd52acb6a84fd05669b1a373a713520c75011061ff93fe63e2687b2", - "vendor\/composer\/xdebug-handler\/LICENSE": "735c5af831802ec16142bca7ddf3fec17ed627736edf863f9b1a32c2304c9c528c8dbf39e485395c1945978a27ad55cc51e7181346fd3b56d85d70232f6227a2", - "vendor\/composer\/xdebug-handler\/README.md": "336b66cf85568e9b17196f68c2e8892da2b01068c141b5e76b419e8eed827afbd368449a2dac68d4ffcc48f530201855b0a72a25924b64afbf1e7a6d7eaa1226", - "vendor\/composer\/xdebug-handler\/UPGRADE.md": "0ee1dd7123d3dd107b0f59d9de60a3f6e45bcbcf2c0be347c3e9f6ef7e4960c6bc319a3d39a7c503a5b190f22a00e58566e74b835a514463c4e6041b14f69f2e", - "vendor\/composer\/xdebug-handler\/composer.json": "1ed1316e8bfc398c2b2deddf0a46aa4c113ad3f699ede6fa4f29509efc32334195a1840eb6ac3360f49be2e5f8f5c2ea8edf5d263bfd7f414a7b28d1cc4e249f", - "vendor\/composer\/xdebug-handler\/src\/PhpConfig.php": "f95d4cac7f079b8588dcebcea26f0f06c2a782483232d6a9aea027ca85118ef970fe5503cc7a6502939803f812111a37631a41c7f8829f92f280e9e89d5686b6", - "vendor\/composer\/xdebug-handler\/src\/Process.php": "60cb8ca036d2fb653b2d0f35e64f7850fdda05649adbb4e8d495903663d92a672ba73d98ca3c1bedf2ae4e6c0ac21907df1b5c62c54eade40c213a3c85c41fd9", - "vendor\/composer\/xdebug-handler\/src\/Status.php": "abc5366f215eaea19f141ac208b891c8c3de7387037431f5649ca131f283f88e1d02e8da98dbfc8841ca0146f40a7e4e8a90884f890cb9423e018422b5e05ea3", - "vendor\/composer\/xdebug-handler\/src\/XdebugHandler.php": "16246963545f45b001d87884ef0cfc40b42459f2d6bd9ba2a6594ff9b6434eea7753903220bb3f2480a83477ea12dfb2beb3c6d42472672afdf04600973ca514", - "vendor\/doctrine\/annotations\/LICENSE": "4916f996b0ca0f98760505b33b8ff2dfdfd6741eb9e4e11b41c86d1843e57627c4dce81e9828babe2e15eb4e490214e351c1284fb1dce1481a3d4a71955921d3", - "vendor\/doctrine\/annotations\/README.md": "d38d438b8dead60e3babdd144bac441c74a392370be37f2827024fceebf5ff00e39625b6221306fed4f182f0fe60944c8afae82bc3cd3161fe399b13472d3bde", - "vendor\/doctrine\/annotations\/composer.json": "9b6e0c6ed0b74562fb97439ad4385d610f30a60e63729ad8e802dc72b20d259eebb1fd8078e5b67df578930f3b19c38aea6f17c253e9d8f258bb47b5c26f4c50", - "vendor\/doctrine\/annotations\/docs\/en\/annotations.rst": "d8e0fefb7a8852b52b1a4d11847422c9412383d01ac9121fe7e4d12856cf34f2ede530fe3efc261740223b9a77df2e1dad2c800bb635a9c2664d3018b84cc055", - "vendor\/doctrine\/annotations\/docs\/en\/custom.rst": "b9e31c559c240bb6f8b72c368e4c73acac040eabd5e137f324618f1545ca593c35f04c769a5ff146bf36e1c17f85176eba548610b8ec14a7799bc564a853637c", - "vendor\/doctrine\/annotations\/docs\/en\/index.rst": "e5744839bcca21334da817de11a6cff9bf7bef75e6aafcd2d3768a8ff5ecdb37843c50dda64ac2d3fd14740424fc4eb986bb816d1d1e0cbd1d6e7eaec5829a54", - "vendor\/doctrine\/annotations\/docs\/en\/sidebar.rst": "ac66f2a373acd143a261b1621952e5bff6eb4b5c0e88db6b2cdf5291745f6f73ebaab5baa1ff5542ab1b9f942e210453c68e2fb758212f22766502be69f4c2c4", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation.php": "f3342d1e3008b36f1ba9e02fa4fe5d9a23a3f15cc6633d69a74e33de7c373a84c6cbeb9623c933ce4a9474aabfd7a0f0b512749c3a0e336b622f977c2521261f", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/Attribute.php": "99829700ab931b95b3ab8163e372f9f39667541dcbf6741adc21d55f3cd9d49b31901516bd71ae159adc1673845f13ef95767da9b5bb1656b9090fd0e10b4108", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/Attributes.php": "26807c00dc1a6e16cdb59bba73eb1cf1749e163dfc8afb6bf2c7b2316531c9c1f024e570e1491fd183f254a321bfa667171dba29215f353c4f14ee4ccd958634", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/Enum.php": "52a75be1bf65eaa0afda5145383282cee06c889d1a8fae02b38493ee14908994cab117fe9ac4f0799607fc697f05905942a37e0b7a86979a6b3264237e37e3ef", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/IgnoreAnnotation.php": "5a7cc4a796882e0dc3581f93b23e27b5ee2030958918afd0c35bcede784d660ab6e709f529114015beb67e6077e392a36af223b76937caf3d5f8092401c0ae9d", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/NamedArgumentConstructor.php": "3f92547ce039ba1582d88a9865ca171a481798fe07a71c471648c952b736e990235aec29620cd55823e851e86a47d05297108303779171096b9e0cb9d4cafbcf", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/Required.php": "27ea1e91541372595b34dd02a3a70514ff012fbb286cf6802c0790f465afb89bcff333f0692bee20e9787fdd3d3bd74fdfb594c115132b5de33f5cef19c2e2be", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Annotation\/Target.php": "36575e54ecb41fe91d9ad8054661110ab638336fe07b4fdad3dc732f5e17cb3847ab106adf4e5dab450f65e2a7e5a0fbdcb046771afa15e816d9b8c5f7e9f031", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/AnnotationException.php": "edc17a3af49c58e26371f80cb220cec5b3787b1e160b37dd52e4b4b03729cc60df8a903bab0da196354d11a383d1807e38da5a6e3e215481d8ba9195a3f3b298", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/AnnotationReader.php": "8627ebe65796a99850bda4b50c9408fe71920837ccd8e132183d0e903b9ebc7e3f31785add82e0f5ae8332cf484c988b352e3ee585243e946c8d429eb1ebda72", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/AnnotationRegistry.php": "f06d917c4cc19574a4587c80f60661340bd2cb2023b0d3041faba8b74a8a7abcaf16b8189a159201c95837cf2e3dfca3f5ae5ebc16185f11a1217151a37247fb", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/CachedReader.php": "6ad696000837d6ccaae638b29ea122e7f4450f44443ad0fde14bdb9cf99b159566937c5166298573e97cae241ce0ac4a6b47a3442b65e9d62d179d69984c1fdc", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/DocLexer.php": "9e06a54a32060fae226b240c66841cd038bbfff585163ca9d7f0b0312d14cc5b9a05bfad6f1fec369f7617d3218bab8c737f02ac80958f18554fa47c1092b69a", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/DocParser.php": "a6bedee6ccf78a744c45b309f0d5e060d21f82d939ff174664f69caca3bd12c91685349a503ba9479fef8053a012b29d0d188b788f1deb3831cc8f49ea16f732", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/FileCacheReader.php": "9a6cf9a97ebc5c2cafc3b617de426561ac86a0b75b98e2fa0758d5926698c5fdf41aadd7f3118610e97c589e490c7d7f39ea5fe31214ef09783c9074d69d6fdf", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/ImplicitlyIgnoredAnnotationNames.php": "a811daa924ca2478d168585af16705c4391ae543ad4df4171601984dc1731673e908ff12ac9f36d3ab306ccb5cbdb6ddad1929cb19f0f1abdb3a543c4cfdc9b7", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/IndexedReader.php": "56461adfc75141cc54365b9162fedf617f0065da123c33fd98322d5d76d9d29693a85a4291805e0a971755ff0be727f73dffcfa10f7052e289d09b4bc1ffd3f3", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/NamedArgumentConstructorAnnotation.php": "932c3db8d81cacada747e75503d735cc47f506eb9745926a1c03ad805f9dfabe5ec78735c386384a8a95ad95bc5a6ded155d19fa4601c76ef905dd7f8094a5d2", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/PhpParser.php": "3bf933c71f583b8f34f79489ee84a161af9d640c90685378454f2f38a6c049895e88bcf9c5772a79cdce3ff24a5b3712413b898de341c3f3b0e0f1c44b5c7ce7", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/PsrCachedReader.php": "57567f0dd107ac07618bd880ba44e1f29ae7abab19599844eadc23142cd24428c22c393dd8873bbb9865d03a5e055a92fea09c7223c014bcebffa34dff174347", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/Reader.php": "8a64f07cee6bd287f41117bd30056cda8732ba30a7a4d5b49dae5b34a29e1cc00537a6ef9f3b44c10f8fd6c610ef2141741c6ee31cd1a8c979a93e9144261674", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/SimpleAnnotationReader.php": "8e910049ae168426f1262f3cdd8ba5646df551dd9bf323e9c8af5cb2f2c312162846c7265412e6634a91472e9fc10a3c7ced405a468ed7711300ba0cf93e4e3a", - "vendor\/doctrine\/annotations\/lib\/Doctrine\/Common\/Annotations\/TokenParser.php": "44545f4ee5883324eb7ce0a473f1e42742c760766bba74124ac8e5778c62d46aae46d77590658baf9358c75e5ac755f74a30a1213021c1aa2a312eb101aea211", - "vendor\/doctrine\/annotations\/psalm.xml": "848f69dabc144e3e95f0b0a5a7d63b52ae7251b6604d46bb651fcd6f759864dbe491f47d46ac6024bb08fe0094ed441fb3d162153bc920f2f52b66e7569da3c3", - "vendor\/doctrine\/deprecations\/LICENSE": "0ee51d7a36ac55cf70afcb15fae78608e22dcfe3148a9ae696d0b93c725892428110f315ff5c13d12f6aee43be6ec4fbd8f8657b41e08d6e400d86bcbad3c45e", - "vendor\/doctrine\/deprecations\/README.md": "887e6f0e8eb7b8140ac90a3ca3e3ecbba56438649e39aebe902dbd5290815f3a1b8932e9903d9ec39ea8abae0bab04a04a013b71d7331790e4f4af5a49e0da33", - "vendor\/doctrine\/deprecations\/composer.json": "914c1a2a143cb00d5a1b8124a171fcf1c6553003d8e28372fddf587af76a0d2eb830a610fb26763c7565b14d435493abbaa214882b61441f24c9488cb032f458", - "vendor\/doctrine\/deprecations\/lib\/Doctrine\/Deprecations\/Deprecation.php": "0a8819d51318e05ef01815af59b662e6f91ca78ff4b8eddc3f0a8a5023432bae3222c8a1694c1aa9419f81d4f2abd2e01e0b2f274fb3007a69a7c69581bc6764", - "vendor\/doctrine\/deprecations\/lib\/Doctrine\/Deprecations\/PHPUnit\/VerifyDeprecations.php": "0bd55608bf7452e793b67ea4cdaec736f10f204ab74277892a1bbfa21c0aaadad499b6e5033aedb80eb5bdf0e66ed21b0c5709247ec02e495f2719a7ae80885e", - "vendor\/doctrine\/deprecations\/phpcs.xml": "cb548df394ddc85807f16c94264b6133bae1a75736dc2df195ff7d8acb6db37bb10d42c5f54d55bd25d0f449de980724d20eb27a95b7ba168a6d36b2582c5086", - "vendor\/doctrine\/instantiator\/.doctrine-project.json": "e660b12ad7e544748c7dc5c741092f6e432412c873c8ed66c6867785e4fafb126c35853054a39fa023ba809fd7b9d1da4914cf1dd68fb17e55ca6dcd85de89dc", - "vendor\/doctrine\/instantiator\/CONTRIBUTING.md": "a967cb5e0074b3a363616343bb6b668ccbc7c5d7588f524b73f0cbba2d41b7c7d0796245fbde62ca6acda2b47d5edb9a27a595f3c6692b9bd4f48d7d9d312ec0", - "vendor\/doctrine\/instantiator\/LICENSE": "c40a2e98b3c3695d965b6c621d107e55936c0104f63b41b0e01e459e697e7d767d93a5ef5aa49f7f8b86731121183e10ce96c0248a37cc9375254de23111a27d", - "vendor\/doctrine\/instantiator\/README.md": "9fa81a1ddc6617c3279cec6567146186c24ca6e154ccf834c95a27afb435cdb64e20b2e23b68d1b70ae5199f5f038b618b20a86e7e633d85b8a3c1110b7e4916", - "vendor\/doctrine\/instantiator\/composer.json": "bf1fa54a43ec3e4d3d65ff7746cf2438d461a0819e08d62c9eec5bae7457e49213233d68614b03fd869ba54760a6ecb8ac412b303507af41c404aa26044db3ce", - "vendor\/doctrine\/instantiator\/docs\/en\/index.rst": "ffff5b0061c91c6f49c2891794e560c26bd9eebb417e804b23fc8f609f9c8d087806e7bf9bc3aa6bbdc9c13c698bda9b5ad082a64dd7ff1c329029d50c392828", - "vendor\/doctrine\/instantiator\/docs\/en\/sidebar.rst": "0f6b9835156e46da713f95b1df5df734f3b9a2e1d54753463c6e379fc4a57a69ef4bdc4a330d289346904fe09ed5deef1e3cffbef465580c2f584dd62c5dc4c2", - "vendor\/doctrine\/instantiator\/psalm.xml": "d3978b8d9485ada5c731f2bdc3d51c8f96c9d9fbf6615a8b4747cb888498179bcf9faae12437b4442a62c9e2b0ed7e33b9443e09046ed7ed1ef8032c5ebe83c9", - "vendor\/doctrine\/instantiator\/src\/Doctrine\/Instantiator\/Exception\/ExceptionInterface.php": "3824b8e8825f36d0a4f8575cd35cf1329904de7b5a8fd7f183531648aea0d961dca64a55e3d01a20dba680aeb67acefebdd8f37a53f64d7981e12b19034caf94", - "vendor\/doctrine\/instantiator\/src\/Doctrine\/Instantiator\/Exception\/InvalidArgumentException.php": "2a14efec12342b45314a7da9a165c25fc2b6ca279624e6decbfd7992262c47180cb22b7be8ebfe536bb3d46c65b1713508d14d146a83ef76fa30667a1ae44f64", - "vendor\/doctrine\/instantiator\/src\/Doctrine\/Instantiator\/Exception\/UnexpectedValueException.php": "44c358df5d32debdba4db5a15867cde8a9ea6fd49010d7f2ca93781a8b58f19df5050200c911dd70b228c70aaa08fb8ab1d58fe1fcb06ac7fd99cbaa3fb95583", - "vendor\/doctrine\/instantiator\/src\/Doctrine\/Instantiator\/Instantiator.php": "e8997888d8f34e2fe875c5a61e26f26ff6aad0d51ae36c8d7b6471058f3b844f291b076548e550d8a30b23fe79dc00173a6af3abf712154e3555ff0c70ac3065", - "vendor\/doctrine\/instantiator\/src\/Doctrine\/Instantiator\/InstantiatorInterface.php": "eb2ad3e592f69da6369539cc7949253812a3d6fee27787ccb0544908ac7e55f9696e884d9d5d967a83d62f14674ac799d29566efea1e23ca805d8bccac125877", - "vendor\/doctrine\/lexer\/LICENSE": "311b61139664f78bd288e78f3fa95e5c4f91d28a36653fe91a7d4f94a37dd65b56bc57248e0530b0380fefad5b1fa2e342d59fddcb679c3fc0407c9e894b6842", - "vendor\/doctrine\/lexer\/README.md": "9b8f7f8405368b0eb9cb16bfc324c96824e02156f28e7cd9bd3fac8f53aabe2d7a3b9d5166bfdd03127729b2f56f7b8ac5e29f82c2e98abe42213d9718db29df", - "vendor\/doctrine\/lexer\/UPGRADE.md": "4e1f91a93c7354dbe8e781dfd86617421f8a3b3655afd552e3fef9f2de1fdda7091a6ca490888a05b29c08db4c8be3e12814085369b680f9ce88922b747f804b", - "vendor\/doctrine\/lexer\/composer.json": "8f95ec895bb4b034a3066fc50c7fa6d6507d1f825bd555c41e2d7f3a93786caed3e7eeacbcc1350e34e34bc5bf784e3cff69eb3565195aa6e691de320b4b44ad", - "vendor\/doctrine\/lexer\/src\/AbstractLexer.php": "d882aa32e8305fa5de9b10f2b4775117b29a259f54208e98aac76616338d7e5ab6eb5782928ac9e3fc5fc1724b522e65da8333a1884d5d17572b85f150ae4c73", - "vendor\/doctrine\/lexer\/src\/Token.php": "17d0b5acd1f00ec168c871ceb865f44ae0f321d767d0809c5d560ad7b1b651071ac99410c937c8c55b89225c3521e60b132d2621aec7e53ac6fc09bcbc4a1681", - "vendor\/friendsofphp\/php-cs-fixer\/CHANGELOG.md": "d673a83ab1c7c43b6dda629f96d726a100e828602dad19664877cc91338b1666c185e46a2c0a6885d7ca36ba6e42b39d2795d17b58e609ff3d6e35ef26b069cd", - "vendor\/friendsofphp\/php-cs-fixer\/CONTRIBUTING.md": "7c93376fbbc28b96b0be8e5b4b931a94b5f26feb79b30d722b561438f10bd52c2f245a2b8f9c7f747e4f506815bfc7732bb4c413050333e5d4b03939344aba31", - "vendor\/friendsofphp\/php-cs-fixer\/LICENSE": "17f0c53eba1c90bcccf8fdfb0ede5c6d74c3377ba78cd6fcf5f281f9c7ac529dd684e385750e95f321d4e1e397be36f43801f4f1196b68ad5a992e303ff1eb89", - "vendor\/friendsofphp\/php-cs-fixer\/README.md": "399b64592cacfd1458a396a3d1111637e156b1ec8c425190c59827976efadf65d911c072f09998ead048888173f11b9616e48b80b882ab07dd1a0162932ff351", - "vendor\/friendsofphp\/php-cs-fixer\/UPGRADE.md": "024e6d4f927d21cbcae3678ee5f95d9e2146991f980a6e529e394a358b52a2d1cc420583dc1f3a1016b5c70e0e102184ddb2e63d85406adaf00424c1d3d758a6", - "vendor\/friendsofphp\/php-cs-fixer\/ci-integration.sh": "2a6bdf169d197de9292d6fc8edf822004b542a61cd15d793954306074a27195c250902045e8591c371e9ef9d4143e4a468fe68ab4a7d08e1bb60eeb9ce6c0b5d", - "vendor\/friendsofphp\/php-cs-fixer\/composer.json": "4a5a97c0c59be1419f5f6700c9ce0c47f00fc900d5f1d128288a0d2f6b43be09803dbb267091bb5932d8514fd63ca718197332872df95bf531c081cfdb84b5e4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/config.rst": "d3ecf773c42afb4bb6c109416e2ad3a910e41eacec75f0808a173ad215988fe20c9b9355484a162fa9d583826f8ad0ebb756cf476c503438483275467be27425", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/cookbook_fixers.rst": "33a62f02f41f54400fdf07abc2d11d97baa8e5da8e12ff803d8e328e64036e0e611ebeb1fa963c1358ccf4d558baecbeac550c56d559199c771267e762b1f5fe", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/custom_rules.rst": "460cd7b3f944ce861512aa0aeafedcb8a47ece0bdac6c20cc5853c40a64cfce5b94be29d3410704c6e783e1d5826c6a69d4875589693e4a1fb4260b04a173ad7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/installation.rst": "9068c2e2e6b2bf4bbc140235a877c54f70a4831808c0584c3b52bb6a3c611fe6124ed2f7e30fb990ca27959d7413b70b43f79bc8d35fe285f165c03351b87abd", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/DoctrineAnnotation.rst": "50cdd71735aac209c2633e8b0f4acac04c217c399143202be38453f9d2af989db020f1040d9414e26d1757d4706e5d76158dfd7d66665ce7b43b2b537c526bd9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP54Migration.rst": "b8dbee316846349d99844c590eb94a301ac3e0b0ae369c26f7e0ed4a57decc43a9e4d7e6bc5ed15efd9d76caf4761b3ac07587299c65c0dc31d49025cb9dd1b4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP56Migration.rst": "8ca23cc6e05b8c36d12bd0c00e14631313d782f9a405cd78c1e163b73a1749d87a48cdea31be07140e55866c07a340d1d72b500e71a09027816bad8c4b9f247a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP56MigrationRisky.rst": "9d69228d959c2fa1488c589adcdd0fbfe0a8b6cb5fc4809d4be0ce76265e56d3ec188f69aaab7cf9070cac0377ddfb304ea031dbb73fc0bafc24eb2141891c52", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP70Migration.rst": "3a588e076fcaf1fa74adbb7e4e7a60efe8e984903169772ec274e0d71132954b39ab898bafcff585651d9b0565daa0b2d04bbc01c8d3a152ebf032a267a6cb16", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP70MigrationRisky.rst": "50f8ce5a660661c5a7bb118c0835cbae6fcb9cca3eab0e4002e6ed769f147227100ea60f8832af2cfd0588d943fdca4cd3b3fe3514185abd73c3eee534bab09e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP71Migration.rst": "5ddaf0d7ee827151e3bef346af3face8da44ee6a551a948d4a2d1e15b0cf3694c3d8ca07dce2f3a3f7195e5bcec92bb304c6f7e940d6c0740465c75ff9ffc946", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP71MigrationRisky.rst": "2d875521e2776175c5bff7e396567bcc4b7b4d61caf857e857526f97e90d223f7f2d283c19768ce8f28b12f9828e5e611689e984b07016640be7a57c025dd622", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP73Migration.rst": "769a3b3590ed3ca88d3ec2264a09651889b8d399ab188cbc2153c8b7b2090bd8e01b6e4a468576d48b7654229adf81b471fc80834559cd2414f8b1ae6aaf98a2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP74Migration.rst": "c08f54d727bc129464da69026b496b918e566ce39132619e26c8df650ae10015eeb328c242a0e498a6c8aa8e4a7cda7a99836233db8c7277f0a547366b1bb448", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP74MigrationRisky.rst": "324e3780b6ed343c83942fa98fa3002442fcec6e3d9f7359ce84db321184dc116a428e474276aefebedbd1806d3f7a3a24479b547e733b26b6443c505df3f859", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP80Migration.rst": "053a3a73d5a5832b96f1be3f24d9ee2ccafd37406c061d4ba5f429c93b879552393c00eb4e20e71abad1c488cb965a51cfc4125e7b76f495235a002c3072a607", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHP80MigrationRisky.rst": "bacfd82233a68c8e81a721dbb72fc042551deabc68b156231a82cee3427398bbb265c311c2c5b3818730f002df85eb23a36384dea6a1f968d8877c0c1b11c88b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit30MigrationRisky.rst": "69d95d6324fc61b6fcc2ebd2041cbd3b4bcc66e5d6f35b2511767771b830e6c0dfae801891aad76481ae6effaebe43a80ccd72b40cacca0891b471622b07216e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit32MigrationRisky.rst": "2d350ddee43fef8753cb6447169414852a2f3af72d58b0a58c0dd5774639ea1b9750c0eafb6d63152382755cba8e9e24a238c2edcd5cd9d0fa596ee2b64004a2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit35MigrationRisky.rst": "a4757e1b6b0077300870096378cadb2d36ff145e629df3b7cd1e2d730b6d06f59cef32a8a3459019a33f22a0f3a10abfae83e7543a647b2222d8b31cfaeb3ce3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit43MigrationRisky.rst": "47283ffffd17d809ab49d97e5c0004614c505849283339e275637a8457b3238324b33025ad705051b41abf0bae20b9d037636d41867764ffcc51ebb2c3c85279", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit48MigrationRisky.rst": "c85060479a7711c6e6660d9f3fbeaa1eae6337e74b7859929e9bb164be03d9524ed02dcdf647626074a707abb3a5c6ec1e855001a8b9f7b8537000485dfc4bb6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit50MigrationRisky.rst": "6e1709c49a7fce5be6563d1c0bd1a9a13eff8848c10a96f32817888c6566e9bf0984439d64df99866f986bddd407c842fe59b3b7d86212dcfb9818a92712ea1e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit52MigrationRisky.rst": "00ba58fc931d13457b7e3fcb0c610b38ba8c34eec9c6b6d09ddb50c14dc580c03c22ccb90b45e6c191c2f8efff9666aa7c15bd279e1a58c873957c1525af9d6b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit54MigrationRisky.rst": "c3bf379d0209e18259fbb28546f65c817409caffb22142fd4025bb2fdabfcf53d6bd660b7d864206e38920e2bf1c2be94934faa85aa7daa52d25fe9c55a4737c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit55MigrationRisky.rst": "625d9052fb6f0b698a29b9434d48248ba8db15e3c81cecf2110e796600523f8c127ee178516f9dc868a48b963663f25c567cf08c40de9b2bae665f958d575711", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit56MigrationRisky.rst": "60266800ebbae847b90fe55a26f33a4171bed8c220988c9824932d2dcb44b87e2fe582ee0ab3c2201d9532f3ebb0757adb0ae54d6023832719167882affe10cd", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit57MigrationRisky.rst": "a7fa850d0ad3c20222d84f363bc4f6dc0f5022a9dc7fede8faf8ee27ffeecdd07ef2b5fdee17f3fca0fd9328b5ef009d21c5ec6ac3eff3ff502ed6be77c91a38", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit60MigrationRisky.rst": "50af8a913d7cab75857d1d90163444f8066ca1382933ff882a84e01af2f73f3d0b7f88e72e4b4784ba9794b5d77d78ba24c2b8e4cdd4336fb390b6041835c298", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit75MigrationRisky.rst": "fabb020bf69970f198ebe294357f8a331fc9fc53f2cecf86f7e16d2dbbb50ba8970c2a5fc3908f6453c058174c4fd269177d4e71e2e53ce33d80bb6a42500189", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PHPUnit84MigrationRisky.rst": "fdd36ada6aceec9dae715cc76e633faebde0f1457f506f17ec664e7e72b0c18cc8abf6ec399fb6d476afc87eaeedc0ca197b576ca2b014a4b088054c87ebd59f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PSR1.rst": "2d21f9ae623b68cda298612ef6f81968b0b0f2ce4e3e4d9d700b48d36618a701b6028f2cc104cd43efdfe1a1e0802a6c5cea2cbd41c9a01021a046a6175c4f98", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PSR12.rst": "721aa41037505b1c89c3679a9583c38fa01599834403d859c1cf1365aa66bd6cec5d505ee9ace8b825b2db3f80dfef9dfb504c2c23fa6af6e9ba166c1199a6f0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PSR12Risky.rst": "db94d09b085577eb87cd7aa928d86cb72f6475d4e39b0569314e92384066e6b331d4b71f0ba659d741a5c52840819275a1571bb2d381811f9339a05b0695c05b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PSR2.rst": "f9d3bcf24db2b7407bc09d08218782fe553b2bca63c16be89210b8d2b246dcfdc884d11126637e192f3ffb3514ca99e2b92377943f3b01010c2367d57e14823d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PhpCsFixer.rst": "3b01a85da42985154844ba2035f9321b44969331598dc55c5c51e1c0c672b7d1988c07958d54acf8f3c0dac5bc81e232bbb9a56e22cbc472027ce3306f8d7e28", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/PhpCsFixerRisky.rst": "5c2ab719c151cb3bcc3dfd343db662b4d58a12f814f9756b86d6934af2841741918fef163b9fbf15cfe749658f09424ea931ed2083266c03d94d2b3e3a4ec372", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/Symfony.rst": "91738dd08716fece5d57bd74f6af6c273b490828be36a8f18c45cdc1bd2699a2257ca21849b5f5e68d2c3279c7d1b65592cea26990136d7d483cd83070bbbe5a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/SymfonyRisky.rst": "50095db53d930b549935e26687db23cf5094b515216998ee833bc1258e2beb684b0d98cb0dfafa5365b865418904ba428d96ae139262337957603107cb04eb74", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/ruleSets\/index.rst": "b9018c7e996645dd0987d8d2b2930b6e83c9bc2b02daf7865e231155882744f7538cf7732f005fbac5a76a2a3a586228c7662efdf77ada7bccde2946e571a7fc", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/array_push.rst": "1f14769b0bc63a698c4f03ba0b69ab59a9baa8b5dff499ad0564ab2e73821aa33f79750b10f2eb7560e285a9066f4a5e36e7acef714d7ad998cea4729c2088a1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/backtick_to_shell_exec.rst": "b67b3660ecc3f15a23e083ba725d9954626d07a82220e11584e6a737968257efef97b24d106cc4754619251380c7a88c9516b6bf9ac59bf0adc9dd7d20527d24", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/ereg_to_preg.rst": "37aa0c800d5f007d43c2a8202b451056cca4d8ff32f5aa925483ffdeca004ca8708fa37566c64564ecada1c9aa4f5bfcb509c14d684971ff9938a09e4e88cf1c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/mb_str_functions.rst": "e320514a4a604e6e7a0feddd89c076913ee452bd47f7cd6f2a9d0e34e71983342286a3e7336b91ba851538d80ef6cd56bdf0b5c8b9ce64aa515d3148cda5f40c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/no_alias_functions.rst": "4dd66cda823e8271f634397766ab6f49c30b0faf9d1db2a66b7fac7f3f056a39c784db46453b3f86c1a02835fe559d718ee0c1f91283875eb16a01f35ea1975b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/no_alias_language_construct_call.rst": "c8716fdd864f9558bf8f7a86e4c5637babcb2f87c94dfb061ad9589ae714542d7a8fe9c0bd3a76f2cab08bab7b5daf05aa596de5ee7443833b374e05218ba31b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/no_mixed_echo_print.rst": "04f951f04f630dc419fbaf410c95b2aeb77b74e06603b308eb0338b5ccb23d4258c4ce62b5ebcb77e6fb5173a1a803e3fd38d26e4f18aad4d66f89ed22ffbb94", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/pow_to_exponentiation.rst": "a614dad3ac2aa0f369be4deca4315ac760696e52cb2f81cc5a6b5f1df6495fddcab51957299aa2be893c7df2e3eff1507554f7238f999cf03d861172654e7236", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/random_api_migration.rst": "cbeee06dc3f84aaab0076a6de1e1cac6cbd05e493f59c97a8e132385c75a08062e940beb62451636e17c777c37731b5bf4ac6c5bdc2db280deabdad9a934c9b8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/alias\/set_type_to_cast.rst": "e5031f42d1d60fe74d15fa7910f1e9b8e49c650106b293b3d55929604ab94358199d1e75435c21e812b01637f0c55d853be39013e4f17f49d3f6d2e3b682bbbb", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/array_syntax.rst": "f2f3710e03a1e94e003d30df01ff90987b83646e79535428685a518391e8ccee0a05df84cda34e35786bda6b1ef4b0c4d6d8049f622c72bfc0d3a95a0e5c634b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/no_multiline_whitespace_around_double_arrow.rst": "231b7f3e9518898143e5c4743f6e58f9842539d3dc4eb8c3b7684f3436b022d54ab9c08330793d739821917f746084a3944cb8fd227ec6d5b2d36aad3a5d0d50", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/no_trailing_comma_in_singleline_array.rst": "510fff8f862055dfc0757933b0e6c12f44eaba22f94c986efad8ed00fb1798e5c269eb707dd4fd4fe6ba0766e9b00c9ea87a677f347ac3fea85a681db4c856f1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/no_whitespace_before_comma_in_array.rst": "51b10f58edccec2bb7ecec23841b684a5c870131851566aa66486f19228d0c9e3e7e5fc156b9c38acfc6960bbe0e915e4d2e7b49e64dbc721f0d95f50f28efff", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/normalize_index_brace.rst": "c298aac011f971f7e2843ea6b07830686a1a01bf7e799ca128258cf41276c10da3234bda3fb1eab8f7df9c42cc1f209082bbbd82ae830b02d7c6f3cefef9cb59", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/trailing_comma_in_multiline_array.rst": "c5ac90513a0c40c6dd2285d7da2584c3a487dcc8aa4024a747731547d97ff15682e9937910a21f47b0e94221b71d269372ab646eb33b18619cf0879fcdfcfc5e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/trim_array_spaces.rst": "50c985bff589c5a4112396bbf106d9b86fe55ba3e90ed9b305e18d081971d2f96e8b7c38fd9417a3c51c51598e652745c1f6ed46b67aae293cd580c6323c041d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/array_notation\/whitespace_after_comma_in_array.rst": "0c330244d6acf4f94047417db84bf901c4152e17d707f8dd5824eacd2a9a344eeb6781b33b2e5d052f71fd8590347d5837f4b969c5acdfc0dc097dd516beaa26", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/braces.rst": "79f6bc5335f6c448de5f8780264d95ef037f21aea24abb3f4652065571b0c6365a092960a82b71dc5fa752070a267e3a041c1f9ba68112bd2175df84f9f6261d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/encoding.rst": "e855c62a1caab587ca9fde8ccb7efa1bd87de3f762fbed7c569e6f71d269f417b87708cb479d9ae5617341c00d923099753fd819b6eba666d9045fd16ccf30e6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/non_printable_character.rst": "1510d04d040d8f04fa4c34c5ed7f24c3f08161c4199ca00987cb878dd2042165b4e48c4d9272f1016ec667d9a8a6796a629465075ecef308d358c76a05a5dfe7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/psr0.rst": "121ce6593c94aaedfc4ebd880bd3bbcea713d4765e578483007c5126b6d4f85c252d8ea296dd81ff7d0f364ce41c9d72376d8e8f3da637b1467fe2a0b747de9e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/psr4.rst": "976c97a8bb5a7dfc186f4c182a14b09b80c1c3d0e432f684e6aefbfe5c657034751f87d42953915b8d44779b6044e59fcaae5c3607d0b14c14d5ca93117e41ca", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/basic\/psr_autoloading.rst": "1ea60584bb954f70ab1caed73480c4d1dd65af02ea113907d94f57f37a1736e84f2c57132eadad04cb351b27f2abab932e32c4bfc029a9e191876407330cf7f6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/constant_case.rst": "6100986a33920baea14e7553f04c2f2b7a1c79adde291627802adf713f299e3fa79c8b5815a78bafa320c8d0b15a12e71a9084ece312d878aa74ed6bfe06c1d0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/lowercase_constants.rst": "6125a23f0b3be0be3b1f8387101e0f1fb7d614280e17df925154eb2675330f65d83c26ea539917bfdd22f9ab5aa5b22a3d43ccc2e290bb6a49163ed315aada43", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/lowercase_keywords.rst": "d7ec5c14021f12e6e29df4a0bb0779d2443c6efae182ba816c6a3053cf27bb32a3e4a81fe93cd9edac392f078cc42bdaa374d7b3b58cbcec19156c325fa587d7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/lowercase_static_reference.rst": "a196a778fd0440b8bc8c340700a830a4526eb2549a85019e251f74bcec2f6c89510c308f113b804bd759f38bd55aeaf7e63dfaa1143be28a65d3e69bb2766eaf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/magic_constant_casing.rst": "70399b9c325f86273b4853eb3088b890fda33b1c7ecf5adf9fd7a65f00a16390b1d87c0ada95b38d819e36944b1ae25abb6ffaf01fa01b6e1649f607229508e8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/magic_method_casing.rst": "df5c340a470060deb45d53c0f67176e8b9ad27ef219c07fcad3f802a4b0885a710fea066f3c5b4778e6bf83da2ad42166c85fdd66507e95e1f968bc0dacb6990", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/native_function_casing.rst": "547b50b49ebf6167bee60c98e93470551fa6800f3de4755d75ca584a411e4c746ea2eb8afe42a63059ea14055fd827c463303cc08e228f8620cc349b8b36d87d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/casing\/native_function_type_declaration_casing.rst": "972987b1d34a470768275076b08fe049d99d95e0812aece97aa9524009105ba4ece84337bfc1fe132478356f01ce02718a2d5bb42316eb308225f827bd40c26c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/cast_spaces.rst": "6eae289f0b0cc56840701cf1d99c2f89315676e715c5201e7eb7e245d89ced292087ace1aefbfa6ce26fc049475f7438fa2d29587292056c8ce8c087411a6811", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/lowercase_cast.rst": "7ed84a6838ca9aac6b6e6e519e4e97ac099de6f02c4686376554414fdb4dfc09833582ff0f5a5c98d23d7de71d294f7a853deddd506df726ec7fb1d45a6ff426", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/modernize_types_casting.rst": "de2e13e5825381f677a10a63591d99345ee9a2d542f6061f56093182a7e318f81dcc7e8fc9ab960e774af763754f77a8913135ba3d5c8b726d9fdf0931c31453", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/no_short_bool_cast.rst": "1f87cda73902c8100ec0f3c0911195d1442bd71ca7c130a7ce312d8b7537739cdf61580d3ab486b2d03e21abbd3e3c6dfaf36c685162b2b54f0afdf7e86f7dd2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/no_unset_cast.rst": "a33392d34521636a21f53ac3cf66ec3a248ddac38e9bf2110e696cef91237e25af1cb49ea1f24ee582e3df54f351ab162288f90443ce905190c8678d557798ed", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/cast_notation\/short_scalar_cast.rst": "91c5a653bc5036c9f24d47485a69185580d0e507ef24e8b4cb55ffcaa12bace34224b556df8f2f255dfc88e38fc4824683a1931b4165dfa42633c3e8bc941aed", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/class_attributes_separation.rst": "f6ac75835b9fca283a8ed5d4ca72f3e686dd5eb78c8066b79e1d9b714fa7021c13056fe72ecf6d62420a5c9571d0912c214d56f8c4f6c2be18204c392d08c830", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/class_definition.rst": "3e40b2d56065ed5be36699e904dc45129228f8e6779c02d58597762780feb71e3b53a6c757696fb0e89311ecedf774c535ed40880f5f02e4a02910feaaa8d6e0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/final_class.rst": "a1a0f79f9a6df92c0e768cd4dee530a999080fbb1b039005a9380b377da50da9ab0114e55ff3be7e1857fdc0114a929d820706eefec0726049c9052ca55dce4b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/final_internal_class.rst": "d7e7dd3aa3b653c0c001db439dbe601cfb321fe667e0742e580d947ff5d1fef9ccc25324f4c3840489d336bcee2672710daa3150b9e7fdfd3f563793a4c9b4f9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/final_public_method_for_abstract_class.rst": "ffece1d1b8176b5d4d8653f46222ec75f14b61a03668b2c656283c72e97652209b7715c817e6deeff259da8e19ab3c36d2b28b306b80160f8e6122ec6ff1d777", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/final_static_access.rst": "f2b5e25e1f70a638bd6d7377525eeea0ce5f40cd1a17c9c0f77e5910c3577d8f5732e63bfa2b47559abe51e82d41846c1023337499cb5e5564cb9228d536418c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/method_separation.rst": "f8620150c46d3b46804ab5ff4db8832035dc17a7cc29025ac981dce66260fb010974b79cbf11d0a8d756239bc8c40e7fa375d4e5b33b1d233eaf7b10b3db51ef", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/no_blank_lines_after_class_opening.rst": "f0839ceae429232c1cc25670b4d24362b88d1acad4834d0025ec101c2cb1a6a1784554f36621c6d0f7840c6c16cb189ab4c59964875290a3436b46c7b7f0686f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/no_null_property_initialization.rst": "cc64cd54582006491146ddd5658c90ff5a73c6469a2bdc637d1f436afb3e3a319f07d5da102be30ab3789b273195edec193190a0be3121f93d22a058a46d0dc8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/no_php4_constructor.rst": "33e53c7b552265ffd0aad3cd9d055e58d8dc715ab806994b73d13191dba45c8825245615b8e6fd8b47b2c654b8a4be4ae611c97991eb3b7611ce62e3137aac4c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/no_unneeded_final_method.rst": "a58e5af1bc2657a7f0db0671328b2367d71b9c2be1dd96cd68dc3c5e851da78159db0b14c164ac76acb1ac50147f94249cf29bb046855538ea46c32a72b3b297", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/ordered_class_elements.rst": "42fe263de74cb5de36ce3c154281d3aa6c35e3501c80130d003752ee975453f8f2aba3048a0dcd72496acc27a72c4363edb0f237b843ee34f8ab3bebb56280b4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/ordered_interfaces.rst": "1225abf1e8e0ee8a5898cb3d1cc0f7706937c7abba68aaa160933bf1cbbeef755585f0d6ae07558eecf8d3abaa0b0799e318587b23b5299e6ca42f6ba94bee12", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/ordered_traits.rst": "e1e3e8ad94327b9dfca522831ee9c3d952dc17dcce1c927de07c8edf8742704146a99cb8074b3c230f48f0c379cb6421ad87ac4ca4469661965143795b51f120", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/protected_to_private.rst": "e2a57466e93bd8d08fd4d5713bf9971f8a85493ce712553bd73978706e3de1bb13f9a0468eb9b513dad6f27790ddc32e6d446bd8d6f8fcda9b032553064f27b6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/self_accessor.rst": "9c132f34e42820382f4f0b326d35cbaa0c8d572433be879c4afbac99b55fe9cb1c67d772deda50ab79bb76c2ad31aa3d8459a324e3fad00232d0db67ec92e017", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/self_static_accessor.rst": "380f8b0e67e342d21a5671e439d668195e551dac2dfe86fc6d79ae4594a1851fea05dbe9a46655b8d4db8f644578dbd2eda835d31d8080e1869575f151f8b027", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/single_class_element_per_statement.rst": "1212e0e24afc37d57cd14bd55161817d62afecd7955eb84a4fe122a777edd15734448bde2c951f7aa5a37137262b08447602bd2abee38319a4d790004766d262", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/single_trait_insert_per_statement.rst": "4ee6d2b8a2ceb42f4b4ccf37747448c9bf2f3c23df09b4c853cf8e6c0634180c036ea290469ee0880e37d838a85bd683c0d01ebabfdb8783bfae85b4c20955bf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_notation\/visibility_required.rst": "ccb4ffc3cda7fe30adf1706d894ca33590f9a68db2b7ef0316db728c3a9c7ffd2b7e6cbb6c0d4c21ef319b8e150d54fb0be4f8629def2637f8ff7e802d64feb7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/class_usage\/date_time_immutable.rst": "b2104d06f8c25b92f6ee9853da51ea8c49fd9e433f36559e10d584fa9d3b2994424627e4573e789e0789ad380929c16b6102cdc85f518db47b26a89e7869d9a1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/comment_to_phpdoc.rst": "bcb1dd7acdfaba5a6c42d7d0e379c42abaa359b490719abcc0a3888a7321d68adc007c2915697975cac26a6271e5af7f55f31230b6c734a4ef2c0c655720a59a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/hash_to_slash_comment.rst": "c420ed942205ac08722602bf3eb419ce07a39f12c838f75d77d8ea0514086c60fbc27e2c5f36bf3cb67f6065a701bfb69ce61ccc3690bcb9e7b124805594c693", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/header_comment.rst": "d75c39e5355479aecf192567fd7da9d0c49c189b4274cf090da37d18109f1a895a3c9b5124d3f0410d9c0583ca584134e0b74c8224b3c0a09eb99ca71b7fe136", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/multiline_comment_opening_closing.rst": "e9690118fcc46ef57e7c9aaeb0f7710652ff9ea5c794b9b7356eec538eebf172e57d500f0a7e4af27e15d50bc75c09b9a141353e8fbb8970cc0ff6db1c9b616c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/no_empty_comment.rst": "ca421fa630d7c845603666f206ea07f26f029789b5d1326b6753458f21dd4cf42079ec7a3ade56abc267a31caf41ea67bba2b4d0ad1dcf32ae0233f38816e311", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/no_trailing_whitespace_in_comment.rst": "f56d6cf0e29c60cf2c15becb5f6bbf6661ace896a790ef4524ed0e48dab8fc263c9a2f25facb8a28b17828c8887bc5ec0116692ab10b50b190fe22e352af7bda", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/comment\/single_line_comment_style.rst": "e9400870754bba5b3f35feee96fbc309a6746a82c4c4d564ec5dfc4f9c64f1d1571d0b3b83d635474dc5ccd282fed2c2929783709f11d20015c9f6a86dd32877", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/constant_notation\/native_constant_invocation.rst": "78714b816d910876f7da90d0329a2e9abaa615a9ab0fccb6643d02b3668a17ca6fe061b4d70cb99fc0b9a06522d0ff685293db9cd793b3104730c09b7a7a58b0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/elseif.rst": "b3240e1933c687b32b7d5c259c7523ed6c7dd76c60619321519b8af8cef601829883c050d146c753d7aaa447130630b59cf1a36ce849891956512aff07c09353", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/include.rst": "27b32b23cae0deb6fe34a9c0e72f472bccedef4e36a592f963bc91c475b14f8dd2c4b3c6dbc3c91535999d9722f89b67830ac78461193daef4eb01ab5a370781", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_alternative_syntax.rst": "4eed6d867c053b9cc6a2bf28a8315dd3467034f937601867743cc649d6c31c1a284062638ebdcbc1b0e1bbb5854c3246edc5b26c224ea904a4e1c1145c24689f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_break_comment.rst": "c78828c93b7165d5907764b5e1e535553ba4162457b97acfb5ae09259a5d404f6d0277920242c3699ed8e0bbdca6b95d2d8dbbdda53bc10c2c3ad74bde22db5d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_superfluous_elseif.rst": "af05e78f0ea189ad304075fe5d00cee257d9d6efac53d1c2abd482d818ac5ea49b6f74d0c7d37dc831b8d3dff513b2d4742bd4d16e17e578f45518223abf665b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_trailing_comma_in_list_call.rst": "9d97046221a1e4551f0ef9f9e2c2b849fbed889bdb952e9009a41f6cfb460024dcf7e848fa78ca263031b83b137c6a6869c2fe24c0858982514512929ffaa88d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_unneeded_control_parentheses.rst": "46c99282920633c3452784d664d9d1cda566ee7ff97eaa40098db714c80236f450af87c302d8394f1f0deaacd887f05a2fcb7eed1352624d1501a99faaba39a5", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_unneeded_curly_braces.rst": "62bb56fd43a3bb1f0e69df87f42133b972386db4ad6bade850bb3b312aaf32d9f91a118ff5bcc2a5f58981c9c928a52cd961a8992da4c0b666fa704c7ebc2151", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/no_useless_else.rst": "00af8bbd85e15761a89d1a01d215ebdf685fbc7e7bda280f49a7041d1556ae9893d37583534573ccdfe9efd9cb3a861dd61abd1e74c571fd8fda35ff02c36762", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/simplified_if_return.rst": "de50489714b1e2496a9f1166e92417c22353b2e706cc89a2743066bea33cbdd3f239cc6eb9654176255c4fb736bf9860fe3063f4023f43fd05648436e06850bf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/switch_case_semicolon_to_colon.rst": "36f351b13dc4ab092b4dfcd29ff1a47a6af8b38c8861a32b6293f4af28f42c3c91d2dddca902546e30a66284f0f0b9b1298d719c735602a421e1957d782852df", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/switch_case_space.rst": "02131766e1433a1ee7461f2caf298b34cdd07546a68fb00d3907585759e98e684a1393bbae4b7a41059f282f5278d20128f328908ddf403d55f0f7b0f2ab3f8f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/switch_continue_to_break.rst": "32be96d15502fae3333d034b4e9c71e862fee9bb03e0e30ae13a6275f817773d230ba68e33639c4e0461da365926b85c319cbc738a8ecfecf68a7da8093baa82", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/trailing_comma_in_multiline.rst": "83ee5b6ccfd1d7004dc812448b1977f055c67e3b5cdf355a3f40d18bcdd28b299a029bedb7a3299c0388dc2ec8697292648fec3a4be635b3a4e065b996cc0f14", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/control_structure\/yoda_style.rst": "86ae6f702fa8a191ce9a85fe9aece421be45a8a802eaf9ff2136639754e3bd0b02c76ddfed35f45dad4016239798bdb8d05313c5dd2aa333a5a79998da0068ad", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/doctrine_annotation\/doctrine_annotation_array_assignment.rst": "c54487490757d124b6d1a17907661ec93e88662368267f9d6446f782b9b913b8e8404684d783caa2a07a22bd8b6e0ea40e5d3a44031e60b8ab2e7da56a7d26ec", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/doctrine_annotation\/doctrine_annotation_braces.rst": "212b3f8feff0c6e9cb91d7e43dacf5eb51f6012877984e3cd9e02d9901fa8666c12f5b7801258251a0291e8e150f5780513bd1072006144314d9779e80ba15f3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/doctrine_annotation\/doctrine_annotation_indentation.rst": "0ff44380f0a4351f1efc9e442dce7a84c18927828aaf539c2864adcf31596a51bd273433909ae7915d7c5a0af84633af924e8171320f65fe04a80bf4b3d8bc55", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/doctrine_annotation\/doctrine_annotation_spaces.rst": "05f2f8abc9c8a16a7252df79ff490719ab83c1541942f613025f2f900a71fb9e606981d84fd42f81849bff93a315e91c5e897f6b7341d91b173ed970c1162981", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/combine_nested_dirname.rst": "620fa245aac6589b0cc60cfc228d1c6eb74cd7384e466457caa6c0c3c1a967d9a6b40387d941eda57362c36c1bee4f548a9a1ce9cfb783724e9a307a2a5596b9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/fopen_flag_order.rst": "007311848deb25e6858526b3cd0fe0a7c6a9dbcc114ac41103014b65241f3f5b618e4215a11433a910ea021c3e593ec58ba639c64d28b1ac64788af1c04e4204", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/fopen_flags.rst": "fc88e191b7b2c4d255ee745fa60080c79f9bd68634aeae9d43692fae7321be5ce5faaebadb7a06454a2c72b788a06098bc1342f6ceff62681b571aeea9d1dc79", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/function_declaration.rst": "ad6d3b211655a4b31932b3e70bf2d1468ecbd20c94d222e797dd89d9eac2c4eac37d12dac3bbb494556e764cfd9d4c885b28b2ec4aeae344b1cbca33d1b02969", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/function_typehint_space.rst": "bb069c038ad21e0efd1a7f35a3b3d572a9d0a750b17e5852dc29f65a23f7dde274cf9931a68372416349adb2e4fd5bdba4ae448a766188c2d70aa0b1272c81ef", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/implode_call.rst": "7acf62eaae62bad4760780363fe053fcd89547c894d5642a565ee8835bd82489c94fe66a3305f2ba9430a5ee99fff3b68521065409b7a82decb933622d4a170d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/lambda_not_used_import.rst": "d87095acb63751ffdf624949e37d33c56b1695050839b2d1e19d981f99a914a2b29ed7681c2979a58741c7ef17d6d411189de224514721ccac63da3c0ed4533b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/method_argument_space.rst": "f802265df6466c4cf90029f4b0656cad3a4127d67650dfa1995da174748ba4408b03e5818720133b2ba356229c500faf8faa60fb68cc193ab2ad427a9df88ab1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/native_function_invocation.rst": "22734fe5c7ce5c2fcca0d57b832dc8406394746f780e4c7bd3267c01bf0249d79a687338a954002e19d0affe099e5ff5953ee6cbeae7f74a17063a0ee41316e3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/no_spaces_after_function_name.rst": "eb640a7fc274b5c0034adb9be9a9adaf328d9ddc8d09efc02724e2f233eeb8d288ef9f2cf7b44cea443fdc0af968810312a2b5577d86564f362daac2d9a35677", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/no_unreachable_default_argument_value.rst": "699a9fbd7e2b27b7d61fd76cf53e6ecc18c0e5fd1ce15173d224a67e714500750e6cb3041c16c829f01ad7b183e7a611014439d947f0852df1feed6da347cca2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/no_useless_sprintf.rst": "f1010948499338a1b11e0437bfdeed5b0418c4d5398bb70f37947c73c72cf2a1aa8cd8e56f4c801277ed8329ae38ca19d5c58d29517003c4e4c7ff6865399cdd", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/nullable_type_declaration_for_default_null_value.rst": "57b3370db906d4689de74102cb4dce2e30132278018a7c552f27ca4f889ad8623822105567698ee5ac2c4cf66a96a86377a55078b289fb4e51b23f4162a7ba2b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/phpdoc_to_param_type.rst": "95f824172c565df2f7464943bb8753ebc4055f0e210a7dfcc62d417ef8da860870b6f79a98f353a3895e00fcd3ca2638b554a47c199d0cdcc2a941819bba18d4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/phpdoc_to_property_type.rst": "078ea3ef1ab75e05b919e1b870a8409417b98fe5af98ce34a47c3be51f76d7f464a6a4ff0843e4a07efaad96c1374288bc6c84f7d15b08f2f3471bcde398db98", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/phpdoc_to_return_type.rst": "37011df60e5eb70ec6812a0c0f5dfde788cd91d02364fa206f67ddd29631083e35c54f166c6425db1f2f2694a2984772d87c83599de686c816689d2ecf0f94a1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/regular_callable_call.rst": "e22f3ec7e6bd770418d4e8147985f4d417f93709a2d28c7e1ddb87c181e6968fd5bd812faca8662c7fd3f82efd73b5383041e9809c931cdd0482550b4e3e4fbc", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/return_type_declaration.rst": "9c077333224425b0cf0c849b3d4c049d14f0f29d75c4183ff3a5a41505da322d71ec5453fa3666f53099a9bfd0310932364b42dca3093b53d202f133470d96ba", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/single_line_throw.rst": "4f87a6e962fe257796ac36ba995055529eb218fbfaaf95c1ff1ff0e20fb0521b51022b229a7d1e4bcf3ed8d49391e9cc9ba3daf1e2ffe54b875599b4a7c96e78", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/static_lambda.rst": "397c9b0b15e48a12a1eeccd9a90af368fc91df182497e85dba51f429361553c0478a3bdcfcf2bdd553e1338d87104c0c78b44715f8a84f58272b53d6653f858d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/use_arrow_functions.rst": "a9e60c61e416c29ea41be24adf00229d48a7d01825055fda78786a401f91fd8fec3dc5a3d16cf42c8620f7c7113597d9f0a4073265a43168eefc5bba6ad54371", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/function_notation\/void_return.rst": "dc9d915c6c522b50a6446e81f042936cec6a0b3a16ee59659e58b0ccf540dfb768fdf13b117768415438d2839a7b9876448e9d06e3a74a53aec68c9e9cc7777f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/fully_qualified_strict_types.rst": "ae70849add08ac3f1248cfde24212339d3057719c1ba2eabf5641d73bd4fc08e9c8d424659fc575f97d8e291f17b25117777b0b583462448b61b164616ff9b98", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/global_namespace_import.rst": "cace49c6989a16eb38c952faab7174f1cfb0dcfdd5a667038486dd00d54ac6095465eb458f00a8d7178d349267d8888426401877102e01d98143402c67caac1b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/group_import.rst": "784b7fbce7fee2b37d6dabaf8ced544396af50e1f4b50f4ed491da37e923bf81ab5d8620197cb2b6f0ab140fd0141635ee9103438d0f52a693e7b5268b725687", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/no_leading_import_slash.rst": "5f257d50d9a57ced90acf1788c1597d82628da0e279bb56fd82ad07a23d12d9413a7792dc97ac0840af775c9ac0d63014aea3757e1bacf5002a37c510be095b6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/no_unused_imports.rst": "69ad28f08974ed9eb9655f44f7bab9c92bdf99b4957868ec148dcf4f6ca83798069257d4c34aed96415003ef9cca6d01ac0621a70d0b9da6a1fed8611eccff3d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/ordered_imports.rst": "bc35960228f07d8849955535d44b9bc76e581376958758dcc43dc04cef97d1a7617696a8e57b3e8cbe21ecaf99ed9a8d237d0bab9be946e9fe6b67ba998aa179", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/single_import_per_statement.rst": "566ac42977d5a1bca705002178a33386f9ddfba3ccdfdc9aa0e0863f2ca37b2043616944160fea86ab11b30add7f5a8855f71f35e9d0483db63059495a305787", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/import\/single_line_after_imports.rst": "581cde3482a02204adbba4bbc9554c05c2877f8e12a1a92e112229010576554fa05a837e98f0d5c670553049e2a21897877ee3f6c77e5ec98ca7b64740397a9b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/index.rst": "cc3df3149df362bf8c4e49fb42405a0e14c48cf5961e01c7bc3c2a5d56aa2ee3e8a497a2f6bda0e4ce637da31840e0e6068f55164541641b9e70e63504249cea", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/class_keyword_remove.rst": "810762bc73824f51191511e08b10117d323decee600a9746ad8571bae74928c61feeba768580644f7d64574b2a058a867b964b6a272292844f6df7f32dfd78aa", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/combine_consecutive_issets.rst": "32fac553cff976ed973ef3fb958ae5353c9dd7834a2349757d05af94c26956f1213197e817122e17d2ee0af808dfd99029ca7099fa1f49b673f0a7a66cdd6662", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/combine_consecutive_unsets.rst": "9fd84fb4e122d5377ac4ae9b5666012414dd9ea92302566a59634a59579b9f2de2f24e6837f8e25a7ec22cb646f2b02475a92612c4d8dfdee5d7b328aae37603", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/declare_equal_normalize.rst": "d9690f4081e61a70dae270f972a8f26e4ffc4a326011548f0ca34ea4feb9ccb558cc83ae03385e7ffc8417c0be7653652b9f377ba0f1819e9457a0274b1cbf12", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/dir_constant.rst": "87e2411e2079a1dafaf4883a5b452c017cc097a30ba30deec0bc2c94cfa21f4d317173b3a700dd2395de069f434268c3b2b039ac9b7b00aace451538aa159598", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/error_suppression.rst": "2d07b8bc3ed30ebc79b63cc4bd0207bc5fa1a9a7e17f264840a28d5b33160d3b377e7d7caa18dd93efd7c65b416c9fdf4ebfc5dda9e480d368d2d42c80ff3d5d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/explicit_indirect_variable.rst": "4073c9db9d55fbf01b9dee4c742ce740590c96e7cbdc655334ea7647360ec4b550e6892893f445ea4c5c7914c10757a3169c26175a5b0c7e6db407bdde45a915", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/function_to_constant.rst": "8a7ff5fd7d9972be5a1c6ae00af509a80a27dd7711dbc5505b588482eca510760a47d7797c003734c362c069f3cf1d4e5b65a9b48a3d568c78445f7fbba97d4e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/is_null.rst": "41c36d4c25f81e5644d6170358d5f816bb23cd17208288952f503e3886a2008ed52f6a68199a98797dcadf5d341ed49582e4ff54500441eaeadf5f54cdca4066", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/no_unset_on_property.rst": "35dd8f1e42061ceb34f8930a3c2397bd3a7b06e1d6390e3cabd9fe6d2ed7c2de7b7e3a61f34f7b003cd433df3d6fe412da469b989544c91e965a14de9c4066d8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/silenced_deprecation_error.rst": "ef3fe59eb733418e930f88b63025b5164e2af5f788de5aada2ca827c5859be830b5c50f4a8f32b989e677b99cd4714af4024e5f52d906aca04ec9e8df0f4b478", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/language_construct\/single_space_after_construct.rst": "778d97fb3a1de034fd7c281e42f8f6a2f1e50e7ebbd4b48066926d7d242ccd34ef89e8dcdc30a82190d5be8248b3172c0b5bcbe376246358e4df79d84d2a5799", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/list_notation\/list_syntax.rst": "a16d450a4a6ca6ef2041ee5e43a6be24c3170ab0aaa98546db44650b11c8f321be8dce5e1c474f691858b5e1c9fccdc31216c13a545833a033fb5ae06b7ea13f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/namespace_notation\/blank_line_after_namespace.rst": "34924e35e3dc355b70b4b8ae2b38523409052fd60fbd6cb3903fa3eaefbf22993e3d6c7f3a755564a1e46cb93bd8e75f75761e010d4505f3d1a4e1a889dd33d7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/namespace_notation\/clean_namespace.rst": "8a0e8f06fee750fc043a2f41b74e152c31eeded6310928c68f75efc1357e4959a4125f2f76e601481fb2324a955906af46071227c8a47bfb44b3a94d1304a615", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/namespace_notation\/no_blank_lines_before_namespace.rst": "582078c9869424f9938799fa44de828904d343440139b83479729a4c6d95d8fcecab8099cab85362d3c22d71f06e93cb79ce9150309155b490b3120249c7935e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/namespace_notation\/no_leading_namespace_whitespace.rst": "fb0764a42bbe105f66142cb9ccf36faf165deede2cb9251219f3fc13dbe2c104612af0bcc0b402eee0e719bdd34b7e8b3c44d0df80d4a22161bfc1ab11fc3694", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/namespace_notation\/single_blank_line_before_namespace.rst": "47d70f0ec4cfa37c9a9ee7c5c2230d81b297deb1eb117e6f5c3296e1f2f8e58045c96ac8d1852be87c1b020e3394dee5637f6bb9580e2b24b682366acc61bf11", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/naming\/no_homoglyph_names.rst": "47ec6be1b06684ebb7852268f3754b2c54b9071986430748fa0fac67a9e6a4a4b0ffbdaebd32f4abe4669b8cc0e3d70118954e501d60c534e5047ece874bacfe", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/binary_operator_spaces.rst": "15e2db96d2220a8c64f7a125f350901b5a295a4a5151d3a71eebcf36e2823229c7c726de8db789e77634a3e8fdff9650ec4ab3b1ad5a8c1f97f2261356235ac8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/concat_space.rst": "e36c01752613532095a8d6c79511a5250a77f60dc4b8a155e8d9454238304e58519f7949e03bd6e3d3fc77f4efeb22c7db1cde52fe3df7bfbbb69c3d5b527b91", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/increment_style.rst": "0fb06a75c95b2e7aaabd7d483d9d1275fb31312e927c55db7fadf29c871dac9854fadcc96cb6fca2ae8f5d24feb3f72eba08281dfe817a972cdbf11ddd1bb684", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/logical_operators.rst": "0f8de4323df524f070435dc42bcc00b3bca5fc79dc91f84122aaafba84d4d657f8a47615f93d0f96928291895204dc36c9f1ec6191f8f48a0d1ef7f6ce8aadcd", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/new_with_braces.rst": "923289de6275a42df419f7c5ab3b4dd686fa5b155c45de6469a3f7f6fa4b8297ff3d124754d6ff87a577a5922780a4d112aa2de8b37dabc49b90196439b262c8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/not_operator_with_space.rst": "89557ff092a1dfd10398b163df6ed35ddbb1ffdcf538dad189a9c9862070a1985f3b15a5e0823e1b4bef4f16a5cd8f77aa26184200ca779c0d96fe2a1ae080c2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/not_operator_with_successor_space.rst": "64f6bc29547acbe35b29e90045164b65cdcf90c98f8db3ebac2b883aadebf99a0e2e4238ae232a261b88047aacebd516d9db6b62d4cb1a07efabdcadc395c3f0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/object_operator_without_whitespace.rst": "5debe138e9b2e4de4279ac9515113f267f213e773353bff5f736027b150aa16c0484be6840204001622cb84114be4cf8a04295f2c6571ccfd00c74b0aabfa96c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/operator_linebreak.rst": "7e50ef4955905096fea00f454cde12056ce6f3b926ca7bc7905a479ad65028994f87c4dfbec7e7e990a85265eec83c3abfdaff11931bdf47ee53162abb47a7d0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/pre_increment.rst": "1de755ce887595d85719b8b257caace93607794a05d7b69e508efdfd26268dc12828814a8c95952a18bf2459445c498c129361836a5e88a2e48178b295e3adec", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/standardize_increment.rst": "c62ccb4cbd1dcbbf7b5ebc3c3cbd0c846566b4277803392acdc6b61888c5c50513cff405485f0dc68ff07858ae546e619e9bd9903920d510558bd9c67df33e43", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/standardize_not_equals.rst": "fd7cb51130e07c8558951a4952c96134d5edf954f6a2676f15720ae005a5fb8189d7d970af17b3902faf685afb28f09498c06f03176960785134095972695d92", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/ternary_operator_spaces.rst": "8fe1b500cbdd050c0d759d6310316b03b052620fa66c022f687f3b13aec03b0edf480826a9bef3a85751ef871e8dfe31556c3db522d10f393fe993f7731abe9b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/ternary_to_elvis_operator.rst": "49918e6e12cb4a990bd0c0a66cdb7632fe2ce2d04aad92618d074a4cdd959330aa1e586a52801a1ad473bf56c9a790bdeba9a6aa1aeae6b065d93e69caf8f1ab", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/ternary_to_null_coalescing.rst": "00ab213ee199514817080c35042820b3abc5e2004ee4c3a51d87399003ffbd8a88b2369e7f4c1381f73ffa8a92b0dd49d7cd3f0869fdb5ec5d56e1db337fd9b3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/operator\/unary_operator_spaces.rst": "0ba001ddc512a84e2033233f597963cc44dc125ab1fb7c7f2a720e1047e226d6e1d5145a3dcf20869ecc534c9e0d3f57814dc1d68232b02d124a2b36d065294b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/blank_line_after_opening_tag.rst": "b6cdb6a8d661f95450516147240465008016ceef8985890ef83ce684974f2fa4183babd052fb487fe6fd0cacc260f13a446a7ce08d3fc91043b21f21231fa036", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/echo_tag_syntax.rst": "67831791c32f0141635bc0bea459b5945d0135b907f7bedc494d0b5e1e8b6ef127cdf09c5ec743b4965fc636b12b1f27f6d52dec470d1543e515b00e3a4c0adf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/full_opening_tag.rst": "ead6751aead4a736002590ae154499c4bbe1450780f725fc6c206805e4ff7bdb2a9086cf4e2ecb1f3441efef3c71faa0db173c9f12e6d2d156d3699817d753b9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/linebreak_after_opening_tag.rst": "d599dbe9961b8151b2572434b835460789677721e8b346f27c318a8c2ffe74064fbe93ad7dfa14c88295afdb4fc74c85c37c0cbe28f476937bae2e7c4371c6ad", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/no_closing_tag.rst": "1915a79cf50572ea7277626fbe50bf7870753c1911b560e5169028557245674d5bab700f0aa9894cecbe06448d33e2bb4fcb9fd62ab0e9f14a8f5b843ba8e0e3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_tag\/no_short_echo_tag.rst": "32641d66799d74b9310df53058adbb9e82126da8b6ef3fa39f1d0ef886142df64c4e1d8f68131579f4808db5256c5ea34e3515f9d03cd338a4bfebca40e15f31", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_construct.rst": "690435e0f8e5b4e5f429ad852eeec5663e588c8024de3ad441e6bab5ec3971f216045a0675ec36f21b341836d7cf492c1c8993d99f81c7bb0eda57219c0a9bdd", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_dedicate_assert.rst": "3bfadc727424e14509634e9f8150895c6fca9d76bbbf709ec858eeb35d15d329ffc3924c8876a5a5669d2c9b6e6b57a28c186113aa8972f348b8f9f1f18b4384", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_dedicate_assert_internal_type.rst": "4a8a51b27690fa56565218a11481d56d7f6aef8d64b63b901c81485674cfb11738c312de21bd50a7491366db19e6a2a61d9d90c143054a5e5aa78f7d0da1083b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_expectation.rst": "ae811bac5fe8078f948267613a1a31ec139d541d4d9de573fff6cfcb81dd45872d751288c82bc589a0fc969c9e97e274d79b619624a64e0d8e1a84ebde770e74", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_fqcn_annotation.rst": "a018b05e3412ddb3b4fe441eec212e5a0d16a68e8cf9c1535b36b009da0e6045b9ecae49f2ef0119631b1862630be0e2c4f5f5a760c295ff9d5f794dfd0c563a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_internal_class.rst": "5723a487e841c6a3706d8b74d6d3f5f7088d201ab342b5ad3a3da9aee2fd1b9a8df3a7c3179d7a6bee05177b51cc3b7fbfc0ec8d06b37427c6ee2fff1df44246", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_method_casing.rst": "a4b41c476653c15158d94b8d94da0daa49b6ad0b21a1d976b2e8d314c756916478ad8f637169348dc6ee8fe49fcb9b3e2cb26b687dd69d1cc7ae64f236c0b704", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_mock.rst": "17449eb2df07d8507a825f54798d60925d7c7490add3d652f4df4163150a6223a6411c09b76bf7223bf35332d5a34953d93a045aa0144a53e84aa163e25be46e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_mock_short_will_return.rst": "f50314a235e890ed5dd940c43666b8f538ef59be4646744d4666255f6232acfc4e5061e018260a947933a9012f05bf490c61002b8499385bb342bef953b24024", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_namespaced.rst": "ae8dcdadd9721f135723536e69e712901db5df94fe442bf51566ec3745e07314236cb15e24bb768f3ddb5697abe155dbd177b9ea0d002c52a27974f25e99aba4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_no_expectation_annotation.rst": "667d8bc56ccef4b7e1647ae2553665f8b0b149ebde0c4e83d65231683404f188b4561120f516068cb0ed7946d8dd678a7a60ddd96fbfd75dac17c45a628dd1eb", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_ordered_covers.rst": "c1b79fbe558e97ce57d882baf8c756302b4c625451c51a975941621a12b21104b6a519c40ca34143915adaaf9a822fc5e850b1a11a859c52f017fcb35b1d9eee", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_set_up_tear_down_visibility.rst": "9eb0b5e1868572e814ba3e12e49ae29857c66851e618af721d63a5b1ec4489871adb2690dd07655daea907e63a66446fd0f69f3f46fd146c1432eb159ec0e400", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_size_class.rst": "6f9e8fcf96e3816bc19fda5ccd11615f809606116e652d26fd047a757c836a0caeed8277700ad3d0d4404ced7222e9f439ae4c6e27818152d1c8f8dbee7187c8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_strict.rst": "3b41f5a15ea0d89936279ffb96a8183e90f598a56d2abb9cc9af3102c8bdade0c08c2fcc7d09c26de9310922affe82164594845b7ef152eaf903378d6664c05f", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_test_annotation.rst": "839709d2d273c637e3cc7848b1ccd61b50d69354213736683aaf57f53a43a1331fbec7c5d0ed4a29cd9dd8ed4366a68ac1088cabe16ff9948908c4b7d17d3e34", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_test_case_static_method_calls.rst": "74983849442fe6c9e65d7ff31896c66c05d0b958b96c3f0c5b87057436aa6e33f5bfab2659153c80de2de57a1b144d21c0f5402dcc8afe81bffd74bc669903f1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/php_unit\/php_unit_test_class_requires_covers.rst": "9eb7a7e11f12e360474aea1a45d3f1aebca2b3f889a4c52d1b43200065563e09c1f61300a42d259ea615334ea67690bc55ab91789969cf5e822733ca59421188", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/align_multiline_comment.rst": "3a3f0f207ec0b9e836aad2b949f6a6e8b3be113b027eca1dfb2ebc6ebeb7e901639090465e6df362f61435887592bf6ccc8cfd1a86eb34ffb0e504a2a1ca3baa", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/general_phpdoc_annotation_remove.rst": "80dd36e5af249c581089dd6eda0cff6b1d6fd5bb1432450a426c8da84bebfbc81de11c3d43504707f0c4f8590a762070a7756974059da27c895462b9516ce260", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/general_phpdoc_tag_rename.rst": "130264fbc1e77e32f4ce7f2c9161d1c8824db91f44a5503ea91658a22307933b3a85f458fe2303864b0a9150516f0af4438c10b01c0d00e77cf45ad530fa0c24", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/no_blank_lines_after_phpdoc.rst": "e89d48843aeac70610a1310fe887c9a577fb4f780845690278f75bcbab31addfe72739d4e4426c0eb6f6f0fb3f37d316c700f1a825d9d95cf927637cc6a07c04", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/no_empty_phpdoc.rst": "e149eccaaeadbe7e6e7a05aca787bfd724452bdad928271cae17b823d9efee671116374b1579c4177b82e82cfb2dbb130b5a6cde22a956c8a5d53629164dbcc1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/no_superfluous_phpdoc_tags.rst": "05be580f11216f1d8b21d3bbb36832e2b090aaaeb62bffa4c43d399c893c9c968768345b5c325e0cb2662a3988ae3db8ca71b1f85f676bb86f3b4e45aa2a845e", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_add_missing_param_annotation.rst": "828b3fa65ef9d8881a32a11187b67c1c52f8d941f7883064a2f349cbf1bcb8500bb5ae3c1cd6508bcac6c7556cb7d0e48afabd9031a0e0fc8e83addb14b6ee6d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_align.rst": "322c20eed86c56b771d327553056f01e01fe0f4ef925a9a79ad6fc50fe6e298185c7cdca3c49e72855bdc1f2212948b98978f5b8064b85ca9a9d3190aa1585ed", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_annotation_without_dot.rst": "a3098c75291cc5d91b05c97c4c0eb5830ad9af3338ceb0f3562eb47f392965f8a61e989150454fad3c3bd5f5f56b4a345986061198592afa252a8c09d53319db", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_indent.rst": "443d1fd592a0e0e6dc265b584a045a6f1e8c88617ad0ab4a89310d4ccc7da5d94fbc831cd7814b72bac90ffdd6a9b459af184df454e996fffa323ea769a3e0de", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_inline_tag.rst": "e6e8cd46f07829e8a558d9c057420043262c7905a9938764c9d16ad93671782dc2962b012223b3e05ddc6f32ce30bca73d388cc90036c847eaff260cc4c81a53", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_inline_tag_normalizer.rst": "62e8168e4d974e97957c8222cadfb56dde4f08e7ac89ff6f4e34f502bef676da56cafa8b16e942d71f83062eab25c113f7c570f7c053ca14c30cfc4d8351b43b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_line_span.rst": "d77509e4219770e6d05a8e2daf740194cc62c877b9d2426f659ea62a23e7b40472adfa4770dad527af2e17c8f55f8e4a61df5451508830d8076e7cb502d58dbc", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_no_access.rst": "0107b638df36249e4bd8e5bfe0dfcad3b3b9dc26a1a3ae075bc7ec0cdbdfbf23d6bbbb630302bf8b350e008a69651d34ec7f80408b35a1f2cb41a310c6a6ed18", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_no_alias_tag.rst": "5b4af812add1aecd0b1f0be177065c25e2d1b3f5e6bc607217d9b0f42654dbda17935116dd1fbf9238c8a05e75490448287782e99521f0c02170ffb4dce52b77", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_no_empty_return.rst": "bb494bb4b5e811199e85e8f5b1a42c794eeb95496a65207ece656ab805d3403382e2fc438564029c61b9dfce632dcef21149fc8fdd4464bc99bfa92e3970e3f7", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_no_package.rst": "bf221f34b9a4a40c731f1272579303f67d869ff551848e65beaec5f50b17f27d6612d182509fcbb7ec128970aeb39d764a15f92c61b444ba97a7c0db6aec8ea2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_no_useless_inheritdoc.rst": "ff4f3aa24699879d2f83721d2c31b4b4a879e8f0a0e5166d87bb10b460ab93de4bfb543c5b3960dd23ab0e95e3e1c0fb0caee93c9f5ff39049d3bc94d49d0799", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_order.rst": "7dfdb09061053179c37a5db8ff9d27ff391dc613056dec70f71e53202556a4bcbe2f14975391690a97a3d1ac29f963e5fb77563c683d66e948ac2a77056e195b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_order_by_value.rst": "00f7aaa3f9ec0c2ac5447317fd66d5250c05dce6fbc0c3b3d89d7d5a9c8f6c70550acae7e1b6bc179a0fba7059365043f9f72c6e6dcd68e7a8b66ff0a3b35be3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_return_self_reference.rst": "fd1ad0cf4ae7c8996c3af1fcdfa8eef70b20f50b7e8b7baa9b8a6e144bcff11753b6cfda7cdaee85747c518793b5e3767d9a82944b18569709bdc6c4794cbecf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_scalar.rst": "5f0f990b59cb72027d9de81b8b596b5861d971e725ab2328dc8d29ba5486f4abaa6c17c7f30731aa5e6b3bcab6dea2d8a1268cdb5fa35c4a5c982cfad126bd88", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_separation.rst": "ab79b18294640bcca43691bd32251a711879f67c801851b755e10657428c4d6e839ec9c66589a842e96f808da565ef0724180a5e37d6edb8c0eebedc93aa81d1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_single_line_var_spacing.rst": "d31796d968e8ee31f5004e42534cc66d11dde3e4c5790de5d76ab9e2ad10fb67b1853a1d0bc9e74a407fffa399498a946ba6c2474146e973f3b49bb02b5fe569", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_summary.rst": "aa706af9bcd6c704634bd6002b3de368b1a195fec4147466b495ff2a1cdfd9e703b0c4b0bd4f66bb4cf68e2382b90fd3f81ea7a3e911377e31f32fabccf3804b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_tag_casing.rst": "4540ecd383e0a3b3523231af61b69f8695e48097920054d4e34a8cd5d062d3f29410ff50ad360ec6dc22450651b14512100dbc968a79a2bde85082f3d07d7255", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_tag_type.rst": "50900a2484bb6e72c4bbd52ffa7b64e854ee3991d31f94f69bebc85ce8893c0c3307cc4d501ea5c6aff85f96745c81fcb5133b796125d58e84670c5bb17e707c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_to_comment.rst": "95616a7e511b369b7548051803884a5979eab05924144fd604fd8d12ad83e590f0a9ecf449255f710faa1d521743b1bc910518d9624892a18118910340a91f53", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_trim.rst": "97b12992383663a4f2cb210ab74c46c88306e8a63b7434d8979e95a40eddcc22cf2da02c35cf46a11c0418bc470e54322e679862088d13570a7722df0efa5247", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_trim_consecutive_blank_line_separation.rst": "ccb2e8acbfe1960e0f7bbc3da1a63023498b76a093e416d6d020b7a1addf602a3bec1cd895e762ddbcc7304ecc1f270abfcfe0cbd20f87253ba889c041e88a07", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_types.rst": "a43ffb52434d4c966ec946bf8bffcb261d42207b3e6cca049077ed4c1bfe66f1d35cbbac06de0b1ac398177a44b84c8bd827b0e3fb5be9e427bf012c0768c3bc", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_types_order.rst": "dec7227f9b5f6549507a8bb28486d184ba00c44ff25bb3d6ef747d0fcf4b5273b07af0251f21df453686504de65b50efce090de1110545b18a7e4dee983594f2", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_var_annotation_correct_order.rst": "9c97caab77b9277586faf1782e95fa44ac554b5e5a26dcc565326112f03f789fc2f36c499a89a0b7db52084fd682b72be60dd8191cbcc4404b0f63ba42a3fd83", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/phpdoc\/phpdoc_var_without_name.rst": "a865437e80cb18a23026bc17e4ba4279ac230237cbb288d041f40ae724adfaa81d7a740bf8419d1e69479fe466eba05e75a4d38efdbc20c69428da7040819242", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/return_notation\/blank_line_before_return.rst": "37c7dc69e739114b1b1d62cfe606dd04a00c0c74ffbc7b4d6c8760f643b4fcfe2c9fae106f5b7ad653bf1f6843f3af781e0eccbb39afd599fec947ad848fee1c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/return_notation\/no_useless_return.rst": "722e4c9c9e2f3bbcd570459fdd7731c68afbb49e601f9403730801e9c75115ae09e798ddd913598e81f09269a64ddbfb5dc3b063ad7033b28931c8e561c921ce", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/return_notation\/return_assignment.rst": "eea9c5bafdd248859b4c4fb809faf88277b3f0e4607b8279ced9b58c113e911ce08978a3a72a0f3f80cea035596cf116a0a3fc43ea6b8da4e9af0e9cada055e6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/return_notation\/simplified_null_return.rst": "6d7ecb1c622ee856f202b73fa965245f2637793a3d75d77978b8a64749de59d535cbbe6fee0c9023f2d4752964a415ecb2105a205c2f1b6351b7b3a45359579b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/multiline_whitespace_before_semicolons.rst": "ba5be86892a1938c10d53549ce5369feab1ea190a9d2e1826e449e7f6ab0700f5729ac621806eb24c76468ea4aee3c12c274c5f7135fb09db2cb2dc68b718cf8", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/no_empty_statement.rst": "f71145f2c28f1a40587bdaa1bdef3cc6d17e002fd7ede6b14ab6935e316ed46974a495fd7757eae296799469aa1907dbe8502e3a5b6adb882fdb3e49ca652a12", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/no_multiline_whitespace_before_semicolons.rst": "63302db749cdde651bc471cac4b97d9ded97504094ab7559fd793245ce07295c65ea8d8d0333dae9d279d0eb2a3a50b3d6f18f738fec44b241523b00e07485d9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/no_singleline_whitespace_before_semicolons.rst": "2d68bf0f61cbc34f91959e2d81b5f2f4d48b24702e604446760fc6fee50c993319ebec77788a87ebfb4d19fe53d1b31842310186785c008f756b4005c7b4ec3d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/semicolon_after_instruction.rst": "50032ef595149cfdff7508aff17d594f5d80a6516c024cf7b11e59565d452701add2ae2c3c095738ffa1226da5373c15a551b5458a56a3074328917cf2ff103a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/semicolon\/space_after_semicolon.rst": "940c507073da4ebe4525b9fe3c9649fdc6ebd03dc754008a7bb94374581d274377fbef76e117eff393c064ca558792d6b8edbcc27daa6f8ee9ead77658798493", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/strict\/declare_strict_types.rst": "c1b4e1d91a0cf2e766e5448799c887755738a5d6cff721916eddf5998dc35498941726a53cf8bd6e32ff44e08a9b79a698c5691c56a7972a1033ddba2cacc247", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/strict\/strict_comparison.rst": "5ef9713e9c5ef330a786eda51d3e3bdc31d78b887bb21954bcaaa91a94e1f3aa876d644a00ade103cf730b149ab4f210a482486138e694d7511818dbf48d250d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/strict\/strict_param.rst": "67103b01a01456a9526b7038b657e15bb7417a69d4ab354ee893360064d84f677e07c0ab08c19c15a9f7d1654b5c6b6acf26d257334869fde96084f3606bbaf9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/escape_implicit_backslashes.rst": "2a657938390546d88b5052bac332523e5cc1dc9b9e5d48aae9e7b7eadc36f12a9386a9a3b320cfcea5f9cd9b6b78101b4f68d31083ed071293226e827b049baf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/explicit_string_variable.rst": "30497e56abe3e0ef769a09d309ccb89332e090b72e540ae9dd9f5a959d981fa438df422c9315d138d0b0d2463e34275d9213bff5ab932ab76319fc6a399d2fa5", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/heredoc_to_nowdoc.rst": "1beb0752cf93bf58439a2872c7a59875db088989c04abb5c59ce64188692a25d488b695d91fd8ff460ca026e2833eb92a4cfd522e13ba3ef0cad0ff13d7f0f90", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/no_binary_string.rst": "44c0fee668ffbd2112a4847bee72d01289569a146483ba7de324575d8993935beb6ee16e57c295ad1df291449a0cc5c9e0c56fe51e96605d40e8af430858b40a", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/no_trailing_whitespace_in_string.rst": "1e621ab617b8ce5a27dfe20a7b9eaeabe6c25d622790aef467233704766602da116b7928f5136998b0f2c6c6673bc313db124a19a39c60ca0440de4e0892766b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/simple_to_complex_string_variable.rst": "ac3f72915beb9e041b2cf04c8383081c1d9c42094a684d9e5ccccb6a9aafedd28a83cceaf1b1e0cc4190c4125ded72862e7c2768a6dab2af81105cc5f0ca4a46", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/single_quote.rst": "f4c543b561e73ecb5272f3619849733901831410a569ff237b60fb5c5b08f8e06ec68977c6fa15f77bf1d1548c125b873d8f9ab427cbb8c9746621326618688d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/string_notation\/string_line_ending.rst": "4a2eecf63ffbf6292c14017f795036483ba2c04c9140c0ee462ca58be43c8b64f27d5b1e1a4bde37f9c74051743217e4c63935ce15bf7c40504436bc185c5522", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/array_indentation.rst": "f8051f0ed1205532a6d78d9291243f76cd892bf4cffa1e53f739a114f4b2acd7c52e43893a64ad1b2fbc50bd90719bc6173d5357d2aa5acf35e1c2000daede48", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/blank_line_before_statement.rst": "6ad58daedafcd74954a924f979852f6738bd472a580f139f904857284e1c964e68418cdeeffbbaaa8cf2d3b495f071214da4b9e08584c9be389b42c10e631ec3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/compact_nullable_typehint.rst": "3904a69fcf98df85c7f7938a460df1574e1ee0703effa381185dd70937484c4dcfe94e49d6fab951f4fa7f75d1ae372f465209691e7c1498f84889564f083cdf", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/heredoc_indentation.rst": "b968e90c5efdb9f85ebecf1dd404e2bdbdf118253230308b134f44f7b1cda7efa65d4ff7ea069d09cb4a8b9429a407d67aac470b158f78714e65ddf5e8993996", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/indentation_type.rst": "59d631562ae84ae2b8917d7ecd084b17c739eb46f8ae7483deb1fd7c28c8e5a6be2743591bb02da43c038857f815f810d3f0f6a23ba0c7d68bec7c41442a2f54", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/line_ending.rst": "8ea19177e853d5d0b7e7d4006d3940cd2b74b1854f8bb1f658564cf20da233e54e77d1e632cbe92d5a562af950e3af085010b47d9870b5c2067d29977a0516e1", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/method_chaining_indentation.rst": "6e7af6ec03a2cca4b5c96c87d1ba021e6c72a994efedb158b49691a3791c972e4b0b9ff2075c24a8711cf02bfacdbb12604b64ec1cda278120c60e28fa906313", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_extra_blank_lines.rst": "5d8a70912d7661c0909cf3a42de639b14b86f5b52a7adcffdf7ff0257dd96b21a0e4a7a24cf965d5c74b99539d7c156519687e3df348e86a0b56d067f037621c", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_extra_consecutive_blank_lines.rst": "79f8624d0d161d95b963f4aed38fc19e05d322f97cf26791d4057ad2fd48d50fef83a80be8009efdb3c8f0efae514b80f34eda69dbfb02d4cb96f6693c4ebcc9", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_spaces_around_offset.rst": "3d02cc7172da090338b1c84e33e5bb65bf45a25595763e92d5b265b19d1e15e3266b3bcf1adccc5773051409ca1fc110ec872d785abd25dedefb9671231c3831", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_spaces_inside_parenthesis.rst": "e3a6950f0a0252f6d3d3698c9797def7f53b453f0db2ae0240e6f5de20cc15a398aa35001f1cc7d0d4af80644d19beaacf93a0b3bada49e3c3cf53841929c58d", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_trailing_whitespace.rst": "d6401dbce5cbedcf4c0fe8c3d76201ee5af6b2aeb3ad575c4f561b888f7b97910ff76bdb6a611e48d3801f61122d2946380290c020c17e3a6d51af12b314dbb6", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/no_whitespace_in_blank_line.rst": "70d49afbc61b5bfd6bb902db71db5d128ae7327adb8b99a73243d5607488653c6a36c7a499700d2769c7eaa8cf3675f96012258eea813a0dbe26066c54399361", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/rules\/whitespace\/single_blank_line_at_eof.rst": "f14f5a2261db820fd6f1dea44bb0b20256a29a0dde6b7474b356f8409c4ca6ece167b8210a108971e7d8b505619cced452f61a90c116c179dcc83435a48b2899", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/schemas\/fix\/checkstyle.xsd": "e8d409b7c53f8cb67cd94aa6d0c7e4546b51e2cf1a168abc7fa00e20985c6c3855a4c5eef6c97606b53cdbec609133f73c23fee31de1cba9d1280008e7b485f0", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/schemas\/fix\/junit-10.xsd": "c154665a8a58eedd6c7f4fa00a9b46a2e35191ba7abe3dcb670cc15abdf0ad1875e3b4aaff577892301239b19142d2594961cdb4a7b5c54ff8a2deff284c31c3", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/schemas\/fix\/schema.json": "e3ddb5f052b653d7bacb770c3a00ddfe989bc8e190926e20c4c362b125997a845a7de012192342da487cd63da53ba522e882ec4f9ce2a39eec7903e2c9c4086b", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/schemas\/fix\/xml.xsd": "93164a1b3c3399d0b256c5207df3a973a837ca2a19685aedf93200260a80f75d05fe4374e3761d4b30f7560481ab5c2f72ad26e392b80afc8cf13eac03b40eda", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/schemas\/list-sets\/schema.json": "31b0c2811f568f81da0a727216979a011ac0a3905f1be70fa5b7470ed937f1c3a22adb2f43ecf964a6da779617dcccd1eae1f0361d56e47ade465dacfc7431a4", - "vendor\/friendsofphp\/php-cs-fixer\/doc\/usage.rst": "8efe2849203d45942bb0cb27f863522f0073b9770d6be4209444749a2a6d16fd16db499757fb6d5b36895ee7415a5be0b4c55ecc7252568c9520b2ad1da67089", - "vendor\/friendsofphp\/php-cs-fixer\/logo.md": "98eaef205345873e00594543e50afcd75275a438b7106cc12c9fa95facad70fc9113401d365120fb526b34d3b0e2629cd2f52a3596a7c5d64f81625485c1f2f5", - "vendor\/friendsofphp\/php-cs-fixer\/logo.png": "d84fbc6658fd529f328b837bf84c25f050550b615b25a0913f7c946d1061033a69b02b5024522ad48fcf73798859407872fa8e8defe2ee6cdbd5974112ec597f", - "vendor\/friendsofphp\/php-cs-fixer\/php-cs-fixer": "40819405e31b669fd335c9f583a63a8eaa5f8c2710ab41a948cf018ae356992907808746001c0ea2b47d742e2edca3addb5c30b9267d959171746841fd866080", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractAlignFixerHelper.php": "834c76e50b9477f09ce2d21b71ece47c75dcd22bb6f545133205268c983529866bc16c1d888083ddc7d0857439bfe859912009c11ccb63d3c27a40bc14f6c2dc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractDoctrineAnnotationFixer.php": "5216e85a496b07428c1bfab16a3b0c983f46c74c9bd325470b392e35fd725161521ce1c1a16f6fd1aa282a631834685ccb3b7dacb26f1a966e8140227c2ee4f4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractFixer.php": "b9b4473c6cf06a4e5dcaedf93b8dc13574edd638cb3c1787260251e5806335d77546f12d27d56bd456efaa69561d80906dcd103cdeafc18af95f10a9ba9e8bb0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractFopenFlagFixer.php": "915fe09e4f68f55bd2eaa873452740266ab51d34cc6aa769c9d3bf99182e82749df245ce251885e75d4353ecfa7f1af30cd8477a7167bc1b0d097bc7e076cc19", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractFunctionReferenceFixer.php": "b92a29848b45453d59172a2fd3e5eb4cc43c0465d051aab0f4567f46f02068990092a4297349ecc7ae1d45dcf9607f4442cead83cf07a0f63164fb953b4c21ba", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractLinesBeforeNamespaceFixer.php": "f577e84604ddecaf28a089fc532422639c082e9b0b36c04c60d403affabbef11f7f180dba43942851d84358b47799f11decc2e104f4e3fcaae3b277b34d3d2f6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractNoUselessElseFixer.php": "05f8899391f10319caf77243aa84d8c7042c0907ccee49af44a6d566a81f51a4236c79d0bfd660df933e73a0d8b934a8cf7707ddeb3b0c61bbc537d486ce2499", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractPhpdocToTypeDeclarationFixer.php": "57bda5644e3b4777256bdc2c3160e68d919d4183f40aec0b795c230d19bc0351b433ea9beee06fada3febc3fa9a0f90c7d1a525ecb9a26a6b34842f76988667f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractPhpdocTypesFixer.php": "4b2eac09eaa39ec2ecb1fce9eb5ea8b964d4b417faf93cda6d647d38bd0c63eaa3c831814618efa458bf247f8a38db72861d3e908cd6f6e42c6f6ec67d81a1b2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/AbstractProxyFixer.php": "853d42268f50b419a7882c2248ee60ebbec5ff17bf7e9a163ea4b1a97f68343b3018fb6a28897337dc39d8bc8824a067650a698cc1bc7b6a0473d7d498677b9c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/Cache.php": "3fdbf8f4f26367ef9577ef7c51eec43831326d207c08c3d4c87f3279ab186957f685ee258725e8a1cd22c7cddcd4c087c653ce1ccab64b2c5368d1f173e10787", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/CacheInterface.php": "07b09e0ddfde33674d4febf213901f3a85f91968d4d3601a0af6b38f58d8a2dacda5c5dcb75a7a128f3782d823b7d80e71394d40be17c37ee7bfcd8fc6913a2e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/CacheManagerInterface.php": "217e26ac3a735de51438ecfbe82a1720cf6b663cf251f98840bec80197e89a856d91013e3032ebc1f49d885fd5d97551cd8ef58a9bfa4a70d767492adf9b05bc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/Directory.php": "b5525cfc13f680a7bec0fd761b8346a44d8c0a397c66331b4b5e2b2994e4960e99fc6fc1d35cd117337704c73e03afd60dfed3c2b26ced1eb6ceeb29e26d5720", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/DirectoryInterface.php": "86a832b81649a7f32da53621988c1891b67a5a23cd4244edd064ac8b3af2774df47fffa03145a55aea31b7ed2e89bf9c1da8c2e233472d41978c7b7e7309e555", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/FileCacheManager.php": "05c4d8f1975f3b6446127a557150a2a9a2205fc023a5911bb15ca1f705c5b677a6fb9f3d640cd7bb38e838f9aea6140a9d87a1f6bc6b8513f590e14c6e8584e1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/FileHandler.php": "acbfdbe8edf26cc3df1b0d027b024b5c9033266d5c02c3691053f4f904902fd5a1de73d06e736ee61a5ffc0e4492750035d977466251feef02ddd06a2da236dd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/FileHandlerInterface.php": "631eb193df1ed17abd8454ea9ae6c7f1b98767df8900a97fb8dc780818e40b20dbdb13bf6782deee74717ca9e12f39aa92dfda1cb19179f807b82271f19657c1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/NullCacheManager.php": "c8d43ee40355d48aaec2c91f3c9e2a2f2f3ad53561539aebfe95f7c5ad5a045e2091764aa8d8dfbe2db8bdc5900f44cccff535ed22717862766b88fabdc688e6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/Signature.php": "e4a605818c9b19372c6ae56dc156a7045edfe3dad19a40f8847b512f922e46f324371f86ef2d818b3877db03395ed399a8bf01aad9a70184f73816a9bdd73427", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Cache\/SignatureInterface.php": "dd331ae5f73d219c17eed8eb50d0252237cb8501f7bebb27114fa55fefcab69c48da63688af3e6000deee64166aaf75158c528fcd096b5e95edd0b82360f2460", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Config.php": "2c737e55d60576eb4852c96bf2fdaaaa3377de66475af3c2c9be8855aa5143ad591f287e5ed68cb796d9370105481b57a97f5dd022382b10d041efb921d1901e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ConfigInterface.php": "1620717a013fb6c10fc2b0583eaa91e5edb86ec5cf6219f9c2fe3860f84cdd3474e1600c66fe3c849b740c9fb9c0313ffece9ed9a5665550167fcf1348113053", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ConfigurationException\/InvalidConfigurationException.php": "df8e9722a0ffd3ace4c93a4c441e9943ccf022cb7de8ffda188935728dd73787a5438110f3b69588f40a94e85b7374d53d924b2255c656a83d730bd501859cf8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ConfigurationException\/InvalidFixerConfigurationException.php": "8ca5a256a51daf345e6c5e2e858dd48af2dae80ed18be68110897bac64d4ad1a0cc38b2c9ab6017f02e5e9d48f040d30c399698948e40f80f335cd129ad80d66", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ConfigurationException\/InvalidForEnvFixerConfigurationException.php": "eed9ad86b250a40a2a99d59f269907295aeeadb0b9c7cdb61a93f737cdbbfc6f2851e6d1944e766863d01f01f2d815c63edb873b3f75066f2424a4211fa91e7a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ConfigurationException\/RequiredFixerConfigurationException.php": "06316e4851303201cdefc033eafb89a8aa6e155325a6da896e6ee17153c5386b9464232a452b14383a3ad569aa2d2b81983aa236b95b20a60f3b1b5652030d7d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Application.php": "3c586524578f803b9a63ac16e09d7540c1b0db652fe9215edadfc3374985d31e031a464bf2ecb78aba9b06d6a1ee5229cdd7a2db1a1058d376328a4faa22db45", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/DescribeCommand.php": "d6d0cbaf0b296b4513fc2bd5cb34eaf35ed52146dfb7cffa029dee82e609b1fee12aad623a6107902e4dcbe7ae8f8f753e9a1e50b3e81db357ddadfbb42d35bb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/DescribeNameNotFoundException.php": "675337271917ea11d4faeaf70bbebd530aaf3f62a0a147b4133958a7b159afd57783c1c23f88c6ad05b10c8a14db2b90c054fc923f9a411bd3812748e546a200", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/DocumentationCommand.php": "e18e90de3e9b4894b47acde830b34f60c0a284b15911c0e66b5519a780f932ba4643d7cb752ed128af1682f644a5ff7d5900afa1ac3bb8c396fd390e7dc65b7d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/FixCommand.php": "140c83b53f082b07204e3afe985d3e1561c5c1a3dc9fe2bec57ee98ce1588a6688e35180a4bd9cfa8edad08bc9ffc8e9cb7903643e278dc2ee3b1c1c9f95b15f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/FixCommandExitStatusCalculator.php": "96b7a644311af13e327c37906207d54580b9cb9718cfa61d3f9d598e74c54859cbe8c0d2493b0db58af007fdea2bd657e2215cb1917def50573dd6945efbc152", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/HelpCommand.php": "ebd072c8f2c722d8d0965173f391c52f2e081f8b41b828634b41f4bff368ce7cc15b5b5314124b9eebb861993fb1a59f9781803566eadf3582b96cf7f95d2c28", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/ListFilesCommand.php": "d7d585730e47e1d2b294d918b79af7aa021794cf607331fec436509ac72dacd9dce04a22d70844a52eddeb16a4235f7dca96dea04fcdc419e65b5ceb6009786c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/ListSetsCommand.php": "95b5742fd1dac28147faf8c39dd51d47f864c0b84fff6d29084d1499a3b7b07ceca26d1505a176764e30ccf7f770014dd27d3b88eb6fbe4c43116cfd5a49d8b9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Command\/SelfUpdateCommand.php": "4f2da73208878d6a3fc6e67f2a559b6ceca7397ea301b87ce93405c05696ceb7cf350a9497df4936c5c24b9f2fccbfe4032c473fe6416f5754d16f9b6df37b25", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/ConfigurationResolver.php": "ed1f17bee819134d54689d3dca1e103bfd2a5c3d6249a8e025fd1ca0c40159603390c1a06c32c95c4a39d948579c7166267f8e0ac1ab1dca0b2a5e82130a873b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Output\/ErrorOutput.php": "a5cf9c080f096f4fa7dc92740072561231faed257fa04bb03c6da951ed8dff2dedc818b44cd017a48e0b55ea77bb1a68c796da6df01d650d9640ef99972b796b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Output\/NullOutput.php": "83e226fa896ee475d3d1eff53907918c87bd169537d6cfda9e7dc7b733dc0d4b878df5c202020e0aa8c2fbe69082c1f07ffe4d16e9f1853622906fc5b5559708", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Output\/ProcessOutput.php": "d5eb651c527f0f9f83970dc62041dce75f036da068b047f0c4d008827ff7e962f626b5ad8b21d5b1adfa9c8093ce922f4fbc06d07b1ddf3d26256fd3597487f4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Output\/ProcessOutputInterface.php": "be0a589938e4518a7580dceaa1599ef3e4628254789cf5e9f89ad2dbc25241460fb150ee22010ce84ac84acad1ac0d7f29a15fea506509980087f0dec9e8ef29", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/CheckstyleReporter.php": "bb5553fa1f69f078b5714ef11ee36866890e8c86b32146081010f8d8f3303faeb7973afc7cd9fce7374c8b0df99e46c7f6722eab7b82de0da26d92c64960e17b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/GitlabReporter.php": "d1564e83e277083f9d8541e99f714ac3ff655f597e5ad0109cc4ab133cb75c63d314ea4f168dd357c53416663c1e4f32474341530d1d3724c7b8b212dcca952e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/JsonReporter.php": "d09360630841243a37712fb02d6c7f75da4d43831a9c45630fb3e77898a0b38de2f36eb628632ad4ec9e17cdb78d2c6582663034ed1dd8998e9421e9b4591176", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/JunitReporter.php": "d0cbde219cd4fab4f5aacd19de3f7df6b98d61d90304ec8e3586ef10c6ece977e7fbe6068dbfc3fb1be6ecce6bf99fa16094af9a4195feea7b752cee26d868bb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/ReportSummary.php": "6c9f3445c993d4ea50071fe8500996b061e1878136d1917dc4663ed4d997eed07e880bd1f383f54020c0679bd28d89a2411f6952eb494b000f9be4d0e8ffe358", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/ReporterFactory.php": "a9eea23167bea7aca14af03590df0edb9da77bf59d4c5f0f1885616659b6274c358491d89225e72b9de2fddc011fa060a55df01d6267d9d66014e13e66cbdf12", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/ReporterInterface.php": "81d1f343d9ab2582e743f84499ac8f13796df44e965f69d80fc2b42b88a7b89dfb95e96b1aefcc10b7e91b70292da49db067c461e7f31f5ef9d407739155c541", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/TextReporter.php": "b292ca34ccf38e256ec687a4e4381ef014597f10074e854e9b1286cc406d66fe7406a68999a1cd2e526e144a821029cfeb84dbeddd15a6745fda699e658beead", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/FixReport\/XmlReporter.php": "82ba3759aa2567510d1d4bf35d03ce60b93a8b0b7b734f57c408826bd729fbb546d816676fc8b901b367493ac2cc06d3330ba59d289f10841b7731217b930cea", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/ListSetsReport\/JsonReporter.php": "ef4945cd0e15e4cd69ad709e9537c29667a2e794d4df9a873265578d712a3ba40b4fdbf78b8ef3a2bf6387075f01b9df134a860f6f3b86a88d5eb872a57e652c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/ListSetsReport\/ReportSummary.php": "49ab35678e8dcf00d588f802832171915de979b441948e8adaf7dad3fac67be7cfd7032590516573d56a7332e10dad43a7a35e2e1b4608338dcdd85defdbb3c5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/ListSetsReport\/ReporterFactory.php": "a87597cedfd604dc19d9b799264d861459f890e4b92979c1e44597a792549319fc604facfd880fd6f1e62813667e6cb5ec6ab62677788c2c732fa45fcb817978", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/ListSetsReport\/ReporterInterface.php": "37349bd3f10511bcf1ace912ebae3162dd05498924e1ecffc6228141840fe4e93b80e3e6fe35ffdf1e9c4c38c6ee80539283c7d34d5eeb14debccede28b0939c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/Report\/ListSetsReport\/TextReporter.php": "ddd8d406c4138625e415682df7e18731ac66d9665ddcd83044759b521a247a6c94231a6359de986340823c1ee01ae5ec06470a245227959b939beb8998a295b4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/SelfUpdate\/GithubClient.php": "7032f15689e24699d4e84ead7bd4369aa064b96ea1f98dbf240a961fb630bc683cbf39c7b48a30ed7fd38446dbb506d8e2f0a81c6f5b1c4d96b0b1dae69f3bbd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/SelfUpdate\/GithubClientInterface.php": "c9e8aaa13d4084729533652ec10cd984fbf5f6f564d41e1bfa9cd8a2134a494ec03f8155d02f31d3e7986fe3681a56eda83b2f06e6b104e8616b6fa9322ff5c0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/SelfUpdate\/NewVersionChecker.php": "a0ddc3b3d6b7c655e2e67536f1862495b89adcf328639c641aa1a9148f77273f11f23771dc5be19332fa7b5dfd3af6fe4073e4069721d9eeb107342cb7c6509f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/SelfUpdate\/NewVersionCheckerInterface.php": "efd1966e721695e57a1be552cd5c5c46c72215b5e06e6a0e373d972b3a6c9a876cc71e3fd364f65c9a0fb99ddcc2cc85c0dfadb115e730c42def3f640d39024e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Console\/WarningsDetector.php": "9f794335304f3b696cc21e3ff3da484ef1ff4ca1776010121984ec830c20d4bd82cb784384e6283c3a60b731461588e4ba04470644ef42e079ca05806cfc5987", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/DiffConsoleFormatter.php": "5b9a4fabf7c281daefea71064c7a3e848b6a6fb440b0513c659ca4dafea081a0e5b6ff60d1f17e881afaa4be48b78f5e36766e1c7e4c6b17e02b2c1e1cc4602e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/DifferInterface.php": "15577dddc48a3ee058e0e225d8ee28be89d7160c0756b3ec56b9e6afedd4fbbcbf3c158b96b5c5762e6f0891683485aab83650f3e651861088fecf1ab1333d64", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/FullDiffer.php": "0d1544f8d2a0fd6e5656e49aeec5ad51b20f0800a4791233f59d5fc326dd075aa73c5d99d76b94b92c672b6c1b034b97366f26de567a4b94d321deb912857fc9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/NullDiffer.php": "a883b264a74b38c1409326bbb9297ce0fe5161476749905d672eb5678933d1dde1c0e2d074662f6eb986cf16bd5ddfe04623f877d1d204473dcfb7837fd08fca", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/SebastianBergmannDiffer.php": "e65c465478c22e2d0bb793460f2126c7aaf598c4c16f511f7d9b324f3e564adf43367cf0d2bd6874f87409747e3ea85ea250bd943c26b53b93cadfe4b14a49e9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/SebastianBergmannShortDiffer.php": "df10601a4f75dfa7ee95b3cc07173b5c85b6e7e4444862ceaaa34e189d28089f15c568ec1b774694fe1cb276970e80bcc97818ae9d44e3005fd366dfd7b910fb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Differ\/UnifiedDiffer.php": "151d6fd1bca9f3c27ec08ab6702ef1c1d34044bfac56cb8aac9ed12ef10beff00e4ff6304fdbd56984d5f52dc6e355417a2e8a59bb8756f74951e72e250f03a4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/Annotation.php": "f5f9b03d1fd5313792dc3a7696320a584e81910d1ae6ed85eba4de11dc8e23e5ac1cbfba48dc11afc60a3e45c9163df6feaa783ec7f6688eeb2c459068015548", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/DocBlock.php": "f52ab75cb73b7c29f359edfcdd1b3ad4109c2743afb9bb11badadd7386da4b00480f42f756c53f937d489822c5c3c66c4f41bf3045db558ad14f9af02ee3b221", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/Line.php": "47b4bb42d7b0f92d23d7ddc102e847ace03f29f8088feaa8bb76ee3cc8b517eb619480401497f5121ab78beb9dd01b0b270c4b02d1a1f08887042bb44d456c00", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/ShortDescription.php": "842de999a70ca76730cbd3d9f925d73ca98f52ec85167bb9beacf135957980c2758cbe68feef43d86d94a42f8cfe2a4c2e7ba33f1e95ca3d8c597c1bf8ed56e2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/Tag.php": "e5313ce9a9267ca2cc58ada1cd7146f63f8cc64584edff370e46c77cc7ecc6cc3b5cd901ec7fb3080aee59a7ce0f7b7f0aa7a83305104edeb3df67363e429cde", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/TagComparator.php": "32d0fe8693b725cf4e9f247b5134495fb52f56094ecc35c729595ca1d6da923e0492f35aa7ed70209a0af2e5792c6a91a59f54b9da3c448e7c4c0284b3d51651", - "vendor\/friendsofphp\/php-cs-fixer\/src\/DocBlock\/TypeExpression.php": "745dc168f47cc0f1ca399a6d8e9d99934090e8776f2490aa34279c87031e8de9c0ed3a2db6c5cb0f5124b50b4619a9f66305bbb9256021089d049aec33002e60", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Doctrine\/Annotation\/Token.php": "4cc3c730b1d2ba9d0f7eb9b65ac84d943dee26b10ac24dedda9a52c64132a0d46942878656e8283c58e144535cb474f9a5934b93bbb01428bc5018f5e33ee5d1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Doctrine\/Annotation\/Tokens.php": "d8dd6abc72dfe4069e80b30595ea395fe8177dbdff7d8aa6f697f79c412ac2969b60d155a674eab0220687f0db30bdbb0e18c1cabcc2a0b9096cd892d5a2ff5b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Documentation\/DocumentationGenerator.php": "70ee489b15e7f9f9bf1ab548de2d238ed899f2ff47851d44ba82c39f7ef7703709726a374172e5ed278318120cc381d35ec5f605011a815980ed2a3534bf47de", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Error\/Error.php": "67c9bd741850b571b3a2605ce2f3b8611ab224766b2c6f27e5c94c552cbe2eba09f07052a0d22ceec47d61caf8c9252617ed162a19327234c5341d771d48fd56", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Error\/ErrorsManager.php": "4e8529577af63f57e8f0ec4f75129bba29279b69e11d1cde722dba11c0574df45768d5c6664780007ebbbde2d75fad624f8f9109acb87acfb1f35303e11ebd05", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Event\/Event.php": "40b3b450b0bfedc29e81320fbdd2f3d869c6b382ae9ca548cfb39ff30641ef7282aac527a31fffcec90696c88f4d7b893a8bc0773f98cd7d77ba8d537ec4b743", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FileReader.php": "6a162ef2bf4ebcdfc01ce7e26f9e83d2825284f5adf0ba2e76a64298be25b8462208b81bca764e01e5b49b9a00b764f343016e192c19064f0a628f26e8d7d149", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FileRemoval.php": "8c6992729093923789667b9d65c2fbed7c8ca645b6fee0079dd71d015dc0df285b932ebc67af97c7989a9604068d3cc9cf048cb0b75bb62ea9fe1704b62dec6f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Finder.php": "f934dfe8057ca3a6df5735d717a9a85841ff94ae326c10db5119c2e2360061d2545c94a38ed91ac698c4210b69a75d69928cc48daf6ecf9e3a821c19bcef1ae6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/AbstractIncrementOperatorFixer.php": "d725478e650b51c3eb5d50aafb86335e99b7324c7f0546a278e67e7f8daec2e8bae222ba398abc9414287e30c07256fad134f9d8001e5e636037a50022cdf447", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/AbstractPhpUnitFixer.php": "aeda964357595c0d6de17ed34b52fbfb3447ed6e4212869d7487ba86a2655b86526f76fe5e7e611ee0cd4f043b346321291e3a556f9afd0b0558379effd4e0c5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/ArrayPushFixer.php": "11e96c7f3795cd3dfe174131c6e736bbfa35d737fe5ba2d3c466b0fc749e99827e00cb30d2818b6c0cb3876bf474913608b837b2f32fc613e24ff1b80f6cbd57", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/BacktickToShellExecFixer.php": "9cccb8c6c14a2d1f7e41ff36a00df9fa45a2ac734c92c47b69ee9881acca8d202802657595ac8feba05ad1ae98fb36521861899f1c3494afcf9cf89380cefbb1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/EregToPregFixer.php": "1b1c783f46d30365cc67b3c691d1405396ad795a8c4e41bf868e9fb0c84949a0446993511af2ab9fe60b6598819ba31522e0c29d079875ab826704fea5749c41", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/MbStrFunctionsFixer.php": "e12f11134b819d80971bc109d20141919cea664b4490327c54ae3819ed3920ba2ff48d439ca9ae542b5ecf04318a3f459954ef2a3e14e9173e0e2938437713fc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/NoAliasFunctionsFixer.php": "6fd1b91ad39e4fff819fc5213926fe8a313721efd84ff23b11c6191bed9717d2e1da16f44a702c4a1c632316ef3b7ce48592a04ec0fff4e981d3acac455655c1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/NoAliasLanguageConstructCallFixer.php": "16d80fbc9ee9512e8c9fbd02c09545c4ddc64a53043015507ff545ae560e3a35900bed070f232b4e3ba47effc48f04f3db59b113909159aa3d2f6260964a3b4f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/NoMixedEchoPrintFixer.php": "0b424c102c892cda0e8b1f483f58c158ffb6dc49d770688c30ea492a082bf2f611717d53b9e160024d500a5b799647d48f91604b924fd313d0e74f08738b5b12", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/PowToExponentiationFixer.php": "5e16b0e34c0f7a458ecc606ef760edf071bea3b44d4048eee7af7f90b6d0e62afbb39db83cbd4f89000387b812de8d5f24ad3ed63d3ff8a8b793a3176ed5df51", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/RandomApiMigrationFixer.php": "4ca78dc399f4634c7e55e5b0bc2d8b20757b79b8081133d785f6cf67f4a562211fffa14a0833f7d743741fec2d0243fcecf6106e44fedd1341e660ec8535b195", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Alias\/SetTypeToCastFixer.php": "8a655b85e9584bf0b173b66bee5913ff8d80c7ce51212d7a36710bea321a6297a53b26591e54b84d2241f494d135a9ff729c6ea0a9a148c86d98a8ef99268187", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/ArraySyntaxFixer.php": "10fb55160a857d4e1e5fd720994e85cba1cd193107484d7b7a4eb076f15336c8cefa10cba43190385f5b1b48f84c9a4b4459d69922dc5a042f85b65089740d2c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/NoMultilineWhitespaceAroundDoubleArrowFixer.php": "2684914f40c0cf56d25d793cfcbb07d70a13a6d433ba79e641edd1ce7eefa26590e356f30509b82f411ae11812071a919e227908219772c71f8da0a8ebd60dbc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/NoTrailingCommaInSinglelineArrayFixer.php": "21ede3e9e9a74a54252c2e7b573e3f1496407f80218fc94e1a3b1b0ff1b93f94c64a1061dbc2dde136ccdc84827f337651849fb1edfd242e72b6edcb333a37ba", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/NoWhitespaceBeforeCommaInArrayFixer.php": "44cc03fbb4004831f9c74036182290afd0038e789aaeab3755bee420d9f6a15ee1dadff6897ada617bff25573b1d41d92589cf29eb9d3e98952c73eb9168c0e6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/NormalizeIndexBraceFixer.php": "f32eb43c8706c699706564887b5e22e0148f37f45efe31921b03c6f14e39aee0aa69b92bd3682cfcea62b3e50e623f0cbcfe7c85df71f2635d032e0b1fcd506d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/TrailingCommaInMultilineArrayFixer.php": "f665f55cb27749f1ceff8cc267354c11d82908e1350ec316ea5ad1b82db85bec3b620b914b40ee9bd75584d173dca5fd59932f05a0ccd43000337f96f223d2af", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/TrimArraySpacesFixer.php": "aa83c75ae52362a706689978c3e7bcc6db21afa8033a90c5eb2fc674ae9a21a7448c3e530d6aa30e5f53612945c42e661c97f04aa76f59d872df225613230634", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ArrayNotation\/WhitespaceAfterCommaInArrayFixer.php": "5576f0fb64a96039e57c77f7d87a0e590a91f203e1e1d68fc00a50f9e90e61a4b068f273413ac9c99ce459c3d782ed717214524a0bbb3f9babcdd0359c6dfe48", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/BracesFixer.php": "db1f06912707783c877f50b4d32ac3f4a4faf221667b79d0f08525431c2b7f480e31f0a75647fab1dbc826f029d07711694b73b5edb99e5523a3806e4160ffe0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/EncodingFixer.php": "cef7a3b50d93c5c2fea6047a623416158041b3e2fe2218efba01cdebb4d17ad69862015af39b478810ee19225845b7a2efc3b73c97c4ba95f7d11dfe7e57ab83", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/NonPrintableCharacterFixer.php": "0658206dbad5d93656f263b2b33bc0b6bdf94e5f1320dfa153a7e2b27a085b18139f14b481d651e7a4b4a9584a69f005838503728cbba06a130bbfd66e15c990", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/Psr0Fixer.php": "5671de652b73f194128357bade7e4856cbf5f7ab09c6c412b92a60ef988eeb9d1ebc861615313c94f0f03835d0b8f9b10f059fed81a4cc0d5d01c277a750ddd5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/Psr4Fixer.php": "ca25fd93580c3c82d42f9f774fa52431b5d8f6fc492de0e23dd793db302d8ff1d5c760d3c02c0599a74903ef803cfa7ec2835b5e6ecc940710cd43fb7c118bf5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Basic\/PsrAutoloadingFixer.php": "bb239b3abf04dd39daacf92cc746a9214c25df949f5ebcd5167d40673d1cfab728c86efbeb4c08e012a15172922757c989ad60ae6020c4790a9180f7bd63c4b5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/ConstantCaseFixer.php": "a2e1a8835b95785f185f1d3d71dfa852c0527341908c3e0935f5bec8dcace2d8e8c81d4fec00b38f555623f85532821d75a904c29c955fb155d0c5746e17f261", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/LowercaseConstantsFixer.php": "7193de1dcd91a8ef9a5cd1995c0c3d236dc1ab87ab9e48515790b1e441dbbed6b4f5a04665741cc36c94467ed55b1b6b744296972c0320a39dcdcd13b7efe602", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/LowercaseKeywordsFixer.php": "b261abd24c62a78b843de6f05bc356a397224a2b4afc91d4b2d9d6fbd327151a260d7e3b37115f00b0433ac2460113319eeaac1a4fbf981974e68b0d4204921b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/LowercaseStaticReferenceFixer.php": "43b74ed19f1db957f1f5e739d244b1234f4af5223fb1f17f189ddddaced8ca3fea28b581abf9e13115e3beb7c8d7dd94d4161d73a7b15c0525e43238cd01932c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/MagicConstantCasingFixer.php": "08caf063c0c15e2e8f74c8a1a83c54ee21b63fee004cde5ef43540e5e7205a1ef7008a4e6dc741d184781525b7ef743ba4429221b50e729781374e7f429a5465", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/MagicMethodCasingFixer.php": "baf20af5008794aab77c4f482a42579169a8bc0b6ae3f5a9150457ff8ebc3a4fd2972e651cbf58a8276df7044248238ff2374b460d4bfeec015bfc193ed18a5e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/NativeFunctionCasingFixer.php": "dd0afd36e0628b575c08c8cf6ed1702cb717ecf01683dbd3ae761483a2580b1edee06d6d01dcda2ba848916fc48fde6a5c498b6a5e526eea71d1d00f5619ab97", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Casing\/NativeFunctionTypeDeclarationCasingFixer.php": "15d8797171a8bf556e2ee6e3caf03d0bdb133dd24eecd18fa71d8849c6629bda7703ca12d64dc466ade204b1acc0ca253c208e8e9a6f95dc502460ce06710c96", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/CastSpacesFixer.php": "819a7c41aed89569ee8430bd587b7c7b098bf262f8c6f24d2552e328b14effc54f291096dbb0328cdcc551b354c30cba241c1f2cecd79850845c5fe04db2154f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/LowercaseCastFixer.php": "15b0a0a0c62e5500105428a468201b91886b20d7dd06b98d70a0a40bf6fafd80c8327a4d9a5a3c1b750969dea2977c987ca9da9d5d9a87023ec238a1cddca33b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/ModernizeTypesCastingFixer.php": "7d88977274a20d9355950e09965bb2a2ab1c217b885b12ffe2582856ca0bce654fca929476df52b6f767d318a004947c65998ae072e11a07fd6d3f254327ee80", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/NoShortBoolCastFixer.php": "83e571d4f5badcbdd5a5ed3608d7b628ede56a62e8f47a5501bd857d7efb25973f87ad82c1d4891e3515a7d4915095e5e1a4c484489a81a6f48bc45392db8177", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/NoUnsetCastFixer.php": "3b90191986d138165b76baa378ef36c33172577294a1d9bf2e3c27417ef20d21eeb2259c762972b28141fd3b828e4f4088c0efaf62a4a09ef81eed0937184083", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/CastNotation\/ShortScalarCastFixer.php": "a42202af4abf49375fcdf4ae8696e3b14ecfff01dc3eb66f9d56f990ba745e4aa5c72f3e01e80011c5d86746ab0c6fb89b1e5c0cdefab9f6227e037dde84f802", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/ClassAttributesSeparationFixer.php": "bcc0a0165b98e184365ff679710e1b4429a635d59d2c387bae1351972bee5f8bfb8231eeb5d04e2e9bf3c990c373096ee96d7a36434b6b42fc181b2a207f9a73", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/ClassDefinitionFixer.php": "cdb76d013df1983b56ea35351bd8a719002933c8c0f53e24e98fdff229cbb0faaed79354b1fff9dd6a98db009dc77b924a310f2c4a68298bfe179b14f03a2495", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/FinalClassFixer.php": "80e2d44d453b740181632a3fbab8ddfbcb4cbbf857534a427564b9e2802aafe07e83f2c6ecb8b61c19b57151922443a702cea64104d13e5cebdda08f888382f7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/FinalInternalClassFixer.php": "695738f1538f332d34df5d35747a00dcde37b5953232a1f1e2c55ad7b9fac9072b20061bb37e511c01b6f5449241975587c28b3e4a1f2f70537d56a24758ffa6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/FinalPublicMethodForAbstractClassFixer.php": "f0b41fd13c61d6bfafda6de3c3ea9bb09a55f13590909094f8cd84b7b3812692eedd8e28802f6a0ecda56dc5cddc96a572d6b30e550bb6ca731730b8883671ed", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/FinalStaticAccessFixer.php": "02f119261265baefafea66426f27e21ef93f7d1d38a48f96d1ef8fcf74469a2c4b67e21e5651f87e235cd420a8c3963b5bedd4713a0a950487c264169583b2ea", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/MethodSeparationFixer.php": "0cc977a7c717fe692a16c00d72d3d372c6962ab1be1d45b131f219bce51407a2286945bb1a9c014673305be81d5e1200ddd6dff6bf52b8b40eeec70f6f1b420d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/NoBlankLinesAfterClassOpeningFixer.php": "2ad3f3f37422062868f5bc9c31baa76c1c3e120464e5068ed50588542835b0101c2c1b4bb48413734d7436c99d49ddaa53795ff49d639fd87664b8343a6d638a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/NoNullPropertyInitializationFixer.php": "40ef10a1d145099ba5e4fa78db798da2ac884c0e75d380b7dd42b5b7c05ba8257a3bfb3d9b7aa4fd65dc6b5c77a17a18ad62f50da39e4599c6e0bed1fe2d5c84", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/NoPhp4ConstructorFixer.php": "eb8e567272af80edf3e78781d409cf77f86217c3f20a87ed5d8e7f5bfe99456b67b056057833c75d3d8094b28e571d9ba24b5422246f33e307f21e69f3083ed0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/NoUnneededFinalMethodFixer.php": "4edbf9b997cc1337d95418716bb86dc1bb9065f94dbb4abaf1e76b8b6f26bf79494c8658eb78a1adeddc35727ea44d3ddb3cc7d0113335aba9f4fb9605199eb3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/OrderedClassElementsFixer.php": "5b91ce28fb4b70c820bf9ef432d9526423fd5128c9a030595b414413b999294507518212213010b89007decafb460f9ebbce84c6a4cf5d0db285468ff2810d23", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/OrderedInterfacesFixer.php": "7cc8c74978caad5cea401ee9a5d9b2d34eaabe2bf0d1e0710601e67ff877f42f21b4275cba35710db7cd118efed251f55a8ecca001240517ec97ffbfabe62f48", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/OrderedTraitsFixer.php": "a287325e9b28c91e6de4dafea9d87e96f3e5ac63ce410bca8d6737030229a5f594457fcaba9557814a7ae2fd89c63423c6f0ad3a2a588f5645ee02267d6f6c5d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/ProtectedToPrivateFixer.php": "4b8c319404bef58891266950dc4e65419a41828adb86cc249d05a679c820c1b664891718bf008c652b372b6b25992472eb26bdc53a4790bceeb458fc47f2cb7f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/SelfAccessorFixer.php": "f7a504eabd2db5e95e31eb2036322e9988b4d0deaeca46e9f293729fc07195e702acc1342993d31d3a559355c4031d65351236bf3920916c99689b6894edabbc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/SelfStaticAccessorFixer.php": "96f29dba4a8933aca172b1e2e3b62068a98bb07b8f2c1509efbeeec8d51ca7aef0ff40435274022c54a2839eeb4bfb0fb9f55c3e594f9c3b8a2f8dd06b4b86fc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/SingleClassElementPerStatementFixer.php": "485e3a552102feb4562121fc5e557c719e58c1c23a75eb9d7aec7393203f4aecfd8ac0fa10294b474cc5935bc3e1625805ed10064bdb769f643bc680ad2ee3fa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/SingleTraitInsertPerStatementFixer.php": "c42e3423b8175ad911e3baf51370acf1dc3f537a3a88b3233705c9d921e51fed4e8d1fcc765e17faaf19d6bd7ce3658ff75f33b072c63861a24a13509b19ca38", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassNotation\/VisibilityRequiredFixer.php": "6a1f9cc9e98b15f2683d359ee3ebd947fa4a2b9ef2a16789bea9d00d49b08bfbfbc8440dcf02c1040ccb0e61d6f167f37af62a05e83aae5d5a0d2a4a8a1cd44a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ClassUsage\/DateTimeImmutableFixer.php": "b002090cba9fd181ded2c3d1d4df32c758a5bdac119f56d4db5b9340ca93efedc1a1e476049e6fe6e9b85e476d50f57c369fd855f96cfb98e45179f1f9bcff78", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/CommentToPhpdocFixer.php": "b450de0069e9907f19f552e975eaabb9974dc8018767888f0270353a1418cab958e38f17627bb2c82756e6f2f74972393425a2ae1a9c7e2f629dc7edc3d6de95", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/HashToSlashCommentFixer.php": "ede740e842d1f996d6ea4a85e65f489e8f3d8667938995b1f3cf8fa1af78d818811b0fbd896dfddf58d4ed58cdca9d9edbe8039eb702dce6399289f21193e6d8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/HeaderCommentFixer.php": "37102937886cf9934c69e89e8fcfef8c86a834935aeaf9711c20db8ae1733e9f86515227389d684a56947cf562ca89435cc1ce18d272162489c64344a46237a5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/MultilineCommentOpeningClosingFixer.php": "7950edd3fca2e0134984e743d50ec2f73cb9c3419157fae38eda1f4f1e462068a9e7ca90e244fd8b0bc5d1c3bbb6f517275e454eaed609996ab2f21850486d43", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/NoEmptyCommentFixer.php": "a51839afa95a2dd695b540a7f6dc3673a01a63d4e5995f64731141256ce827b3cc1e3230bf0e855180f07225448fa5ce09ee83997e538c34b0b3e71da40e0cd0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/NoTrailingWhitespaceInCommentFixer.php": "d936cbe72d86cea67c336c0016c93a79488220cdb5e229ee747a8aea7af48c290c9cbde90502b8856d8db160083c778c6c07e676c3c2e6181272db4bc620f7d6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Comment\/SingleLineCommentStyleFixer.php": "5127d087b6ace01fda1c6a8ad78ce2a80d9a634cb829d01c85ca68e4f77b9f7bfb3f78d4e9830c62b35be5a60e8c0856f1ea85a3b6c04b9c9fe7a9b64565f1d3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ConfigurableFixerInterface.php": "7fd6cd90767fada21f7470e5835762fffb9a3d133c3370091ca5e2f7f8811fa68b7be2f337087f1e3bdb311685caf7fa8349d57f398855ccafb5ff140a638862", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ConfigurationDefinitionFixerInterface.php": "a05c75c3753a1943c44dd64d37f29bd7c8bf34b88ef4da19897baa3ea753c759756581eb3ed6780e853f103fe258ddddf7d646592864284c59fbdf85561386c6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ConstantNotation\/NativeConstantInvocationFixer.php": "60636867b094855c288ce24b63f1afbfb3d1870d70a4eb9d19999db49a348ee2f17e5a6aac92de6bac566483f465159f20e97eed6e8de2f172d05fce75ca9c53", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/ElseifFixer.php": "a623ff4a8c639e6b2da80d642988da08deddc766e8fad14701c226539b0bdb538cfc3568a312d51f1202a496566a72d26d236fd09278f78942ab2b7bb864369b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/IncludeFixer.php": "cd7526731c66259ae028ab73c40fb40ba741322b93b28bd50747f3bf4d32c0fd5f0cd5d077d0a1be6adcf60b8df340daa80dce4e9bd677e02708378621b64bc0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoAlternativeSyntaxFixer.php": "08070860fe77f75c6bd06a58a51627b6fc556c40f0f4111a28694c5291c5646f2b32d65c3e5bb8b0f081aef67cdcba5db35118423762f10126bb74aeb378301b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoBreakCommentFixer.php": "2793085591abb4afc25d490b9279071cf2f41b647616a9b677c58728c0e08698f665268fbb26ad6dcf14950a9c7c4c5281cef2b7f533fe0968097dc8e1da29d3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoSuperfluousElseifFixer.php": "58140686ef06907ff586c1937ccd86fa8492163fd2b955cc22d88d5938e30d73b8aa89776da55385a60f91ab32eb76ddf040734132782b5a1571a41abcd898aa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoTrailingCommaInListCallFixer.php": "dc040af6fd3a7e17aad3aabfbbb60bcb61cab039475dd35f8b7ee623bfaf437d4b87333e294fd3144dc83f95b58578491e97e9737aa44826871780edae9ed5f2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoUnneededControlParenthesesFixer.php": "8de345bda4e5629dae161fc5e6205c2334eb02669be3c41d5237fe7abf27fee6a216c89eda5a5e663ebd62d620e620bd87d22cd78d54c16949be44efb639e999", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoUnneededCurlyBracesFixer.php": "86fb8cc02dfa08ef773afe97f1a3a4cd7a1f6d51e8bd924cb6286a0239fe20f65088740deb536095e350d59d97b43642953d3e59004f510a5bc7b1511a588293", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/NoUselessElseFixer.php": "28cd48ad561f2e39b453dc18f4c05f6c489f09ef0d490b09149ef1a91aebaea1da71cbeced48ff623a9f972debcabb1b2f0ad94e3eeb8025731b0088f2da5532", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/SimplifiedIfReturnFixer.php": "d46aa44c2fe8b20b4e5ed8c83f4f73d0303ae3ed48540f51102dba89308bf28edbbb1f7bd5f14ffe356d433987e6e69cfc7f1aba59d1cbeb7d7779903f12858e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/SwitchCaseSemicolonToColonFixer.php": "898cf7fff2e21b344fe938cc79791604ac0688a79c3e6a5cbf89a657f27b6db7ed4c851587e82952f0791b7c8dadf5335891db286bd6dd7d63adfd6c30594e2c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/SwitchCaseSpaceFixer.php": "f01da20f17e90fb2ff24b1adb44927135cec6d1cbff34b4b37ae29b3e49de284a00d6c2eaa0e1cf77082c4b72ae01dfe31c07283f74ab1e7d0bea841ea256de1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/SwitchContinueToBreakFixer.php": "bc810a5ec7ba49fd9e87bf75c568e6fe64c719190d18cd1dc22199744377ea139631f2bb06f4e0679933fcad9b8dc6a24c305b3388dc1e2bd71b08c0126fd261", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/TrailingCommaInMultilineFixer.php": "8e39c7d4e88ebd89d2e11e30658096040dec5d8cdcffebd6608544fe3c3abedd3cbe1f98aa899f83603295c55c0d1d1516f3444d0207e6378ce1c410d9bd9597", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ControlStructure\/YodaStyleFixer.php": "ca0a6a7f095744b9e04b2bb30f86750b33f46615875a04a0de9985d5e808d8a7a080dc669a5216aaa283b89ada13341b9dc376fbf4cb1bbccc804bc0a2b3b664", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DefinedFixerInterface.php": "ece896dc8eb2da00710b0c01f3348335784f28da61ccb9dc6797df3d73bbe52dd1a76b6c6303bd1e9a0bb6c49c36223bcbed633d0a909b7f9b41fdcc784d55aa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DeprecatedFixerInterface.php": "3c95ec89eabfeea19a9021a74a4e51f4f0f288ef095efb166e7c61869b08f6fe91968f40f12fec14c34196f6ae1c0dda740dab7d8b0d3d592f544e32af294961", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DoctrineAnnotation\/DoctrineAnnotationArrayAssignmentFixer.php": "57ba1937223045d6bfc9bdb2c01f3a3e7c882ff8afc8b3b463d7599469d63d86246d25155ad107f196deb8900fd38136202f0f2c551e11272599209666800f75", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DoctrineAnnotation\/DoctrineAnnotationBracesFixer.php": "e62aaa22b9546cba567b3ab8e98dee4b29f8a58c0811f54bbe843227486094ce07f2c51dc19e9dd964a758add012d9ea5794278e58f713f880530a4eb8b65fc9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DoctrineAnnotation\/DoctrineAnnotationIndentationFixer.php": "cf0afe9be5af79d708eb45950d5802a5621e77ac7ec3413ddd2b895dad2b6280b3d3ece329e0d6d2de4b2dd91712d782f1724e257f797bf221816750f6ea9153", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/DoctrineAnnotation\/DoctrineAnnotationSpacesFixer.php": "e67fbaa97786171066a0873555e2e3206591291efa22e4517a3e92facdc22309bf9e8517f7b70e2e515b84bb1e97040d6a4c9a1349173ffbb602b98762f5a72d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FixerInterface.php": "61349806676d34520d3d677d470d364d007b45cc92aeb2ca85228963a845357994acee85ab8f455ab990586cb0d09c0c2815df4d94ddd07f9206239d0a09bae4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/CombineNestedDirnameFixer.php": "a718adbbf7defcef7acbb731dead21d4437ba0c9cb67877a789e6c385a111c7b6970295905b869942757574f944f3427ad7c84bde8737ef3ac8baac05bab4580", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/FopenFlagOrderFixer.php": "61fa3393ea60c208eb509508dfbab4b5390bb924ddfd14a35e8b39f2be94fd01e7a55cf8edd8eabb8edf17d25e16f3c78648bb96dd73aeaa346ae507087a2bde", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/FopenFlagsFixer.php": "497718e4124e4c35c4479b65d71d8ad5d5fc0ed46d2c7380ae6f2fe53c1909394f31c70840c33b053857c890e9ac54ffb5fea5d9429dcf46f5531f1e21be57b9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/FunctionDeclarationFixer.php": "1a256911315633b3395abb88aae771597c85640389d90209d665f61e0b5ec3123df342163284a6c507d3f2c8377a168299f4ca5463e41ca93a3e5acf0b4926c3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/FunctionTypehintSpaceFixer.php": "477c38dab7df580739b05f55fe502dbf8402b97c595d0b0dfbc63c01cf0fe31fcc295bc430fd6f0604f7a4f98bdb0bc65904f4dbcd63a7da731dc9eff6ec6b48", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/ImplodeCallFixer.php": "d99dc629c459fc284c90d1d9776e992f7babf18571d1be0226e267222e6e0ca5228a5edd44fababfcf2311f31d92e906f2e9015ff4172f481a4b0e9cac4d8aa5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/LambdaNotUsedImportFixer.php": "d8354cda36eec2dfc608798cb3b6bef421fd3a88ae207dceb81f2f3f598caabe650a0188cffce1f68e66d16d824bb724f74ba90114c7e551597aa99a4010d523", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/MethodArgumentSpaceFixer.php": "32be0ee06d4153e4c20d648b20aff4ef617623ed05323a63704847ba098165fc2c44cd6547afd150eb571b149aa84957e1c1e788bb582d3a7e40f564e574ce80", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/NativeFunctionInvocationFixer.php": "f5a2b5257443e696224c3d66576793f6f580f8ea221bf9175323368d038c4e96d3deb7f0c535e71afe023a170c50b2618a3c71eb83057ffd8e45dfc6fb9c1543", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/NoSpacesAfterFunctionNameFixer.php": "fa483602e8fa4d57d68fb2e021f6e6280fd5dc070c88ec67bf1a0cfdf1c61ab8ee0b4a654eade93acda395037dc4259ee0c4a20b85db126c121d13a899a3213d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/NoUnreachableDefaultArgumentValueFixer.php": "2095c0e3196954225c441a3c1d9231b453019ac0520cc594a10653fe0483e4a6b9f686126b367f2a66eee062e549bb9523464e0db3048e2dc8a1930328d7ac23", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/NoUselessSprintfFixer.php": "003abbb872988df33da066262625dd8d82c070ee7a005363042372a43be328ffba611b9bca2cc845d2d3636d82b334aeae4bdb6f74f568668fedbdd33175fc8e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/NullableTypeDeclarationForDefaultNullValueFixer.php": "3971f327aefe3fd6b9740c42779d4ab4ded0a8cb9bb6e5cbd1d4c1e72af381eb044d0845ef29add96392d8ed05fe2e11f4ea28797eef74af3c0291a6bdd537e3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/PhpdocToParamTypeFixer.php": "658acf4f7a9233d2815568194efd0754adc6c56300a4fab5daa9e81d711cad9f7aad494e550ef63576c394fea85db4c806cc03a65f0f0273ff67ab897358adb8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/PhpdocToPropertyTypeFixer.php": "72723162794498196005d5faf3c299b5b0e1ada0cc170c9b4a379667702c8d3db5b7b5a9c411092a332f2b4aa55fd3289aa6820495984c2c591fe236b8ce7b48", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/PhpdocToReturnTypeFixer.php": "0145031c13569d9d9fcb46b372b8ad6294256d99264553d9856836faa1584088d0db5e125a172ed9a750e07d75e40ffbbb3c319533c31fe32c9c838fe6589c62", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/RegularCallableCallFixer.php": "98dcc70d07629f73c68e00724757fa8db8da19f08e8d933c6e1da41ef41af41e824d391f0855d173f1ce60a257afb01b13217ce43670ae0052a4bc4fe60c94de", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/ReturnTypeDeclarationFixer.php": "85f8a134db6fc39ccdfe397ed9157f5da5abde9a5fcaeb5b7538795302860f5a9f908020497c6586fbf828e01a8df7d8b1a98f8d1e9399c6ed477f066edb0cbf", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/SingleLineThrowFixer.php": "aa2bfc0ef3cd5f7f6e15ca38c6fcda983b945c2fc2130cc63956c7c08397a651a67942a6050be0a570e178eb95bb75eeabc0d88bce0a5934ab42847d5ea8ea39", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/StaticLambdaFixer.php": "ce17cd320b6c5f900f9785aee8fd561b4f64e3a90d9c4887ffd088af18ab4f0900132c7f96ca000bc9b3400260c9abfbfd15706258994cab7aa6526dbe76c217", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/UseArrowFunctionsFixer.php": "b7c71097dd81ff4bc0211332f61d961139e75c5f9c4a7926ebbca29ae9540274fc62143706bc67ca0a9e31ac6e5192cd9fb6c6d5fccac9cd907184c8fba20f61", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/FunctionNotation\/VoidReturnFixer.php": "e59261d028d493f97d753a963084fd648e566c818ba0db2b8aab06dcb8d5241f9a9c8fc9e305653df0af61fe974369c7d29d3c4be386b238c6061f07ce5d71a1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/FullyQualifiedStrictTypesFixer.php": "88cd9d8d42d407da3e5e23aa0ead580221ef955627c72b821b6884ca46633344dcc4ee2751d93c153958752fb6586016b8448b40e6072fcefb2608905ff23c6b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/GlobalNamespaceImportFixer.php": "74acf7b4a6a19fad392c720dac78670ae82ac8015a637f8eed2e1dada3c428ef51890467733bb9e1b92649882f2f9f5f9be909579d5266a6157d67076ac42a37", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/GroupImportFixer.php": "e1b0a92eff7f5b9822f5dc8b70116cfbb52eb45bfd15f07938d17032dddcf7e499f105fc28a87cafd90502c12fd54aa2ea5b60bd733ee93d6282b30daff570c2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/NoLeadingImportSlashFixer.php": "c2885aa038985631958555c4632748b923513e18a3d8baafc1f45e92c16adcb8541a6720d0d83e989616e29901fc9a73cca02a0016364efe13a1c54c60ea83a5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/NoUnusedImportsFixer.php": "9ae4bbf4e1a9cef3066671f9bb4722b41a4279d9ad20cb17f93bd4f663e4c4d33a509574820fb64b79afdfb688e5b3a630d0f985897ea2198172a4fcfebf0989", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/OrderedImportsFixer.php": "6af381233bf7595ffecf040c3768400da744c42830c04acc97a65c76bdb1a08a4a3e52e7294fa48a2a10ffdf212d3c5490807581af3644a4dce045adec433a44", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/SingleImportPerStatementFixer.php": "577bbda7c90f7eb83801455ed056f9018d5cec9c26a0d5a7d1944d369922e2e289ca330e4ffdb0be0739490409d1b644355a579f3b7ac8d430a4f652602a84fe", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Import\/SingleLineAfterImportsFixer.php": "3ed07bf6b4b093beb13a8b2b40106777c4535fbb4b4997ba95abcd33630d3857821fc9f258a8463c97fe366d3bbc897203f05b734a16b4a63d882684956fe91d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/ClassKeywordRemoveFixer.php": "54791e83a414d6562fb3f5c3e92fdfb21db633f3cabcbebd3a2ef6c00553daa6d2448292fe54b00a6066751ecdf3ff396c7993996b6a79fecfea2192daa5f75a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/CombineConsecutiveIssetsFixer.php": "44be9b93e74c4d8ec0a37e317b231affb84e44f066625ed2f25180129679ec54102ca10281b08c7561bdf43bad82d310bd22b7066391d4a62c1c80cd839b2fc6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/CombineConsecutiveUnsetsFixer.php": "17670de32698521076505da02eb1493277efa9ee64c5adf16c3c3c724a0ff0aa4e6a35f4ecc03d294910da0ca54c45dcf165e30de9edfa47d275b8858cc6e39d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/DeclareEqualNormalizeFixer.php": "8ec0b2e2ecc9c5fd820372caa92c789d1e0aa7e296f0a06cf51dce2702cf0fc85df72e5b99f25667d671ebbf31ba9fe8cc71f82526fde0aa7be5d909a4e93490", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/DirConstantFixer.php": "3743ff9b5c928c0c7caea38c53c6bed7b039f9aadec70c19f2a1a6ffe550970dc87b53bd9c92dcfb64628cd1c13b4415a9116c0cd96957674e5a7923139ed7b8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/ErrorSuppressionFixer.php": "ccc218d435021b3af1d21b70c1e54890599d9afd02797a7c7c1cbd426cc83b674e4e381d783c06047682c287e96a6580b39a1d82762cce9d8b88818380b9e85a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/ExplicitIndirectVariableFixer.php": "e12281faec42d013be68b459138b4001fb92324b080484efdd4ccea7e224c8c713d1a7f513a05b7a75e9cb646e5726ffe588f1da23f4a62c6ffbe79d91fbfb20", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/FunctionToConstantFixer.php": "e7c143a2a7a999886db8a294cb1caa53da3424a0ed46bb6a8ca4603d3bbc8d946ba8df717bac50afefc999d35408fcb0f04efb101a58dd2467618a6d2500d610", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/IsNullFixer.php": "2d7fab9f6900e288e05de4822a9a13e6a13ce70ac6e579d1bdc4d2a3a50172826f32a9045647f14f9da7575aafe945fe404d404eb05efc8f6aa86e44f26e1be6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/NoUnsetOnPropertyFixer.php": "00dba136b3993258404fd5371e339798f65bfc895c8ad2779b40f591624ddd4122e01ae3c9e480a79409ff93f3d895347b4f11d0213c993642d1f8bb60c6ba52", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/SilencedDeprecationErrorFixer.php": "ba9456cfa782d29830abb4ab249b7ac8afbda86680abaf870032c54ec800fb33dfd2308fc5fd6d1860a48d603710160c1872f64d9ba59d4000abb2a9b40576c8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/LanguageConstruct\/SingleSpaceAfterConstructFixer.php": "e652647efbf48a0d3e62638ce507376f2b3f2248707f05473a1f417738acec43d04ca3a281f9c1bf04c340b221309b9a981110e2d90c36e98855e05506e58b20", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ListNotation\/ListSyntaxFixer.php": "22fa4b9285c2565b9b58db2f04a2809238b203f4fe3a50a0894ad56f36684512f232d656ebd9a17ae7350255be9e95c632b85e99dd41f225411306a72c8ffb37", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/NamespaceNotation\/BlankLineAfterNamespaceFixer.php": "bba13a0296d2e2e1e6afdd4d5bd2afc51901a810fd7dea356b0df491a3f176cfd0adceef522536ca85ad2e4feba405f2889e9f2e9332636a07e50e80e830ae6a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/NamespaceNotation\/CleanNamespaceFixer.php": "dea46172762d757b6a541568f6e4ff61559b398f50566bbd049fd27bcb84779884848fb940bfec850d64184da3ea70be248f41640b33743ae3e7c4a49b02a70e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/NamespaceNotation\/NoBlankLinesBeforeNamespaceFixer.php": "d954a1f408a14152e18a82625f7c6683038981a0c2833f15ddb0d161c3f0dac0a9724c73f9bd8dc67d879d81bc0015564a06b1c0d5f2d7036d2719d957f9d4f6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/NamespaceNotation\/NoLeadingNamespaceWhitespaceFixer.php": "8764bf491f470dd5c9d93d47e74a79b35e0f36d1ec41889f19fdeb35398618bb755b3e5cf79ac2f079fdde880dedccb2f3df6ddf19758f6c5b35672ddadc8513", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/NamespaceNotation\/SingleBlankLineBeforeNamespaceFixer.php": "8d5f83dc1830e07302ac471c2d21eacb42f8acb797001ecfa830ad021cdb9977da757c8a73aff2123211de381bd1313e51a970d6daf3d376a5580ed9f0df12a7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Naming\/NoHomoglyphNamesFixer.php": "d6b3bb79a17d690643f7749242df3b801bc0475fa2528faab76e56e2b8e270281b818b5507331861658ea76898fac20d22afd4058253da558f48c046e8f766f4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/AlignDoubleArrowFixerHelper.php": "af6a86d2fa2b57426b1d0ad3b21ebe2d91afa1b913da29759f88b178a8276697e944104cd96c16528b763cfad57482b5b2f3c7e4e058197be3b7dda81a15f5f7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/AlignEqualsFixerHelper.php": "94983656eea4c5dc19980ce905c12028587376543873f908687a6a9cc01c5a4fc9e9e9d3641d91c43e398ef15b639216836d60cabfff6ebf6cf9c56a0c40c859", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/BinaryOperatorSpacesFixer.php": "d4d09ae98ee21f2d6998c7a7642b563c069ffa38679d1c54e3a781b0c0470693c160d6ba3c67bee51f1ff0d6c6f2577aca75477b87e05fefe871c01c5c3c0cde", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/ConcatSpaceFixer.php": "96e0a21d6fe066389f3e81672a06d4e5ac9b1ff9376d2726d3c269a1121a87617b40101deaa1ec3a7c983d75a8b8eea932020c7972b9c6261a11f75f75a81d50", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/IncrementStyleFixer.php": "63978c0754657628c8cae90a6a5fd82d6e2ecb14143f0b8a414e378e5327411754081a69f47ef5d66e6e37f016df19946f82b695d3a8137d8f570ff1f7d59611", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/LogicalOperatorsFixer.php": "ebde0f84bed948de41c67bd3fb5a05acbdf2438cd7aec18fd77451338ee43ea4124ea99fa59a3615b65a2f51166c9eea1023d08478b76bdbf4232e4730cd912a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/NewWithBracesFixer.php": "255364c861b8684f7dd7b5dc30e796b2a3e5645e381714d7fbdda018f07aaccdfc363fcf14ada426af485ff62fd6a91ce45730c68d2c3f6322ae9deedda4b722", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/NotOperatorWithSpaceFixer.php": "4d657007ad7003fb1e8e488699bb0971ec4c1774edd3f40a727339848f9c305b88ef5880cf7c069b8316c21e57b0aa2f849a050c1d36392a85aea705989c2006", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/NotOperatorWithSuccessorSpaceFixer.php": "fd66b9467bbc088485c235843941d972f5d530cfd78529c2ce5f65b0ab2c62b5dcd4d39c455dff1d0bb86b36eba8482d1f7e192f50164205c1f1b8c60810771d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/ObjectOperatorWithoutWhitespaceFixer.php": "4a4b4dc6c94fcf18dc86bd9d75e6a8f56a737f8d5aa06eaf83bfb0a8714ee65a99b9e75c63c8f7dd9b8c9f9943634c4b9664e48225ef2c0cb22209bc29a019ff", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/OperatorLinebreakFixer.php": "7425c6b3941835d3b52705b9e8c63787d98adabb3ae24d98c200a98bb4983379e8bb2f96f23c2bde41cd17cde4a0c7efd2ff7fa4355503efd5c839e42dea7aee", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/PreIncrementFixer.php": "11a7dc3038d62bbfdf69fd68d31fa840cfc7e0f83c2c95e994368e4458889b8cb32f38b798e4c818051b77a53d5f375d24230625ba29c51066ef342c0f01a896", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/StandardizeIncrementFixer.php": "7303e9470fee16ca6a4c749937c4b8b506dbb1d986eadd4bf5a8496ab01131e27119f760773d86e825e00ec1855838ebacb4452aece202e2ff73b1a6146de7cd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/StandardizeNotEqualsFixer.php": "f0940a3b5fe96907d98c6c6832dc554d6afb027215d2fb1b486aaf8ee5825e78b881157a47b6dd715ff401e45daf76c5f978eddd3a9929fcd185787a09446898", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/TernaryOperatorSpacesFixer.php": "88d91fa3eb146792929883fb35abeb6a0cba831c38ad81292a029f880933975e46e29e31d56c882760de4229badf62d9fac6b7b62bc86b0ca016b58726e550f7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/TernaryToElvisOperatorFixer.php": "879c3f8ab7a483d14e791326573674f314b849f7cef0b060c0d87b19bb470def16dfb4411a98284f28a0028072edfdd5215f2da49e8de4fcf3dade28c5615fd4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/TernaryToNullCoalescingFixer.php": "9792a0110ba7fb00afa3d552ec038a0178ec27acfc6463d03f95d5c7a51f0ec4ddc7cae19982f9286b37729a148f28953f7051979f04619162c09c148697cf59", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Operator\/UnaryOperatorSpacesFixer.php": "3a971d58990e8a1ace4ed394a9e29e68e327f007367855f24806db001fd0dcc43d84804002fcaac7b2024e7bd7fcb0e129bc1213b888e713dc74f157198bf898", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/BlankLineAfterOpeningTagFixer.php": "339ff61c3aad7a19a111f1dd1eec7f035fe1f4e9f6ea432fe50a5bd8870e624367140037e8d7c211f423cd03c0c16b37115029ac7cca9535cc037a209f7a85b6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/EchoTagSyntaxFixer.php": "5e5dbf64f0044e704057caa6218395d46abb2bd74042b0ae2d0678d1a71e2e50a89868929c3d1710fd9587e4268197fc218317ce11a6e820d0239259a52e9043", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/FullOpeningTagFixer.php": "1e795fb53420c302202b69d271762051bca7347dac6f0188b10aadf0a90958cab7ba7e05f8ee45e4a3decea3a7d8272a8656448b60ac6cabb216826c658182fc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/LinebreakAfterOpeningTagFixer.php": "2b330387fc2aec08088fc9e4419b6f3bf8f3bedb4eced15ecba7fbb5ff603a1571ffc3122486091b00a3774cecc08af6a0f6aeb968b541a6b4c9f7b60bff7626", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/NoClosingTagFixer.php": "51fb9381606c0c3b5616ac8169503c4aef18bf9bc8c09358fc58951e26bc05ca444aa8712f963cf462e13e6f3f45ab8eaba53b3b0f154bf186ae862cbbfe8066", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpTag\/NoShortEchoTagFixer.php": "359ba4fc8411c5528190c7cf681e539e0842c7491f2f43da28e6a1d379c21b9f68b7cfe6766b99d634ab886f451af8a2f127fdcab8d1a5a6feecf0740b4475ef", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitConstructFixer.php": "41e85114bcc1af8d2191fc318070a2b736bfd04709afbe9fd5f482318e8a2a32febaa844664be42d212a9a84c25d85adf3f0d6badcc09b85e45e8d337e2db6be", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitDedicateAssertFixer.php": "48cbd94630a81c98fab4779ac482a1932763e043e90d66e2a34c30046cbe5a222c4c7abc2ecbcbbe0559c60804345a6e04873f456a9df4175a8e89505461b143", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitDedicateAssertInternalTypeFixer.php": "acc5fc785feb7e121b6e012e43dc686f1baac80ec0a7bb920296c7d4191719d6ec3cbf5db1aa9bbea94b69e19a693c7c3d827f835f7cbd292e33fa49c76734d3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitExpectationFixer.php": "18454d5d33453d3fa156283ba851f2ea21d3322523c9c9fb570b4895ca2d11c6e21273b289f66cd7c0bdc05653a49be66107a80b7ef4f3b6599026460b872f75", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitFqcnAnnotationFixer.php": "3c5d779e36468cc02e733e2b1da8ba5253fff72ebc7be23d5b69d22789e66d79ef0765b9775ce7764e1710b3c4a8a4a00d1a2d356c0bbdfd7d3566e51ed2c150", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitInternalClassFixer.php": "d664debc6b29af689e948458350da55b26c58d2c3db69ac541cb90ca94fcc52ef4872e1fcfad4b49ddc67cc9a872b455b2312ec3e2098215c1cb4b0a1d24fd55", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitMethodCasingFixer.php": "878c7f1eafcba53e141aca20d0987f62a90b55cf146c3f38610fd9ef45e58ad37598066b35e4b30e86e73473fff69be382733ebb4674e9d9943db3c45e710a5e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitMockFixer.php": "d09956ad125ee076b8cddbe20fd5c9742bad5112582d74d80c5b7a804d6f09d795f799e1c4afbc79fea4383a58b96aa3b9e1229797b5f3c29118bb8a9beea6ff", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitMockShortWillReturnFixer.php": "404a5395dd6d11a42602f50a4d231207328a4c529174678d151553ba892d4f4854d49fcbf9ae063a1243bce11ef47eba74bb8aed4b498e83e8f89dae58e49912", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitNamespacedFixer.php": "19557f3403ecb363d0c69ec74469196cb89057cf27bb484c4833a0d516190e31d5e47b1f76ecefd24c926ecda826c38725d360a7394844b8cbd1997979562cb3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitNoExpectationAnnotationFixer.php": "8b0cacf95e4f9d868024c64b68eecec2e9494130808092941afefd6017f8a240558044dd81faae6785475b38d660d866e592626a9bbc0b49183d67f8c8ed7a51", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitOrderedCoversFixer.php": "118b406e92ce911f180a7d425afaf0e8f3b132b3f8504bbd9cb3b5d5a4cfafcba3d34f013d95627221fac50275b4385c8aad480ad5f2946135b78760a5fb3ccf", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitSetUpTearDownVisibilityFixer.php": "4c6a4735c406bffa7d953a424083029c9ab6b2b70a68a184ff26fce75b58524d3d053948172ea8148c4def4c2a0efdc046eac218fa6d78f14b11b5904e755c49", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitSizeClassFixer.php": "44e6c611e5b2139b136181e2c69596f1343a7c5f072ea342bf382ebf826aa280d44ebe697e510d39a0d5e0c8acaae30e83ef717b5e5f46b66e5fbd5c7a3f8047", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitStrictFixer.php": "d8e1db1100b555254a95f22453c30356a6a2d55747302dba18da538ebb6ec0450ad7e7b0d2f2b92f5acfd86694f5ad772da3501e6d2568aa044fc942f783b8e8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitTargetVersion.php": "c9c273ac82e69237fea254b99df94d4b54ca13c32fc44ce70291491a3ceb958d1dc5173dda3155a20dbd88123096a6db609b211c7c0fce4676ed946924584ae4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitTestAnnotationFixer.php": "c9b06d3e4ad57ebeec96bfcf005fa2a2e044625afa61f00cff5fdbf7b2dedd5977d9b0495120ca69ad86b198fa7fb09b15d17ae8f372321c2c745c807691891d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitTestCaseStaticMethodCallsFixer.php": "cf953c32b988abd4d64a0cd7ca877327dafef1e7b043f3ab2392f64158947b6dbf730e0690ac1148a78c200675f6598ce903d72274a4b8df745da4877b7bb2cb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/PhpUnit\/PhpUnitTestClassRequiresCoversFixer.php": "699c66d83a8ac43c882c0ee679ef5a99c600ab8fdc88f086fdadccf02fa91a22f9f57b1884ac9403f478e779b48b12cdc6555db979480bf5f6531b98fc58b4de", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/AlignMultilineCommentFixer.php": "af4ac2508d77fa80dbe727ff7a405fb7f1b2755b7b79b98394610e28785d2f6c333962023295b485415b28db52dc67191f5715f6bdafc105b9fa0bfa095acc87", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/GeneralPhpdocAnnotationRemoveFixer.php": "46d0e93fe9e3b3723f49947510663f318f1b731f5efc7ba18ad3540c8044b45f2fffb2740f8bee120e8a0c734aa88715b2a01cfa6a31ede1ee492d9b9feab178", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/GeneralPhpdocTagRenameFixer.php": "d52ee99ed0cc2884811fb0842d50499a1430157eb72143ae8e6d51aed989a228a68cc2bc5fc5db23647233df367de5884aa735083b570bb99f9de4d02163e84f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/NoBlankLinesAfterPhpdocFixer.php": "d0951125e3c7c905e9c42c54fbd9467de80e4905ceb2d78257eb4f095ea6322e5c5b1b1ea617d91b147e7f0d61070cb83818d7f205853b86562a1c515c292325", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/NoEmptyPhpdocFixer.php": "3211d490c455f4a05115401f8d09ade8ab9d9afa86943119db2e92adb9b51978167f427694a1fc2f4630bead13bff94abcf2f20e505120fcc70e1b9d41cdbfe6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/NoSuperfluousPhpdocTagsFixer.php": "346ff57ba4a3b1d158d3f35331c0cab538c073350f22e303ef0be92f678ab4ac0aac50cd0a8d032adc89861705c053c7798f600f50601b39fb8c35da1d05539e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocAddMissingParamAnnotationFixer.php": "aaefd9d8f29863cf3eb7d6f3e9cd22d290d7c518f9eb7a8f27bacca839d3b514ac506969ff7cd03d3682b911396e8cf7f3c4eda20fdd47ef91ffaa4aba64f10d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocAlignFixer.php": "06e0469656b7a1d4ab726bf645db68687c4753538b8f3d3e768d9fdc401e0779783a53a453f80ed958a60d662aef1d1a79854c9bd1948776facf23674cc75e89", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocAnnotationWithoutDotFixer.php": "f0ef447fda2781102f6b759485770ea590166c28c380877c32c33394daed8232dc0540bbb16c3bc387d0ed86a05e06e53b00955bae366ace1a72ce09aa2f9038", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocIndentFixer.php": "6fd44cd8a97a83fe20995c76b9ec308541e03aecbe35cf428cf6b4819c6715b35e0300f0f7b6b064998d20c93d4884c8c5fe0767e57dc769979fa18f9988e8eb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocInlineTagFixer.php": "3b53d3ab14a387b83fd9ba2d86105aa7228ae6d77a0c8c155b0a02a382f26176f654b644459e7bcfe0a2b9097b9ac2f7d90a86dd33b6b5be68a2b1cbbea7bd49", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocInlineTagNormalizerFixer.php": "26f4d471f591030a444c9155bd2f8910ff06904f701c4064203b87952373bc9b84a05533b78e4b70043794d03f97aeaa98be5c1e022ccbe20095c4c3b9589cbd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocLineSpanFixer.php": "5a63859a10fbd41b6119869c3a52d01138e40dc8fb0e5b4a80a4cd7d993029f5c48c42f203508d0ae5d034be9883360ce72d70b467339fac31b984db23f5bf4c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocNoAccessFixer.php": "673c45bfeb7501d45eedc11fb4967901085ac6b4fa667222981ba824418aa46101a1e17c229ab91375e5e03b6e3b1975da69dcbf3b805dc76caf3de75ba0a7f0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocNoAliasTagFixer.php": "50958ae64a9ae49b4feb249a3859e18ec5aaed5d89e91a630704643a286d4bdf6dee320dc3d95dac95c4e121ae46359d13f5bcf8219648c21e8f94cb93bec55b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocNoEmptyReturnFixer.php": "1c4da667d2a48f9d51f95bc12660dfa4f1a5bc202dde29373b3566e292e3a5ed0d9cd8ed05340e2efb45cd6659965ecd179d000a78e68f019b8ffd217a08aeec", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocNoPackageFixer.php": "d62807adb32870fb9f567709d1e875742a681239cb8d03eda3b9f5cd3291d7499c1808e55fe700f195a40ef75406b13b1f56c1e201b9bcafa41cd08d73986021", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocNoUselessInheritdocFixer.php": "2ef167d3296cb80a56c700fcae51788a72914cd4cf39f9d338e0f6e3ed68f072e934049bc997af3be6d0e0f571bc4864b2796436e2ae83592395cc1a68ebc012", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocOrderByValueFixer.php": "2d0ffdc9f75ce945d8eacbb17c834a03cf0c94d8ee4a06d0a20bb933844441a9a89855e8f878f8f1d4378fe52868665b93b44c0cfce259ca474227989a78568a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocOrderFixer.php": "49bfc87e68dc9a2c925c7113e56f853469ecc36ec90bb19f9cbd50bb64c7cff6314a6dbffb618cbd2eeece6c57126c049ff576846002753f9378f345b63e9530", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocReturnSelfReferenceFixer.php": "3d2277a08dcca936f30431831b4098692dd8eebfbdfea79f18d4a9e3152a16f12ea0d540114bafdf2f47fb66b5602c391cf2bafb3d36e15eec2a9d6ff5ce2c09", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocScalarFixer.php": "5f64ac3c8c8fb175ad28da6c69dda0ef67691124486ed6f2cdccea1574a1759f4b48342b176e780d22f234cdc6286e27d0de6ed49b4fc757a51b13b9cfb5a62e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocSeparationFixer.php": "cea1cb125fd467e773a19f41ea99821b95990b0942ef0911731fedb74a29349468b1c6cdcef69c0cb568375a3d7dfb80b3414e1369d6e020ccdc830e858b05a3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocSingleLineVarSpacingFixer.php": "2a43a7db2ccb746509caa3a4fd57e9061c5775a42dd25409a6f5c3ac1566273c86374b749ac4b4b32412cccbfa98265cd3521045ead20e2e9bdeed3145360ca2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocSummaryFixer.php": "96756e801b292b5b117cecd8a8c50eeab727ed29d34d60738db7710e7d8c89f42ff5322c2eae0aa311c257c405d2e1c6cfc035ff0bc3cc2882dd28c3b17e7a91", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTagCasingFixer.php": "fba54ef067277aea4ba63d933575df4c288c2570f0698da5d44aa8b75a13e32778af833628e351b05368c5137b0360c4553af3e7745ed15f242ee8ec666339a8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTagTypeFixer.php": "47fa1f829733d110e204ae39d1dc56a9421993fbccdf33683eab403bcc97d5b4fe84cd1deae57d227d9fd0cfcffca9bacbc8e84ba02cbcbd45d432e4759e66cc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocToCommentFixer.php": "16cce082e20e7ecc26daf0729f0c70e6e6f06c9fe875837d2bb429b996b3289a169547e22508b655b360c34e8a25346e3d116e59a0e7d364559c55bae0251fbe", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTrimConsecutiveBlankLineSeparationFixer.php": "0324254a1b844db987e6951013dc06394a2a84d011256c632cc0657c725bf75b201d4db3307177372d35bfaee311749962dfb2adedc18438aade5dc0e4668da0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTrimFixer.php": "4a691c864a225656734166fe46cd845fa00cb2790c746187208a6906a4f7594d108f83c748ff12e204557584cd9aa24ca030d2ed12df52899b5d541a89670e44", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTypesFixer.php": "6df079870f74d531966ab092b5bb050d0daa1248ea02d6a66900be07ae5d0e632e070234f61fcf829a4d4e0d403bd4df989e942e9c5600c3c61d6be262a87c9e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocTypesOrderFixer.php": "10f6e0f1fed37840f53ef2fa9e4c15c497491777ca9d7dc3c128e34feca329e3f569ef8c072cece67a25dec623fba8b876f8cec6182ec85d9b8cc173f16ca0d2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocVarAnnotationCorrectOrderFixer.php": "bcd25ef8479fd824500f6fff62f1e3ac1fa135cd133f66823bc359c82ba85f448e38bed0341d6668398c38ef1b6312040dbc90126527d8f042fcded0c36d675b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Phpdoc\/PhpdocVarWithoutNameFixer.php": "add9e903e6009ef037f897559a9e78420a1ad7c64c33692e1fc1517614f642a1157e9ed316f26ad46497b824bc5a807416e55cd8920e796c258d477ac4d8a1f3", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ReturnNotation\/BlankLineBeforeReturnFixer.php": "f43a9e5c53819ad74b6e238d6bfb75daa58f0552108dd62e09dd5ae12c3f11fff29f70af52aadbd4ab71a4b67a644d01586024a7c57082267690a130769b33e9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ReturnNotation\/NoUselessReturnFixer.php": "76bc179be19dd94632683f8af059e0f28376439808f02afebfac9621a1e3a529170ecf04f05aa95dae3dfe336c998bea2e3a05b714b967016515fc59244be019", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ReturnNotation\/ReturnAssignmentFixer.php": "40a818b1f512de03127ac858f9eea8920dec92c6dbf79dcd166a5bf0c52d8510ae5073af05427062c84f25600e47ea423d3319b742aabf3ab91cb51e1686d728", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/ReturnNotation\/SimplifiedNullReturnFixer.php": "bbf67cde8be7c456f5c3d1dd0a391fe83aad258a3bd3a26ed7d05c866e377b0dc3a4fc91e742b96791c532d0fce837541ad3148114003f7102e23d53b5c121b8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/MultilineWhitespaceBeforeSemicolonsFixer.php": "40a9dbfe4f1345edb9eabcfb49580109847df4d4d32c72b6beb2c8710786e033cdebd6244d033de7f023f4116a66183f00e18a9ec2a6a47431b9d3fc95371376", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/NoEmptyStatementFixer.php": "d9f3f07116f3227fc8aabdae71d548d1c03f7b31d550ead314627c6cbd5a5750cdb111f12fe3251ef9f85bde6362bbb2919aff6cae9ff30643b4dcb0f9d6c298", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/NoMultilineWhitespaceBeforeSemicolonsFixer.php": "e51282cdfe86e015f1e03e9f5e408eb30fb6cc141ef58ac34811406a00345cd18d5e7c620f80796c1e26ee892505e31d45bc78058f907d4d661ad23d4e3515cc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/NoSinglelineWhitespaceBeforeSemicolonsFixer.php": "d5496c0452b5368b886f9ccdada720e3bdd720b79346775bcc7e1f434f41b1c02264afbc94d790614523c7600a874ce197678e1d4b554e14165771752d4f218b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/SemicolonAfterInstructionFixer.php": "e35169d529023799d57859d7542d2fe5362e5f96f000145a5d51f2be0061a0e8426d9a4d865e63e145047e2631fa19cdac73b898c824e63f354af96e04a10ffa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Semicolon\/SpaceAfterSemicolonFixer.php": "c7a068b42255ce22cfa9e29c8518955781e3db5f385ff8e3e2e626b23c307018c8cda084523daa9c5137201a03de7c025bb93a39806531b86fd2e2a1ddb69d3c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Strict\/DeclareStrictTypesFixer.php": "fd8291122bfcf98b362ae8443f94221fe7ca234117f722d55dc01a861a2fc87f5caaefb61f2ea5954f318033405742f0a5a1d741a3fcc8b585ef634d557e28ff", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Strict\/StrictComparisonFixer.php": "ed3d6733c90acf5622a2d13917604dfbe7b163ac50927f85513092f2e5913a3938be5d135b3a0d6d1f6b0f0432dee751a53ce7371ce40c2acf5d655a56a9960b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Strict\/StrictParamFixer.php": "f70439066241d97fe752a8c9a1637b391c27a4ba0256f063468880b1c40c6ae706d92cc19c31c26e7407da118e5cb495d8063a5fa2fc1e10d9d23169f771c650", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/EscapeImplicitBackslashesFixer.php": "d62281875432c9744d9d096082cc913d6badb295ce7ca9dc1089ea3edc6e0449f6900c17908d49cc45bd34459dbf9e020f3eb65e9ce893d1526c98b3a05a13e6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/ExplicitStringVariableFixer.php": "67558405729ac79dba77bb22222147198ba4fa95d2ef5a2fa7af0f8d81c9abba4bdd5406d33ad29b794663fd085ff7e6021c38519bf0a72dad4b6f76cf6c8e14", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/HeredocToNowdocFixer.php": "34a93b94f2a96e1e663285bab807c2980a2d86e52f3abaa7337abbb1033217a5e1fb77d93501fa1a4696d3b92618b8dfa8a2ec3cf6a9de0074e05e287434e8eb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/NoBinaryStringFixer.php": "22b4f7d3ddc3daa28a8d86a7f59f012b12248beccd3ac2e1bef3d337516bd172b28644b7ef387d9de6eaef6152e2f89492a639ce132de5b1cb7806715dce9661", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/NoTrailingWhitespaceInStringFixer.php": "eec0ee3635b109b60895d65f6b87b4df39fa139cb1f07816c40a3529d67cd088b4f8e44b70105a59687dc45e25ada7f2a1ce1b4db03851806839f98da4a98375", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/SimpleToComplexStringVariableFixer.php": "83b17aab5edf5b9b62b54133fb379d6fbe39762c678e09ac94a5ec10eb978b126209abd8eaf1e28096d57b02fe82a45a8b63dae1af5d66566d56f18f77bcad1c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/SingleQuoteFixer.php": "fe5eb929a8f00ef1c002c806bde681427822979f76e9b2400035d5f58e819cfd97d9d7f88420ae18bba90b16e62d40f3f907e2a1863adf9a6e7423bb82e41aaa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/StringNotation\/StringLineEndingFixer.php": "ccd20489edb8e8da84609976478cb27867d560ad0d07804650686dca694d50f42f5c644ed823c6954cabcade7d8e0d51616dd2d2b5423df5c5fc279bfbb3b0e4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/ArrayIndentationFixer.php": "9c1a636ecad4703ee13694dc06d4a9e829db6beda63dc3a2c95be8032de1b0ac00969c366d68b007be40ba68743c113ad593b18cb68fee1b2a15809ddba920e8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/BlankLineBeforeStatementFixer.php": "73da103d149467f2324ef5041b65d067926cc1960926a3762a3b49372fb767b0e05bbfd105dcbed987953109399006dc57141ce0d91255c7c682d75f2c94f344", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/CompactNullableTypehintFixer.php": "d79fad76640c1ebeb7870b1ed3b60d7f8d518482cbc4f085577b181473e0d4a3f70684f76dce6cd46d0b49b85b92f7f251fd6ffdb58bd21b538a09626734893e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/HeredocIndentationFixer.php": "32edb57bb6341e01164f8a454a9687aafd4dc784958851cbd2adeb28b5b3422c88ec26ec588de73e4c4366dc48ba4a97749abf5171c550a7dbdc96f68e3d4fa6", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/IndentationTypeFixer.php": "4117b0d3f1b417e5d86dff002ebf68a1735d8335d1a98e49f2c00cb292748d9be575e2940df22befb5668d339d88257d4dae4244ae063842963025778f02cdae", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/LineEndingFixer.php": "6e935e9c5fc841568ff887e4c1cb37835fa4011350243b78e9bd58cf6058089bb973c0579718c1f1b4d6ae49ae8b038667094993d68de0a6487f5dc25039f142", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/MethodChainingIndentationFixer.php": "f3c9ffddaeaec7061e0b0d31034f6318dd05e388e8253ca10872ab28baafcb4156f991438e6040e33589f22d43508ec7ed559a1e1706a121194a54efce7f9296", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoExtraBlankLinesFixer.php": "9e9f3050c54d96c530c6a4ee3b0f8d5326a1e5a4b09f620ad8fe2938ad7e6054a726e70343175647b1e29cd31f2e552b821a9ea13bdff04e6439d58a41029138", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoExtraConsecutiveBlankLinesFixer.php": "5068cdf65c9bea3d9bfef397a61fbf881dc7f889fb411fb1c48a65c2f58d2a38a8e666eccd13bc032f2fe6f2b1629b7f95a5a0b282c56aa9df3ad83f1aa9994f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoSpacesAroundOffsetFixer.php": "4df50d0e34aefa1fb056c8251ff7a5ab49c781a4fc3e39cf0ea3d53a28d2045cb3dffc372b55fdd9599017aaa2488baa77ddefbd59998a9303f90447ec92efbe", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoSpacesInsideParenthesisFixer.php": "f4609cff79a36899d49d8cb9c4c0f23640f61f64205e5ef29f729facb87dcd61c01521ddd701b1d4be27b0e4f7905dfa6f5e10d8443d9370971557d8f1305168", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoTrailingWhitespaceFixer.php": "f461fc7312f245cdf1783d2a667c6802db03285d1e0ffc8364271c4265459b3352a0ac0c8b1e822883a03fafb0339f662817069a293268995884807be03565f4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/NoWhitespaceInBlankLineFixer.php": "71143b726c08765b294b59570037f4cf03543ac33eb435f46cee3e046c8c2d171138dbc338ac3a1d3da4b3b98273720384462d6f11030a3c737336e8bb320188", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/Whitespace\/SingleBlankLineAtEofFixer.php": "8a62c69797197c189691ed5c73c67a73942ea828f29f9d9bc828a61df4ed7b494aa9fb3a8a6afa22e27ecf7cd33c2e009ee284b6891be532dd6a2028878e01cf", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Fixer\/WhitespacesAwareFixerInterface.php": "5c308bbf4662350c6715129869c6ee9c2d2a05937a1b13ed8f457993288ef16514838a6c714586c26febbfc0c65c345af2fb579b6730de5fba527b48f6a9bdc8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/AliasedFixerOption.php": "94902fd1b5bb2b0851929fdae04345ea4855150ac201825d81b96952597a9a1030bf2437126ed484280bc8a798d7fc3c5078acf3bb31ac76b1ca959aa384a36e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/AliasedFixerOptionBuilder.php": "7f9d178a47f0fd5a1d09dd1b39735a832ebb2ecea1635bbfd8653bfa9681b9018ca801155f18de69995b07b3d810da10099a0f4fd912d1355fdc030d94179979", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/AllowedValueSubset.php": "5c8b23e8d0cfeb18a879595beea12e6791a281c30279f4e3a5c98b80b554c947cf79f13affa68f16ac697df8b488b3470aea913ab80c16b28c0d4e975368af85", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/DeprecatedFixerOption.php": "b6692e16c69d844782b833b6019613054fe07963ac8be577056d46e9380b62b1c3843b4b47b45ab237737d13f7138d9b44ffeba6024fb5fe63eeb57ac298e03b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/DeprecatedFixerOptionInterface.php": "413891affa8d2cf80e9873859187bae7f53bbf005e6b52d49465fa854eef241d42b090d1a360b56e5d796e35f7f05d9bba49c2d58f05756a8bb48ad8f47bdbe0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerConfigurationResolver.php": "90ca552334ca634ac9c0feea72bfdd0f05c910f5a6b5e5458981e606e1ba93abdc11b4c715a6720fc29ff468342ac2086a82dde1ae67640c603b0e8ce65a62bc", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerConfigurationResolverInterface.php": "8e3f7166121eac66a0594e0f48581409a9f255e49509f802a632881af6587f48474ff4356e86d001b33b276dbfa4d637e6c9a2f2e62dd6eda9f4f952c5846456", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerConfigurationResolverRootless.php": "aeffe2b3326d68487fa5bf761867db3e948c1d11cbabca0ba5936a2f555f374f03f3b226ecb7a5eacd2b80f62a86e4d470aa2818af0ef29d566db7fbbd263433", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerOption.php": "0c9796a9d541d42fa24a4db16c7a5ee332461736bdf440b7c7e976586d94f83463f19df7216c38294e958e8c6dda5ac156f4890fc666fc209a2fd85be411095a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerOptionBuilder.php": "9a906d2c58c5802bd11ed983d522f51a70b1b3e6c71020c71411e29a15e7a564c4ab16eaded4a7c846475c67f3d16a6e678ead98660fa3f48181d3460e43d356", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/FixerOptionInterface.php": "0c4894ae9b6cf139427fd0550956b43ed4d3c33eb5c2317edcf3310dac2113fc51b38bba1ac681074cfd055e0d2aabf6e7e51d3edc6430acc0423fd18e6a215a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerConfiguration\/InvalidOptionsForEnvException.php": "53c69249a3a4cc4c2aaac48d1b5c8b31c0983dc9c0fd316fc0bcefdb474492ef1eb2edae194097d5b922e2579e9a8ea77a95d3dad4620baa6b415d2cf86dc1fb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/CodeSample.php": "472defe0430ffabceeb8b2e0ad152f43ebf3743957f624f19fe42aad2756dcc3da44fdb7a73b45b211ccc5843240c4614de184b6e386ea47ceb0d45e0e6f1c5b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/CodeSampleInterface.php": "ae44a43e9b23ee86b804034d5955f634dde844bb343a932f2dd792c51684222c4c75a8ace543cfe09f405c3489db245ce4e42e11270cf25f2770f37b563133a7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/FileSpecificCodeSample.php": "f02cd9c7e76766707dc46755f2740d5b17f30deeca22d4dbb295815ec0abbf3283eaa4a4eec51f8382749861eef9e9dd145165830cdce9c9568e5475ecea560b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/FileSpecificCodeSampleInterface.php": "d61c73fbd0639ee6e29f39d23f71bf6e90cee815efbd13a56d173740a1d5f5ee358089c11cc3eaac5cadb7f0988422f1e1483050444f6feb0b4f079fd9380d38", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/FixerDefinition.php": "2b5cd76bda9fb62f4ce6cbdea31ede41130da66cbc1ebca6b4695ed6181343fc7e28fd9aa3640fe29063c590d700da70f9335e5687029c8ab3ebba96bb5a6110", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/FixerDefinitionInterface.php": "2119d4b6394d5d171b4ff305274f1c34510ed16dc90ded8856faef90602fe4758a85ab7366217a382a76363651e79bff699c442e350e9dbc93893939364f01b4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/VersionSpecificCodeSample.php": "5f5e018a103a6bf6b8d61e1b0d2b75f8ff2d12265ef24765e87bd33b4f23ad16e8033b11585cf7160715ee67bf95a8da099e7b7ed97001f3865cf23c7dcbe061", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/VersionSpecificCodeSampleInterface.php": "27e806d034b75fa4e891370263384bd70cf612c5463d0d15c1e94d90d3e01557e05a73a60f5552ab4f6f99c0ed92ad9097259895a7c840262f39b2e5763dc736", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/VersionSpecification.php": "4f03674d36fcfd3abe0283ba91dbc712c475e6166434fec9ed687bae339cf3a3c87fed3cbe4e6bb7dd58ac7906c43b45ed9553ca3d07a8813172267cab50102b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerDefinition\/VersionSpecificationInterface.php": "8236ef4a5deb800beb52c739468e5bfd694a1fb82fcd172563386d3e63b9e8cd3d6dff304be7b8b938953ace5d3e4b8b82962afcd051687148793455c3efec22", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerFactory.php": "7dd22faba9e26d9315578aa296ea7e1aba00f0c874210483afa926deca574f207117e702d8bb8b533a588e894d3d94b9cb0d28acb32030553cf685d1a3282ff1", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerFileProcessedEvent.php": "ed21da1cb5ba1851f57f9465ff8add69da2f94648b4db2986164310b39353c7cbf90704ea4c11d181e52fab9ad963b2be672d974183fbd066a3f965f75028a83", - "vendor\/friendsofphp\/php-cs-fixer\/src\/FixerNameValidator.php": "b78c1f8f65e50227275880dc14d2edbc0f4b59516a4040b89a75d8925f3cabf28fefd7aafc71798525045a10c5b7d9887238e134afaca18211d88707f2be085a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Indicator\/PhpUnitTestCaseIndicator.php": "9107a5ae4d4d3d80f6f2c15c6172d8833dad616dc42dc409bc4b2662e927ce709211a9ea0f2957ccaa29c2e0209a8203a817257c384a794a4fc4ba92831b75ae", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/CachingLinter.php": "497f3e9c45d40dee97c2eee22bfa6584a0edee768940c53b4071ff52b14642e2d7c6d72efb23f004f67f64e6a38eb55b403e37cfd029377c716454b62255d079", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/Linter.php": "9947a943acdc3a15f09c18a410781e69b5ff47a998218400cf8dd35acf222204ccef0b6d55019707867ef7999c540a50b0c34aec11e16a7761c6471598885cb8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/LinterInterface.php": "879a5aaa8fd26994d14e2eea7f9a8095e66941d591b671f74ec16d803d7971885e183e873274399bc05bcb90e643d8cf2013cb89cb1186404164cfa3c3bc1002", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/LintingException.php": "ad2a53b1cd4573bf22ce2cd3a5b2577d7e702034c01e3acca16cd1e9e6583f7001db02474f53f82e5c9f5e2e7a7c3b71bca445d7b21c87453c4bd2a30faca0e2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/LintingResultInterface.php": "69cc1751ae203cabaee558145cea87ea470f12b47cc3b17fe30a735fccfb5398eea011a023226357a88a719aca0f9cb5a03f2d8abf1a1e6045dcc291ac2a2188", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/ProcessLinter.php": "5b261d77ae1ff3c299e6dce783a029179d985bc3203118cfaf5b9dd9372fda8a1e70cf0895e56a5e8fb5e950d5a2a55045c218a7f6a133ebe832fb6237c9c9ea", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/ProcessLinterProcessBuilder.php": "408daeff5e93485bce1dc243340395cb726fe70cbf9e848aa710dea34cbe16a6b325add71704865e5d27b42ac35e8035db195f48b4874e1de1a4c492a8e9d5da", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/ProcessLintingResult.php": "5ba47c842a76d00f9c8664ddbadc6ffec7bda7e8231787209d370aeb8a41005212c4b599e166dc5f1c00cb8743475ff3ddcc284c3d3da36416d40feef1606314", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/TokenizerLinter.php": "6c19f40aad5a3f9825cccf76c19980c81eaaceb95d30b3964c418aeb3ca573645fec55e37184c1d9ffcd67597dc0f7706f77d638e0e8bc8181b925e920878f99", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/TokenizerLintingResult.php": "863cdd4c16e21897b78c40f60f25ae1c2376ad13f57f1bf7482f71891ba1858dec7d5f7499b3c8ec8afe8347483e0722d51e0e548a392b2d67e0d778bcaa042d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Linter\/UnavailableLinterException.php": "0ac8e9ad68973affbeb1b81c5a65c17075a32a577917fc441c9ea46e878d68a18e505235456ed7a7da39e694ca35cd82c81f5464f76dd9abe273dc6f8abb9215", - "vendor\/friendsofphp\/php-cs-fixer\/src\/PharChecker.php": "b9f55f56e299b09aeaff54d357adfaa6da0666b0b0f1c143c054fa2fde3f7133acc235c1d096eb15428744ba32052fdfadb72ecdf28d75f103da3b9172ed0df9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/PharCheckerInterface.php": "e3a67daeef8ab29f19dfe1da153faa56bd986f6729d8d0cfa05a57c833604e5cd82a018a9e8e01612317ef92537ac78e3f2ed1566b86cb1d3e4f65c355cbe6ef", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Preg.php": "4703015cd4cdceef1d7ea9a17f5c6493c5c9ac829e0167378ef046dcf33168dd410d805fdcdbae9109f33350a1081fd240a14daa7d7896d5154806a5f400a20c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/PregException.php": "5b0fac18b8a29f6bd3b0533e23650ee36b71a7418a45f7b94559b42295049969814aa7ddb06dc64021979f4bb6ab3992ffe1f8b5571f90d5990e3e5c47c8dd25", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet.php": "17bf2b607fab4e5dd920218ff17eaed4c4a33a4ca08d56598c88457099353f3fdc1d472d393b831e18b1094b5c063f3ebc8ec1c5fecdbf80639b5877e5121941", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/AbstractRuleSetDescription.php": "d9328346988382a134e89a7c5a42f4c3036bc30a78b174bde28b4716417d88ee64b13e53f622bd1576fea434f6255754359140b4bbbed73a20eb0241d707b6f2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/RuleSet.php": "8763f5cbea4b2499a5f6165eb5d31ca5a24bcb29f05dfd94508c38985af6068e1f3c5e15268bd8cd34ef85add2b72d3257b5d4ad7b63f77ef603026898c1b9a2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/RuleSetDescriptionInterface.php": "a8ccd4d0d18e33013bcc37b8f6f95393a5ac8f7dc11e013b6e5d06c0f98e818bf1a51b2fe22db3f2e6263329d9e45fbf7863935a3a30de0307e2c1c65688517a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/RuleSetInterface.php": "bc1aaa3afa813fbcabf25ca169d70eac808b1af23610e09f6ae40de1e201c823369faf17630cb256645bdd667af520a77882d620f0d112f95fb0752e17be3842", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/RuleSets.php": "5c3449cfcaae8c580c0fe3843405e1edc09ef65855e8ae49aef0ccde0ea6e07374ba1309bffb730c024d74662191bfe77401eb835a9f838e5781d66f024fa666", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/DoctrineAnnotationSet.php": "1d3e086f54493598448c2b27177321e65d0ecd9c521f7c92fb7ad3d30333b93875bf383bdf985ca1847794ef074ac8404bd97b125d53e72e040bd19ff0bf9497", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP54MigrationSet.php": "145b8e74c8dca2b0235bf878a20adf55a1b468fac653107e1b43a46d4b524b96383b50e35f3d8e292ad56cb966161f5d3194c63c667d786c3fc9ac86e6d9c9fb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP56MigrationRiskySet.php": "c598656eccca621263bc7e95a7876bdad2ce0cc24220706b635dcc2e7127a8a5162e51460deebe66ba4911c069404a35ed07c99c43e52452dbdcbed0e5da9689", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP56MigrationSet.php": "b8a0b70018be299f38fc3ceeead60ff5ce6a4d3ee56f3ead34a98d2c31205236f170a1d894efb9fc416da9ad7f18a43b5eecabb73aff7166ab150573cf2f5fde", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP70MigrationRiskySet.php": "6f09ff6ecd155ef732fea61dee34924bbadc1b556d05fc065682ef43577c3f136672feb3aeb1a87f176eda370173b224214c311f2e91084bb1c0a11e9d9ce926", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP70MigrationSet.php": "0a32d0a4838a8df8e47f87f5e648c33503087e686b401ee36bda9a33c6a764ded853feab1ccc4a38e4779dd6da577bdcb217a6a0148220448786621f87dab0b9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP71MigrationRiskySet.php": "d2da8ef06351d9adec8ef4fc7bfa48e5461d100abfa03af31c0a37c4aa50a1f0a59e4e6f3411f99c273e047e295774f29a7d3c07e3305b2a89e38b62ca62674d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP71MigrationSet.php": "af6a095c90090d2a6ba95a23ff30090dd372e34b4140eefec48f1946aa4acab71f7862cf72677eeb6e58ac30aacf831a38d6c28fb1848ac8872448eb94bde2bb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP73MigrationSet.php": "706be45cda6d2b132df849b36c633905c69f4bae02052be25aeb9d1d05c2c21c4321baa1245a210400e7724944637012935c0fae5491026341a284e87756064e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP74MigrationRiskySet.php": "4a31b8b632d0bf38c6e4f44e789656361da0158f599ad2ef22f996768ff2597b07b2de334bf744e9a1396e1bba491ab3d3e04a51420bcddd27aea6c53421021a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP74MigrationSet.php": "0a6ddd3afdda8b408c2a5796d1c420249129ed2cf68eb800ff2458ee61ea8eaf6a7beeedb08bae8c64f8b8bd66169eef4e88a7b31fa01d9aa97b6d084a84765f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP80MigrationRiskySet.php": "30e5ca9fce40f03ac6a1b3248f9fd9253429dc257163edc6a787b1561322148530fb1847fd211cbceb7c1a3c0a203dd47401f341458a23755bff8802a5c8d6fa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHP80MigrationSet.php": "c65ab439ea4f2f30e1c0a72fd132d92e382645173f26b023d5f711d13cd0d4ed43ca83678b578a9bfd54e515cb1a1ca586c87cdd54a21551f3a96d066d576354", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit30MigrationRiskySet.php": "fa4050a88bb61674984f3c667f440d2b814d06fc863eca5921d83904ad2aee51d9e0ed22d328b285b6ac78c2ab0cd88b3e948c699960ab614644d6ebe57cd6c8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit32MigrationRiskySet.php": "ac7e4a8a9f40cea0376cbaac529e6a46ea3d20e111b7d57a59d2f79eb1cfa6b34cf9849c3aaf215362bb8e20352cfa7edd4ce10639bcca38814b0f9215b13f07", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit35MigrationRiskySet.php": "d9a10be03cc10598d47a494195047925ce22ae2ad1ab8b2b4a293a8bfc4fdec92257b9bdb997b09322d8e9c33240d34e727ab86a4dcca35c4cbbbba713c44c85", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit43MigrationRiskySet.php": "ebb5f3f12823f01f6157c47f14d3de1434561657401aad40608eb5c66f628f87b3bb12983faefc6b3df8daa00cc560640d24027b36a9545311c273208052ed39", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit48MigrationRiskySet.php": "8efeba064abc78a1b7ae2c2ba35d44c593634ab94ded0609546026dfa4e627665901741f2c3532ecd0d40c722075832a6c36a45b8a95c6f547cf3996bf273fb2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit50MigrationRiskySet.php": "e475fb162942fb34138b10a7c9ce8bd17772a4e724f232b786d94104e9fdab3d0f41304b5510d6e32c99adcbc891a67164d77fcf40f2a587a33240ab888a113c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit52MigrationRiskySet.php": "7827141518de197b4b50517b824824c130fcbd32ca43331475a77bea7eedd9b7e1d1cee209b583de13c3804c8648495b10a9aaf21b95f375367f74b1912de941", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit54MigrationRiskySet.php": "a605ee798f71d06df81e2f83999b0a67cade4492812aa79627ca8f67558be6f543665e8c5ee28963b104d2bc0d8d0635082d6a41ada6afbdcdef4e359cc2d2d9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit55MigrationRiskySet.php": "ded73592fc1b92501e57544e365f0deffb3d7e91243f0773b8ca9fc5678ea106f17800884be68ddb7d7e05dfd6dddd96de2d6c7d2dca04af659ca5cf84cf636b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit56MigrationRiskySet.php": "83e34d959a9088c0950e5b12e2073028b41d389bb8fa6c40a9e3aa82940d4571d3ce9c6573707e54717c39fa20ac1beaf07c1a1e58203a706fd5861fea6a301f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit57MigrationRiskySet.php": "574eec7320d4ef87481e41681d13c0f7a369c910d753d966b9fb5b53db17228c00706749de2ab18e25a92f93b5b29d22568286697056c9f33eb4f4132e7d1864", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit60MigrationRiskySet.php": "f8c79c9e8cfda58d436682c51ef7ccfa4809a3260f05cca71eabb9c30a6c6f65db4037c14ae0ca1990a56f5ad00b2ba00d97413c05ff77b9ce3a292542656f2f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit75MigrationRiskySet.php": "58d98f2db881058b89d329784b6bfdd75b3c91ec50a4840d16506c71155075e04f08d5e4b87a7d68826fb870474d86fdff3f74e476e7e80d269e8b020ab1897e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PHPUnit84MigrationRiskySet.php": "7299af03a2df90776c0a3c47f80597309b39c55bab4442ad1b8b569e22168baa79939d5b738e69d408fba30a4006eba394fdf330ff06828ebd056f7e39c20843", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PSR12RiskySet.php": "85af75c613e5f92e3e891634c4aab281473836be4c0752628c82352f3dc4577911f2d960d6b629345c4a324e933e64b269588dc71ecf1bc5f22f793cce845cd4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PSR12Set.php": "65ed8696f8f60be4e33f4de32104cdc7f1825fecec7e96346285dd1a25a3d80c4e352e48466be8945d13c78ec819bd70df0385311a838da0c9bbcbf7ba704cc5", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PSR1Set.php": "09521ef875c1de3aca740114e377a46e29c4677ae73d5f4f83adbf95c1983319f564782a1b91355973c4178c6121210d368f143743a8b8bed83cfb97f4e408db", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PSR2Set.php": "3f977fbeaea20ee93dcade6d599be6e4ac8f47126ced3eb7d3e6834ac27b5c9ed2d464df03e82563b19ed8f2156f0d6aa748513ef96491fb8046bb052888c12e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PhpCsFixerRiskySet.php": "83aabb26b19b2c52c6f8f81818d0a574eba7378cd6a0e455fcae7e3af1bb8216e7a32080a35e0f6f5d103f1d3637166e0aff4554941788f917c0a7b7f3a06651", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/PhpCsFixerSet.php": "5a1fd1f5a283115b921b9d5c7114114d674c02fb4b2919496847b19396f2978c1158dd6f692dba638c1085c0d0206a4d2da58a53981266e11576fd3b87a36f1f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/SymfonyRiskySet.php": "4397fc243f0cc1f6414cc671ab89375f5619c5b84dfd7faa7e6a357df6ec4f2f88c2e951b71280eaaf31333683a67e14cd0642c64f8e3fdc1c3401121ed3ce9a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSet\/Sets\/SymfonySet.php": "a8462e07e19978272084b0ec3611e2dc9c0e062ea1bfd16b03cf9ad13cd8b6e89117611caf3795990ba722814045656dc460779937708701a72471e1194b8bf0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/RuleSetInterface.php": "42ab8c939c469f505cf9ed1bf766f7fab89b540024eff082e94ef6db665fb66a83c0f5d900a372ab11ca6f5b38858a55ecc8c9ede6dfc1df5a9b6959daf905fb", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Runner\/FileCachingLintingIterator.php": "b1508168b9f19d1dc0724aa2c0c762b53535de6e8d407b341fc2846dd8ceb47338c55c33239de51f6c7403147eb7a2745b5df039b697e3e260dd03e1d88cc760", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Runner\/FileFilterIterator.php": "715a06c9d37c054243212f5d6579bc265f4819fc7843d362f59dd2e66ca8e49aaf2bde465482cad5f9f48c52997085950d81db0341368631e550e7eb6f502667", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Runner\/FileLintingIterator.php": "8e7989651508a69c8198aebfecdab35f1fb1c59b2e53da4164e74396f8e84b94163984faf3fcb1c1c37d56b0b4795da9ddecdc63c314c7eae4fdc31dbf433d7a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Runner\/Runner.php": "39f1baf27fa45b82f0d8750c476242262c72d616447ad2ec19874848a499ba04a153d13638762c5ce4447c1a41330f5b66b431c0cf08c9987532ca893f56675f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/StdinFileInfo.php": "94f56a6b15075c4d7f044f495831725c6c89b1fe41dc96eaebceb2c260690bb144a5f75b8197ef4e622292543f840dd4ad1fad1e762e0a1ea410645e4bd23b99", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Test\/AbstractFixerTestCase.php": "43d587dea483e1ee01abde209a1f148c860b75dc00b7c7c35685d0c8a66d2cccadcaec6a20fded3263dc94e04a2bb7ec5e8e28f4ebdc444839c4c9e73bb1e82d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Test\/AbstractIntegrationTestCase.php": "b48c609e720706e5578a2658968a75fda8219502d959e0fb057ebf66466ca423e6cd9a11574d482c6859bf27ac8635509db6afbbbdd2cd12bdd41a951201ee9a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Test\/AccessibleObject.php": "41e9615a6f592265421a42be499f781664ba0885933e4c6205b4b3b0dedd223163bb36e53f941f210d3b60b5b9f7610d0fbf944037da15885d8f6f10471ebee4", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Test\/IntegrationCase.php": "8e5ba933982051a512251fc30d497ffc807d92d74ca248c876158c4e97d86c968bf34faadc2a4fc798ba750b9de9ab64ffd54a3e000616ce810ee28a3e89ca6f", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/AbstractTransformer.php": "f1d9edeb2150eeb583bf32a577d89223d90c66d30adeef21bb2904b42b5fb0d944b71c94b4bd5bdf1927765d886136308953f63554bb15d83a04115d6f659c2d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/ArgumentAnalysis.php": "8993637b7a0842ca85f52059265512d83cf4d76ff6787b45b341d7385dddebd6bc735da42c9d88a7fb0069dc380f2a32cf9ef266a57c18f2d810e269a7b4dbd0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/CaseAnalysis.php": "7722a06da4bf3b604641eebc45d2a58089a543c5b9f6c215b1eb79850f6f5ec51ec8d6a7a01b20357b629088e1dd724d6a05a291489ff89421f46420cc892b2c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/NamespaceAnalysis.php": "002848b5339eddf80d0b9dd61bf19896a051a0f6f8970ed86138b18f12733ce91a1a91b852d23e0dc4ffd1d77d6922cb1418621f5b9f89b0deb386cbc5f814a8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/NamespaceUseAnalysis.php": "e2696649bd620008801bfaaa78afd20ec2f42a077ddb86507c8496a19993803cb255d5d4bb4114a11f89d5fc4b5004617317e78791d1c9b69a54a7900eb84bcd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/StartEndTokenAwareAnalysis.php": "09f1235e5b031ced762870b77c554065017d1f1291df8a9df7988fd22ecf60d0d14ee05e8de5cd8f832dc22fe47d0dd754667a41c80360ea0cc1451d65f836e2", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/SwitchAnalysis.php": "0dd5fdf452d076da75aa5edf42ad287fed686cc58eb11513f060bd9ad8e1a06418f0ac4c4281c2d8b5d21ebc56685c7b3fdfe05e9c64ebc87eb721830d60581a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/Analysis\/TypeAnalysis.php": "807feea712fb9f3d108cb5a487b62b67703e8c1aeeb7d715a5823e5db4132f0072d739e7305691fadf39b0542278b4da2775fd0abb0de14fe80c3f4dc85ff128", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/ArgumentsAnalyzer.php": "6e13c3ec34358caa5732f7507eb1aa501d9d04c8516332e87e0d7c3da60666c55e8512bd4085b92364a5cf8b2180d6fe8c146351374d8db6647e9cc6bce90e36", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/BlocksAnalyzer.php": "13d405b3c7fc239ec6454dc652211f0df6414cfdde85926882b93250a6bfdc4f17b0c5f6aaacc46a1864b9244d0d5d98babe3db50e5cc64893330799a03ecb74", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/ClassyAnalyzer.php": "732a0d7ef25891fc44169f86580b4f15cea8ea81ff5664e40d76422425f708401bb90ae3dfbde1aa83f46cf38a6afc6ea8707b7c03d296afc596ed08916f856a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/CommentsAnalyzer.php": "5be4879bcfdc4a247ca8f8360bc6ab4ce41691042478075c3a4608cb6770d3d1e6cf702796c42c852dd4f196a21c832e227dc4eb22578bc4c071cab2658ca0d0", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/FunctionsAnalyzer.php": "8672bd3d9747972fe591e39f7d4fbf324d6b5060a654838feec3d72ced85669a674b36b1dc2a35624d4be14587e46f3c3de469522fa96705604028deb1960b26", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/GotoLabelAnalyzer.php": "ec8cec831e9d2ee188ce70ea45c4aadd42ec3c5a6d2f982832d1dfc9812743467a679110ce18b68a71e092ecfc19e919ab967902bf01db0f4b33d01954691843", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/NamespaceUsesAnalyzer.php": "8bfdad85c3f32bc781c47cfaed526359549ed7bfb85e2bcf976d4b2ad86289b6f8eee1e0af84e6a54a124b29633ce75561d1ef68b02ef76ea1799ed8837d6392", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/NamespacesAnalyzer.php": "56304c754ca9653942b56860d96802cb37eece50bf967663b084dc416411af072a01e3045e99a1e2454da40a84b63335c581f9b5b4bb74a23c0c4cb0439e095d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/ReferenceAnalyzer.php": "ac96dcd9c0f57718bf0aa407753a0b02dda77376c279a090d0e4b8f0cfaa894f5d57abda9b50016c94fbc69bf09e13bbdf531f88892c3ee4b290dcb6ca157278", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/SwitchAnalyzer.php": "a76404359166ae64f58bc73b3755e41174af1a9e2a3651fa9e915209cf4541eddc3b85b1d6c89fa1b200d025bdc103b48a193d9a6cc7f14847645a9cd4b72441", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Analyzer\/WhitespacesAnalyzer.php": "e0090d102f48ad2ad2da5a3bd41af27c6c21817af79519ed0b50cf9a8b12301eaa3fc6d0739bb310bed02fe855621a43f80158335820f2c0a9fb45739f0eab99", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/CT.php": "41fabdebba671a9418c63555843e00869e16258477c98ce3aa8b6edd1493beb3eb17a56d0447bc8889664033a3938f40c4ea756c4813924dedc7732f37efdc56", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/CodeHasher.php": "9d8f79ac19eb9d2d784a2948dc592dd0ede7faef465f9c82f001fa9526e8f4f329753549683aaf3dc852e0911a8b0ce9b40cc2fc44c6df1688569b0778ea9a6a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Generator\/NamespacedStringTokenGenerator.php": "1dd708dc41e9f4e4a32acb19bd0d2dc9767190c484fd5bb391d31bf50c5212b182e900e65a87d4edf9de16e76f34079116eea87fb43d02a82fa35014a4315704", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Resolver\/TypeShortNameResolver.php": "c621aac9eb8b11dc4414df8aff381527349c94ac88510441ae1d7d396b51803d4ff3d9e6112b435fa94f7770d9aa22ba658808f500f6cac3cd0b29adc4c7244d", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Token.php": "4bd7fd10aad13169eb9ba7e6b4812bfef119711d4780d1ec830f16fed7c37ae7fef4e0ca405cdfb0cd0a469152c6ebf9b55c9639223a4cc7c32b40087f882afa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Tokens.php": "3bcdf0da96b62d1f899a812b3164cfeac024451a96448367123166da5a87e52411a8f9dc7e2e968813bc17e9866a6dcc32ed442e5f64182a4a0582fbfc995ffa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/TokensAnalyzer.php": "9f55eed75d1cc9e78012149432a3ff676967953964132ee236ea3f0b4a3928ac3a24b87759edfe1fb5740af874cf252917aaca0f71709224e37bfb068c0059e8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/ArrayTypehintTransformer.php": "bf382364a985982110adc80af48743ca650480b466e75b07bec9ac63b1f427bf1d405aa269a48c56752928cbe982e129557ca9edb783a52b4ad1092f4f3c11f7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/AttributeTransformer.php": "1497c337555adfbd0f36677e66f47e7cb21bff0c5192182248bb544047b0edf7cb6cf94ff3a2029272efebfb45363944888d2e7e310e31f4a3a2b74b99a742ad", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/BraceClassInstantiationTransformer.php": "cddd0dc25c0a7c11f1cfcf56d3550daf936c51dc8de2496c96f313ae47e573c4683eaa009615abf86d01e0f4b8320295e7606e0718a95b5030e52afcf6a84dfa", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/ClassConstantTransformer.php": "e1b1035f7ef713aa8a7ce513272ec568eb9cc9511eb8db730cfb5fc35776ee21c64eea937a6e2c6924f278b94d1b7fbef95faaf6ca8177eecddc236178fb5dcd", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/ConstructorPromotionTransformer.php": "6e539d4522ca2fc81c8e5bd34a48d2a882379f4d2630df20df408e650d2b64d2b86667b56e3a2489694fbb5a9ea3741479894baaadd360f6e1200ed297317540", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/CurlyBraceTransformer.php": "16ed6d08c4ab09a6795da21f624199fa2bfaf73d41cb108682229142cfa66078be3cd0d2c2c4b57362359320121f34a24cc0a5bd327a95405bdca3e32573f719", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/ImportTransformer.php": "c25a3c214f829ce23808416a25cabd43a4f7ef19bcbbeef574626ec554b57d7f3d730687068274c1b956fde59c38b690fe904bf66b711de3282906680485ed7a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/NameQualifiedTransformer.php": "c36349bf0a513a411fb796fe4b49ffad5890e3d16fc9bd32bc58ff5dafd39a70abdec04bcd9a17cdaf3f31ba9b506acb62a8b73bbdb954428cbe8b41689dd54b", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/NamedArgumentTransformer.php": "6944aec4583c8f591d5ee38d8db48ff007b3ee6ae7d4689f1e41d54ecf7dc3d0bff2d08f2589f0c92c3a3e3ae34acfb19b3006abf9c8f1344f00a84db3904c60", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/NamespaceOperatorTransformer.php": "81d5f810d4aecf7c13776ddd15ebe8e90a089c3fe0036e9d9551902a6e50789d9d0b4ea6da91e8a2f813816edfd71f5d24688b3fd2015e8e22a57b5286e1ae7e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/NullableTypeTransformer.php": "0b7f926c02a2af3fe681ae1113f1aacdb1748f360aafb6c3824100c6a3893a93ca583ef7eebfd8607c0d29209ca254f5d5a5498ed2358314dfb11ef4218329e7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/ReturnRefTransformer.php": "a1ffeae50c2b53524ce1c7530e362d0163bd8f7c5ed5fcd10c78a204bfb6a18ff8a6d51e10d71b94a16b8bc9f0120e7484390a2bbc4968b5f61d99f2b635201e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/SquareBraceTransformer.php": "5b5397e877d2923b7891cad04d4644d1cf0e3b496a981cdcd18a80571b5f7a6a8634ed77b5e55fa3e78cc0961c1eb751cf781f4a7df29613ee7ee3a6aeea7b8c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/TypeAlternationTransformer.php": "8206f829025c3c3c9d4a60839fecfc27202035e7ee5f7c6148864898f2b0d161e424e20aca6c218f06cffb3d7a3a6259ad7b38677f2562318d17e0300ad4fa2a", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/TypeColonTransformer.php": "337bf63cbdb995cb7048d3822cb217ce5888caa285a7db019c254331b944350008b1ece7eb535c29d12df49ffcbfe301a4c68c74b960dba80a4cfbe6fb71d38e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/UseTransformer.php": "c3eab478cf4286b7378bd141c4736eeb62da3294db6788ed03013a16c4abecb2c583f91a65345bfe15c6cc5ce3bd72bf5596ab4d999b58b523ac40caf9cced31", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformer\/WhitespacyCommentTransformer.php": "b1839ff35186a2f13c6a1f1ed6371c5e2adaf1294358868c227420e2a07c11518f4ec9169d79552282a626a2b81fdc48b22737b32603e3db73232b1cbdd7003e", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/TransformerInterface.php": "6c5a21de8a65f2c76bfce779014e0993f421670c4e7820acd048241d9014efa3fb2acf0be43bb2451c426b77511022f4bc4133cb1a9a93068210cdb749fa7362", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Tokenizer\/Transformers.php": "8485b0ef17f5f32edbbc879f556495a0bf9317a698ff5c41bda30f0831fd30bb678e252704b49e18832c94cbce721d0efe82f99107484beed87b343ade8749c7", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ToolInfo.php": "37c4a8e51408fd29c4a726651f504c3161f83c0a59bf9d4caa83b78acfb5d176894b26e3f42799ca3d767d5b58e8f07f317d7db5b96153bcfb03c06900d1bcb8", - "vendor\/friendsofphp\/php-cs-fixer\/src\/ToolInfoInterface.php": "67ebbc0e1fbfcde7b7154e3d2e943da1b78c4a1c53c8bd37d040ffccfeabb13c1ad0c2bb58c691defd4dda5055296594427b4961470dfebb93bc156622f2e178", - "vendor\/friendsofphp\/php-cs-fixer\/src\/Utils.php": "050218ac33171c6ef6e128bf0f4df0033f838265f72ad9ca9f0c50ea498d98b0ca5ebe86e1f9d36f3af0732f26e6e9d75f83a99fe22b58172f063b21240e4bf9", - "vendor\/friendsofphp\/php-cs-fixer\/src\/WhitespacesFixerConfig.php": "b56c5f828edc4b2862cff3ef593eb8e8b2d9ec47e59b1bc9e5bd2e79b4d93b1f7a4fff76a4b4dce7a0d5006cb3745c226a340cfcbe6289ca9e778b84194a5a9c", - "vendor\/friendsofphp\/php-cs-fixer\/src\/WordMatcher.php": "cda7436a72556c4f6d15feaaad5d4bd4e91c328a6a0d98f5859829a83ce66fe777fcad185f5c49eb9270bbe6070354cae154478575697e01d19c03bfd884dcd3", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/AbstractFixerTestCase.php": "987d304eda6f341579cf2af7433853a8c0941a941e3ef41c827c1536908aa14c4f70015cd54ef0697dfc084d2b6c6d4ad3125733b80665535e1aa3bfc57ed26d", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/AbstractIntegrationCaseFactory.php": "e86ecab6ae152ee312ada1f99f7a1f46e96534f0699b3d7095cedaab23b99c81ee97f17b6abc9ced8590fad5b98edb12c0d680c3f23d37359a30a7639c0b8850", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/AbstractIntegrationTestCase.php": "f7fcf4eec7ed3cf51d61826d66c650e23353e86416be689e2694e82851536e91046658fa66536005a46d5d58f6a0797824fc863c0290a0df8273abee072e3bf9", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/Assert\/AssertTokensTrait.php": "2f2b187ff86f71026911ccd7ee4cc203ce333ef0d70db07ef0915052115ea7070d9e0e40cf0e7a8b007ba2b3577a27d411d76d44fb31de4ff1f855ac37d1107d", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/IntegrationCase.php": "3530aeaff14dc45b26e0151c273cba2494e1f7c173e96f77a85102659b446f562cabcc8b128fe14f4382169cb6dcc030242ec629ae92c0460f665d32f5ca8bf7", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/IntegrationCaseFactory.php": "def5d0c8f8041fd06d44c72ce9d2aa3629900ecbd760fa1235d5a23ac0dacc6aa6b6447aa7a1ea985aaee8c5cf2364e811c566d885c221edbc9e47d894105601", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/IntegrationCaseFactoryInterface.php": "c37f5fc6d34442d18e37cf5b6201f95fd32bb337f34da8dd7277e4fa0bfa216d743c9f84508b76d2d58935e00d7227c46017e2b7c383c4828e59f87d5f42d902", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/InternalIntegrationCaseFactory.php": "f0687db055f364622d4c180d68f581df5d463746186e351c35e5572b7b3a767efd560bfcea65030388a8ab80aebc16d82d9d7f4907bf781dd6abbd5503309f7e", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/IsIdenticalConstraint.php": "37f5376e88c24434868a1bc7cefbf88a695f741a792700fb2ae13857f03e149e34195ffc02cafe1ca895f4cb61516a6c30fde46050311fb4e92c267faebe8658", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/Test\/TokensWithObservedTransformers.php": "00249112c606cad4e52a5eb54c3e36f523d16008cdece35db66eadca67d082d291d727e3fa853c52fc59b1ddbe66ba480358603f4c21a7acea41858c74a9ae98", - "vendor\/friendsofphp\/php-cs-fixer\/tests\/TestCase.php": "375392d1d2a9e81c90dc8ee804a920444b341b6f11979c9c6a341dae3e33276f95e62b61e0bc030adc7a775994559f63b02f99002979f7f54598a786b95797e2", - "vendor\/laminas\/laminas-diactoros\/CHANGELOG.md": "f7d765ad31a7f2575abe0d29f56039105904d0a94a59413ef21f5f69638abaf5718e4c17959a0290078fe620cf0dfff00861d1c3f5c7df2626a999bc984b2fdd", - "vendor\/laminas\/laminas-diactoros\/COPYRIGHT.md": "69782fc8cddc43a84c5a4761c6cfd2381d354c87633da7c1d57027d7c2b5a3fdc031f0cc6c599cc6a41a1b9c6ed27e6c1f6cfb682dbb34b13aea277728a07fbd", - "vendor\/laminas\/laminas-diactoros\/LICENSE.md": "7951fb0035603f026ca83d3ffeb6f9e145895a9e18eee80a419b207a7844a432ecaf460e05bac5c6b324f17b3cfb818989129f38b837d84843811fa3232990c2", - "vendor\/laminas\/laminas-diactoros\/README.md": "ab72385d2f034e61f1f95194acef532ef4c132f1f3ed959f015775078beca9d65b5b86cbd0672361b6404eeb5ef9ff08e8b75ace93b466e90ed550f8a0781ff0", - "vendor\/laminas\/laminas-diactoros\/composer.json": "a78f14f3429ef7cd485aaebd9ac5b5e55cfcdc688767b91b29fa136bd836544b6fda416f9a74462b385090e82953140148da0aa676e4c8cc7f56a93898f4204e", - "vendor\/laminas\/laminas-diactoros\/src\/AbstractSerializer.php": "e0542cb17ac057a6b5cfeb16578184d84a5f2efc987b7c0a0bf3eb2ab70821faf3f6795215682db758914617903c54ffdbaedaacaccc8bc29178f2d98a00def5", - "vendor\/laminas\/laminas-diactoros\/src\/CallbackStream.php": "3dd8ec383092f7e0da3f86d03e02f781af682053e010942792ac20bc3e7e69a4e4b255d60b46087b2cc1c80c853cc9ecdd583e6029042600ff7b0f0194c06fdf", - "vendor\/laminas\/laminas-diactoros\/src\/ConfigProvider.php": "2597dd0407231ef0dac07797e6fd37b5c5b1d71d5eb5824073dd0560badd5f4a3b11ca3154677b8b6693c581223900e82f4a20b282c77aecfc55d8a0956fad97", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/DeserializationException.php": "c1c1a712049899188a64ca23067327644850c5938b28116617571ca9cc92ff1a314935361403d15b33fee7545833eb44ceed65b4b179a9d2541e4a9bef8907ad", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/ExceptionInterface.php": "7d7422e4c5cc38d344dbb366b2bc83c6bb78dbbd5540c82af97a0d4def4a4e238506cd476dd6cfda61680c904646704bf7c9fa3a9ddf7ac03c4dc3c9516c839f", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/InvalidArgumentException.php": "c9011dd8476d9ba3d5e27841ee020ef9bebb5e067a0905a3cc31dc118cd7b91097c6bf5d877c15eb2e75f17dfa6eb849470b45c6af783810255e5ccb5390b76e", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/InvalidStreamPointerPositionException.php": "5469350688a8113811abb60a91ba45ea7d0609b2346ed1ebdc287e32cc2833fb076079ea5f242be49cfab9dbb603ab33c7e7865ecb4c0c7f37a5492f85a398ee", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/SerializationException.php": "8cf9b670f449d2e4d7c83cb3fef16205b16e0e205a9c2378357124c9c34220e0c48922d88f077499c11e1617512ab8173044cf3b3b5b2078fa8fa1423cbe726d", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UnreadableStreamException.php": "98b57c710b07577c0a679e8676a4b394105d2c9a92a470eed7c9b141d9479f5aaabbc7e5570fcd5428c0123a69f59e6130e85685f8046c642653206a4a6dff30", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UnrecognizedProtocolVersionException.php": "107ff6ff48b4adc8bffd08dee39c48bbd1135c7ec81887a08d4cc3c2b4d6422b0c7760addcb9c592f070998e1ae51f0d1f7dbd453df828debe28ecbf222bf285", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UnrewindableStreamException.php": "ff93f840678542cb0dbd1bbe381dbd045bfc5afff2b5dd1f13987a1a322e340bbf956baab60f06224c574850185b74fc49ad2cfbfbc28482c5cd2afe2a60df2b", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UnseekableStreamException.php": "a5f11965132fba344f2afc084d831f08a278c6a569f088047b0449485079e8cbcc5f0e07d37bdfd35d9b765956082770b0356ed94075ea0f74c05806827bd2a3", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UntellableStreamException.php": "2c91e4c76db2c8d773775ed7a7c906acc0a5d7357c546541b108ffb76ba1418f830b35754ee558e93ae5d747cd50a97a49d2c973fe78115fb55190de4fa11c0d", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UnwritableStreamException.php": "7f80c0b9e7a23492ffb0e32900fbcd4ee6e88242b942ea87e5d57b06c1d593c252c72aaa6942c8b5d7e85ea349ddc02fc9681a2a9cb3584487b7a4f3bcadc6b6", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UploadedFileAlreadyMovedException.php": "a0e1d9e925bef2b2d4d5aa8fb0fd1019e15a9526ce7934b55b0c730ac12600c3dd1dca3fe6079e88fc78129cc4cbb50d1a76908f5978646f119b5628b27d3118", - "vendor\/laminas\/laminas-diactoros\/src\/Exception\/UploadedFileErrorException.php": "21d1ba2f1a1d76944a7f5521cdaf91b5fc3140c427dbaeb7861819ab6291b8d9a4121ca57390706fe85b8521c607942679a86a08ce32550086eb01070977b128", - "vendor\/laminas\/laminas-diactoros\/src\/HeaderSecurity.php": "d82557516d05c0b982d8b532e32e93f2fbf4f9a3a2e16880ba760015261d85bc12acf78695769fd05734a9fe01869b29bb6950acc44374ef9d918558d2c597fa", - "vendor\/laminas\/laminas-diactoros\/src\/MessageTrait.php": "10e0fda825db5d78225c38b734a8ae05dce65a919fd2c66401cc309a945256ea0a267094c19954c15264116fbbb4b92a746a20ec4e8b7c6475a1623d6d410675", - "vendor\/laminas\/laminas-diactoros\/src\/Module.php": "3f2057d0ad91fcfe981128253f2f768fd2e6b8e2150a6544e48b2e9a61cba4ed061502430c214d0953c8705dfe4c8631be7e1ab76760c4721b11e72d6996146d", - "vendor\/laminas\/laminas-diactoros\/src\/PhpInputStream.php": "098706a3da2a4fb7ecea6e664cc0779829ea03ef30d8da4e63d3520cd8e7f5cab2537d7a74c75237f74534f8913dabe2868cda6e41f6df9759ccf223df7dde5d", - "vendor\/laminas\/laminas-diactoros\/src\/RelativeStream.php": "74e6fd1fc67b6636b2290e384acc2f5f90a49e2ff9b28012082c9c58995e36323405b6f4faa9294e326b14f67b0e29335dbb2f93f095076b87c86cb7081f94f6", - "vendor\/laminas\/laminas-diactoros\/src\/Request.php": "6ce53dce625f3540fc0445c256d3ae008211efa40bd89912fe68c508e55a8db4f6ca840591bace8b803e0b22c968f26df38aa8ccfbc08a33a220fb11cf50698f", - "vendor\/laminas\/laminas-diactoros\/src\/Request\/ArraySerializer.php": "49eae35d600b726d2ac1fc8284c4df5793e94008735f3228f7a9355fc0ff70b3dfe71a2264f27995007ece195fc76356c67fbed5f8d26b2c85ede62f7583ffaf", - "vendor\/laminas\/laminas-diactoros\/src\/Request\/Serializer.php": "74864e768d605784267717252c49d729f2f216ac6697c550b0e26a24f6ea159a5f43872f5b2436207305ed37912c9e658aca8dfc385951062157f342a93c0e47", - "vendor\/laminas\/laminas-diactoros\/src\/RequestFactory.php": "843c156941275b39f7b95dbfef0bcd11985d260c518a21791d47fa8be8b7d4e3282abc2fa6eb33f11a08a33b73c57df9b7df74c81ce422acb460c61d7a06aa9b", - "vendor\/laminas\/laminas-diactoros\/src\/RequestTrait.php": "2e54e516c8ee437d52bd5e1c36be209ff76a391209044af6c85bd7009d4bea8094ee96d3185446e0038b70974442cd3da2a2e12bcee3657156e65b958e215d4e", - "vendor\/laminas\/laminas-diactoros\/src\/Response.php": "242e527becf2d983c4cc2a756065b27dd3ad8096cb3ea102c6b446cf8bc455f942e6f1181d8c54c7b6efc2159842454682669d97b297d0e7c03b76631a160132", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/ArraySerializer.php": "eab0b68efc5140a0373b008bfd810b3f0820f6874891d8d67160bdb4ff6176fe7ae787d4c246a2cdde17b6fac38caa93d00624b255881e6fa9f43136e072fab1", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/EmptyResponse.php": "95c234d9eef74c04278b63315a44fdf88f8d9ff675ab986cbd35fe0eed10931f27d658d64b6b2071875ed1ba03fd8d588c78b93db79da9e8f00c65c5578b8be2", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/HtmlResponse.php": "6cc977ef9a5e213e38af76f947f344a2bd92468c0a8d895e965d4875070d44d26974ca761943f6b043f844b12a5cd822e7c65826c2fc8dc33fc51c8a9d049529", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/InjectContentTypeTrait.php": "ddc13cacd8003c9a804a2bc77e583f11043c43c4dfabb3acc0ee81b8c8aa32d272ee0c5e285b00028cfffa450b9a3249db6d085393c53f3cbb39e84c2938989c", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/JsonResponse.php": "e3d2c4a895ac84b1b9d1d646260a1c4ac0b07154f3c0dc4b8bd4cb9292a77172e59bb7b35fd8b1cd51405d812aa7bb501ec7233dbdb9b0a1baa72bf8805acf36", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/RedirectResponse.php": "7350a49d0af9bc6bbd8ee2687367ce347ce1734aee7c821969be183591735b446e23079ff325db5b5e0ace4e4783dbff152eeb596fd61645aaf87574c2376957", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/Serializer.php": "34014e7379eeb717024b7c810f82958f62a642a77ac90039c3572a3ae59c790ba4ee0a7408df3da120716bfad09a7347a2f9a85b45837195f0de715e99fb2f35", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/TextResponse.php": "16fc57c748c8b081923f0ffc5ed78e43197679bc93eb89350b9228c1a91b85a013654159ef0427edffa95875569441838e1c2cdbcf746c973bfba853bfb04ede", - "vendor\/laminas\/laminas-diactoros\/src\/Response\/XmlResponse.php": "28b9996c969d4b1befb1141143aaedb13e69dd14b607274f899c4fd2f8ef9649ba58e28fd45204a231427e72d7426f2534e5ed183d5bae28013b1bdcb68898bf", - "vendor\/laminas\/laminas-diactoros\/src\/ResponseFactory.php": "8e8d24d9e23054f99481e0cb32e87afc37a0ddd393bfda6db84018f249a6d6b0627ae8059122ea1a768677bafeb94d55d01045c9a3a45e2ab1471874bbff98b3", - "vendor\/laminas\/laminas-diactoros\/src\/ServerRequest.php": "250efff9dfb51ddcedd1dea7a76c08cf7b2740d9b76de85693d03571a7b78dfe672c44d264891284000527c9a2ec20288574ae85d554a745dcfda50085252c9c", - "vendor\/laminas\/laminas-diactoros\/src\/ServerRequestFactory.php": "125d04022e5fe1044bdaae310366b1b97547e43159304e22b601a5e26a19b863f8c391c2d73743ab0397c72aac6d64ef1fa553e3b5a40cc499c8120a137b828e", - "vendor\/laminas\/laminas-diactoros\/src\/Stream.php": "c292455853ead96320f8db43ffa3d9792253dc325216bd47ef5945681db8d4533f3133e4df475d2d2ca040797b880a7e21dda2bc11d2d0e9677208e5f717f9c5", - "vendor\/laminas\/laminas-diactoros\/src\/StreamFactory.php": "ba8e8a4c50aeef2c84151ef74571e3142efba58de307638b88ca663de501ff64d19d1cace5e58d5b1c91ef5105612b3feee5f6ebe85583c8e368ad057a78c8f2", - "vendor\/laminas\/laminas-diactoros\/src\/UploadedFile.php": "e7a9ea220d1bd58780bb608f3e7f01226efe3ad486a669ff6c4b92643667677e02c6d69695c93d2388d72eb6ff35cfa6be30d412352826b78570467903da4f99", - "vendor\/laminas\/laminas-diactoros\/src\/UploadedFileFactory.php": "4234c885271f4deecb64a8975e0f1bd9364467602d32c01c2783eb9b610cbd97a58703a3e21406ff797b390bd7456aed00c9e4351871595fe27944ec7ed9923e", - "vendor\/laminas\/laminas-diactoros\/src\/Uri.php": "a09ba8b0787510ca00b0b5afcc50d30fa7332d5d950645ee4f9e0b4f9e5001f608de3fd3aa47d76dc660003b73e6de41b8fc18e73ebca5976a7384358c993876", - "vendor\/laminas\/laminas-diactoros\/src\/UriFactory.php": "2c1f3672e7fcf65631db111a44d7571c24ef266a5162a31fd5cac08e61a8121426e389c03e2e8d3c1903ac6cf5f27b62b53068dcaff7849a811f113f532c7aac", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/create_uploaded_file.legacy.php": "a51bb1fd7e97002f09cbb77c40ed9f53051600990b3fe0941ce3b04fd6364c72fe98f2c0d22b04183ee46762ef49bc967ee791aab220d02188a9fabd2d38505a", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/create_uploaded_file.php": "ef579488b092d236dc08ec61bc3a682a919d75a336e9abeb8d51feae9bca8137ee0b019df60c9b0b7e38ae623253d77f34065bba1eb826877452fad0553a92e2", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_headers_from_sapi.legacy.php": "6205c0c8b08f4013e2f2985317be6a9cd2684d20f67e5a74005aab91a96e0368ff2cbf66b5dbf9b8bd5a689f825fdc022275e1898a9e21e114cec49f283f0570", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_headers_from_sapi.php": "b7ae458c95575368760871330afcf84e1443e2c0747ad0d3cd988e5115468c2250c66b02d576781e658d7cdbcebf91a3f04b3b941195b76127b8ea5155ac03c6", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_method_from_sapi.legacy.php": "13fb4a316240120a4bdc7a06591dd0c3a060450e086a18abd3c6763fdd20189b26dab0e7eac5f7e661d50384da546f83eafba8e8e1c9540936d53f02b092101b", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_method_from_sapi.php": "a9ae7b4a074fa17f4651264aacc8ced50dbe75fe810a1745372171d8b8c34d396d91d51a0618b760439d5523cd701aee60a37e6df27d53d4cb065970b0914943", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_protocol_version_from_sapi.legacy.php": "c778fad902655777c84c945310c635294b04c6df6ce7880c4ccf954cb5013211c47445853a3fc137417d9cc40ad8419936c0c73835879097933f8ed18bdddd14", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_protocol_version_from_sapi.php": "d09070a5dd8c69778e1a9fe09d615ec6a4a15e5040d71cd2046a08f211c9c72d313877c36b758faa11e6979e4a5b9637a584afd0267b0305def6b5cfdfa262b6", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_uri_from_sapi.legacy.php": "84b683667daf6a01505fc8302d1c4f9e1e6e0979c96f6f167dc397a777eb715d02aa8c65372e24a067f60fbcc36545db34413cf415d0c31d28dc84af5db6bea2", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/marshal_uri_from_sapi.php": "835507f97173d2a5089855cc8371177abf87fe9fb5d445cd9f0144a6a1168abfde414f78ec20bf425d6029f4e1b01185542e7f3e8fa2e0a6f2fa71a1bb99a07c", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/normalize_server.legacy.php": "bd8d466397884a0b88c5cfb0c42c5b2afd98d9f28063d296ac40abf86536b8d428d83b6f7310873acb7fdacbfbc283c1929b03c2eb3e62e34031b5bfe4cd603e", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/normalize_server.php": "4c2c2d07de2e64558d0e81303316633bd11769cd347f13987fac7d277cd124bf77a67d11fccb08e2b9c6e0f6a860180aa020f37336d28ab1ec2b4a4a6ecb611d", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/normalize_uploaded_files.legacy.php": "aecfd1d8042eec3bb71f3c5f96c7527f9200e68742f8cabe36b152d3e05cf9b9001e70a70159f7b0aa42e55961b213441d49becc1b1a7655b8b217904cca5292", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/normalize_uploaded_files.php": "833ffad79e07bd1c971082bdde44d20e782d454e593d8d56fe23de5e330f719b6320fdf309c50b0d8e14d80809eeb9ffe0fe21cae2a50602c402fc990833c15c", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/parse_cookie_header.legacy.php": "369e58684a2f9c804d0decaf15b88a5af1afe4289da4aebdeefeafc02717cd1364e30c1168358a5d9dafe82b34fa7591a836aadd2d88b33fe78fff8c8be4aa11", - "vendor\/laminas\/laminas-diactoros\/src\/functions\/parse_cookie_header.php": "5e4c70168e976017083e1bdb8d071cccebb39acd486073f5d9ba1599946c4b0ab1ccd121ec6a69c968f1d4880bb80b6c2d56ac739fc401eba62e23fbf4295b11", - "vendor\/laminas\/laminas-zendframework-bridge\/.github\/FUNDING.yml": "37310d4a78607884b01c99fc6f80b08ee452c9aca7aad73abe1b41b818aef71c48591dea55762bfa12d6ef891f959650d4be68ba6e0cdb3f5582676c87fdf825", - "vendor\/laminas\/laminas-zendframework-bridge\/.github\/workflows\/release-on-milestone-closed.yml": "0de9fd67cfacda274850f14e5086d822eda0d54bb0c3f14185f47e344c3e640e0216edb09e4927dbebd0e6329a0c373cd1d90da7123a8089ac81d04e7bc81e95", - "vendor\/laminas\/laminas-zendframework-bridge\/CHANGELOG.md": "899e8ed7b6d01e96c60c11b4d88be9a5dd6921437dbbcff3d05fc62632d500cfb868c79c910d082acc3ff226b3fbe365f5088e7bdb020aa35670fdb0884403db", - "vendor\/laminas\/laminas-zendframework-bridge\/COPYRIGHT.md": "69782fc8cddc43a84c5a4761c6cfd2381d354c87633da7c1d57027d7c2b5a3fdc031f0cc6c599cc6a41a1b9c6ed27e6c1f6cfb682dbb34b13aea277728a07fbd", - "vendor\/laminas\/laminas-zendframework-bridge\/LICENSE.md": "7951fb0035603f026ca83d3ffeb6f9e145895a9e18eee80a419b207a7844a432ecaf460e05bac5c6b324f17b3cfb818989129f38b837d84843811fa3232990c2", - "vendor\/laminas\/laminas-zendframework-bridge\/README.md": "49a2454fc33cee0d9c8903ca924d9cb87621bf6c74115d2bbdc98bc1a156cffe0e2aafada02b449f5bd8c7cb48284c91e431bb7753616112302746a12b2faca9", - "vendor\/laminas\/laminas-zendframework-bridge\/composer.json": "45591633faeb7fc8f58799467df3e31d7cfc3e4c5ddf8cab9de75b8ef0f6864e5d631c15fe3098df6ec2a4165a6168c0785daedb961baa6f50ef0e4cbe698c70", - "vendor\/laminas\/laminas-zendframework-bridge\/config\/replacements.php": "a9b16f2a261af573e3c7f85b898ac69b46826c121dbe4fd534e15c0de1b54f3987373f213b1d4a80f6e0cbcdf473457b9d615dd105cde1bb59ef6056f06182d8", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/Autoloader.php": "658d1e2ea3475a49e6caaf5cb0fb108d3936a2b008188dd682cffe7c92121249d369c3ecd2ddc317fb7df544da048c1225a7dc4959ee79070751c07d675cb260", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/ConfigPostProcessor.php": "e4424b120fbc300ab35b33190b267a4552f90fb44ff6a16a43d6a440ba596180b601f47d2eceb0a9becac6f35c14fa6ef9d8d26d929649a9f2e1a5e95ada868f", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/Module.php": "c00822b72397c25b2a945a66409b0dd2c3c51e28f2a003496b9b71857283384443e2493542605f956c671e29b3f8bb5290177883fee81cc14bf0fee626c2e380", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/Replacements.php": "cbbd4e643713fd14d400b91c911da14a306a75d51a08387e36af0ba3ccbed152bb4620ba582f3bdcd7095c5227dcb5d3344240afb7806aeacafc6df3d19f0f2c", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/RewriteRules.php": "19f663d30287e90664935e9eb91ceba237c4290d8984c161b44a04a4911cffd989cf23195de0feff527b966a110c40911f155eb0da763bb2c54523be6f07fb18", - "vendor\/laminas\/laminas-zendframework-bridge\/src\/autoload.php": "8a54b95dc7a81ed74689fe93ea2c0476fc9d98952850782503a958b089c891d744c6eeb17331ea005dc97703535d511626bd78383b40f2758c9b0bbf766b6aee", - "vendor\/myclabs\/deep-copy\/.github\/FUNDING.yml": "28c4f4ce2ec8cbd33ec30350fdd07337c2f2fb948e53b4a32778d123395d6c27cab58f2243fc5b5f7ce9dbb7879022bcbdbe20e998653945a54b1e0e2b2d8fad", - "vendor\/myclabs\/deep-copy\/.github\/workflows\/ci.yaml": "9b2d0acf0f20b562e4a25ed8a5c7d4ef2cf6f20dae1cac46bdf9e0e8d4a326cf97ebded8dcd92408b9adc8c6bede8d8471ed68f6477ffb80755e33e7252db752", - "vendor\/myclabs\/deep-copy\/LICENSE": "c1df791d488ed0b44a6c19df9b4a64e8b3808efa6f4753d6b5c122155591d1d49c85e363ef49566d5c9786630718219b371d5a02dccec5ec814c7a85ae114329", - "vendor\/myclabs\/deep-copy\/README.md": "2b1ca71c32ae1f9fede8898bca9fa138a32b2f7ecbc575574eadc2c30c81c9a39bf5fcd2098ca342d6f897e0054271d13928d757ee48d925df815308ce558157", - "vendor\/myclabs\/deep-copy\/composer.json": "844c6ab079c3563153173fbae18312d52369199c737e657fe4e4ca32877c962320c639661e99e14b6008859f3c7d743322dda91663dd11ca40303d3f2c07bf04", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/DeepCopy.php": "32c3e667b60138c212bdb62ec901fc467aa6b9a4baae64fe4d10ef2a1e02554687af42e3675b55db8d641b528d306b3567123a208523647566cb26dcf5139742", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Exception\/CloneException.php": "f0f6913b12f7401f8e2743aa63162d34763952067d20aa0eceb23261f8ac5229cf84d59dcc02669fa6aae2798b5562796a873dd8da5a5d28d94eec974c9dcea0", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Exception\/PropertyException.php": "3224a19af7d71712f84aa3fcca8a03b959885c7e7f438bb07831bc5242100105a8ad21f1922b5f7f52248de2cf919abebbaad6f5162ccbe8096b5b1b7a0c64af", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/ChainableFilter.php": "9cc7a32a1c4de605e7035ca22e443bd53b94b5dc5332bd7d6f4057143bae7b59422e095b01af3230637f8f7c13b555bad1c1f50c6ca3af3c88558db5e9b0de1e", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/Doctrine\/DoctrineCollectionFilter.php": "0fdd9394e79c2e9f0b2d89ac8c84ca5f58cdf7e90c9204875a5c8485cf3f8756b85157ed089e4cf053399ffcaad72782b7f8a73a43cda796ae655e46d0411bf4", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/Doctrine\/DoctrineEmptyCollectionFilter.php": "8246f10e4477142de5cfd90620ad5a618aac1f25e98f5b38ef9ec92e1d05e47e8f09d34d99d97b73519edf8dec66bad684d36bf2741dd897e161cda01f8b76c6", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/Doctrine\/DoctrineProxyFilter.php": "45ca9fc2243828d8cd6bab67c2a4a3f0c4ee1a75ff7fa7c16b46de075d3f55feda935bbe33c5bf01653bd406a957413f21856a49b866c968066b5dfe4656c515", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/Filter.php": "f34550f5ea512192576bb073facfc5b21e3e05ffb8645abb4b0a2abd36ecf0f95138af5bc0177f577e07018a0a1deff53e32e0afdccbe48636da61255fe530ab", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/KeepFilter.php": "6ccf3d811c208ffe030f51415538615d86a8680c2bd9794edd158caa67ec0a9b315535a46730b9cf680bf127932c402bb29203436fc835d25314bd7e6d35dfce", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/ReplaceFilter.php": "2ae8ec11d9af4d952240e2d5ad1393a3c40de33e51f5f1a9ec15f93fe8c869be579e61fa40ab939df12514485ad4517ac313c339b7240b95036f50eb96979891", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Filter\/SetNullFilter.php": "30fe393fcefbb6bdd2e5d078502940dde279ed205fc87210d7f7bd52839a26968e08f8c76e7f1edc3337ce658ce1bef47b6c1e354620fb33e861c5bf43316b30", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Matcher\/Doctrine\/DoctrineProxyMatcher.php": "5a890745e11dfaf192a21759386e89d856d4b32b595a0e4e12c699ec420e37dbb72547352595d9659aff046acef0ca6e2838a5fca682ba11812152c21a6bd09f", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Matcher\/Matcher.php": "d8a07630cd3bd538cd00c4498312c1b6fb51f1a880439cfe5f0beae55c583aa5954a5f42a15519d5a2693b24d35f3d16685fd7c6f925e065ce4600f6a135d4bc", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Matcher\/PropertyMatcher.php": "628062ad6499e73a475b0e6c3e920c1b31cd40195f0a568f66fb21021b76602155aceb608732a219394b6fcf1f48aa41de230858802ca7bdbc540d3fa15d0ce9", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Matcher\/PropertyNameMatcher.php": "d289806420dbd9f65eec10d7ff86bfeb7f83f19427e424828b7c4651045d71c253a6027c2a303de9c67ee376da2619ea702fb992c9ef33d1ff30051d81157fc9", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Matcher\/PropertyTypeMatcher.php": "a4bed1b5d9b0e649b3f5ca7f5f4690e53c035412492ff2dbcd5d80448fad79b10fd73944c7b3695ac1a4f119657a43185f89d84ab9ef3151638ae74dcff91203", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/Reflection\/ReflectionHelper.php": "70ec54c00eb175f27162199c8789517139d1011853e13ebf0060190c19959da1723b84b7444d409a54bd17daf7c83403841ea5717d822c01802c67ac469e1e7e", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/Date\/DateIntervalFilter.php": "81a4579fbc87d598c4430bd54c51b5846a1ebf13da53a99bb2f6d09aebe969196c6b35e7698d4218e9184332874417e17e102787ff5aaa9b69a1b3048059a478", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/ReplaceFilter.php": "be4c96c3db3d3429ae7dac1b33115d24f20444fc60096a4d451c8a5ae1c2a995c0fc2d4569ae6da56130e54fac72102cfceef54bedb13e9c9440982559dfd839", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/ShallowCopyFilter.php": "e06170c1410d1153c46a0c163efa525398f0844e18f627c848aa5063cb97a0d761911ce3c7bc2b22d38351879e5a1962e1e72131c6beaa826cb2bf8e8ade73fa", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/Spl\/ArrayObjectFilter.php": "2f32eded9938f0302198b0574eb91cc4b6dd62362cdcdaf904f1e9d3e489b78afc03e5814bab12549b62879b2f851d8a4fe5550f54560baf93de8b1767f67352", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/Spl\/SplDoublyLinkedList.php": "10b18959cfc9f2043ea1064ce2e251badc7396f492096bf26b33d36a32788913db89e4fc58f2d911cda9b1915d48eae284b3ff76abc7394e02a7589e3bac42f1", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/Spl\/SplDoublyLinkedListFilter.php": "6e65da06060adbb98f416c37a625c9d4ca9bbbd55e5ffe11a661f54c68453b40985714145160c1962d779b35ad61e95d46dd8d36b91e60a2c7ae03debfe344a9", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeFilter\/TypeFilter.php": "a6525e500496a6208ed85a423614ea0065c113ad3d9424f39285719b08aa844b37c0cf12a8110c98d16995ce9c74b5d1caecbc35a5bc07a3ce2aa02f059346b7", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/TypeMatcher\/TypeMatcher.php": "c4785231bc22ed7b6de7a86392922deda723bb54836810f4e95aa8fa5450a61ad952f52346c875733feef02a56389170f1513def1d28b28712766dea4aec4179", - "vendor\/myclabs\/deep-copy\/src\/DeepCopy\/deep_copy.php": "779adfa2cd55b8a4034a966de491682b1ee3b320c6c4a59d20770b14f34891e3a9f25dbb180a05e8c29ba5f9ebb72c0ebc3ea91d907ed2ecbf9c2bb0306e288b", - "vendor\/n98\/junit-xml\/.ddev\/config.yaml": "2732b8c81f8bfde518b0b0938616de57844b981f2aedc85a56582c3086b0226136546002bb7eff079e26bf5d078621987b288ad8bddf7deb4013751b47a3bc2e", - "vendor\/n98\/junit-xml\/.github\/workflows\/ci.yml": "fdef3f979f2cb7cf527ab9df078a4ffd92fdea82809e706351f1b6fa9e051f348a05acb970e47dc6eddb3cd0a9c2c64c1af08af811edf22de517db8e14635ff5", - "vendor\/n98\/junit-xml\/.gitignore": "f89e013cd556867fa78609b86b04604542c9852c6e1afe04946594185337ba031e4b80c02de8a714d7cd083abc223d34039c64aaca75e97bdbf268a0d0e04c7e", - "vendor\/n98\/junit-xml\/MIT-LICENSE.txt": "7d984fd708f2828c9631e7dd31ad7be973e70b103fd8575bd6767a10a9d847446169ccbe25ce83c5130275b1dbe2493247058d964af672f20379adf9e744df32", - "vendor\/n98\/junit-xml\/README.adoc": "220d0f9d0e9c37a74a875676e62f11267aca294f8311270873fc77c6a6d65d403ebd9400dd3b3b995c037a7429a926bffe62404a27178db6f863cbae4cea874f", - "vendor\/n98\/junit-xml\/composer.json": "49461fdb09f8a03d64b0c9b8e1f4892e687754a5fc2288664de785118cbe763176b11e876acb6eb7241aeb2c1e0139a3bf4782fdde7bae7ba2f372ac0dff306e", - "vendor\/n98\/junit-xml\/composer.lock": "5111a2b7dc4ab7a3d2857992936aa97063f0bf0c9c5fe1e7f6c44a58779af8f07bae9f4c084b252b6817afcab33d297f310e0cccae560c58f0b00c7a323b0de8", - "vendor\/n98\/junit-xml\/phpunit.xml.dist": "8ff697b11fb445b1d486377d2511954ac6aa56e75e0870424ef5d52ccd1a5ad60a94b78a105887c303aec8280fbe55cba1acb4146d25f6a00c987eb641c8f159", - "vendor\/n98\/junit-xml\/src\/N98\/JUnitXml\/Document.php": "75e08b42ddd3152708f5fc764aac73a491d69389f51120e96f907d496e16b841d7f267d4c792a62dc0ff8f130b4ebcb2386585bcf773f6314c52ac6d095b67fc", - "vendor\/n98\/junit-xml\/src\/N98\/JUnitXml\/TestCaseElement.php": "5080e47381618b40031431c22bf1a6626e69ac4f504e06798644e9eea648de27c589bfd71d1534bba522c92612d77fb210c8732b76ec30a0bb97d9b237d49309", - "vendor\/n98\/junit-xml\/src\/N98\/JUnitXml\/TestSuiteElement.php": "5f70a8472313ce68ccf0943e52b86005443c5fe465600ba47d127686947b1254546458e643c9ddea9a81c35238de16871d8bca4d6b65faf52d0d2c5cb6745b77", - "vendor\/n98\/junit-xml\/tests\/DocumentTest.php": "11f4c9d2ef14e1972c31e55b252fef31d46f656c087cfbf06035301da22cbaa89daf91c19c27bf6be8f936ce54b225e7bf74fb18566cbab1c9dd6846dafb8e7a", - "vendor\/nextcloud\/coding-standard\/.gitignore": "fca751cbdd957f6f0276b6c35c5b6a39a11e5ad87e2a4634071478d4855f3493cdfd688e1a0790da094dcf7053aa087920e12501329b90208887ca47ae7f7b5e", - "vendor\/nextcloud\/coding-standard\/.php_cs.dist": "208325fb627b7fa4587286916bdf8ad0a31006c732c84f35bddc69118d3c46945e6f9fdd9192b7ca55303ed713f47756a233495525dd7fff157ef1faa713e141", - "vendor\/nextcloud\/coding-standard\/CHANGELOG.md": "c4a347153b00efc839412213d58d1547d931e75c8324ca2be60fbd332b667cd4996f6ca7bae007bfff3acae08f467b7b82ebae740cd354d91ae4b6e25c79bb91", - "vendor\/nextcloud\/coding-standard\/LICENSE": "6a27d9fcf631f9929057e18f9b8d4ea63b19862ed4d41dbfed9de9dcfb7986da5375b1de872a83bd9b08e9a2ea5298e246bc2e21169f5c789354546485ce9af4", - "vendor\/nextcloud\/coding-standard\/README.md": "ef23928200e524401248c1d5676eacec715c68c6c60c6123b55213336a6520ddb1f5de9d1a0a9997172dcf1c166d5a04223337d4c79dc3aaa1a00ecd588bcc2c", - "vendor\/nextcloud\/coding-standard\/composer.json": "1e83c78daa95f794c8fad637a1971d41ed54005de33bf4df6df197a8258f8ed30ca7f941b20b18785deb82442deaa64f1f5dffed414f5ec564a842a1d398a0b7", - "vendor\/nextcloud\/coding-standard\/src\/Config.php": "626d6f762f43a7a65f6546c55e45548b61e734c21d100c723c820d9d51a41746507483505cccc22658a904f9e323ce079d2146fb281a31bd4cc8f9233dae7d1e", - "vendor\/overtrue\/phplint\/.github\/dependabot.yml": "53ffc024917098681e18cfa931a53b2121d5a119c424b173b3f29cc1a1ede2027920ce5663e2c604ff2df27be326f7f1ed6c5ea3ad0fb0b048448ee73831d4b4", - "vendor\/overtrue\/phplint\/.github\/workflows\/build-phar.yml": "958de11c16bbe41d714841ed32c06a4bd7805ded2d84bdb87d1b546298b93807dc6e911ab64e2f74357f0ced1bbd71cf5146bf75279fca87881bec98a6ced66d", - "vendor\/overtrue\/phplint\/.github\/workflows\/docker.yml": "4bfb147fad7d360eae285ab3bdf90e217c6a3517ae76fa715ed45d26d3307c82354048cc0b8c006343b9e0086bf8fa2e013d1400474480a6b74f9dbf38d5d87e", - "vendor\/overtrue\/phplint\/.github\/workflows\/lint.yml": "c961f450d922ee1e1063cf048dd55bed782f3e2a343e90b4fc29734994aa573c29aee6e35819a4b26bef4678bfdcc33d2837e32ed89dea3697770bc6e6e91d12", - "vendor\/overtrue\/phplint\/.gitignore": "3075c24920df136740b7c441caa8bc8d364ce3610037823514720c0d2c54b719ba1de08465e20352381b1f880ff75716c286c876b845b0f5c3af20ac0a77d5fc", - "vendor\/overtrue\/phplint\/.php_cs": "20c280fb9b0dd78a13e0acaf44f55a35731e68d4dd17de0f3944c083417816aff8510a6ccf67b291338f73d58eb13a2e4f0f574b0311d5b891b7164f1c37cd65", - "vendor\/overtrue\/phplint\/.phplint.yml": "96d9c9ae0f1f04a54698806965a2a06167e95de9ff8582ba77f28bc2f85ef2e750c8122f358675b2c4c4e312fa8026c0566297435a8bb153ec796ff93d8f82fd", - "vendor\/overtrue\/phplint\/Dockerfile": "db277fcc4a68623a2578c8f0372a17e533e1e82524aa5ff06de3e522ad8f3ecc4be63a998df55cb6b574a41fdc508858ad37ca38c821f999836cc69b312dda8d", - "vendor\/overtrue\/phplint\/LICENSE": "3fe989aa53510cf2e5652d2a9b154a3205efe4865bc3a5ec05ad3354cae631f668e4c40c733a7e02b510e5c791a78e1545e44d8a2c3d08ad972cd07b72589881", - "vendor\/overtrue\/phplint\/README.md": "bc3df007efb0354938959f50c9316a2042add45f57f92c8a76409f144012990b2801de8568db975451616928b6c149ca4f09172d8300d762f756496531e7d288", - "vendor\/overtrue\/phplint\/action.yml": "63046eca78b925dcace14a2a017c66105367e358bb3c0b1de89d369d1dee7ae4d79632970c0cbc2979c40edffa7601c10ece0ef1608825a52ac0d06a96391008", - "vendor\/overtrue\/phplint\/bin\/phplint": "02416ffb6fff535998d4a6000c01a844bd3f1a386e45f8957c25e4b6910df11843b6437ee3b4994ab8425dedd8bb8c173318bc25ecc393c4151e747f88d059d9", - "vendor\/overtrue\/phplint\/box.json": "c06651871b118941aed12aec70349f11a439c91b436be87b6568b3b8ff82135ccd214173d22930ed334c44adf6d242f35f9c96cc70fcbd73df1aff2868f624fc", - "vendor\/overtrue\/phplint\/composer.json": "545af9e6dabc6223a24b6b8fb84b8423a1e9007d9e447c2bfc7ab9290d7369768d3494b9b7931aa72b98d179a1dc2d69d4dd01624a50f8bd322b1964b64dcfe2", - "vendor\/overtrue\/phplint\/entrypoint.sh": "3a2fdbd926d7354357c3fddb655bfdc34cc706310ae88fb7081277a80b55b5e4a3ce8adc972e21ea5512e7386851334e23286f5276251ac5fb18c99a44c74048", - "vendor\/overtrue\/phplint\/src\/Cache.php": "bfa5c0c54139b87a9740c97cbda840d4aaf1ea90ae0eaa02dd4bc776484c2c58ab029d4c52d0c0ce5154ec6d097d0125d6acf58d9dabcaaa2149773f63040861", - "vendor\/overtrue\/phplint\/src\/Command\/LintCommand.php": "c635161b394fe345bd9510bc4129634f324e17a82dbc4e345d951061d42f7a75351c2a4a40b5f4e7ff4c91d9efe1d9c6bef066be780a7cbf9c1a868343c1d51c", - "vendor\/overtrue\/phplint\/src\/Console\/Application.php": "968e2e14c7ae7e6fd2b9f1c9420ae02a45deb662c167f606979da3c786710b4d7b73625c6f584df6df551b9073e1f852a6a5502260a7778cc79ded1cfc077b83", - "vendor\/overtrue\/phplint\/src\/Linter.php": "9c120301e81309e8ed3f5a07ba7be12ba9cee3bc7d63e0101c29cd43162bad87c9dfda9647cc8948ffd3401305c786696bc2b46330613a2f07701dc234f9bd9d", - "vendor\/overtrue\/phplint\/src\/Output\/ConsoleOutput.php": "ce543515f39fd54233edd8d5701aea9bb77264e81d65c80a22167f295ee9d92d23261c4fc38d5fde52236a130a52d2bbe8f90aad14e5daf3cf23bc90e2914b38", - "vendor\/overtrue\/phplint\/src\/Process\/Lint.php": "2ff9376ca255843a5b63b7a065fe92693824875a58d258605aec1ab233fca35cc7ee73caaa3d7dc476638fb96b701c7a8809320cc8c6446905d08fe7285035b4", - "vendor\/php-cs-fixer\/diff\/ChangeLog.md": "1f5c26379f24485bcf9159dce72c1cde92c343242fca24b69407f577344f1874e40e41224fe3bcdbca1d1f8aa1e386266b30e5074877dc81b90fa15cd0f8d132", - "vendor\/php-cs-fixer\/diff\/LICENSE": "d09a05fd4a024e9e7f34e7f509ed1683efea0d414c5d2dff39c7ae3348909b6850da344315355c1b6d8c1c7a7a90745e4597c67200c08fce0ae513142439af08", - "vendor\/php-cs-fixer\/diff\/LICENSE_DIFF": "6604a8789fcb1287414182a5b8cf4d33cf9196fc6825dc8e8f16b7cf6be0544572065a9a46ff1f9ce7ec4d5e8fd6d0481781060f3a3697f84f551723f4f4c48f", - "vendor\/php-cs-fixer\/diff\/LICENSE_GECKO": "f245291772f89b15a5d5be5b2965e53da096343a6c40b0b01e8110f3c4b67ce8afd8eb1083f53befd647b5c4a02f10ec1d640e344ddf080a2efb87ef700b7182", - "vendor\/php-cs-fixer\/diff\/README.md": "36841abc8ec362861aadd5418005fae76ba58fb9dd084eafbf827cbe3da9ba9a2648b2de32030bbbe82c8cef031ec008c3e0886e1e837c8187d39454774112d7", - "vendor\/php-cs-fixer\/diff\/composer.json": "70af1f152a4d4480178ef65b36b2fff41fd323a08a563efcf4d2ad28cb9b92fa2967a4da0c96fba80acb2b3bbfbc276d940b525b4c9fd84eed21f7c9bed426a4", - "vendor\/php-cs-fixer\/diff\/src\/GeckoPackages\/DiffOutputBuilder\/ConfigurationException.php": "1daa0cf0f8739c2e0eea516331e29005dd44a2e51a62285629d6d2e2a031bd66897d52ca1ea3346dd2c89f8f1677609160068e79e5fa07919db26e8c16436690", - "vendor\/php-cs-fixer\/diff\/src\/GeckoPackages\/DiffOutputBuilder\/UnifiedDiffOutputBuilder.php": "452d2dd434a7071701841d75a58ef5566a3999065acae6687453f8ea2a6d8d87afccc0679bd45937edd12f0d59589fbbe7753245c424153adf0b05a5d16a4538", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/Chunk.php": "0c04e1486655cc8b5cb30377e9a9fd5c051b4731e531c629d995b0fa089c4c380edfbb550c78ca32b247a28b74e056ea950b36c3b37611bff50f93dd3041416f", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/Diff.php": "19c2f6cd491bee366642885b8348679e2efb4ba51e6ca40f1bdf722bc7fbb9c86e13f5ed995a904aaeacc0b09c1d0e7fc4672fb3d06441aafb0d48163eddc1c7", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/Differ.php": "08ef8b03fbe8c32fac3b8394836333ecb1b7f9ffec00f35d538d3aa29a7beef4e0ea70d3b0fb630ad4fffe6a9e54c29f6c77b1c7e95e0b16f10adf5b2c96f8a4", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/LCS\/LongestCommonSubsequence.php": "6cfe31b9512b07192cb842580b927834cf160fc101a6401d533f963e6317a23960033f6dc0e9d1fe960312edcdca6e89d4dadc2d6df9b98915d3e56a041e3ea4", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/LCS\/MemoryEfficientLongestCommonSubsequenceImplementation.php": "1a74b896e45a04a65f7d5d27127bd3bdf9c036d33a4aa571eecf851d0a00264bfdf6078a0526f0e1e862f6a79cf23220682ca68100b62b046faa50d5859b3554", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/LCS\/TimeEfficientLongestCommonSubsequenceImplementation.php": "db866723bddf1d4b85b1c10c389aa263210a25c987fe1f2931eabe40cec062de6679c7dad190ce1f02d076bc741992b9acedd7092cc5cbec9532b76bd733d37d", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/Line.php": "c480945670df186573b82c8e23ac7f34bdbc500a3acd6aa817ab45530e65447d2bd6e6d411a9b59562db3974b0a5a83df71e0d7bc733bdd62fbd023d1c5ccff2", - "vendor\/php-cs-fixer\/diff\/src\/v1_4\/Parser.php": "fc9cbeb49c10be849dd5191c7250294630aafe3eddd2578760f996618c4829eb351122cbb75e9b82df825494d34d5f75dfc5b5ccb59f100518648e6ca6fad207", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Chunk.php": "c2f004cf0ddbb4f267a3ac48b00225c7f0a69027940e0b5fad39b5b132abc9fdaf33931cb42bd2e1aee8ced2eaf073a9f7224c5dc992c782150cffd7590a7f38", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Diff.php": "0b1028b68867cc5f415d374147ff99cb140a1cdc89850f8d758313cb830c7e4271f9be4ba59b29441d26c160befec1eb4647f860f9f69d4d96e41c97f1cbe40e", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Differ.php": "41d447ea181533dcf5deda51e67b9738d7a16f76584c63cf0dd8254b807fcef68a2a50dadc242a15d542008d1035dd514e7e3b79449fb6d1e348923774552672", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Exception\/Exception.php": "a73822077410fbd912cbb31bcfe97a1415986dd4d827dcfb8d2ee101dc8b2ba91163e38fdc9ff2ee456dd418f149fe9d08084ffa57577b3356823ddbdc3d1ae0", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Exception\/InvalidArgumentException.php": "ef8218a7270bcdd56a272e7ec39d231e42ac9e08b63fc67724b7f51a8514c7c7dc3335964a681758556049562ef5806cb6cc197ac0ef4f22779abed62288179b", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Line.php": "ac63b5945966b256d74af1ad947969e16cc93e4a0e8c0427fc232db334fa0aa8378b1345cac8dbc578fc8c99b02243b15dc6f126162324931203a1cf246c8c29", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/LongestCommonSubsequenceCalculator.php": "03133433212149f72fa91ef5196850d3bdf450475a332a0c9c8d0d7b791102d3cbc4766d5cf50567fa633d973c5cc9659b3f5da44222af9214a1b5e02088c19c", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/MemoryEfficientLongestCommonSubsequenceCalculator.php": "accf435fef315a728d1280544959eee2a70461b837c4f051b9211052ba6679890434532cfd9e9bbff1dd4f4dc8917429ba44dce332bd72879d953463d0e58a9d", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Output\/AbstractChunkOutputBuilder.php": "ecd2dd34a760889995b6a353b5f293aec82c6686815fc367ff262b635ca9666dedbf2ad97d13a48e17ed920768d011470a5c538c53e99ef9a0f3ba8e1b22c58c", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Output\/DiffOnlyOutputBuilder.php": "cb5b7de2873d00bc454c6034ee9f6dbdd4fa5ec518ddabdefbdc2fa26faa4e224fb15d1849fc688a7de30a6e5208309b166208632a5ae086f95316aa99c87f04", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Output\/DiffOutputBuilderInterface.php": "3a07ea573e606aec2bb401f9cc0d1f8f5e63871bfe57e9242e4956408c1a9eb9c0327b63f05290b0245ee0ff2849e25d9e05f44812768966642932b9ed546f79", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Output\/UnifiedDiffOutputBuilder.php": "6573fc2c3e55d3116c4a6de25ec260a25731c17c4745fe68ad2051797c3a8c5a5b844814bafdec1f5bc77b42eaeb2cc704f3c6b0562827974a7a493af6b6a2c4", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/Parser.php": "86168a4e48565529e64f8cbca09c95cb102a92a74667468084c7a6b606368fe883785961d58942ac93b16a9c2dba136af0e54e442c5d1d166e94220ee29b1795", - "vendor\/php-cs-fixer\/diff\/src\/v2_0\/TimeEfficientLongestCommonSubsequenceCalculator.php": "1440ff49b3186db84fa52a8b5b3214a1a31ecffe62904ac11c953cd8a5ee9020f804ce9d00445cce8955ba27de29d4e558d943a4e9577b723cddd6adec5f2cc3", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Chunk.php": "44d346dc43edacf33d94a5ded4a71c0379a5f7b17725cd1d437f8278790f462dd1cf7cf0573bee68ee54335edf4553404dbf0e8045f649337feca286495f9b37", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Diff.php": "70b471e8f2d26a8cccace852f80d0242930de0ebebe0b1a60993ae41264134e6b0d96a84a6f3bb2a40ab396fba6d3eb50d4e1a27f0585a6fe6ba1c0f8a1416ae", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Differ.php": "610b70adde3e322b1dd268ffda4ea87dbcc84eb3c54e2de9e6c5306660ad190247b2b73be26ada5d450c853fffe644c7aeded26cb962f16ed3bd369de6c376b1", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Exception\/ConfigurationException.php": "ea4fa38e8e776f6bc7352910ac284e107e707e4211b97df5cda5acee85d3400bb8cbcd161559899bc861f7f1bd926bedc8c5ae623711ec4b409e59bc4acccb66", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Exception\/Exception.php": "b6878eade92fc0e4041adb61f601c856d4a88a472c4673594e65ef152b0f7979b3365be164421492c51171bf95cca932b7f3fef6b6874903d7bfd2d326d7eaea", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Exception\/InvalidArgumentException.php": "47cf8fb7952ce392f018e783c82c30c98d1bc43ea7533ca112b603c6ab876e8189b4cc1e9345e8f715a48ab098f25cac177d9ec64c1421f68e6ed817e5bfb070", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Line.php": "a6d003d8656982569812df42f74c2c2dbc6dd4abf8e46c67d6e52bf8e979869e3dc9615a96554c851bff557f3d037e401d4c149b7d379ca12a64beb5ff992936", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/LongestCommonSubsequenceCalculator.php": "6b18be4849fc1268db7f59146ab4683cf7711e1eb052ba8fda804b6566d7b66cc7959a65643d98c17a07505484b1bdb6157609e29b27fb984f619dc416ff0471", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/MemoryEfficientLongestCommonSubsequenceCalculator.php": "cd23163bbb70416bb9c507eb38433ed804b1c2fac927095015dc039f0816fe6152cec08b1ac80ce401aa3b9e629b3fd7fa3a310906ff28eded6786047610ff21", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Output\/AbstractChunkOutputBuilder.php": "7a2e7ff39e005a271b05c6ca061b593d5be244065405b34e7629bd41f116356fbabf742c8c92bcad4c28502a2b6c0985fd2b240174b8fac651cc7cbae4d2f128", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Output\/DiffOnlyOutputBuilder.php": "6c187f96b48692ad1897fa7d4ac2456dcb8f07cfeabb0236720809ba2c79277c51123a2f454a8cc524057fbc1cc8566a96d6347d9cc8f823c539048e57010dca", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Output\/DiffOutputBuilderInterface.php": "9752172ef6161d07545767e2726020407c066bfa981af8e82ba7a259cb3308038174620bbbde9eb35166d51a9e0250e1f73bbba9ae49f346bc961c33c15a1a00", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Output\/StrictUnifiedDiffOutputBuilder.php": "8b6bd9904768820fa14a5d41e1b219dcd742eeaa181a1e2613c5d16f986fb9edf01e520b59627cbe1eff46b2baa07de5c15b2563f258f596723443fd1c98b63e", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Output\/UnifiedDiffOutputBuilder.php": "193f3bcec1e18cab7017c52a8fbfae09503ac96910931fa28b2ef9d07e6dede3228cb19de6143e8a33ce2d3ef7b5e24f846bd9b13b275cc39d194728fe48fc0b", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/Parser.php": "76c47eee43fc48995094355edbd180544d239ab1b8129683ab75bf59af61a0eb2c5f22706615046b2e7407f37a6ed8f175c70486ee8b33eacf02ed3e94ef1889", - "vendor\/php-cs-fixer\/diff\/src\/v3_0\/TimeEfficientLongestCommonSubsequenceCalculator.php": "5b0b197e9064f665e04334cd09f7f6f2141cb19444757c717d1882b10a1acee195e35ffab0666b4be8eabb3e9a12e75e74444baf31ce4bf486d4cd632aaf44b7", - "vendor\/phpdocumentor\/reflection-common\/.github\/dependabot.yml": "e955a7aed6d0a8ff8be758f11d041f391025341c23432981794752cba09a724adc9a78d1db135408955edc86b3bc9b24c1fa4ca9567869b0921100fff622e086", - "vendor\/phpdocumentor\/reflection-common\/.github\/workflows\/push.yml": "c856944a368bc67f6a52062a8a547c1ac1588201b3d2c2a3cc69dd89d3621a2ab410e15d646fddf7246a66e9eae0f8d1633d3d0297dae796b737fa1843bae45d", - "vendor\/phpdocumentor\/reflection-common\/LICENSE": "c7b40bbcdc84ac20cc21ea965ab37d24add7de010dc309252a11ab2faecbf50434f5d621a4ee4775be3cbdd325142624e7d02d4cd044fd2d94f10f7e2abf8c00", - "vendor\/phpdocumentor\/reflection-common\/README.md": "926c98b23da0afcbdc930246c4e1fecf5eeb80156604aa785fb07d64d8702abd01330acf98564d119ded1d846acb23b0b359dbbb88122afb8f90f61359e4f437", - "vendor\/phpdocumentor\/reflection-common\/composer.json": "9225808e890e3675162c0d75b837172ea8cf5a54b6b085a10fb58c1b77c7a29e46ff950e03e85cd52a450eb9180f58146cb38ee75510a453dec664388a80752b", - "vendor\/phpdocumentor\/reflection-common\/src\/Element.php": "c22499e384441ef6e008d471c544a90df12e835714852e30b6cf1aef3edbb90270c4c008cb65711acb633630019a09fdea0c57346ba971c4facc19dfad4dcad7", - "vendor\/phpdocumentor\/reflection-common\/src\/File.php": "eec0465e2a75c0a7cfb95f9a68d35f47dddaec90051f7a3d01add3d6f5d7f908cfb2595ee68f3cc88fc44691b44548b26f0a8dfbb37e788b4dac9db744db587e", - "vendor\/phpdocumentor\/reflection-common\/src\/Fqsen.php": "bf7e9ac5b425e8b59c34e2ea341b13ab51a999e3ea9a03ded6db2d2ac0e0f4e4c891e41a8d758785fa2ea2bfd43b1708a3011a47043490684268c7580c7ec357", - "vendor\/phpdocumentor\/reflection-common\/src\/Location.php": "6650e562bd486bda49fd97a0b486beee79bedf19084a26ca3b03a60e6ab403b3afff2f946ec07d520a8cd9898702b9cf12e8a603495d911172e3432372a0a703", - "vendor\/phpdocumentor\/reflection-common\/src\/Project.php": "d1f13bfbb3666b620d52755e740cf9ab57470648a40b8ca9defb9771f6e36fffc8a878913e509ac09c97919336fce090754351ebb49eaf2dac9143c04dfcdecb", - "vendor\/phpdocumentor\/reflection-common\/src\/ProjectFactory.php": "fdde9e87475266d8c8892b234c91711adba018d343193a55f94731b4727e531a4723bd183f11397d082dde8e555c45d954e8bca32035379c5e9e7bab41203bb9", - "vendor\/phpdocumentor\/reflection-docblock\/LICENSE": "de5e8cbbca709d471e1582391e31e34dcdea6c624f8b20720193fbeb5e4904401c11eb58a9438888d4d4014fe02eb4d55616b50981a0ca0853f89c1d3dcd5407", - "vendor\/phpdocumentor\/reflection-docblock\/README.md": "5b1ee8a840bad01b1da24e69a43a008c37e462314566db5cf3b42179d6e4334edbc562bfd15e958b3ba4501d0925bab3e8a8de15b85705e11c713e442a77daee", - "vendor\/phpdocumentor\/reflection-docblock\/composer.json": "becc465a99a5fd253ab2308131b412335d7b3dc4901a25f61cb124f27f112b8ef22a31087e03721d82f5f9045ba2a9aef636d295f87fce9d8f887592cf90360e", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock.php": "6f22d31436d66b531cd93aca7cb32375c5a051de0c505a6de4483e20a6b5f8886aae529eddb74e60536fab781bf105f93952efd6d4662762607ab849e6afedc9", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Description.php": "02004b1a5bc1138dd1c21b1e0f3ffbfe1d936a1740a262f3ce5d33d94d1a1b65c88ec592cc1433c428c7201fc8a4fe35c3e111f7089e364e65362b412f20b75f", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/DescriptionFactory.php": "540b39bbee6361b5dcfd46ce06db554e72cf404308a6f64a9e1a4022d7ee4adb375b41aeb94b018150be752a220813e156306ebcd8cd8db4de1f027136c5fb3d", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/ExampleFinder.php": "af8377447f386417842df4114fe44d5193c66fe0130424e3eba6d1edab6dd1e815ff987b27f90a48aacaff88ee48db8fa703c431661eed27bc0b970e3c807067", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Serializer.php": "b9b2f93c2821c07fa6e591787961e6c4fcb94ba544065747377c6952a80dee2fd38618acde448bc105ee60697614d9aefbad722cbb7b7e12b7b8f4a585eb00e0", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/StandardTagFactory.php": "c08865a4f8ff5a5a11af8e5f9221d52766a74f0a74aee34d66f1db607e1f5c849d43e02b4c9319acd6c6e9c6f01999d00fabe72d7c4f292e5cb0367f0954e6a4", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tag.php": "61d8b9582ad647d7c97dcb7bd8a92cbe52940b64fa2c98828b4ec5e531d21d7a2c4c04523da6c1e7990166fa951b9834ed8da3cd85f4d1ea7ff4eba3b0f91bb0", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/TagFactory.php": "5d0f65163f755e5d3058cfb9b85c29e1a2296435e4bf83c2fb38da4fe69e986c0734be4a296dbf2cead4381d1d30b430887d30e0341abfd9301e6d1e5be37365", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Author.php": "ced33644c911e9f41c9cd4f18a4e902699cbd78e2413b6e280846e07862f0b218d806007207eda87dd19c5963dfc22d6f2d1c6e7bc3549fb0382c3e51b634064", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/BaseTag.php": "06c15ce4252457b19fff9a018b4a4e0e1ed48b1662c0df0e8a03c653f58a9fbf1bbc5f0398879e0d64ca96ca0edb766e72f095ddd101fb92d4da56dc00755fc8", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Covers.php": "e08cdf6e655e7ffc574eb3359c0afa1765b873014086ab1d723509aa0d1c7a9c63e3c2811c104468574d45c1b314ed5774c991d334caea120b70d8bcbce1f5c5", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Deprecated.php": "1c24bc56ab7315a7af848015eaf73cf0bbdc808ae59d1632e5953b36b462da9b70a2d2ecef28de8010beb50ac6ed56720e8c84d23ca788a5dfd4d1c2ae32d1c7", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Example.php": "783845001c7f35b92b654489dca7363b443c4abd5f76e556d2246a738899d719a2cc955e641d848bbe2eb3a598204acc9caea06ee0575254df5738311beaf23a", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Factory\/StaticMethod.php": "f29aa5b3195f04ea6b87046fcd079c904b480960fbc9cbfb2720c3249bd38eb1a4adc3a98b0ff02c5aba50ccba6d2492fc542f0e421598db738d1a33420f4ed0", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Formatter.php": "6e9b0b4416c6675f87b923de10c91c8c21935820fea5bb2dbc2d0a519508290e5e106332b88e7cebe2b389667a99506f2e43766dee8cb3b980c9d4725d9ba053", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Formatter\/AlignFormatter.php": "300816d9273cd8f619ad1a5db7ae9222dcf126f92fa7a93f000c4605cd299c954fb6f98d4cbd18eeb843c08eab53b6abc5c160203736e1fb49d5d812c32c28c0", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Formatter\/PassthroughFormatter.php": "c8c94feef0836933fd528a72a929fd889843d0fc9c7672c3e9cf2a458f55eb8ec3deb5067775a0cf4c16eb0d63529e16a5764d77d61fa65cc0441e04180198dd", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Generic.php": "13b5e49943874c49c861c57bbb0f0024f271d453f5b07a515b7e38e075af04feea53de14eb30de3167f2f8170b855c73ff36385f19d5085163aa598f05c1ddae", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/InvalidTag.php": "93bb19e2c624dd98367c7f2d8400ee6234896bd4cffb2c4a3bb2b1664b581a1945f128b7d763844c57aa1ca89902a19892b76adefb8c3b0891db27f049e8e4c6", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Link.php": "be2fd2fb66b7d3783a3205abeaf83371240766c5b6e29e2a7775c12a736cb926dd25ec4a782f1ec07893ff07aef6745a03997deb3f033f9490b05fea2fae40e0", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Method.php": "ee3df1797a19931a15a792accfcdb9775e07bf3a5d7166b428cd6b3708a766d279ec5499060700bebb34ff67d1d3613724fe9f0f45737e822f776c59e3a704a6", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Param.php": "a75d420548603f96a82af955692a06032e5dd5064e93e13949119f1c38bcd15a94ad2f94ee54e71dfd840c2e56589cf749e8432e0cd11cddeded50b706959305", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Property.php": "6f2e2c6673f5760854cf5bfce9b79d39f428b88bbab52c6a416b41c91944b1459852b030ead507916c72dc2b6fe08f367510c28c38409a423b7a98fb3cb5f929", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/PropertyRead.php": "7598a82bfe1e898facdb45788cbf4b4fde238e3c0ee1a8d288324207c43b3472cf612a7ef90860db0a2a535082d29a2f1978902dd9b71d2115b935f9c9374265", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/PropertyWrite.php": "939af56f43457f2b8b4e1e494d548572cdad45267b4f34dba231a0a8c37077083224512b08cfe520a446e92f933743eeec6c8fd506c6646d103fd53a94ce29d4", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Reference\/Fqsen.php": "be5d955d6288ac77ed349a14aeafd3c82c554a4dd00524c2e4653d55a2bfc5ddbe9de9cf953c446edcc35bd02013e472a717ff7efdd871c5dee3aad4fce6d165", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Reference\/Reference.php": "2464e86f67891891c2ee6071b457309569c363075b12faef03f641185ea8ae13ca1f21352d522c2ab0bf9fc259189aefa78f8a3319354734c5fff41109bdff23", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Reference\/Url.php": "927e67843095663130916dd50d96609dec4b117e7b51ceb9df61cb93b84b149d9806959bc73901169bc4934221134c46e40bee47874dec51db9076710163b130", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Return_.php": "37b78c073eee3238b2df8cffb8b5a2b9a03505aa1ef06fcba0f2ace3dd3153b83c123475878aa519108abf65fb8926e40876cbb7dcc58fbe7ef7272a5cc5feef", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/See.php": "1925378611556e78ea2b7620dd392beceac6f0dfcfe0fcc244d792787fb25ebee9870bcf6781c4ab0f903a4d2a632d9a55f1f4ddd6525bdcd7cbb91ae0b94a90", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Since.php": "5aa1d4c5ec97eef21ed70a6b983990665b7169c6ccc3ad703b7f8a302f08023839144f4b8acb71941de389046da5da6aaf4aa1d9084fffa8c0d4c15f72ecec23", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Source.php": "689dbc67613d6d82518ded422d0dce18ead73aae62c2710396f18176f8c2c25c2b9fe32de805311183aab65dd59557eac53fedbe5fea6efdd116443e328f9cca", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/TagWithType.php": "c0ba06160d2b971ac629458cc5721c32fb606df9d0d6184230bfa3c991fee98c4964e5e170b5655351b7569aa6671e515a7f92b434147b228d5597c37644e4c5", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Throws.php": "d7ed00a2cbed26639e534e5c86cea68b496c95bd47c71776f998c7d32eb18bb56b0a19c43d76acf020be5e56b789ab0c0aef515021e5f2fc4b4960f92b6e8d92", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Uses.php": "ad6abeb18cef6b0a10eb254999314eb1835775d7af3a301f8fe89e9e5f176923cda837a70e6ee93a0f363de5f5dae01d26b83fdde73b387b1fd7f45aea528a3b", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Var_.php": "d76898f5fe061e56bfb44f7c1e69ab192bf76fc5fb09ebfc375e845b243f859c1bea4b3b04beeaaa225aa6db8f47494ae586e8d8a42e5624a492a12174d9c9de", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlock\/Tags\/Version.php": "9f2640dde682ca3206af8351b8f71e4780ce8b0d86a9a18f581600d27bded705898a887dfe2dbd51097a88ef47946840bf4c31f365fc821f4100ba734bc9501c", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlockFactory.php": "dad9ec2c5b35f35833b277efbd23004040076e95ba17a31dab20e97de8ac9dedd60903d342e6952df615a4e0fa581dbdad123ff3c45aeb65d364c31faf20f6a5", - "vendor\/phpdocumentor\/reflection-docblock\/src\/DocBlockFactoryInterface.php": "addd2023c1697ac14c842574613497762082e8ff7895d86526c32b1ea977d47f56392354edce3a54784b9a6ec876ca537173ddb835ebe6cc36433473c2a81382", - "vendor\/phpdocumentor\/reflection-docblock\/src\/Exception\/PcreException.php": "64d276d06219d7687760438cf1a6d7602b974e704e604453523b3e4080a7bd9d534a6f675686ab3bd4a6313f6ae16d79c41452d49d9fbfd81f287f82c9065c06", - "vendor\/phpdocumentor\/reflection-docblock\/src\/Utils.php": "d566813e1ab2ab6147a2f5328758e28b4a2153b76234ceeb3b2e906ebd963c471e8d1be706140628fcc494556721bb0144b1e74bb717f9441a07334e1e305499", - "vendor\/phpdocumentor\/type-resolver\/LICENSE": "de5e8cbbca709d471e1582391e31e34dcdea6c624f8b20720193fbeb5e4904401c11eb58a9438888d4d4014fe02eb4d55616b50981a0ca0853f89c1d3dcd5407", - "vendor\/phpdocumentor\/type-resolver\/README.md": "2e3c9e24229096067984282321d4260ed36be442d0b648102972b3dd1e37a419526afab53a032c2f31ffb4a4c32c95f15dbdc022c2c974c789649cfe11a53b45", - "vendor\/phpdocumentor\/type-resolver\/composer.json": "8a048c580e5231039cbb48f76e46a409b4b3273b85828e080223be8c96e1bfb5334333a960e5db51de38db3d1ee42b3b7a63197388d85fc1b552bc6cde1f7fc0", - "vendor\/phpdocumentor\/type-resolver\/src\/FqsenResolver.php": "efc0e68c4b2366e12794f99fc2f512da52fca197e4bd8584139ff3d707d1a15622bd3e9caa76c7db281c22c86f64a3c979d33cec0cca6166ea35a5cee71f01c2", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoType.php": "59bed4d8e10ada2e432d117e28a6426292210494a1003dd60aa2e7e94ef39ae5b3575002dcfc76adba9556fe6a1496cc76e9c10b4e28f05ce1286222a30ca616", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/CallableString.php": "d36fa9b9f1e4210ce1b1ec84560c3d7ef41aa7ea738fbd00b8e540bffe9c545f2b6e5531b8a822922f0264de520b084d2bd5c5586b320edf843d17dacecf263d", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/False_.php": "f379422ccf910fbabc2cf272546e733b4d2a817421e690ef2ea2667173cd40ba8d406841c9d198a0e5affbddfdeee55d0a3565744cbaa4933433f9396afd1839", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/HtmlEscapedString.php": "2e256eea4bece2fbada9e4f05ec979224406922242428378e462b2ac14407f81265fc375516cc5eca0b6fd8a17193331e77ca81e56778df0d77323e0c2b19a8e", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/IntegerRange.php": "1f6bebea1a2de156f804682c0b472cb8e427b6d37619550fc25f6842f305759f229161d1b507439745a6db46426387deb8a777b5134a177bd7ed6066fb0ec7e8", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/List_.php": "f6277c7951fc9c719caa073e81bb2f4c0636dd33cdb27a8025757d035d26f22dca571289e499e1ec53bb886837f7776a57f3ae0c3cef178b55f6bd9d9a913eda", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/LiteralString.php": "89f99252a80c0fd2320f223745dcbcc3d9150fd72db35bfe4b02631b8bceb90dd2fc3184eb9b2d28b90118eeccd9747a4dea9fb380053ad161e9b1b80770e740", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/LowercaseString.php": "e2d77138b5a8a72e8579e042578a2654d327c602ef0a6b20314ca3e0fc0b183c3930b12505418c41a70522fe30c538e1fd5c21e093749d539bd2beba30956562", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/NegativeInteger.php": "bf0f56c13afb94b0fb6f7295aba9d6ef67f5c6f0a712187a0a1ca36d50c4d246d2190991456370448f5323960e1c20d0c8f850232ca90769346d8d4202693a4c", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/NonEmptyLowercaseString.php": "e73255510d9a159e46da8628954002eac7f9750e80703b7732a10d8d0c4225c164f22e36e6eb4ac60edfc767872875fe8ca38161f2cecccedb02d8e3947d66a1", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/NonEmptyString.php": "5813e7b6df42e37b4675fec7253157bc106ad1cc2176e344cf1927084dc7e1b62fed27bc7ed98bb200ad9f8677625321955ba2d05b4dd7e4731592660bf6bc7d", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/NumericString.php": "3cb2dfa36570dc8d5eb6d3dd1c2e4f20a17ccf83afbfcaffc0165fb3ae8a6816d2834bc48b364f752c33408959db56fa9acd21dbd4307bdcbdd9366d933fb647", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/Numeric_.php": "38f953bcd2db327fcbd77d3dfb0ec208f829a15bcc7390741634860c4605fcbce838442fde36d1607256212480dfe6b28e6771c216602dc9ba61903c9096c543", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/PositiveInteger.php": "6228e5961477f7b0adda8f36adb29dd26149cbb57ac2466067f4ce4da7e9937156362f3b3be09c922229d340beb8d7f81d809977cce469cf521498eea00d1e31", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/TraitString.php": "b3a9af4482b50ae09a4c6c98bad133ff4488240a2cee0914cca75109fe8d136c38bf46962001c2d41b29eb5ede8c5688d1b7b7e7452ae9e47fdd523359350897", - "vendor\/phpdocumentor\/type-resolver\/src\/PseudoTypes\/True_.php": "430c6cfe0516cac47d4765d7787f3e76dbbc621409d9a7d44748923db68c011fe623feed4bf75cbb6055cc9478eb2d6162491f36b85a9bfbf0b63bc3d75b39aa", - "vendor\/phpdocumentor\/type-resolver\/src\/Type.php": "9234e85f3d23d461c7e53177fd4bd4a2a3c93da99480d575ef41829c2655b96831e8f65ac61f869fcb61b6eab1d8e1db40e1d08075ab8217d7ce24084846bbdf", - "vendor\/phpdocumentor\/type-resolver\/src\/TypeResolver.php": "493f7bd3102c7407cb15612ff0156e501dbad60f92f05f544b395300264a532c9956c50c4ffa7a7a19b8a2e68e11efa0d02c2627a4f1282d6e5513aa909783f0", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/AbstractList.php": "a837b3074587dd49319284b497a844df50e4f3ab50ce34ef69cdf6f1e5aeb86d9e871e2677b3a1ded1dc21708657d952fc01f125b9c197be1d209ab3cf39af23", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/AggregatedType.php": "ecce7dda7afd496bd5f1491e948a5350d491778dead4e999a4b1d64f48bc5e74f4eca8eb74b50370fdc37aaeecd08d0b2df43b94acc653acdf53b3599219b5b7", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/ArrayKey.php": "989711622288fac32e44a2fc51900ff1025bcd16ac36c55d35b768e05a84f638606d4f506daf000e204195721db6a6628aab8b41d29a1c331813855eb0cb6954", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Array_.php": "f6c932ec295f98ac36169cbb8067893a996536a441b9c0fccb2c0d1b8cbd6bcc7adff26c56b9bd0bc7e2294d6cdf967003d39aafd2cde072d598edb7a32efe96", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Boolean.php": "8f58a7f0651d1d9c0ead15b4fb7c7f8da68653ab692dba183147fc5066627b59a45574c095cbbea60c38b42956bf9089cbe6b8bdca4d5695f9745cf550fb5b66", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Callable_.php": "05d0bdb5659020fc6b0286484947eeba1e07304a5d6799e483745d75d74ce21e9a619fc6c4e3d289b68d49d72a690341e6af6809705ed86fa204b89a346d0a19", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/ClassString.php": "93a9be01acf56813dce5f7e85116b935d42a3fcddc17850000cbc05699ad1c4009e99f399b0d0810de4942e675b05a5377e1cf05ca67ab3dd311a589fd5fee5a", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Collection.php": "c55e152bcd3ef14676145cc27055f390fadbd912f3994fbfeb04452ca5310f621baebe18b983be23266450ec3f7c305f9db16a180f0bf63f1d5af611ef6e98af", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Compound.php": "b27e738e8b2096ff733c8bf9b619ebff65c23c6e452dc2e995670b1bac019d49fdd7f57653758a4b167e40043734307ca55413ca7a245ca8ab08459723b48b33", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Context.php": "ae2e0d502c2ce7235e477fc333cfd2cb9fd1ab2cac7ec35347a20ae0444fcec0682592f2785e93d1c62576219dc262ba6df6d66b082c8047a7170ea750042808", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/ContextFactory.php": "c92ff2aa049e35e281b0b56f5a7887874742d379ba047ffecb53b7d2c954cb6fd2b221e4e7dcca7daec150286613c30dac1dd1f4c42b8cdad94441ba45a866c4", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Expression.php": "ca22ec5b76beb63b67a8f348e0d0cf8eaddbf4d1af4602298f11cce44a8596098fbcbf275407437bebd2c5b9a3a05aeb3cdbafdc81b9086c017d7fd175b5a3f4", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Float_.php": "29e4aeea3f87aeb2536321822342321279439068925f55016aa8a895bed3d99e3be9135c930184340a61eece90bf2bf729b40a817df4a27a76c9c37612156a82", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Integer.php": "d5f318c5b66060dce4215284dde7c1baad4278bc2b846d0aaf3fbecc8797e9fe7a620e478f4cdb359e2d7c24dbf5beabf1994f7ebf8acfcf720e75f200ee7266", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/InterfaceString.php": "5dcf3212f9a76be3b2a504f8362590acd675f534206c4645cc7893e1b0e3e01dd74eb673a73f8f73ee866b486126f2bfe072e32f91b51abfeafed0fd2d5d950e", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Intersection.php": "3205ff9d8154eafa0b25d8abaf14098afb4efcc305c754188e03bb75effa614359c4953d31bd92e6c49f4af37c1281749d59245b4ba6a78f167069212175ccf9", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Iterable_.php": "64d7057fa9760b534e186f9372058a6f370dd1bd5c6ad7b0c16c6f237a0ae2d123a55d85a0ccf40c7bedf8a1418099c32e12f46f9c4c4ff29e9ff1cbb3d870e7", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Mixed_.php": "24240845afc28f2e749158ac90b942571bd59d8a2b1fca2585aee8eb6e615e70f7537bb873f34f907d43dc696553c31aec818ba35e6cfa1bbaf4f27c539fcc6a", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Never_.php": "e1887a9aa5e9a83bcbba4119ecfe3b5c778322f3e0515f67f22f8447ca070e0bc57a77ff1a2cf8bc76d8ac29c0bb6d791de5ed592d11777f525eee06e5a86c5d", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Null_.php": "1bdd169526f0a3fb04056433448a04626e5a255c2a8ef4f67524e45a09fd53d18ca426392500a284a779545bfd83b82625671297fe24e11ebe01932ec786bc50", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Nullable.php": "f7d41eed09b2a6e833bc2d1a9bf9615f56c5d6e6c01011b17ca82e9f161c6e32407e8e4b3a0a032436ff97816d0427e956b2ca11f1a57ed03f5257cff3bee19b", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Object_.php": "f4c8bd21fe483617479fbb544f4a6805ba4261c453f4d30f59360596083227ce4a7ee84e2c27608bc414a1547e728711209f79bbee5c9a1e8db1fd22260606ff", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Parent_.php": "876f7173bfa2e30719c75b1acb9e8bb1cec7da4fa60a8cb19067c3535e3696d49a57722c8a9b01b169be8a9d9a21875f9521a9f96d1b39c3efaf1a0429120011", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Resource_.php": "f8d759839b6cb0f969cf945aa76c0079234e26693d96fb40707b8e0c6efb9c3b1ce3f8ef0546e0d3d19a9669911301cf44bf3d187c835822c3010ef0c03eb5dc", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Scalar.php": "ffdd359bc96a83fbfd1afbc866b8487c0e7ca3c8c203eeaf217f057bd02bee1af9690b77caca45abe797bed178e29239827f1f66a1793b9ffa3ef840315a68ee", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Self_.php": "725b64ab0fd1bef648d74a96a17d1836086d2e1978a8274419cc9abac4a6993f10051a57674222eb625f30a10ccd9b3c7f5af7967ad36227094445c700dac24f", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Static_.php": "bfdef955ee4b62bd674a947b42191d132443b3a340b7ca9068296b69dea540a604be83f51b4f8f13a97cd539233e82c5976852e3731a3a7fd4c7ce584c562517", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/String_.php": "461d00bbb261e0673aa0d2b0af7ef778e95995c708d21ec1cf6a094808cc826edbcac6f28dae8e30722328010bf2482996de9903c1eae0c72e3c3d17d5ab37b8", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/This.php": "668a8676c5b36892dac6f93230bd9aee1045d9ec8ca8fa2207032a387cf515fa51502fc650e599d3ca9c577f073a5583130c48f3723c086d1c41814fdce4b60c", - "vendor\/phpdocumentor\/type-resolver\/src\/Types\/Void_.php": "aa07aa025862486b0a56e49c6b1b4ce9348cdfd966100f0f0d5072033e54200679906cd1ba61288e0d7404ebb174841672cd0098b40406c643b665131c85e0a3", - "vendor\/phpspec\/prophecy\/CHANGES.md": "9a81d38f33f50e8706680de8f305636828bd62d13336f2de2757eb2852d7e506f55ca6a4efcf5a6acad9b6aeda49a7984f55c4e8ffc54ee0969db8ddf5b693d8", - "vendor\/phpspec\/prophecy\/LICENSE": "d168de331a37868e2cc84e02b156bb111c93efabcf1377a0e42a71768aa44dd3ef3515106ebb2b04bdc69a1e1bb3b8895c4e8b12c5c826777117ac57f9d362a4", - "vendor\/phpspec\/prophecy\/README.md": "4d8909133fa026f8dac13e9da61843604ecc456b4257b2b8957b197cc1f241e4f4da162b90df111b79d3ac7d3789bb4acd2dc1506388449501f18fb0de893ae6", - "vendor\/phpspec\/prophecy\/composer.json": "bb0b8ed9490dbda474189eec75acee3ed652936eeb57c9d279d69b3c05dead9e8c3e1c1036592eb556e9e4275a9bb5a737259742de8e354297f8813d5ffb89f2", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument.php": "309c12914b94a4267889f2188d19db76aaf1955340dbe5fb9acf60c6fb543056a2cdce0e0698f69933d89efeefb02d1e48ae6250be21835dc22e77febe43f638", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/ArgumentsWildcard.php": "f5b1d907554e6e71f3f9f8032e6c30cfc0d506ea78d9e283693ab655b8edbe55fcf8518561fac81f83bea31b1090f0a7962abcc2cd2dcb770b6d58a001f03a91", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/AnyValueToken.php": "32db1f7800f27ca98187f30b4211364686a057e70f80bb10637a966e8426556043fddca04592fcb58a613a2fa2811e4013763faa1ef583a6344d477af99d8cc6", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/AnyValuesToken.php": "4af7953fc51154926bbff310ccbdc8123500c86921463f8a2ce518ca8a0e264f758ec572ac3ceeabe0afd46562e91427a5dbbcb2141094236f74036005db4d55", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ApproximateValueToken.php": "b12ec56216ba9d1261dd18e317431bdaa69b5ee3abca99996bda6f01f978ee8c86b1578c762174ea2171d9f5283a14f0c2e0d77142a787bfbe13ddc39b342c74", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ArrayCountToken.php": "77e5dd441d9b384635b10b3f02b550adbe68b4d5e5e5b07af5493242697fbe18a323aeaae12949efaed482d87a2a76b3afef6ac2e2e50d6643f8bcd146ebc0fd", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ArrayEntryToken.php": "12ef3bc2e52ac584c2b424372a52d3184cc10f7fc4051df09e42a99a911b1b6c6fea9a63ffaa60611db237204b1dce653767bef8fee56dd26b06a0691a2245b4", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ArrayEveryEntryToken.php": "1bd4aec0eddea12874bc02a5b9b3f3b893a77c116d1a696c72c023802a79d3d64ab8c425d82bb2675a61d030b9a86da13db37e96e7ce570af6fe1023248b1726", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/CallbackToken.php": "39c684042bab127105a3036a53c6f6888c1e8b3e2d069e7503578918e375e438ef29dc764f76eea53962e30bf95146d8affe618fd4ddda63a6269592ee71f5c6", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ExactValueToken.php": "3092c591e9f5c63d130031ff2a5b7117280c3a1eb4b08e8a33647186d352c81025e208b31ebc9346aea4ba02835169a7bbf575a0d15dc21a3fdc33de8656e313", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/IdenticalValueToken.php": "55bb873aead5fc77a679368c39b18106dd760eb1b8d8ce07a998d437175857051669dbb60256a10a5301b81e4a63d06053b7667d639f783fae5fb02dc22908ab", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/LogicalAndToken.php": "9b3464d2eceee7b8c293ec430a4b8a3233007c4ee8d344989d31d941f1f892f47b774a79d2f3630bb761d9508c6ea1dbad2f362e4c586835c69c4c3fa0fe8bba", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/LogicalNotToken.php": "27cc4ab4a7bf54863bfa058d973e2f9d45747fbc58398d5813ec250fe7c3087c2e4b8ff62a46853f519ee620e2c0868bd4002484f8068d13bffcea9574f3eeda", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/ObjectStateToken.php": "2f025bb75cbe6c8f6b36bd247607fe11c17e89bca29882b274a73ee655029146cd2845523115d1f467cf31ee662a197eaaad2a597c946bd955b2ce6fb9feb375", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/StringContainsToken.php": "01559f50e9e42ebc1d259bff7daefebbbe4d3c902d521bd6c3b8903acecb1d9069bb1f4725e907331f85ee7dd78d59d10add5b336adaa785c12ca53ae5044d44", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/TokenInterface.php": "2b4bda26bdb7c261aaa34c0b63ad57811a79993a74ba3c8301c85253fa0ac375b50351412a9c0616c2c49988b93b95fc82a36c6ab55d78d6cbae6642e7cb6428", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Argument\/Token\/TypeToken.php": "6c02e8582f3048ee40af37e8c3f159521d81c9819e980b251f7b9eb90153792e34536e842be0ed4b9ff4cf4b74e30d366cc542abb8432e2f7cf3139d77851e57", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Call\/Call.php": "fb133e2998d3922c4e23f8b681eabdc4138428f28dfff6d120082587fcecb52259f6bdcbc5bb08a4b354a53790aa036a5c8916ab9334883085a5616902558bb6", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Call\/CallCenter.php": "370b61696bc8305669e07b5ebebcdbc599811caa7ecd19b44de05c9e6a49c7f5c4a40d9273c28f2867d8212bd42a811749b51ea43825c68285ef9c85efe25b17", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Comparator\/ClosureComparator.php": "58b2b6f15dacee60980a19bd713d1ae3041ad9fabe383acdb37bdc86e821a07deb7fb57054115225e33c2f071a4c4e453647ab512008c00219546775dccb024f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Comparator\/Factory.php": "f5a20712f30818002b582438d160ccdd4c5c8da6ceff96eebfbee9139aed19a6bff1e453b656ada906c960258f2ecb596a353f0b5885a6e902a24ed6b65cc129", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Comparator\/ProphecyComparator.php": "8a49b15bc51789fc087fc4ea09522315f2f48ebbd61d462832190d025432807b0d90357f23162aed4ed95b8d6ba2a4bb57d19c0a7b09039c08641a582303aa63", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/CachedDoubler.php": "2e5f803184f2b9ab39f092b53f458a0dd8acda4cfc0298481e47ef0fb7cf42e23a58446c36748ecc9c855dee588ece1f2aa248483332c854284555d47a973ee4", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/ClassPatchInterface.php": "668f24126d90cb6ce30aed3f9d05480a33fb8c46d430d64ff4daa3178a64e4bc7339aa2791b1e2c1ef76e15218b7f79103ef6d4c1b2cc6ba6caccfc4509461d0", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/DisableConstructorPatch.php": "447796ec8732083ffc61dee7d7cb0f804b0168cfd6cad227ffb76175a07de22efcba4a2c4c090aca6c24e92058bfbabe746fe1ca6bc32078ec3937f498350eca", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/HhvmExceptionPatch.php": "00cfda5661c8c038da19294f3175c749bc0104574d825d12ba21b2586e7db2eb50f72bed132fbeb2dd75519f11b3734f66a06f189b658e9a0f784caf756b35be", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/KeywordPatch.php": "d106c0278c8f14597c391b39ee67923430c59721701eee02b0fea39509497097b1d9abb718b953022df294e6fa3e18e72165ab4bb3f8a12ea2fc03cf0a674994", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/MagicCallPatch.php": "9ceed2ea562d2c487af41b7e9fe3ce946792408d5fd581b0a10494e4344b36e6fc3f2319a5c5ffcb83de86543f8bd269b859f7117c2cc5a0d971610f08091983", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/ProphecySubjectPatch.php": "eff7a7483f4890b184b7591a913aa1149e4f165d7223b88d3c5e212291c42254fc6f443214c9f42a2695a4439c36a68daf293e16a2d532574ed757f27bb34649", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/ReflectionClassNewInstancePatch.php": "c86181c0a6581ee177bb99d751170bdafe5df57842402d8330bfe30840fe29e5d349128b841399fbbac969edb54fc2386d56f3ff70aa97c2d97a72fda297cc0a", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/SplFileInfoPatch.php": "1e823afcd37c21d84d246be72ad52dca939e88e0575975b87dab2d8c0de3ab71a5f5fe8c41b91bb7370e92838570b3b628f3fee1c9abd1904dbfe3f129192e97", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/ThrowablePatch.php": "401f5fe6f7470f51041b2ab479d101dd91f937b867cecebfa9309b201e96fd0b3fa9a28398fab2c825c999f10172410ff408bd9cc3875fb29013ea439fad521e", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/ClassPatch\/TraversablePatch.php": "9e816d28737767f3adaae604b45a593a2f52c18c270e277cb822f5d478f211555919cd81a6fb0507027b39b68d29a27358c813d9b3038e4206fbdbe66f1c765f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/DoubleInterface.php": "1e7ba1cffb8ba2f0fc3181314465c01c4aad00d586e8c3d3f517a810ef8ee4e55aaeffc8462a2abe5fe4c89221aa2c2282fde192cb41d70e243d54c0033dda78", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Doubler.php": "4e631724e9dfd27e825f786dcc3851a50bb9c2bcf4d0cb817c2f7628432c4b635817eb14d57fc7f3e2ad5e86e17224649df125c24888f233e9627d0d28662832", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/ClassCodeGenerator.php": "e6e68882825c5dca43632831fbd34c613bdda6be165e111c4ac2d87bc9a25f7343fd3fe63be54339276ef131b825b082d396a2cf713383bed2860abfcdf7932e", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/ClassCreator.php": "fd3343db566082c5ead9343cebfa349066abd7366ec76ce52aed68de48c0cdbd4e5f9462ba6c187e176071e21b2164a1c161b83d3a8716da9ff4bafe9f052f2f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/ClassMirror.php": "422154ec71dffd33eb28ca80ad5115a295bf5d08ddc74ceb240e73889b488c4342375c1f676014c2d7bddb7a8204b433e19214a81396bfeb99777fe345abf652", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/Node\/ArgumentNode.php": "6c005dc3b76c568eac764f68ac0eae078644970de08400bca2e554babed4e69f44d04ed867d0902c97fe66c8be08f3c5b59be2cd121ef2f22754d2a304bc63dc", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/Node\/ClassNode.php": "19d96f09e95815cd645d1cdf39815e66d13d596cd473e190f183424e307e5bed19258f02175ecbb6b503d454ab755c3fc1b5a219b82cc4f7b8e412b9c18aafb1", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/Node\/MethodNode.php": "13df17cdd3d9d7413ba3047226921661a5022d6d8d18f9cef43f2fcd7cf6be65c28f2c10776d29f92ba437bbb93b25c253f8eccd2418f6f938eb2f3f121be9ba", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/ReflectionInterface.php": "8c87a768aa60ab59fa54bcc717ec6788be155d52636d899193253835268a1d5d4f149422be0d70599704ab853d8bec1e6902cb13342c6b3f620a1d6218174f6e", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/Generator\/TypeHintReference.php": "270b017b1a412c1b971998f83068d88bba4b5af133251e2bdc52d6944e0f7308067993e9d4ec699d11641df1ce28e3d0aced42ca7111ff86f68fd4ab0281d823", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/LazyDouble.php": "23f5b82b2ebe0356d2c089f016ff6398c371330478b486022a1183d038ffb09123afe0d22cfa4b53e053a4ee6876304b3e074a072b43039cfa3f32b5c7ba31e9", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Doubler\/NameGenerator.php": "f11083cde5435c1bdf02e3f8e71896b0bad70759cfa6be31843f448fb22738b69f2785a64330341cdfd6ac52582a3a9fa73c49076d7ec8f15ef929a379a43efa", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Call\/UnexpectedCallException.php": "c5f4d95a675818a10ace16fb5ec7bccde7dafd4ceabda2b5f05b70d6f1c8350210dd0654e5e65161e2efbc3227378dac00e2238b6bf1be7d7c7e8a74203efdc3", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/ClassCreatorException.php": "bde48b6c22c711cf5aba7583c23e256794ae5b965eb605f074084b22497716930d31a0e05a0be920d38eee1abe76e9ad960c9834f482fa9995a71b82a72d213f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/ClassMirrorException.php": "23c3b7361875042b323589f965de25363c4bf9bdb1e7f02af731de5199bdff1fad6c3843e31a218ae0c22c61e21c8bf3a9adbbe09bed1d0f015e2939905ff03e", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/ClassNotFoundException.php": "91e8a13793021a56aa1c309051ee50769c7254eff0057a1ed367e321620c49b99616496c6f8cd98cb19dd57c2de12e2acb55f2959d6c86cf4a1c1965642036cf", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/DoubleException.php": "955dd3e85bf6cacf833ee7b711802a52d7fade71ace5741e3689c8c5a901ebf50dea71e63005f68ec214e6bf06d57c25572d7df8ca9a5abfd622761e3e302d4f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/DoublerException.php": "789e951146ce3bd54e568f89faba6c69900640e730df01d740776d478dbfa56039ec0b950fee6565124053b3b5ef96cb562ebf90b7812c452009ee263f9b6a4e", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/InterfaceNotFoundException.php": "4a4c2e7a35f089dec7d988d662313490f43dbe41c02562c49a768963a95190e1a98cccb71787163f4261c3117a8217d315496c61de438b9c0729126e2d8914b9", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/MethodNotExtendableException.php": "21fccbada1f7027c39aa202be0ccdb4d58b65effd746a7479429f08f6a1660c41092c5432f13f8ca1a87be2748e675ab2ef1776b9e79395fc6e69da8feaab082", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/MethodNotFoundException.php": "ad704e668ae068b72096c6151fa077526577e02507bb0172b24167fc6afaf4a8fb3dbb9be24df4a379906a3e16ea480abedffa622c1d744976ec3dcded479080", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Doubler\/ReturnByReferenceException.php": "d19a5861eb2f17da42874c91fce15bb1ba96eee17fda6477d3e8509252213b9495cb6e41680a53e08816348f90d44e6c5208ac48cc1e17d0a3002c699f231c4f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Exception.php": "6645c0f93682233ada6732a235a8c542cbd78913a03e5ad9c30755486a83da1de0efecddaaa4b8c8935b14c022b3ad44b60893cfa2da07e18040f18e8185355a", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/InvalidArgumentException.php": "b5f8bbfecd7a0fab3a42316c5303f36a3ca249c482d381ac48b31e77f17c37a4bc7e233d4004a40ba837659343a707d65ee928c12a5a1d0e3760552e5a95da5b", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/AggregateException.php": "41aa7e4a69f5b60a48ad9a051cdc78b7a9663c823a89f5b8cec929456784c19c021d02e1e44520a91b142029bcbc387a0de0633a4411b1074c7f4e1ecf4fcba6", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/FailedPredictionException.php": "8ea1dc92ad7371cf09df22ac7b33cb4ae45f3899e18418346b0744673c314b86cddc04579609566a10f559a6d0a3d496bc2ca42af17de6b7ca41ed666b107b05", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/NoCallsException.php": "30701139d78eabb43c2d3b925fd6e3f9e63b400af7bcca23452ee5895d422056f8d05c05193937ab399a6f48c3112378a9e92e3f6ccf8822cd17d32b20975454", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/PredictionException.php": "9a17853ab3daf6ecee1489eb2c0a64bcdb8ed2f3cc34f4ce01b925014d28990e1063c94324726a6f491f31d62264ca5add32c7484fee5f7f66781dec6fa39fa0", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/UnexpectedCallsCountException.php": "d034d0b106bc437308fb5f189066fa73816a3543bb8991f35c6746c8bce4563f642eaa6f74224bb2eb2687ded421e0b76ff5b6abf4fe9f737bc9a535962b3e4b", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prediction\/UnexpectedCallsException.php": "a4bbeb9cfe1539bfa33732a8146047a6b59f8cadcd1d13e7d8a460badd03d3dbf480b14a8fabec4ff75ad8fa4d22e8a4acfc790e08af771343ecc665b0f55874", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prophecy\/MethodProphecyException.php": "7e3f1d4ccb0cc4768067f26508713223860d06d5e637ab05d78aae71115e0f660ee7a056ff150162499f53f79b173098c48c85849b67c5ee13f85d24bde1e7a1", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prophecy\/ObjectProphecyException.php": "7d28bc06463fb3569e456f04ad4bdc4c78536d826202475d69bfc813e97e40d4b69c3a83ec3192f73e3ad21a5e7ae6f02782f0eb12570fe3b129ee201bdb87b4", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Exception\/Prophecy\/ProphecyException.php": "d1282d2740c8ce118501a542793f9a181c0364b2c8753c97bb913c7e03eb7f7cab40a2f8e331f80ab76ac5bfe10b4805b4a103d7cdf9a6f33817825647dc0198", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/PhpDocumentor\/ClassAndInterfaceTagRetriever.php": "c71e445c422455dc66e0206ecde16730458b45d752b422afb99ff7cc9ff473de6eb8ce8864d4ae8092bdd8aed4975eee3af3490bab6837ae621cb6aeb00ed7eb", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/PhpDocumentor\/ClassTagRetriever.php": "cfd452cae41c14c72c7304edf060996c971f542f9b0582d0830e1e1d6cb87cb8d297793bc00960423e551a2cfad41fa631b8daef2ca6981b4db1bc1d459f97fe", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/PhpDocumentor\/LegacyClassTagRetriever.php": "2d4bbb355f8fd8a511eaf95091b7ff68911cd744f85ed3d0b1789fe244096774950d2d9d62fdc064d43dedae0108c9223e451ee748142f595b3feac666447360", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/PhpDocumentor\/MethodTagRetrieverInterface.php": "d2f4494eac956023db2abf258b9763020348d8e8b19b24857c074a9447c0b68130e204ba4011b86dd40048a67f6205b4e86298e8e843c3d797d93343dbc1686c", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prediction\/CallPrediction.php": "727c892061785d41a8b22a8e06503de0d611a5796f72b0cf4164e52865502502314ea146c8bdd33cd283d8f89cdeb45feedc75e9dbcb892dc3e73d9505ba8594", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prediction\/CallTimesPrediction.php": "d35066a5870b3c88b4ab7e5655384d8392a0f071e573087b5c7095665756c3ccafe47a3f868a4e8aa6008bdd688d4fee15cbac6cfdde11e621b98c1bf61746ee", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prediction\/CallbackPrediction.php": "2c6a04e3a75f14d27b9c7da8f4d0ab0c21b2b27a33ed329400f6ecd9601035e5d06f795f8454f2940891d97e42771ae49f00c776df2ce576fdc7b2d96270f9b9", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prediction\/NoCallsPrediction.php": "55975a97322ac5a03551a9eaab8c771f0b51c434eda33d473d3e210686fb07a5b8fd476cf5c938189dd4fe24c5322a221831d1a2835588ef2e41a4526f1a77cb", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prediction\/PredictionInterface.php": "3decf31fe55adfaca2f94b7aa9450add4d2dea1f8acd302ad2239998a631157517dda37080a87724f4c26075cb8105bd31b18085de327aced3066bff80a3b900", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Promise\/CallbackPromise.php": "94bd3f41676f3fe410fb090243b9b4fc31f33c66f38a9a174e151745d1291d53dd96a39693fb40fc353e067441854b15680365aed183e33749f74befab43aa55", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Promise\/PromiseInterface.php": "44aeb11564118a62e784ad66ccfcd99851b32589c786e33e7ac80ba5623224b1237ede2fbb92cf1aec77d432b66d53722c03c4a08270d5ba64d8d20c9d103db6", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Promise\/ReturnArgumentPromise.php": "bfb43ebec565c9d03aeaa49894f48d6566c4beaf836eacf6610931b85458622c2632496b57e0b344d7c8622d3d03fab0c45412dfcd96c1f54093e7a37d514d6d", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Promise\/ReturnPromise.php": "3237604133196bd62b1f2ba1ce4612a81ff51453b84f876ade32bac78a3ca3fc0e20ae3f2ba7cf5a9e8ccf0798861c4381234433f3411d42ce65cd4a5449948c", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Promise\/ThrowPromise.php": "4e4effb8058ade4f1956a57371a20db029472d2d200c69fc5498f602769a2be6909630b0da5dc079a1328f7e4dac9b7cbca6f6b63b17ff259fe9cd16e38b4e67", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/MethodProphecy.php": "c279c12f3f93bde43307ec9e679f7bbb7ee63516a6019116237832ee5e664ec295efa61f8c93cfb84fdc8d72a1f4169f65fe945ceb35ff88ca1cdd7ccea9d173", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/ObjectProphecy.php": "a8f766f4b3e0b31d0d800e569072c7eed4e4ff9e2c7d394ba8d9ff10c7c5dd91a0e859078621eb334f9b497f4a485b9c9bea660524939e33a95de35162b50790", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/ProphecyInterface.php": "a0f0f2e9d2cafb5b9586e011db4b52ccfda21dd2c68580909672277e3a6af8e2648fcbbf35fc49beb7eda1edef7b6d5180d422fa7cb565584fd07e138b01644b", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/ProphecySubjectInterface.php": "c7488d8602b3305886950e9503dd79d60c3fcabad9a612dde9674f686f42fcd21fed3c5213d9e24c43a3584c8d629438690811f3709ee55bfca81f467285720f", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/Revealer.php": "289c94720c116943dc4a9f1fc5e9c76c835ef9c63366f4eb382f229fa4f3931a05d2cd587fc1a4c6b522ecfef5e20f64ff83ff8129d748ec2917e7e4617d7849", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophecy\/RevealerInterface.php": "2a9ca11f674f5b9e52e5a85b756ab6847a0d6e05de995114e6caf9cf7725c755155b12fbd1bb74565c1903ba200da23d5565d81fae71815263312a4095b81bdb", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Prophet.php": "1c2b0845812cf6842bd1de4a2787cc35a33bf11c8b6834042bd61a3f9342a484b51625c25509aca8e2b26e64e121d3d445ffa3e534f08739db217e101301c03b", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Util\/ExportUtil.php": "85963d722bd741595b1b6dcd5c16fa5f935ea4ab7377dde2e6c98d36837a4f329013f5872f3e59f8324e21bcfb797cf26c347f2ea182027902cff8ef7986ec81", - "vendor\/phpspec\/prophecy\/src\/Prophecy\/Util\/StringUtil.php": "dc9399b191228b289e4ee730ea90c9433cc044c35a430b73c72cfdfc95cad987ce239a46c8671ca04712ccfec40fee39a2dfab82bfdc1ce8e9b75f600d788440", - "vendor\/phpunit\/php-code-coverage\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/php-code-coverage\/.github\/CONTRIBUTING.md": "45b14b842bd2a3ad3aad1ee0ac9575530163eac5db229729a424be8d5d879ecbb229725ca4ed8f9155c949868afcb545a03f3a9a42be30d8637657d42d2751fc", - "vendor\/phpunit\/php-code-coverage\/.github\/ISSUE_TEMPLATE.md": "94615c92a780cfb1035ae412936bebee6d3281049f7663491e2cda90019698a1bd48908643128f401dcdc192b4bb8a2fef7e6debd86cefd6d9efc50f9ab9dc7e", - "vendor\/phpunit\/php-code-coverage\/.gitignore": "12426b18a1c9b5b6d9e5dde69db14e8eb153a21e17d60ba84cbe7d3996deae0f018e838918dc6f8d0ec7758a3eb5ba1d9004ba5f5c325f64dbc3598b048b1503", - "vendor\/phpunit\/php-code-coverage\/.php_cs": "09090cc9e6ee276e2abd4cc3923fd97a5f44cf34a04d98ea1f1a54e2c8e666b812f6ad80146859362e212dc637ea1f22f41fcef4b2aeb8bd0c09c7f5101ebd33", - "vendor\/phpunit\/php-code-coverage\/.travis.yml": "96eac3090b16a4f123ade043e0c9a0957f9fb5b6023ee0b357408c8e124f93c237c88da9a0eea8305c45d44d469c4b4889f93d48ae7fb1966d2ee874348b3144", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-2.2.md": "e2448412ecdd9ca9f8ae2f35b54f7e57140827140164fb6aa8417f90d21e32a12bfe2d33e905cca534d063c37382e98e4283d98c21c9b01b2cef8c27982e71b2", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-3.0.md": "9efcd69541dc334acbb24aa1ef374b736a905fda1379ffbd4f9a52ff10f49cbfc9e91091632a032c071cce371dff99b2bb100f318f4bb908059c5f4054b60137", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-3.1.md": "d15c245e851c11ce9ddf83712752e4e5ccbf86341f59b1b61ec67211bf6be3f9afb582c1556861756641a70cb30efa4c64a8fa7d5cc825bc875ea8cec1f9d279", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-3.2.md": "2f7528897bec12d6d4fd36f697653dc805a5d697204e86746056020a95426a5e98cad523c056a3f75d7ed4ec34780cc53aedf03f49f26005d09bb51af4704b18", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-3.3.md": "336550ee17000594685f042ab737f218b61b05b167b7dd8ada620e4dbb501bc69ca1245d312526b7b6b672da982284eeee40148ef84667946e1bc6d00b52ae0f", - "vendor\/phpunit\/php-code-coverage\/ChangeLog-4.0.md": "6786bdc2d94daf18c34990c6aca8152254f47dbe6da9282c7c2183b03940d5fbbd9c5a6f4e06e100ee844cffbe669952707c02d990e2db33c07160de09130c84", - "vendor\/phpunit\/php-code-coverage\/LICENSE": "6a6e0f17b6f6c829955e28457f5aa4753fc8d6a532f87d8aab97b77c40ded3728833445b25b4405088c16fd22d14a1d42a4ead86cc5f1768dfa01820888cb27d", - "vendor\/phpunit\/php-code-coverage\/README.md": "62178eee2f88d777ff296c3977f8f6a36cbc4f766493008dccee29f82a8bf47c6747e4371dc02ba8ee0da0cd645ec4f8d37ac86175c6b9ca7f0a51958db7fcb7", - "vendor\/phpunit\/php-code-coverage\/build.xml": "341b2976e6aaaa0f4e28b4acd93195bdd304569145077556479f3c47d1fa550c9e0159ea501eab4fd08e8039b2b64d3f26103b2f273a80371fe859d338298144", - "vendor\/phpunit\/php-code-coverage\/composer.json": "a8b7f4e8731f43568404be339e66ae04e4c3586e42e8473318c068b01d75f916e4c729de70d33bb3327007faad8d55e6537db1361dc05c9d629d392710035ae9", - "vendor\/phpunit\/php-code-coverage\/phpunit.xml": "564795d1a4d1f9b71711ebd7e2d8345c0b01b96ca6576facbd7a48545f43d65a29f8a758e5aafcb0f0b6f486c61e3902391c417fb9c6df4c740d2b0c917bf833", - "vendor\/phpunit\/php-code-coverage\/src\/CodeCoverage.php": "1dbc50918e7e1a13d0645c0c14c5156814afeac96c5191c6d22db250ffc6e6737919443ef21386317530fe62b070d58c135606223bf21126cc8bdb5a828184ba", - "vendor\/phpunit\/php-code-coverage\/src\/Driver\/Driver.php": "09a29a9591c2385a03fa040f43e0d06097c312330588c481c71abe8263b3da33ca7da1f0ec12054bcfd0c1d980afed1ae304fed00d5a5c0f261e958c329f4dbe", - "vendor\/phpunit\/php-code-coverage\/src\/Driver\/HHVM.php": "a02537e1fde0f880f28782c9aec4ed98cea726ac1ce14a9e1ac185e07a56ff07b66dbbfc18bf705f9d5cac37e8d74b9f03e825afcf917902dfda082e6094b760", - "vendor\/phpunit\/php-code-coverage\/src\/Driver\/PHPDBG.php": "5a5d4cd9e1f8cc808878da7dddcf254fa887746c044cb7e87b9ba569fd9803f5289d4f7f29d1ea3f9d31b834b0f802e1de66f81c8ccebac023b02ffd9925b28b", - "vendor\/phpunit\/php-code-coverage\/src\/Driver\/Xdebug.php": "72acc26cc5d0ff6d9d8af999d2073a41af894ffcfe276f228eb2bc49783e68624d0bf21a3424e45209588b9c019ec2b1236a90d48705109700e685cb9d5e5942", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/CoveredCodeNotExecutedException.php": "2d59c861db9db5bd5950013706d62ea9368df6916cf1500b49a4461b10a23ab7dc6406c5604508b1462d841c078c1dca320063f0b574b70f64b09b1427c99b1f", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/Exception.php": "9cf26299e30b5f69419f843de007e078c4154a6a45c3ba403d31cfbbf33bfe16752b7c3805be8c4b8d70867fd2dbfab3c78d4d302f7ea37ff334f4440d854483", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/InvalidArgumentException.php": "dd69eb1eb68593a3ff52f2bd267bcb24f1cb61b0575eb9b52380ffeeccbb1c9c0edcbb62c5a2ac72e75a4c16422d1bab86b40c3be9aa67c5ea1ec2cba3a20c26", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/MissingCoversAnnotationException.php": "6832b9a7fdfc22c598e1682f69ee814eda8d54b4fb762cde5a42b3487c6e91c85e50e70edee88624a502857d28d6074df2bfd9b737f32c347de6a7b405699493", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/RuntimeException.php": "785deb707ee9a8ff3647f992cea6be73b1b08d120ea95818af33b958559362f65e9edd375ccc75dc8282b9ca04b0a9862a084737b05099b34024b7bacbe6e603", - "vendor\/phpunit\/php-code-coverage\/src\/Exception\/UnintentionallyCoveredCodeException.php": "374e92f9b4401133abb0e173526bff1d702dddd32a320e84d0e816ce3d2786e6ca26076ed64cee9f21d2aba20a566b1d98f54023db97e196180f2e9eea9f8f25", - "vendor\/phpunit\/php-code-coverage\/src\/Filter.php": "ee36671cc9e0f0f2ad6162ddd33b40ba8a00b26c683b51ab8073a16b023eb9f521b835004c1f36267811a647fb876cea65890ac5f3f0c0c5f18edcd3ab0c1e24", - "vendor\/phpunit\/php-code-coverage\/src\/Node\/AbstractNode.php": "cced7228de71d9280b2dbd3ed52c082f047c5df494f38338d5b592b686f25c83c43b7c2eb4754abdfe74e88f41dc78ea70677619a8b1a14248d02e29a8b157d3", - "vendor\/phpunit\/php-code-coverage\/src\/Node\/Builder.php": "32c5de3e21400480a99d7835ebd128ce45f4cbf8dbf20de25fe84fb945cc336af5da29eda538ff9be18ebecce0741faa45930bb3e5baf6baab3f913bd601996b", - "vendor\/phpunit\/php-code-coverage\/src\/Node\/Directory.php": "6c936cc94df1e001cf6a469f9779e75e4323662cf24e34932b55c337bc11431537ee7addb166e051ba97ee8447a3fa684a3fac40065700fad9eeaf8342cee95c", - "vendor\/phpunit\/php-code-coverage\/src\/Node\/File.php": "7b7ec725dfdfaa45ea69edb883ec65b9a08785308fea47d124bffd528d32578aeef6e498cc4e1fe401c0ffaf972c410150b9498b33dedf1e912409c4d2003a04", - "vendor\/phpunit\/php-code-coverage\/src\/Node\/Iterator.php": "ba1aa446a1730532f1a243374edb455577cf12248383ed2d242e11ce301e82c27433d98494383b09c0c88a1dfd0f90df1bf3f72654141c6a2ae546ec042ce25f", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Clover.php": "08f0f4bd6b2650ff646c168b24edd956b2a4e64bbee6d20a053ba65167c27c634e2e2a573716164fcc596588fe7d4e166154c9c4c762ca25f852811e4b17dd3a", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Crap4j.php": "3879f211cf47ba8fddcbb575a30079f4396766bd00ac12611268840ccc45c6f5ee6b0f0ce9faac44b349b786a071209a1e57ad75f51b416dc6eac88132c436de", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Facade.php": "f95f4bf9497a5700a030bd5c7a6141504673237c7e002d8599b62ae206646437b7f6bda20c4897460ccd9896080db4ad68edfe4d22afd9e83c7aa3a23519cdb1", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer.php": "c60db6042ae71c6ca031f0a3159fd75ae207f72762f35caee7b8286c4e5859da17b2aeb53e8f58c412a807dfaafa15a324cd88a01cee0079dda65a9c5b89725a", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Dashboard.php": "c89ca33d35ac9b7c945b6f8d8a23b1adb5d5791344a8355817e69bf932d9008a8021529ebb16448efd814fba29457669478257c609d0396970811fcb3238cc25", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Directory.php": "003d93292fe9fa5cd5e3a24f824102af1c7e2ca56ec1483fef342298ccd7ff0be802a4a251c2db8b450ce805a320724a6d0ed4fe7e643570e4a509308933caa6", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/File.php": "4597d083f3be3b626a7e4c0925af61aa4646b48240135a46daefe2d4ca430a349ca07c5064289e0d34197b056ed072f44f1ae46a83f7170c7d3da7ed54e32e62", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/coverage_bar.html.dist": "2348577a847c2aeee7623a97fa344bfdda12e45a229b50ebb934230873813fc1e07ed549ce5e68352576467a5e8eab01473da1514f7761a9cefb8fd646200d3d", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/css\/bootstrap.min.css": "e8c5daf01eae68ed7c1e277a6e544c7ad108a0fa877fb531d6d9f2210769b7da88e4e002c7b0be3b72154ebf7cbf01a795c8342ce2dad368bd6351e956195f8b", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/css\/nv.d3.min.css": "0ec816cb23ba8d033260acea8e436d7c5e89b15d9d00a7d8e4070a61522e65ee0d2475988b5cf9c0a0a936248407cc48b3839317876f62278f459db393b612d6", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/css\/style.css": "067fed1355f3403c11320f950fd8dfe6b4b6d493470abda6097982364144817c120fe1954c52c9d4d9ac8202bec56defe4852c724a31d07292862e789eb10614", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/dashboard.html.dist": "6179798619e7fba476d32e10609f6d8bc9c548e21126bc12b65d059547c25fd16198623e1b24a4f47e34b90f1d6483310234960b00706454d01ac866718af2af", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/directory.html.dist": "9f7c01a4f8e28f1b3dd2e7c4dab44117526aec1a17f93fa55fe4f8171b6d021c7c7722f86ee654c61555a8382d0e1bc5f6fca1b71cb747c916a54835046f22f6", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/directory_item.html.dist": "0afb83d01ef81db9eb313c097f40bde906989a8e88d83aa338e41fc7c9df76614b56ae1163fc236bfa1bd3fbfecb2585323a14557b06591842e93072c1308421", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/file.html.dist": "738e81f389d4f3421f14df1f0336867ec23effde05977390c26a9d053b2b67ddae93dfa5c68c69d530d449b090caadbf7862846c8060312c24508d9a636a04f6", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/file_item.html.dist": "1b46626023dcb516d347e5229b488e54d967b8646e66577f66ade7426737fe35c72d29b15dbbe4f3c3610358a9a63cc3164117d2a661abc24cfdacae37c9493c", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/fonts\/glyphicons-halflings-regular.eot": "efc910c96b9f5c58ea11a84577cf60ae995503b1ee670bb7e7d4a413b7403769920f82600b581f1bd4ee03d71c76c15255f0972ed66ad969487b5a4043f472c4", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/fonts\/glyphicons-halflings-regular.svg": "c2e77eab327af1469097c31bc0daf820c066b0222059d8ff0ecebca974b62b7535e96f1f356643b2b62763a924d040e4ac9b2097e1de2c22226411fde8723743", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/fonts\/glyphicons-halflings-regular.ttf": "2b066e06506ef20d69698d37cdec552176ef3f64a1151a99a1d02d72d39ce12c4ff616dc08aafb2ccaea12efd7a1f46b701516a559e5690c57a34b1276e88226", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/fonts\/glyphicons-halflings-regular.woff": "f5366ab255afefe3fe06150e8509e776b5618ff50fe3e0fa8e4d715d645b1e44ddf3ad185e21df1a276e08b3707f55866cb2a83d2f325a56885fcb8e57a74a67", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/fonts\/glyphicons-halflings-regular.woff2": "3811804f56ec3c82f0bef35de0a9250e546a1e357fb59e2784f610d638fec355a27b480e3f796243c0e3d3743be3eadda8f9064c2b5b49577e16b7e40efcdb83", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/bootstrap.min.js": "8b3b64a1bb2f9e329f02d4cd7479065630184ebaed942ee61a9ff9e1ce34c28c0eecb854458977815cf3704a8697fa8a5d096d2761f032b74b70d51da3e37f45", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/d3.min.js": "a09a740dd42e410ad1b0a565cbe5b0e9f00dd46c0937b7756e2f14b9ba446f30d487ce16ac9d8214f0674f82ea04271fa937074793865c516168f7b7835fdbcd", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/holder.min.js": "acc494a639c1133defaf5c835c2eddbdd56161cedb7045f2dce5b85a4d668bd696e68a5d2777e22026ddbd70722fb2b7afca9bd4e1d3f014ded940b85a401bf9", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/html5shiv.min.js": "b9e35717cb6e3c5560d6985031c9a946e9cdb6756c7b28de3f5915740f58755a118c1e1e3c54d2e8f839fa3e5555c3a169860e89874a00efa356dac83ab8648c", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/jquery.min.js": "53a2b560b20551672fbb0e6e72632d4fd1c7e2dd2ecf7337ebaaab179cb8be7c87e9d803ce7765706bc7fcbcf993c34587cd1237de5a279aea19911d69067b65", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/nv.d3.min.js": "aade7897bc7c2314f976f4b686467308d8701b171b1a78937317c7e370ac49ccd7b19663c26e4d9940e099815006717c3db52320004311b9e08399c6fa827e65", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/js\/respond.min.js": "a9656fade32e1fd8b40ebba070eb627f176d6550412f45fbe6bf58c1e5ec7421ed5d489d95cb70ecd5e0e4a54fdc84cfb6a6764b9ef9034c0592f812d9a9ea48", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Html\/Renderer\/Template\/method_item.html.dist": "557e1a77a37b74b52d675e9cecc7bbb1f7f24e589007590920ef8d4e73fae164c433d0134776a4de65f930edf454c44375a7d175eb5597ad45577fa8e785eddc", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/PHP.php": "6387415175ebd7429f934182bc2face2d34e2f33fdb8fac698294a8fc5e718cef73b07aa0f0f9201564524a98e13dd9565c42c8fd35a5363eadfc95f475ff389", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Text.php": "82e7bd61434fd652aa928fec19f4a1605937fe4ff4ddc8673949922975444fc2961dea96a4305c05ec4a8037d74129ff6100e4dc40a8d23d7cb084bad677e89e", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Coverage.php": "2180c9e773f4e695fdc3c699b936ca227ad6122e82d9d3acdff97d6dfad8e59880fa9f1691bfa19c63132368b379416ab59c8c6c3cd4129e32c4c5b74b5edfc3", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Directory.php": "6c25fee4e8a58a58b38cec9f7b3e70217abc33f5e9869620052785cc0079b490e66710fdcd23e968dcef525dde759cc10145c0c400715f21e4a37eef25d83e77", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Facade.php": "e167f621cb661658b4042164a0399e5173b827c36a62513626b26645ab297d4b5758eb729b0e571a37e345177ef9a819a999f585a2a397cadb5c15990a823283", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/File.php": "302eda4f009f1d8f4d76a847be5789b5c01db777a19e5235b9cdc3b443d5a6fae80b1f9e00eb5d24796e1a39db12baae6a16a9bf8f87457af9bcd0433eedd32a", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Method.php": "f8b3f0ea36a46aec3fafb953e7311582fd76fb2c5a409f28e93de39dfe3b5152cf5cf03ea04744e0828a9ae501045330fb1076c449e47ccf83c8ab5cdf2546ec", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Node.php": "f6d265b2fee4a95c2b6f27b7facee187ea6446befd9978f38c00313c8c2748d919d85d052e5a217b8d9e78e7a19b448b72b4ac28685ccffb28faf227b484854c", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Project.php": "632d1b8854b4d3d36744d0d6dea9441770fb50775153c4b1688bc6c2bfd72554b46af12f35d3fe2abdd363e62148c7e19b9bd587166797ba75dae1a874a0e35e", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Report.php": "378dd875103f9200a2ec225e7316b4d51e3b920eebaeaa951128766617a6996f7d1846320151c8e12d0a957077a1093f93215e7ac77e63a8ea6e11c160ffbbb5", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Tests.php": "241a80ee77c765735fc9a3b4e0ddb52c18b2d0d37222abc9a15922dc3207e0e1f02dc2c40ce853c79835ff992d608c701dae6c38ddf6ecb394cb3e66443ebf28", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Totals.php": "5c58e00d42bddbe56697e37dcbda3cc0fa96b1222ca32359a21c7fcaf8265c6f20b453fd0f4334d8bbe247105f001283ee422acddfc32a0cf62e14fc1d1322ea", - "vendor\/phpunit\/php-code-coverage\/src\/Report\/Xml\/Unit.php": "d2a3910b6700a2c96e50b9df659f2533cd21b4b8761e8954a2829c401837c386d30e6b0db109f88c8ace788fea6f4f9875657fad4cacc9392bdd9eea9627864f", - "vendor\/phpunit\/php-code-coverage\/src\/Util.php": "d7af765cfba53207d1709f47f97cb7e3c5dcb1a0d3d21182ce163350a23b230748159fadeeb813d53df79d08d0e591a468d4eb6a0b30fe7dd859d0e6e3a2ea32", - "vendor\/phpunit\/php-code-coverage\/tests\/TestCase.php": "9cb869993ee63b5743a00a4d48f4f0254e698bb542cb59a52ef83df71a90e7ac85686de980a3478e3a0f7eff253545eb7d85efd036db0ece425f5188e2d62894", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/BankAccount-clover.xml": "ac81b564464e04f7a656009ff1df0d7704027e4d5956ca99cae60601ca7ee689eeb49e2cef620842624286c8a4766c9a9e642bb878bfd6c0f69ebfca279d0441", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/BankAccount-crap4j.xml": "67827c10595cf37ce791d7ee262350c13ace3eb2858fa7bd3c5589963e7d005c769b8b267c2b7a343fcaa1b7bea09f9a8b90305bf0dc8d6296fbf7f5899f3f8f", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/BankAccount-text.txt": "07585487afcaff3fbe55aed47230fb89098c96061a51d4331ccca2c781db3299bad4ea7c1d780cb833fdb849cc426b3d8776881b6d7f7c9ff442ccf919354dc9", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/BankAccount.php": "b92ebe0fd77d69b9b02966aa5269881cfb608d6aadd927f457496eb2a8ae7f36421eecc440238cc45decd4266d45a1c4d1501223a9a0bfa234cf6b7ae9626bc1", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/BankAccountTest.php": "692ef7b0dfbb6bdd3613f4142c4aea40e2ec70775cfe9dd6cbf62043e85ebc82edc16e4d6bfe643cb20757cc52930a32975ed9c693c2b7dbc895e74599569ec1", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageClassExtendedTest.php": "ee0a56f745d977e09ec5c0b042498458f4c8ec27240aee96e15585b72241280e6604f26459716acc77217a953a259ae3a2cee4f1e3c32d2ddec69b89e6b31b4c", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageClassTest.php": "e29e0b98277a6888e693421089c15af3aa37a2f4e4818aecf5175a1079b7e23fa1efaa8e42cf66b845d443a9a7b3212b9efd92d67a72e8dfd42100a4051c9bb5", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageFunctionParenthesesTest.php": "8124dc9b78414a1f8117cc8cd036cbf39290d2beea2aa94e464d347761f224b3abb2d14da5c85d76759bfd7ffe7f2648f85dbee99797b4b2ae65d57ae403bb9f", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageFunctionParenthesesWhitespaceTest.php": "e82f38e06d5869feb36fb0d717bde9fa158b196b10bc4d806bd1212e47d10fcd595a2d61c2790ff9068fea3925d158225f422d1a5d70361677977ea3ee0f5018", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageFunctionTest.php": "7c258541668e3bb674648848715fa9f2113764451b1fc68c755a336278d8c07f3d7ec8c649f6893268b36f111759c04bdf80152627142cfed7f639f0a5b5b18c", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageMethodOneLineAnnotationTest.php": "c100146bd6557276c1fc45e559a4fd275717c8ab5500eaaaa87412240379e31e076ac9e3e97fd37653ec4776dc0363d0cb61b8940d78f732fdae1c6854bc1760", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageMethodParenthesesTest.php": "de0703d21633cf88b13b7f9470111a074fe78fe70da2df1343af120c6cd1e625086e74301c1aff346ef15490c568fb9802d64df734091b8bf2540532128c0340", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageMethodParenthesesWhitespaceTest.php": "7a6922711dcdf0fa5ba27bd5e8e42c9f1870840e1eb5f0591064eb159082e34020fc6138dcd7c511c70461750aa3abd3eff47e30c5b188d4ba5952fe1ea9ea45", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageMethodTest.php": "ff97cae3848abc728e9983b63c02c93893f389f42061c0c6276a5bb896b33401ceb6661aa1b3e27e99899415edf22462e318fc12dfd250f45bf31ae998782a86", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageNoneTest.php": "a2ad7b37910467474483b67f2375f0ef9c4cd17b01aaee8dea4fbabfe467bc9bdcb774d99b4c1db6a6bb50cce71e6c52bfc97d91deb95ff19ec703f4ad5991ac", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageNotPrivateTest.php": "5bcaff4b962e0f201933d4dacdb1b0f1d648fee0780b9d8ce43219352a583bb8bced006e131b81c37288c5e01809c6014ec2628378f955ffd37b2cabed6c7717", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageNotProtectedTest.php": "c03ae1c4100f03b3d193da2dc6e9da2bd54cfca17c340717ddd002e01b74eb8464480edd58eb9dda4a1c2ca7be96a17a68d31bb3e198babf7a619e32c253137c", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageNotPublicTest.php": "268dc5302b8fb86bb885637e91bd29bc00bd71b8a3111b19dbae368e4e1042b3969ad8930fc4975e40af4a903e6f973a99700153286882ca99d377cd900aaca3", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageNothingTest.php": "ec387539a7736852294f903d5a41b6ce90b1c90138e5cfdf39660845358145d70277f3af44af6b6899e42f3eaccacdbd8dfae36d57cbe46b0719a9ddc7f0fdc0", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoveragePrivateTest.php": "bc65b57cc2953a6fd26440694e9eb5e7270a2a32ed0e8fd7e68be6a6d132da4a8052bc05200b3299008cc32ed0bd9f2785c143a24c5df2cca67fb05321b945a6", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageProtectedTest.php": "9ed02b785707c8b0dca019afcb5105dad0744581a4c9751bf7c46b5c78ee486ab8887695931edffd190db0b748e1876bd514af50241da66476bc80176655e931", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoveragePublicTest.php": "52280bd164c9fb6ca9ce2d321849216821cc1841422ae306d5415f7181a913ab6d10aef93e7248d69fd260edb17666759ab1a7516931dbb1d28ef0d5fbf46f85", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoverageTwoDefaultClassAnnotations.php": "51db4bbcd08d7ec639849cd6fde183596edf15aabbd86bfd7958d96f74a8f32d57838beccc0293d33ce2d42e7831204e33135a2443b7f1230cf7b5a14c882989", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoveredClass.php": "46d0fab353f12bf3d8b95a1a2ad8e7d83be277cc125063002cebedd0b1ff9953308ec035324fc1a951876b1de3fd38f44d318fde7bd9d59608237821390a6c20", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/CoveredFunction.php": "55fd98705568aa2d43e72dd807b0235ee2b9994fc07b4bb5fb468811c46fb3155315ce4d12b2a17a326518096b962b17b611355041fd2e0e40bcab193944e2e3", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageClassExtendedTest.php": "fdd179d6a941440eb3dea097d345f0f1787d70c471d78fe2efa6115bc8122c9997ff606fd04e3fb5eb156a4a17d7f3aaf5baca344a6ccc457a6c9223cad402af", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageClassTest.php": "9cb94f7da81988045a18728c658ff43bbfb9953ac087b03d26fb7731cb31cef1b45a1a37b3885f2863d712279220900cfa7fd4c780eee2ff2df2eec9900ccd6f", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageCoversClassPublicTest.php": "dddf45fe7530359b391b04c27d904d2b18ecbb2177426b2f1c109f06d447b2a1848eee769a5ac35012c8653c75d4fc9dc973d8d24aa13f8d208818913c9246d8", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageCoversClassTest.php": "9b686c306e1f7b991971c496da812c8408bf5d27471a39f4345a452655f14af194b4d9ec30828ee2c2ca30909991203309c48c85ae222f7092e0571c896e256a", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageMethodTest.php": "f3561ffd1ea8e16b177d61efd580d7b7ddfdf82add04a731eb4ad926362df2bbce79880c74337176340c7e66b68c231b3401ee7bc72be78e9d1da707a378adbb", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageNotPrivateTest.php": "3765f4fa3eea8e8179a740c94429dde97d9ae2f8b80db28b7625eeb070e7d46cbca48043d46a77c4a2474c1006f685665a63a1878cad48488965a4f2e88ff43d", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageNotProtectedTest.php": "817262dc5e73adc2b98495ce0e51a395464168babbe05e310756e8d7ac223a6f19785533a4ce9622c48385c6e4a776058797a7db7fbdfbc75a857e833d37d173", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageNotPublicTest.php": "dccfc406a913bbedc320cadcedda4a1a1d81bd2cabcad5301517758484f967216cfeb72ae656d64d1683cd54a6b60ad5f227409f8f0f15dbff7c91763ae4827c", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoveragePrivateTest.php": "9f24d7767437b11c3dcf3ba90e386b21b399e0b630473a76d8ad170a9df1f31327bf0102d033011b652cd7aebbafcbbb0f4d45a24c4d66ac29854d323ed04fea", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoverageProtectedTest.php": "bfe56a79b7b6173e74f6814ac0f818e90ba25725438ea5cca775ec89b7d39fd6422cd2435092c3eedea5911ff594a44cdfcb90253cb8458104e6b8c7d5a74277", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoveragePublicTest.php": "96e20b491c7035d186d17ba6c2ef79cd61f65ee6cd42b033a07fd6ddd305ded630fab7051cc49a751bd383610c0a263e0a9e5b875808ff20d2c36bab7803e7fe", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NamespaceCoveredClass.php": "5db0424e0a1bd04c0693e57528772c5db9b8e126c310242df82618924c89404c0d13a515c0d5180ceb84651f499008c1608213fc92333c4b7fc5ee47de3cda57", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/NotExistingCoveredElementTest.php": "fadf7fd70293bb2d78cec6b7f3719adb160cba22f1d11fdddde55c5dfa1379fc3af836f962ab60c4010acb047d9d032d882f070e04405a6a6753acd0f6da91b7", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForBankAccount\/BankAccount.php.html": "431ccc8c7eb106ed5d1f6d9119629f2eb6330b7e4f5fc419187a94809fdf6957b9c7f165eb2db2b047d802dc3aa32a6129245f31ca6dbe426fa66e5cf0d39bad", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForBankAccount\/dashboard.html": "85d49a30496940d7e5cb6c489ccfa31ab062b02975331bf5f68f5b190041a8d8b277d74668897d97abc3f7e5efb670f6bf6cf08f03115ef11ee6c6a4c37ff144", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForBankAccount\/index.html": "efd09972fe32998f1b5b32803cc0b24942d140dc268fffd948badc527a4b46d82b8b114fdb5b38a9a922381d8533095e8993028788a0c249006febdca6a57068", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForClassWithAnonymousFunction\/dashboard.html": "176990bdd8e55d6dacd89e894d2b803f640cafc9a16b98448d003a9de66071fc4cdffbf7e3938ca15c88c9e4b24be2abd6fb651981d922c53574f2a94a0b11fb", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForClassWithAnonymousFunction\/index.html": "d0170fd54117904e85b5a52c957477b8ca745066eb222156ae4c06607b6eb71c7283cd844dd47eb565d4456a47532afe79f77b502cf58cbfa48e9f077213d311", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForClassWithAnonymousFunction\/source_with_class_and_anonymous_function.php.html": "b1795b6519653f3ef8bbff2120c47e5102c6190ab964ce56415a090a611fa68c03ede30d0fb7b76936d8d1eab03bd43e2f02103c6c42112c050b1e1dfeefa6b3", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForFileWithIgnoredLines\/dashboard.html": "c809f124caac6da34138e02ab9b71007ad141b75bceb6776381b936058bab0843800bbc82dcefcd202bc163379b0131c7566dff43c7156ff6696582bdf1bffe5", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForFileWithIgnoredLines\/index.html": "49a05016450b0ab75cea5f30cd71809bf60c6a715c11c7cc485c5e9f2701ce9a248c6e3c0b80e53f30e1387e55fcea297bf1a93f0735fffdd713d32a88216f31", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/HTML\/CoverageForFileWithIgnoredLines\/source_with_ignore.php.html": "73ee5c9b3514f39f2da585273a8b6851867ef87f82e5ccea8272b693bf0ad06a74bd4613f98b56b8149c58ce887ebaddc8b231ac87c26cd6ab6fb51e4bca94d8", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForBankAccount\/BankAccount.php.xml": "3981c35857a7d431e907941c3b1477f7812999bafd0c07d0577b57b9b134f6957fbe6d8e0c20b657d182304ab24a366bfa785d6019d3a8f3a8816e4bfcc21b0d", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForBankAccount\/index.xml": "6696b6457ea61f715c949d1b5552b79589203d9a7522fc4c6fc84203a7632bc8bf48455124790f8c0f0b8f608b54e49e20e0a484f299413508eb6f0e5011eee9", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForClassWithAnonymousFunction\/index.xml": "0c1e1494c98ca5f7b5a9f0610652adce4742949a0e5badf2ce5f27dae71e794c71ea8668ed86d6fdcf52d69a457a9d99543191751dc500504e3a60330914165f", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForClassWithAnonymousFunction\/source_with_class_and_anonymous_function.php.xml": "ce193ce05a911a449c35f7c8555301851ce1c75f23dc4dcf35b3fe1daa5835e9b51a4901bb98a33d2ef35ded3c92a06ae2d672a02b90be21a9ebdb8ce30e2945", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForFileWithIgnoredLines\/index.xml": "4a057f0363398d1b8747d6ec98e7ac7a4f8039f518f67adbac8cd0cf02687513569efd18d3e4ca87bfa9445beee748a8695473d93cb01f995029300a52f4f43d", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/Report\/XML\/CoverageForFileWithIgnoredLines\/source_with_ignore.php.xml": "1a902f046732be2c5e6d24c268f2590b1becbd5f9b4baf08be38f65bb0a4a9ac6822df584f8a123a6cd077e84ff194dd11622c4264817d9593964d2ac9354840", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/class-with-anonymous-function-clover.xml": "58ba8e4af6356c85373131dd69c408300af5e3869c26a0cd6932a010f99ca6da626f50f07ef98a835b2a32920f05ee4bbb54ba31ec3194c45dba30b9112e24ad", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/class-with-anonymous-function-crap4j.xml": "67cc6fa7e203eeb0c425c175dcf0110343ae4c0192df894c342455abc5b1cc97e7ef6e28a11a8499f139908c68f7d8f16d2e0841061579385fa5018b75103b97", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/class-with-anonymous-function-text.txt": "43ef77b8c2b8b6c09e2af4b294080fc1fad2e1368f2a305a9970d15675f24b707772133249757334b03c58ca6b36685cec11f935b125e37ab5e43f7b65acb68a", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/ignored-lines-clover.xml": "23aed0d5929af3010ee8c02617cc62a10fb9932eddae463b5970c3e48daf8abf11d8bf767f8bade775c1636d13408910b7f32894785d021c3edebe26d6e14373", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/ignored-lines-crap4j.xml": "b59d70048e7a5af2c25bc409ab51b6ac489690c723722180498027d34d7cbf4a2ee45b3fa601331049eeede1c5848942f133e4dd555ef12b6c351913c6b6a269", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/ignored-lines-text.txt": "b775b7ee357e843bfbbe63dc1316cfb569b10b6d05d40df6e28b18adfa3114dc92443624f48a2b1a01c18f9c442ef9dc9bb07a2120d85a051b02083a89112326", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_with_class_and_anonymous_function.php": "563e80dcae19a522ee21c6774d2e16e1c9366b65454e74c2cfed2a30ee6ab53ec8c3d0baac232eaf2814b1e73843576500ae6f1f4b7604321ca6eed516f7496c", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_with_ignore.php": "eca71bb194de374cf2fe891f20cda835d015f0abe73bb9f8d68f633bfad2224a18627d63ee7b6e42598015bfd8423b5a5692c74c95b7628728b9c5e805172891", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_with_namespace.php": "e6bfca92d455c39dab80b51667751054072ca7a75dbe45247ecbf4640197f7a77fe4b176236ca88dc160b6b97b3ede970849191763794554768368b926d47d77", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_with_oneline_annotations.php": "7648e1d7a26282e100693485118265e0b2fcb1f56014a5183db05f604ff4a49b2486b7287d0bc819e211d96c140d1335a7c1c573258abcacb1aafdaa5a7712dd", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_without_ignore.php": "6a34cef0ee9db836f814894a14df8a8ab53f384d992d02dda924d3084f64691674eaa2e2b161c64f66277dfba6dab8cdedaffab190f045dacd5dea2dbf9db404", - "vendor\/phpunit\/php-code-coverage\/tests\/_files\/source_without_namespace.php": "a896f15031507cfab54c01eef2b4b0f3edf3310d48b2243e5f5b8cbe7bf2be18ffe52d663bb27987fb611a626cb6aab106ff731514cf29d8890d92c674b2abe4", - "vendor\/phpunit\/php-code-coverage\/tests\/bootstrap.php": "bbd0523de059f4f580b254db32579fa9889fc22827ded49376cda0c74353aa08182dcb83ff7188e24cf6b13348df013b26f143405d77d616458a3ddc744d6bb6", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/BuilderTest.php": "1d87daa5ab8bab1c6160fe6ddc18ebaed2e6b4becf54731a38baf1392bed446f1af9e722dc39da0c393fa0797bdbdc96d7997dea8ad091b449e43d76b2492eff", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/CloverTest.php": "a7db93d8fed92031ed9180aa5d1e8473f82fb0032761b7c65ce63b313252455639a80211fc6ca052a415b25eb9b8e123fe279b75daf3695600ebf0da7cc4d8d7", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/CodeCoverageTest.php": "eb194da8dd616c5f3e159276cf81a32796a4257db1abff68782ef843f2dd526107d8af800fc42e1471ee9683f8fec78fce847f21ca06c2b3160984fb955570f7", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/Crap4jTest.php": "084926a053399707c509f828f42323b13634e65baa48ab7e1244864d69bfa79590716ab18a6e0e5d7b80d143c417f4dd128ccb710f8c5dafd5a94daf2f799b88", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/FilterTest.php": "b56c585352a8ca2283190d683082453ad2c99cf9662df63ba3b4d8fbc29f74562980d03be1520b8bf694bfef539f9ff373eb94a833c976303a8687d174941914", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/HTMLTest.php": "38a43529d22235b03ec7bc9944ba5d4798c53228e36bd3cecce669b2c20a36e96edae156ec5dd80eba8eaccabc0bd0b8a934ebf4146f6d3857dfa286c19ecd94", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/TextTest.php": "f4e8b5c757f510b6c70ff136a7698164ff2411544cf412b74bf9758f15ad031db8b6a43e3ff037cc2155b77f27ec74ccd9f2fce4703c55388fad8af33dbfef47", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/UtilTest.php": "5f07032453143ad9a0dce494eb207fdef1400b3f729a4815cabb349ccc4431e068cff8dee69320ee5178449eae20cbf2642d4168e4a95acb59d0347e171f98ed", - "vendor\/phpunit\/php-code-coverage\/tests\/tests\/XMLTest.php": "7b9c90c59e22399282f0267a11ef0de9d0c67bf0fdeb8634dec27c921c8511bb498cc6222c10b2b666fe56907fc6a593eb3dd288737a6ed36063bddf5af360df", - "vendor\/phpunit\/php-file-iterator\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/php-file-iterator\/.gitignore": "0be0a3b59a4f632692e964d0f8364a31bf22bd250d14048b43d9d97758349bcbe6cb1decec595c5dac4c7be3ba5e29f88693bdad392afb2d7db34c30832b2755", - "vendor\/phpunit\/php-file-iterator\/ChangeLog.md": "b197e4796a3e8cc0c2416b29808103c039e6efd7be0e55aa3d588803ef06669771f9523bb256362069cc9bad91b3f917ded975c4b9d9fd80cfaaed03a1560c10", - "vendor\/phpunit\/php-file-iterator\/LICENSE": "7352a736e11bbbecefd767664836f16e4904fa69a7e0e7d2fdad9682536136dc04fa473ba62ad9c0eaa3c643f26d3b4cffbc2f363a88aec3ffbd5b03dc688d28", - "vendor\/phpunit\/php-file-iterator\/README.md": "ac1ce80abc8a9bbc10f85d2d793c83039e615a9fe87f95d08ba735cddff6cac573b9d207b01b59fa89a1426faa423450ac1e39c2f0f0db0a8da0f26dc53397a0", - "vendor\/phpunit\/php-file-iterator\/composer.json": "8a9aa45462f3d37a4ab0c1a446591e5412840be119e6bdd41ead9fb291e3115a7a1cb368ec2571186009b6a3597f1b60bc29c39fe7355be539e65d23ed8a53a3", - "vendor\/phpunit\/php-file-iterator\/src\/Facade.php": "f9a201af545a5d27907433a658090e42b5573ea711cbcb79f9c91637b95bea8a2bf5ac19a839bc06ec665ba196fd7396a3fb6b92abf07189611e8ae0a14bb4d0", - "vendor\/phpunit\/php-file-iterator\/src\/Factory.php": "6b68dd69b6d1ddccd15411f61d7c2b2526ee8e8a8459498c502b1f04e683ab824ffc4084a366503afd8bf585a8ce4e3d19bee5707961bed1ac36ac761ab4ab02", - "vendor\/phpunit\/php-file-iterator\/src\/Iterator.php": "c55b086740b274e7456bee821fd0409e2baa9997390a453d0c26eddaeb4f54f17b0382fd5557f69ca15bd3358f3885b824a6837fde2d3ae7a7f235bd3963ab24", - "vendor\/phpunit\/php-text-template\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/php-text-template\/.gitignore": "cc3affab7cdbbac0dc1b37348c1af3e2e639d5173f77d1d924d7d28b16bde9615712fac56589f5b2a3db90cbcc824ca2626e97ec86194d7ffa210160c4b2b641", - "vendor\/phpunit\/php-text-template\/LICENSE": "444fcaa90f836ae268f15d87a551ebdeecd45d4b669ee8edea2c6dcdf903668923bc38a7718d6eeb4518043141c8a5bb6e2d0c76bbdb0e15ecf6d305f1ac52eb", - "vendor\/phpunit\/php-text-template\/README.md": "df76449c5436eaf4b105e86220fed8cbe8a602358b15e4fb4ab9634721be4a45bf7728816e6d7f8415316911e2f84b9dbaf9f7e4ee455573128da972bf96344f", - "vendor\/phpunit\/php-text-template\/composer.json": "28bc1e2763ce25d13885d4c7891b9ac3258ebad50daba3b67b0ae790b1aa59a289aff81edbd804090242bc130a968b70464be9b957e5b6cf77ec0f870aec6e19", - "vendor\/phpunit\/php-text-template\/src\/Template.php": "99921157f244fa6df0815f5614a1797063b65ada835942de20c09ce7708b489b9016c42bde051e0cbbc53d5e3767564f5ea2ce781ca4632b55be9f9159831ff3", - "vendor\/phpunit\/php-timer\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/php-timer\/.gitignore": "0c5929bb2fb6aad5f99af99958b4f53d28fa62a7a39e43efdcea3cafe5a330f52cc782b62e2fe58c162e8a15859e4c0fe1c4c9a9f7d0b0f6498d2602e9cddeeb", - "vendor\/phpunit\/php-timer\/.travis.yml": "5209e6ab632772c5ce90c878ad37aff8216c4a305f6b695f1b03b9488a2b8747dd722184d5aa456a210eca0547020bf05a33d4985e3957d2bf56a2bd3722fbc1", - "vendor\/phpunit\/php-timer\/LICENSE": "284cdc6da6e6617eaca848343328e6f2aeebd8f0057e0294a032401d760d98d1c7a51d8b417fb020a39e3708b022e90ddcbdc8f2889ea581e7a6a366eeefef91", - "vendor\/phpunit\/php-timer\/README.md": "4d61d9c35573c5ff6e89d158ccc138b3d2e67469d6409da7999a11c74425283c63ae018b0facaee3db109c44075e368d574276c067c2117f31f7f4f92a83f2b3", - "vendor\/phpunit\/php-timer\/composer.json": "6958a085d3ab7018d3e3fa7f93018d84934f3492b2ca3fb59270d3737a144fe777fc65f07e60b4578f8cf3fa9c7ad4eda23baa873cd9f35776c34b02459cb0b9", - "vendor\/phpunit\/php-timer\/phpunit.xml": "947194b9c9779a996ce9ece23bf9a4a546c49a4c9394be261444809858117dc0b9d51597fbc3940c4bb63dac6e700e4983812d87851dbc111c30118bec72a1d0", - "vendor\/phpunit\/php-timer\/src\/Timer.php": "7c280fd2631f0b1721fca617757394bdfb7a446e2c53903e5d629b171b5f22ce54ce53640cf3a81295936306321d3067f6f6d55f5e311c674936545508d023e9", - "vendor\/phpunit\/php-timer\/tests\/TimerTest.php": "810cc3f6cecb0c5e99ddb7ea7158b4b0c7b0121925f87a2f46ed4c713c695958762c997c2da44c89adce540eed1e07f3c003789d44570ebacc6dac64275fcd2f", - "vendor\/phpunit\/php-token-stream\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/php-token-stream\/.gitignore": "ad9fbf87fe0eec6c751eeed377054c00de3bec9c666a68a17fef4d4bf1845f3634f603955079189c11605fe7db6a51dfcc32acd9f569c1a2e9c31de2d6b2714b", - "vendor\/phpunit\/php-token-stream\/.travis.yml": "6eb382e69e1c2fb7b404e2f6795e96f875b1a2f3fcb41ee3516b69c7babb9d3321385ca6094c8e73f2607c2ded64191a09fcfd9aa53fb97bf4090bd7fc4a1c9c", - "vendor\/phpunit\/php-token-stream\/ChangeLog.md": "bc263c304669159259e37f7720df7fc94b4a561e6171fe8d27c7184d26c63993cdda7a68f1b463e548b369e6e8de9aebab0d808279b851301952460ba99c105b", - "vendor\/phpunit\/php-token-stream\/LICENSE": "2217aa05efb34f95bf54f9f45eee2cc5f63974430576741a9e805aca6127eb8641ec83f449dc52f54e51aa0fbf7626c5547201ef48daccb97c80c3475b7e31bf", - "vendor\/phpunit\/php-token-stream\/README.md": "5916b947427b5b4ec4888e3d9c4ede319bf55fab870abbef4caaeed7d686fa6bc1d434c010d206ad25c294bb7eb2a81d93fd8cdf7134400ba5e45a687f7baae2", - "vendor\/phpunit\/php-token-stream\/build.xml": "4600e41473a0e4c6eebfc21f252529c8c85b116415986e9b5b7b174fc7df0465a5c885e0b8d675961fc9d6f835c7b536787958e039a12d8c822f33e722ebbea2", - "vendor\/phpunit\/php-token-stream\/composer.json": "0ce1392e68d4c97ebafd5c71e4845d1c84a8c5d63f9ad2fa79c3988973c5bb609ba5457a454f6f7d5d0650c0b776d4d28fbc10543e70e75d6aa892c45b10c30b", - "vendor\/phpunit\/php-token-stream\/phpunit.xml": "6a155e7e83276668efec3d8d887c24a2fbd56c66f7ac506ebd5319dcb20eea5493ac118a0283f6cb2cd413df2baa4422b01f70f07f128a455de0b264cc221b59", - "vendor\/phpunit\/php-token-stream\/src\/Token.php": "2f77883c6d676a4f264f5565f1fe71eaafd006f8f154b21ce70b4fdbf4b907430feafc8bf2f45588e2adc811f8e57cea8f44ac3173c7bea4348bee941b32dd62", - "vendor\/phpunit\/php-token-stream\/src\/Token\/Stream.php": "d3d5566dcad38580e8c9db591b6b908a3234de8de7c3beb8373b6a70f42916320904c3461a4167d0a62e7278b40d4c7fdd4674ecab1e9220941ceb4df2d4e896", - "vendor\/phpunit\/php-token-stream\/src\/Token\/Stream\/CachingFactory.php": "0da1cd00079bb037b7b112b916f95466092a0b2714b547c25b3e186cc17bc562082a3b6e2508a15fa90d6395f8a88a7cc9a23c8e5c6cb6726fed22fdf7d6900c", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/ClassTest.php": "5d6cf50034fba6bec120873b3a9d2ee3a25c5fa85a77a4a7515144c3bc942ba24596f10f3251c6e3922f4faa9943625a2e6d82c7feb8a9e566cb36628af34f10", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/ClosureTest.php": "0556a5cab60f688833c0108e1fb9b18c60c4045a2b9c212690d9372db018cbd1e95aed4283c30095f6ae73ee5e1406cb01e01939bf19c889459011fa48303596", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/FunctionTest.php": "bb72f4ebf53449911547f04d228d8c9f09c7c586df6e39bb6988769dff43dbd9db10c61b23a110c27280d5ffbb976e2ed72d8d792f15d45036592117c60701fc", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/IncludeTest.php": "d0261f096a6b575cedd3f58e8064f78663e40350fa5a12606a4a8d30a2d73e609f4f10d1213bfb403fdaccb84812e28feafd1a65a7e2c1a4cc5953fff987d911", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/InterfaceTest.php": "90c4c369c2214a7d5a0724afebe8d219acb5ec69eccbbb499568d497830451f0b6759d23676983d2306010fbe1c3a500b5299b31c9876e56a53512c876f5abde", - "vendor\/phpunit\/php-token-stream\/tests\/Token\/NamespaceTest.php": "4fdbbb40bed52f7e923f780d7027086a5fc55af764f1ff7ca4854a07ca85395f147227688c36bef2e1d532ff3271c5a662f5b1d0979ab211f920c8d13bc0f245", - "vendor\/phpunit\/php-token-stream\/tests\/TokenTest.php": "e9249ff2b561a7707e169d42da93546e9280b7999ce4f14c2cf455f377862bab5ed0ad1a7362f042ed65b30336b153a2a90e97298f7fbbc8d675b31983bc3fd5", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/classExtendsNamespacedClass.php": "9364e39afc6ac13ab99df46886698b21e78bbcd9438379d46bcdc9a3fb0cfbd9d0f253e965b7de0bf5e93da5cd37dfbe0165a55ee92534ede7a61f34c651b3e9", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/classInNamespace.php": "f7baa66accd3d93ade676f21504f6e8c31045e971cee4e1f3825dbc51a6eeccb9ba70439ffb90212cbfea6e1b5804ce35299d1e6f6ff5184d7adf27d360d0b51", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/classInScopedNamespace.php": "fae848d7bdfc06187cfc96fdd305c9e2e82f736270e2f59f1ff71fdb64150c6b5af3f8c0c7f706f86b283eddf576c9964ddfbd6b5364a7c0db589d889e97e2a0", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/classUsesNamespacedFunction.php": "9907db73fe0ae15632b28c4074115e6d8cd2a5f5e785e1ae00f741e5a4a58c4604cff7390a4a3402b6c337641fcb23956622e311f1ee104e6f8d03bceef1358f", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/class_with_method_named_empty.php": "3ac2262cfa78128bf8e50379e3a00bc470d4c3b40143a7c0f80dbda55c1c858179ba63ae8a29cd2fc0ce90f80fe4809a70386193f6aaa4f1d76f316c536d45f6", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/class_with_method_that_declares_anonymous_class.php": "ca1534edc8b1b903f04349f53944771f35c961cdf8fa2da9d48420eb3fc5f5993c6076aba12189ea7e0dc2b13807e7145a6c95e6d7922cebe7601729b27357d8", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/class_with_method_that_declares_anonymous_class2.php": "43d0a1edf790af65ddda32f1605398235225a591fca3213ca63686ced59ccbf49b2ce9c5b336356a88e0773fdc824a8d746ca6345f8b09f8904fb807aa23b755", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/class_with_multiple_anonymous_classes_and_functions.php": "311394c3ca03fc059ce7970087862a015793ca279b51b739a22c595097753cdfee74c80f11a6224a2cecc68c9de36391887d7fe53c6eb4f48f2a671f62f894c8", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/closure.php": "f7ef7ae675a6e208bc0c0d56cfaf522eb263fadd17d655189eb92ff1de1dccd416b6b4fec3987068df9ecc1dfcfe19a4c764350bd9d28cd21ce975163bbccd0a", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/issue19.php": "54eafed806d5ccc2010e5696237e6e52e326fa90feb599c388185eb33958faf697bdf083294b3da22e59211fce9b54044902fe945309553e5b7caec1ae9a4403", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/issue30.php": "f8e7609fa25f1a944274d5d7ef7b63d043d15c7252651163942139a3b10efe31159535253cf52db3f95a3d8272d3bce2cec734f4b9e45d776b65ae0923a6c3aa", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/multipleNamespacesWithOneClassUsingBraces.php": "f6ea3a7c13d4e36f3d981f4b5067447decafa736d00d27e8e9ddf539f0ec414e2abc8f0c0579b31ffa2502c9728d46951679b12c2ad736b795d097eb5921f3d0", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/multipleNamespacesWithOneClassUsingNonBraceSyntax.php": "78ec77f8de7a826ca5e21b59dae72f74cd411b49db375d5c378ab1e5ca0ea249c672549fa1ac51486a17bf7e93d4f7ced4471b501637e51c9ebbde767f2e724d", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/php-code-coverage-issue-424.php": "9491c78c3c8286282249610be79cb8ee3db58c874e7c14be9fb0cb2ae6750b952230c6a9f79b6ba754e7148723ad80dff9ab58250281421d98074e8cd1003ab2", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/source.php": "d0dc2b157fc3932b4216e35f8e5de2b9164dbb231df8eb8cf254a8251ac47b80e8fdb8b274cf972f5e3551ff0533f61b8ccece62b4f91bea182a267ab4ca1470", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/source2.php": "676fea74367ef03d70fb3daf148c1c6a0d476310d13628e3515789d70e374abf2c4d61c5c6c15a43b1c7d1653a0b8f7b2cd16e1f8fd240521b0d8a2945e843c3", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/source3.php": "eec9379d05fd9db3e29177b44814229e6a645925400b465c9066d74c61272908f0a65c88ea8f259cfe4617bd32b0a6962dc4976a440a6ba55b033a667e690141", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/source4.php": "076755033d2342a4edf2bf275551f50017b657962b69e5212ea5902c9a8bcfc597c522537ebf8aa5321f3cf789316442e861ec1fe6a42b501dfdd277e8633dac", - "vendor\/phpunit\/php-token-stream\/tests\/_fixture\/source5.php": "edd3abe31768dbc56670e2f73bdcc1b3cf2757c51d28499d3091cf3186e4b39e3213e10352beaab98cdfcc725f306a50e26d0084556e81fafe59b94b46dd7939", - "vendor\/phpunit\/php-token-stream\/tests\/bootstrap.php": "a53b6deee22c06a339420588e54b3b92031a8d61c2f6d3fac40469ca4a9eb289ac2cb458c74668de21f7d2cb686f12cb1a0063a7761d3ee7dde207bd5daa57db", - "vendor\/phpunit\/phpunit-mock-objects\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/phpunit\/phpunit-mock-objects\/.gitignore": "df35edac8a2dcf69511cafbd24fcdd7108f87d3d75d47e77d76a8cc143b93e3c88adfde49232c704ae8e850e959645153021840d7bbb5b7d989b823b9b0c28e0", - "vendor\/phpunit\/phpunit-mock-objects\/.php_cs": "5424bd86c102d5c0dadd818d9ed075d74a04e9f19c4ff5ed4a0525ce1d9dcebe8c3bb37e0dcdc36def83afdceed3a1160b6e203ec4743ea66146713941fdf5d2", - "vendor\/phpunit\/phpunit-mock-objects\/.travis.yml": "dfe3417842fa7b27452abac977ea81678aea511c441ea878f570a90bca2a7c88d5d7760fd1dac1f6bb00f5238862623c29099a518ebe28811bb9a324d32e07d3", - "vendor\/phpunit\/phpunit-mock-objects\/CONTRIBUTING.md": "45b14b842bd2a3ad3aad1ee0ac9575530163eac5db229729a424be8d5d879ecbb229725ca4ed8f9155c949868afcb545a03f3a9a42be30d8637657d42d2751fc", - "vendor\/phpunit\/phpunit-mock-objects\/LICENSE": "ad97d266fec5d746d65b621339bbf0f81f00457dc46f43ccc27760a0727a996a9bac45fc7bf27a50e49a49c2e156036f0183d2cffc90ff5db635ba7a02fdc34a", - "vendor\/phpunit\/phpunit-mock-objects\/README.md": "4ca87e72443f667d80e16ad43fc37d54f12d86664f8862f874a0c046eb152aae6ef232fddf8b14617c28252e03eeaba06afa937035ad5609e6accad0e62876e7", - "vendor\/phpunit\/phpunit-mock-objects\/build.xml": "0f0b751ae284cdfadcb1bc66029784fa5721ee144531dde2d2af0900ccb3cb0eacd7ca10e68fbe32fce5ca4d8dd0070ce478ac644b53e16b3b0231a0b2519bd9", - "vendor\/phpunit\/phpunit-mock-objects\/composer.json": "6a5ed96f98afbcf8b14e54981dd6c9563cf7583335db464d0125074f19eecf23ffe842c9091707f8011c3aaee58aeccf1260e2145aa0a7c6c11c723524328cea", - "vendor\/phpunit\/phpunit-mock-objects\/phpunit.xml": "ebc5cc4c3ac7f63cd286289df57f8b64d95999a7bfcfcb8465acba48ac557b5879058e6f364d94397b502f3021985f26a694aac9d44a2e0aa6e4036f96da8121", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/Identity.php": "edb202a00fb96c5a40a2d3634ebefd04e1fbdc90d12ed9138cefda52f63df121c12b55504e2e23936d0a73f9d1d0d198bd9764a8df2f17770d688c46fe49bb71", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/InvocationMocker.php": "ca4967a547f421b83b3ae139f5558536cf2f9a5f07ebb82cd5615fd7b41a800edba5b9dd85d17962cb69a94bdf0888c461e8beb7aa69b6faaa7df8f6430457f8", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/Match.php": "7f2e4f3c979e6a1eb211d7de8a00e9153027cd1c7fcaabdee6ad0a70fba076810a41bb0afd41825f3ea6263ff895111cb56279d3a705fe40f499218a21b04726", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/MethodNameMatch.php": "c65f9679cb8eff8803896e53f17efde811f4b29998730700dcf41ae9a02b01b7623c364d31608b9357fe0842f7fe172e318032b6fe31f67a0a7d416ccdac7cd7", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/Namespace.php": "b3745324aab30378c9d5eb75bf0af6f8528c9b5f60d512b34cb1aa5cb1189abba0a9f9a79bb1e05a8f3bc16a7645520813784362e70f7c32d7c7d7821381785c", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/ParametersMatch.php": "e22f51e88808160384524af51d504f4a9a76335aac05f4bffad4a54b2fc930d2d8a123dca0747fe64b420ce506be9bce7d140099546d4a4bdf42509bfefab160", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Builder\/Stub.php": "b92542f56677b8af56da9a9c2d334fd57ab116bcdf63c115e54a66b6afb57a7c5ecdccf72d8604852b48a85bb2d304585cfce3196245af95fa550834937f7398", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Exception\/BadMethodCallException.php": "fc114d18c6c7f1e6a1f647e47f60499ab027540f5326abf0f0c51f084d5f63cf52c439ccffad40a83f1eee319bbb7d41fe3051ec5c555d52b1e3fb0ed81ea501", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Exception\/Exception.php": "50f3028002cb3f24e5727ba93be28e9fa446db1138a24efe8fe7cc727d4bc34d79690b28e9d589d21197f64138c97fd20a5c487cf8f9200014881d585ebd4205", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Exception\/RuntimeException.php": "b236a8a7f8f1e38d8b0b860000e687b7a9b45fdc55a0af2767b2e631cf48133d4c75f010748ceb8dae16917ad6e1a9b9948bd84c21a699b6f49f9ba0ef3374d0", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator.php": "5adf9ede1015b33e9a2291485d443182c8b8ca3b719a6dce9326a51be2d49c42ae7584231632035739792febe08c5dce63cc808f2f41610cea08c0228d160a3c", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/deprecation.tpl.dist": "8646ad3fbd381d5c8d8fb9a6d6e98da90401362ec506a37e05d0fbe6a9f14f875e3f025dad3ec9ee36993a9515eb8f5605044db074b0dd9f2003e021af614eb0", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_class.tpl.dist": "206295569a0155eea7acaf8a3fe572d2f0a4cc263334f541a617ef909634425c04f8b314750536cddbb8ce6cf0e1d60eabd351822aae76039b10f42e0d848c4b", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_class_method.tpl.dist": "00f0b85f40a0309862948a2524dcc1f82e1c754518b8edc731b6f85740909d288ef6ce48a999d385cd5651b5b88967474d86fc4c274ffbfc161f0dff62597cfa", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_clone.tpl.dist": "90b9b90233d3e74d7535fe0f216b1637bcb313c526a49f113725f1d5321fd9596bb9b30026c2cf6142d2d4a394fa37f85ee82c8cd46fd9c72315045a8811e184", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_method.tpl.dist": "d9a2203f6af883d47db2dda66f8c429ea3b35e7496cd82791460343aeebf1fd0e7321f8a866dfd598ed38009b4e3c4a6870e25bd1c9aac2224b1c598b64bfc8f", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_method_void.tpl.dist": "21c073e201979dc14b463d2a81b093df01831f6b353147994738eee4a9b2abcb2cccdcdae973dc074424d5143b173413b5295f87bc7e0853171c11403c21e0ee", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/mocked_static_method.tpl.dist": "8eac053b87de8127eac38f413dc8597d3b91692cb902b41eebc757daf0948af3ead8e8e9d0a6700cc34c38430f98e997427598125edd4ed99ed01e10898600c6", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/proxied_method.tpl.dist": "c9be423bc8153a02c2a3234db37ced5f501c494eb48efc696df757cf361820cd515a1107d5bfa4d72f3b683a5fd4b77850a0bf0ada673ff40533af6eb8733979", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/proxied_method_void.tpl.dist": "c36feb762bd2997ae4eaea20add97c1ce0fde143aa44e98278f7d3b8eccccf88d5527cec646cc013085c1accb9ea2b7581f3ed00b9172f0846b2adffe7738c2d", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/trait_class.tpl.dist": "74592814d134b47d1e4b0c71f89232c46639223e6f9bba788fed92c7b7749b1b1a10d0c6db96901441dcfad48a13dbe40a6536c451ca6bca54498adbc8c207d1", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/unmocked_clone.tpl.dist": "21dc8dc19c4e5b41ecf80d4bb39ee3a509e93f94780c74f6def92fc3f6e9408906769cff4aa98b45cdd9f7bdc57f04b8c88722b93bd26c9d89ce1f031cb11402", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/wsdl_class.tpl.dist": "8dbc5e6809454300705f1e43ee4bb9b2d0baa3839fe47d61da7a84455a5ccee365bec7dc5f0dea4e9e5f9ff42d4d329e82e1ec92ce89c8ac93e9fee7e98c8d60", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Generator\/wsdl_method.tpl.dist": "c644c1bd272448512f630a9c55700d67c3ed1d4180f37903cf99cdbe3cf55d4a00a00a1d1774fb6fd60c7bdf14e6cbd449f3e5bd43a6d5357e8b59819bc3cc88", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Invocation.php": "cced72a210722ec1aae4e60883a345b7691775cea57348f74aa857b0dc612f5e78468c74178ac1ddc90237687e94deef9f7acb7fa63c49303465331dca6e6b5f", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Invocation\/Object.php": "702a01e22ede6b361a99ba9090c976054aefdfaf5f0826ee1fdb49f87de4033ecb74b4d3ba9c93b364086821080bd50472f00d6126143357b5c55a2a609836c4", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Invocation\/Static.php": "327e8de69d910fcb13f2f3ed1452ee076ac92ddf955a2388c766dea0c855d440424499f9a5ef4908a9afa8427c39932a9bf86dbd29ea506372e3ca154700d52e", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/InvocationMocker.php": "57ff4423c0da3026c38e44ea3237d8b10ae6864d0eb4784215d73cc0c25fef98a1681c8035ab9f7351b6151ecaeb2baa0a614363900dcd13bb711853112a0646", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Invokable.php": "dbb31082d7197b0be723fb540f7278b207c6d78e9cb5cca031cb0ba93ca12d7da9303249a028203716b269fbd15e48839769842229705b9014ac5ff0b94e8e62", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher.php": "a3a1e8c25e9ee366ce9b28dba45432d8be2c7d7b136584fc7707367c358284d6ba5b8d112f682267ea8a9aa7b37be97d83d399a335ee74168eb9eb87a2e75754", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/AnyInvokedCount.php": "c9026bdf086f8a678366afc90527eb8df51b8e15e25a3707bebe4c65e178cb2be4be9064d0f762a99827dbdb552aec794a2bf99b84455098efe10553e0c766cf", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/AnyParameters.php": "ccd1b8a67dc59d25f4b430816d44b500c1c9eec443816c9cc07eb048015398003b2ee6447550e95db80752a5a0b19bdf5f765f12ee06bb1e8db421af07d05e77", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/ConsecutiveParameters.php": "66f4a46a993eb40f3aefca15578e7d6d3786b3195d6ddf6e0acebf2326b21451547db5e1f422e1f877148310c681b643d7d52da9c38b99c15f45d88ca4e106a3", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/Invocation.php": "53a889615e760e275175fa6fc7480dbdf7b59b4aa7d1cd68cbc8b771e45d5b5c1203cacefad2d4564ada3180a585ee275d82dc07716c9f559ef403641be29ff0", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedAtIndex.php": "47f835376ccfbf82ed4a9f0bb6beaefe12b73c6522f08d09b04fd7ae46c1422f41f6e9b5132d758e192d16d15070839fcbe2d5eb8f26c5f40eb76c9b87e51ced", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedAtLeastCount.php": "9ffab6ff986b44e6968b96876da409d8a9f5365f49434966097e70a0f7130791a970029c8196cac58eb423c308dca67538dd9743639ea89bbf44e76d78879ec4", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedAtLeastOnce.php": "e3bcd0ddbfffd0d0ed650927c507fe154dec3e122c6c04eeeb5c952f988f0d0611a4822c7b0af554533d444fdf6c1dc3049f0e4b4d664c2cb3262a4aadb29877", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedAtMostCount.php": "bb95542c6d62827819c8b82173dbc030528f3fdaf4661c19c3e06f1effef654b1571a97277f32d103eef66b76ae4521fef118ca7a38509e3d9d30673b9437c6a", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedCount.php": "9fa4e5dad4b5fe1ea37764ff419828f3691a12471954de9e1cb4baf507e7277a7f03f3198828c7526935c7af9fb26ee34be357c766222ed4f83bcfce64502ca3", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/InvokedRecorder.php": "be8c39c9700172fd0b62207ab07dbe2ca3fcb0784a54a493e60850e6bd2bc97cf27b912a5462e4575995d6029cb51e4742c6f8dfc2544db44e3203d0170de041", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/MethodName.php": "66439bbcf5386ad5563d2c8b4e5f5c5782529d5f0b82a7bf89c1349f4d435fec69a7980266e0de61b19d8242d93b00623d7814302f8047c945d81dda90fcb922", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/Parameters.php": "77457f34d105698cc22206118cd3baf97d66e3c2799d9e5e038daa51ce77d4e600a132b6b8c3ea0910f2ddc6dccab6b32573dbfe897c4390c5b6dc6dbc78f672", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Matcher\/StatelessInvocation.php": "3acf0e9aa98474b98cfb86266c29aec200507300bae5d34ed6be32c307faa0d3e3db063b7cd69eb1495b16b6720e92f6e9b621b27657090ac78228687d17866e", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/MockBuilder.php": "6bfbfa895b0a43a6861c6b8762c52c044eb2120fed3e90bf169fb647a60380c0e9cd05c1a1a4c3525635da4e495789516e41a73f2097d0b30c7594469f5a44bd", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/MockObject.php": "3b0d57c4de8a9f66b53f5585cbb6624a6810625a9c84576a579de7880ef469152a3987ba48a7c6c41e7740adae348ef36493d51412dd29436c5a38499cec9a80", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub.php": "33f6565bbc15cde6124aac085b8faf4d4a76fff589dce893817cc618a24453195112b7ccf8fa6b49e8943367ff788b20adfe6213f29daac3fbdde7ab5126dd4f", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ConsecutiveCalls.php": "a2efa66d29835ba0fe8e9a0d0a86e7702767f6875951aa66f16a3270c9abfcf7aa047c18f1164813f9bd4fe912d98bfed66506fc5297540ab5a220a35f81af2f", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/Exception.php": "a49b505f1d839a61883216db90bba3f7ea065524b24aff7dc7ac8ecee49fde52971be0feee112fe93667ff266830e851f2dc09bbcba97f8109e5b5fcf1567187", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/MatcherCollection.php": "b5f20cbf88aba4617864c5eeaba9cb3d8973264e08d78338ff49e792d2b0f8e96ed067187927af3a9c63cf8abb50bddfb3ec6b39af7e1108823031b5926e6c46", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/Return.php": "cf35960fd74060180eb07ebdb80df9a24b5a9d79bddf7531edd0d8c127ddeafcb188395cd82e97d278cf1ba6b4b9cea359184a8fb986a5aaf632e42b2da0ba5a", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ReturnArgument.php": "022df41b88fcb491244c92a933711bca411d785e238ad00219dccf275d20761f75142489a45251103fe0b9b713fe5e1b3109e2a4fd33e971f599773729717971", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ReturnCallback.php": "322436df29fb013da52b64e4f1ef33d0f73b8a569a97e5adcd5714c5080cd7ea250ff0c423f53a355553ab5b3deef92734bd7c02b67b9290cd6168863a4fd368", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ReturnReference.php": "d6f7d2e6dd166e6d6ab9316c0935b8ab4ffb8115f848c8633029483940c65a11b202bfad155e5ba044cddc0aaf4ee799ad1a8bfacc3cdf2e383611503e2c1359", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ReturnSelf.php": "060b8c15a07c8e9ff219ec2877b35b60a35d86ec8e2fb140eb9f5a3471c60109d9f5a7c7792713a4c0ed072e5604bf991914d042dc5a6fdea29bf003a9a7156f", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Stub\/ReturnValueMap.php": "7f28b0b1bc554b6ebd2deacec44665168b68625c59fd9d640e28bd35e0b7e1408c6b4875da851f0857e4295364e00fdca533f2b0e30c2e870b28d6b3fe2d9a39", - "vendor\/phpunit\/phpunit-mock-objects\/src\/Framework\/MockObject\/Verifiable.php": "96b17cd19f39da863631443add603fcfc4d2661e1082836cbf9dcec9deaca7d45d575fe125eb7cea04932dec475d9a971d1b21b895ead1cac2a51559b0755929", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/GeneratorTest.php": "484510b75bff2cf0c11c71e07d30e59554205092cd0abad412a62c20c7a6aa26b1132e5123b98ec2682664fa66f36c12af6dd86521915cb32194be9d0615a419", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockBuilderTest.php": "47cb0e03aec42088bcea6b2265af6b4522252683f4a243dab8f5538ab04a29ca85cd77e60f447471d2782697756979bca72da2b53b19b91ba5647d46d5ccee41", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Builder\/InvocationMockerTest.php": "f7eba2272812573efade5fddc2d3c1454987a3ace6323f1ada13f53887b486a34844011007ce69f8ca3ba63619dc0c5d33260b4a502a757eb46af3104de78ee5", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/232.phpt": "94e8e7803421c4f3fb87e5e2fe9ae7970af6b3f455c5df807a63a576b16c6c3827933c8e28833356d8d924f9883ae09acb6200640dcb0bbfcd1275880b93c4c2", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/abstract_class.phpt": "b61dc3f45aa52f6b73a8b12057207157fd90540e0e75e00022d53fe37ad98ae58b75e4e71a26b990c496c57d26937a988e82dcc25a42db37947436d3981e75be", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class.phpt": "ed1ad8ab30126559fcda3eca825dd3ea0de51d26ddafa81669daa3bb0d792d3bc3ba827d0853ff8e6dd8055d6a847a4b181ed66a1d68725a6ccd39288a914034", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_call_parent_clone.phpt": "c64d02b090c6cbd011c70dd1e7f29a3768bee6dbc90af3b32eaab8c20de88b9fb2e4af9dd024ee88665705e4bf8fe0cf121e31d1e5c9fa52fb73c3e73dfb8096", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_call_parent_constructor.phpt": "6c421595982c91ec9edcf5509c22ac3bbadee3810f1697cb9dc0de8267026ee473f4ca90f3c3aad5218c19316ae03b95aa73c86813b9f195e8ab96b7653e9dbc", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_dont_call_parent_clone.phpt": "e16281e42f82bcfec5a9f91a135f271e56ceec2f6c096d3e9dce418c2d6e60b6b1ff317f912ccc500fe8af038b72337812afb6dca551fa0e4d71cc92c3fc55e7", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_dont_call_parent_constructor.phpt": "6c421595982c91ec9edcf5509c22ac3bbadee3810f1697cb9dc0de8267026ee473f4ca90f3c3aad5218c19316ae03b95aa73c86813b9f195e8ab96b7653e9dbc", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_implementing_interface_call_parent_constructor.phpt": "efcc0e08005b3b33c9beabf48f362768d023442f0e7835f7cba13f70bf871d0c353c7cc0bf5ba9662b25add6e64266170c9f352b38ec3d7f69b6334527b16444", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_implementing_interface_dont_call_parent_constructor.phpt": "efcc0e08005b3b33c9beabf48f362768d023442f0e7835f7cba13f70bf871d0c353c7cc0bf5ba9662b25add6e64266170c9f352b38ec3d7f69b6334527b16444", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_partial.phpt": "0f2182bae310e92f2d8fd4819a8be128e6d46eb65d3121bcaec9ad004d10a0e740d2600a9d1eaf75d524387a7d8ddc19bfbd7247b8c7930aa4c06b06621d471d", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_with_method_named_method.phpt": "20464d1f5c2f894182dbf1ea969316caeb0322da2c7cc54a756a7cbbcd0d57399d7278c0dd62854f915de83c0279dd8493e67a68ff1f68e69d33ae5922e3ba99", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/class_with_method_with_variadic_arguments.phpt": "3cf19c1c4ab286657e6cfc59cee95a410015810daf95e5bda6aeee55fc292f8c40af15f2f9a4a0c87725dbb724381460974778da1d5267e5fed25a81227c31d9", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/interface.phpt": "c4f4a52c5da41ae613d459e71870ecf996ed5990df2ca473d692a603f63a9df2cc43cd3411a5c96305084a5ebe384cd3b9f47879bd7027fabfab96e61fec359f", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/invocation_object_clone_object.phpt": "eead0ce613ca1b467ca4586ba573bb28da02934e0e0c39622ca8ed3112526a1bb787467d3592afdcd101b45a9e5f3b908b7f5ca0cba40cd1ab7fc7ac8532e2a1", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class.phpt": "6d3eb81377999180a99c3422d8c51ff03637b83bc428a42d74ddca228226bb8b464554c71e0daaabcf72500eca3917f6fcbd160d22641784519a6248f145538e", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_call_parent_clone.phpt": "0ad5fcbbc7a90ac2f91f918b23ba30feea832ca745d78e6a3eeb13ffa88458076e4708f96cd67a1ef914130ecd22a7eb28c4d5ab0e412ef2220b9917c0eadac2", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_call_parent_constructor.phpt": "956223bb4f65c299bc53d8febdc06a957dbe63e8e3b1b2ca3e0742d1629a9a9692ccc81e30a21673f45ba4a1e1183bd1dfb0cabeefa8345437085084adb3b2f0", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_dont_call_parent_clone.phpt": "321d96efe232e14111dd3f76858eef1f01a2b44a891f442fa41a5731676acdf79e7c0915f4a84be0e87618e3a24487f111d04412345ef59ecba49e8345ab45cd", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_dont_call_parent_constructor.phpt": "956223bb4f65c299bc53d8febdc06a957dbe63e8e3b1b2ca3e0742d1629a9a9692ccc81e30a21673f45ba4a1e1183bd1dfb0cabeefa8345437085084adb3b2f0", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_implementing_interface_call_parent_constructor.phpt": "2323cbb220bf88335f189493f1f47ebb54e9e9f507cbe1094be1b2974629459f4756730d282d30bab4dc8077340e5ffe187731c3c907bb01fbf4e05935324aa0", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt": "2323cbb220bf88335f189493f1f47ebb54e9e9f507cbe1094be1b2974629459f4756730d282d30bab4dc8077340e5ffe187731c3c907bb01fbf4e05935324aa0", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_class_partial.phpt": "838b915677e6ab93a0aa359b374d720fccd37a7c78890860c796acd19f01434f80d766781c4134d3cf762675ef8034084a2bf00cec4e05fbc2e82e2657d87493", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/namespaced_interface.phpt": "610ffedcafb7a9db006f7f4cdc9cce6258a4c2dc7ff38bcc7bcd3552cc06577994752d4e058dafc5b8e93d604e944b4e97a51d6bb1510d62f7d1d59a78bc7fb1", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/nonexistent_class.phpt": "029bd1cdbbf37ef4d9caa1b4be594b00ca7ef4595d54021f7f3b869f12d0386f6c8458879c5750aa03e183a1626a439cf57f13560d2c8f707a7e1a6db0759fad", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/nonexistent_class_with_namespace.phpt": "becea3f874159bcaeee17fdd73bd51f98cd38d2fd768be639817fdd1a28180fdef9db6ddb3d81d5199fa27982030311d2b2780dac2e607320ecd36a22f2fc83f", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/nonexistent_class_with_namespace_starting_with_separator.phpt": "8176ffed80313afd6a116854cde76ea3c78f8345a0f600dae092c6101b5b064b4254ba281287675ec0b2420323f8e2310ad54e0454d9c6c9f31b1ade0093050d", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/nullable_types.phpt": "b5563552d55feffb2d9a5bc376ce4cf64e7b69ec4f5fece7029edff02259bca2ff06017c75b79d0fdc4fd42ee2531076a1eacb755fba9c36acab48c631c18066", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/proxy.phpt": "4deb5cc29e0b02a6d456e1641c1904e4b39efa6fa75373ec52aeba97f6bd3a4673e39ac4ae95e04949df4c171fec6edd15b9eb3cb4ecaae98041d4f77d334774", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/return_type_declarations_nullable.phpt": "206d0b6d095e02b86797b1f557deb45001fbb3313b51aff77c7f1887289e85a533145ffeef70e0bbdc650b3bf1efe100c17111bef6569d38d434a4d1b928f028", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/return_type_declarations_object_method.phpt": "0885e1cc426cb558494242bd8415aa422061cac97cf417c3c252952d19400436479d2cf67f6f507babaeb4b2015759accc45ac66e551ef999b06d148d0cefd4e", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/return_type_declarations_self.phpt": "bfb3fd0ea3c9d98374d483b2dad33c745c2e8111fb7916fc2fd669706c7bce7b1b2b44f0216c3b8b28c5d234c3969131da507547ab6ce4bfaecb2cc808b7cf88", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/return_type_declarations_static_method.phpt": "82ffd79ce80fc63eebcc2cafbd0cc644f8d54dc87b192552bfe0e1aee3056e3087ac4df05312873aee7daf2bac5d056735cd583b170abe3c745d0a243703608c", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/return_type_declarations_void.phpt": "b49ff220c1202a76afcd89b911e8544c6f4e83887d6c0e439ab5862f2fc1ac62377d61c0a627c816fdd7a945dbc2ee067519d9baf0a4d5cad63eda50de895324", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/scalar_type_declarations.phpt": "0cd9cae7499527abd055795997eb2e6701f93d6906f9f08e5509439e540890609fadd11ff8a518c733a5ac7fa33b24be0d6b587a0131be3121367d949865bbad", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/wsdl_class.phpt": "e2398b4e26a52b9e96730469d1830453e56eecb591c938633450f8b7d0897921e5fb28c2e45f890d5bf09e1309f7ea07b117fef78e601683b73460182cc5c8d1", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/wsdl_class_namespace.phpt": "00b794759e7192937cf95ed8d1d961c42ba6064edf12d1e504db822498d8b1a0c5b78162b2f19221b89580f67c97b71483a124f8bf1e026f614d26dab4a297b5", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Generator\/wsdl_class_partial.phpt": "72c6e160b946716ae8a26566f9e42adf18e60463c4e2de73724502bcf082f248af77ba7be19d29deeaf5feab4005e6def648400aa814401a728430ad43971f61", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Invocation\/ObjectTest.php": "c15286a9bb391befdf32f11f8cd9d44d1e0f1bf64a4f67eacc6fce89eb38641fc617c63d59c4ef6fb384a94c062b5cb026dddc7ad01e3eb784d3156893b8111f", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Invocation\/StaticTest.php": "19f3325c1c7f286fbf1dbd0fc89f5929fe939ad259c98f32cf05484aff6f0b0effc7e0210f06088ea2d82a0d3f40150f2371d00b54c0214f17fb42ca62f05e66", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/Matcher\/ConsecutiveParametersTest.php": "8668c68fb55f66b0fc3c8792b500c46714fbac53bd3412dc98aac412532be879bd04ffbe2c80aaa0babec63eb09b9f4ea8e8f6f630b273790e67d3e5a190f3b4", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObject\/class_with_deprecated_method.phpt": "dca5ac3ea83241a428db23838211c1d40994b10b0d979601ce397963966f33345461d7cd80459bb123d3dfd686f317604eb7d4fd658ee55a7c9dff2e2ed33ec0", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/MockObjectTest.php": "5e9aa56c310af7bc806d80a7e3b9b78b5569dd171928311253a899597f93d7d9f98a6f0c7a8f16b91883e7b910d902846cd65f636a8d01a35a61000aaf12d6da", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/ProxyObjectTest.php": "4679eb97cb8e2878beb0a0fb577227fd5b6107cd26879cf024f76b68157fcef85559c90cbcc3cdd1ad59951de5ba8d4de6545147cce61673f50558068d077130", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/AbstractMockTestClass.php": "c83a486b2d3fcc2bfc2670726490496f507b395e6bb069c78eceb7a58bc1b3951c41d74f1b34c3d9d964c9a393acc5210327e8ee0924d0162418a6ecc34efc4d", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/AbstractTrait.php": "22ff1e8226901c849dd777d84310fa47e2a4be173d1b502fd6d40172584df6c02dcabd818ca6d3506eb46e6917902cdbed693f72dcc1dc0f90e0be7896956b0d", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/AnInterface.php": "de480c9c4498068257b9a1e66c10c823d70248e0b9601195e9e56b87445125babe8ce08eb49687181633bc71079538248ae1eb2eaea9832772a0e663469ca201", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/AnInterfaceWithReturnType.php": "a7698e505a552cf847335a7e114a6fbf7b16fc08a623d08530162f17b2fcc2a116d32bbf6a68e13ace88bfd7fdc851275042bdbf2dff6b750cee489e3df331fb", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/AnotherInterface.php": "b6e63467f830dc4182637687bf8dc4d74689188fc90cb7c711a2458a088c2d191b55628e4b5e15d121a2e9bbb79ebd5b63dd4e8810db7ba4e70a7499630fe65c", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/Bar.php": "b6fb6e85926f936973fa6148108f7521c4dee8dd82f1c2e8c9c5a0a2a101c1742017787688fe9aa3a410fb013fda9c79bb69c51c0c8e6b3f76e267be198bc131", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/ClassThatImplementsSerializable.php": "3612f62f365182b26d910c341aeaadbf26a94b9bc22742405bc13e1661774362b9b6ef40cb76f18947c98ed5ab268391d9f33d4f5cfcfc8b372d9ce680fcb704", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/ClassWithSelfTypeHint.php": "f9308773ede7656e29fd390ae0fbf679104cfdc8aa7647d211634ac3e1e5c6357e82937afbc87f0bc1e9dfd8d16f3cf9cc7c747843d5f667f80dc418567b08d1", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/ClassWithStaticMethod.php": "56abc3cd7308498fdd20f19a0a47700ff05b6e1032aba26dbafb07dee5bd2319cbb9308c08d05f9832a2052b4a90fcd631d828134ee094446db5d138fa16d486", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/Foo.php": "fad4e4eb2c77bf7e7d6b89b46b8e6fa4c7b1a629d62fa51cfccabe0848d9a9ee8d348b027bc495ca80f3c90220a7bfad946d51838d6fbd934f6509271e384aa7", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/FunctionCallback.php": "26125f63bd2eb89e6cdd4d182b92605a75ec3fa8bbfed7ffc797a1c8526fbd4a6b519a27b34f549855f473370526239f9fe2bd71cb3603b99d8e23debb21a4a7", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/GoogleSearch.wsdl": "61b849d9e70e4452e0f0fcb9cdd538b0a4ca99ccd33d5bb1f1f2bae3d82474ec7f78277e98eb165ae328a478328f6797074a46e8320bab92c06681085212ca7f", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/InterfaceWithSemiReservedMethodName.php": "97e430e7569463f78fc3d5cb01a8925eb1ed6710d2460e6e97484152c29f3783bb35ba0e91a9d5b8d5b19aa6ab48c69fa9f728fb096e0a9e0c862f6b70337afd", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/InterfaceWithStaticMethod.php": "93b8565701cadd223b2ab2aa0212dc61897b6c862a66a3c90cd8084611589ec3e143cfb41bcf0ffd37e5de01a2792e80a77c654063fe982e81fe5e010428cb2f", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/MethodCallback.php": "87793879afd38088aefb254585ae6d0b11f70c7d9ce36c993c97919d9f34b57ec05fb35e0ecda63843f90358cf6c88c3b0a56fbc0e52ca940683243880a027bb", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/MethodCallbackByReference.php": "bbfa9cdb3936b3189ec514e07bef38c989098f2e08d4340c24b6387d8e7cda4ec0f6fe5e04aef4f8371babcf19f0dc1a09606856ab0be9bf05cffa0842ab4ca5", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/MockTestInterface.php": "cd3eac4eb9b1310a679e0031c3c6df9032905cf73477b43aecef4e6c33da1b88f07d77a01f4701a4242b02787c7752b531010982f7a6645e47dadcb18a1b4bae", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/Mockable.php": "3c2435d4ab5ea3b59510d362493b674a41ca6feb7ff1df6bef784f656a0eacc1622806928329d040d29a9efb35d69412e010ae917a65e11675c2844d9a0e0e65", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/PartialMockTestClass.php": "074e60e429d5f9409e1cddf65778fcea680d670db37badbdccfa582a58e1c344bd74271fe95d89461013deb3f8807b6050495dda69f4113c791de0b8fd963f28", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/SingletonClass.php": "8779d113130673e6e843c835ccdfdd54887f593ee28b5f31f5b72e8aa80102b5a534830ef66a573baab6f62a78ff67186f3be2e584d01a1fa149b96905ef0182", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/SomeClass.php": "d9d409c6a9d558bbc30d63b54d84b3edce564a4e2096d9913f92d33105a36db280b8eb72d5fecd8e17df1afa0b1990ac002ae9a3085eaf6bf4fce1961a1ee342", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/StaticMockTestClass.php": "2e66660306f8a7ecd02a6e42cfd68dea60388f84439453362178c9bf6882b6f4ab9c851b3fa99df4762231f9f858e8de8e5ca7a9ce6c2170a316ff07454c7f04", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/StringableClass.php": "757fc5d8cb6cf64b9dd814e8c6705f2616d9149a7221fff07c265ecbdb4502a8a538bc61d30b59c579aee44b0abbd8433cc8feb112383dc9c9ef1cd219ade6eb", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/_fixture\/TraversableMockTestInterface.php": "d3115553e0a55b04bf152e0bbd9332dba016ee729944c72323624fa963ecced6781bbe35af7196f75083727cf0841307714f48376fb7f6125ce2ad61600fc062", - "vendor\/phpunit\/phpunit-mock-objects\/tests\/bootstrap.php": "30a8e9e9a4d9e45da4e0ce81ee84009d851995832fd8da88840467ab7c625546893eed3106514a4092e23391ebd6b8a01b7ffb1b22f8e7ce06e79c3567e844cb", - "vendor\/phpunit\/phpunit\/.gitattributes": "932fb6633e827d24f7c7059c597ba159dfdff1b08d2e9b8099088f183d24c3057e9f99e54e5377dea5a164dce5bc2f79429a3d642c834e9230155f11e8ff5c39", - "vendor\/phpunit\/phpunit\/.github\/CODE_OF_CONDUCT.md": "3d27f947bf65f31f8b9ce5aa58209dddda062fccf19d7d2c5828f8fa3f68e9962b63905ce29aeeb6ab4d22c5d14a1ce8e95b868b68f4374fd7aabc1873c4536c", - "vendor\/phpunit\/phpunit\/.github\/CONTRIBUTING.md": "e10e630d8ae785f32b437aa47e7de6d02ee9b001ceeb2d14c34d79f02e51f33eebfba2f1d59bf95f1c2eabe37d3c81408196f16fa7e32e3b270ee2f3b32c8765", - "vendor\/phpunit\/phpunit\/.github\/ISSUE_TEMPLATE.md": "2b0faff00bf28e0e53042551030545f5e4432e7a6e5f1db752f7c45eb1bbfdc48e6d1f977fb0af304be08a31e3dfb39ac5f3d075454e7749ad3a3926d6f02646", - "vendor\/phpunit\/phpunit\/.gitignore": "18cf18d202d11f268ca2e6fa02d1e1e7603c5ec7837212a66ea5acd4261ad11c463c62462429caf52dd0d7f3a6b1c09ba122380862c5b470643b8ce5e03dbdb1", - "vendor\/phpunit\/phpunit\/.php_cs.dist": "d77aa8f3373d60aa0512deb23f7158ed8de03894721fdbb88d28caef38c7f8028e55f9320e2e2fb38c6c0d2a8bd3ca880c515367171fbfdbea5c494bef1daa4c", - "vendor\/phpunit\/phpunit\/.stickler.yml": "57ad78aa8592eeede77486d50e60e89d2eec3bd4e65db17dbc31e984ab26bedf0851695132143885beefbce5d3c70e164ba2e2540c00777c9b7bd86185286ac8", - "vendor\/phpunit\/phpunit\/.travis.yml": "3b9d5c733823ec9171ad0712c87e676f5c378566e175c36741472f7b8058e13813cdac8c40ce7870ca6408c6e001a1c6b81513b67c84b613999bf202e5c58aac", - "vendor\/phpunit\/phpunit\/ChangeLog-5.7.md": "d2ee922444c402fa754fb2b2de39b5c7cd3bf5729c1a4f28503c833a4b4075dfda292ff5874535228672e8b0efd53aa4e2cc718ca244936d9a76a4d80385a56f", - "vendor\/phpunit\/phpunit\/LICENSE": "c7a1c74549b1b81aa9e641fd5875ffa8db86c49c435a0c442d9284dab0aa0fecbd9dc7160de1e00d792124595a870aae359509a82dce6f9d4e00eda106266073", - "vendor\/phpunit\/phpunit\/README.md": "88598187f8b9fa08afa5847f85e28217b8143c408c0d9a7cdb2919b12ab33bdb31072706a20b8e2083c2d92ed82474b3ca3ce2050c1c6bdc4837d919bea551e9", - "vendor\/phpunit\/phpunit\/build.xml": "f1b3b34498b21af53b5b273b206d80ed2f0dc71217c69bde59d7806a90deb78687df17493e599bb9b7222e41f8028220f04ae8c75692ec1e21f3a08017fa3c2a", - "vendor\/phpunit\/phpunit\/composer.json": "7a6e93fba64c973cd59b5d144be41c3056c86a5c5f754417b2cea794f72253f67feb53989155e69e64417d50d0ba594e3cf9d2b95e05a663ab0faba1abdb703e", - "vendor\/phpunit\/phpunit\/phpunit": "6f5a5b5bf699cba595f57fda29b1e05e84db1d4b5bfe46a3cf7ba2297bd976129fe352331b0d7a4228831cc466349a8992b8849baf700f8ae85bcd77486f1d92", - "vendor\/phpunit\/phpunit\/phpunit.xml": "6d402071afd0cc34288121d3c303acd60a159d8c4752445659a2bd5042e49bc306042c88e058e12157729f9774af3e573d29cab04dd2c643fb04e81ff6837b27", - "vendor\/phpunit\/phpunit\/phpunit.xsd": "4e1816a365b1a03b9871fe8da8e8a9f8b4a1b8c46af934afb568c8af13e2454d6eeabf4edaa98a8b4e5b97ce39fafb1b2feb7725b50b571ec9829c64950707aa", - "vendor\/phpunit\/phpunit\/src\/Exception.php": "1170c0ea36d6727d8f54b0e1254bd6dd2337bc1ce8ecfe251cfe2a261e2290d6d4c499320fc0057d2d26c2e2e285c792d5b8eb1c2848c27ecd36495a51af7e88", - "vendor\/phpunit\/phpunit\/src\/Extensions\/GroupTestSuite.php": "aad9874099c95377a52d5905ef1cb1c6359fe6af3777a459f5f678d85bc19bc03bbf446f9edf1390655ae4bc56ca5761f1c9b60bd70122a75cc5794c96683e14", - "vendor\/phpunit\/phpunit\/src\/Extensions\/PhptTestCase.php": "403fb88c4d6ac0f09ee178c80324117b84c850e6e510b9b4000ed0cc9888f068ee1158bb859452065b231f4ec9c56f2600cc2148653f5188381d8e69bf1670a3", - "vendor\/phpunit\/phpunit\/src\/Extensions\/PhptTestSuite.php": "11a4946b72b4f7df6e313770b67684de0b2e926e2d84c30705ec29e04a484816aba2c31eb8c04757a2fb125f80878e369a4b910c2abee0c6d9b31f41c37e6de0", - "vendor\/phpunit\/phpunit\/src\/Extensions\/RepeatedTest.php": "b6cffbcf93a4eba7fc3e30381aa09c5fb24afda76888805b29539bd9351b56000b5869debe37aa76666fd926caad8f0160cf525381e9a6a3a57da95bd9c451f4", - "vendor\/phpunit\/phpunit\/src\/Extensions\/TestDecorator.php": "b153a078c0a4a31c11ec678fa8d32d3d27247a3857228466ec6b436f02bab32d3beaf7fa755cf87a87c37633909b9a590793df7480a71458830912968ddfeeb4", - "vendor\/phpunit\/phpunit\/src\/Extensions\/TicketListener.php": "289ad35593f59182af854e8c5cc99385e9f1a47e3d83d8b36d8c0eeb6cce580d2c46e06de264fb82487e9038543fa6a2835837e79769fd9fc9ab16cb6c3ca3a6", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/Assert.php": "2bdda9528eb52845e11bb1ac97136cfbd7f7e09173f84699ee49760325a86375c941aedf2abbd1c932eb90fa8ba93247877f9640987657fe22a3d7d58b1af754", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/AssertionFailedError.php": "4766824eb3242dc372953a14b4b1ddf67d8a77b6c28def4ef60724466c53e71285d95049588188cc559df8a01d9b4cb1c87c5f5ab30f95f6ac6eb307bedec3d3", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/BaseTestListener.php": "196645a2cd41ff0a667e6a816789c51d9b2cb4e927d25ebc1bc18a23e6d37be5b60e89efd9c20f0b8f9de62e8c51a4a7a5f289252b266ca87bb9b9cb06fa9e01", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/Test.php": "ab4ad0385280a971267d050817737ebd987c01d266d4251a5c04dacd472f519076d2e67929df2b2038b7a69b7f2dd6633aba320838ad4dfa0811f52e0febbae1", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/TestCase.php": "692c47bcc2370e4babaa7660955427b959e7f2b9502160f511b199fb633823406aa48cc4f3e9aedc1454ac1fe2c47341e3a247f18f22de929be4826f0ed34607", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/TestListener.php": "590f4ea69e58827c281d93b75bab9df4595a820cd14ff1c7833e2e5ee545be624c3d23f6077e9e68300c2605be9e093eb2d4af28d1e57dbd3d311f9b32dd485e", - "vendor\/phpunit\/phpunit\/src\/ForwardCompatibility\/TestSuite.php": "547198d81063062d1073fad8fb4b537bb84b236ad774a5814806e41b98e3fc9bb6f8c5287971e59a2591c238b63ac54aa4f696f275ebaaee0be7847c3d181bb9", - "vendor\/phpunit\/phpunit\/src\/Framework\/Assert.php": "3db41fc210a7d061dfc759040698266602988937a08047ed020e50508269507f1fa42c7e4036e4d5a6a452408b584ca5cc861ca6ddd1f84b274af06901a3e4dc", - "vendor\/phpunit\/phpunit\/src\/Framework\/Assert\/Functions.php": "0507ef80934690e13f9712b93e7778a8404068cd6781550ba07b756861aeff15904c0d43dcf1c74a9271c613d7af5f0d88b7a75feb54ed67e4ccb7d77a64d8b0", - "vendor\/phpunit\/phpunit\/src\/Framework\/AssertionFailedError.php": "74543fccf851d73f58b55d6b2cb3b5aa617936542b21c5959c4ded0a2cdcf6543248c1e3d3105a48cdbfbd6eb4a12bba37c38945799e7087e8613e58fb45b45b", - "vendor\/phpunit\/phpunit\/src\/Framework\/BaseTestListener.php": "0db074960fe03191cea73a8a4e0b0cb55a7f7fe836ca2867a3401a66666daf3f8127130ebdb29b4782670a5a100dfd69029a32abcd3549c651f66fe2f4a2e86c", - "vendor\/phpunit\/phpunit\/src\/Framework\/CodeCoverageException.php": "2c9c5ddc9da55e7c0da98e0f2b02211f5b936f600fac6013ac44e8c4b36f7a30bd9ec780f1be87c03bca2189421f953b00e958f5afde9631211e2ffa2502cb3a", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint.php": "dce0a828051605751d8939d21dbd708c344bc726e93282ee2f7aa497474b584171a2c6510a2695cd1ffa3a9a95200cc3c925e59dea50146fcbd6d8c9023094e5", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/And.php": "b2e2314ce41d66e8a7fd1b06dba85ff66d91b13b26e5a3ad27a87cf84eaac7c749fe4e41752d6e36763cbf7bd0e63089dd83d9b41c6995edff6cead9423faeae", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ArrayHasKey.php": "3fa3ec0d511e0ff124865d84d86fc45a9f854d6a06fa0b6e8d0cc26e936edc9e11ad15854c409a6d3a11638742e04a11782650ec31c08b358c291221546e1ac7", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ArraySubset.php": "f87797d4201a9ba8e7699a680fb219e63b865bb2578396e7a8c107a220077526715afa24d878dc7020ffa2ffb449ebd81f0c01b029d1620e59442884a69441d3", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Attribute.php": "d355bdd166ac9c112a5fdf9fbdee49d0909e6587c0cf4afbfab5569cce16e71fe57ae7110b0b174d47a61f74bc68c9ed7fed999de2267cd0baf7c0eef8145a3f", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Callback.php": "8f824a1a5e03c05bbd9a5872e3ad3c186f1a47cb2ce7d4bc5b68b028d53780eee0d8c331ebde49aae1ada5a4c3c7583469dadf036aaddf725d1a55cb5bccd312", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ClassHasAttribute.php": "6dcf153a5ffa0a3716fb21b1dbd4e39818e55f7be667122abc38e50704fe22b90653cf04918c529e1106aee221e0f476e6221a9223f62e2b238d2f0114713d6d", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ClassHasStaticAttribute.php": "d9046678494186343e2205dc3851878419275258527ab7ffdd6d098d81906cb5ef89f985406f3797f0fdbed7176448f739a2b1f8c5b23dab1b0c8c95757d74fa", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Composite.php": "04dbf66a6166eaf03c735b73ff233d92eda979155360b2bdc602b870bc6f960774a727ce15aac146c4dcca18e7ecb2729f1b35eee56d9f36eb13cd8bb868a702", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Count.php": "b4de5daf5c209120795c12ed0b72c1d3eb831ea9d59652d2ddd4653b14ecc302798c04733980eabc06376febe790728c00764539765a3e9fb387096903e20e76", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/DirectoryExists.php": "ea0bf8967c90a3b3f39f83a5f9c635e890fb61a483f0eee78c2d792388056f31bda21ad2e2e4886a00a7138b85f681a449f019a007de25b16bc0676413e01196", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Exception.php": "9087d5b1fd056c941600dbc6633825d0b81b6b514fd11e856651d588cf3de5f9becf51425928d46735ebe23f15acec96fbc98966bf400d3582f80a324e67c639", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ExceptionCode.php": "791dc73f799a3784bd63d82a1e86ce9e59adbc4ca56550433df2bbf98f55435526a6231dc67ae612f775ef4a851921efc6ca3f3473c810107af9dcc668d7a123", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ExceptionMessage.php": "4da3231283dc331dec25c4106289b5178c3ef2a620b7cba796ffbfaed544863210b0fbcae5b9e2ecc585f07e31bb33bcaed10f36d4087737385f31d25b29f2b7", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ExceptionMessageRegExp.php": "86ea7b7c69bb355119928099d1f3574606fa4bf836ec95c8f88afb5351a4786a5c64c7593624fb5091b8b9e21467c69712e59ecaca46dbd2172c9b5f4eeb5971", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/FileExists.php": "e69bd4055c0c5d6fa42dbb507fd2bb41bd6291c23a4b001a528823742fcea8ff5757c0939c07a74b186b5bfe506c72707a2a513274b596c681df69af93533ba4", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/GreaterThan.php": "31dae9baf8648f74f1e16590f5aadeb353ff31cb806fe2178fd8b77958de4853593a8f6ad4df7993e25b81629f6bc0b51553d63acb3bd729316898b89a141d8d", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsAnything.php": "a1fa6f7fd095beb762cd742687cf72332b390758899bb260f09cf53ba6c4b31225e191c5df4c59669c1c8d01513741932dab567e9888440d99dd83dce3815300", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsEmpty.php": "d25f64dc077ac7ec19eae64d21b44b89ecdf4a7bef229717c2526f3b46fcb08c2f1b80b6e4b7563eccab707cf9e1db877824ae3491a417119ae35c80b231d601", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsEqual.php": "dc07c25961f4c1cfdf97a74238e0af474730d69d66707ca4db924b0ebc59b6478dda8ff908d113d2597360e3ae65b3c6cce3e614124ef51c369ca522a679e825", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsFalse.php": "ba3be857de374870ea4b3529f687c733fc8a554fa617aa13a9b799012ebe69b5034e744f5309254215d23dd14cb341655084658748dcd42dd9e72591eaa28596", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsFinite.php": "058d7a69214a250d54b00eb2c64f48ba7777c58b60a58cbd1fd1471f65e76f622ba936510ab07d17c84053c2b4b6dc2910399a03ee61c96daede237396c912ac", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsIdentical.php": "6370a0aebd1d1b3b6356085cbcf24f445269fc540fa70bccf5dae8a7cf8e82f1791f9d8434d75c29f01362fe995b54c9c25bd41e22e16191e11265f1455f6a6c", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsInfinite.php": "abeae0eac4c973c5522c4324a73249548330d118061c956d70afea99cbace7aeddc4579458a10053c99a9049483b52ebbe420c14fd1260a0ba1e709f016b953f", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsInstanceOf.php": "3a3e2c46e3272c1dcfc58c1b5ae571581ae407bfb97b965d8ed56048010ffcaad8a140e15915ecea6714f0c6024cbe60d5dfeb9d32680fae311b83c1f3b3e4fc", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsJson.php": "ea281df873ae893b2070b2b62de479441a756e0804989edff7661c45ef084eb2f7e97422e07b45f3df0599a11ed76be19d63d2604e2b87e013c951d3cda227ed", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsNan.php": "e3c1eaf3c4b0dd3dedfadd60bdd308882d843342b24ebceda3ffbb24b7beed74f68e85ecfcf5a93bf997a6dc1bad2816e0f3fa14ac55071b9d3f1141270d2a0b", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsNull.php": "ec76691d88622feebf37ff26951683e201aded5e81c27f848e24cc9943762958b1dcbaab2babbb0bd8f9765415b7665f28796417b285e9d8a320bceb3417c394", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsReadable.php": "21ba3978c56de5773a24f871d03056d99fcb73be5f69d6f93ca0f8db9b1674c4818049af5ba24d2c658e71f94c8fa19ebc33ade3b06aebaac48ef5fa8b3bc84d", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsTrue.php": "cbe009d6b038c688fbfb96d5591d1ea055b1e3b589223265561632f9c6f7a7e116dc95373ec1f797258e128e457690ee393435b8b25380adf209a3aefa323863", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsType.php": "e9a82f48850e297750559915d9964324c288120c6c75101d977757624672917e07f0665c6d7739c79afa3a6c668e61413e3352dca555401131db198ebbc788b3", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/IsWritable.php": "3ccc5331a2520eaa2ce1e038c6874fc1acf51e1b3faf5668da823b92bc8b666602249b55714f36636b257713037c745d8d6deeb6530b589d62414e67b3977075", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/JsonMatches.php": "f8a1698b4c3b1621ae6d67501551dfa57d997f357574c1a6a4386299abba9c15b7e740db99062d317c0050568c04e524faf0caf47c53308123725458987dcb15", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/JsonMatches\/ErrorMessageProvider.php": "58c44e40a0444dcbca1e984288228442f67e84423ba0b3dbd15934c334b608cf181ea629c2e7b9d5e5e50b89366be9a19bd6f4c7e750bce860dc4a358b13bb35", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/LessThan.php": "e04d50be2620f616a2d7a2105b9af60450a02f6cdb517908ef88024e245aaea5d75db918ab700fff74897c726f463d11c00aef17adb429fef50635b9c11b1370", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Not.php": "eb8e4cb6c6798b2b2ceb4745f7ddf8c88b303c5da337990c9ef44e7cf3b64a05be1284593f737707475c3e36f38d944f83242c0ebcd70d4bc947e96173042f85", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/ObjectHasAttribute.php": "4090d5dc0ded768a190397f65ca4e2c4fbb7c984308a75b9e13f0f00cbbf05c33417f828baa25de046de3760ef633f49b8ff094b8f450803fbf724ebc2585992", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Or.php": "13a9adf00102d4574cae9f7b52770fffd7036fbcf95ae1a068dbbfe825a3dd6d1cf8a78a9fec9783ee9965c8a4fd7971475feca5e5c9b823b030d4eab9dc1111", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/PCREMatch.php": "daf1b477e81a5645ce973c353c8cf57a2a42278323154c83316f95130c6865e5621846995f95dbd296c7af58cc9baa9760fe6b13cb7144db3b47b0662d00be37", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/SameSize.php": "e07754de3ea1de7929cb92468c27afe1334ce6380d518548c9abc71d6330b0f811837f48dc4f662ceae8082b2e5e058380c73b173cebaa1b71593d4efda22fb6", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/StringContains.php": "9adbba6e2ffd8753b28ffc08b41efe0bb4899863c87de6bdca9e6d7c61dbac0fcc6cb10238414fd0e61c9bcd6c249f918d4c1d80196ab436e73f09232d5c8fc0", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/StringEndsWith.php": "f54eea39c8894631219ef18360006fe1cf717a6c4bce0e5f80b3a7dbbabbba2adcbb0965237cecc53173d2ace1fa5c3ad00f9591a419ed41c6c718d666bf6948", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/StringMatches.php": "4be2cbe066592e0e37c9ad13a714aa4f2048b800aad7a468b3bc2e053c2831e3da7c675315b7b0ca607bfc5b58df23e2facb83ae85a5f1123d94335b7b76d103", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/StringStartsWith.php": "e20a8a93222f6471e61718147828bb41e38e78f463f784edbf81c78d07fe84a8744b1a8aaab0854d997ebb127f6b6c618deec354ab168283f7758003e25345e5", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/TraversableContains.php": "6125f78bd189cc6aba375dc4a31368949b18c0ba7dfe6cf44a4402e19fecfc00dd6ccfd5b86bdeca5892b098003785bd5e82553976fbb28939686f191dfb838e", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/TraversableContainsOnly.php": "6b407adcf8887c8073775b532b13674ef1edecf8a967952cad6a812001f58e2a116914d6b0c76830e99f3a3559e36267ec1cde5b9ac043d57d88650490974354", - "vendor\/phpunit\/phpunit\/src\/Framework\/Constraint\/Xor.php": "470fe45ad9f4833881ea09c3618c778d3e21ebae8706ad37dab332a3469995a70b42902fb584ed19182a275afb3608efd3a0eebda12059fb8a6e671fcc5a84d8", - "vendor\/phpunit\/phpunit\/src\/Framework\/CoveredCodeNotExecutedException.php": "8f9121abb76b94bbcbab8e014a76a339f7ea1b13b988f5cdb28e9a52e5497d07fd01abfc490168f58e46abbd655462507246133b0621e54a5bb8f44617f05afd", - "vendor\/phpunit\/phpunit\/src\/Framework\/Error.php": "b2e1e5a0fadc649b2ba3ef1fe61ba498a064a752b2e2045bff747e17a879362a9619f08535d14638c3b64ed55842d2b6baa69f8c721f51d5af2d5d584a696fa7", - "vendor\/phpunit\/phpunit\/src\/Framework\/Error\/Deprecated.php": "63b853569077537c9537ffc3a8a0b16465e000a117ad610d422e64689fd26ef952a1d51b110f1352f976cd146a5ebeaeda729aa20fe4d7272ba124045149018d", - "vendor\/phpunit\/phpunit\/src\/Framework\/Error\/Notice.php": "ef8af2b48c5dea6e3e21c522201adf8fcf5713f72e498d4a91b789551025dd0aa8cc01bd41fd05c728e567438c27eb96dc5451876f73b602020b9643e15c9e00", - "vendor\/phpunit\/phpunit\/src\/Framework\/Error\/Warning.php": "a166c3522c27315458d775e932f01877926462df05389401df1598af5cb46df052b384796c6b976637016e607e336f8b7fade2512db76af5bcc657e6639d15d5", - "vendor\/phpunit\/phpunit\/src\/Framework\/Exception.php": "5cadbfe25c5b4ad7690988827dd52dcc4f4a54c447035dadc70788005ae223f6d32e07e9cf1e9de45ec1e0bfb9305b318b4b1e197ed9aca2ba4fec9e19f402a5", - "vendor\/phpunit\/phpunit\/src\/Framework\/ExceptionWrapper.php": "5911728124805d51bb4af30370a0e82b09b80edc6dc65f1d76fbd0026f25db355e6c01208c6109fe0389d23526f7b6dc159c6536c89d5fbe849892d394788049", - "vendor\/phpunit\/phpunit\/src\/Framework\/ExpectationFailedException.php": "7826e4bd72d7b38871a604400ae80a6c5affa9daff9b002732758804c7af136dd96355a4a71e2d3363d63503031f400c2da8c350a1ba1e558ade7de8f50147ba", - "vendor\/phpunit\/phpunit\/src\/Framework\/IncompleteTest.php": "2ee56ec8e9ebe980f24fbde57aea959ba6fcd9f2df083b1367595c035297a849ea60556fa269bf682589bc68b41239e913ce2b581b6603c1c1e16a97b7d7ff44", - "vendor\/phpunit\/phpunit\/src\/Framework\/IncompleteTestCase.php": "c8a067a397b1710b1edb978ae994bee4ebe9677c99e0aca051a84fafd094161009020e3fc3baca615bca7a21af26feb80a192ed239d551dfbbef8850b1765588", - "vendor\/phpunit\/phpunit\/src\/Framework\/IncompleteTestError.php": "65b542675db1597df72fc9cdd6b2b47a2818afac3788aca17be7aef416b4db1918be597732c04684800e2b0020e0225a86a767f80937aefc15a9a9af4abe70b8", - "vendor\/phpunit\/phpunit\/src\/Framework\/InvalidCoversTargetException.php": "06d290363668235db42312b48b98280f343fa9f75d14a83cb9cdf658da0c450fb3372278a340230cb079117ea14a85afee20105a004583b9e726efcf4e6ee37d", - "vendor\/phpunit\/phpunit\/src\/Framework\/MissingCoversAnnotationException.php": "bb2a89496eb8a26e57dfd0088aa3ee80c75a14953dd7ad5be2f79ff1d31087ce0e85c6f176a77167aff08a50f2dcbfd9f2916a7c221749b0167444271dd467b4", - "vendor\/phpunit\/phpunit\/src\/Framework\/OutputError.php": "0178db7c126b314060a8a0867c55d034d81bf429432f6ce62fa9962776cf71ad470a1f549bc6a605ad1e23eb3b0be0180ffc530be40f2d53eb6c45f4454ad6d0", - "vendor\/phpunit\/phpunit\/src\/Framework\/RiskyTest.php": "e4053eb83f4e7df20a20628c36e51c7935f28b7b031ad6dfde7b909f89c4a187fdd5ba8e3628befa894229f529efa1fcb635af10d4bfaacaaa092a91d9a313ac", - "vendor\/phpunit\/phpunit\/src\/Framework\/RiskyTestError.php": "b1c185e984d87a8fd30a74f9cdcb19002b4b7eeea2ed2b5ec0538a144d2515882bbc0fb6a7c0a5228db02b64de7213ae510d23186973911ae902686fb9079a84", - "vendor\/phpunit\/phpunit\/src\/Framework\/SelfDescribing.php": "710684beb5288a746df311159128090f069f571b52ae0cef473730d73bb6310222a18726de25f5f70af96af74a8931d63aaf51a5a647eced6af0f28e102d8bcc", - "vendor\/phpunit\/phpunit\/src\/Framework\/SkippedTest.php": "2c8f80c30945af8a9f1763b920c3a2482883c34f5f2c4c8d62852263fc732156fb96486b759aaa4955249d3c5257a896744acb7068bfbd56e080035d0e74db2b", - "vendor\/phpunit\/phpunit\/src\/Framework\/SkippedTestCase.php": "41ac18bfb25f685e8e15ab1a72d97b31e66e0c13bcba1b9e1badbe2e973116903ce8a7ecbff9ce0a8d3e31265f20b26c51c2fb9f554628d3ff0c21b358e95fcf", - "vendor\/phpunit\/phpunit\/src\/Framework\/SkippedTestError.php": "05a2053c628a4f7d7f6c3f1251a84623ebcaee6f474ef88fb17817d1e3f78ba03d4b7daf739ca7db62f36ccdfe40438b7c04060c9c1527c377dd53e0dba4d76e", - "vendor\/phpunit\/phpunit\/src\/Framework\/SkippedTestSuiteError.php": "8e22d2542da0077741cea339848ce013a9c2c4868e3ea786ca3172011d7ea1add0e08075f98553e96421c8aeb4e550b88c53c0e396e453d4c2181d0ab3e11197", - "vendor\/phpunit\/phpunit\/src\/Framework\/SyntheticError.php": "26efc7d581594d8d38059b41c0ec55421c04f49de498fe13052679b805f9e739818aee32e3c5bf639b05e299303ec6e339b9d84c51260259638fb27f1060ef2f", - "vendor\/phpunit\/phpunit\/src\/Framework\/Test.php": "4044e317931f134363f61604fda96119feebbfa6aedb4bd8f3abbd4ae394872ef246d2db38a2a8eb489b130e04ff225e543b0395cd831c56208f60cff073aa23", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestCase.php": "b7550fce8882525f42d4e312f385ff83d593f70254ef942c3fed176697cb10d7443f42c239d8e59d3e8111c95e6b35f9a13aa20b3820adad188904bfb11118d0", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestFailure.php": "08bba868e45a76b523c90f5a3ac0b8723f11b929c2e34b98e4c8d4877d112190b5fd815d6241ff74f8fd52638f61f472cf33d6caa6c29a8908f5039b5ea12ab6", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestListener.php": "65b155d107288031abef511280323845911c7c05ce5624afe5abf0ac90211698eb87f806c52ce66b9d3e6beb8c892336944f125383bda6fe2c529d103ffd3bfc", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestResult.php": "282f0b6b3da46e6d42d241d41c3f7d61b7cb9da89563c6808067cbfca178d74de09032dbf88e4d7ae452b12f81b3ef3e7008778ae6793b002cda78d8df5a754c", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestSuite.php": "a56573081a10889e026175f49944db60c67879ee1d689b2a3e4d67937406c0a99e9ae46fcad3e612dc3cc1d5f89352dd7237230b037d27f337e9163478238e8c", - "vendor\/phpunit\/phpunit\/src\/Framework\/TestSuite\/DataProvider.php": "d2a2f5e455393be1e1b405dcbd095a43d7266e9fb6e83c14f67a72c8776a38463328830430d4026fcdaa7aae1e0c3cb6099bc458f2b1953adc3dbaf7c68818c1", - "vendor\/phpunit\/phpunit\/src\/Framework\/UnintentionallyCoveredCodeError.php": "7252a68ca94091e078b20c5fdd83ecd325071e8d68aa648452a90d6b3ee399705dfce62c51f1dddb840ba2c634182c21a93dcdebf9f67f848187f42ecda31cdd", - "vendor\/phpunit\/phpunit\/src\/Framework\/Warning.php": "d888b7bce1bd788a19f70e1de3b55b3a87f377631d2494b105584b700445cdebd951603dd6dfd9bbb664e195bdfcae93995cdb649f805c14515194e3840bbde7", - "vendor\/phpunit\/phpunit\/src\/Framework\/WarningTestCase.php": "fac8ae5420491cf6cef83604916837cce574180e4d7ed1ae04b8f64d040ae28b66be6982de812ec0e7426c4c3eda45685ee8298eaf1b9f6fd4510283698a1c68", - "vendor\/phpunit\/phpunit\/src\/Runner\/BaseTestRunner.php": "842fbb3a772c35ad59366152c3be20def86e327ca5e1ab66d09b24e984c5ff33948a1ccb75c24abf12cd1037e60dc7da17ec70014b7be3fdf9f3087ba38422ba", - "vendor\/phpunit\/phpunit\/src\/Runner\/Exception.php": "b02faa826ba2ce9d273fda568eced0ac243a849fed266f117983224f2d402c217bf64dfd875597874a7e0199c50e3f5c5d897ec94b08263a56835f7609b0f52b", - "vendor\/phpunit\/phpunit\/src\/Runner\/Filter\/Factory.php": "3360a9a3210dc68a8caee719018067e564de7213fdaced7218c2ccd4fbb12123d14293500fa7255d7313498017fc0add265c8c3dfd20f51e4b7487b1e2997229", - "vendor\/phpunit\/phpunit\/src\/Runner\/Filter\/Group.php": "9e89db784b9ad81b7e1d24bfb6156432def0685ef350631252986716de4ebed98daff8d171905a1b6141508af1b173f2cb0fae39162ffbdd93806b39322cb5bd", - "vendor\/phpunit\/phpunit\/src\/Runner\/Filter\/Group\/Exclude.php": "865707b586fc98a010fe08a9ebd9cd64f4aeec21772e9ea37d77cb956f950cfa1c9c2581d955eae195682d88ad9da42fa92934ad0b45b070ad054551b1f96ba9", - "vendor\/phpunit\/phpunit\/src\/Runner\/Filter\/Group\/Include.php": "787d924bf434ccf87b8f92847d2f098ede26dec95c398851a4bdfbfa7e696badf8560ff7562875553f37e60375436c5b51acda9a92f7409e37bf95ada79eb09c", - "vendor\/phpunit\/phpunit\/src\/Runner\/Filter\/Test.php": "3231565ee4c34b07f3e3b93fbb089b1c13024f2e8c7ef6885c2592a6fa65d016b4956392a1a7b5bcbe184f29309c23540fb59d8fe05ed5911b7bdf3567d018ae", - "vendor\/phpunit\/phpunit\/src\/Runner\/StandardTestSuiteLoader.php": "3414c1a57eff6b16ef4b854914449c907739ff33f4355c0503394a9db075408b2f19492a49d61df59da96ed15b61586dd424c307cbc4610bb545bb3d7cc523c5", - "vendor\/phpunit\/phpunit\/src\/Runner\/TestSuiteLoader.php": "27d1ab7a8fe34e6a3c636a9aa796fd43a1b9d67eea3d366fbe5b7f3ae4167c59c769e4b9133b7b91b3b411ec1832c483dc6b5bd21f539f07eb4f7d2b12d938dc", - "vendor\/phpunit\/phpunit\/src\/Runner\/Version.php": "94fe128c4cf776d9cbac676a97d9c039c4bc96861fd44403a9669b2b8cdc634b371e1a660a1cefb3791f2f4cea00652725dbcf2facaa84c3b97dac311707d72c", - "vendor\/phpunit\/phpunit\/src\/TextUI\/Command.php": "727f39c1c01b6643c3e68355b0d0bd98fb6a67b30720658ce221c37a57362fc6d279cb402a3620a659a123270c890069b9a5e81044439dd44dcd033605a6beb5", - "vendor\/phpunit\/phpunit\/src\/TextUI\/ResultPrinter.php": "b493fb7d9e38cb2a104639cdf80a1c66adce75eafb9853a1e1336e4cb38437f9b64b67da4d6bcb6fb325417a4a84ff48b9afe84a9d19500d0a48431a5ff0fd6e", - "vendor\/phpunit\/phpunit\/src\/TextUI\/TestRunner.php": "43f0ba02d60946614a2165e66ec4214a8577a8f8e35e1cd2f456bc3b72f63c3a217dcffda8b6b6991e5aeeb26ed214321ef36da4b080a44cbe2c6d5cabd6a61c", - "vendor\/phpunit\/phpunit\/src\/Util\/Blacklist.php": "55caab8b492dce357ea4cd5adbd58f049f52f6ae0fc2c0b7bba1d8376cd7a8b92e4f44b24e9406952a301ccb11479f58069c0263173a81a1ab5dc9f7287289ef", - "vendor\/phpunit\/phpunit\/src\/Util\/Configuration.php": "edaef150d0e0fee145af09f6a33ae55c06e56466a8aab1b88d96385112346b070e23177913bb467ffe8e1044b9ce947b3a7bee41006836c85922cb97d2d7aca8", - "vendor\/phpunit\/phpunit\/src\/Util\/ConfigurationGenerator.php": "d09386f919725ee684ee66a180f98916d8036a2dd1ee03360436496094c84967825ce1d1c7ec9910a669129b760151d01b3168baf7bb6bc54eeb73019305b7c5", - "vendor\/phpunit\/phpunit\/src\/Util\/ErrorHandler.php": "5d2694622ced9cd75c1a8cf2a5be7e5b45ec3af6ff79e6fa3ae1e94daa62d7a91347489a214b64b1c87d2c2cf67444ca00665e7ce894a8ed2cabb4e2975a6dea", - "vendor\/phpunit\/phpunit\/src\/Util\/Fileloader.php": "2cece3860df8453094556d06df672bba6385076919e7e09298374ff27b55b69b3525cd913b54041f7d2a40313f7778e5357434ad304e392b7c3458937cf0cecc", - "vendor\/phpunit\/phpunit\/src\/Util\/Filesystem.php": "d744933abc8c73127f9b2986dc251f635ee7bd6236435eea881df43306a06f01744205183b5c8bfc089ff9c690819c968c7002b0c8e82949fdcd4d8d93e6b897", - "vendor\/phpunit\/phpunit\/src\/Util\/Filter.php": "c4323f382b77922ee883e16f0eca23a40f851f4d2f1ff499f951b8af107f886e2a895fb79731da912af780b2d9e5de71473f287eb98077950316a593afb0fb24", - "vendor\/phpunit\/phpunit\/src\/Util\/Getopt.php": "14d26396edf189efb5d93f622a355cff37d009437754974c3bda9bb05d52723527405ac9e682c23463a0f638efed8e5f0b912fc3d6b6d8cfa37a478e88eeac93", - "vendor\/phpunit\/phpunit\/src\/Util\/GlobalState.php": "94ef8d571b3bf15c721b37a48fa6b2a54a56d6599c546762b0d09edacbedeb04cef11e6b2120fcf3573ebdf1792fb2a3d81bc5106dd19bc5bba342bc01a25f1a", - "vendor\/phpunit\/phpunit\/src\/Util\/InvalidArgumentHelper.php": "11e221231403db206aab48863a8f16de50c2ad5082be28105398dad77dbc4797146809b5a7c1f0be06495fdc7365bdcbed9fbe483a08121412d8678aa1b5dfbb", - "vendor\/phpunit\/phpunit\/src\/Util\/Log\/JSON.php": "dc1496ca0d55c51c3280595d4556c95f7ca174ebfd6cc4d490ee7954fd23cfa7bf6acd01aeddceea3711ba8d7a0a24793ac79100133561a16c3423af21d399d7", - "vendor\/phpunit\/phpunit\/src\/Util\/Log\/JUnit.php": "6d0cb4b11ce88cd605a08bbb69b79c69e69dd07dedaa5e2bdb8cc80ded55766c76e70b1a2afde92e336afba7a24782aa3f2e5ed16bec2af017548973d131d17d", - "vendor\/phpunit\/phpunit\/src\/Util\/Log\/TAP.php": "60990e390578149124991ca165b30d0d917c4458bc9ee7e4f716166e2551b82737657dba99bceaa0820aa1d3d13c4ef6c32c62c5de06184b0d7faef51e70e326", - "vendor\/phpunit\/phpunit\/src\/Util\/Log\/TeamCity.php": "9f7049eac12f9f4b95d38a0b9aeeabb7618d61180005ce4db5f60a02426f9ce860e457a4a6a73291558cd46621e14c6f0e8909c76707a55c777d883c43a748c4", - "vendor\/phpunit\/phpunit\/src\/Util\/PHP.php": "ced3c2489342f0608996be1f991743f43bcb5060fe58e6ba260f81f973902ef0c365e77453febdb3f2685452096257e2650524ce28413962fab0cff3061c1508", - "vendor\/phpunit\/phpunit\/src\/Util\/PHP\/Default.php": "75dcc2b234d0138a67b89782983ea00ebcd61572a8f8dfad5bb7f862fd144e1a28ffeb2f8baeb2f2ffa13849d6ac0bfdca1766cc4807e9a5b88351b2330c3c34", - "vendor\/phpunit\/phpunit\/src\/Util\/PHP\/Template\/TestCaseMethod.tpl.dist": "3c8cc51289b389a1c4600698ccc4c247ff69da11b6fbec59a34816dca05b0d292beb26d58fc5bcd8134a414b6341703f2cd61162de9a0fdfea4b917d6693d3dd", - "vendor\/phpunit\/phpunit\/src\/Util\/PHP\/Windows.php": "5403e811b82228aa62d37d6034a08b36ec8f0866ae8081eb713d5b9f603bde9ef566342713f10f2d14fc48f07c048db2f129b22a11b9ada8bd1bacb3efc26380", - "vendor\/phpunit\/phpunit\/src\/Util\/PHP\/eval-stdin.php": "2b77ee3353769f1fd249b11b874b0cdb0bea481c5b5b66140c79ad284874521b79c71f661fa7188f054d4cc5bcc70ad810cdcb626abf6f7abd54027fb58fd4f6", - "vendor\/phpunit\/phpunit\/src\/Util\/Printer.php": "049a3fbe19e7b39f00e6a4bb4b39dd94f3320e777651b4bc0694ce08373eea764ca29f31b1e95d012b32635895f025c3cfbfa51eefd75867f0aeaa36159ee005", - "vendor\/phpunit\/phpunit\/src\/Util\/Regex.php": "f3cbe928327c958008a1136f4e026163cc42fee69682aa3549b8de0f661ca42489bb8f317d9b62a0aa29692464f692ca17806759c8178d5443e03859ca03e0fe", - "vendor\/phpunit\/phpunit\/src\/Util\/String.php": "3fa5765ce32f37985421631350a960dcc9f529f104f0dea1d2ecf7960c32a978df8524a3add38064d4501cee104fe36087bbbb0c45ee7b2a4c7de4bcf464bcf3", - "vendor\/phpunit\/phpunit\/src\/Util\/Test.php": "01e480d1bf0dff3a79dd5eb8a0ef0aa1bec58efda037f5251269be81cc21e2c5dedd79f801a334c4d65d73789e2c5eeff29d5773b1e7e6c04dfdbde534871112", - "vendor\/phpunit\/phpunit\/src\/Util\/TestDox\/NamePrettifier.php": "1254f80d306c7f366ab57504689a2e5924fdf85fbe0a66f40fdd9126c7d0c4e3a95f0b32c136b53c10b955d2eaccf4f6a1528c3694cfdbc91c7ce724abc3843f", - "vendor\/phpunit\/phpunit\/src\/Util\/TestDox\/ResultPrinter.php": "9bfaa17a8bc4695059512b84dc38427747365f63296ca65424b680d5526527650aa9919f23532d0f78a17c716949071e9efa712e95ca081de3d24156f8988b41", - "vendor\/phpunit\/phpunit\/src\/Util\/TestDox\/ResultPrinter\/HTML.php": "7df8242e9f5f0f5102f9e0db5753f82684f6924809813df44c91d803c4cc5d34f022b2a5810f7080cec10d55a1e29d336d5407992189da53f160b49513e76e42", - "vendor\/phpunit\/phpunit\/src\/Util\/TestDox\/ResultPrinter\/Text.php": "047e1cf8bb934e9066f7566fbfae66d2a76bef49b20a2cda30da1cb8e7c114a6c37e7c8084b213f7e950ab1a1b4e1d86a2c069c1597c2b565c329ff551e65b71", - "vendor\/phpunit\/phpunit\/src\/Util\/TestDox\/ResultPrinter\/XML.php": "f45d0a58559f2909680db5d4cce63e7d620338d71c796262d1cf06fdbe094b1b3feb5620e29ba01cf196536be3ccb5266a4a0d80c0524082d06044471de15ce2", - "vendor\/phpunit\/phpunit\/src\/Util\/TestSuiteIterator.php": "322997d7b9fa972079bed1d09fa8d88171222570123d79d2328822b9ac26de09aa416511daa2f409d51608a01a60a7297b4b7f58fed3df763ba1af5c62877042", - "vendor\/phpunit\/phpunit\/src\/Util\/Type.php": "9f21ebf369e59feba4e5b63944c98e89519dfbbd151af6d1fec22fd803c88ac858166d9b4992cc14ad581844936be0ae8aea3e8c69531499e62e6120f4b4fbdc", - "vendor\/phpunit\/phpunit\/src\/Util\/XML.php": "d86f50eb83786bd91723a71c90f455df5f250a8bb4c051bff36e6ff15245c508951aa6c42242f0fb50c6810b961aea396a79626a9dca0b2af6ee3eed6e2d6d1e", - "vendor\/phpunit\/phpunit\/tests\/Extensions\/PhptTestCaseTest.php": "e079ce40afc9712fc218e9f2f69bcd1b96a9deaee2c0a2e92f6224debc37c14a157269aed87a393d27206b5ac068892c60ef71510fef78e3d45420c65751bb69", - "vendor\/phpunit\/phpunit\/tests\/Extensions\/RepeatedTestTest.php": "d270a772ded7e062f81fbb64d57a6b65896169572113fafad02f3bd76fea5e23b02e5148c833451a5519c35edd902d3c7c58aa1825f8e876d898132396837552", - "vendor\/phpunit\/phpunit\/tests\/Fail\/fail.phpt": "dc608593691499238fa1bf0929060738af89d1bdaf80fd7495852117f8fcfbfe5f4f826556b7ddb216a646fd957ea9eea5490d9c07d1485d24389aedbe80884b", - "vendor\/phpunit\/phpunit\/tests\/Framework\/AssertTest.php": "2da9a89a8e981fffe52250d83f35ddd8191a761b3f321387fbb467adb31150ce7bf2f5ea1d17349f0e3324813d3d176b401f21347fdf9f70ac89ae1b182bd9ad", - "vendor\/phpunit\/phpunit\/tests\/Framework\/BaseTestListenerTest.php": "26d11a6581174dee85c7ccb41dbd3454998fb6592ead1b247429e36aa4d701e92e69f185b46c64b7e6f1e84db8e0b90b07d1b688d7a6b2ea406df77708a58ee0", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/ArraySubsetTest.php": "d6b6541cf0291336e0ca9ac118312919383d9ad156b494928f5281f98fa4e2a36f12704631ff6475a8246a9e30f60667e976a200f0f6c471c2c134cdeef04237", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/CountTest.php": "3bde7a5a9e18de350eb859e7559e9dc4b118af314cb46b67f506742623427208fb8f388be4ad29c2907ab90372f63360d28d24d4f932e0b327d8761630075530", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/ExceptionMessageRegExpTest.php": "f3a11bcffda6f1438b14641943976a2198d9709e55c7d0c934614aab48509ab69c1ec2f852fef075a0ccf891bf1c47ed22f4cb23f911e11b06beb700a3084cdd", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/ExceptionMessageTest.php": "4223610b836d9a46f8fe8afdb93d91235f876d67643f62669d886112ac9eba219f2fd53e7902f3f47e505cb928df681e9a8ad9da42247b8a9e93119ab6aba51c", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/IsJsonTest.php": "e202db2ade1ab5bc71007b3f0c17836b62a780d60736411260df5a46b6f52f1ed6f6d286d43765e0d986a2ca0ac57105b4f99db2a5bc6f634a1a4a936660ceae", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/JsonMatches\/ErrorMessageProviderTest.php": "7ecb5d110be6f866274b511b33fe87e1f2828619d2fdd201dc64a48fd1e0a6579a60e06c1d73befa2b8d4f9079bad942873ad77880339ee31b2654efb782d677", - "vendor\/phpunit\/phpunit\/tests\/Framework\/Constraint\/JsonMatchesTest.php": "38811fc422d53d140fb14b3390b4dc83f680c61f368b36f2d84042a58089e4edb11c3bbbcd418be2ba6c6819a91369bd57273c84cb3fab1149a140675f457df8", - "vendor\/phpunit\/phpunit\/tests\/Framework\/ConstraintTest.php": "8bcd4fe9dc5a76d69b8adbfd6799fc531abda9fa6934659da193b5f643542065d7984b60218360b0b6e2079ba31bb083bd8976f3e706e05377e340a070ad64f8", - "vendor\/phpunit\/phpunit\/tests\/Framework\/SuiteTest.php": "280db3c9f1e5093c98211b4b33afedcb11138341780f60a421c768496c114ebb7b2114965dd74adf4659bc6191b5f16b77d0c3ac36d1e3a032e54f9c61ef00ff", - "vendor\/phpunit\/phpunit\/tests\/Framework\/TestCaseTest.php": "099aeab30766ab1f87df79e65e11ff028f69470877e1c1be5e1db2aba2d280a7746d31318a4ccb2edbe18a62878a4d8de6ff6ea9e5fa4e95d7f9081c4ef6308d", - "vendor\/phpunit\/phpunit\/tests\/Framework\/TestFailureTest.php": "54636f35075ccb27cdc452561029546242ce72ae11d8834675895f1de6159235fd7766b2cdbb28d70f463c9454d87372c0dcad128ecfd960ed9c267b5712e86f", - "vendor\/phpunit\/phpunit\/tests\/Framework\/TestImplementorTest.php": "2a482f4e3e7942d98a1a50a2b5256fa6565d75a9cefb87087d31ba4b4398ee269baa79929c963b6a4b287b5b29ba1d38e13308f5b821f20eb592aed67725d3cc", - "vendor\/phpunit\/phpunit\/tests\/Framework\/TestListenerTest.php": "822168babce7f3707cded3394271f2ab5cb75dded74e54d959fa4b713d840cf700218161e6b420fe9aeeab0ce6761f663c1922d5b3bd69f80920aedc157325e8", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1149.phpt": "12b6b8794d0209bd059ed0785cd8991c1de4daf7e2fc36ad8f505887746b343997bbda60ed5674fdf627c011fba2437ad57a385520808678594dc1e4ea2338a6", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1149\/Issue1149Test.php": "b814c8106ce3feed713f5eae980f41fb44736bfef328280a88b2acb446106f6ffec34a3433c9aaeb35cf0b06c77c0f2e5f9d3715e4cfdd427125a57ae87ac7c3", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1216.phpt": "459861c238606fa5dbc423c3fbfd7526ab8258cd06a8731810d57611fe4fbbd0b54adffe2b67536bd0c9778429825bc797c86bf5f0a11b30746950bb7c757e58", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1216\/Issue1216Test.php": "59b4c5229fd4999c5ae94dcbdec809381c2fdc8191038b14de2d3b8da5f159f388b919259afd8fc9f8c843df7ff2c3a77f69f7dd8fd943314420e89049c519ae", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1216\/bootstrap1216.php": "a93c1ac10f286d182c91747e0017b11f497baede548347ed3e257b3dae2648d4510061e43e208f059c9cf2e333b96c5fa44947fa90aa8b75ccfd8b8c7f5d623d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1216\/phpunit1216.xml": "c4dff8fce6d2e4fabfea36fdf7431870ea3a1a7705916ecc9975208508ac8051843394c00d6b58d641dab1d9cec9117315b7c4973f01295786c32cf87a2eef09", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1265.phpt": "e9b0bf1fdcedd4e57e72ecea3a9a267f056d9e9469545e0ab1d0cfe033262040ca0a773453ceca0cd398b3ccc1940dc1a42a2fa2249753a4298aa90791c24576", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1265\/Issue1265Test.php": "35f7a8d048bcee91358a1744d32e5da1e37ff5713c5494377acd46cc12d94f81feac976cbe81cf798ab807d67e523a3daf9617bdae43875751f23625c6633f56", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1265\/phpunit1265.xml": "46602e0fd8267f0ea0627872e79c0ebfc7010f669dcb8916dc41a5ceb018df191d26fcddbb21d1022f0441b862c28a22828c06fd82fd20f8d242718eefda0943", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1330.phpt": "5611aa5680ac9e402dea6112c733a285c92045d92aa7c0a13cf9ff697d0ab75c7fbc13b9611afc7b944fc5dbde523d6cc7f2feed28541eb3cf6c8d313fd6153d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1330\/Issue1330Test.php": "99e32271e6fd23d97d87c9e84a8bd4a8fa3f140a204341dda76b01e117169bc0691839d896bb030f29c784486309b498fed3c84d3fbd22f75640bd0838a36a2a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1330\/phpunit1330.xml": "f809cbd4f25c65cd8b86534e4745867b3491825c297a4f8b0f05a436cfb8882ce44975818f7eab9d596fa379a283f7105bf1ff459f0ba3c8b6efcb26fe901828", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1335.phpt": "ecbee3fb2b7699789f0f83b3114184a8287a71f9dd31f33f83f63361a4640d195475eaace0432aabe144ffe62dcb23ddf2530b07b6d276609291c08f47a4e84b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1335\/Issue1335Test.php": "b93a1fd1b93819d68e62545b5663ec3d5e513ea9c7bec40baa530d91bc5dcf2a58210cc6a840e30b5f2b9f966fb23bc95afd57d478c9486d409c023ebaec4e4a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1335\/bootstrap1335.php": "f515229c96f3760f1f20c5041627d2888239dc2efd7f17ce4757b17f3811e355fd600bf1030e92d2793fc9e191db776fc772952d4238ca20b219babe25453f86", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1337.phpt": "7e3cb370476f7f00724e90e989c01ad22af6629277f25c8f4019d7353873ab488290f5300786205484e19bb028cd4c024a251230894a8f5b016cca93137a71e4", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1337\/Issue1337Test.php": "babdbf26b80f848c973cf262c859bd233189104fb2fe55f2f6e2a5fdb970dd12c1266ab5ff2b947eae3b8f744f54c179a6bf4e30453aeca705631d679d054aaf", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1348.phpt": "c926c1ceb995d1a4ca18ceae098148494ed758ab53960ca61e1135a3eed8d8942634db5d623eb1d1fe6ac0056c90648c4fab375d15939a7dcb64192eedf62bb3", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1348\/Issue1348Test.php": "26626828353f10b4948e7ee8355d458a400b5422519fda2fdc1840063200954e8ad508255359321da42a6344f41ae185ff6d77d98703516091b6f018bc9e44de", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1351.phpt": "8d28f6c0db1ce2ebd181c5b3482d97ddc171a270352bb13a11febd718dfa3b0ea44d424f7c69a4e50ed3d6d579f1a8cbc672501756abe33c067cc2f9226e1e73", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1351\/ChildProcessClass1351.php": "a2d5afb7edce5ba3622e413973b239c3ee58c4751313aa14360e6bea42f0692ed46230a9d0cdadf7e4bce68e05b2235072594227d2a92b9ee61d6199f527e626", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1351\/Issue1351Test.php": "2376bfefe13f2065e95d1d9acaa92487273c32549cc4cc038981ddb4c4a5887fcc7f7ee4b3a534e8371d0af015f0918b232d1bae5a1b103194918c45b05a3b0c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1374.phpt": "14eb2ebf826a56fb45a46e457ce219b1e3219d6a10f260f032dc200c979887cad6f2f365af9d4d904a7854bf7488439a5f66f6543e1cea592b880da1bf1fbcbb", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1374\/Issue1374Test.php": "a849acfbec5dedd37b1574f91bc61961d763bfc6c35bd754f6730e1227834cb8981106df5114a534a1ca143e3f7ca046166363ac1d9219aeda5f09843ae32877", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1437.phpt": "213fa98b0c74d8f16a2a0aa5846f4618e5e43a8b6be270a6d97f3dbe392a53494400877c2ea5401be0995f720ac56a324abd0e7fb904af8c2a323fe0c6c61156", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1437\/Issue1437Test.php": "b9181879f093cbed358eedd6d42f8b7e7b01fb95104db50c2181dd6302affb5ef5321f266941a4838646e025d8cae656f2378e68d1591d2d07536c8f65bf290b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1468.phpt": "f2b0dd0aa1be9ac386efb194f6b53cb24d5f5cc2f39092f7b08c6fc3908f5b08352db576a8c05a16e2822ae5e24291569451c6e63ecd915680896050f986f933", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1468\/Issue1468Test.php": "50973027a8a49c9b0cbb3db7ff828f759833825578d591fffff37c1d1de76ebb81d2697f9e65bf05f592734ea4171df38202551acc91d5a8b7ce6b73f83bd8ec", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1471.phpt": "c179bb36f214001dce2abd47b3435202b749d4c71fa6bf385cb8f6d2e96ac5c39812c348be68508a4eefc7cb8936c67070cc3472872e75dc0ee64e593ed154b5", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1471\/Issue1471Test.php": "f222d80f420dcb13bdba3fc743cea5282b9ec74f1478df36a1de23a341f9ebca9277f94b9b79ef73d447182682587bf9669cee2ad394cc4522c77c3d3600881d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1472.phpt": "2a036e53050ae0652136a81acfdde41b2b434655f25d8f7bd1590a847599dc6b8049a0337a362dd9f703cb6c6f4c1ff5828112ff2e38b520c41d9f7e0eaaca2a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1472\/Issue1472Test.php": "a82cdaccf842dc7beeb554ecb98b469e134d50339988f2016926e6940448a411acf2311d9d8c03cba70b9a6ea2d424345a840fa38e6d1f7624762c8e717ff93b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1570.phpt": "26d3d1dd1d8dbb88db791592ea3e947fa91f83111da7cece583552a3e20fc4f221bb00b1bf8fb679df9a834f304c8c3acaa1f51da4c7409c84c56eed8a1da4e3", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/1570\/Issue1570Test.php": "92ac2605c83012001e39fbe29fd7f0ce8cadc173e046ebfb27e8e25c5bae5c079a18d7c9ca3f650a41c9ac3a15c5f1aab744298e0f502d40f6e210add417dc89", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2137-filter.phpt": "9764b4ee4cef7f4d86a9497218da74a147036753a40eb4cead93ab87b5c723db594487cadc4826b741df7b3315e455f29d7fa1c77463966b639e8259afe7f86d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2137-no_filter.phpt": "08787e11d2203890ee9b6262bec833528e0a3be2eae49fb0c53ddee9f15a805fb096fdf58d2c8f8db00437bec9ee5bbea306fd68fb09c6420dc563ca8ffbe194", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2137\/Issue2137Test.php": "7135dc7f5151578274a435fa97b415e46d3d013ce830dfa1de7b4955b772d77494ff177e0c49a7a390f3cf028d64ad3fc265bcd38691b34d9156afdbb58d2703", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2145.phpt": "31a3f0aa24e010da6a8f9374a0d68f02bff3efef724ccd966e3d97084ea781184d17bf1678db7af2d31465626ff22073ae54d0d4897311b736da5ad2c0bb8d58", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2145\/Issue2145Test.php": "6542c8ee118407a1d7ba22ec07ba81914c11232b860c04b3c97e6fd7e45c74afe9b5c30d2995f031d3ed64d83b79d5002a2bace52cbe93a20494e514d0c4f653", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2158.phpt": "2924c3bcc85dd482696abde7132f9d542d7adac7b3b8dd088594c5b88e9047669e0ec415b423178ba14e7b4cd6bdc490ecddce2b5d8d7889f8fedee13bb01b6a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2158\/Issue2158Test.php": "6a1efcd54670d431c712b947e76c0c732ae579f531f716d9a4c60e73017ddfae753f07d81c64f000572fafeb65a2a3f0ca2786d957d8f414e238d6e33c1df943", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2158\/constant.inc": "842e93082336cdc81d34bf941f460461041a410c14ff97c06e0636067a6bc789faff18ee532aefcf2a4a3d602090d55996d0e34f544d82d80e1e91edac6a1f50", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2299\/Issue2299Test.php": "7a5d065f2ef39cb8f5c23a87a7947534ddc4a6c3344dac9486c74c27b1e584cad83621b63866cc7e04ab67b08cf540ec0429f0b29a312a5601d45ff87172e360", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2366.phpt": "bc6f184eb8eab57c2d1d88800930e8b6f56591a450ff3587e0b0103f9a7cfc9be943cc0b0159391dd2fddd66a631e6a7ac924ab38bfbec5fe1469d83cdab3fd9", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2366\/Issue2366Test.php": "c6dd7d39f2ee5ed5d19414142175e8b15fc9a8b06eddf93c2e669d48ea272158aa57e3372c7f3e8eccdf335ae89df2a087e16cebd6b5db97dc4c5ecd99780b44", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2380.phpt": "c20f0fdc3bbbab24972dec325fd0454daf39de34e219956c35b11cd2cfc7dcdf5a44d40c054324fc139aaa67a6bb5aa76ebbbbdb351cdf99f6a97f016eaef7af", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2380\/Issue2380Test.php": "34a9adca5f2f839809f526eaab68e5c550c201ac75c51cc0776e2cee8fa37977d8a28d04f5e2577eda2bf3b4ab6c48da08949e9caf06e0a8b120a951cf22a76b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2382.phpt": "bcc49ec7595809579de88a80dd551249cb2452e738dc2d9e08602ce7f38cc0b532a892a4b520e4bfaaa32f6ae0b4427acc88d4e0ae33334aefb4c97f505acb07", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2382\/Issue2382Test.php": "71a661f31be7dabce4371d9f09429228e217eb490092d86aa1bc4c1206f733ff3b5e233bd9284aa106f77e81ab496f75a45be02f76e911676feb3e6b1aba1343", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2435.phpt": "8dd82ef1f49209cfb062b3e8b47e942ccd93f8322b1aa6c6a7dbc641bf71461e0de268252fdd19228fc2c9ec13e04b3852426b42a861630e8d609eea4212605d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2435\/Issue2435Test.php": "6f00a42a0d09f413e8e411923f5505270252b34880b18615a70a5366006d7a970d5f6c3e004ad7e503419f49c306a7088a3bcc9b33fece01a4fbf665cde6d4b3", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/244.phpt": "0432aed0ca8df3e998a9f2c721a8fa7ec837022db6321c86ca3033316c0c66ed504aeea7b5eda477501e13159abf5d152cf0f48e272934ecc8c64862bf5d2cfa", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/244\/Issue244Test.php": "adbcc54d54e501ad2bf8b9360b3f82675d0b81294c91e27319467a567fd7f5131cb2f8897ffc1bd4eba19376333983487c3512c5960c32ec9bdd2c8239ce1723", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2731.phpt": "8c1e7c4d32453d9cc2bb47115ddada49916f69293a80443aa2cd774a67b10182e2564e5e87bf630b733b286546003fb54164d5b5f0efb2b2f23169e190c2505d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2731\/Issue2731Test.php": "5ee53ce5b0a3b10534b2721b4664d9c488a0b9334833d4012a8f258c9e2f92d9a7819b654560728ab4cc0eea3336f63713e843dd34428b25f973eb16582f6811", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2758.phpt": "f323c7aa4197ecfd007057f490217058d73b7c184b84436f9d32ddf2fad7c7eb57f8f8c8358542614d81d913932893e7c65d2735a39aae93538f05532466d23e", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2758\/Issue2758Test.php": "e2b2979deaeeac29ceec5627379d68ff9d9090971afe9668215fc43dfb90f8825b98df4e46c058c4d15c203defbf1b3321a9152f1b203831a9e9a4e562e3590e", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2758\/Issue2758TestListener.php": "386eac8a7b1797f9f40f0dfdcc7aaaadde6b7b368af0b7ccd542bebea5e5d80bedd835694ad699ea3561941db0fcb8b17e68c310449b9a6d8f078bd7e676c75a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2758\/phpunit.xml": "8d4436db4b76da23363fbaee98409ca706f3bb21278215f0b47b5c123c435379bf81317296c42f7863bd3b94ca04caa264a584e087f098aa45d53114b9729d2f", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2811.phpt": "9ec34847b7d1a3af11e602eef3c8f9a3f20a9cf82149f0bb618ef5472d41dba204c2dc04296c45f043d386da17408ac73e00531c72e4afee922d76a8fad89314", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2811\/Issue2811Test.php": "317c18751310208072f29ffe1288a939c7ffc16e14dba1c116710b57353977b44893ffa1ab91008ca049c32633d650d3898de1e3a11847fcb482f6a683fc0a6d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2972.phpt": "10469ff505652f0541629ae4ab009cc80e6b70c95782fd4572fb3ba3c1a78aae5681af55a2dd4d04f694b4478c9902146f260b64997cd60505748519d8d46f17", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2972\/issue-2972-test.phpt": "f33694ebbd563fe631afd1d6c6e46ea387c2d676b2410507e5fb78ff982c21fb9d42dcf0575718e51d922311a9fdd50490b046de5816ec7ba15f8f75d383e3f7", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/2972\/unconventiallyNamedIssue2972Test.php": "7ff6ed00e8470279a9cd568b9b37e9f4cc8c60fe0e473eff658c8c570a08496c50f38af8c7b4a2615f2cb64cebd94e23d9a9dd370aa1bdd0c5ca58637f4ddd9c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/322.phpt": "c7917e95c1846d73cf32cf03d40da42a6f0ff8e8f3b966b4d041d2d6555d63db5d87ccc0ac3432f2faaa30d48b2124f5876521f9490b76f0b78638d856863ac4", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/322\/Issue322Test.php": "e28ac52b9baaa582c1c20b3b56828213f244472b67eb85416ffb29710db2da3b42fd6b91d65cd6c9ae86f575a1959782212f04b628d1c5719403738941c91927", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/322\/phpunit322.xml": "71dc0d0706a3c28799004caf437b06082fb7a2a1a36334be85abd33856241fef140605b81d01421d7fb86823344cab8c9ccc1553a9740d4fa784d206c7b4f547", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/433.phpt": "f0b002f5990f7c1a48ab507ba67901af3bd85d7aa678d6e6e708513d0af614f9b94d30a8238d26b2014038ab649c410d4a2e09ec23a708fd2eb4095d802b3fc4", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/433\/Issue433Test.php": "cdaaf466be7e8d8f9e80ac3f53b11e6185f338132dbb0c8c575dd8bb2e5da1a29040a5691175a8fc62ff590197afbc7c2fe986910e144b07b7816c5c2a78a18c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/445.phpt": "a94e25a948b960ab2e32761c7d81b8ee837161fb9f71a6dbcf60b9fbedd54ab624bd4b35b6f3a7ddc5b5fc4d5df1c438993c5166e990b54e4c7bccd3393286af", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/445\/Issue445Test.php": "486a76ecd4586905651f16b675a65dc86f3d68d83adc16fc9ba8ecde48e86adb08f85fcbd5453f41093705622feea33675a6ca56851376029a41064213d8337d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/498.phpt": "dc51773ccb27757203fb11054cb6abab15b98259d2f06589265a7e5ab7203b0dde859356e7ace625920c98ec07632b5323a00b048c78ec047fc18b2306543c2e", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/498\/Issue498Test.php": "c3b65065a96e16df64a2210c3b0fb000bedd754d24aa86fd01ff753fc0f6156e63c3a4be90657080ab9abcbc6f45f8cf30a3c290ee621d54aa858a5643de45ab", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/503.phpt": "6e19adf863058a17f5e8fb99eb0da4ffce7ef86bf012e3b8de013d662d0a1416094b7d3da828049bdac29af94149a23fc4447ebad966e35f2a9f4ce5efb5b64c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/503\/Issue503Test.php": "cfa6f43343ebe999e4751abc2ee925ad6fa4eb8870722a81887d3d358088bdb549824494ea1e186649377be7b31f4983ee1fd94ffeb682946a7ae8993bc13463", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/581.phpt": "65546eba4b51316f786ceb64bf33aed6eac8baf0c3b6f754df3cf902f3d132d9ced61c1ea68f9def78a250678ff996da5e9eff840c2d27339ce478478852a578", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/581\/Issue581Test.php": "9694f23222f536b36a04b24fd84d0e4060e2cf677cbe0b49cd92c125f5b158e3797162fd3ce3372cf7e7e79a894384365c54e902c40364491df7d8ddcdd19a10", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/74.phpt": "18636fc2632264616e48eb23e5a37979b4bef3a745ae9d03682108ee24643832f60b337608edc5cf661ea99a1b76713fb7ee1b0815c9bbe144207083791b0f3f", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/74\/Issue74Test.php": "e297cac36a096986d03efcd2307b6daa5840b6821a620ad39b30d32d93d0fd525386842ba86af020d42edc5721bc25207410f0586140c8a51b4623a4b490b606", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/74\/NewException.php": "bd3b952aa08192f840c55ab94bd06b866e56318019d6029a75a8f1ccdf2bd793fe7c478d70f69e255babab932e525f3979cd5c2d0d655f2bb60001f895b8696b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/765.phpt": "177928bb33a5b566813a4bfd784d178dfcfa5c23b109d4cd5743260715dbd7f8e8afb497a241c611a90ceb850b7a1503e4f52352a47857846e13636fe85324dd", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/765\/Issue765Test.php": "07e4286cf1dc41738771f06d6a8038709adc21cd503f8db1b9ffc96726a3dc1c8603095b304d662a496ea3b45434349831e4e644620a313e73e3f4aac1ead5ec", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/797.phpt": "3d1b0b310d5dc89346747f532876a513c03446401b7b44a178b46a9ae7dbe9deeeb75d6008d9ac05ae543b4261dc37a56b1312179be28d44e46626796281e49d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/797\/Issue797Test.php": "bbd29b7896bc0b8aa63a13dcab73cec726fa89ed07e084a965d79323328f17e4239b833308c71b05d91ab48f96329cebe6afed7bf5ceab7692f3690ddf1d78aa", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/797\/bootstrap797.php": "93d93d783b8f16010d8ccccca4454566ec7d608b3221399f38e46894522d527ff0a1c828533aa912c9a48e9b5aa7472ed9423ad5d8ff8d98c17f290c1b2b6e2c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/863.phpt": "d75be033716710dced53cb22e5c39b9d86cc7e1d02f31b02b44837344ff414e37d76c14196457877641b8b900f1ab97ef9afd43546606bfc6d5dac33f04baee9", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/873-php5.phpt": "f576504ce09e6c2b0c6bd5c6eb13925140e6f3bdf928a02d7c10f700f51f4875ea23b0d7f157fbcb401f236eefc071d49344f3ab90244cae0e7b2e1ebe8255df", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/873-php7.phpt": "d64e7919ef174cf4b4eb786e4479a867ebb408860cabeb2b4bf25c7b9b7f9bc9b9755066fc5d5245aacdeae4c4709d7723c8cf4121fd2a4bfe91a13278eaba52", - "vendor\/phpunit\/phpunit\/tests\/Regression\/GitHub\/873\/Issue873Test.php": "bbc94d5cfd0f09ef8b14d5d037505ea5aa769f40be855fc5740ebdd7f3a54d67dfe772a72f2e78a070511721833ad3b2ca7baae4e95e4d80b062578073b78f0c", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/1021.phpt": "4f2eae7c2b1e445c692cf888a64e9f445ed7ac82c38cfaf01c7d406bc170658a405a13de50e1a4324b7dc25a5bb0a69d4de9a0c94a95026fd1f2e2d2609a1b9a", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/1021\/Issue1021Test.php": "1e695578d99126f802daa40d779b280ee60cc7cea024dd2382ba2120b21c64533f4d011ff29e3c5f9fead988b150505b34d62eefb5b514048ec9ead9953d7cc3", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/523.phpt": "69314cfd56bedfb5167caecf3df131cc6e963c8a328b3fdb6e05c7c65778da63093190e5225a221de31733e11b5b4f58948e922f0c9b4f2c2b08ee40d98e6c86", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/523\/Issue523Test.php": "631f6785cab52839bee8669ddfe810ae3ae1b33dc953cf6f26141a0a690d7534ae029c294360722e415ccf4f5dddba13dab913ea9ed9ea7d2cf26337d79f6bcb", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/578.phpt": "9edeb5ae6335a7a5878b5f1f20ff31afff212b4d979ddd2460bc1dcb2d3b1d9cc5916eb5922bb0bd9ae90495a923a7a9d756ad035f8c108bffdd7c99e058f43f", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/578\/Issue578Test.php": "c34f107111a7100e9b377de8262fcc0635bdc39115c592802b5affb703517b2df6756a60b534ca45be2319a95c0fb9e61e9321599f93e10931a7da7438891e9b", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/684.phpt": "82f3c927192868609084564534fabbfef466818c1eef93900528479449b191937bb2e01d33f453fc44b62c2174a76fd6e2fac9f62f633e4505ebd392b14e1802", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/684\/Issue684Test.php": "9310685e680db75be673a7a1336df99e9b7d9dabb738d0a8ad561875d76726b678e8bfd46f379ee247d9f3b2381b002c5919d842415d3d84865c7cabc629b7e2", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/783.phpt": "e651ce271b9f433c215c2739aee1a75864750c217fbe66208e448c3503a6917f61ccfc38c57fe712738fb88e99068dccee0f1307616aa31907e68814b0d8c2ca", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/783\/ChildSuite.php": "507bd6bb4e9fd6276573518534367a93a9167a06abac44bcf73537946d1b8e81b0030be9e28bf83697bfad37de9b72d314a3798a8d460f5aae24cc540fbd4e7d", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/783\/OneTest.php": "ca772fb7abea3dabcd0a628c03b31bf81c07f5eff6ba4a45cef185a68edc4106d4b26938bd5a0475b110fc973c01f3ea9196f03d50a9646fa09069d4c40fc261", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/783\/ParentSuite.php": "28e5e49a978d9894cc083a2acbf1ff58c131faf05d2c94240c0ea5df6945598d47ffdd5b1e669e25e346a855840e5aec02ab5ffe8aa8cb9d019c19f947598b42", - "vendor\/phpunit\/phpunit\/tests\/Regression\/Trac\/783\/TwoTest.php": "212f03d5fa9603b9ce5034899d6f08c06a05abba073a7455fbf0bb968f7bb41b9b143c460d051b866aa95fe3c5f1dbf0c2b310b57487f147e0b66fceaccd3d5b", - "vendor\/phpunit\/phpunit\/tests\/Runner\/BaseTestRunnerTest.php": "e0baf417a8f66dd5fc6129d30583da964d45c85ab4bb5661bb9c22c23de8ad39952183d6fc92388b068918e49d02d4c026ca1201f5b96db1e1fc3f02c327bec3", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/_files\/expect_external.txt": "2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/_files\/phpt-env.expected.txt": "3814f99ebb969094b1109208737603961ea73550a7083c46e0fa6b98497ba9d19a514944e2f1d6a67970776747fd5293bd4a21f0ccc23fd6f69ce379777ed6a1", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/_files\/phpt_external.php": "8751c603daf46018defa72a56ea37e10530b46c3a4db751aea854f3d6528ea9356dcbc107856de4c80d4a2f14396dc4ec92d4c1f6c4ac3d07c7961d8ae28b5dc", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/abstract-test-class.phpt": "10d94303fa4d31c3cb9cd97503beb5bbf202c21f5bd7e39fc320b738a08f4330982e1b3ce5d2d7a7961d860e2528199b519128b3373773846e2e82fa3c840cf7", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/assertion.phpt": "854c58c94047b32069568978a53cc3b773a5a86e063e91af03c76aff377d8bb4b6e22fc79cdafe38537bbb001c92ff49905326c4e63a1db6f34af6624895d0da", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/code-coverage-ignore.phpt": "4496d6e5bfc8dbc46f3b328609e24e923f2ea8c2bf40bd67cd84d343ea29c83068def7de63b673487fa3127ffd851295c51b844fad876e4972765ae1b84c3be2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/colors-always.phpt": "701a5da0bd365ffa295ea6bf78f1b55efafe9aa1280a27befb3dcb458579bb363e111a2c1321695185300055159690b88248a77371b658362f8fddd8632b025d", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/concrete-test-class.phpt": "a756b2a7a5ca2a5fb4675c1f19507c88bf28caecec6155c5493cef5134b45d6c0cf308895927851a5f67ba97c8237cf41e101bd07e360255ef7e3285361f61a8", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/custom-printer-debug.phpt": "879af201e34a89bbdeeb538ffe4150752663fd4db1e00032474c2bb0365aeddac5ceea75998a9899a9185dfe5538e6899a3df643124192f6c3a16603f433c095", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/custom-printer-verbose.phpt": "e084f34b1ac88d159a5e46e548f71f36618558ea96ec2e0ec7ee80fae2683263b8cc297a2ff4882bf81a65e79c5ff29d3a849958c28778ab7a4847031bff47f0", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-debug.phpt": "bb25514997f3b78dc7143442c83cba68bb752a15463e1bcaacecabff5223ec12bafeb8ba8670e83e25043e4d3d6e186048a45e92bf0809ec64fa5314288c89fa", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-issue-2833.phpt": "729d7654db5b47760df6aa12bc898a8f3770577330ad18f570ee6bef0f5159caea1984078aaf31b1f1bcf48ca39a01068be903510cb1786bf28f23a67361d6ef", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-issue-2859.phpt": "78707477c5cf90c8b92b64673a7ab30ef90081b8030d11d1d67f4f856dfa94502148063f5e9b49105ae29de2e01508fa037bd881bbd2457e6413513e79982cfc", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-issue-2922.phpt": "1e815bd25378af7345c96cd328a6bbf45d5ca970a9d5f7a2239767b322139b1dff3a790d6647123132a5de5cdd76578eb086e343a439554c34de3ff7f62833f5", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-log-xml-isolation.phpt": "4d4a2ac7a7192e81e5c9b3555e055976cccf1486c852ac03a94fdbbd9c3a817efe72229022debb0b9271bd24899ccc9414a72ed00f1fbd29b95a9cace3cc525d", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-log-xml.phpt": "fdc9aba81daa4fdd2fa1628630a4fcc0dd69e64741a29a28dba64dbef3257bff3d0ae951a858dfeef4d9fe990155050e81b6bcf9817c516e780d6e99b05d63a9", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dataprovider-testdox.phpt": "0276930ad68cd3b7f279ce21ce1ff085b8372c02d916e4b0c40fa2b59090557120dc9d23c83b778f6977ae9d1bcf07c51f8a7842ac31a1ac2c36ad9ba6ad9343", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/debug.phpt": "d3567dc3cedc7bc7ddba78f4c75d58db4e04774713678b3198f4aa9afabc4a0be5f784330dfbd67221cfa404f9a050612e6caffe76745c501b8b08e882bcbac2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/default-isolation.phpt": "a602d14372b2e8db70eb8f25d76edd4a9bcf482d936069723cc1f042f34f278d4cf6640ced6ea0dcd5e5e5023ad7de40480a6f081728547792374a59568361a2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/default.phpt": "e903eb6918bd34d985c34625b62ff1a0f8206c4129310069ccf596fb67789d3d94a5f7e6dff051af4f0bb86fd9bb12020ae3f26f878b3c034a6cbb1750452bc6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies-clone.phpt": "54da54f1ba422bedf15f80bef5560c95d9cfc80e27357de90f0e1cca69a933ae9de2bb966a7d063640caa44febd69f4a8993176f790d3dbd4cc4ba7573a80215", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies-isolation.phpt": "66052acdf17d7503611e10f9b9287fa797cf661c4abe41a782e9a783123059547457ea4e461a2dd82f64773e03d31bed1f6ee4f696cb2f8e1d78136efa05e7e8", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies.phpt": "6acddc56ff20617b7db11fe9bea3a40c0895111e59de89ffde139e59cf106654a117aec47915ea00fd4afabf3f4a6f76d7e8c1f1362d45334fcd74c8fef8dd82", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies2-isolation.phpt": "bd2b805acc05c7f248c90f7aa500adb5e1b27d6fb85fee457fe7494234c40c921b564bcffe15ea9fbc24371f14e0133426ff93957e1999d6f3753e32bc94a4a1", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies2.phpt": "9142c4541fe04a62b1bdd5c11d08ef0ee336a43e2891f1e7b5280410ab073b28c0aa199babeeab2e4dd18937e2ed5eba7e353182d7bc2b50c3e15c95c7e8f436", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies3-isolation.phpt": "e98c30b5a5478d3c2d87c763efb851ed479b665971539d5b11449fa0693aa9b7a392361597d87713cd4acd83a35487c5d264b86bbfbc9660307e80220dbcc060", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/dependencies3.phpt": "0660ad75ea24dfe33b0b2ce0aa2b178e25ee2f3ac54eb5e116e1d72a464b44070cce15ed168036624bf10d5545dbf3488eb646cd5b1a30d5a12647c34c2094f0", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/disable-code-coverage-ignore.phpt": "f28a6376bddef51fdb2103cda765d85fe363f2682979c38e2c77a5bd8f0163239baa94a0750b7a4acfbdfe46adc5c85f3c6061d0c7ccd3bbf7c3671edb0b41a0", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/empty-testcase.phpt": "31ddc7627ff9757e7946d43f3d2be9b2ec6259f8a26f49bcfe5915abef375e056065f878bc09ce6c16fe02ce137e43fc4c6ca80a30f2cbf57560b544d92f424b", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/exception-stack.phpt": "6d77009ef5d3d609900edb21a3bfc94de12a0d7ebf889d6c7bf9774352d6d3688dc54f6117feb2c063f3468421866f822dd529eb6e30ef3217029fca8b666eea", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/exclude-group-isolation.phpt": "c87bdf052859155e6593d18b2c92a8c74823a47494de79b80fb65dc321da71a894a14fcb255cfad2ea70a979fe35e29d76324c316d6efeb5c0bd6dc93f85b1f2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/exclude-group.phpt": "89b795654c8466a51ac5206169218894bcbb09fa19ce094d1f73fd6a924488b3f4b005988527e1dfa30f559b01c338d2735bec14a44727849fcba5a9ab65f9d9", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/failure-isolation.phpt": "07772a3309d1e910640fa5acbcce85c7855ff49efefb2b7f94e6f78b000808dbfe2e17f8cd64d55a1d324067fdee5e2af638959d2cf57b6e131df239744f59fa", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/failure-reverse-list.phpt": "77e9f57da67a39f4e776dcf629d1e639457f9447c5b03067b865fe58a961c60204d0d441abd11f0fe2089b58415e53db1bf53746ae557d96a6ca7f2f4a01b1cc", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/failure.phpt": "508c2eade2348f47a224422e48d6aaca0a4d044f83c2ade2dd0301c04c549af8c224345bbeb195c92b511b1dbd09a36f44c23eb49bc685294a2ca4bc092f1e9c", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/fatal-isolation.phpt": "e08b2dc9631d7979fbe463a03d13cd43a3f4d3e65c1b5b5d386dd46897dd00a126eaee5d62b1ce55c1a844f149b810212e5d6e888a801e6edb780b842f449cc6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-class-isolation.phpt": "d6610978751590f9fed3dd39a5110fec66d3992686c177a46eb8016b7bd3b8079353172c9833138711a03095c9f6313e803fe6237644855a76ae3b8f6b1c8d29", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-class.phpt": "373061f54c78ab9c92b3fa99fb4e36b6452f46b901f04debcd389e86c53f53f88b73a8b43abc549c7ca4ce5e1d95c019b75af0deaa91f29529be5fa6d9df9e30", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-classname-and-range-isolation.phpt": "895af2454aab5a6481d2cb0dd5c19ff097b3ac626c583d8b6287babc97332fc3f883a38a55c7fcd5d8a4f37bfa767d0cccb49a76977870c0557ca1d48de00924", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-classname-and-range.phpt": "51587690a050642024cc0f85893e606a93b7902afdac6d7401217d462a94fdfab7a3a0f7aab0732920504167ecae902af012bab3f7e90159afebfe7a5648e59c", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-number-isolation.phpt": "a2fe3487d180440382ecab49140ae91275816b6689ae58a84a88932af8448bc97c9f6efbf56dab1eef4feb660671fe7b55666c568e8f29ca3792b003d0947afb", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-number.phpt": "bf45440802854e684ae62c9feb7eadc670d99914ac8053c97ef949015bad849bb86687615fb04f4b914861cea58e784eef1771ffd67c30a5aa4c61de4a8a8bc2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-range-isolation.phpt": "f3ef740afaa5fde79775bc601d153d27ae37340eade41afec72d2fbf0905a2619313ca3dd8d16289b6e40bc643f4d28b1a0298398f93d771dc7bf30966e227df", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-range.phpt": "20e196d700672f542204d014fe4372f1564b855d2aa26a4f5b80dda042f15b1b0263187a375f0eb4869e0b1de0d47e1d1a2b3087b7b3a5cc08ca224f5af74df6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-regexp-isolation.phpt": "856fd95a2dd97ee5ca9ac37e857739e799cbb827fc6a03b102d68fd2391ff877485464d46434186199738c26e3d69644ab209230ef1c96d1970671ce279f96da", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-regexp.phpt": "6fc42bff092961239344156814a649cd9fb907aff3068a9e20f4b3aca9fcb91b6b45544ea388726e2b3bfff0be08aed62a76357c98cb6331b104c35041a84360", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-string-isolation.phpt": "8dea78d2b8551779e7f587baa6543e4ac8f929928dc6fbb708df1e2b88aa0932c86117b1938c60191463d9a1aeee5b30106927186e7fab483ca380a9511a194a", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-only-string.phpt": "62f8361a6db12a72a68c9d3f377782a147eaf01edfad58b7ea5b9d08691bc5930f5726bf37f164ae22f4d6f1bc8b7009326f15f4da84c6aa23249e6924eba1e2", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-range-isolation.phpt": "2e716c52cb1a45ee5641e9597108b5f9c456bd6f5f7621c972078f77b753e9467703e6f4761a071fe52bff03501e175e45219ac9699e4bcb278c96834d888810", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-range.phpt": "e949552fe8e4a5fb20c207c42e2447417ff4d6ce4d37ebe21cdddc361ef3d0b3ef46b6bf80f9724063d9d096c8d89cbb8451819a91a5825e7a1e966461325bb4", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-regexp-isolation.phpt": "fa60a57cbf9cd1b75e55c39354338821d8ae8d3a92b41d27b147f7f791cbed9ddb2d5693e7fb39d5d96dae5b37a54315cccdfe8d0efd9ca5833d948a6372ea45", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-regexp.phpt": "818a4b46b215658d33f379286f96603e05cb734aec834481e9b265931b50cf984e60ca2ce9e36319e39474584ce6121eaf224ed346b0aaa5999e19299d9ce602", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-string-isolation.phpt": "47ea49f7a32378f03726104f905e30c64cd49cbf21ed15e7fcfceb965f35fb85d5b78564c45f6e5a01d3f3bcb95f46b95ae1389e16fe1637d9e4269e3efd5cdb", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-dataprovider-by-string.phpt": "235e6ce5f219747a6eaba39a35cccabd057032ebe1d01f93362e153c47070275549645ac9aef7a4a22ae4644eedc8f043bde6bca5a9b8b9b35c054a5cedef820", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-method-case-insensitive.phpt": "a8dd559f2c882c3d35e16bd5500734e2f4d4f1d0bef9c717c9130f3a714171c65ad60cd20c30f600355be8451b3ad2af688ba71cbe7dbcff7a5c654b7a154388", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-method-case-sensitive-no-result.phpt": "ae851d87ca7c0ebea7ac462313c5cd6444592f20592f916f49e93a7d0f7ce185984fc2e0a35ec4e608fed0513a2b21c3f447544c7507a2eccc8819dacf7fcebd", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-method-isolation.phpt": "1f5c045f12d47bb6374d0c510468ca7013f5ec5a96b31fd281d4b855dcbdc2847f1c142c76dc5766fc1ef2f271e03eb5bd9e0058963a3a0212f3fb0247ea0e12", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-method.phpt": "3d5a52fc811b4b1d34526fe8be3d86a19c46bd45a9509d85c32d0c1a3c015e93cdd320587c20ed9fa10befaa35bc5857b34c6e238a1334f7d0efa82714ada1c6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/filter-no-results.phpt": "c79cbfa478da048b40048e0191eddb329288b81ab2bd9eb982a4b6fa69b339fdf4ddbdcfab12afdc5620f510b0429961f2689c8f014787caae423a55370859a7", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/forward-compatibility.phpt": "e903eb6918bd34d985c34625b62ff1a0f8206c4129310069ccf596fb67789d3d94a5f7e6dff051af4f0bb86fd9bb12020ae3f26f878b3c034a6cbb1750452bc6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/group-isolation.phpt": "888d6484c6ba96801f711010893a508cf6224905e23563e3a0609b1700ee1ce55334b64c2fefe6dc964696681b15259f2540beda6d539c9d07eaac862d69b78b", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/group.phpt": "873178f99b0edd1f27a31d8da20b92ed1fd77c6af5fdd466f71353ea177d2ccfe1476b2d1b789c7dffe269b7594a29127db74daebc88d2117208046015518fbb", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/help.phpt": "5ffd84d52bc89d8dad2fc055d5bdca83ba4150ec5ba2fc3e985d3612d46804dcc1cc03faa0223eb7337ba7738b3cc0956e4af92d0bfa7fb799a3c42fb9a50a6d", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/help2.phpt": "5125544cbec88d59ce12b615ed4d556e991dcb74c050ff2a84e24d4e16d72cf77d76486e13d29d509341ce19e57c57dacd31fbb8a24500f7131ed068c9e7061e", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/ini-isolation.phpt": "a4f764785e0e0637c9f7d1a3ee8007027e3e18fcd1b41bdc08238a23739397d32b16d9443c0f8021a1d810384ae9babc770ca11881deec6e638e15b5dadbf0cb", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/list-groups.phpt": "821cd30917f55e66831a8d187f26d7cbb630ae1f7badeeb159368ffe4ec01bd6806d60461f1a7094252c7b755f116d1d795d6991869e2141188bff16038d6c41", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/list-suites.phpt": "74ba03eeda59829ec718101d49f114d0f9e1998083034edaa201c2a3ac889fd497074253557773dc04b870973de5d4b414dd6ff634ece37954f3afd4f39f5b11", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/log-json-post-66021.phpt": "938d3de4fd74a7f86ccb6fc77e26c68e8cb7ee76116102ed79d3fdb22b7ac3a4538659d1a8ca4eec16802a7e0d7aef3876cea9e51fe04c90eb669c076991d4dd", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/log-junit.phpt": "6349d2130f1ef26e2f189b2354c2750de136a9a8fb88a7172303e7acc5c20a0cdf0ddb8cf71b347ef380c1a1f41af0290eb5eac62692807856787e96004679dc", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/log-tap.phpt": "5e8a25012b390318d5377f35493c0ba88fd09a3b5df47806544690db1330cecc03ac4ab33dde67eafd7823dc02f7ae2e636ed96864b3b9f61fc250ea74fce977", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/log-teamcity.phpt": "d31ce124052cbd0d7db03cc15b98c7a4f653b851b599aace59370658bc801fb229996a405a2e21dc1b6c1bd09ce65d3d89d25b63a89e5bbef33e5eb5b89e9268", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/mycommand.phpt": "75721995dde89f091ea9fd4e2635ff722d5f8327b6c614c5f2077dde12b78b5b9dbf45d15f141047cf697087996ba400a9b276a1c69573ca2777285c22bfc3a0", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/options-after-arguments.phpt": "55c735b201503d40ccad9d894e064be93dee53e238e6dba3f35824a61709481ef70501511124e171e8bd9ad0a1bc2509742ca91c4898aeca518963392c0c01f5", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/output-isolation.phpt": "10620621fa179fe11f65b1985f29da9c66376dda551087c49e566b0d53310591ac4ec57c4e0cd74aa08e8e7afb427fd7cd9ae173412a7446fc5336294649a340", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phar-extension-suppressed.phpt": "ba906b5e507c07c225a7ad15168654faa886f213978592f8549da46098a337b4924240c2ee90715d28a98db58ae29dbaf9c957fca6ee28c95b718101a55967dd", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phar-extension.phpt": "e235f9a9ed40ede4949163afaa864ece72b753336543e462bb093208565466da8c98d5b2542abea7c3834fb6de13db48a8b5b9a63cd20e855a15be08b1b9eed6", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-args.phpt": "bc86bcb937020640f91373724c84d3d7a0dfc16a2ca62eb06096abc45bb99665b1b4d4e9362916a49af412a00ffb3bca2f25b529687c2beb5b124fe1cbd46335", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-env.phpt": "a2d38539a78af8a2f35276155fdc1854fae5e463ee3d938dd89e716ad897727e2f77742c254439d7d1272e7271ca395fe0a90d8d6312e0f2d94d0c5ee3711a2b", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-external.phpt": "a623050ecec755124c6326ac678786eb50cac261499f99ab99be5e677571c11776434a6eebb7e1348c26ce311be9bc4862fcc0373cf57258b05804c97897e252", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-stderr.phpt": "4d10e218f087a7fc4c7030c8522375eb16c23a9351df0aa20ddfb3d22693d9d0c9193f3889e0064f7a629ad224580cfd78cee2579b9d7b3698ee60cc424206d9", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-stdin.phpt": "cf2e0eac4d2500a0d88d9ee20765cc77b4f9a34741571de3b19d72018e131115936f104fd03f67bc4acc0815c95bd934681cd79734b94def585b3831bcbac6b3", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/phpt-xfail.phpt": "723fc7b16cf752d4ebe282f235d15c6adc78298a7d7009cc28e83439144402dc65c216d14c2d99461204bd74e040fb1f0f1bcb969a70bd9640b65e0a33df0dfc", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/repeat.phpt": "61c33996193cc8eca6b23edb7e4bca76178506cac5b094bd55474774cf5e7b52bf67aa5c6e7c94c89f639b5a37f76b2a0c51e3e42485e5c2150c015e5d0677db", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/report-useless-tests-incomplete.phpt": "eab9e7f3c08a964fb6a563eea83033769896650c792d16655d645f353125344b0b1515309e8ec34235b62bb4ced7ee995ad58b72e7cf3a80884ed795ec5885be", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/report-useless-tests-isolation.phpt": "abcb5319496fc5369f88cc1f2f97befaa93db49dce15e106c69bcecc5f5f862d05eeb1799c77a18e34dda386626ea44c51ebba4f3db189afe11d1938f9fd51af", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/report-useless-tests.phpt": "e3291ccc458d3badd5737e369a2b4483f9e1651df3d26eb54eafa95f9e0720b1e805be7e3a21bee95b8ce50d8389fdcfc9c0de9549efdf851a3ec71dcb351d76", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/stop-on-warning-via-cli.phpt": "c53df79aa3c81b8ee8b5144ba9f52843e94edb0ef65bd94f56a080afef245dc141a9ff4dbb1a62a2478fd0c33b0fcda35bf123c67471a022645a3ac5b009d343", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/stop-on-warning-via-config.phpt": "0927900ca890bfa223f24493fde0b3ca2630b365fa91a12baf1898bcdb9571d844b2a1e6da7ff15e4f810b5e330d6642cf4dce5117b2adfa6d0ce7b8b8c12f25", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/tap.phpt": "22b909f21694f5122eb22dcf779cfc9bdac66a37a28d19850bd4303ea7b33457be3590f0cd5b9938f4015db45ebcb1f341701cc37590084b0aec1a5be4d14289", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/teamcity-inner-exceptions.phpt": "d0dccb2ec473cb3f97ca3de7a914137fb42c30cc4e758f60dff1dcffd8c6b2d1a9c009418917c5635b01e8fdcd70083f0b5055b2fe43129b2674773614ab310d", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/teamcity.phpt": "b1fff2a5690311d00e0c384694c319107375258bb419d4e0bbe99fb22fd0d3a2c18dd7f513f00a3b515f3cf2f79917f56473343d7ce287017721268b98a4bebb", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/test-suffix-multiple.phpt": "3003480e65e11da905f75af6dfcac40e305565ea401e41ae0785a0142cefa46e21008026d6520d61a58c73c00cdc9de39eac7a13b888f05ee041783c69e563a3", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/test-suffix-single.phpt": "76ac8b272da4e7819382af9fb7aa7f24c58a15ad85905f9a442bc1e823fe3414073adcb10545e0b9d22f0e0b8da07d60040dca90589b69d697b3c920adc2eec9", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox-exclude-group.phpt": "0b331c113a8109b43e94e4369d13ea5fe9a67a3cd6421e698d5e7c74bb5134db0fe37fff929c87a788e94525ac1a4c29f598f6e448a4e828142d0973a7a150b7", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox-group.phpt": "ecc0469113c4694aef35e155aa40b7446bac45d23ea0953cd73712f5b6a481b184b1443c1d89e5a93bdf612b3242c7dca086f86c7b1c53a70f03ea0810fa8022", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox-html.phpt": "db0bfd6ec95c5b8e839511b3ad3830717454cdfdf76ad8bf53a5c28bfa1b63c3146b977062da69c72c39b77b334338fe56d5d964569034a384e1dd651028c2a5", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox-text.phpt": "6c6b6dcf104ebbc269e91d92263d67ae614a524376b5933a8df021e43cc6b7452af27a5c5d6871483f8aa0544edb2c8e73a8c8660a337fbade0a1569dc21f35b", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox-xml.phpt": "31b38c0d5248c19d95f8dfd52ce209c184b024d660a162bccd41fe597c8f3d4101ffe9e830d955a4a032f0fa138cd4f393a1eb233be9a3c23090efab02b55384", - "vendor\/phpunit\/phpunit\/tests\/TextUI\/testdox.phpt": "5cd125656fca66ed82d0a0d5c0ecfe103d66659bbb77fbf48d27099882486df8711336dad0158c5c2272253be80f0496df4d5e5b5ae6f3237654e1a0796d85b3", - "vendor\/phpunit\/phpunit\/tests\/Util\/ConfigurationTest.php": "8460f5f668adf598cf88d755c191bf0a677f6a4a86416cd9dc81187f680ffcd4adaaf7c4cb5212bbd3a9ff8c316c735c2b37e417ed59cd003c20a981a9d2d60f", - "vendor\/phpunit\/phpunit\/tests\/Util\/GetoptTest.php": "06303e3c482fa8baaebabe8515056f61b17ef7438535ac0f37622133eca151d7f7b573aeadace711d5dc1f6036556f7a059afec4b385591a7127caaf4c254d2f", - "vendor\/phpunit\/phpunit\/tests\/Util\/GlobalStateTest.php": "437aeaf83e0a1fda6bf9ac9757826f1751863aacd229cbaeb8deae00cbd2765ad210a032373963a98e1d661349db2c5c81c79607e72d61c1a4d572a11ce1f914", - "vendor\/phpunit\/phpunit\/tests\/Util\/PHPTest.php": "752288750946a94a1d32f07e414c288e9cffd11c9980a02f70cb5ffebab8f934be0a3898967fd8c4afeb6875f0675e418493b92e59e40da7e4d4711558fa1be4", - "vendor\/phpunit\/phpunit\/tests\/Util\/RegexTest.php": "fde88908df6e8820fb449b14d52ae1126171b77e1399efd53b9f3fd64b56a377a3c2b339031d6b442e5ef7b0efa7f06242dc41889568c00383c073632490ed1a", - "vendor\/phpunit\/phpunit\/tests\/Util\/TestDox\/NamePrettifierTest.php": "96bfca27a4204a9fe02fd347d6d47a60f5669e9a32325b73bc9e04d6cea7d05199c9595d44e59e0326d560dcfcbc69cd2c8e4fbc77fcceced792d10ae8d7a1d4", - "vendor\/phpunit\/phpunit\/tests\/Util\/TestTest.php": "8c204de8a6a6e7f68164d13494b5c5831f5cb3b258a374d228fa38c7c46a89b356e743b094ece0446cbfbaa7685b0e884f72d8758c900a791e4ac8990036b1a1", - "vendor\/phpunit\/phpunit\/tests\/Util\/XMLTest.php": "ebe46589a28e947b8cd4445b24ee6b86f5ae54cf4bcb19ac1fe48d6c81ce3973ce6b7a00a2d162207b384a9f5c1192d91253d579da3d524523160fb5c2b4028f", - "vendor\/phpunit\/phpunit\/tests\/_files\/AbstractTest.php": "765fb0ae894f53189983843baf58638056798ffccddb14a59415331f5b95b9928e8d4d45ca482b784bdc9fc3d5fcab2c700e6dd83628651b5b16171aeebf4983", - "vendor\/phpunit\/phpunit\/tests\/_files\/ArrayAccessible.php": "0265f181fe6cc33e527cc0b654a006d995de18bcc6e2e0b85dbf881eb5dd4a26fd913667234b44efabb449eb51d6964ace58acb843c8526a326acdaab9a5d32c", - "vendor\/phpunit\/phpunit\/tests\/_files\/AssertionExample.php": "3bb4509c2672ef8d928e9395633b43fc38778ca180339d32305dc7fcaee9a14dc18a2a36749c29927e08dea31b7a8390a89fb2b9e23a30c79379ec4004fb4999", - "vendor\/phpunit\/phpunit\/tests\/_files\/AssertionExampleTest.php": "f54353b158bf188545c7dae67cbdcd172b418ff8c4b5d015ad23c8a95267c23f5786f3aa2fdb0de73610daddd27aece35aaf1c8f21ec9a8877d0a67af1d13ad1", - "vendor\/phpunit\/phpunit\/tests\/_files\/Author.php": "e33f82e60ac25faf21b8343d6c46144deb83762676e851db3eb93302b7e78e55577037238287fc31b8b8621a4bdf3a2975c374d6c75776aa11f5128d1d3ac81b", - "vendor\/phpunit\/phpunit\/tests\/_files\/BankAccount.php": "60eab41e5ab45feca366c50554ed836aac22e3caa075867a8356bec5bb2e7f275dc819cd942d4595d4fa16c85d3b4f516e8c33ab7bd3e6d6e2c79b9ce3c594a5", - "vendor\/phpunit\/phpunit\/tests\/_files\/BankAccountTest.php": "9f347ea69b428aa7969a62a09545f8438ec66411f094a37a5ecba3c3a9c73e42ea465e001c34f52c1fe738d8dc2f2de3141ee8c12d09c81f02eff32566c28d4f", - "vendor\/phpunit\/phpunit\/tests\/_files\/BankAccountTest.test.php": "84d8fe1a4a68c465db9b498c2424355d3393440208b9a44e583795cc6f7cc44c450403058bd31301838c316bff46352ff6320f3e6f4fdd5911d41996feaed93d", - "vendor\/phpunit\/phpunit\/tests\/_files\/BankAccountTest2.php": "d1dd8605b8f884a5f1ce9fba0a628b3922a239b863b1765997b65f649cf935798234bd5bbd8bb380f7873939d47f4a46ad955c0cff93db1446abdc31f4f50af3", - "vendor\/phpunit\/phpunit\/tests\/_files\/BaseTestListenerSample.php": "3aa86b29dc2cb130a477d5cff8a1576fbfe5239f7800c7acfc527d6d74daf9307c5722cc63f955eea42239b3f5534092f7cdba82453b1f943e055ba0e682ec30", - "vendor\/phpunit\/phpunit\/tests\/_files\/BeforeAndAfterTest.php": "8b269fcafdbadeea89dd054dc4da34b784f675bd03b000ce45ed78943bb82ec3c5da8353866526d1e582be4c19970141f9105b5015d76bfd5833cd7ff2e6b484", - "vendor\/phpunit\/phpunit\/tests\/_files\/BeforeClassAndAfterClassTest.php": "b08cc0671fc880f3e0f083e41a8cbcdac9efdcadeccc670dc8e7b289324dc4234c841949fe1fa805aa5addf2e3cecf7df5b469116cf6f3e89b75723fba5dafd0", - "vendor\/phpunit\/phpunit\/tests\/_files\/BeforeClassWithOnlyDataProviderTest.php": "ebbc5cd1a917f464e44aaf5300341c0ccd3bb4d0588ebeceb8c4c0d6676c2d784b6690af39122ba8123ed6eeaf13ab2212741732cce00b9744e86f6287e5f3b9", - "vendor\/phpunit\/phpunit\/tests\/_files\/Book.php": "b61338dd7d2d3f110baf5c1e6ff0c082ddecd83c054481d9318a2cb063fee0221c0bdfa3af836995648f32b9993aebed9d478469633a084f181ee232ef600f60", - "vendor\/phpunit\/phpunit\/tests\/_files\/Calculator.php": "82bcc707675e461dda3fb795b9de86cf71313cef4ee82e70569c63a22d5f8edd94f5460868e51e105e3ffce25567bacd122947a3e2795b4971e63ef873dd3412", - "vendor\/phpunit\/phpunit\/tests\/_files\/ChangeCurrentWorkingDirectoryTest.php": "4f5284f187db3771e52a3f9e8eccaffb094fcab5cb2f644f2e9666782974ef7a570eb89c4ebac388ca55fe147f9e5e79e103845a61531b8b39dcdbba87ab9725", - "vendor\/phpunit\/phpunit\/tests\/_files\/ClassWithNonPublicAttributes.php": "4a15d8d0319346a15642f7b2eeb64b34e240739dd795d249aeceae7b4b9ea998f6b49d024008e32af0dd78528912d2a31ff79f19ef4750b297dfcbea21e11597", - "vendor\/phpunit\/phpunit\/tests\/_files\/ClassWithScalarTypeDeclarations.php": "808cf4b7f40efc74f4b9586a4ffb2dcd32ca3df7617f2c81c33560906146b07b6f59f39e689176774d784078acf0636c7752455b460d8d1952d4c90e095f1629", - "vendor\/phpunit\/phpunit\/tests\/_files\/ClassWithToString.php": "3d3408f90c87b25c407892d1b3aec36df18e643824a5fe0313d222c4c0dd437fd516a825e17f893abe2bab4b85f2e48f2aa0f36b5670c7ea82cd07dd815b8fac", - "vendor\/phpunit\/phpunit\/tests\/_files\/ClonedDependencyTest.php": "31b509ee5c8f5586da0e516898e667a3ce8abca98f00b63678ff315195f50b08096cced18bc3b18b5a07ef6bb021062dfaea516669f685155f1aa81a78801e1a", - "vendor\/phpunit\/phpunit\/tests\/_files\/ConcreteTest.my.php": "6be1aca1aad7562877af33850d1f3261ba4d0021f9c9e0ffc3212faec96d77983f5da2556ccd239bfb6e810aff63ff44b97fb78667e5fc7c376555936b10e966", - "vendor\/phpunit\/phpunit\/tests\/_files\/ConcreteTest.php": "abd5e3e6da58a058f5b2331cb439aacf63c8156860df2e9f1144e03535a692f2543fbb056839573de2efe8c510f7dbb2fa6521735403ef96ed2a922dcf58c300", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageClassExtendedTest.php": "ee0a56f745d977e09ec5c0b042498458f4c8ec27240aee96e15585b72241280e6604f26459716acc77217a953a259ae3a2cee4f1e3c32d2ddec69b89e6b31b4c", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageClassTest.php": "e29e0b98277a6888e693421089c15af3aa37a2f4e4818aecf5175a1079b7e23fa1efaa8e42cf66b845d443a9a7b3212b9efd92d67a72e8dfd42100a4051c9bb5", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageFunctionParenthesesTest.php": "8124dc9b78414a1f8117cc8cd036cbf39290d2beea2aa94e464d347761f224b3abb2d14da5c85d76759bfd7ffe7f2648f85dbee99797b4b2ae65d57ae403bb9f", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageFunctionParenthesesWhitespaceTest.php": "e82f38e06d5869feb36fb0d717bde9fa158b196b10bc4d806bd1212e47d10fcd595a2d61c2790ff9068fea3925d158225f422d1a5d70361677977ea3ee0f5018", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageFunctionTest.php": "7c258541668e3bb674648848715fa9f2113764451b1fc68c755a336278d8c07f3d7ec8c649f6893268b36f111759c04bdf80152627142cfed7f639f0a5b5b18c", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageMethodOneLineAnnotationTest.php": "c100146bd6557276c1fc45e559a4fd275717c8ab5500eaaaa87412240379e31e076ac9e3e97fd37653ec4776dc0363d0cb61b8940d78f732fdae1c6854bc1760", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageMethodParenthesesTest.php": "de0703d21633cf88b13b7f9470111a074fe78fe70da2df1343af120c6cd1e625086e74301c1aff346ef15490c568fb9802d64df734091b8bf2540532128c0340", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageMethodParenthesesWhitespaceTest.php": "7a6922711dcdf0fa5ba27bd5e8e42c9f1870840e1eb5f0591064eb159082e34020fc6138dcd7c511c70461750aa3abd3eff47e30c5b188d4ba5952fe1ea9ea45", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageMethodTest.php": "ff97cae3848abc728e9983b63c02c93893f389f42061c0c6276a5bb896b33401ceb6661aa1b3e27e99899415edf22462e318fc12dfd250f45bf31ae998782a86", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNamespacedFunctionTest.php": "5cd5a0d0ff391a94c11a3c37d8cfdf6c642e86fca38ca70cfb7571c390fcdc8e5eecde30bd7dc3a8e6b58e14dc5909bbe7bb6778fbc9bde9b41ef45bf3d4c357", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNoneTest.php": "a2ad7b37910467474483b67f2375f0ef9c4cd17b01aaee8dea4fbabfe467bc9bdcb774d99b4c1db6a6bb50cce71e6c52bfc97d91deb95ff19ec703f4ad5991ac", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNotPrivateTest.php": "5bcaff4b962e0f201933d4dacdb1b0f1d648fee0780b9d8ce43219352a583bb8bced006e131b81c37288c5e01809c6014ec2628378f955ffd37b2cabed6c7717", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNotProtectedTest.php": "c03ae1c4100f03b3d193da2dc6e9da2bd54cfca17c340717ddd002e01b74eb8464480edd58eb9dda4a1c2ca7be96a17a68d31bb3e198babf7a619e32c253137c", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNotPublicTest.php": "268dc5302b8fb86bb885637e91bd29bc00bd71b8a3111b19dbae368e4e1042b3969ad8930fc4975e40af4a903e6f973a99700153286882ca99d377cd900aaca3", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageNothingTest.php": "ec387539a7736852294f903d5a41b6ce90b1c90138e5cfdf39660845358145d70277f3af44af6b6899e42f3eaccacdbd8dfae36d57cbe46b0719a9ddc7f0fdc0", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoveragePrivateTest.php": "bc65b57cc2953a6fd26440694e9eb5e7270a2a32ed0e8fd7e68be6a6d132da4a8052bc05200b3299008cc32ed0bd9f2785c143a24c5df2cca67fb05321b945a6", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageProtectedTest.php": "9ed02b785707c8b0dca019afcb5105dad0744581a4c9751bf7c46b5c78ee486ab8887695931edffd190db0b748e1876bd514af50241da66476bc80176655e931", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoveragePublicTest.php": "52280bd164c9fb6ca9ce2d321849216821cc1841422ae306d5415f7181a913ab6d10aef93e7248d69fd260edb17666759ab1a7516931dbb1d28ef0d5fbf46f85", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoverageTwoDefaultClassAnnotations.php": "07e27aa6d9d87c301f0062a09e66ee65b6a80729ffdf4fa8128b27cb68972523803f867058f582ad9fad393378377c99915906c7b8b7bceacf873129fdaa06e5", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoveredClass.php": "46d0fab353f12bf3d8b95a1a2ad8e7d83be277cc125063002cebedd0b1ff9953308ec035324fc1a951876b1de3fd38f44d318fde7bd9d59608237821390a6c20", - "vendor\/phpunit\/phpunit\/tests\/_files\/CoveredFunction.php": "55fd98705568aa2d43e72dd807b0235ee2b9994fc07b4bb5fb468811c46fb3155315ce4d12b2a17a326518096b962b17b611355041fd2e0e40bcab193944e2e3", - "vendor\/phpunit\/phpunit\/tests\/_files\/CustomPrinter.php": "19fe573cb61a7e8fb0a11bf75c7713d196d6c3a2c3a8040ece979ed14f3b0b75f3472799f87c6a12d2ccf8099df7b43861255132d2de9183a8e209b4dd4ce7a4", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderDebugTest.php": "a2988a59de316d8215988398d9da01ef03465c590a008ac46119e31c37e193c206d2435a209ad14fd523bd4709b00ee651baf91ebefa89bf63902cc87c601fca", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderDependencyTest.php": "10e11ff0a86c1bcf6112bfc3d0a146dc1f91dc3de7f8670b97f3cacca436aaaad74458209a0f13c2129f07b392805888fc86aa8b52be4d5b9beadd77833b58f2", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderFilterTest.php": "861300c39ea9acbafe246a47f8cdcd0ade1f94dcb3b45994765bfed9bed131c69be33a717f610959c9bac6bba76c83c88ed074efd4df03dd0de9c698613b69f2", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIncompleteTest.php": "c76a3a736dd62e7871021a53fd1302951d2e8ccb30057102943257e20211af5552ef6ae6968fb7fcee71a38703da1369804082060d550290d473710acf0211f8", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2833\/FirstTest.php": "5a5fc336ffca6a8cd42adc89590ca85512135ee106d344a849e66f42d5a38638bb884ebbb0407826f0280d7f00413045dced7c3aa0d191810d135f56786e3ef0", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2833\/SecondTest.php": "ed7837c3b5aadc44994d7ba282ee756c2ce55d186726c7c140354b4e460ca67310707b641558fddbb5ab9076d58bb864c01fcada024ed884801f2d3441e62bab", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2859\/phpunit.xml": "3b9efc4b25786e85977c00640b6d6c31d23cb6c45fdfa425083942820fe42928e2cab8121aa0d6936be70afda08dde8d30b4568fdfad1650734ff033205182c5", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2859\/tests\/another\/TestWithDataProviderTest.php": "ba4bbaa6142fe40a69e5be69b88df1a478766e297b45988e747f69766651825f3ffc3f6cdea601f24bd4d8c59650f83940f75340b93570283f10edb71ba3a09f", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2922\/FirstTest.php": "65d68f529866893ea5d60750bf81acbf035c04e395e3908946787b0b60427d32d0552c0eccde5d1e3516b338c24bba042c31205adce8c14d10a86972a4239363", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderIssue2922\/SecondTest.php": "bbd3c64804cce38caee8ea154c2e4c899992a5241fca0322a5e867754cf491f41f9c9e5fbe4b0b909786f330586968aeedb96d5030512da392ffb84a617e4627", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderSkippedTest.php": "10c1d07f5e8d95d76a241bdd8503d87e43733c1cfb01cbbd45b8c4533255e0f24bf25aae4aef79089b6a258cbc606fdec64ff93f8d142327fc03f2e10e583a76", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderTest.php": "063d04beba2e26e80d2ca144a91bedb18dae0265529e270597c2ea654020c6ea16f29693244d5e336cc753bf3cc2a1202fbbda3e045dd1360b7433274765a4cb", - "vendor\/phpunit\/phpunit\/tests\/_files\/DataProviderTestDoxTest.php": "898e06eb0f52f3958813b3bb78498284ceefb809bc3682dd3bfc226aa64d746fb84dd40d9982d449639c1eedcf12e64459d9984fbb59af7093bf067dc840436e", - "vendor\/phpunit\/phpunit\/tests\/_files\/DependencyFailureTest.php": "eec1b52dfd62e4b08723ed82f6095ac237127e4394ec11ed36ed09d6733af3e5939e73c35dfee68b62eb9d268d94b55ef2f53aeeb65f60575083e2da821163a6", - "vendor\/phpunit\/phpunit\/tests\/_files\/DependencySuccessTest.php": "3c754be76ff28b4ad9dbcf10fc450012af4c28aac42e941025a27acd68a212e0c0c298df9fe5cab9dc5c156c985b022b3b39bfb824b1ffb9d9883c0d5977b1c9", - "vendor\/phpunit\/phpunit\/tests\/_files\/DependencyTestSuite.php": "482f3cd749dd9fba04ef85a7d270170ca69b68b928f1ea4229114e74e87a1852aa3fd14b7148b559f1d7a72d55d9dc7e6c306f0ba8cc5a5ca04dc7ad5b9949a3", - "vendor\/phpunit\/phpunit\/tests\/_files\/DoubleTestCase.php": "255272d778ff46b1371db4cf014e808869b5205e1a84a9f59671bfc36a69afbbacd06b746cdcc177305dc7f8ca2004f7c8ab9925a502938bfecdc210b31ab57e", - "vendor\/phpunit\/phpunit\/tests\/_files\/DummyException.php": "85da256a8ff9313e056d36230d75ec472d7ffba9bbaf0d78f4d9b14d7e6eafa589ad6466b64626ef329ed68d92f856d31cc22d613ea96cd3525a8a5df8f92738", - "vendor\/phpunit\/phpunit\/tests\/_files\/EmptyTestCaseTest.php": "77b806c6cbfeb1e3aafedb0f28813455dddb4f7c2b8fe7cc4d305dc85c5f582a4bb5c22c76f86e8d8a86e2465efaf4ea42f7bf679595ed768cd7e5ddc7f0e503", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionInAssertPostConditionsTest.php": "2962557088c7f4e7e21892d9ede9770c3cddc6a489349b6cd213578db7272ce5529e748afa433f1afd2af9f3eda9d9e418438d51ab36091cf8459398677ee945", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionInAssertPreConditionsTest.php": "cba059f15dc139d3fda26332e7ac8a0e15b05ad7a69bf58c1aea74d40af0a0708261415844be27d30c3d9af4c77b4422ad3051a89e6984b329b05611bb466348", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionInSetUpTest.php": "7b214bf3070b0aecd0c61d473fe0522fdf1f8e53252e62822bda347b0d3f120b3310e3a05159f0d1ccd0868b5760988e4ec5dbb5a29257b902dc50222c93b734", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionInTearDownTest.php": "792b7b09adf6e90ae0f6eab766b9d1b16d92596fd871799ba5db61f8794fa5f22df9c4ba1aaf64003ae8ae2f064118f032847b5bc0b72c1f643fd033a31d7b02", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionInTest.php": "08198a96b710960719d154dcfe3c1792f7b279583176baa28d359cadd3eda490b56a2fb54778ea5bb68bb51a428495f2cd95647b400e75a5832367611cbf615c", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionNamespaceTest.php": "bbc57e3264f5acc4575349a683fcdde47f06f5852b9e16df56ccc1520e3127ded298fee9bd79e51a18192eed182e9f15af255bdc45962e07e0981531b211c742", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionStackTest.php": "bd9db3904e382e58dabf8dc8627be86abba9952f825dcae743c4c20132fa1d324dd16ff52ed915ee214a34e883391d9f96d8bcece87aca6ac527a173b9593dd8", - "vendor\/phpunit\/phpunit\/tests\/_files\/ExceptionTest.php": "9d6c835d355e8cad306eb896b36a57bea9ba3ce32275e30fe71fab444f07a5b0147b5d83ab6ec0f5fa96b398d9118cc535bfe1e2c1f76985788bacfd3e73fe1a", - "vendor\/phpunit\/phpunit\/tests\/_files\/Failure.php": "90b98f04040b7719f08fb5a358251ec85f70ea473bcf1af91bc0976b6acc610efee3e5565d534ed8af360bc7a773b9dc965eb39a05ed79a7de2256e6f71cd0e8", - "vendor\/phpunit\/phpunit\/tests\/_files\/FailureTest.php": "cd3b978620998dc686b9c4b666286911474bb24f54cd0a930773c1f0d059abfdfc5ec8aa22371aa9b449ecdf2acdb6492f489a2add1608ee359a4e539b40c114", - "vendor\/phpunit\/phpunit\/tests\/_files\/FatalTest.php": "ada5c2e7027f35b1f3fc1a136f77c06ab41f8fb1b2e4ba90dfc4e26888a72c6c1eaa6ff93ed8e5c9ef5f9f42f215564092acb5a8973c0bc2b3a85913068a5b16", - "vendor\/phpunit\/phpunit\/tests\/_files\/IgnoreCodeCoverageClass.php": "ee32d624e8bd4691a010f73d574356d10440f4a0692bfb8caaf8c0fb8404389b548c767b3a34c4f6d775d69ab02431b4b1b70521a88f24811bb9429caf0ac145", - "vendor\/phpunit\/phpunit\/tests\/_files\/IgnoreCodeCoverageClassTest.php": "b522c7fa7b01b4b4eca3824cb129e0441e78479e04bba32da8d9cd892074c16b730cb682d76f8b452205a7146a3eff04f858d03979adca8942c16cd98f278d5c", - "vendor\/phpunit\/phpunit\/tests\/_files\/IncompleteTest.php": "8420f4dd6ef64b72446d4bdab3972666dfe72957325c98c7a08908d2bcc3db4dbbf24e6b00a8f03f04ca1cc02b39469f491fd801b485ed5cb15f546a22e60df0", - "vendor\/phpunit\/phpunit\/tests\/_files\/Inheritance\/InheritanceA.php": "915f411ff6102b294ebe0a745e6a780dd2220196b3efc8e9dbcc62f335d3e608f6b2bdf7855397bbd74d52d9f6bd7b9a063dbd4c11071aaee572e6acf9d9702e", - "vendor\/phpunit\/phpunit\/tests\/_files\/Inheritance\/InheritanceB.php": "92eb196106c5ab7e9ce4b59e2e6547b8d8e38ee082871125850a45b4892f32378419c11b0cca7cf9cb5bcf8b667f871ab9434db190a3db1dc4e6aa60ee1a8323", - "vendor\/phpunit\/phpunit\/tests\/_files\/InheritedTestCase.php": "d44877f9ca652f713694bbb989fd70abad90763da40a11e1f58fb23dfa9971058cb7e777a46072bf50d54af040e8a9a809b0838d4f04aced116f68f7a6e7d639", - "vendor\/phpunit\/phpunit\/tests\/_files\/IniTest.php": "4c4dfdab419d1f6f92085e4c6660874763a406a2787a7a73b6dc6ac806ec23754293247b47e2ac4e2642c654a6aa0fe63ebc8ae3cb468d761c63934d6c15fda2", - "vendor\/phpunit\/phpunit\/tests\/_files\/IsolationTest.php": "a6f6cf76d9b2d93ad298390b73d7a93b283f0d18914398c7d177e51c127f545616d2c772aeba0cd69106e4161d168984050147bdecd20839a7f8d5318b091af1", - "vendor\/phpunit\/phpunit\/tests\/_files\/JsonData\/arrayObject.json": "8b03b1a74d3f63866b689569063011d1492ccd0989fcce25bbaf47c8bab86dee8eb0999076b2df0014259257839ffd1825e97d3c364c07d8e60952eac7bf7446", - "vendor\/phpunit\/phpunit\/tests\/_files\/JsonData\/simpleObject.json": "c723926426e574b96c862343808b129cad39cbff0853be7931730b6361a7c60147059f9fe81e4d403e8d4434c9f4951595deb932172ce1de04c811d20cf10cbd", - "vendor\/phpunit\/phpunit\/tests\/_files\/MockRunner.php": "22cd63afbddcb32990e3c0227f0152a2d52535f06518cbd71cc92d3f72ce8da53e43525aad23851973670edb3b9a5f34fabfc3f88d508869707ce511fb1bff44", - "vendor\/phpunit\/phpunit\/tests\/_files\/Mockable.php": "91e94e27d33674ad577993024c8613ba7a3d49c5238d774bc99fe0afc85f4d9dda311ceec7f1a03a3c21a43ace57d549458e06d3dac600da0c65d6227ea86f8c", - "vendor\/phpunit\/phpunit\/tests\/_files\/MultiDependencyTest.php": "09310ce4cf8192880132bf9ba4d857c31c18b686644f4acb09ea6789c74abc3205b53fe68c72fb85d67479bb09bb426f97c84aa018020d57389698030a730f61", - "vendor\/phpunit\/phpunit\/tests\/_files\/MultipleDataProviderTest.php": "e3b7a0e00b7dbd4e14a5e63f1d0a19257c99405ff8eab7ab5c49aad41093efe25a073e6038b6a6210c7f5ec27b818c9cd43931dfb7a67e8cf823962b18807c4f", - "vendor\/phpunit\/phpunit\/tests\/_files\/MyCommand.php": "d5745083910aaf044329a3b02ccd628f21f79ce703834f7daf0c97f4f212769850fad9d6195ba9416fd91dac4b1e1ac4e8cec2cb762e6205304e5cc2096069ca", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageClassExtendedTest.php": "fdd179d6a941440eb3dea097d345f0f1787d70c471d78fe2efa6115bc8122c9997ff606fd04e3fb5eb156a4a17d7f3aaf5baca344a6ccc457a6c9223cad402af", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageClassTest.php": "9cb94f7da81988045a18728c658ff43bbfb9953ac087b03d26fb7731cb31cef1b45a1a37b3885f2863d712279220900cfa7fd4c780eee2ff2df2eec9900ccd6f", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageCoversClassPublicTest.php": "dddf45fe7530359b391b04c27d904d2b18ecbb2177426b2f1c109f06d447b2a1848eee769a5ac35012c8653c75d4fc9dc973d8d24aa13f8d208818913c9246d8", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageCoversClassTest.php": "9b686c306e1f7b991971c496da812c8408bf5d27471a39f4345a452655f14af194b4d9ec30828ee2c2ca30909991203309c48c85ae222f7092e0571c896e256a", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageMethodTest.php": "f3561ffd1ea8e16b177d61efd580d7b7ddfdf82add04a731eb4ad926362df2bbce79880c74337176340c7e66b68c231b3401ee7bc72be78e9d1da707a378adbb", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageNotPrivateTest.php": "3765f4fa3eea8e8179a740c94429dde97d9ae2f8b80db28b7625eeb070e7d46cbca48043d46a77c4a2474c1006f685665a63a1878cad48488965a4f2e88ff43d", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageNotProtectedTest.php": "817262dc5e73adc2b98495ce0e51a395464168babbe05e310756e8d7ac223a6f19785533a4ce9622c48385c6e4a776058797a7db7fbdfbc75a857e833d37d173", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageNotPublicTest.php": "dccfc406a913bbedc320cadcedda4a1a1d81bd2cabcad5301517758484f967216cfeb72ae656d64d1683cd54a6b60ad5f227409f8f0f15dbff7c91763ae4827c", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoveragePrivateTest.php": "9f24d7767437b11c3dcf3ba90e386b21b399e0b630473a76d8ad170a9df1f31327bf0102d033011b652cd7aebbafcbbb0f4d45a24c4d66ac29854d323ed04fea", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoverageProtectedTest.php": "bfe56a79b7b6173e74f6814ac0f818e90ba25725438ea5cca775ec89b7d39fd6422cd2435092c3eedea5911ff594a44cdfcb90253cb8458104e6b8c7d5a74277", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoveragePublicTest.php": "96e20b491c7035d186d17ba6c2ef79cd61f65ee6cd42b033a07fd6ddd305ded630fab7051cc49a751bd383610c0a263e0a9e5b875808ff20d2c36bab7803e7fe", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoveredClass.php": "5db0424e0a1bd04c0693e57528772c5db9b8e126c310242df82618924c89404c0d13a515c0d5180ceb84651f499008c1608213fc92333c4b7fc5ee47de3cda57", - "vendor\/phpunit\/phpunit\/tests\/_files\/NamespaceCoveredFunction.php": "ed5a36acb4fbe90e2f07a70378e01260f016c1ef8e5307bb87a25e4b71288a4dc3204db5bb61b715a4649a5e04e539dd526c5393c57b02079b78e727117b40ad", - "vendor\/phpunit\/phpunit\/tests\/_files\/NoArgTestCaseTest.php": "dc21ecf570f66e2eb18a0b713b7f31ecd6ff8d946e919c73489537bed6be4bb61fc9cd6c63a98d35f576b5499824a4765c9fb34c08ad813b7203a509de4ded80", - "vendor\/phpunit\/phpunit\/tests\/_files\/NoTestCaseClass.php": "141cf2358e415fb87e1e455780cc59ad7fb723d38107cfa04f04103a95c46f893816cb2add539904f764c7af928e86abcf49c5736928964cde672e03c2e84aad", - "vendor\/phpunit\/phpunit\/tests\/_files\/NoTestCases.php": "13a6b46964e42012ee7a018480b7ccd79913277871c8f61e3b4b9160db45096a016c7863e1443560fe3c075fcb260dea02db73aae64e10a41da088b025ff1b03", - "vendor\/phpunit\/phpunit\/tests\/_files\/NonStatic.php": "21e3cde477567864414e08c93a584afc5785060ea2bd5ab62d2357dcd4328c05c191849b5c25a6ee4a6ca134c3ee13942e6393edc936def01ef3c741eb0c0737", - "vendor\/phpunit\/phpunit\/tests\/_files\/NotExistingCoveredElementTest.php": "fadf7fd70293bb2d78cec6b7f3719adb160cba22f1d11fdddde55c5dfa1379fc3af836f962ab60c4010acb047d9d032d882f070e04405a6a6753acd0f6da91b7", - "vendor\/phpunit\/phpunit\/tests\/_files\/NotPublicTestCase.php": "75a9a7c58475cc5d123f5aebe5937041b2b41ff764ffc9ba585789898f86b6a3c150202d7dd1d9e7031e8e10ac1fcf66c8c38264d18500272850375103b6afb1", - "vendor\/phpunit\/phpunit\/tests\/_files\/NotVoidTestCase.php": "24dc7bfec4703045f2cc256e7b858ce7095236216a5a2a8e62438c2e5d07c0c9e15c9ae231ef5021db023cac16c255d99e2507c55800f70e983f9aeee46d534f", - "vendor\/phpunit\/phpunit\/tests\/_files\/NothingTest.php": "f900bd3596a209f3000d592295c988b4f69d90701ebeabbe49a92e3b8408dd0b455e933b4a61a11b9fa40af07ef3c758febad7d6bc6f772e9d7b7abe9e435d5f", - "vendor\/phpunit\/phpunit\/tests\/_files\/OneTestCase.php": "4198b90df31a90f88290110f301974395fdd8b9e2a732f12daba6905831f3ab2d21509260bbf127a63d6aca7e67f2498a4d953870c124b5f8823cb8240ef57e2", - "vendor\/phpunit\/phpunit\/tests\/_files\/OutputTestCase.php": "31f8772d52572f58dffadc4d7b73e15aefd4f553558cab5c405498de1dc9eedbd174f1afe4644d0100f090d013008cfa013b46969cc38b5b2f96e2f0cf3ed305", - "vendor\/phpunit\/phpunit\/tests\/_files\/OverrideTestCase.php": "2480b41a85b1ece89503a2d998e6bdc62d59b81502216d28dc66febe74f60128c0037dcfcc804be7664d69d971a6fa13d3d80bd0faa89fdd2f653ded79ceaef8", - "vendor\/phpunit\/phpunit\/tests\/_files\/RequirementsClassBeforeClassHookTest.php": "05a0e7ba3fe8655b57b0f1f24a1ddce383a7e10cce2ba7233c8b257f7ff1e404cf8d2244ce2aae994127544c7877b859f0860b3cace9cf51a963a073a0b64962", - "vendor\/phpunit\/phpunit\/tests\/_files\/RequirementsClassDocBlockTest.php": "52ea3b775e6549fba48375c925a103c316a7f810198080b6b6cc9660aa1d45cc5736666df196ca51d41036d33b4ca1b7a65ed7deb954b1fe824377a1928c32b8", - "vendor\/phpunit\/phpunit\/tests\/_files\/RequirementsTest.php": "c66b76021d7949c44d44e8992b617aacdef14df0ada0160dd34675f51ff8129ffcb7cfa0b6ee34167d68246c60e5c25b918e243b1d1df5bfa463c5f10de5e0ed", - "vendor\/phpunit\/phpunit\/tests\/_files\/SampleArrayAccess.php": "664b0c508fb48f435936b14128de1c641a7d3e12808a3cb0a991b254abd391e2261e2ad31410f778ded27821db289895824db5475242e746f5aafd4d90449962", - "vendor\/phpunit\/phpunit\/tests\/_files\/SampleClass.php": "eddd7843f156ef614261ac000725b91fba6fdf0afde464073307bad7fe4ab2f02c23203462328c1e1db4f8700c0343149c53f72c014582ebda01afcdb97dab75", - "vendor\/phpunit\/phpunit\/tests\/_files\/Singleton.php": "374c66e97dca064cac5de1554082547534f716699b37dc12ebb3767ee7e2ee03486a42bec07189af9a8f8225b60e357667393c48f4c491d6349768ae02906710", - "vendor\/phpunit\/phpunit\/tests\/_files\/StackTest.php": "7adbb9a7858d074de754bb5154361d1879fd9d0299e0e86a6c93fcd56b17782e1e1a09a80cc76e8dbf6ec30c1c14d432d09e2df0320ea2b06bcc0634737d340a", - "vendor\/phpunit\/phpunit\/tests\/_files\/StatusTest.php": "72dfe03782ee7401880e35d5e174c3e9f14b7abb4e15df907a9c8fc05bea0bf0d32f57009cde03e60091168f50f30755866a4d82f4c973683ca7adbbc868ef0f", - "vendor\/phpunit\/phpunit\/tests\/_files\/StopOnWarningTestSuite.php": "122ba0028705a74174e567ef359c5a4c527e132d71c564b4a03c631f52ce9f769c3840c8ff37ae12a845e6debd67578ff416323fbc56851bcad0bdeb176edec1", - "vendor\/phpunit\/phpunit\/tests\/_files\/StopsOnWarningTest.php": "5d2ae8732b52c907e6ff62ee8e7c7af656b249f0d4fb630d72fffbef7d252d1df96a11646e7b458221c8b2e874f9a67fd85480b332092f0d9e6cf17761c02339", - "vendor\/phpunit\/phpunit\/tests\/_files\/Struct.php": "b0f1ea19de3457eaef29791c3841683510b7d18b4d3017c49b71d16bac3ad71b012abcd02379690a7472e306574eb9a566356e23f65114ebf233090a5a8f5e01", - "vendor\/phpunit\/phpunit\/tests\/_files\/Success.php": "0fe91205121c8fdf9ef2d817bd25352b5d39f7284ba79765e6fe642c97edb3ce01dc42f50e011bbf7969f226119dceddfc7a284c310555eeaaa235b26ef5c18d", - "vendor\/phpunit\/phpunit\/tests\/_files\/TemplateMethodsTest.php": "eec7940b9f7b2eb1c9c4fc3c5e2f48b5767f0dc4d366d7c59e4b3e3f99e4cb951ee6b226898d1bb5085e498daba6479e90037f3fe43559998d6813b59bbdfff2", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestAutoreferenced.php": "4b3a912d6a3c8694653bcf1187a8026b0afcf3b0ff551b16c3da6bb6957d8cb3905664cbeabc7d9edeffffe0908f9e8b593faae44cc0206e8ae813c91e2eea5c", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestDoxGroupTest.php": "20fdd47e464373d4bb3e82a22e2230b20967482b7c0dc24c618e97487a2caf4f78925e2293f2fd750cabf91ad942d28caa379915971ad83116cf65c9e2ce5274", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestGeneratorMaker.php": "017c0a1471796873c051cbf35cf78c32d343b2f7b46b9e62b45cacbabb9914e57f74932ff296f9a6edc473d8fd390605dffeeb22fb7a55ce81ffabb09bc98306", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestIncomplete.php": "f03e75d54cc659a5445f8059947abf949b0a982e60e4233aa2c48a0050f65c4d129035d0e69f3e541a1e7616cf1f2593ded4283f7a73bc232c9cd9344c5edd68", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestIterator.php": "0659e979a4d1a93cfc3661943b62cc75bb7294a1c9e5ad468d25bf5151e1bf67e187111a3c8c9701209d8e086fad41650680c9786aefc8ccbc79ead6ac79a97c", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestIterator2.php": "36ede73ac2263a184762aa4455c19873959a3b7ef11a66793708acb5435296384ef074382e5e08dbd643b5e4152653bf8b6d550604e61c949231d9309d1f7d71", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestSkipped.php": "ec9480e6a820d4477581af63711600f029de6dae68920592318d50462bf48459a0071f0d3e0c02830f6cf48acfd43d9e3e2c96153966737647eae02a1c0798df", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestTestError.php": "fc47712cbdef22f528439351f7b448537fea0e7a7622f0b306bce538df638cfc418b7c5cc8e572ca465442339e3b84b349976b2adfdf95b1fb67df32153f7138", - "vendor\/phpunit\/phpunit\/tests\/_files\/TestWithTest.php": "864dfda8c7d656623cc8444cfc6aa6c19f10984761a6e33a635aed6e2f186d9d414300925494b21ab3a7765e3eda1f63647e46359cb0b30aa4a2eccc9f9eeb83", - "vendor\/phpunit\/phpunit\/tests\/_files\/ThrowExceptionTestCase.php": "a236b0259a2ec4429424fd360ff6936f026a6ebf9c0b6e8437da3efec5d82041648aa2b8b4f831c220dd49a2c1a88be0a90d11d1592390fc67a62c0c09a294d8", - "vendor\/phpunit\/phpunit\/tests\/_files\/ThrowNoExceptionTestCase.php": "90649ee9f8d7360cffd92877779e9bfc4a4268c119a42bbbb91a32157e74f1b33a5749e5485f1ff355cfee894a856b1003bccacbbd74dc3c0e54a10dd6a03fca", - "vendor\/phpunit\/phpunit\/tests\/_files\/WasRun.php": "2cd28de4b998822af78f2d2475a1c84f5731283666ae5a13eae4ef0944146a9110f9e104467b8d33383e6a5acf413e9d09c807d2d12118cc12fa60543a83a01f", - "vendor\/phpunit\/phpunit\/tests\/_files\/bar.xml": "006305b190e6952a23c507949a015acc8eb74f9e935c73c624a73f7632b8cd0d50cbe6ea703518b46368366840598834e34c9e968e73a63cee6fac51947bcb5d", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.colors.empty.xml": "44f58880474ac2bec5e19ec34f29e35ae962d9cc22030a227950d27232eea4ad11d2a734287fdef0648011beb9dd05d40e9a051f5f9b73eaa1731b9ba159c43a", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.colors.false.xml": "0509da60f2549edafa2abf220c50af49445e8e0989c9b437363893b646b19935704c78f0b95d7c1fd970d18afa14dd38b437df6299646765266908e6fce7037a", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.colors.invalid.xml": "402c1c292bef36b1da490beb9c609e722784e470ca254c889a640a10f82b1b7dd893a170ac9b77c47ee0d278fcf7c2657315d0963c27346cd835315ce4e82aca", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.colors.true.xml": "2720c78ec7240468ef452116cbcb7854f15f9d32c2e9ddd31782269e344e618c346b08da8489d60a1d0a5c707dbe2992ddc730cfa51c7687740ce9920dd2a88f", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.custom-printer.xml": "7c79563a1cc66d260cab4f056c496d08f38386d833691cde89cdce6c16ffbee4738f142897a8d48b8e1a04a3ff0ef234582c35411b6c8f5158d3f37b9c7bef41", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.suites.xml": "e5f1b8a9446d40d6f6c4baf6ac5c2559033c920a583d9ec9398c55999e181a5e52fe2f12b1666a526fceea2cbbc0167e39f2b0ccd42bb12e8121ea74f6eae9d4", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration.xml": "f66d62202b2fd3d39437dde9b1fcb08a0397e943f8f4346e2bcdfd6ca0567ac4a304f5fc484c1541fa5a1849cfa544791be9b9d3140f275114397f6804509b38", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration_empty.xml": "2e914303e462f2f07ee6f65a81d2ba18d17859f38648bd436733b816447fc9983b4a09abdac903df952018f28dfe6072b4088de522b832b65a7794de3dd8bd86", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration_stop_on_warning.xml": "99e035e009399c79abf57270937ba11c387aac3ca0aeab4ed48b8e11022794a25ff11221d55c7da9d974e7c6d6b26cb808606707ca079a12ea406063e8377ccf", - "vendor\/phpunit\/phpunit\/tests\/_files\/configuration_xinclude.xml": "9df4d87a715c8f25539ee6a4e1dd93e02eb62d62ecf247e6891b6d73b058e9526d3250e24eebb3a036d5b99bfaf98de2a0625e28c16aaa255d52fdf6aae36148", - "vendor\/phpunit\/phpunit\/tests\/_files\/expectedFileFormat.txt": "333e8076690ab04b7a0c567e8617d054a128659212213f7b4a6809130280ba93beb5655f8601a76f9f55c47dd6e3dfc67ff59f4088995c7b001cc69f8c0b6aca", - "vendor\/phpunit\/phpunit\/tests\/_files\/foo.xml": "b06a143f4025bfd24f84526b0179676e5dd0c7a9ec066863ba1def0c2abe3ad84f345fed13023f1381e388c1668a0924ac0dd402ba82f86395b9c00872d02cb3", - "vendor\/phpunit\/phpunit\/tests\/_files\/phpt-for-coverage.phpt": "777b1077871d4aa55ea58f84d2379ec8abf7f36fff688abb33e7b71d8d5ccd8902b1fd9eef8dab090b1ca2b803807c8c0d29936cbbc569eccd12dce647befb5b", - "vendor\/phpunit\/phpunit\/tests\/_files\/phpt-xfail.phpt": "a7cbec01e098145e6d9b16d9d094e177454ea276c9c6f596c1f28bbacd35d0c96e66c97765d50e9b9a70dbe83269f5cef3e397a62c81d28d91cbf2fe1d82bde1", - "vendor\/phpunit\/phpunit\/tests\/_files\/phpunit-example-extension\/phpunit.xml": "3968041d6ab21ca15dcd8b24b5d3f8fb4bd8aa98846a3a9aa09565c249cf174d1d43e6967f067adeeeedf8185fd9faae1c02d2e50f9272bdb452c24533cd4b36", - "vendor\/phpunit\/phpunit\/tests\/_files\/phpunit-example-extension\/tests\/OneTest.php": "e2a8c2ef34f63c3f9615611c67f735fefc9e125f19f5773597194f816e0580be814021b9ac9ec28df9c81715b90f3a0e55b9b3d3bbb19f2b6fefbb5b581fff4b", - "vendor\/phpunit\/phpunit\/tests\/_files\/phpunit-example-extension\/tools\/phpunit.d\/phpunit-example-extension-1.0.0.phar": "3ea2bac9669d9f27943fbc71bedf6aeab954f796225bc2d69f1a4cd2cc47716f716da1e123b404c236c9bd401783ebd0fe89a1b41de37058d7f4196d61e8c12b", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureAttributesAreSameButValuesAreNot.xml": "de4bd72dfc3a34fde27433829c108089505990a79676ecb0a13f7fd574291474e80b75a0317ca360732f0d803e860f304c93575ed0b4c5f274688f2fb1849ef9", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureExpected.xml": "d74970fb9a7bafeb587b5c8594d6451a6d1770ccc7e855d344171ff74471742fd8e15c1898839212f1c3fc4bf84bce3d051a8bc8504b7fcbd3bd893875734977", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureIgnoreTextNodes.xml": "dea857688cef722413b93e967ffb8cd5d291ade8d61de4533dfddc7c06b3cc921b1a9e6ce73db251e8fcbb9cb6709b5f0905faabea09d8c51470c3cf80b13403", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureIsSameButDataIsNot.xml": "65e9c29062083c67a1258e52af61e9016e397c047aa8f34823f3ae956820b920d982b75dde03ef10c22357f9e51a436a734dc6e07324901659fa3bcba8a9b1bd", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureWrongNumberOfAttributes.xml": "d4f9fbb45d2350b88bd83bdfd6382e3fbb534c42651145279018356aef05e3a0e187b4eb53e9a3752bf4242fd56a02604b783d63b90625e244c6850c2249621d", - "vendor\/phpunit\/phpunit\/tests\/_files\/structureWrongNumberOfNodes.xml": "8720206671f25f68d59e15989b7f1af5b09090c4d63cfb3f9a4f6205dfa04ecca0b28ff1b74a6787d0e800bebf6e625b873305dd215753d8a086bdd9eb8b1c86", - "vendor\/phpunit\/phpunit\/tests\/bootstrap.php": "94349641584a9f5ac09353fa6f23c20e939afd10da293e2e08f7bcca9c7ade70b806083fc3ff9da4eea4277aee5c5ad23d9e2ef3752c89a727f007ea75740ded", - "vendor\/psr\/cache\/CHANGELOG.md": "950474018b5fdbbf4d8c4c3db3be619ae7450402ed8aa49cf7a28f0d18af028bdb5c193865cadf83787aec721328c7c0d22d0831fd70bcb852b7eeaa953d88f5", - "vendor\/psr\/cache\/LICENSE.txt": "3c6929b0106867b92ce3e9d76306f35f560b9ecfd13157b5d47fad1dde2491325cec4a2223902d4e4830c238c08c25790a96905890983b1454689fa98fbbc6b0", - "vendor\/psr\/cache\/README.md": "1501ede0e82ff74778759750eeb67ed2f7db30d350e4861000c570dcb8f8de7b33b891b0f98e973240301ed2981cf707c787f602d4a7edac1cff58236f9d9f71", - "vendor\/psr\/cache\/composer.json": "b87eff61ef5c1d64e9691bf93f8d88af0fd858243f0828b0bea854133db352126b874cfc1d0d74e227db56025c7f753c8185019bc4118d655d1b241fc5e42a71", - "vendor\/psr\/cache\/src\/CacheException.php": "8d00175ac9f48fcdfd7006be353e98002fc1b79a937bf7c9550e808d22d5219dae130b520be5333d94c0190dc5e5a721177a361c7c58c002b4333c96d9131a87", - "vendor\/psr\/cache\/src\/CacheItemInterface.php": "56291e865a8cca53776a3eb964527cdfa29aaac48884d758b62a28f7e227808e1a1a29fcf1fc80616a83ac54f5bbf43027ed04d92681cf72cebe9987dff7427b", - "vendor\/psr\/cache\/src\/CacheItemPoolInterface.php": "111c41077a69670c959294e852dc49dafefdee3555efcfd5312eac577c1dc48c79dd63e1a57de05f812138f40c2be95b1d24255c8c1d553c774cca7d3064e1e5", - "vendor\/psr\/cache\/src\/InvalidArgumentException.php": "aaf36f33e8cadc5214465bdb2b8d5cfda9749065676369dc9e55bf18500d9fec3ede93e84939553267b6a5b376bc9b6bf6d80991b8cb7a39052bb070529f8575", - "vendor\/psr\/container\/.gitignore": "ac6d1b2d42e8d9132f487d8e0184f9ff2e4050071ab839aa4e2aba6a18dfdfa086e9a966c4893c57aeee55315c51cbeab50ab42c9c9072af9fc66032ca64e9a4", - "vendor\/psr\/container\/LICENSE": "6c50406157479fff7e75381f0735ae802821be1eb9bf00ce24b52f34e28044c9626b8843f7d10970fe4fcd965f730727ef498ae47ca392d108cc70b1faa19171", - "vendor\/psr\/container\/README.md": "8cbdd85587ab81befd0fc93b101404d8fe4d187ac1e3045d682bddffdd650245dc835d2027338446dc3560cde7b8ac658738b3239a61704f6becbe9f40ace954", - "vendor\/psr\/container\/composer.json": "7a6b63a587d26b3b12a65b23d6834e5c0749d1b3ef6c5295cf54166af2db20bb23dee609f6e94a9dd22cdbd39e847dd66ce4e3941a47aa86d17700357fe6ff5a", - "vendor\/psr\/container\/src\/ContainerExceptionInterface.php": "b4bf265ced6f1b2480d88b2e8f5c894fd71f7ea818461920ec025dbd085bf416588c422e0a6b1936dfd21016f1bc1339a29332789c5b0542ebb47606a4eccae4", - "vendor\/psr\/container\/src\/ContainerInterface.php": "cd9245ad6a6ec4575ed7661174ddc11f47ca83e7869cbad7e2f9967f5cbae3a1811393a32f43b8bd8544e23a93912847d27a0abdab969e73c727963444ec9990", - "vendor\/psr\/container\/src\/NotFoundExceptionInterface.php": "9cc7664fdd589b7efbdfeb726b0a412e72c835732617b4bf3a1e627785a8452e2cf873bf6fb60b539ddc0efd6802eca18a36ebdb4a05a16798fdf94d5c43d583", - "vendor\/psr\/http-factory\/LICENSE": "93e35d2d52b6d557959d57c62352b586032a791aba7df66eb33fb4560142f13366455eb9492a5499b2dee8ad7f5fc4090154c458a19def25661829e3c3bf8008", - "vendor\/psr\/http-factory\/README.md": "7fb24284fa53f27cafbbb0f645fbc160b8c82034e97367c781258b14bf8454909ff432b4994af396805b3fb27ed052d2f6b2d21331a511baf87dd4f158bce99a", - "vendor\/psr\/http-factory\/composer.json": "86c4f6bcbc05fa2b67e008b756585fe6f7fce176e2d31f07cdf4bac4d8cb2b8947a7e914bdff113839b3392b350da8a329f730d86f065b6c3114fa7b1968d0bc", - "vendor\/psr\/http-factory\/src\/RequestFactoryInterface.php": "4df5b7352402727425f560d68824668bcd7cba02e05cb38d3c703fcfd1b533b1428f24d3efa9e0e0a48d265d342e6c963c4db163b59d4e1e4c8b13e3b5c60e87", - "vendor\/psr\/http-factory\/src\/ResponseFactoryInterface.php": "f07c95ef461baa88c830f6431bc613153ade8725cf05cd372a94bab28ac17355d802795e2b6a5f33f842bd0b64d934731bc3f03685293de51ec2520a20f0011f", - "vendor\/psr\/http-factory\/src\/ServerRequestFactoryInterface.php": "bd92c91420660a6001f775e396511dcbefde447703655969f212d4c4f4f07cf1ed53ad0ecd82139a0c5a780f4f55813ab6d2ffb7751ff513207f56d74c2d1f65", - "vendor\/psr\/http-factory\/src\/StreamFactoryInterface.php": "860008213dbf608eab9b80ccdcd2afdf4b47883fb821f9231ea6f3df4442e27460df8992d81519ae9c241273483c7f37ecaefacea874b28e8e8094501eca240d", - "vendor\/psr\/http-factory\/src\/UploadedFileFactoryInterface.php": "5153fb3ae99a862acaa840761cc34c0e8a597a1e408c0205f5cfbb57050fcbbaa40b2ec4fd950e73a0aa5631fc96f45cfe06b2f66207090b01eb6dd155b270b5", - "vendor\/psr\/http-factory\/src\/UriFactoryInterface.php": "557569ddee17f6c917eb6e24714df3b0e8dddf61ea66a4005b2acea5141c00184cca05108cd23c9a6fef2fdd3cf9e37cfc3e1bc003d09a3ad7d4db37735bb565", - "vendor\/psr\/http-message\/CHANGELOG.md": "5567e49c016bd259491fd13a96e5b88629fe67ccaa0d75f7aa7c54096edd663fc743930eeade981a041cf7524d9f65104718c129fa36a200397d30c0e5d2c954", - "vendor\/psr\/http-message\/LICENSE": "22ef0ac33682fbed60a5274a5b25991308decbb45c6ed45fb3222cc045bb9e552fa7310b1ab6f38329b63f53a02c25e7bc5e955ad23c5bb2366b417563cb71de", - "vendor\/psr\/http-message\/README.md": "d3bb63df729c39d3deeb1682a432be6a29d17854556cc40bb379f04908d6d15626617d04b72105f8c4b884642816e32992df1e7d69a21418c723f773a2daec49", - "vendor\/psr\/http-message\/composer.json": "fc35faf06238d035127e87d7939c68873f1ffe1cb26b3be416599e0955cdda6733a49bedc0e62872a2cde3871d02588c5a72344dcf39ab162871e39e0c6ec08c", - "vendor\/psr\/http-message\/docs\/PSR7-Interfaces.md": "ea6198a9ad3383299d6a740fe8ca2f6c0b5d5f5db3f8e5049c95c7412a875a82d0f9853dcb9a0850e04c3ac68c4ce8a5ea14940977c50ad762a780b64fb72cac", - "vendor\/psr\/http-message\/docs\/PSR7-Usage.md": "3a97f77d4fa66fd5ae5f103500128bb9d8e71db27daba4e071b1666c42d621f7d9d23275eaaf14c460596fa63e866d5d39e0d09296f784fc7648e357612e1775", - "vendor\/psr\/http-message\/src\/MessageInterface.php": "4f79bec537e2292942190e49aaae0b40f6bfa34f84590179823b7690fc0bd54e1bf8a133ae489c62a9d61ae3214c045fb8ac3d6a0741957e571d92a1dee9c140", - "vendor\/psr\/http-message\/src\/RequestInterface.php": "ac7501c44e55bbb09f8ab8f505e4693ecef0a2fcfe6107912ad4d17220880ded8fde0978045aad2f2fbf8fdafbba0e5c9937b02b11c5e3e62297f9dbf5e509f7", - "vendor\/psr\/http-message\/src\/ResponseInterface.php": "da29fcb2eeb74435f17001fa63eef63cdf8e41cc6ea092b6a33e78980a4b9a718721c1bed2e5fd4c872fe2f5dff3a977c5b2b6caec1261f7c94c2aeca25dee6f", - "vendor\/psr\/http-message\/src\/ServerRequestInterface.php": "abda307387bcb77a17589b43b869ccfec229cdc8f6e14cdc46c2d6409ad040aac5db4555a99a742b16c3d8765c02e06a654b366d2033f636a627c38957770176", - "vendor\/psr\/http-message\/src\/StreamInterface.php": "78399f6d71d91d622c84e23464fa5384fd44f5ed5444f9735a1f394dc649c714c9a7cf619f0d0f6fa8cc7d9bc7b78f165710d024dde6345dbfdc6f0d5e72b395", - "vendor\/psr\/http-message\/src\/UploadedFileInterface.php": "57259dd5c951ed64b577bcb1c875d87c3e35c83abf0c1d9fd7c0e7f5a19426ab62070bf4a05c58531254b15b9240ece2e4a855080ac7ef151c251dd10a26f1cd", - "vendor\/psr\/http-message\/src\/UriInterface.php": "208b6c940b503c274a22f901a036ce03e490dfd1e5c525c0049167f76d20c544feb95364a73e038cc42a78b9d1f21f9d049b3a05a3219fd12623a8bd3d4e9113", - "vendor\/psr\/log\/LICENSE": "aa3ed007af06bdf453aa322e8ef221e6e7142b5d040f60b9a1c1ad8ee18c521da752fee25d480e404782a1745340312b05855d2bf5d0c15ec107a4374da296e2", - "vendor\/psr\/log\/Psr\/Log\/AbstractLogger.php": "917b095ff28cd9ce2cd6f7ce9be9fe20c3c97e3587a676c59e12cee17fd317d26272fde11af77f3073121a53f127884aea04979af28d6cb93cae1a3127adb5a4", - "vendor\/psr\/log\/Psr\/Log\/InvalidArgumentException.php": "a08891979bde9047c899fa5f8bf727ea5a1563a9269d29c8dceed817bbfdf7552892f9075a92c3e15f293b58072e5735c7d556d02d9e264abd6efbf48403168b", - "vendor\/psr\/log\/Psr\/Log\/LogLevel.php": "e4a27c1ceda4cadd5d0570579c94dc2041f626d439203f5a7f55b146aafedb2b340fa814ce9a3b6549b05af94d53ffc5a09dec835c50885590ff65ff11204d5f", - "vendor\/psr\/log\/Psr\/Log\/LoggerAwareInterface.php": "80c1c71e79a77c4e7368b82ebb8899daa106310ddb4f4b8c44b91ad0f11de8fa5574dc8bb865bbd0dbbb56bd4b14092467e5fa351ad21f1a7c0ae4b59590d326", - "vendor\/psr\/log\/Psr\/Log\/LoggerAwareTrait.php": "94b45eb3581ecbbcc4c86e65d278179aafe16a8309a0db22fdf9e6257674d4bf157ad06120e5d5f286ada6e5ade7607be6fc5d0b20a90aacf5707765bfbf1b99", - "vendor\/psr\/log\/Psr\/Log\/LoggerInterface.php": "cfa9e5c1d01eb6c4c41b45334e0aa1d049e586edf84858aec2a6c3e7ce11828c6c7013c17d883c590151644a9c7f665a9034ac7293c56bdac2fa9a2db7b033e5", - "vendor\/psr\/log\/Psr\/Log\/LoggerTrait.php": "c11f4db67d2497a5fdae0216161f7f8c9a524eaae80435f3b3de5bd732b1d8666d5b1ecc414e1a84e824d7c944da0f1f81461300fcd84d289c67156d66baf36a", - "vendor\/psr\/log\/Psr\/Log\/NullLogger.php": "27aa15bdabe1a2a88333aa4421edddc9977b29f4cef60eea7204ad4f8b32f0ce486c607e37d9197206face3d2609685ae57885a4856d2d5dfcfc82045a6305b6", - "vendor\/psr\/log\/Psr\/Log\/Test\/DummyTest.php": "f110be1a379d1487b934039bae7c930bdb92b6f2342e68d15072bd26d5d99e6dcb0e7afdfa7958dcc37326c979a8fb5d9eacb68ba498df7795a874da85fb362f", - "vendor\/psr\/log\/Psr\/Log\/Test\/LoggerInterfaceTest.php": "84bf25f5acdf293d20ab3dd25c45e67349ebd093bd5d9cba480c23478e27bf0e1898f13e089c1da03546b34aa64c53de39b3ff32d974c26196f8c3d7f48922ee", - "vendor\/psr\/log\/Psr\/Log\/Test\/TestLogger.php": "740483ba8c9bb543e62a35ad53b2542ecf1c001464b54cb2b382422ca4020276e6d2b7285ad41d1d82683a7515cba807b7e35adb6cafcb2433417a2ad0c354a1", - "vendor\/psr\/log\/README.md": "df9e7a77d8d689a8ba33eedb9dba91a2d8230ccd1da5bdec72f05af4eda124c4921858e46cccdc7bf5d41305374777253d6587ea6898a122f4cdb28c02995469", - "vendor\/psr\/log\/composer.json": "665ef4d0d1f704f1ae7f7c047b789d70b001c8541c7b8653acd299e586d2423cfaace18fad3c60a54026f59591fbe4a04d6e13f508866c08fcb12e2c7ffd3b58", - "vendor\/sebastian\/code-unit-reverse-lookup\/.gitignore": "4f5c7f12620e4a7f1aba35e8122f43abfac147d1564dd83eead63ad4276b65bd4e0584bd256a7d6cd36ae5096284077279eec562d824cec21c3f09988aa31125", - "vendor\/sebastian\/code-unit-reverse-lookup\/.php_cs": "5424bd86c102d5c0dadd818d9ed075d74a04e9f19c4ff5ed4a0525ce1d9dcebe8c3bb37e0dcdc36def83afdceed3a1160b6e203ec4743ea66146713941fdf5d2", - "vendor\/sebastian\/code-unit-reverse-lookup\/.travis.yml": "b8f3c904eb12df13d199121faf107db57a45f2f87e2ca2be2f4b06782611224112caa5da9ae0b9fedf5c5ac21eea2a238f081e931b7bcebda97d41fbea34f86e", - "vendor\/sebastian\/code-unit-reverse-lookup\/ChangeLog.md": "020b4e82027e9a116d5db86755d273f93d57a59345ebb3dd2dc806ac85729fe6516cea3641f39770908206d8776904781212e81656bdcda2ff74036f0a5df939", - "vendor\/sebastian\/code-unit-reverse-lookup\/LICENSE": "e8d66a955ba9ffcf05eb3414a1e633f8d0427a1defa57db325a8268a101a0a5e8b7ed18ac87a72ae6623bac014924dcb28fe1f0b2f46ba61c258f3373a762e12", - "vendor\/sebastian\/code-unit-reverse-lookup\/README.md": "588fe7605f9a006b11c02eef7d0e4634decc69485b700d3ade486631d094d8655bbadb008d437b17a32625ce7560a424953b3454c94dcd3ea96cd553843d35e8", - "vendor\/sebastian\/code-unit-reverse-lookup\/build.xml": "5cb135bd5168b91262d6a3b3d66e781af30f26935d48934dcf70aee58d1c5d69f0f58353824a0b80967c02f670329d1aef99f01aedb0ddf2d7227455f832518e", - "vendor\/sebastian\/code-unit-reverse-lookup\/composer.json": "bb7f0013252aae4737ba31eae71e134e67ecd8e05e42d0c1fef576aa57e4467654e5c7b65118100a2d5d29ba1e77f98b98a9716fb9cb1e5a0c6277fc605fba24", - "vendor\/sebastian\/code-unit-reverse-lookup\/phpunit.xml": "0cad011e05d468f00b2f5283833554fed4809583ddb850f00c99be83ace1bced3d4a692262fa1f283bfbc7b03b4563301733c9a0f5b0b4c2ef07ce66c02d514a", - "vendor\/sebastian\/code-unit-reverse-lookup\/src\/Wizard.php": "e9025f8b836a0656ae0963e68ac48fa5cdd2d09d085f8fb288e57d96f9a0e8753cf54b302d30ac17b26e3f5e2332a2b473b20dfc28ca1caa4f5435d76e057a8e", - "vendor\/sebastian\/code-unit-reverse-lookup\/tests\/WizardTest.php": "2702afb67487cd334363b426f71c85435d2f80827de3086f386d42eb762cdef743345d52f453cca2a83522f6dff090e91b0061c2ddb76527dbba51542e5e3054", - "vendor\/sebastian\/comparator\/.gitignore": "280d15195247407c572de5a4e246cf8c4d63359925a5516c7f6477dedf322b86de591c9ec7e573d2cb1ccb54e548fa1ec4cca6a5698f867a8e2590ee870d9849", - "vendor\/sebastian\/comparator\/.travis.yml": "768d474eaf56408370aa926ac0581a97d3b5fa7179b1bfd01ea72c43c1317b7e66dc603eafabc362bbdba2a81397c160c8cd540abc4daab3f21829e9f118b54c", - "vendor\/sebastian\/comparator\/LICENSE": "7c75f8613a53e19c05d9ec87c81afa4785b4cf0019ec18707a13cc631283faeb5d5c64f8b42a48c35363d3190e30e891418a6d8d4273a29449b30b5219c253a0", - "vendor\/sebastian\/comparator\/README.md": "051f5c23d2c01119edf9fbeac281b5831e5c36c264e2d7093cf74acc993d351b629e7d80be54a9acce599ad1a0daba0d71953643c10edc81ab900e8dc09c0694", - "vendor\/sebastian\/comparator\/build.xml": "d77ec43ff37fa529dba27a2b0e1583b4ef0a718c4293971ba73fe83877a12a0ceb433d81d37eab4f94b6bf5b6aac2480c19530a44c34cae48404aae5ab588d27", - "vendor\/sebastian\/comparator\/build\/travis-ci.xml": "ff2cfc24e45a8d4986477fd3b105cf245fb3552e434383d4217b26ef25aec15c8e7e77c0fa9e97bf2331caa8f5233d39e23d989d73585de5de0324e8f1c01153", - "vendor\/sebastian\/comparator\/composer.json": "ab478f5f32b6f3ebd1b099ca0e31d0fa7ea1222a5553870c3bc37a2a085c6f591003392f46941d995696f24de6d6d91ec50e33cd854e837c4db7a462bab75553", - "vendor\/sebastian\/comparator\/phpunit.xml.dist": "e305c0a2589269d1f9007897a06da3ee09b1ac7db11aefe73803347712bc4b410e6bb3ac180a62f43b8c9024934b588c78ab948a60a8c14a497281c59536ebd0", - "vendor\/sebastian\/comparator\/src\/ArrayComparator.php": "6e00c4020b90d7959ada56c2746729d6936432126156f6abecf157af0d80632cbda6b9e87b2218f5c723a9602286cfbd538a6bbe03be69363d9b9001bc9b8461", - "vendor\/sebastian\/comparator\/src\/Comparator.php": "1a0c3feac0f51cc489c245c9497faefb34dfbed92a3dca96e87117b074589b71c7aa0579a7791b0af262dcc93267b51d7329a93c452fb0f46a60455f2172d8a5", - "vendor\/sebastian\/comparator\/src\/ComparisonFailure.php": "b3c6bd5025e4cb1320fe301b6104010e4e6bc60eaac234c813de3e958d2b31f5664d1687a04940089c3fe6de898a6c35243ca456a9b71b8cd33cd93825368bd9", - "vendor\/sebastian\/comparator\/src\/DOMNodeComparator.php": "90c3a44695dac30a02dced7bd2fe8de2abfc2f6847013fdac3651cf208427b548d24eea2f756a1171e72eabe8b235b60764fc36d2dae7c256edb11a7301f8a21", - "vendor\/sebastian\/comparator\/src\/DateTimeComparator.php": "42a57d39ffb646ec8c021128a6c22357b86c2680d699dbdb5babb9dc29457b25543a4530fe762e9e2d7b442799d7fda23a8693fceede4249429d419237f0f951", - "vendor\/sebastian\/comparator\/src\/DoubleComparator.php": "009aa7d464820d2127b1ad57cb080cecd3e81d347136826e195a5c8286be2febf2d335069b1a52067ff6eb670cad6938415244940dce2716ee2f5dc7d17569b9", - "vendor\/sebastian\/comparator\/src\/ExceptionComparator.php": "71474d00ad682790f626b3bde0603a2a3da0b96de4e888247778e9d095c727150d5f8da7a38925a0197899980b1f96e3e08463b90536278ee68a3fa95468f8e2", - "vendor\/sebastian\/comparator\/src\/Factory.php": "66ec31c4e4f1e11b3fcfb25958652644007af8a47c41935dcce3db530484972aef647cffb06c3ac71b091cc4610da1ffb846e98ba24c5c9d4081a96bfa2a79e4", - "vendor\/sebastian\/comparator\/src\/MockObjectComparator.php": "127867398da27766a5f820aa321fb31bb744dba592e5866faf947c484b06925cb0d520e4ea4527272169dbd089fd4f56bdba6c00a731b48acfb58c24b6c09af8", - "vendor\/sebastian\/comparator\/src\/NumericComparator.php": "5c67a96cbf4e2e21683cb9e0ad21dcc2be951be1f8a8d282c61e3825cea0441fec1ac09e8d15cff8dd617bef2f53fff76510302cd3b6f53fdf101eea0a3cf946", - "vendor\/sebastian\/comparator\/src\/ObjectComparator.php": "6ed31a7a44813fa32a482a02460554a13dd90dfe639f838e7ab35dc5109093d21bb3954e823c967bf82eebd60cfdcc170a02d8e2268c14344bd8672dc29b85f8", - "vendor\/sebastian\/comparator\/src\/ResourceComparator.php": "9b1bb914dd008ec9d79061225ef2cf1f7c8fbbe9462e1773023c25617aba8b27bb60dfdc4bc989c822d874dc9042b34fd49c1d3a9fc9f51fb7d130eaefe7b6c4", - "vendor\/sebastian\/comparator\/src\/ScalarComparator.php": "5d433fced3c1ed40b06e3cb9f4fd2ae8ff5818cce300cf769c73840734dcdaf54b9b5fe2cafbc48dd8e2c235dbd736990ba4ff5461a9415a7e042523f98bb3cc", - "vendor\/sebastian\/comparator\/src\/SplObjectStorageComparator.php": "aab493373bd3c5ff02861ac2211e2f3fce7997dbe1cc36350efe085e5d1452fba02dbcbcf2427dab8678675021ad39ff0af444d4b014a220a43865196c34d248", - "vendor\/sebastian\/comparator\/src\/TypeComparator.php": "76f42de1635ba98894bff779bf52df2dc4304696613656b6d192d50c1e6928f37f1364dc2d45a91918689ab34becf5fd50eb12d2755224f53d3eb31e853efa18", - "vendor\/sebastian\/comparator\/tests\/ArrayComparatorTest.php": "5d7161097743ff0eab22ef352466dc6a942818c507a1a0a8b7d74bda1d1bea00e8cb0f18fea68b6d1393dba58687b70c0e7a954f138b24df26fd5935c52ee8e4", - "vendor\/sebastian\/comparator\/tests\/DOMNodeComparatorTest.php": "86c93e12ffdc152cef82cb241a1d28b43a1fe3d38f6e0e11a63f5b76a0ec08743b8378b1dc88919e2ece5731cbebc10aef68456f411c8d2d6be4102c122f2403", - "vendor\/sebastian\/comparator\/tests\/DateTimeComparatorTest.php": "33f84d8abc25c2fa0e27ba771f8c115b18b3cd622bf0f75bfaf8cbb1b9fdb3e85c63d1590823852e6280a53c27e1a83784dca160e7eb1ca716f91ec5950a85aa", - "vendor\/sebastian\/comparator\/tests\/DoubleComparatorTest.php": "1b75274ee5c78bbf3e94b4689169b0f42c88a05b333131d8c2506bda8c5b64167e43cb8c7d4464c28f97dfb015f6b30adc386a982e3e1124582acba24835ec35", - "vendor\/sebastian\/comparator\/tests\/ExceptionComparatorTest.php": "a3ff6913f1ff23631ba3fa1c4622f6a04c0462639f75724e3b0b5ea8d9da09e48284beb5f37902830af44338384ed3b619e8fdfc6e899381d2f70a8150e961a3", - "vendor\/sebastian\/comparator\/tests\/FactoryTest.php": "1e228952facb41aa71475a9af744ce1b81567ba9eac5573dc705c6351a87ffe23f188fa3cfef485c1904a6a5bbed45c025212933451211df29abb4a00fee65fb", - "vendor\/sebastian\/comparator\/tests\/MockObjectComparatorTest.php": "79bd6b7a730d421021ca84ae5b022de2e471348692d5eb69aceae12e4daffd172596a8110dfa21685b9f238bca8e6494abdb7acc862f620e8685eea0d43fe9ee", - "vendor\/sebastian\/comparator\/tests\/NumericComparatorTest.php": "d22b9915f39df529058ffbb3306824b57c036ec8a36738b47054ea2bbe9747c7da23fb41e99289562b28082c4df5b972482a822739ca3f67dcf78582e5e78918", - "vendor\/sebastian\/comparator\/tests\/ObjectComparatorTest.php": "8ef65018738b619447fee81df5b0f1a504821e9cb53a5fd878c15ab5845a97f02a407fe0e06aa9148be41ea75bd8072cc10cc1fb3d8c00b2873f34856e78d036", - "vendor\/sebastian\/comparator\/tests\/ResourceComparatorTest.php": "dd095eee3ceb1c11a85f44fd78600150400b7fad906969d8f0525a45c78b7d4cb78bbb199d1f23d02f8d144fc25b34ab2668ebd312eae497670f3c6f1dc6234a", - "vendor\/sebastian\/comparator\/tests\/ScalarComparatorTest.php": "9025c70b0bf733adc91a7acd14d1db91a1be59d765cdbf837bf903183378eb1b6bf289cc399c60458f2765e9eee87ab664ab5f2fc22c842fb26656a46eb33f58", - "vendor\/sebastian\/comparator\/tests\/SplObjectStorageComparatorTest.php": "a96dcc5729d6726a0681300ed7be5e89276aee8972cd7a71d076bb61f95f2c7e0c91d1cd2e0aeb850821449c3ed1caa41563d8dbd8c5629e7871358d3f9d0a16", - "vendor\/sebastian\/comparator\/tests\/TypeComparatorTest.php": "40ee282a9b303beb8f317ec189a369b3438597003872af8ab84fdaf7a10d852bffc796ffee7a3b3ac5e52fa8611353d5bbc485a1bc2279eeea616123c7f4dd17", - "vendor\/sebastian\/comparator\/tests\/_files\/Author.php": "9fe64ea936b7c993ef4c4eedde378b7f67e73188f9855a1570194f3a90c5a684e701a5ee98ae0d529c3e76493a812c284c6c51c606906b2f6cf081d6123e4457", - "vendor\/sebastian\/comparator\/tests\/_files\/Book.php": "a39789d519d60daee5189782cc7be7ca68d9c71227b9e684fe83131786cc094e823d499f9743ea92dcef30d2edbd884d494a80cebf9fc4c8d1ab6d1aa6463a58", - "vendor\/sebastian\/comparator\/tests\/_files\/ClassWithToString.php": "2cc1ede6dad2ae6f90b3c97b8bac63eb9bd75c96b7c8f94718db10229b4921e51cafa8e753725e30b5348d898746707f457bb5f6a5d3dd84b66def242fb38830", - "vendor\/sebastian\/comparator\/tests\/_files\/SampleClass.php": "225c0e579be62b9075a5eed622831c48fd165b4aa2420bcfc5bc5544e62f7fba0e90be7bf2b61463d851c635e3eb0f0a1e34b83ad9c14cc6cba51ba483a108a6", - "vendor\/sebastian\/comparator\/tests\/_files\/Struct.php": "4fbd4ad6db98db3a714815d74efa1c853e9771f43c5f8144ec0531abf135fd0c8d822680599684a49decafc2ca942c552a6ce44c781eda23b09388a28dc38c07", - "vendor\/sebastian\/comparator\/tests\/_files\/TestClass.php": "487f43d65b76c0f93ee83b942d950267ad4da0b9e775c3d50bee3fecc8cfdc187a55c9ec48945367bda959b3ef2bb9c3d99dc2254b0ddf003e47cd5cbad9fe36", - "vendor\/sebastian\/comparator\/tests\/_files\/TestClassComparator.php": "4d2d09f5896215eebe44d4afd4d25afb7a5c35b53e71de71bb04a5c334ccef805fd7bc783dd2116f60c3cf64eb9b4fbed00967601d65fe7a4c51f42a95d36f35", - "vendor\/sebastian\/comparator\/tests\/autoload.php": "d3cfe0f9bcb89faa35310d8d9ac61d66ca539a326a330611f870b8dc61bf5294e80dac6eea84e9d0ae45b4676a0fc766f085bc28ef7d744fd79ba95ae90ba3bf", - "vendor\/sebastian\/comparator\/tests\/bootstrap.php": "253dd9944a9fdfa425506f7593873381de7f476d1affc12b789f350b1a3615135280fe27a3cc33c94e33038c581f235cf2daa5c934ea3d10e4014a3b6803285f", - "vendor\/sebastian\/diff\/.gitignore": "4e636b3eb5daf2a77375b7d13a1897200cf0cf3270b75689cda61811b709bc1709edcf792489596660e45301f5f4c720f59aa7efacd9e9dd24c8e55ba0bd4a71", - "vendor\/sebastian\/diff\/.php_cs": "01ab515d5a74fa74b96828e8209fe8b034f15a351aef7ace9619e2223f4887d389cdb20adaec32bb303d52255953c2796dcf8fb26ed30dc988db22ba8d0f1945", - "vendor\/sebastian\/diff\/.travis.yml": "7dbcd83af2f1ae1bf7a33dab84bfdf667ddac362768ecb3ec5d51ca334d06622c9d5bffa7f41cae9e3933fa721700c04f7ac8765f77829367290038ae0fbcca5", - "vendor\/sebastian\/diff\/LICENSE": "6b76d23c3123a65ac241c096e0699343c5b4ec3fd7a9a293eefd07f0082937be24a2f1ad11de52d46586ec3cf1d95e140c397ae6bf8c09acc7343c229d26d97e", - "vendor\/sebastian\/diff\/README.md": "a2b85f806f4745b42317a690fc1ab52cdf6618d40d7de9aa249874ca0f17ebb977d656e4a1cd1191952cb52b923f2292bdda42f7d09eb24bb123ed76ab9d81b4", - "vendor\/sebastian\/diff\/build.xml": "1d931453ce221a2724a7932be87c4576aaa66c9c373469010a65e03eb743a0b42827c2ad460ae13a67412fb906824faf064a77c882e26c98ed702073548ca5db", - "vendor\/sebastian\/diff\/composer.json": "146015172a60b1bffb6857411f6c06dd645885a1175e9f517580e8c7c555640234acb3308287ee4c5722b19a24c231120194d1815ef30f2cba447034167b651d", - "vendor\/sebastian\/diff\/phpunit.xml": "947194b9c9779a996ce9ece23bf9a4a546c49a4c9394be261444809858117dc0b9d51597fbc3940c4bb63dac6e700e4983812d87851dbc111c30118bec72a1d0", - "vendor\/sebastian\/diff\/src\/Chunk.php": "2d0849ad0398ace8fdf928760c289b0809ddcd4741289373e9a8b0172ab1ad2eb248b59f8f688a94bbd6477876f37e215ba5731788619bc5ccf98789c9bc9dfb", - "vendor\/sebastian\/diff\/src\/Diff.php": "54d01bf34451dbbe571d54b4bc55ac64fb466390890c6d993d16324a526cf71354c1290a0d1498e4ccb8c0c35cfe5cb63a59cdd29239c8dee953bfd6196be1a0", - "vendor\/sebastian\/diff\/src\/Differ.php": "3247bf86a9dd154ba5e518f906f3cc727efdb33767673e5871f53d1d41d74195b616f857e7a11025a326e89cce6bb94f8567331e566d998518906cadcf30ce95", - "vendor\/sebastian\/diff\/src\/LCS\/LongestCommonSubsequence.php": "abf48c74e6fb8ad65cfd1d776e96dcb7bebc8483737f18394645a9302a74081aeef169a2aa9979b28e5c0f5a9d204b5ea44123d236969461587413eabe0c20a7", - "vendor\/sebastian\/diff\/src\/LCS\/MemoryEfficientLongestCommonSubsequenceImplementation.php": "2ebb8cc3b882ab0137778572f67697677739c39705164305e14a4780605971a344b3b810086f41feffa5dffffd15cb7bfd03fa03357c134bf8e1223964b1c80c", - "vendor\/sebastian\/diff\/src\/LCS\/TimeEfficientLongestCommonSubsequenceImplementation.php": "b1bb982c768ddebb0b2d8338ce6712407d78cf94a1a0e8c954e27d456c2b11f13ea4c30ef9f541d51634946d85115e99a5ebf8e42d55dc48dc7e0e5800e51caa", - "vendor\/sebastian\/diff\/src\/Line.php": "ff94a656111c34f5c4c12eeeb30a42d1ae2ea6dbdcd4131347b9b9388d331ae31d8f59e1b3f5fe70d434f32547072d57dd137e8bb20a7c9ddb3419d31e14d006", - "vendor\/sebastian\/diff\/src\/Parser.php": "6e1488865aa2271f2050263186b51fab76c48c6dda16e155274f9665f128771f9912e06de8b803ac9eeb6ebc102f7d2d3cb6ece7b7a36f0d6f365399f3bd4831", - "vendor\/sebastian\/diff\/tests\/ChunkTest.php": "d178a4c85fdedc9096de1941eece61e9a5a151c5b6881eb385bc8b6bde745dadff5492f7f62623cc8aa8232369b3d02699016b736a201b9c875657a8a81f6642", - "vendor\/sebastian\/diff\/tests\/DiffTest.php": "0aa27a2074f6e7336c260f6c038b8242852966f2f0f7e8a8620eccca44202ccd4a67a0c68d2046ba19add8ed660c52230ce0ada4c09bedf5a3a8cdef65a98cff", - "vendor\/sebastian\/diff\/tests\/DifferTest.php": "5e70bf395215a77881ed3e2df6f3def7d05b7cbe67f7e41d1bba8a043c13fc8ab914aabb1150438c4a3d6afa3fc6a6b176447671424f2cb7b3f716b785903dde", - "vendor\/sebastian\/diff\/tests\/LCS\/LongestCommonSubsequenceTest.php": "224099a5a4306af91a47e58ea7d36eddbc0a6c0a34686dd249edda615073888fbc62d4382b69041576452f1c352fbdcd850cd68f42084579bcd2bb3822651e09", - "vendor\/sebastian\/diff\/tests\/LCS\/MemoryEfficientImplementationTest.php": "2955dceb6bc4f8999dbd501ae1cb467765d4e9c138cb96b34548eb1305f55c35814dbf67f74b758d9896d150fe2cbd67f07fed2fd5cbbc95dc24fd80d31b0c04", - "vendor\/sebastian\/diff\/tests\/LCS\/TimeEfficientImplementationTest.php": "d922a27ff140e823a7e036bb3c90ee9723b18039f7748e8e322e06c7185f57d37f46d34b3166003c991d19433f0ac1b3f003242daa4ce1a18d39ef2fdb2659f8", - "vendor\/sebastian\/diff\/tests\/LineTest.php": "a74fe93e40a64c89df43bc5225447c62a5ab20a3794ae5519cd7aa6731cc5124e85397c7f7215fe40e6ddc54b9e04331b5b8b595662ef50c6b4df837833b1c6b", - "vendor\/sebastian\/diff\/tests\/ParserTest.php": "a37db6e831f2644d1ea2480c6ea48d17f1b79d57c46156d2ba5928c78a79b985f08d25c59069324a8e7a7bf6d90aa542daa314afd5ecb8110084608fdf6e3762", - "vendor\/sebastian\/diff\/tests\/fixtures\/patch.txt": "078cfcf3b6c4c4aabf062c54f264da956bb067f64045abe75f7349a359272b658680956f2ef10de572c4a3a2ff0b4adb2cfdb59aa8194f0fbb91f773c2036925", - "vendor\/sebastian\/diff\/tests\/fixtures\/patch2.txt": "da81a9ef0fddcc108e3c6457fd8ba42f90c6a5c012ca5b604eab7a70ce2cb03f7db9a52d760ca9f4c1c1e0c0ba913c5e052455fb02756d36333f4ec7583ed1c3", - "vendor\/sebastian\/environment\/.gitignore": "c6e74d06f678aa9b07741b17e9cb347f4e3a5c3b0254bc1536524de452a14d4aca57e14c5afb16462ee53dc6216dabca90f1377647a9eec983841b0acc6e6218", - "vendor\/sebastian\/environment\/.travis.yml": "efc97546d17b4418bd840a9adcea1bb7dbb4b51be66d7702c1e9bd81a2a2c6b02e0b52ac6a30fa5df17d7752a629dd1338ff75b6a0cf976b77aa1653748ae6f3", - "vendor\/sebastian\/environment\/LICENSE": "ede3c40713be9df638bf5d4fa9a840e7331615b587e122d7d07527b30988e6eb59943ffe07cb09c273da1272dbc369baa971520242074fc6e7999fda49b3c02a", - "vendor\/sebastian\/environment\/README.md": "c726316ad99eb2de018c33a6a5155ee6ac81a6250f54a18b0e690aad14e9bc252cb1fd740a563c11f73204fb917f65d61c7110e659b81c6c76ea1855c1b0bcda", - "vendor\/sebastian\/environment\/build.xml": "3e1c2dc9217fac1f14705be3d76966a1b2a1c88b56efce74784dbc024d91678c1a6ec074326278623178371a7c360c0133025c0cc578bf0763100aa098ecf346", - "vendor\/sebastian\/environment\/composer.json": "4f497272466e6809f3dcbd15c9ef9b034f14090a5f417d737d1ee22b61abf2df33a013e47a1bff4134b1f1a61359001eb13801b4cde399bde89e136c3452ae6c", - "vendor\/sebastian\/environment\/phpunit.xml": "feb5a094b716e1d72f896d51add7669693a84959dfb2c4235287148f49a959eeb8bfe9845d26c20b0229e33d059c45778bbd7beaf5b7ecbdcf5203ca9b6ba0b1", - "vendor\/sebastian\/environment\/src\/Console.php": "5b33cd1ce8d94f45ace6e224dcf2e84271b5e2e8e59022f3a6a136c1100aff068050717a0ee67ab8de5147b4c5045847b1dfed2fb0bae2f3429394ab597fae30", - "vendor\/sebastian\/environment\/src\/Runtime.php": "33937888cfed3ae964e7400b22f3ef4490278b27d2d10b128645b6fe12d7252f4557c37384f4d29349e1d1d6307b42a8566eaec4ccde1529699e8ced7233b8a6", - "vendor\/sebastian\/environment\/tests\/ConsoleTest.php": "14ff76fc456ca8078fab6dd9e182c72ae660fdf36d11523632c1cda69c3d1c8096e904d0a5323c8f3c34ab722b38fd87a8e94a0e80c5e8e8b74b868a5a52f65a", - "vendor\/sebastian\/environment\/tests\/RuntimeTest.php": "4c20acc9edc7f50223e917caeeeba2bde026a83e8fc6d5373a96e2a4db43310899aa69063346e10f3e5a96ad403ef1f8403ac1967f32dbe979c900ab9df412d5", - "vendor\/sebastian\/exporter\/.gitignore": "7d6549d89864e9e1bea932f5624fd47df94594cc7d9cbf14ee18e217d63b839e8deba49024a4e6b899f906b58759540b29ac4dcb13af491a2a38477be4190c9b", - "vendor\/sebastian\/exporter\/.travis.yml": "bae920bad5d890a1dfd27e072ca2a79f93c37938ba6434ca932ff6aea90a31d6d47544ba08f573c6e91911740016270c25fa67c5ce58f7a88b3ae8804915cb60", - "vendor\/sebastian\/exporter\/LICENSE": "87bf82bc2bd0d18f539e0727c37426171c31088cae9ef0654d8440b2a50673838a747917f91383545094c9f32b2c37ef066bdf490e2e16c6a809327c83701304", - "vendor\/sebastian\/exporter\/README.md": "c51abae534e3ecf523cc900b8248544055019f4ff795a1549e0fa9152e844ed853a1203693f2d0f38557c6b09ba1cfb43eeac5eadf663114a9b54c4eb8e74759", - "vendor\/sebastian\/exporter\/build.xml": "96f0dae89b3bd6f08afb67166fcfae27174347b5d5a4bf985c105a3a90432aa3e9876a5af78b41260f04e90e0ad93b9100552f65c1892f32056c11d8b38699a7", - "vendor\/sebastian\/exporter\/composer.json": "f26123a19087506ea6296c401d8b11a0fec837309c7cf96f8016b5f31e02021266241fe2579d81a8b9e6d6df56cae2c5907e6bdfe1745356176ac4b0489e5dda", - "vendor\/sebastian\/exporter\/phpunit.xml.dist": "5966f50870168078389694fe492c453f44d668eba178392f5d027175ce0955b7aa74c59a069fda9ae014712ff9384a9f2ac4d821733f6721b2c9178ee46150e2", - "vendor\/sebastian\/exporter\/src\/Exporter.php": "c78025d338eb4cc8fe2dba79cd06a2fa0bdf890125be258cce7db85d47312fa5558134ea1efad796f07f77a16a7ecf11959c3c3234750dfd4c868e2bb01bf9ca", - "vendor\/sebastian\/exporter\/tests\/ExporterTest.php": "ce07dce7b88a3ddc13a3dde0343b6ac8f8d7d79d9aaf75a39eaeccc91dc53fb9814bdeb7aeab7104d4df401740c6e3e980bb101494cebb10885f9b15945eeeca", - "vendor\/sebastian\/global-state\/.gitignore": "7068945835668deef570cf13b4314335d53401fefa831e5ac18ddc2eab00afed0acac8b276c95598b4d5e35914e347ad5e1d893c962290dc2441f6bdc8506f74", - "vendor\/sebastian\/global-state\/.travis.yml": "54d07878e7b8aa8c9e176e2343cfc0a6fd618e12c04015af6bb697aa528ef9e6dc265333055d66c013afd95abea3c014cbf28e78aa61a59cda7c10ba886b6fa8", - "vendor\/sebastian\/global-state\/LICENSE": "ba3994dc3314b06d67bf792dbf675d968619216f2ddc7448b48822509e7ebe01c3877e800e172ab34a9e9ce95c395d81b38d8fb165fbe474174d8d9daf0cd9a6", - "vendor\/sebastian\/global-state\/README.md": "c74f4c2d79908ab1bd7ff78f28f3202b219a67378bae6a81bd76b3704d97918600daa7fdd77289885dc013217347a6e4c813a080562ee4222995c0b40810e156", - "vendor\/sebastian\/global-state\/build.xml": "32c40d2dcd023186f571e754b832e75fbd2ddd1e7b2d5ea651713f2c1e8abcc391b8b14b794fd6d9e5bc135ca624c65f2df6ec35535af91f5b216f363f137a5b", - "vendor\/sebastian\/global-state\/composer.json": "f1defe527ee293347a0faeda06f4c0592144ae7351624a3f16b6450441e8a4e580a9844e4a8af6fa3334a106f034500602a7f817272e4f6e1e0a77427cdf6417", - "vendor\/sebastian\/global-state\/phpunit.xml.dist": "40a1fc1915af1a3acfbb75c2a8d01227433ed520cfb2fbcbbc6c0fb95095e33883c8fe5db440578153d29bba4bc0d7f225b54c402f365067d5fef88043ba4163", - "vendor\/sebastian\/global-state\/src\/Blacklist.php": "a739b92fa94af345b0157db0664578cbd13e11c484d2526718b2a38b4ffce69ad36460f09aa5962e759074f53a962aca4f9ff14907e8947e0223b653aecad6cf", - "vendor\/sebastian\/global-state\/src\/CodeExporter.php": "ada528872233caef78d775a069e8a56b8ff9844d4d93900e1d62ef91edcd5eff64c24cce516afca334c85ad926dbdf243282ae2ce0878ae4c0e8807725383290", - "vendor\/sebastian\/global-state\/src\/Exception.php": "83f5c7baf01ae3766337928def22609048510718ca7e4177d0df88984e97911b9347b0f8c409ede5cbc572511c66f1d620ade7e45b0cfaa8e3cce620a80abedf", - "vendor\/sebastian\/global-state\/src\/Restorer.php": "a515139ffc489dc23e34a3ff1007fd825c1b386d8e841c4440be7b6bd42dcb4a9b716a81e47ec70b237c2973543e004bd47fce6e646a036ef5d9c927b3eadabd", - "vendor\/sebastian\/global-state\/src\/RuntimeException.php": "da7200ae97af0b48159cb0df476d5bd3c876a8f890028a93e20641e8bde5c58a1e8caad784e81f6fab89938d05db75005a280eaee0eb3ac90c770d1a72ed3029", - "vendor\/sebastian\/global-state\/src\/Snapshot.php": "6d0398f0dbaaedb40eb5fd717f1bbbe8b32cdacc9fda8a05f842bf299190c6ace610a0f6d5b8823bd831934f4ed9f6a43c288b85aa993063dd37b461dc289702", - "vendor\/sebastian\/global-state\/tests\/BlacklistTest.php": "39acd41fbf7e1fba787b5210a16c4a5d9fb325190165813cfbfbbed63ec6ca3c678740b1cde7fbc7eefba822c22f7f74e1c1d9c3eede45d8fb064e0a18b0c5e8", - "vendor\/sebastian\/global-state\/tests\/SnapshotTest.php": "566bbb410d61d831966f3e907d31d39011eade206032a30ecfc7c9c00d3ec6e8ffdd578e039bfb4be928b7ac6601cbdede16c7bd12ca76ac7d6d6f2bedbcbada", - "vendor\/sebastian\/global-state\/tests\/_fixture\/BlacklistedChildClass.php": "5c9e3c8528b257fd6834f425bddd294558c23490adf9e39e8e8995efd2bb3f49bf95eeb6c1b259d8499528c5c5023f820156d458580e65ac5889967966387fb0", - "vendor\/sebastian\/global-state\/tests\/_fixture\/BlacklistedClass.php": "decd95f2db090da33ce0adc40b6386ad1001957876aa1b35942ad0bbaf5132fd5ed980be2179f2aaccb116255855e2eadacf2c2f9eb6d9fdd9d709a1b64bbac0", - "vendor\/sebastian\/global-state\/tests\/_fixture\/BlacklistedImplementor.php": "1eac423020e8f105f7825d7c6d1a069ae1c6c4459d7e30811306ecafa0b4d78cc014bff8d2eefc12a3e0648e14d57efc508b8d0b97ea816095259854ded197c3", - "vendor\/sebastian\/global-state\/tests\/_fixture\/BlacklistedInterface.php": "adc241e4f2bed7e544a4f90bc4f20004662fb8fdf46295f708db7ebb7d0dca30d333f5843b1bc426a759c00daaa3b0af7c38a37893c1815f709cdce11c9dcd80", - "vendor\/sebastian\/global-state\/tests\/_fixture\/SnapshotClass.php": "c50f5aa9c7448693de1f493afb93928c1b5ca298f6458eb28fdbb4dbaf8a011286972953b40437f1e27826db0ec43581345a16c6effbb02334f31db07e2cd68b", - "vendor\/sebastian\/global-state\/tests\/_fixture\/SnapshotDomDocument.php": "f56e52113bb0727eda49679628c4eac8e41b813f79a04c7f3e2b2f9cc581c2c974f0384d3a979459c7d7cc240fa3d9f3108892731623d116548836c108d4a525", - "vendor\/sebastian\/global-state\/tests\/_fixture\/SnapshotFunctions.php": "dc84281c2c287e574e02e1bbb1b02156c5b72f35f3e528ba52dd97cf91f8c141a7cc5d87337a07ff969a89f36caf17733f2521887c7b9c668070f3ea459da249", - "vendor\/sebastian\/global-state\/tests\/_fixture\/SnapshotTrait.php": "1ad1f16446b0052c84e6ec78550c738bc97113b5f29073f7624bb90aff61e15bc625888b5babf41baf8d4ac88c82fd8b2c43aaa71c0084e0d14b955d41efb772", - "vendor\/sebastian\/object-enumerator\/.gitignore": "72d10ecf94d9d39f74b25e8d9e8944e638496b0c8fd307315ff4b23441f9a70e80bb45590797780319cc5904587ac599d1e4e66dd5f7a3919710c57f25330f78", - "vendor\/sebastian\/object-enumerator\/.php_cs": "5424bd86c102d5c0dadd818d9ed075d74a04e9f19c4ff5ed4a0525ce1d9dcebe8c3bb37e0dcdc36def83afdceed3a1160b6e203ec4743ea66146713941fdf5d2", - "vendor\/sebastian\/object-enumerator\/.travis.yml": "38a9aabbc30bf0c8b5d39d67d176f2e891a8de5d23e7ab6c35a592291d0a8cae99b64be06d2624065bb24cd63184ab8e87e7ba91e1d68fdaefd3357b357375b2", - "vendor\/sebastian\/object-enumerator\/ChangeLog.md": "676b4bd30d063456be95bce89c4336b9abbe31351f8414339088815ad9621f1295a71e1221d9ee42639ff08232b7f98dfd78895b6de0eae8a2d6541080677d6c", - "vendor\/sebastian\/object-enumerator\/LICENSE": "662ad878a95e53f58fbe2273c7f55b6fa40ffa32db106bb7ab4e767e0a119c961eb8ddcaa9d42d5627856196ae83b72e842eafd2e512b03bb59292cb0f7391f2", - "vendor\/sebastian\/object-enumerator\/README.md": "a9ca8f819110d3aa370414d1e8b2b3be21526bcc54e268141945880a4b302e09c1a1b5f33e81956930c9b6ba70f4f01ef7d611b5e53787407d7b0a68c94e733d", - "vendor\/sebastian\/object-enumerator\/build.xml": "79c2f334a59d053034698181670cb3c249a6ff25cbecf3f32ba19343605cdfd54cc7511a1ca6c3aca6e940c7f90c5869ee262213e1a2f5186488aa805d187e27", - "vendor\/sebastian\/object-enumerator\/composer.json": "d7519691a08595df5ad6b6040f4d73c84151e434ceca4fcd6f36a5ea4dcc537a35f75a50ba218afd2712b95695d56eb1f1447f64793a827e67fd689e9fd5b85e", - "vendor\/sebastian\/object-enumerator\/phpunit.xml": "b94007c07b0a914b83dae278cdfd68085f3e632af1c3a53c59a4cc8cd77c6fe9faf3d580f8e016f2441a8873559a80c5f105e3c27d1f926c8d48c2658ba69ff1", - "vendor\/sebastian\/object-enumerator\/src\/Enumerator.php": "a54a460094942d818d4b5a6a149d8e2160e18386d2ae2001db2e5c25fe29e2795c39a860bca6ec302db98199bb1706a6405db38424c9be33f6b7b3518d0399d6", - "vendor\/sebastian\/object-enumerator\/src\/Exception.php": "1ba035cbdb0f0d43fabbfbcac4837b82088c6956d6fa3c95bf4f37a720d36ba971995e4ecfffc760af221d8e986d52a1b16cdf08ff4424ee8cfbfc4e26705115", - "vendor\/sebastian\/object-enumerator\/src\/InvalidArgumentException.php": "1a4018cd0d275951604f3a0751b1f1a027f6ebd6f79b414a9762cc49896d7a593c647643852575bc31ff1c0776f59ae6fd806e14304f12b0273662782af1d2bd", - "vendor\/sebastian\/object-enumerator\/tests\/EnumeratorTest.php": "656848bf27adf24a9a96862b9edb12a94af8d0b5cad98f7bf2f45547ad426c3c63e0dd2e3f6bca09f2d919134af5cdd79877402d5f2b0975082e79188bee28b5", - "vendor\/sebastian\/object-enumerator\/tests\/Fixtures\/ExceptionThrower.php": "ef8f39df3fc34834208ba1f1ea8c311121741785bb17b9cf6bf0d465561502cc03b55a036ca318f7223cad6a228928fce675d8950b3dc13ecc9ca6584a5fa9f9", - "vendor\/sebastian\/recursion-context\/.gitignore": "7d6549d89864e9e1bea932f5624fd47df94594cc7d9cbf14ee18e217d63b839e8deba49024a4e6b899f906b58759540b29ac4dcb13af491a2a38477be4190c9b", - "vendor\/sebastian\/recursion-context\/.travis.yml": "21550fc30458138f6ec07654d3e985f91bebc2cd98650135176673a6d8523bd31abd8dae9326b0a94310aac6ead0a18dcef594a3e0da4b11654a350fbe03cf76", - "vendor\/sebastian\/recursion-context\/LICENSE": "83de28f00d6a95b2b298100680ad8bcc7325aea1086bf12e622cb9fab31a805acd03f46c2106f0511164d55021f6b5ef8aa63b436a61ab6b02cc71797aaccc14", - "vendor\/sebastian\/recursion-context\/README.md": "6a74dcde4a732f3287f533547ed2d626a9f89af20bf1e14661b842416d7315460296d4c37a6ecf4a1b26b69eeb7fb740fabb67f1fcff77894a4dd4fe25281429", - "vendor\/sebastian\/recursion-context\/build.xml": "ac53ef273699435bfaeff4af070724b6c1b75d24367f2513cb5cf0a12349483e0919ec50ef343f6b431bb5bc77e8b0e01e6420e19d6c98fc638c00505e095156", - "vendor\/sebastian\/recursion-context\/composer.json": "26a9ee5adb3a4bb7720d945b51d1a71c7ff84e4a161a2cfe2e57d9add67bc79a3dc7eb34095267507a17076382db96375c8e50c480fb08e607092e3939971efa", - "vendor\/sebastian\/recursion-context\/phpunit.xml.dist": "e5f316b16d4bcbc9be0dcdfbdac9c16966db35696fd2780792a01204d4bf3d729937baa202887e764a8930283054d02cdf9427c15e86895e0aac9cfc5aba6903", - "vendor\/sebastian\/recursion-context\/src\/Context.php": "91f773c6d4ac656e6d44d34fce4ef2d6632d9115892055e0e5b848f113c22a2558b18ea743edc7c9ad5c54fb1068f6baba3fa6182815dba3993e8c58078bfdb8", - "vendor\/sebastian\/recursion-context\/src\/Exception.php": "b5758e7e3ddb42db9f60db14666e4932b2960ebc1a956f58781cfd6b5bfeaaadfbee75d3a15282fbeca17f460d52bfde3a9e2c79c2aeb39a77da65978f3aea7f", - "vendor\/sebastian\/recursion-context\/src\/InvalidArgumentException.php": "a54c31905ed84efdf94d30f2209f23ec049ba15272c5613b516193730503e3917200c4d262a5dc738b08bbf77522f2ad30998b20f7557af468f46750310c6b94", - "vendor\/sebastian\/recursion-context\/tests\/ContextTest.php": "4d76de6df739c45eca3750db42841dd0ea441677d7fdecc45aa845d728ea03bc6684d057d40b9ed2d2874c564d176ecf35c9167400a67e3abbf2965ecd139320", - "vendor\/sebastian\/resource-operations\/.gitignore": "34a95b9d47031af6622bff6f2e8b30d92179f3b67a3e5b4d9cb2bea10f363ee99eb598f65640edce18f46b19289fcd53d7791c2d7c3ab9db61124e53e51ca541", - "vendor\/sebastian\/resource-operations\/LICENSE": "ce9f26d28a994d80e9befde43b5eae7c0703062ec96ca089e9376d0b30c8aa6b604d19c8300c5281d38c55a4bbb8ad107183ccf73a66eac43fa3bf63b451ea46", - "vendor\/sebastian\/resource-operations\/README.md": "fffa6a00cf4afe8b498a867c941a654cbc313fc6f9ef33b675cee5187537d0866be2065bc57c12c6d409ae76ca4dec471733d79d1757b0beb9fee03226036424", - "vendor\/sebastian\/resource-operations\/build.xml": "a6cc2e9a65444f8a15e21b86091406eba4cd69fa498f8c3a1be2f5e594a226af15b4c2fac8f39bfae6a2fdd7e2832b223d9fe64a69405b129affc59bd00ed92f", - "vendor\/sebastian\/resource-operations\/build\/generate.php": "4975db0477e225263c386d65c68989bcae9c0c0247086f42bce1f8b2a341b8f7a3a34e3b64f93d143e696df798c5c339b6bad8dfdecd8def2db42095173212db", - "vendor\/sebastian\/resource-operations\/composer.json": "1a55924551303e5a180331523d368b4bce6ebe2de6003e641377f70a7d8f28672c896790dcf4e1741823814eeae2ac5a52fb18489d1d4394f4cd094d700e2b13", - "vendor\/sebastian\/resource-operations\/src\/ResourceOperations.php": "2e18dcc1c81516a67d9200b41d856eec578ae90b33aedd86f095246dea7f3fdb42f4263f1fbac38604b12afdbf4fa066ddaa9778f6daf7112fc7f3aad22a71e3", - "vendor\/sebastian\/version\/.gitattributes": "66ca641a348a43ff13dc52eb690674319332d7eef2fc3dd03a3e1dad66c6375a2c6146e964591dd557d880cf89bedb10c4dd188b43582de7e96108028a541f54", - "vendor\/sebastian\/version\/.gitignore": "7351dc7ea7fe9c65b551b0933009acbff97b69a050b6f0e85b5c2472ee94e0f41bc0a0a8afe52917433a475b1aa6e95b8ca2176ee2dfd5edfaf2c64d780f2da7", - "vendor\/sebastian\/version\/.php_cs": "b757a08f3c7e9fae5e912e732d6633ed239de698f14b7ebdf0265e1f412966e2ae97bdb73507f31e3fd815f2b9746f6d25e95b310baa9c8f2a1b3f0e83842da6", - "vendor\/sebastian\/version\/LICENSE": "d41768ca215637dd37cd969f51b2292db65966189686e3386f84fd4b34516d0d53f6d502cc141cc38c25bf6d7a876101a24cdae7d9ab515ce778194efa4e8dca", - "vendor\/sebastian\/version\/README.md": "2c1b208941e665ce23fbb055c823cb7fcd9703d9678044530e8edf2d45cdebb78860a40f13c2518d36a4e0f516da49607a03d333eba73aa1e8303a70f351f7c7", - "vendor\/sebastian\/version\/composer.json": "900a5272038bd5f87f4cf4857224e49b750b29a2cf1653b7b0c8ff7d2b7baec85564ff6ed768d34454fe33c85fa82aa48a459e9951016f91d3158bde97c6f17f", - "vendor\/sebastian\/version\/src\/Version.php": "96f16622f467d03933d947a9acb04c3c3aaab403bb7c699c57a13e7fee33189b5213c4b3f012d7128c6dce35b20f09fffe34c93b9eb916809087138454489281", - "vendor\/symfony\/console\/Application.php": "bb2449878ba52ef58f92a2adf1af3615de94955b0ff59767548b33f502ae51724fc7071b0511485f845094e435c33134d5a7b433451aa3d8cb539e9b8c7384f2", - "vendor\/symfony\/console\/CHANGELOG.md": "0fe7bed7df43838c38107d0828deb67c2962a97b651167e2b2f1e605a566ebe324c2107f9fe119b8ae3c7da3103af910f4e802f92abeceaacef769752911de55", - "vendor\/symfony\/console\/Command\/Command.php": "febec5812d148ba63b2ff562ad35a1c873976b616a37c893700769ac7c1c71ed571e35aa4b73b94c12ad82c9e574d181e14aec8bfdf72e6320852cf91232f2ac", - "vendor\/symfony\/console\/Command\/HelpCommand.php": "e7eda3e3a21296d0b0c3245ed93fbe23fe90503b4b3a9def4b5f6e23582e9cbbf3caaa02ad8525cb9121d31980e3c84515465f0d9f275168f756d8d40ece0cc0", - "vendor\/symfony\/console\/Command\/ListCommand.php": "191ebcdf1574a5347343dc8e6e52dec2bc456f8802c98170cb95e906d3231edab732663f151cbddc5ecb533fedacfdbe01d23d61500e41467ed41ed3bbfede7f", - "vendor\/symfony\/console\/Command\/LockableTrait.php": "cbcd2f6b7b184bba971aff150d78ed8428079b09b2a8382527f8a1acfea76de1c62437bab12a92689d1ed0e93dc6c5e9da44f7b97d3a20c2bf565bebce7ca148", - "vendor\/symfony\/console\/CommandLoader\/CommandLoaderInterface.php": "9dbbf0894c39ec80831c8bcb4f6e7292dc22a2dbbf776d1c46355f121bb4fd0caed8bcf66b1cfe647126b81c768b4d61911be26e7be8d86d6f58edb1e6d8d1b9", - "vendor\/symfony\/console\/CommandLoader\/ContainerCommandLoader.php": "73c25419329ea5b0a933fb867ae073e0081f459c866b96c2ff6d0e8afa6c3b12740a97b419444a93191ccc77945bc8e853392d14d0ec666bb5e0fc94ed08e144", - "vendor\/symfony\/console\/CommandLoader\/FactoryCommandLoader.php": "a3691f4ac683e564b4e44551696402d1bbf46c5078491aeba61bfbe7437e55708513aa956f1d296f9ec51e9ef7898355cc3e99193acc00c5de71029aa30a9205", - "vendor\/symfony\/console\/ConsoleEvents.php": "5d986eafe877c519fc9efb6cfc5cf3e3f0d8681d8c03ae305ed158a91a4fba8e26fa5f357edf8c4219ec3b34456508e5f080d1ba85b936550b72e9aa064fdb88", - "vendor\/symfony\/console\/DependencyInjection\/AddConsoleCommandPass.php": "9b533c40e763db324d6d1b8d3ba6769d72811c47c9e831b0fd82579b9fafe6cf561fe617b32e75a9cb4b53c68a2ce124e70c23fd3faa28a2652daafe7b82d379", - "vendor\/symfony\/console\/Descriptor\/ApplicationDescription.php": "5d1c6bbf28c69cd9a0845c3e0b547e5a8ee762d171f70aa07e870654fe97d8212acecc612956e9c80ac98da27ec01a2b5c05a860d05260d2d45e7c1293da2a22", - "vendor\/symfony\/console\/Descriptor\/Descriptor.php": "3d71e136b00f3d8c8f75a436c47ef3c387292ad42168bde84dec640f05a661dceabe78140ac61b388927d26b357440caf370cf670cebcdeaee4a91858314dc8e", - "vendor\/symfony\/console\/Descriptor\/DescriptorInterface.php": "a30a512a981c7a446521567e29ed121d630a12edef96f427ceccc3a89c9919bd06146f72a0f0e74df954dcbdce80ca3fa1e819707530eff1f219f1d3136c86a3", - "vendor\/symfony\/console\/Descriptor\/JsonDescriptor.php": "2fdf72a4d5bd7a20e37dbb4cd1705725b7ae8eaeebd93ff02b22c98212a988296120c541229b37fda5bf2cb3ba3d105d9a24e2fc8f37c80fd658996d57438e40", - "vendor\/symfony\/console\/Descriptor\/MarkdownDescriptor.php": "7789453812823f3deb3afd1ce0a48795a3179ffa40129471c576b6b0e0c92cdb15d2b8b440d0f47294a267e11d14757748797478725608401f8d6430063d0cd6", - "vendor\/symfony\/console\/Descriptor\/TextDescriptor.php": "59a1ae1b529db47fb1042a1b6f9a6bd3e793c7b9f21c62e719f0592b7bd9e3219e8067e4cb4f6d1691aae393319f9606203e823f29e043b2b673b3c5f284aae4", - "vendor\/symfony\/console\/Descriptor\/XmlDescriptor.php": "0adaf0443fa1939d36e0dc4eefb1e1f85448bf2a47248933152f780d70516c1f8d3d4d3381597f7c68463c0b8212eb6995cec37f79b1344ce20d688f9684d7a3", - "vendor\/symfony\/console\/Event\/ConsoleCommandEvent.php": "cae0afe5f8994fa2eb3be9d7f73bd05d88181cecdcc427b24345fd4a2fe582fa030dcec478885050a0f99881c9528e59f2afed84559ce0f6c8e425eee64d4407", - "vendor\/symfony\/console\/Event\/ConsoleErrorEvent.php": "b3b37777365aef7c518b0c9bec20f962b22ed173410ceb866dab549544cd9084a5028a7277d178db94fb47c4d269a91aaf6d3b4426881b1e7594b8280e65a547", - "vendor\/symfony\/console\/Event\/ConsoleEvent.php": "04dd3b57f09f9de4e8cd1331211fe84508b3c9da15c9a963cb270e4861decf8f409711bb5470a1be10f8fc604f2c5c4ae8957b3a2d25566583621cd7f4a63d16", - "vendor\/symfony\/console\/Event\/ConsoleTerminateEvent.php": "a1b623222c8db33e1df18e53d6cc8425be9e10ee90756b9de7fa63d05845c2e0fed1f61d2c91df0237745f296d53e78cfaa5a799f22b788316af6bf7dd055825", - "vendor\/symfony\/console\/EventListener\/ErrorListener.php": "724f33e3dc68fafb3b60159d6d186fcc8223675204326afc01943beb70736eb5d823712452e7bad26e63c99903341e82e24753dce895c1da09660f970a5d4e34", - "vendor\/symfony\/console\/Exception\/CommandNotFoundException.php": "b6720584be75a9e8ddb4084e82bcd4bd0241679d4457a0f67370c429db5a7baff07a04fc789b5e968dd2c5b99525b50788aef83d469e3515aa19bb343506f291", - "vendor\/symfony\/console\/Exception\/ExceptionInterface.php": "ea4e6b84b647160a33257cf8fb131b27ac46b63a4874ee740aa1dea4a906734e790bcccd351a397cd1d91f1c9b1e4adb152dcb01ec74cdc4ef46a21294bf2678", - "vendor\/symfony\/console\/Exception\/InvalidArgumentException.php": "5d717a6d5c4465569b33be0f153c1cfc510aca2a59dffcfd17dbe10b9e4c7cc8076342d8e6a661cdc9dbd28a639268a77b0ffc6ade76ecde067623296ef8bdc4", - "vendor\/symfony\/console\/Exception\/InvalidOptionException.php": "dd7d970cf3c6649b66a5351457b0c5f523a11c84ba9aefb0b441a6315d94afac2a45866e6d13316755f84c26f8cc286add46db87aff62749538e85ef71930000", - "vendor\/symfony\/console\/Exception\/LogicException.php": "ce3e6b2205ab9608dd9f7974e04d7ffd21af75b0e6e9e15bde8fec342f299245a252884f8b78a5145905f225070740298f82b44e3d64fe84e32a14e9aa8dbe7c", - "vendor\/symfony\/console\/Exception\/MissingInputException.php": "7402a974720bd04915d4ee9f2f115113fec3846f98994edc31bba650ff38b3df6a520d0f70b813ee249f22f77673d693f2721a62924e401e53bb653edf964d81", - "vendor\/symfony\/console\/Exception\/NamespaceNotFoundException.php": "0e627eac9486fc6ad74e4c691e7192874cdfdacf7ee1c51ab56d2eb9b339fb1802e1b3f4e2e4d1341032fefa5c32dba7192d30d82f9214e9fe99760c9c3b157c", - "vendor\/symfony\/console\/Exception\/RuntimeException.php": "0b48869097e1cadccd4aecff18eab0e1e00825cc9e208bc15d7f0c765162cac1a2bd0ad6abf310c008e9fd602167601f1c7133a09fcaabd2ea5d4138857b1e44", - "vendor\/symfony\/console\/Formatter\/OutputFormatter.php": "ffb6354f918fa5d70c21beceff3b7fb7bf41101e7e88ada61ffd7a7233a53cd203a57c357a8334005308f2ce81acee579d9c2275ef988c277471970a2803150a", - "vendor\/symfony\/console\/Formatter\/OutputFormatterInterface.php": "b7f05afc0623a2a6050e1a1f7f0cc2dc3744a3cb4bccd36a9437406cb235af9a39bafd740fdab31b57426126c9df2998c3c8fcac73214eef447e479dfd39dee5", - "vendor\/symfony\/console\/Formatter\/OutputFormatterStyle.php": "5842f40c7e42d1a6e227e1589391ea58fa6fea13aa9ab4764cb88ab9bf830469618febbde3a591f0b14505ab9f142d32ba529a50cdbd0b6687446f0212f1df04", - "vendor\/symfony\/console\/Formatter\/OutputFormatterStyleInterface.php": "8d4ecfe3b5050469fdd02d6c286465f3394a4b1fa7677601ac2f05209b4cd2231d92051b6e471abac6f0dfd0861ba8d79ecab4b4a5bb405a9831b6e00e9dedc0", - "vendor\/symfony\/console\/Formatter\/OutputFormatterStyleStack.php": "a215512be739e1dff684e402a9a4f5bb65949dc225b4b691dc67e33337a50f7d94dc08376a952289cbccd130e04d1c39a5db24e74e9331bde528af0fe89cb9e2", - "vendor\/symfony\/console\/Formatter\/WrappableOutputFormatterInterface.php": "a03bca76dcef291179c5515175a51e77935595c9678a382277828d00ebe8901e639c877a0d9967553e81275e648d326c53492093362cd45fb823b3c24fd690df", - "vendor\/symfony\/console\/Helper\/DebugFormatterHelper.php": "c00154c9d88ba74572f1f19c2deef47b9671dafe124b6ce653bd9ab2fd77a61a2422dc7e8a3dda231bfc0b0dd7b980a429b3638231946c42c469eb9167a7696a", - "vendor\/symfony\/console\/Helper\/DescriptorHelper.php": "c98c1d212919ff8406837e758d66d5e10231a586233b8e6f756e4a44b34903abe6db4813ef8b8cb859ae5eed268cc090e3f7cb9097c78dbab19832ae1e0df6c7", - "vendor\/symfony\/console\/Helper\/Dumper.php": "7f3587c3fbee0b0e138d8396ed2b969297119184a0060dc30d7a49a22fa82409ac110b5ef31c1f84a75d705d0ace9dcc224471a6f01b670733ee1d1b1c3c09c5", - "vendor\/symfony\/console\/Helper\/FormatterHelper.php": "35f496c8cee291e6188cfb3352a3edf1aadb2db4fce2616b7570c915c47db0f3067a9fc34d0629c68da9ca233749ed6569e48cc1913adf2f9baba2c706f8e4ba", - "vendor\/symfony\/console\/Helper\/Helper.php": "312c1c64ba087109f8f8e8e4780e761972789383b21c487de331ce830b9ffdf6d02bb8f5a66e24dded09fed0638b12d88cf03e780ac35bebe55be71f60a01f7f", - "vendor\/symfony\/console\/Helper\/HelperInterface.php": "f67ae03072446d339dd9ff4de044bf649eb8502c74c54e14865b6a9b863c9d0c5eb26c38aa01ce2224240c63cf75417aa601490dbda1a61ac237507724c33aad", - "vendor\/symfony\/console\/Helper\/HelperSet.php": "d5f9ccc998207a0171c3b65727df47686cde4026fd17b94efc1d5dfa9e61cdfe6bd5f4e34af78d789d1d46889a2d61f2dbd2ec7c3f0bd58d09a92ec0920fbe7e", - "vendor\/symfony\/console\/Helper\/InputAwareHelper.php": "d2cb185564b0fddfc69fca96254c81a4331b3e41c97bdbc14eec6a2ed9c27a159cf6dd519198019094449e0bb21b0287bb8b29c309c45eb41e2be38762402b13", - "vendor\/symfony\/console\/Helper\/ProcessHelper.php": "0c55602912b6bda31dfbd04fd9620885159e2a095c5639b3c458883cd2688f6aac503a647d6ad554ac9b3cee18dedc0667ba74f1519d43381580c748122e7162", - "vendor\/symfony\/console\/Helper\/ProgressBar.php": "5d94cdea86f18e004e69e0303c510b2f010b68e4942ce709d50b46b9bf0dbe830e243d350dd2997d27f99883f2b9141362bead16499d46a9972eceef39952da1", - "vendor\/symfony\/console\/Helper\/ProgressIndicator.php": "3669a54e45fe6a3633da8cda6388adb39e8785c7fdf6a9bb23586f1fba630123df2ed66d486fbee0ebef14bb54ad717f4218dff8c076229925639b0a5b77a099", - "vendor\/symfony\/console\/Helper\/QuestionHelper.php": "875cd3af3b1e96cd4638e7dafb5088d2970e17b3820607a2026eaa70a44d68c80c0a2fc1c735de31e675cb94f0dcf33152a8c8dc5dc62a17a67b9c10f8ec77cd", - "vendor\/symfony\/console\/Helper\/SymfonyQuestionHelper.php": "9938346102b938323eb96ca41ddeb9fefbba19c86f025b3aee05bff003d8b434c2f994c3eff505e1a46ee855545c5fad84c71b3b7725099c9699fe7ff9442a6a", - "vendor\/symfony\/console\/Helper\/Table.php": "bea81e169ffd09224b62c9bfa5c97175920cd35662523bcc4d69b3de3ce449741a18441ba8b0edf2a3667bb381366a1410feee2855d60fa76e8ac1d6bde57812", - "vendor\/symfony\/console\/Helper\/TableCell.php": "162646feaa22865a2e29eaeb3040720b93c373cd3ccc0ac13504952ba4e08c8c34798b8aa798959c9809615a8a0cb70932eaca4aa1c8d1f31862a3c4a51cdc6d", - "vendor\/symfony\/console\/Helper\/TableRows.php": "2271f4e3fe4ba1155b98afa8ebafc21176a08573cf111aebb0e3de6dec36636111174a9de1bbf950c0d6fd77f0dd00b781ed22dec06f5ae4030d5aee4b27890f", - "vendor\/symfony\/console\/Helper\/TableSeparator.php": "1ea55248ddaf35d57424fd3d0fe8901a65b1cc7ecdd0510ab16188c1c815e71ca619a46708a249dd359942a7562fae22e718f40b2418b3a2547437ba992fc48e", - "vendor\/symfony\/console\/Helper\/TableStyle.php": "5a994128e4e83192397ba6cf10d0a408ff5af71a89dc5ec7fbe1a24a1cb2fbfdee5130d1e90dd17d8563f0fbc991d21962267e7c9e9fa6a15fbacead5d1a66f1", - "vendor\/symfony\/console\/Input\/ArgvInput.php": "a2ea3696a363ab940b0607d7f6a4db232ea8fefe0095293c371b02aabb5bf49bad02a1bea12601116157694947cc3b078660980705dc312f28c938cbc92b421a", - "vendor\/symfony\/console\/Input\/ArrayInput.php": "5ba89e0c147b6bc685be904b0a3d9fc7005fe754ce90273c8279aa4f7c0783b0827b2d1368f69cf7d066721a6f4096a193f8a28407c7c0ac6daff0892aaaaf43", - "vendor\/symfony\/console\/Input\/Input.php": "1cf7fd7389394d8d4b6e8580d86357e25f95b6da8f8a8e3d54c7043f8f6bcdac9f4b1d2924e357a0bfd3cb1271dc8f6ea2bde5f6ae42f0b1142af4a617abb32b", - "vendor\/symfony\/console\/Input\/InputArgument.php": "70f8e00cfc301429db5bbf005a464026d3f2acee281d789c8e33c5163f58708904a90b4462cf26fc10a9258743c97ba47c47dc79bc503a0c5c2696f01bd6776d", - "vendor\/symfony\/console\/Input\/InputAwareInterface.php": "bb159d9bff6136f5794a112ea0c21ede0accbb44cc11163f45aa6eed86b9274f7a42eb7883847b00821f9c27e72f886410b1e57f124229f01e3c5feadaadd6cd", - "vendor\/symfony\/console\/Input\/InputDefinition.php": "8894ca4aab8ade7654cac530f2f31df0cdd35ebe72014ca748ddf156cf049be07b56c0cdb055034fde50b568d6ef939cc2f2f861617931230b22675eeee950a2", - "vendor\/symfony\/console\/Input\/InputInterface.php": "996b6fee4065ceb98edb078845c03bada34eeca0cf12da0a2108c42ca6a61e58bab15a455898cca7dfed31ec5c2870c0e8d6411eca06e8857c99556b192219d6", - "vendor\/symfony\/console\/Input\/InputOption.php": "3176a1a91068ecb272a0ab01f9e3a358e57ee232fb04544a3df1266a10b5634f9f015dec551ae2c35f10369a50cdd2be5d76a5533743e1b9fd8572aeea130fee", - "vendor\/symfony\/console\/Input\/StreamableInputInterface.php": "df81e69b85c560360cacc68df8ee454f96b655abb9317fa751c007ba7dbf63b3a1d5e98d2019634c8fb88478762a44efb829bfdcfd81ff17a0a033d1939e0f7e", - "vendor\/symfony\/console\/Input\/StringInput.php": "79360e0e7a3b0800ac5e3bda93cd5ae2e802b2d8f23485cbcd01e4816a32d95ac2933462700b5c3fb37109b31541947eef7abb75fca3d73ac7545fd0ada6a232", - "vendor\/symfony\/console\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/console\/Logger\/ConsoleLogger.php": "2334333b84aa2cb6dcdfe88d16a4c5d79f0abd2c8ea4f613757d1b40a9b5a879c5f75b5f5a31ececb41a21912ee4c23a37784bd896e76dba05dfe2194fc80665", - "vendor\/symfony\/console\/Output\/BufferedOutput.php": "eb2322aef995138e6472af355b72c6c4041b8dfd147f9d1182a75cf4eacc9876325d3dd85e5cf4e60adb584bb4bf83476c88700e4fcbd7db27922a5701d7a2a1", - "vendor\/symfony\/console\/Output\/ConsoleOutput.php": "8f8342571725d369db3bbfa0cb350cf064ebfc779c602b3b3b6906cb7e2db05d14e48ea43d8235904106e85de3d5f223fc72da76f324992b522b76a11e3994e9", - "vendor\/symfony\/console\/Output\/ConsoleOutputInterface.php": "25d64ae24ecd28d3455b51c1e33901125ac32e3ecc55011866fa471b5a25752403ec240e79ee67a38a8a86257c55726dae6e20485d562f3251c5f646b9c2bad3", - "vendor\/symfony\/console\/Output\/ConsoleSectionOutput.php": "97ba142c488e345856e3a51fe6bcd957524d4d02fbd8d72ec0c6148a7981c8446f940392640e4a9c00310dac5bb0359feef875dded4237868ce60a92e39e55ce", - "vendor\/symfony\/console\/Output\/NullOutput.php": "18f3b5b73169a9ca4481b3d067cc182884492cf6820b45522019fda35814e3427673505d367e3d0d88c0cbf550392d9f24040c0a0dca22206699e5223d94374e", - "vendor\/symfony\/console\/Output\/Output.php": "a82be81d23f7198c4538b01bc082ee5621e5beea01a478de895dd16a25ba2f0f92f38541a407022d558d177b92bf6abbc46b555b18b1d45707b5bc16883b5f3a", - "vendor\/symfony\/console\/Output\/OutputInterface.php": "ab77fdbda12928055f1ce2b7ca9b04941d2090458af4ced23edea1b71f32c3547c0a85f1debe7af4f6350a31465fbb7d61040b7f8208c53a688947cc8f368f26", - "vendor\/symfony\/console\/Output\/StreamOutput.php": "2dc19cbd833679d9aae9e41df927a7bf5cf8b3a890c84d5031ddff94d0aabe06bb79bf21763cecbd7919a04d01efd812b47a6a78e5b942b7d2bb28ad7435356b", - "vendor\/symfony\/console\/Output\/TrimmedBufferOutput.php": "cad23b56477a4c5a112b02dd5d7ac5aed2e7fb39adc3462f3780e3a591930ce3bf19b765cbde9910978eba78c76541188d9b7826b51737c780979f2bedd01fd3", - "vendor\/symfony\/console\/Question\/ChoiceQuestion.php": "aebeba2b1bdb4ea3924f394e96d3620b54af07228c3c3ffe04577b686c578048580ffee5b598c546366d4e18eb61e014a2dfa9a67624b0ae158b588a10baccfd", - "vendor\/symfony\/console\/Question\/ConfirmationQuestion.php": "d548ab251d9094601c9ea4a3ad817d80cad12cdb3e8de274e5b1e07ee2af2ad3f450f2d44f5fd951e23a3fdd2a9ffef3d900ead4d0669b50dbc785c721d35370", - "vendor\/symfony\/console\/Question\/Question.php": "e41a0085992b85d73a0ceda7c0cecf7ab7d736d95e27ab024e2ed03906621f7d9eb56ee5067df456a968a499d887dd4c64e5eb6a340d5e8336b528536d61b1fe", - "vendor\/symfony\/console\/README.md": "5b4c48c29dd0e61671adc91ba807b48c1acab89badafce68bd5e273df2e9dfc794bb2caaaf353ac17e7e7bea1a9e901adb5a26500989e344a3ceb97fd6a4ed6b", - "vendor\/symfony\/console\/Resources\/bin\/hiddeninput.exe": "92161e7bc71f686c5fb0fa1bb78965e5bddff15d35ca8df9ae3fe2cdc0934b7cb5e1d47b6a5237df04d6d448cdeb2b6b74fba60e28cb55cd3d9e29cfc00cac40", - "vendor\/symfony\/console\/Style\/OutputStyle.php": "96e35ffa09a4ed9a5c33bee6f31c1aa5950184601da5e12345d6629a487e02401b3894ebcb49b6b899f9f2d62d4ec16c62093c0216464231c11871da1fd0e683", - "vendor\/symfony\/console\/Style\/StyleInterface.php": "a2798ef675a3571c46f196443ce857ff75e78ceaacb1ce87694a2f39bf272115173ea14caa70042e7a62fb50756684ad2d4e5f78545bc2c136f74ab89ba6219f", - "vendor\/symfony\/console\/Style\/SymfonyStyle.php": "bde4aef6574eb9cfe84a4c4dd14c7548584bb258258695e84462493bb563d3484affe533fc3f1d4042c90d8b0cabd89eb137fb19c80d188eedac8c8e94b295c7", - "vendor\/symfony\/console\/Terminal.php": "e154773aadcdcee346e325295942f8b221e811e6ecb574eb9cbde76b21c213b73914ac6c7f2fe924d448504b9032ea0e62e9fa0210367f0741758ec11209da9d", - "vendor\/symfony\/console\/Tester\/ApplicationTester.php": "8ac194cec4c54647f8c93fd60acf331c93342605296ec3ca957f00b18af4e8a440fd606c40cf4c6c722344a48539b9ffa417a4764b34689bb78d3437227cd301", - "vendor\/symfony\/console\/Tester\/CommandTester.php": "4bb5e833ed92e35fcc1b2827f4999e169f27011b9e48f515bb34df27ec612007bb15c61892976c5f8c85febae162c4e219f288d7b0020984b3b9598983b98753", - "vendor\/symfony\/console\/Tester\/TesterTrait.php": "901e990dbc3f95586ddd2973e30ec9c9dc5324d7ba90f91289c0138a5794f962e59b79e228d448ebdc380b5d81f20560a26d94cd1052b4b1efdffaab2b64f6d7", - "vendor\/symfony\/console\/composer.json": "6e8007cbce8479ef31bd39b228c1a75da2dfaab3179874c45f479db3f70929bf7afed8417175024341f7eb9b9feed58b28ed86c797c1a2efbc80df31ad5aff04", - "vendor\/symfony\/event-dispatcher-contracts\/.gitignore": "92ebe9bedcc16b5297dd49e33772d90fd0533b9425931fdc2512d1d49d48300cfaaed5efe4d2596a93e6d83fce9ecce24afb750bdeb5090ee9f53c634ed62bb0", - "vendor\/symfony\/event-dispatcher-contracts\/Event.php": "96947ff5e346fb18d918febe24a705a559625a98c558d78312e29dc415a88b20cd8833d0f9a453df783a5d7aaedf1b1385ec598cfe3ec36ca09de2687c80a691", - "vendor\/symfony\/event-dispatcher-contracts\/EventDispatcherInterface.php": "17c56205f90f3b4eb03d908d6ae847d25ea8f83393cda9b8fe90c799eec2bae420a6510e78ef5ff240f8d239403408ad158a5a36e85dd5151ff2a8ae14be23a3", - "vendor\/symfony\/event-dispatcher-contracts\/LICENSE": "cf134bc6ff0d77577eb0d6d4fa51db82104db3c2c86ae6dd6a3238a529b5892608ca33049c067dbded580528d204abca1dddf2a02c53ce5ccd1a9b06ffb95190", - "vendor\/symfony\/event-dispatcher-contracts\/README.md": "59b79801c7c7293e0574c8614a65d83dcc60902b6bf8a88244958230330d5db13d20acd5c71859667b908eb74b9b862ebfd3690284718fc62865c63b04be8e3b", - "vendor\/symfony\/event-dispatcher-contracts\/composer.json": "94514cbc33e4c062ae41a6c40a141e1ae3a9927ed9c43868f732b098489dfb92a3b06c1a964695bd78f813a645e36a929e8727a4828f129541ecbf2ccbb96e2b", - "vendor\/symfony\/event-dispatcher\/CHANGELOG.md": "bc231953585b7c1f7bfea36f87cede0134412e238bdc179a0cd9edb4ca65935ad1d57c31f8d5c0b693473fb63d83ccc43df569e1c4521341ba530522a04d5b70", - "vendor\/symfony\/event-dispatcher\/Debug\/TraceableEventDispatcher.php": "63b877f64f145a500db6e95a3d593f19efed83fbbb516840a1b5e27de569dc416ada8182fc61878b64f4927f389a26c2a33f04dea02749bd7c471512ed58e563", - "vendor\/symfony\/event-dispatcher\/Debug\/TraceableEventDispatcherInterface.php": "4c92dc8946284caf63a138d13afe61c58ddc14dfe99ad3680522a8a542be4f41ac4dc649594bec505d757cbabba8a89a08f3a696d2e196ed9a991462bce61852", - "vendor\/symfony\/event-dispatcher\/Debug\/WrappedListener.php": "ee68ad935233b4389b4a74f7a8495bdafe02b4b995f61c444fa995660740a4aa0ad884170374d3c29727536f12d60141156f4799126624b99969657116fbe4f8", - "vendor\/symfony\/event-dispatcher\/DependencyInjection\/AddEventAliasesPass.php": "0c54ec6cad660a524c4ff66413bf8c509892cf1712fb40503a4cf443306a3f29b3311b0cb6902f7ae5cfdf1dd8b9c3c3929f3385e8238bc7a3d10f3325e87de9", - "vendor\/symfony\/event-dispatcher\/DependencyInjection\/RegisterListenersPass.php": "8450d65eb46e9ccc0a2e5f832b5f1b01ce4243a33643ead799ab356fe865dcf9c13ec990b44d61f203472b449fdbd20167d2ef32f088e12a5ef3a954b6817acb", - "vendor\/symfony\/event-dispatcher\/Event.php": "6c534c25a40aeba14b8f389d9520708aa8d543710ac8d8c55fc1a2ce68de65ebe60d6bc3e719effddf7c1877d2ccc272dcccf37842add882211c6ea621560c23", - "vendor\/symfony\/event-dispatcher\/EventDispatcher.php": "7a052059c8b18b96cda32d1108759e2b9c1d321966ade907e228f4ef3175fb97f1c35fcccd3898f39764dc5426e0ce8358c72ff69bd6dc5d9b7233d85adf30a6", - "vendor\/symfony\/event-dispatcher\/EventDispatcherInterface.php": "295b2eef3afc4985b23c54cb037b0a09602da651eafa70b4f91282cc3d58124ae64a74df0a167bc5f1df956db23cac8b35157eb90c53295313c6cac4808edc5d", - "vendor\/symfony\/event-dispatcher\/EventSubscriberInterface.php": "4ec00338de937e54110efedc5cd8269fc3681c4b5de8eac310c2063cadd49ed4ee360505b2ebfb6fcd16c584468f04188c892d69771c868a995c4f2dd0ae1a75", - "vendor\/symfony\/event-dispatcher\/GenericEvent.php": "eef9b8d366503299fba9f05843c99a9aae0094d03732cf3e437f7f8520a6937ad2279b2d4bf371f793d937e7474ad65c5d7d6df9ec2b846170ca587c8e27ddd7", - "vendor\/symfony\/event-dispatcher\/ImmutableEventDispatcher.php": "060e34df70ea21bfb4e28701e518b10bcb29a5eabc8e03bf91c8a8e2a54dd703ef9d30c4be94fc83cf7405c49a6b5f8d178452e0bb33b1796bb8da119b22fc42", - "vendor\/symfony\/event-dispatcher\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/event-dispatcher\/LegacyEventDispatcherProxy.php": "3e33d1c4681a2f8a1f31caf11a7a0620a6bb4bbfbc449663b510ae61b32e0cc405df7d479fad70f22b8c1e33ea4592a6a3c3343e03ea446be2d618641107db55", - "vendor\/symfony\/event-dispatcher\/LegacyEventProxy.php": "21fd45588919229bde8bec0c7ac98022e8e155f7e7ab3707dc539c36a162e63dd57f98e2f49bf99910afa1b140b8c68a62bfcb4f1bc1a9a6990c39460749d06a", - "vendor\/symfony\/event-dispatcher\/README.md": "22ae4b443aa2adb52e9311474e4d31cfb3745e19e81135e8069ca6afa0b09a826297dc2de68ac5490584876b11265f999d034f65286025058f22a1d00344bac2", - "vendor\/symfony\/event-dispatcher\/composer.json": "575095cd044dadd5ec751c86964470ae82734b8253a14568c82c168538e53eb9365de772f95a13bd85918cfdabbbaa8890d1c095b51aa02da280907080017888", - "vendor\/symfony\/filesystem\/CHANGELOG.md": "ec8b7e8631fcbbc5eee633ab67abbccbd936846c246bb93490822c16414012f5bf4877b45def2412bd08001621c65bd08b775d5f16592d145b05156b676a7be3", - "vendor\/symfony\/filesystem\/Exception\/ExceptionInterface.php": "f970b8a65363e5332d5251ae2d287a3b9312c87249a403373627e0cb120bb5ae9a76977cfc6f3deeb8c48cb8142ee4bb898f1accadf269f717c772416a4d6f98", - "vendor\/symfony\/filesystem\/Exception\/FileNotFoundException.php": "efa43252659ff71b0a1eaa0831d3a1812b7b5c77ac8990b0d61d36d3b4334e7829e6f68d8d4e9eb4f4f90678678525f0021fe66fe518decc148623c94bc36857", - "vendor\/symfony\/filesystem\/Exception\/IOException.php": "424cecc9cf853779be94dc9956dcda5addc1bf5472f35e70e2764644e728f8c00f5e70eb04b6c2b255b9504a2d35eeab7ccc8c6eacc0b54b7682dd59ea65b35d", - "vendor\/symfony\/filesystem\/Exception\/IOExceptionInterface.php": "09e88a10c680a85a1a9074c49b74c31a0f053888f0a906e22f1817a1032eba15e0e0d29e56b8ad07af619ce83224e9d758d9e2095a0c9f932499533e9f60ded7", - "vendor\/symfony\/filesystem\/Exception\/InvalidArgumentException.php": "b97d2a6a2e20f774b4b3958c31c10bbd82882cfeba86b658e8f4591ac6dde9fbdcb6eff35d2e0bd0ae5167bbc7d1ac577a34109749e9952156361a6d5e688770", - "vendor\/symfony\/filesystem\/Filesystem.php": "f23270488adec07c59ea4b6a933b391616918113145f9e1997c19b6e12b36ba9c1a5125a5ed8ff19be63ac3e845fb309646bf9a60e7c440991d246d0f48e1d6e", - "vendor\/symfony\/filesystem\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/filesystem\/README.md": "257ca102f76606528ed3f3a50f04044a733a5f8f5f4218d1acd1ca9d5eb74791451df09245e7275bce584fbeb85f90d69ab55b06b5ce474f8d2fdce698610f2d", - "vendor\/symfony\/filesystem\/composer.json": "40c6a349dd807e8350afec2187fc264c7a445cc8489970729d17ba8551d2236615256e0e7e823f7e1e0d01f772d446d2053a516e27c3df8c9e93eb6b4cf2c6ce", - "vendor\/symfony\/finder\/CHANGELOG.md": "fba9701c064d44f9d2f9c243149a862456158d361053728a7b39f678a8fb6dbcf85175cadb28dfe5b73a0167cb328c2f5863c90bb50bab23e644ed9073974546", - "vendor\/symfony\/finder\/Comparator\/Comparator.php": "444b39692fb915fe6c683fe37d0d4d0e349a47c9e60beb2f8c2b80cb6a675c7d5a46a292dad42d5b10b69d51b5ce3a4df0c51c2d02eefff9d54ca7b454be0d85", - "vendor\/symfony\/finder\/Comparator\/DateComparator.php": "8a2158514a1339f80ad2a0506924cc6501018a8f65f5b2b9d8f511dd4c989054e8f823893c579be0e4a525d6c06e9ac8cc14f76af78eb6eec19c7fa57ed1a89a", - "vendor\/symfony\/finder\/Comparator\/NumberComparator.php": "1e8ef07a2700947081a061f3bc4e7d3e2a2e99fb16b56da324c800142aa87fe8c721750321363ee36e1c3840cbf0b1a12db76db3157725eb7dfbbc141927beeb", - "vendor\/symfony\/finder\/Exception\/AccessDeniedException.php": "23a7ffdd308550e6066d9fbe9c5cf8b86e310c5ed6beed4d3a910955be0be05921dad583fbdf66adea7d02692d7be322a1b60d0b40585d96ba1869d6bb2d6187", - "vendor\/symfony\/finder\/Exception\/DirectoryNotFoundException.php": "f3a6745fcedeb5b83b3fa8f9fe45d71a931fd20497d2639d46dc9df30c991b7523972ccdd1be3ff9ce934b870b98197cf61fe6497eb4a610810cec10f47a122f", - "vendor\/symfony\/finder\/Finder.php": "3f1b16754f1c679491d8dabf3111015ffda3e942cec61662e63d75aae2466ae6ee26a5cbe84402074dfdec7e756b81a57478ec93c1c63f36750f2f7eee7b53ec", - "vendor\/symfony\/finder\/Gitignore.php": "349feb46f137d8de044139d7bd0627b745740d0d43a2faca379d656c12d314059ac829b3ba7a8991ea98fc5de4ded884b99403aaa510e00d5aeb78cb5fafc1e6", - "vendor\/symfony\/finder\/Glob.php": "8e203675b9169ef99b7f78d61c229f407bd97782307508a11f5eee441655bb2f6f64f511ffd3c96b7605965ecac6235a5f7b617cc9bf4350bca5c3fe0b767fb4", - "vendor\/symfony\/finder\/Iterator\/CustomFilterIterator.php": "4cb7434cdbd7889fc7a31c2ec4e230da43c0edd66fae3f2369a8e8eb20b10a8e4c1e8f6872000479a6b430f3972d9437794199e0025a2fd111f5d9d3184edf5c", - "vendor\/symfony\/finder\/Iterator\/DateRangeFilterIterator.php": "a0e1ab838190437441ac44714b6a03b17939cd81e14783b1fa2c9a451c069333369725bb8418d7d5906f16aadd406363d49cc7c87b5d9fc880587d735455f365", - "vendor\/symfony\/finder\/Iterator\/DepthRangeFilterIterator.php": "6b878699142fd6d3f1078e56d7cff84ca213271a7e291764a92094e6596c2553c5115a5ae449e1f4a4e3c7741aea09c755dce1ef83f541b946c630fa45725a88", - "vendor\/symfony\/finder\/Iterator\/ExcludeDirectoryFilterIterator.php": "b13eabc9466540b7a787ad71d77bb802ff727fd2c292041348ff037a449168eebb320cc868b84a48f8c1feda26a2c3d009ec9f6374d6305fcc237e2dd2405792", - "vendor\/symfony\/finder\/Iterator\/FileTypeFilterIterator.php": "c206c071153aea14bb67dab2d5c2c6b57c07f0bceb7e0ba6792bffcb3bf392f73af79a08585ff56acb36f2564193eacc799fe0b3daab1aabdefd1a685902f778", - "vendor\/symfony\/finder\/Iterator\/FilecontentFilterIterator.php": "f8cad4a082824ac1f16fd57f78345b36a61053ee6c66b3ecb97dd0ca8cdda769554500307735434fb616bef7edf0473ab635a6748fba324d97f2be43295a7997", - "vendor\/symfony\/finder\/Iterator\/FilenameFilterIterator.php": "27b9577246d6b81784dd5f432146dd980d8a377c89c555a76904933f289809967be1ba08ef2547bba7f0cc6b9652b04792622618b312bc993504e2a91e37e10e", - "vendor\/symfony\/finder\/Iterator\/LazyIterator.php": "6c3385d31e9a866ca3a5e1acf84b41acbc0483e12820910d0166e15a90dc6fce5fc5c3776b86da76fb6a77d0d0fbc90eeccbf4211ef8df26021dbf239c45de79", - "vendor\/symfony\/finder\/Iterator\/MultiplePcreFilterIterator.php": "aabd4bc3392f492ce3e0ba3f37e31b22220a47b014cd86617c601736f3aa0e1dd52d0663650298ba95338d0862c3dcb7eaf0c7f71acc3795f9f27494a92052ec", - "vendor\/symfony\/finder\/Iterator\/PathFilterIterator.php": "062accc574e641dee955d9c13d245ce9393b9b51e838984aa7ab24a4b274e57955e2ddfd4ff411b42763bf3e3f959708518a075a66c41a6c0afe1219bc8eb668", - "vendor\/symfony\/finder\/Iterator\/RecursiveDirectoryIterator.php": "f63176ac926f04b2975bf267b22bbbc078a1bb8ffc32e2fdfef01d15358686ad4545917d8bd9edf81eaaaf2564739eec0540a6205adb6eb76426d25b601024ae", - "vendor\/symfony\/finder\/Iterator\/SizeRangeFilterIterator.php": "be7cd86473473151919992e46a7cca97988c5b50f85aecbc31b2ea392d453e1766fb42be362b94d9af2ef29fde0023f0abc3562c2471bf0ac5265cbccfd9f1d4", - "vendor\/symfony\/finder\/Iterator\/SortableIterator.php": "80c288815dee008bfbfb80720cdc7a6662885924962d019a6f9e91df484e1504137a48a025691bc6f408bdc8b444273edc7b2d5f72450bee93f1f065518b1a6f", - "vendor\/symfony\/finder\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/finder\/README.md": "78f49881178647b1f0f5f5a7f43a815c1ae8b631e00ea6f8d31141570c4f265ff4ff6a0b4e80eb3fd8fa909c41fb0c9f77b8482e28387103f33d27eda572a2ca", - "vendor\/symfony\/finder\/SplFileInfo.php": "2d0b5045a59170c89861eefd41c9f2bd87c792dada8bea19b5cf92912d3fc6166f1961b6b9291844aa8644c4c15a7ac40cde9ab5f7ef2571e7433ed6901a83d3", - "vendor\/symfony\/finder\/composer.json": "758e9eaf479f9b2e543b80df461b2c12736e06a24c153d606771fbb2c641ba3d4c413395cfb78ec192a1e31df0af13ff43ade408203dc43932ad975586f5df8c", - "vendor\/symfony\/options-resolver\/CHANGELOG.md": "1ad417d1da6eb7a3dcfebfd8c9be5e30c23a250e2cd8cd49198e9971a2ba82eef6bf4ec2c1fc98a454bb4e7b3d8d949e8150cc96f9bfd696f46ea10cbb57cb66", - "vendor\/symfony\/options-resolver\/Debug\/OptionsResolverIntrospector.php": "118d9248a7846ebf47cc543685bec71982e3bcae501eaa1e93deebd2211c0372dfda126657922b9ac397b181c07fdada6284f2364e11220590135635f1a48664", - "vendor\/symfony\/options-resolver\/Exception\/AccessException.php": "9614d936553f4128bff6328fc833d634cf466808774c55fec6be5e0ad18eeca2c098821f8dde7a34bb1a104553d9e43883de7845c720278df1db7d0d56017373", - "vendor\/symfony\/options-resolver\/Exception\/ExceptionInterface.php": "5114b0c4a43090fcaaf6b2f8ed06a42638ff3e0582aaa8a791031ccb25e28573afbe66f6a2b70fd2df5887c9b2629fc1a75b9bc1da4cd377b72e37703bf4efa2", - "vendor\/symfony\/options-resolver\/Exception\/InvalidArgumentException.php": "8148e6b21fedc8b5fa84428dc28a760a661a8e34be991f44984844463456d275aa3e6a40325d90daa595a14c243a88d26fb45cc8c8c486438325f10f15200020", - "vendor\/symfony\/options-resolver\/Exception\/InvalidOptionsException.php": "36482b165caed2a3f95c819c7a398baf51535ce24141837910988285fed8c484b2a719390481d599962a1b7126f704681958e88bb2ce51cc20b66231a6c6ed14", - "vendor\/symfony\/options-resolver\/Exception\/MissingOptionsException.php": "11fc2a25ef0721896cef3f57ad898b14086b155e970488e41b6879313761fddaf64c51c799da76900c12c208d0e48f01216f730d413a69133364724d882d0d2e", - "vendor\/symfony\/options-resolver\/Exception\/NoConfigurationException.php": "2d4b0b43e74dd451f1806fb4e266e3f7a117ed37852149f27841b5efc50726c10f4ea52c349a2eb94b61a2e1704a0897b2f0fde299e7dd480e26a331665bf81e", - "vendor\/symfony\/options-resolver\/Exception\/NoSuchOptionException.php": "4a5e3331f5a33e18019343123465ddea24e4d844456f6ea75e01ce2b551bc2f3950b0b26188d3ce3d22e7a13246b6d82a197ca4e77551cc70d69373cfd0eef58", - "vendor\/symfony\/options-resolver\/Exception\/OptionDefinitionException.php": "c2857efc44272c00cce78a934396709c4c6084f3bd9de07f1085f07b88936d3552fad7d15daaa0a55ee3b24a0890013f072c3ce4765560a9bfd1fad3d4e4e31f", - "vendor\/symfony\/options-resolver\/Exception\/UndefinedOptionsException.php": "59f8f6304b7386207156b83700d9e458fd0598ceb211fae65a560f7ba5fec91646eb1c46cf6f806fe014b48974e459c824b3590b3c2656cc19deef5059a165ff", - "vendor\/symfony\/options-resolver\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/options-resolver\/Options.php": "cda9fc4bfeef0ade194930be928e080380722adc18559b713a4f6a4598449fe76165e22730594251a9a91f46cdcea9dc5af2a60783c195b64b607f24f8aa2472", - "vendor\/symfony\/options-resolver\/OptionsResolver.php": "31f4c62cadf2a114be52a7d05f62ef267a23db8f73189475b1c4796081daf8c6e0d741e12621a1c882ff7f69ce683af3194a0b12afe302dc0ce63ea5aecb3401", - "vendor\/symfony\/options-resolver\/README.md": "88400b44a646dbe9a3dbf1750d0cd9a0f20828b610b54428103993123b0f3b5ea339683ee5cd216881ea43f454b434ad3411fc71f9bf88a7227e0223501146ee", - "vendor\/symfony\/options-resolver\/composer.json": "5c8d3ba8969fe04936a1f9a2fc614d38f77cd48e5f4f99e95819712e74069f04f1a534f2256cdac8a5ded4d76ccb3379aab4f5b6b51204f2848ed984835ab42a", - "vendor\/symfony\/polyfill-ctype\/Ctype.php": "7bef7b0f8758db5560653376b8d6b2b464c9a76c7a660cda16e977e36f3f38c2d2684bfe8db44ecf35d966ab0f28adf54bee8e9e35c75eb103983d1d64890ec7", - "vendor\/symfony\/polyfill-ctype\/LICENSE": "4b73227cdc6c19e93acd0506e4d4b13e7680bb10bd9afa35581ccc984fed29df24b41772c1f096474f8d1c4ba351be58dcc40e3220ef7e8a832e64d86218ff64", - "vendor\/symfony\/polyfill-ctype\/README.md": "8c197edd2e9f0a045f3b8f6c85b7454d4a93320a5ae6891eca1fcd435b5c6a5c93e6261766a15ab3d75d14ccae1b93fa210bf9d3e9321755018eb0a4c0137b9b", - "vendor\/symfony\/polyfill-ctype\/bootstrap.php": "78aa7be3c3201004e6bd6114a0dc62542afd91270c9ab2e826ffe01f607c61ca10300b9eea188a29a8abff68640bc8baf59f11ef26e54f2fb6f47d069b9c9719", - "vendor\/symfony\/polyfill-ctype\/bootstrap80.php": "5d0c99aa2a067d9ae169fefe01c203f93c1ef20ee195ec07fb9368b2451296606ca0e7d6cf3388557c0398925c2e9f4b07384edea1f06df55dd4cf71387c7d46", - "vendor\/symfony\/polyfill-ctype\/composer.json": "7149a543b3335d6e88b67e5b0b4574b8107f80c1457f1a52760a3516aa4458435f8cb3afaebeaac845275f23f749b033785eea9e824c811195767c2a28e15963", - "vendor\/symfony\/polyfill-mbstring\/LICENSE": "d800e10e87154f138f3816c35943d08b499580601034f33f6b89e2a1cd639ff17422df0f0859ca03c37116fa151a34e67b7fd3757f387f12eed6a5b57b79b7a0", - "vendor\/symfony\/polyfill-mbstring\/Mbstring.php": "8ce84aca0ba144ee7888acf682527905770e14ee8bbf20cc372dd7861dd9dc24922ba361ad864d7d34eab13d1be94dc3db35bd89b095a2eacd96b894f8b1855c", - "vendor\/symfony\/polyfill-mbstring\/README.md": "08e725eca8cc470ce07fcc39348c64f3743c48b78182181ac96a0506611c945de2f2771961b88803dfe9abfbbed065deb3df977552165472b48b8ff399e1a2d4", - "vendor\/symfony\/polyfill-mbstring\/Resources\/unidata\/lowerCase.php": "77f96aa489f2700cf2be7c99ba13999f301a5792618ae0c58c62dbf4d8dd71dc419d7ee4216d5c837388209641f28d8a98c56083f30757533ac4d912208a8136", - "vendor\/symfony\/polyfill-mbstring\/Resources\/unidata\/titleCaseRegexp.php": "c2f7ab105452e6f87cd45aacf82fa27c2b79b9f2ff8abd06b788bbdc30b9b73047217f3fed13d196c524a6b4a4c815e9bc34bd7b4be24cd85c75cc21f23403c6", - "vendor\/symfony\/polyfill-mbstring\/Resources\/unidata\/upperCase.php": "42953a3ec12bac0230397095f7881972ca13942fc2dc550daf3a82df9d7fb7dca8354aef455d2ecbdb76ce2256894baec4789ee45bc8a973448c1dad49910680", - "vendor\/symfony\/polyfill-mbstring\/bootstrap.php": "4fff6b2b8553055a31e4ec73c2ac86deda1fe428cc751b3cacc96d6a183668e96405592a181e03d90f5930eea6a80b877b9f526439d1f5b4240d40dbc0b61a5b", - "vendor\/symfony\/polyfill-mbstring\/bootstrap80.php": "86e2f22e8c089f9767a71371091311df7722095663d4c4e6a2f390a6906b67a978e31ad6ecc55f6f1fd068ad2c561d174c2c3436c9cd4d47f80b872aa2ea0aa6", - "vendor\/symfony\/polyfill-mbstring\/composer.json": "c26222be33c86f5dac2a2bf12ebb02a55aae28b12008f34c9ceb080b580630fba05b6fb62c1749a59bfdc2934323b6ae7b15fcfa13709b028e1af318001d3134", - "vendor\/symfony\/polyfill-php72\/LICENSE": "d800e10e87154f138f3816c35943d08b499580601034f33f6b89e2a1cd639ff17422df0f0859ca03c37116fa151a34e67b7fd3757f387f12eed6a5b57b79b7a0", - "vendor\/symfony\/polyfill-php72\/Php72.php": "c3b3bc98bb12b660536c20d8582b98fa5d94a0f2047d840676c4c0eb2c347bb6244da67fd354eb5d7257914f03dbd0df9e4cf3965cb78f3cb05ccf29104a551f", - "vendor\/symfony\/polyfill-php72\/README.md": "8eb501dd9f676bfa648dafbac2cc00526996b4bdb3e47adb675423b1941fe1b91917ee440bfb24adaf9f588147f85cf69761511e886648b8bbaae13e891d183b", - "vendor\/symfony\/polyfill-php72\/bootstrap.php": "414ecc95e58bad86181bf237f246f039a04eacd8127cc9d3037a53d77627194d1f7787d135ccc539ff2c70769a6de8a318b172a98f71cb4c46da166da832b113", - "vendor\/symfony\/polyfill-php72\/composer.json": "ef52c2bddc2ccd483f416cf0742c32edd4ee85febca7ef2de5f973836b8d011a90b0907d1293872e6743836cbbbc9dc52907a5b199d588ea60452216b2fb5d06", - "vendor\/symfony\/polyfill-php73\/LICENSE": "4b73227cdc6c19e93acd0506e4d4b13e7680bb10bd9afa35581ccc984fed29df24b41772c1f096474f8d1c4ba351be58dcc40e3220ef7e8a832e64d86218ff64", - "vendor\/symfony\/polyfill-php73\/Php73.php": "c81bc709b5cd0e842c6a48c18e6e6a13d238d81c29ab9d588f244a385e6c80c83117a9066b34794bd9d47a5488542b576b22fbba0b42cc9c78dfa83e8035920e", - "vendor\/symfony\/polyfill-php73\/README.md": "acd8bb27121394d1178ffbefd9c985ff1a6d38edfe8913af5139fcacce1e6c6731aca1c568b9822550209ebc9f646f8a1d3b503ec74af151a6e239543b027da6", - "vendor\/symfony\/polyfill-php73\/Resources\/stubs\/JsonException.php": "7ae2ea4919a34789c0e37a9e55db95378ae47f6a1fb66e52a5d5574d983eba7f66616728de5d7d3434310fb0c3dd84e10e61f32a01edf7e89eb38f642278bac5", - "vendor\/symfony\/polyfill-php73\/bootstrap.php": "2b16c0f604ba5555dbd5eaa2f75aa897acc65179f06520b1cf6a1bcc53de7a579537d3a11d02e44b4156e7c409657ecee6247ebd6063d8bcb68d6b8dc35ba1b0", - "vendor\/symfony\/polyfill-php73\/composer.json": "32e2ba64758a9e11c4a148d3d1e85b210a971693564dfef61fe3d805800b9c8978c57ba0e140055a97567f9d9c79de42914e1456fa71b6e66ce713046db926e0", - "vendor\/symfony\/polyfill-php80\/LICENSE": "37fb514afceba265aa3e1f5756312dc95e8069f7d884450cd9ac16bce7247b1cbb180975aa13a8775c4216a715b517fe1539c69a13af7df9e0ecfa520ca8548b", - "vendor\/symfony\/polyfill-php80\/Php80.php": "2f05bce2dc22639abe12814331afa1c01be664a0b23ef42f7eb9de8547573e210b1405b5cf3e2d5950c59aeeb395206ac1d83bd0019e6d0925819fe445101de4", - "vendor\/symfony\/polyfill-php80\/PhpToken.php": "7772e1a1c9a4b70199ab935a253d2232b0b1931b2fb7ce0ed74aea0fcd0c9b10b42927d8cee96afc91f72379579b179c26e22f009d08d329518b7d2aedea01bb", - "vendor\/symfony\/polyfill-php80\/README.md": "35be85033890863f918ce32b278cb5e06e498bfc9f352a93b4a1921d1d1d75eb19eabef5557ddb28255776f0320374e36ecfe4a28cf5763555e560e445c632f8", - "vendor\/symfony\/polyfill-php80\/Resources\/stubs\/Attribute.php": "2f57b3e34bb9e8c3c0a11a48fd8acb73c7208e4c3bb35365bc0650918119428742a5415a3ef5e422d0f1570aaf11ff94291c26d85ac68bf87aac9c26708f7f49", - "vendor\/symfony\/polyfill-php80\/Resources\/stubs\/PhpToken.php": "e771c16b383e0b32381450a68e898a27c556b038634230d4dde4a684020212fe058ac796c69d70f2898ce8800a7994bfc94fd0935d8da460ac13234a1cd48212", - "vendor\/symfony\/polyfill-php80\/Resources\/stubs\/Stringable.php": "9c8125398c13fe2d5d0198a5b4e7176c2d18eadceefec1970356d98a8e5184c472bbd9d446d4096cb91e7ddb5b79cd8836fbcc33fbbaab787c049f90ee6160c8", - "vendor\/symfony\/polyfill-php80\/Resources\/stubs\/UnhandledMatchError.php": "a652d6cf82ee8245b24200c365921269d12b5f3800801386de39b1be7affc9578d5dc4f3c0b8302793fcf7e0e950445aa5e0e9c464c3194ee96ca16dab792741", - "vendor\/symfony\/polyfill-php80\/Resources\/stubs\/ValueError.php": "11826012304449abf4c47d292df774b41728103f11a4471fd40e2a9385151dfb4f3140b580a915eaa544b6dabd772e2bd4a363b706334ef27bb3c127fb46ad3a", - "vendor\/symfony\/polyfill-php80\/bootstrap.php": "949e6f1549a839f33cbb580e7b1b0d4564adc97f5f58335f07d2856a19c14e075f89e44fcda44c96f45e0bec5866a674887164c8ea9c39eb68512b34e6c08319", - "vendor\/symfony\/polyfill-php80\/composer.json": "39e65a96d61104bf1f6d1e9f50d249dbfe56ae8c06be9334fb8994f18c9e146c09b8f2a25d679b58ed2538d70267d62f684dc217b9ad12e17a208b0bd8b6ffd9", - "vendor\/symfony\/process\/CHANGELOG.md": "b0710285e0ba969ce55e98ced9d686c00ffcc78a02c0b6036a0576bf6d5cf64b23ea433cf58ee4f0c1198b3914af822d3faafd5d2f4bc48c4745117b5edf168e", - "vendor\/symfony\/process\/Exception\/ExceptionInterface.php": "2a77199db127a746a21005a1aaf46aa35e888a67cf4a11f55025a45b4fdded36803a2a0d8fedb93b516e7ec345110c0ea51ea825e94dfbf3d39bb0b564bfd48b", - "vendor\/symfony\/process\/Exception\/InvalidArgumentException.php": "61e0099b43c0e3dbff1c192d1ce9a9b54fe80f839c21f0d9d42b8f95d63f87e6f834d8d1c1744d9f5374e2d4463e41ba7a9f4c1c6fb8552eca1a70b335241ca7", - "vendor\/symfony\/process\/Exception\/LogicException.php": "76fc8f0353e204fb193f1274ad52014f416417e8970e29c89f639ac71c4e02d7e04683580b40d16f16553c1f37dbdfc5a8afcf7af44bdda83b350b6ff0436f21", - "vendor\/symfony\/process\/Exception\/ProcessFailedException.php": "8cd7ac5b6efe76ed79809dfe1c585321c7f4dc00e72617ba654fac1fb27bcc148c623002bacac62b12c23c8fc1e2d018cfe73e3f5dd2ad907a4d0ceff3e50c7b", - "vendor\/symfony\/process\/Exception\/ProcessSignaledException.php": "f1979b6840100b3a653ab1825ffdc2968e988156c51492867623e28f872ac7b40d0a676f50fc55f29a2f49734aef10a934543fd47d2f28cdb9d8fa98d7060d80", - "vendor\/symfony\/process\/Exception\/ProcessTimedOutException.php": "945031b491d920e688a7acbdfda36a0b96b6ccbcfc60b3570e82da61a4fd98e43dc768e7f99dd753e1d537de0052060c8753da9a2b37148f7eae56bb03809904", - "vendor\/symfony\/process\/Exception\/RuntimeException.php": "4c5744da45b9cc26675a056f314859abcfebd7f6f3a8bdfe8d8b93ae14dc1ac1324b85d2c0efdac574fd55155d230b96aea34f10b542f2c4f76f633b764c480a", - "vendor\/symfony\/process\/ExecutableFinder.php": "0adf6f83e7d75250e8963725d86bdb1acadd1962c58b34f2d18cf958db4d99bc2803f180d91da51ac66fb4a5e89200e731124e057a4e5c13e4aee7c8d0862adb", - "vendor\/symfony\/process\/InputStream.php": "2c8a693bf3ecc33cc40821857e3bb4818ef2461c7743aa38555853a1e197c3ec49f2c8b2ae3b69a2e506399cb96ef798c9313108d7a22d0640be6bfc5be5defb", - "vendor\/symfony\/process\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/process\/PhpExecutableFinder.php": "e150cc701045daae4a7a3fdf982de60752209ef501b4f027b2312718bc97566ca56462391f048989fcb7c21baa7a1d6810815aaeda86207bfd52d0e31989d0c8", - "vendor\/symfony\/process\/PhpProcess.php": "8de30209314423ebdc8d1c776f6a237c3eb1e3d4b1752e974c35cd8d3f4ad04f08d7094c724c6d2eb4c8b23211a454a1801ce425d6dc71cf185d899f04e6b27d", - "vendor\/symfony\/process\/Pipes\/AbstractPipes.php": "1081fa7c96ae4cf511bd5716d820edd7db51c36ecb93d11d25654a4f64925061bf8b2135eecbea0288ca8e048d7705916fe9c112d251a989189dde96d3d273eb", - "vendor\/symfony\/process\/Pipes\/PipesInterface.php": "70ef8f886aa8af8867794f683ad639a01adfd3521e3e9f6b569847fa5424af7f2f46382ab9aacc92de02e85b1a1910005ff9432408ac3c7433c86ed14f11c030", - "vendor\/symfony\/process\/Pipes\/UnixPipes.php": "5593aabfecfd5136fa8abcb30802efa124acbe13435630fcf2ac53b947d699c8d5b822dedece24ed12c4c66de9b58adb70b3ec10932055016a44f85c4f512122", - "vendor\/symfony\/process\/Pipes\/WindowsPipes.php": "d6867b76f56b9269c8616d348e880b9c8b53bd3a861cdc0445bed0eaa1388b51a9e0db5f925740e6d26ff99834208c78d0689a67bcd8ec45713e8b5579951188", - "vendor\/symfony\/process\/Process.php": "ad4822493972f0647d5af470fddb5187dc4da3419b0be82e4bcd35131f66b720304a29323bd1068c218e9ff04a78cb04d13bf68a9dd0c5ff2928d257ea45cda4", - "vendor\/symfony\/process\/ProcessUtils.php": "0a1bd730a866336f80466e533868642c710986f749c2d8b7457519170c4dcfc29ff405c14c0367d8878f84e24df575ce997d2b64ad1b7cab41566a43ae876edf", - "vendor\/symfony\/process\/README.md": "ef56025a6f4f0aadd8c71716a7fa8921d0f0fec32192f27024985ce347e3a04bfcea5d52987053d9f884395a5e68f087d95f345c45abad9331d7d934340bee95", - "vendor\/symfony\/process\/composer.json": "af096cb1954e766f8a8469a963e518258f7fe5e3cc12a576a919881b6c00d505c0f5a220cdc61a1d4791ebecc87a1cebca19f2f763891938e457b5908d1c9ecd", - "vendor\/symfony\/service-contracts\/.gitignore": "92ebe9bedcc16b5297dd49e33772d90fd0533b9425931fdc2512d1d49d48300cfaaed5efe4d2596a93e6d83fce9ecce24afb750bdeb5090ee9f53c634ed62bb0", - "vendor\/symfony\/service-contracts\/LICENSE": "cf134bc6ff0d77577eb0d6d4fa51db82104db3c2c86ae6dd6a3238a529b5892608ca33049c067dbded580528d204abca1dddf2a02c53ce5ccd1a9b06ffb95190", - "vendor\/symfony\/service-contracts\/README.md": "f2c3d4e8aa187d3acb7c348200172850a682a152f7d1e670235cde6aaa691aefbed8c7558f6aecdeb1d7aa36b65a4365ff1de8a5587b47e45abb42a03d576fcb", - "vendor\/symfony\/service-contracts\/ResetInterface.php": "f0c1d2a687015b237adbdabc520372006d54cbbb4c7906b1a7d86d40545b4dfa8f5783adf3d1a7b2af5b198d9ed538c287c32737b28d2bb3598f0ec64fbf63cc", - "vendor\/symfony\/service-contracts\/ServiceLocatorTrait.php": "c3b2f4d3024fb1cab4c53d1c5780406f086edc19ae4ee742c153192b7d6e39c1c979dd5dbc89d7d8a606a212c6581666f15d4544817c1b255f35230b645867f1", - "vendor\/symfony\/service-contracts\/ServiceProviderInterface.php": "effafae6b25063b394a8b47b71fb8ba7cf7fb79a85b80b861a91544434605ba8e25b72287eb90df1199ca9e8a73fc35cb45bbadbe409cb2b874fd5ef5b59bd7b", - "vendor\/symfony\/service-contracts\/ServiceSubscriberInterface.php": "ab317a208ed74f853e261501dcc06bb9806479137d7926e3eb04e4fe74b8611e788d1b330ddbe050c82d600a2670def4700f521b29e4263312241d16ef37484e", - "vendor\/symfony\/service-contracts\/ServiceSubscriberTrait.php": "c844cbd76ada401515fc9ea9de5f1ae0e242ae5655689a487a1eeec7d247f8a3103679982737ddb9ca787f6ca16fcc2918f6cc5876a51dae77264b8f29aebc03", - "vendor\/symfony\/service-contracts\/Test\/ServiceLocatorTest.php": "0bf99cae116f3f1067428fc3f36c1bc2918661e06ef3b86233f64a2f8ae2a09ca73302d72be1587bd80d7e1d95cd4e9c0b32b70332af266288c42d57519a5b4d", - "vendor\/symfony\/service-contracts\/composer.json": "746c0e367e24e686d48400075f2217d5946747b1b2a7dfa23489b02469d6e368ae00f34581aaf2033ccd87e6ee8178b9fee9073799bf03467d31e8f74fdab16a", - "vendor\/symfony\/stopwatch\/CHANGELOG.md": "b30cd5129c438b6f1e4bd78880c6de2f136546cdbeb891dcf310749eac0d59994e62f339934acc0f43447025f591b5498ddfe38c5fb3bee940543296e691463c", - "vendor\/symfony\/stopwatch\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/stopwatch\/README.md": "f7d53c8fc1adbeacc4878d7cf2be2b1b14a099c7aa4fe218ccd95e3a250e224b71d879d64db2004723c2cd0626200b819f12fe9d30775612450ea323f258a171", - "vendor\/symfony\/stopwatch\/Section.php": "dd91e320c30f1bd6e8b0cf26bb8ab8883c5b2030a95ece2331956860e4882cad23a1862a6c1ec9b3300c453eb80ac6c1fa1730e6d8ba1635eae61b31bb9f975e", - "vendor\/symfony\/stopwatch\/Stopwatch.php": "8c03011f146b761f36699a0fadeb508c3e7363ec4f25314eb62e5975c5fe8d3da142d15f08efb82f44b253b3cefa3587eb4eb35ee5b87a445c544fa24dbdc5e6", - "vendor\/symfony\/stopwatch\/StopwatchEvent.php": "fff11bf5dadc1006b0fc3d27b5da646e16e2ec63b104890bf6968a2fdbab162fc5f734e726f20999ffa4ab5f9e935719cdccc725b08f054ebeda499c773eebd3", - "vendor\/symfony\/stopwatch\/StopwatchPeriod.php": "48ca4800b6ba1e68b947e71731ff61b7933b5e9a3a35d8dd1b3bd947e74a93867c75174f3a31af23f5177f836ce6a682dbe47865366429b487474e0951062d1d", - "vendor\/symfony\/stopwatch\/composer.json": "cd8421653fa1f0ec7179f02cff52035365ed908b510617a59a3b4a6c2ae7b3266c13c92a6825267e39a4a90a11dc14dfb48f8b7eb0ecc43b2d512248b9c64554", - "vendor\/symfony\/yaml\/CHANGELOG.md": "8d45af30395971a3b432bb6a922b05d6f13066b01cd2044d0561c7c2f99cfa2f68b8301c61399d575029ab8e287911a871535586850aba2190173d4adab4ae35", - "vendor\/symfony\/yaml\/Command\/LintCommand.php": "3d70e667a63d16601a4b99749196f7bbf7ce739babdd84abd5bc78dd6cc9755a48d163c9a8c0400787c7ffb5286ed3ee3f826ac0f002355cc538ddcdeffc2382", - "vendor\/symfony\/yaml\/Dumper.php": "5e92ae6d8a629c909bd7878eb8bc8af182d40c7adbd4f990262958daf0d89e537bf16f1226f95fd5f6044c3cbccde23739d7573bb8f7beebe710991d5e31d76b", - "vendor\/symfony\/yaml\/Escaper.php": "de9325cab2946d83072071fd8d854de5d10b827f38e4ffdd29ba0eb95ab30c02f3f18100d8a58e9b1c211126e0b112a549b8397bf78fc81f6c6fa35a8bb69817", - "vendor\/symfony\/yaml\/Exception\/DumpException.php": "f2cd259104e5eb03772cfd93d2cacbe9b3d34e83612ca9ab84409857a73d5421f4e5d47dcc22d1e2263d450a5a0daa90d28a605aa5e2438a23eec47d60cd2383", - "vendor\/symfony\/yaml\/Exception\/ExceptionInterface.php": "5d538bed119ea37c269e9561b5695318c98df3014c5adf9f3ecae768a4a43f83bec3227df751b8db3404ae07dc1ea593c4af1be9afba3ba8e2e6fe6bda68e99b", - "vendor\/symfony\/yaml\/Exception\/ParseException.php": "1454849cdbf6ca683604af7ee445ae3ae36a9075d21de1d58882918f9d2d46c48cb172221a4b21f74579265f36e65b37400573ef5822ce821fda97bb4c012f93", - "vendor\/symfony\/yaml\/Exception\/RuntimeException.php": "c4c7e3381249e1b12e355c12dcc1606f0989fb05a7e9b2e9e6a61f543f25e03bd74103485c9e8ca7a1ef47401d003b83424fd209575bd112ac7f0a9a3f79d9aa", - "vendor\/symfony\/yaml\/Inline.php": "87437b41248647d15d7c44f072fe27a04c44839ffa15da003892d8d8a75f2e5cc90f1dd57a83586287f01cb8c9144dd18af6ee9ae5b5e0044eae02416261f7e2", - "vendor\/symfony\/yaml\/LICENSE": "2d46b315e43ff523edfae56982017d62b8ea3a7eecbdae6996855a0ea251b34d37d25369f1cf62f50bd8825fa51744c54f799b24b6cc0677712df34d54991ff2", - "vendor\/symfony\/yaml\/Parser.php": "b7dde19d04350fd764e46425da5092ec7da11833297bfb424b82ac48a13643411ace39b6aaa5ed5f30276acd1e953cc496dacbb1cbacdda70f5d2a449441ef13", - "vendor\/symfony\/yaml\/README.md": "0988cf2c5ca36c4955858989d209515a1cfb901558b6727278d7b6dabe983e49e645cba60bc7e159808843bf0b0e19f9f000e1e4b2f86bc2233e0b6f073b7fbc", - "vendor\/symfony\/yaml\/Tag\/TaggedValue.php": "ab9a801a0d6c991a86fc9545af5332c9249cd192811b65fe082fe37f01afa1ed2f682e37b1b04a76f402b99dc84c3c7a0cfc376fa2e22206a861763b53f0a0a7", - "vendor\/symfony\/yaml\/Unescaper.php": "33652693db29c116bbab33841df7777ba7ef901366c94ff1a8152d7cad6e86974d517987257ced6752df2e1968ee5603e1ea2726337aeb525aafc4ce03adad0a", - "vendor\/symfony\/yaml\/Yaml.php": "3cdfd153f95b6d2bbdae0a553f8218637ced99e1a2a0240a496c0ab0c2e182cac16065f9111320ac89c5fcd8c043ded9c8ca549132c5cd293fd3ba851e10bec2", - "vendor\/symfony\/yaml\/composer.json": "acd187dbe712f9e63476d9f681227eadbfaa4bdacb7887903086c11021280d29f691dbd71c368e773c7ebf2dc9229d2b2ad8ee14d9fbb8737ec41f34c8ca2d0e", - "vendor\/webmozart\/assert\/CHANGELOG.md": "65e95436a13a0873ce7d457545003b6bc74ecdf3d1f0afe7be013e37ed0aca6b0dfc8c78f40cf8f86f19d4ffa3f7277df7d6b6ef07caf70619254386c36216aa", - "vendor\/webmozart\/assert\/LICENSE": "7a24be285071b4ed8f9f6f80ec0eeaacbbc79c0ad19892b6e664cec28ec824aeaef47223df68756c37ec8af1d43c5d574bc24acee2542dd6098bd3c4534687e1", - "vendor\/webmozart\/assert\/README.md": "7d73881a0665fa897a484886de3de98772e792221b59147141b4d0a8225f988d4c726354e87daf4ad1992d5f75939543b7eda75f516da25df0581f2ed6f970ee", - "vendor\/webmozart\/assert\/composer.json": "469f8bfd96642c1bbc3b041f60073884722715d8496fea6828cba1022b7508405d6e521c3d063bdd3055d8188b94408fa45efdbe36effa0e98681ea41c890ac9", - "vendor\/webmozart\/assert\/src\/Assert.php": "ae1dc4e9afb8b4553f58397ae13e778163f1e9b7891dd769bc980aa921c56b47fbfc43768e703cb4e5693cce48750a74fac34f223cd9ba577a3e9a879c29c80c", - "vendor\/webmozart\/assert\/src\/InvalidArgumentException.php": "a725e67e6a611791c639173089b87d58d3218531bf2ee61a47ba8b4e7dff85cd81a5fe152c92e00d4f67d9c46e0cb1dd100f15710854b83867dd029a7a667cf5", - "vendor\/webmozart\/assert\/src\/Mixin.php": "538ce11d2fd8799c20a8a9776b7079ce8c2b50256da1d8d47581e26b8989dd7573afdf390fe095f01ab166147438b40659ef6a1978b7ca24c456c7f138e1f88a" - }, - "signature": "Cd\/f5O0aYFZGvN8HG2NTZSsr\/kcwsFi4sndEpbJLjBjzg2M2paeN1xjL8D5QnmLa6DeqY3\/aDvpAr0mEv1wIbSeJYvuX\/\/cxdlhDRZwYtWeY\/J27fT54zPrCkGeEYu6sXnUsEL+zIZABj3URkLytnPWJjkfJgslzYxkc4Qx5yl4snVakPVMXgfW3YBFcjsM9P4MpzlZb8U9Kny5Tz9ycW5S\/ZuzFXreh8jxBqYcUHmQzf2gOhizO0a8Cl5Cr8NTH2sD5r+d+xe+eakcb4kpaEiopR7BkQzpixICLpsCjCRrUpiI7xf7utY0u3GoDbIBcNzvS3oEWc532ItLc4ijLpcmkj78xeah0EfYdKrzvxFEuGMy2NWPytwb9EFsF4ZrX8vQLAueEqR43Io2nwV1M\/A8+Qwpp+ocojIA1z8eZrf5vcQ7CbpGSxO2KlTIycwnNKVj5WtH++7\/lYN7BsUsMCttkWuEZCJ4T8sTiAgKDgszbi3rJnQiUni3EK\/5RXZnVR6P678H2vG+e5taOYcWxWQ3Ny32HAFsYzFQrPj6BFJR4FsvR9Xq6Sx\/IQV4g7s+03PqXIsmtcYkbDgiryqjMQjEZJDCLF6\/xe70\/dGz6lOQDMwbBi9ZNcBD\/hTDV4v57SlKOLu83cPnHF550tw8Q6JBaa82bziWvvfT6F\/UyKB8=", - "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIE+DCCAuACAhCUMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ8wDQYD\r\nVQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4xNTAzBgNVBAMMLG93\r\nbkNsb3VkIENvZGUgU2lnbmluZyBJbnRlcm1lZGlhdGUgQXV0aG9yaXR5MB4XDTIx\r\nMDEyMDE1NDQyMVoXDTMxMDExODE1NDQyMVowFjEUMBIGA1UEAwwLc2NpZW5jZW1l\r\nc2gwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCxO14yM6KtTvGEdAil\r\nvCS0t8C8bV4y91lliWOCHU0w7os4OVR7pEKLJ+P4X4qjFVyDBaQOHMalumWII53b\r\n2ft97ev\/AK7jIHepHImaiRphtaVY5302MZEEAUmKD7YbJr0EkBOVS6t55\/MNM599\r\nbJINS\/PLmeH29Nz0IZsIYy3WZ7k9MaeJsna5kogL1gFgx6CtrLQynOALOXVj18iM\r\nhZdTOIj2J6uMRPcBgFKk2jT\/MLcZhvnJf5LqhCZZT2hEpfNkVhzyzIDiYn6tFwEA\r\nautO67HOEz0sNaKXPhN3W3fBna7Y+I9omIg1OtZ7mWHcArcK7tfjQXOF17szo6lK\r\noel5EjAzLsVyiO2qWH\/TKd+tKg4Rjp6cocvKqKv+Hs2MW50zh0mazhZLG+zMgZUd\r\nSQ9mX56dr4VqQOZO4Mazf\/XSx2JHZzrNz\/gbp1NwuZuanKaGrusSpDzR2DyjGV3p\r\n3lNykhkaxtiqq\/ppip3tboOOhaGl\/trft8Du7Cy4Yt0FkcjNy5Q0y8uQPMcIwp5B\r\nAaAw+S70RpTO6e\/8FVvY1AqCDvNZ0gZKj2iH3SHettOcadvhzTpPROzRh9Z\/MLHP\r\noxgrn\/N0wylgsvtvMwAdYvQ5ANQ17lr\/0PQTslvX72JyxKAtYfyrpOq+eV9tuPb0\r\nDRjpzeXFq4wHm7TOVpErbSyEgwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQATQWau\r\n2t3FpAeXVH3gVaBH244dcjKmB8bf5RQ9p9\/7PqFS3ALNXMUsL0Gxo68GHeYyNreY\r\nNOr4ptPRfZoq7MwjiafGnMJNxua7Tddjcl1qSg+gV6z4zMlUXAWD5NYCB1rZhqjV\r\n73rIgyoz75az1bKf9cCk1a3PDUQMnTAOaC0E17vIvWAGZSHUKckhrPCgm17mHknx\r\nBU\/7sCzI6H2zI\/MG5498k4Pa6wmaG6G88t2BVnBe+yu3\/yQvqcFFSDp7N9ePXZ6P\r\nBE3jz7M+b7DzylSn0xgL1z31Wad2xrKOFccux9zZQYq+vji4iKj4OMQCXoQmLtED\r\n9ExBYoa60ys8hj+peiT7IkKi1ebzQ24KmYdQhIMRHaPfQvMbb+sOPDlUvFQoawIh\r\nVq+eWBu8ZLm62J6A5GyCF59qTkdUVl8KgDXOfJKNiYD80BZsp9jmPcZ4orNiI9PW\r\nGrMafEGWRRqtEtEH6BCncAQ\/waGMY3Vv1HGBHUOnwd7MEvirscKqVwgwJX0I4wZu\r\n+YOziH7INQxDcLnxKQjxLHO6bFubiozReS4QLc9UitaqncCpwj12FmsIWuBzOZNN\r\njuKmUYCJkB7v74w7Ft5GaqTKkyUcaJSvWo3J9G9Hokbj3+Ole6KO3wMEAGHcXbcB\r\n0FerU0IA6nOpJNG\/\/8EW6At+ewMWA1Wtsl6xXw==\r\n-----END CERTIFICATE-----" -} \ No newline at end of file diff --git a/css/settings-admin.css b/css/settings-admin.css deleted file mode 100644 index 154002dd..00000000 --- a/css/settings-admin.css +++ /dev/null @@ -1,19 +0,0 @@ -.section-sciencemesh label { - vertical-align: top; - display: block; -} - -.section-sciencemesh input { - width: 100%; -} - -.section-sciencemesh textarea { - width: 100%; - height: 240px; - font-size: 12px; - font-family: monospace; -} - -.section-sciencemesh p { - margin: 1em 0; -} diff --git a/flow.md b/flow.md new file mode 100644 index 00000000..ccf34578 --- /dev/null +++ b/flow.md @@ -0,0 +1,191 @@ +### Creating a share + + + +## Sender + +Search for contacts, it goes through the search plugin and finds all the contacts you have made. + +example output: +```json +{ + "display_name": "marie", + "idp": "revaowncloud2.docker", + "user_id": "marie", + "mail": "" +} +``` + +click on contact to create a share. this step appends postfix for sm shares to distinguish them +from regular federated shares. + +Call share provider `create`, this is called by share manager, share manager calls share provider factory which has +been overridden to be sm share provider. + +sm share provider will route sm share and regular federated shares based on the appended postfix. + +sm share goes to: revaHttpClient->createShare + +example request: +```json +{ + "sourcePath": "\\/home\\/test\\/", + "targetPath": "\\/test\\/", + "type": "dir", + "recipientUsername": "marie", + "recipientHost": "revaowncloud2.docker", + "role": "viewer" +} +``` + +reva received the request and does these calls in order: +1. "POST /index.php/apps/sciencemesh/~einstein/api/auth/Authenticate HTTP/1.1" +2. "POST /index.php/apps/sciencemesh/~einstein/api/storage/CreateHome HTTP/1.1" +3. "POST /index.php/apps/sciencemesh/~einstein/api/storage/GetMD HTTP/1.1" 200 +sm response: +```php +array ( + 'type' => 2, + 'id' => + array ( + 'opaque_id' => 'fileid-/home/test', + ), + 'checksum' => + array ( + 'type' => 1, + 'sum' => '', + ), + 'etag' => '65129328493b0', + 'mime_type' => 'folder', + 'mtime' => + array ( + 'seconds' => 1695716136, + ), + 'path' => '/home/test', + 'permissions' => 31, + 'size' => 0, + 'owner' => + array ( + 'opaque_id' => 'einstein', + 'idp' => 'revaowncloud1.docker', + ), +) +``` +4. "POST /index.php/apps/sciencemesh/~einstein/api/storage/GetMD HTTP/1.1" 200 +sm response: +```php +array ( + 'type' => 2, + 'id' => + array ( + 'opaque_id' => 'fileid-/home/test', + ), + 'checksum' => + array ( + 'type' => 1, + 'sum' => '', + ), + 'etag' => '65129328493b0', + 'mime_type' => 'folder', + 'mtime' => + array ( + 'seconds' => 1695716136, + ), + 'path' => '/home/test', + 'permissions' => 31, + 'size' => 0, + 'owner' => + array ( + 'opaque_id' => 'einstein', + 'idp' => 'revaowncloud1.docker', + ), +) +``` +5. "POST /index.php/apps/sciencemesh/~einstein/api/ocm/addSentShare HTTP/1.1" 201 +reva payload: +```php +array ( + 'userId' => 'einstein', + '_route' => 'sciencemesh.reva.addSentShare', + 'resourceId' => + array ( + 'storageId' => 'nextcloud', + 'opaqueId' => 'fileid-/home/test', + ), + 'name' => 'test', + 'token' => 'Y7bWUulmHrhfUJ8LRknNpkZQGcRRkMk7', + 'grantee' => + array ( + 'type' => 'GRANTEE_TYPE_USER', + 'userId' => + array ( + 'idp' => 'revaowncloud2.docker', + 'opaqueId' => 'marie', + ), + ), + 'owner' => + array ( + 'idp' => 'revaowncloud1.docker', + 'opaqueId' => 'einstein', + 'type' => 'USER_TYPE_PRIMARY', + ), + 'creator' => + array ( + 'idp' => 'revaowncloud1.docker', + 'opaqueId' => 'einstein', + ), + 'ctime' => + array ( + 'seconds' => '1695716163', + 'nanos' => 943856286, + ), + 'mtime' => + array ( + 'seconds' => '1695716163', + 'nanos' => 943856286, + ), + 'shareType' => 'SHARE_TYPE_USER', + 'accessMethods' => + array ( + 0 => + array ( + 'webdavOptions' => + array ( + 'permissions' => + array ( + 'getPath' => true, + 'getQuota' => true, + 'initiateFileDownload' => true, + 'listGrants' => true, + 'listContainer' => true, + 'listFileVersions' => true, + 'listRecycle' => true, + 'stat' => true, + ), + ), + ), + 1 => + array ( + 'webappOptions' => + array ( + 'viewMode' => 'VIEW_MODE_READ_ONLY', + ), + ), + ), +) +``` + +sm app creates share object via sm share provider `createInternal` that inserts share into efss native db. + +probably owncloud would inform the recepient by these request (should dig deeper to be sure): +"POST /ocs/v2.php/apps/files_sharing/api/v1/shares?format=json HTTP/1.1" 200 +"GET /ocs/v2.php/apps/files_sharing/api/v1/shares?format=json&path=%2Ftest&reshares=true + + +## Receiver + +Reva will call these in order: +1. "POST /index.php/apps/sciencemesh/~unauthenticated/api/user/GetUser HTTP/1.1" 200 +2. "POST /index.php/apps/sciencemesh/~marie/api/ocm/addReceivedShare HTTP/1.1" 400 + +FIX: 400 in addReceivedShare diff --git a/img/app-black.svg b/img/app-black.svg new file mode 100644 index 00000000..4e6de8f9 --- /dev/null +++ b/img/app-black.svg @@ -0,0 +1,44 @@ + + + + + + diff --git a/img/app-dual-theme.svg b/img/app-dual-theme.svg new file mode 100644 index 00000000..4e5c66a8 --- /dev/null +++ b/img/app-dual-theme.svg @@ -0,0 +1,44 @@ + + + + + + diff --git a/img/app.svg b/img/app-white.svg similarity index 100% rename from img/app.svg rename to img/app-white.svg diff --git a/js/contacts.js b/js/contacts.js index b64338bb..0fceb30b 100644 --- a/js/contacts.js +++ b/js/contacts.js @@ -185,20 +185,6 @@ document.addEventListener("DOMContentLoaded", function (event) { }); } - function secondsToDhms(seconds) { - seconds = Number(seconds); - var d = Math.floor(seconds / (3600 * 24)); - var h = Math.floor(seconds % (3600 * 24) / 3600); - var m = Math.floor(seconds % 3600 / 60); - var s = Math.floor(seconds % 60); - - var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : ""; - var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : ""; - var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : ""; - var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : ""; - return dDisplay + hDisplay + mDisplay + sDisplay; - } - function loadData(searchToken) { var baseUrl = OC.generateUrl('/apps/sciencemesh'); $('#test_error').hide(); diff --git a/js/generate.js b/js/generate.js deleted file mode 100644 index cea2ea08..00000000 --- a/js/generate.js +++ /dev/null @@ -1,6 +0,0 @@ -//I just seperate logic my module I mean if you are just use one file JS when you are go to another file it will -//give some error you need for every PHP file seperate JS logic -document.addEventListener("DOMContentLoaded", function (event) { - $('#test').hide(); - -}); \ No newline at end of file diff --git a/js/invitations.js b/js/invitations.js deleted file mode 100644 index 4dda445f..00000000 --- a/js/invitations.js +++ /dev/null @@ -1,37 +0,0 @@ -//I just seperate logic my module I mean if you are just use one file JS when you are go to another file it will -//give some error you need for every PHP file seperate JS logic -$('#test').hide(); -document.getElementById('elem').onclick = function () { - var baseUrl = OC.generateUrl('/apps/sciencemesh'); - $.ajax({ - url: baseUrl + '/invitations/generate', - type: 'GET', - contentType: 'application/json', - //data: JSON.stringify(note) - }).done(function (response) { - if (response === '' || response === false) { - var element = document.getElementById("test_1"); - element.innerHTML = 'No Sciencemesh Connection'; - } else { - let element = document.getElementById("show_result"); - element.innerText = `${response}`; - $('#test').show(); - } - }).fail(function (response, code) { - alert('The token is invalid') - }); -}; - -function secondsToDhms(seconds) { - seconds = Number(seconds); - var d = Math.floor(seconds / (3600 * 24)); - var h = Math.floor(seconds % (3600 * 24) / 3600); - var m = Math.floor(seconds % 3600 / 60); - var s = Math.floor(seconds % 60); - - var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : ""; - var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : ""; - var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : ""; - var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : ""; - return dDisplay + hDisplay + mDisplay + sDisplay; -} diff --git a/js/notifications.js b/js/notifications.js deleted file mode 100644 index 27147432..00000000 --- a/js/notifications.js +++ /dev/null @@ -1 +0,0 @@ -//Everything will be working with notifications \ No newline at end of file diff --git a/js/script.js b/js/script.js deleted file mode 100644 index 9315a196..00000000 --- a/js/script.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ownCloud - sciencemesh - * - * This file is licensed under the MIT License. See the COPYING file. - * - * @author Hugo Gonzalez Labrador - * @copyright Hugo Gonzalez Labrador 2020 - */ - -(function ($, OC) { - - $(document).ready(function () { - $('#hello').click(function () { - alert('Hello from your script file'); - }); - - $('#echo').click(function () { - var url = OC.generateUrl('/apps/sciencemesh/echo'); - var data = { - echo: $('#echo-content').val() - }; - - $.post(url, data).success(function (response) { - $('#echo-result').text(response.echo); - }); - - }); - }); - -})(jQuery, OC); \ No newline at end of file diff --git a/js/settings-admin.js b/js/settings-admin.js deleted file mode 100644 index d7d3ee4f..00000000 --- a/js/settings-admin.js +++ /dev/null @@ -1,29 +0,0 @@ -$(document).ready(function () { - $('#sciencemesh-api-key').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'apiKey', this.value); - }); - $('#sciencemesh-site-name').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'siteName', this.value); - }); - $('#sciencemesh-site-url').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'siteUrl', this.value); - }); - $('#sciencemesh-site-id').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'siteId', this.value); - }); - $('#sciencemesh-country').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'country', this.value); - }); - $('#sciencemesh-iop-url').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'iopUrl', this.value); - }); - $('#sciencemesh-num-users').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'numUsers', this.value); - }); - $('#sciencemesh-num-files').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'numFiles', this.value); - }); - $('#sciencemesh-num-storage').change(function (el) { - OCP.AppConfig.setValue('sciencemesh', 'numStorage', this.value); - }); -}); \ No newline at end of file diff --git a/lib/AdminSettings.php b/lib/AdminSettings.php deleted file mode 100644 index 3ebd2ad0..00000000 --- a/lib/AdminSettings.php +++ /dev/null @@ -1,67 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh; - -use OCP\AppFramework\Http\TemplateResponse; -use OCP\Settings\ISettings; - -/** - * Settings controller for the administration page - */ -class AdminSettings implements ISettings -{ - - public function __construct() - { - } - - /** - * Print config section - * - * @return TemplateResponse - */ - public function getPanel(): ?TemplateResponse - { - return $this->getForm(); - } - - public function getForm() - { - return null; - } - - /** - * Get section ID - * - * @return string - */ - public function getSectionID(): string - { - return "general"; - } - - /** - * Get priority order - * - * @return int - */ - public function getPriority(): int - { - return 50; - } - - public function getSection() - { - return null; - } -} diff --git a/lib/AppConfig.php b/lib/AppConfig.php deleted file mode 100644 index 1515b0d8..00000000 --- a/lib/AppConfig.php +++ /dev/null @@ -1,69 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh; - -use OC; -use OCP\IConfig; -use OCP\ILogger; - -/** - * Application configuration - * - * @package OCA\ScienceMesh - */ -class AppConfig -{ - - /** - * Application name - * - * @var string - */ - private string $appName; - - /** - * Config service - * - * @var IConfig - */ - private IConfig $config; - - /** - * Logger - * - * @var ILogger - */ - private ILogger $logger; - - /** - * @param string $AppName - application name - */ - public function __construct(string $AppName) - { - - $this->appName = $AppName; - - $this->config = OC::$server->getConfig(); - $this->logger = OC::$server->getLogger(); - } - - public function GetConfigValue($key) - { - return $this->config->getSystemValue($this->appName)[$key]; - } - - public function SetConfigValue($key, $value) - { - $this->config->setAppValue($this->appName, $key, $value); - } -} diff --git a/lib/AppInfo/ScienceMeshApp.php b/lib/AppInfo/ScienceMeshApp.php index 40930569..4d012217 100644 --- a/lib/AppInfo/ScienceMeshApp.php +++ b/lib/AppInfo/ScienceMeshApp.php @@ -12,60 +12,61 @@ namespace OCA\ScienceMesh\AppInfo; -use OC; -use OCA\ScienceMesh\GlobalConfig\GlobalScaleConfig; +use Exception; use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; use OCP\AppFramework\App; -use OCP\AppFramework\QueryException; class ScienceMeshApp extends App { - /** @var string */ - public const APP_ID = 'sciencemesh'; - /** @var string */ public const SCIENCEMESH_POSTFIX = ' (Sciencemesh)'; + // TODO: @Mahdi check if this can be replaced by Constants::SHARE_TYPE_REMOTE /** @var int */ public const SHARE_TYPE_SCIENCEMESH = 6; - public function __construct() - { - parent::__construct(self::APP_ID); - - $container = $this->getContainer(); - $server = $container->getServer(); - - $notificationManager = $server->getNotificationManager(); - $notificationManager->registerNotifier(function () use ($notificationManager) { - return $this->getContainer()->query('\OCA\ScienceMesh\Notifier\ScienceMeshNotifier'); - }, function () { - $l = OC::$server->getL10N('sciencemesh'); - return [ - 'id' => 'sciencemesh', - 'name' => $l->t('Science Mesh'), - ]; - }); - } + /** @var ScienceMeshShareProvider */ + protected ScienceMeshShareProvider $scienceMeshShareProvider; - // TODO @Mahdi: below function is probably useless, check and remove. /** - * @return ScienceMeshShareProvider - * @throws QueryException + * @throws Exception */ - public function getScienceMeshShareProvider(): ScienceMeshShareProvider + public function __construct(array $urlParams = array()) { + parent::__construct('sciencemesh', $urlParams); + $container = $this->getContainer(); - $dbConnection = $container->query("OCP\IDBConnection"); - $i10n = $container->query("OCP\IL10N"); + $connection = $container->query("OCP\IDBConnection"); + $eventDispatcher = $container->query("Symfony\Component\EventDispatcher\EventDispatcherInterface"); + $addressHandler = $container->query("OCA\FederatedFileSharing\AddressHandler"); + $notifications = $container->query("OCA\FederatedFileSharing\Notifications"); + $tokenHandler = $container->query("OCA\FederatedFileSharing\TokenHandler"); + $l10n = $container->query("OCP\IL10N"); $logger = $container->query("OCP\ILogger"); $rootFolder = $container->query("OCP\Files\IRootFolder"); - $config = $container->query("OCP\IConfig"); - $userManager = $container->query("OCP\IUserManger"); - $gsConfig = new GlobalScaleConfig($config); + $userManager = $container->query("OCP\IUserManager"); + + $this->scienceMeshShareProvider = new ScienceMeshShareProvider( + $connection, + $eventDispatcher, + $addressHandler, + $notifications, + $tokenHandler, + $l10n, + $logger, + $rootFolder, + $config, + $userManager + ); + } - return new ScienceMeshShareProvider($dbConnection, $i10n, $logger, $rootFolder, $config, $userManager, $gsConfig); + /** + * @throws Exception + */ + public function getScienceMeshShareProvider(): ScienceMeshShareProvider + { + return $this->scienceMeshShareProvider; } } diff --git a/lib/Controller/AuthController.php b/lib/Controller/AuthController.php new file mode 100644 index 00000000..6dfb4cef --- /dev/null +++ b/lib/Controller/AuthController.php @@ -0,0 +1,152 @@ + + */ + +namespace OCA\ScienceMesh\Controller; + + +use Exception; +use OC\Config; +use OCA\ScienceMesh\ServerConfig; +use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; +use OCA\ScienceMesh\Utils\StaticMethods; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\Files\NotPermittedException; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IRequest; + +use OCP\IUserManager; + +use OCP\Share\Exceptions\IllegalIDChangeException; +use OCP\Share\Exceptions\ShareNotFound; + +class AuthController extends Controller +{ + /** @var Config */ + private $config; + + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var IUserManager */ + private IUserManager $userManager; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** @var ScienceMeshShareProvider */ + private ScienceMeshShareProvider $shareProvider; + + + /** + * Authentication Controller. + * + * @param string $appName + * @param IRequest $request + * @param IConfig $config + * @param IL10N $l10n + * @param ILogger $logger + * @param IUserManager $userManager + * @param ScienceMeshShareProvider $shareProvider + */ + public function __construct( + string $appName, + IRequest $request, + + IConfig $config, + IL10N $l10n, + ILogger $logger, + IUserManager $userManager, + ScienceMeshShareProvider $shareProvider + ) + { + parent::__construct($appName, $request); + require_once(__DIR__ . "/../../vendor/autoload.php"); + + $this->request = $request; + $this->config = new ServerConfig($config); + $this->l = $l10n; + $this->logger = $logger; + $this->userManager = $userManager; + $this->shareProvider = $shareProvider; + $this->utils = new StaticMethods($l10n, $logger); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + * @throws ShareNotFound|IllegalIDChangeException + * @throws Exception + */ + public function Authenticate($userId): JSONResponse + { + error_log("Authenticate: " . $userId); + + $this->utils->checkRevadAuth($this->request, $this->config->getRevaSharedSecret()); + + if ($this->userManager->userExists($userId)) { + $userId = $this->request->getParam("clientID"); + $password = $this->request->getParam("clientSecret"); + // Try e.g.: + // curl -v -H 'Content-Type:application/json' -d'{"clientID":"einstein",clientSecret":"relativity"}' http://einstein:relativity@localhost/index.php/apps/sciencemesh/~einstein/api/auth/Authenticate + + // see: https://github.com/cs3org/reva/issues/2356 + if ($password == $this->config->getRevaLoopbackSecret()) { + // NOTE: @Mahdi, usually everything goes in this branch. + $user = $this->userManager->get($userId); + } else { + $user = $this->userManager->checkPassword($userId, $password); + } + + } else { + $share = $this->shareProvider->getSentShareByToken($userId); + $userId = $share->getSharedBy(); + $user = $this->userManager->get($userId); + } + + if ($user) { + // FIXME: @Mahdi this hardcoded value represents the json below and is not needed. + // { + // "resource_id": { + // "storage_id": "storage-id", + // "opaque_id": "opaque-id" + // }, + // "path": "some/file/path.txt" + // } + $result = [ + "user" => $this->utils->formatUser($user, $this->config->getIopIdp()), + "scopes" => [ + "user" => [ + "resource" => [ + "decoder" => "json", + "value" => "eyJyZXNvdXJjZV9pZCI6eyJzdG9yYWdlX2lkIjoic3RvcmFnZS1pZCIsIm9wYXF1ZV9pZCI6Im9wYXF1ZS1pZCJ9LCJwYXRoIjoic29tZS9maWxlL3BhdGgudHh0In0=", + ], + "role" => 1, + ], + ], + ]; + + return new JSONResponse($result, Http::STATUS_OK); + } + + return new JSONResponse("Username / password not recognized", Http::STATUS_UNAUTHORIZED); + } +} diff --git a/lib/Controller/ContactsController.php b/lib/Controller/ContactsController.php index 10233867..3169a0f6 100644 --- a/lib/Controller/ContactsController.php +++ b/lib/Controller/ContactsController.php @@ -13,15 +13,86 @@ namespace OCA\ScienceMesh\Controller; use OCA\ScienceMesh\PlainResponse; +use OCA\ScienceMesh\RevaHttpClient; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; +use OCP\AppFramework\Http\TemplateResponse; +use OCP\IRequest; class ContactsController extends Controller { + /** @var ?string */ + private ?string $userId; + + /** @var RevaHttpClient */ + private RevaHttpClient $revaHttpClient; + + public function __construct( + string $appName, + IRequest $request, + ?string $userId, + RevaHttpClient $revaHttpClient + ) + { + parent::__construct($appName, $request); + + $this->userId = $userId; + $this->revaHttpClient = $revaHttpClient; + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function contacts(): TemplateResponse + { + $contactsData = [ + ]; + return new TemplateResponse('sciencemesh', 'contacts', $contactsData); + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function contactsAccept(): PlainResponse + { + $providerDomain = $this->request->getParam('providerDomain'); + $token = $this->request->getParam('token'); + $result = $this->revaHttpClient->acceptInvite($providerDomain, $token, $this->userId); + return new PlainResponse($result, Http::STATUS_OK); + } + // TODO: @Mahdi @Giuseppe: is delete contact implemented in Reva? public function deleteContact(): PlainResponse { error_log('contact ' . $_POST['username'] . ' is deleted'); return new PlainResponse(true, Http::STATUS_OK); } + + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function contactsFindUsers($searchToken = ""): PlainResponse + { + $find_users_json = $this->revaHttpClient->findAcceptedUsers($this->userId); + + $find_users = json_decode($find_users_json, false); + $return_users = array(); + if (strlen($searchToken) > 0) { + if (!empty($find_users)) { + for ($i = count($find_users); $i >= 0; $i--) { + if (str_contains($find_users[$i]->display_name, $searchToken) and !is_null($find_users[$i])) { + $return_users[] = $find_users[$i]; + } + } + } + } else { + $return_users = json_decode($find_users_json, false); + } + + error_log('test:' . json_encode($return_users)); + return new PlainResponse(json_encode($return_users), Http::STATUS_OK); + } } diff --git a/lib/Controller/OcmController.php b/lib/Controller/OcmController.php new file mode 100644 index 00000000..f81d2628 --- /dev/null +++ b/lib/Controller/OcmController.php @@ -0,0 +1,822 @@ + + */ + +namespace OCA\ScienceMesh\Controller; + +use DateTime; +use Exception; +use OC\Config; +use OC\HintException; +use OCA\ScienceMesh\AppInfo\ScienceMeshApp; +use OCA\ScienceMesh\ServerConfig; +use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; +use OCA\ScienceMesh\Utils\StaticMethods; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\Constants; +use OCP\Files\Folder; +use OCP\Files\InvalidPathException; +use OCP\Files\IRootFolder; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IRequest; +use OCP\IUserManager; +use OCP\Share\Exceptions\IllegalIDChangeException; +use OCP\Share\Exceptions\ShareNotFound; +use OCP\Share\IManager; + +class OcmController extends Controller +{ + /** @var IUserManager */ + private IUserManager $userManager; + + /** @var Config */ + private $config; + + /** @var IRootFolder */ + private IRootFolder $rootFolder; + + /** @var IManager */ + private IManager $shareManager; + + /** @var Folder */ + private Folder $userFolder; + + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** @var ScienceMeshShareProvider */ + private ScienceMeshShareProvider $shareProvider; + + /** + * Open Cloud Mesh (OCM) Controller. + * + * @param string $appName + * @param IRootFolder $rootFolder + * @param IRequest $request + * @param IUserManager $userManager + * @param IConfig $config + * @param IManager $shareManager + * @param IL10N $l10n + * @param ILogger $logger + * @param ScienceMeshShareProvider $shareProvider + */ + public function __construct( + string $appName, + IRootFolder $rootFolder, + IRequest $request, + IUserManager $userManager, + IConfig $config, + IManager $shareManager, + IL10N $l10n, + ILogger $logger, + ScienceMeshShareProvider $shareProvider + ) + { + parent::__construct($appName, $request); + require_once(__DIR__ . "/../../vendor/autoload.php"); + + $this->rootFolder = $rootFolder; + $this->request = $request; + $this->userManager = $userManager; + $this->config = new ServerConfig($config); + $this->shareManager = $shareManager; + $this->l = $l10n; + $this->logger = $logger; + $this->shareProvider = $shareProvider; + $this->utils = new StaticMethods($l10n, $logger); + } + + /** + * @throws NotPermittedException + * @throws Exception + */ + private function init($userId) + { + error_log("RevaController init for user '$userId'"); + $this->utils->checkRevadAuth($this->request, $this->config->getRevaSharedSecret()); + if ($userId) { + error_log("root folder absolute path '" . $this->rootFolder->getPath() . "'"); + if ($this->rootFolder->nodeExists($userId)) { + $this->userFolder = $this->rootFolder->getUserFolder($userId); + error_log("user folder '" . $this->userFolder->getPath() . "'"); + } else { + throw new Exception("Home folder not found for user '$userId', have they logged in through the ownCloud web interface yet?"); + } + } + } + + /** + * add a received share. + * + * @NoCSRFRequired + * @PublicPage + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + * @throws Exception + */ + public function addReceivedShare($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $params = $this->request->getParams(); + error_log("addReceivedShare " . var_export($params, true)); + + $name = $params["name"] ?? null; + $ctime = (int)$params["ctime"]["seconds"] ?? null; + $mtime = (int)$params["mtime"]["seconds"] ?? null; + $remoteShareId = $params["remoteShareId"] ?? null; + + if (!isset($name)) { + return new JSONResponse("name not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ctime)) { + return new JSONResponse("ctime not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($mtime)) { + return new JSONResponse("mtime not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($remoteShareId)) { + return new JSONResponse("remoteShareId not found in the request.", Http::STATUS_BAD_REQUEST); + } + + if (isset($params["grantee"]["userId"])) { + $granteeIdp = $params["grantee"]["userId"]["idp"] ?? null; + $granteeOpaqueId = $params["grantee"]["userId"]["opaqueId"] ?? null; + } + + if (isset($params["owner"])) { + $ownerIdp = $params["owner"]["idp"] ?? null; + $ownerOpaqueId = $params["owner"]["opaqueId"] ?? null; + } + + if (isset($params["creator"])) { + $creatorIdp = $params["creator"]["idp"] ?? null; + $creatorOpaqueId = $params["creator"]["opaqueId"] ?? null; + } + + if (!isset($granteeIdp)) { + return new JSONResponse("grantee idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($granteeOpaqueId)) { + return new JSONResponse("grantee opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ownerIdp)) { + return new JSONResponse("owner idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ownerOpaqueId)) { + return new JSONResponse("owner opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($creatorIdp)) { + return new JSONResponse("creator idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($creatorOpaqueId)) { + return new JSONResponse("creator opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + + if (!isset($params["protocols"])) { + return new JSONResponse("protocols not found in the request.", Http::STATUS_BAD_REQUEST); + } + + $protocols = $params["protocols"]; + + foreach ($protocols as $protocol) { + if (isset($protocol["transferOptions"])) { + $ocmProtocolTransfer = $protocol["transferOptions"]; + } + if (isset($protocol["webappOptions"])) { + $ocmProtocolWebapp = $protocol["webappOptions"]; + } + if (isset($protocol["webdavOptions"])) { + $ocmProtocolWebdav = $protocol["webdavOptions"]; + } + } + + if (!isset($ocmProtocolWebdav)) { + return new JSONResponse("webdavOptions not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // handle bad cases and eliminate null variables. + if (!isset($ocmProtocolWebdav["permissions"]["permissions"])) { + return new JSONResponse("webdavOptions permissions not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ocmProtocolWebdav["sharedSecret"])) { + return new JSONResponse("webdavOptions sharedSecret not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ocmProtocolWebdav["uri"])) { + return new JSONResponse("webdavOptions uri not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // convert permissions from array to integer. + $integerPermissions = $this->utils->getPermissionsCode($ocmProtocolWebdav["permissions"]["permissions"]); + $ocmProtocolWebdav["permissions"] = $integerPermissions; + + $sharedSecret = $ocmProtocolWebdav["sharedSecret"]; + // URI example: https://nc1.docker/remote.php/dav/ocm/vaKE36Wf1lJWCvpDcRQUScraVP5quhzA + $uri = $ocmProtocolWebdav["uri"]; + // remote extracted from URI: https://nc1.docker + // below line splits uri by the "/" character, picks first 3 items aka ["https:", "", "nc.docker"] + // and joins them again with "/" character in between. + $remote = implode("/", array_slice(explode("/", $uri), 0, 3)); + + if (!isset($remote)) { + return new JSONResponse("Correct WebDAV URI not found in the request. remote is: $remote", Http::STATUS_BAD_REQUEST); + } + + // TODO: @Mahdi write checks for webapp and transfer protocols missing properties and return STATUS_BAD_REQUEST. + + // remove trailing "/" from share name. + $name = rtrim($name, "/"); + + // prepare data for adding to the native efss table. + $efssShareData = [ + // "https://nc1.docker" + "remote" => $remote, + // the id of the share in the oc_share table of the remote. + "remote_id" => $remoteShareId, + // "tDPRTrLI4hE3C5T" + "share_token" => $sharedSecret, + // password is always null. ScienceMesh doesn't have password protected shares. + "password" => null, + // "TestFolder" + "name" => $name, + // "einstein" + "owner" => $ownerOpaqueId, + // receiver "marie" + "user" => $userId + ]; + + $efssShareId = $this->shareProvider->addReceivedOcmShareToEfssTable($efssShareData); + + // prepare data for adding to the ScienceMesh OCM table. + // see: https://github.com/sciencemesh/nc-sciencemesh/issues/45 + $expiration = $params["expiration"] ?? null; + if (isset($expiration)) { + $expiration = (int)$expiration; + } + + $ocmShareData = [ + "share_external_id" => $efssShareId, + "name" => $name, + "share_with" => $granteeOpaqueId . "@" . $granteeIdp, + "owner" => $ownerOpaqueId . "@" . $ownerIdp, + "initiator" => $creatorOpaqueId . "@" . $creatorIdp, + "ctime" => $ctime, + "mtime" => $mtime, + "expiration" => $expiration, + "remote_share_id" => $remoteShareId, + "transfer" => $ocmProtocolTransfer ?? null, + "webapp" => $ocmProtocolWebapp ?? null, + "webdav" => $ocmProtocolWebdav, + ]; + + $this->shareProvider->addReceivedOcmShareToSciencemeshTable($ocmShareData); + + return new JSONResponse($efssShareId, Http::STATUS_CREATED); + } + + /** + * Create a new share in fn with the given access control list. + * + * @PublicPage + * @NoCSRFRequired + * @return Http\DataResponse|JSONResponse + * + * @throws NotFoundException + * @throws NotPermittedException + * @throws Exception + */ + public function addSentShare($userId) + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $params = $this->request->getParams(); + error_log("addSentShare " . var_export($params, true)); + + $name = $params["name"] ?? null; + $token = $params["token"] ?? null; + $ctime = (int)$params["ctime"]["seconds"] ?? null; + $mtime = (int)$params["mtime"]["seconds"] ?? null; + $resourceId = $params["resourceId"]["opaqueId"] ?? null; + $payloadUserId = $params["userId"] ?? null; + + if (!isset($name)) { + return new JSONResponse("name not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($token)) { + return new JSONResponse("token not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ctime)) { + return new JSONResponse("ctime not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($mtime)) { + return new JSONResponse("mtime not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($resourceId)) { + return new JSONResponse("resourceId->opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($payloadUserId)) { + return new JSONResponse("userId not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // chained path conversions to verify this file exists in our server. + // "fileid-/home/test" -> "/home/test" -> "/test" + $revaPath = $this->utils->revaPathFromOpaqueId($resourceId); + $efssPath = $this->utils->revaPathToEfssPath($revaPath); + + try { + $node = $this->userFolder->get($efssPath); + } catch (NotFoundException $e) { + return new JSONResponse("share failed. resource path not found.", Http::STATUS_BAD_REQUEST); + } + + if (isset($params["grantee"]["userId"])) { + $granteeIdp = $params["grantee"]["userId"]["idp"] ?? null; + $granteeOpaqueId = $params["grantee"]["userId"]["opaqueId"] ?? null; + } + + if (isset($params["owner"])) { + $ownerIdp = $params["owner"]["idp"] ?? null; + $ownerOpaqueId = $params["owner"]["opaqueId"] ?? null; + } + + if (isset($params["creator"])) { + $creatorIdp = $params["creator"]["idp"] ?? null; + $creatorOpaqueId = $params["creator"]["opaqueId"] ?? null; + } + + if (!isset($granteeIdp)) { + return new JSONResponse("grantee idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($granteeOpaqueId)) { + return new JSONResponse("grantee opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ownerIdp)) { + return new JSONResponse("owner idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($ownerOpaqueId)) { + return new JSONResponse("owner opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($creatorIdp)) { + return new JSONResponse("creator idp not found in the request.", Http::STATUS_BAD_REQUEST); + } + if (!isset($creatorOpaqueId)) { + return new JSONResponse("creator opaqueId not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // NOTE: @Mahdi this 3 variables should be exactly same as of now. + // maybe it would be subject to change in future but for now it is good to check these + // instead of blindly assuming they're same. + if ($userId !== $payloadUserId || $userId !== $creatorOpaqueId || $payloadUserId !== $creatorOpaqueId) { + return new JSONResponse( + "creator->opaqueId, userId and userId from the payload are mismatched.", + Http::STATUS_UNPROCESSABLE_ENTITY + ); + } + + // don't allow ScienceMesh shares if source and target server are the same. + // this means users with the same reva iop cannot share with each other via sciencemesh and + // should use their native efss capabilities to do so. + // see: https://github.com/sciencemesh/nc-sciencemesh/issues/57 + if ($ownerIdp === $granteeIdp) { + $message = "Not allowed to create a ScienceMesh share for a user on the same server %s as sender %s."; + $this->logger->debug( + sprintf( + $message, $ownerIdp, $granteeIdp + ), + ["app" => "sciencemesh"] + ); + return new JSONResponse( + "Not allowed to create a ScienceMesh share for a user on the same server %s as sender %s.", + Http::STATUS_UNPROCESSABLE_ENTITY + ); + } + + if (!isset($params["accessMethods"])) { + return new JSONResponse("accessMethods not found in the request.", Http::STATUS_BAD_REQUEST); + } + + $accessMethods = $params["accessMethods"]; + + // TODO: @Mahdi these one has problems, check and debug. + foreach ($accessMethods as $method) { + if (isset($method["transferOptions"])) { + $ocmProtocolTransfer = $method["transferOptions"]; + } + if (isset($method["webappOptions"])) { + $ocmProtocolWebapp = $method["webappOptions"]; + } + if (isset($method["webdavOptions"])) { + $ocmProtocolWebdav = $method["webdavOptions"]; + } + } + + if (!isset($ocmProtocolWebdav)) { + return new JSONResponse("webdavOptions not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // handle bad cases and eliminate null variables. + if (!isset($ocmProtocolWebdav["permissions"])) { + return new JSONResponse("webdavOptions permissions not found in the request.", Http::STATUS_BAD_REQUEST); + } + + // convert permissions from array to integer. + $permissions = $this->utils->getPermissionsCode($ocmProtocolWebdav["permissions"]); + + // prepare data for adding to the native efss table. + $share = $this->shareManager->newShare(); + $share->setNode($node); + + $share->setShareType(ScienceMeshApp::SHARE_TYPE_SCIENCEMESH); + $share->setSharedWith($granteeOpaqueId . "@" . $granteeIdp); + $share->setShareOwner($ownerOpaqueId); + $share->setSharedBy($creatorOpaqueId); + $share->setPermissions($permissions); + $share->setToken($token); + $share->setShareTime(new DateTime("@$ctime")); + + // check if file is not already shared with the remote user + $alreadyShared = $this->shareProvider->getSharedWith( + $share->getSharedWith(), + $share->getShareType(), + $share->getNode(), + 1, + 0 + ); + + if (!empty($alreadyShared)) { + $message = "Sharing %s failed, because this item is already shared with %s"; + $message_t = $this->l->t( + "Sharing %s failed, because this item is already shared with %s", + [$share->getNode()->getName(), $share->getSharedWith()] + ); + $this->logger->debug( + sprintf( + $message, $share->getNode()->getName(), $share->getSharedWith() + ), + ["app" => "sciencemesh"] + ); + return new JSONResponse($message_t, Http::STATUS_CONFLICT); + } + + // ScienceMesh shares always have read permissions + if (($share->getPermissions() & Constants::PERMISSION_READ) === 0) { + $message = 'ScienceMesh shares require read permissions'; + $message_t = $this->l->t('ScienceMesh shares require read permissions'); + $this->logger->debug($message, ['app' => 'ScienceMesh']); + return new JSONResponse($message_t, Http::STATUS_UNPROCESSABLE_ENTITY); + } + + $this->utils->lock($share->getNode()); + + // prepare share data for ocm + $share = $this->shareProvider->createNativeEfssScienceMeshShare($share); + $efssShareInternalId = $share->getId(); + + // prepare data for adding to the ScienceMesh OCM table. + // see: https://github.com/sciencemesh/nc-sciencemesh/issues/45 + + $expiration = $params["expiration"] ?? null; + if (isset($expiration)) { + $expiration = (int)$expiration; + } + + $ocmShareData = [ + "share_internal_id" => $efssShareInternalId, + "name" => $name, + "share_with" => $granteeOpaqueId . "@" . $granteeIdp, + "owner" => $ownerOpaqueId . "@" . $ownerIdp, + "initiator" => $creatorOpaqueId . "@" . $creatorIdp, + "ctime" => $ctime, + "mtime" => $mtime, + "expiration" => $expiration, + "transfer" => $ocmProtocolTransfer ?? null, + "webapp" => $ocmProtocolWebapp ?? null, + "webdav" => $ocmProtocolWebdav, + ]; + + $this->shareProvider->addSentOcmShareToSciencemeshTable($ocmShareData); + + return new DataResponse($efssShareInternalId, Http::STATUS_CREATED); + } + + /** + * getReceivedShare returns the information for a received share the user has access. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function getReceivedShare($userId): JSONResponse + { + error_log("GetReceivedShare"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; + $name = $this->getNameByOpaqueId($opaqueId); + + try { + $share = $this->shareProvider->getReceivedShareByToken($opaqueId); + $response = $this->utils->shareInfoToCs3Share($this->shareProvider, $share, "received", $opaqueId); + $response["state"] = 2; + return new JSONResponse($response, Http::STATUS_OK); + } catch (Exception $e) { + return new JSONResponse(["error" => $e->getMessage()], Http::STATUS_BAD_REQUEST); + } + } + + /** + * getSentShare gets the information for a share by the given ref. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws InvalidPathException + * @throws NotFoundException + * @throws NotPermittedException + */ + public function getSentShare($userId): JSONResponse + { + error_log("GetSentShare"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; + $name = $this->getNameByOpaqueId($opaqueId); + $share = $this->shareProvider->getSentShareByName($userId, $name); + + if ($share) { + $response = $this->utils->shareInfoToCs3Share($this->shareProvider, $share, "sent"); + return new JSONResponse($response, Http::STATUS_OK); + } + + return new JSONResponse(["error" => "GetSentShare failed"], Http::STATUS_NOT_FOUND); + } + + /** + * getSentShareByToken gets the information for a share by the given token. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws NotPermittedException + */ + public function getSentShareByToken($userId): JSONResponse + { + error_log("GetSentShareByToken: user is -> $userId"); + + // see: https://github.com/cs3org/reva/pull/4115#discussion_r1308371946 + if ($userId !== "nobody") { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + } + + // TODO: @Mahdi check for being null? + $token = $this->request->getParam("Spec")["Token"]; + error_log("GetSentShareByToken: " . var_export($this->request->getParam("Spec"), true)); + + try { + $share = $this->shareProvider->getSentShareByToken($token); + } catch (ShareNotFound|IllegalIDChangeException $e) { + // TODO: @Mahdi log it. + return new JSONResponse( + ["error" => "GetSentShareByToken failed! because: $e"], + Http::STATUS_BAD_REQUEST + ); + } + + try { + $response = $this->utils->shareInfoToCs3Share($this->shareProvider, $share, "sent", $token); + return new JSONResponse($response, Http::STATUS_OK); + } catch (NotFoundException|InvalidPathException $e) { + // TODO: @Mahdi log it. + return new JSONResponse( + ["error" => "GetSentShareByToken failed! because: $e"], + Http::STATUS_BAD_REQUEST + ); + } + } + + /** + * listReceivedShares returns the list of shares the user has access. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws InvalidPathException + * @throws NotFoundException + * @throws NotPermittedException + */ + public function listReceivedShares($userId): JSONResponse + { + error_log("ListReceivedShares"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $responses = []; + $shares = $this->shareProvider->getReceivedShares($userId); + + if ($shares) { + foreach ($shares as $share) { + $response = $this->utils->shareInfoToCs3Share($this->shareProvider, $share, "received"); + $responses[] = [ + "share" => $response, + "state" => 2 + ]; + } + } + + return new JSONResponse($responses, Http::STATUS_OK); + } + + /** + * listSentShares returns the shares created by the user. If md is provided is not nil, + * it returns only shares attached to the given resource. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws InvalidPathException + * @throws NotFoundException + * @throws NotPermittedException + */ + public function listSentShares($userId): JSONResponse + { + error_log("ListSentShares"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $responses = []; + $shares = $this->shareProvider->getSentShares($userId); + + if ($shares) { + foreach ($shares as $share) { + $responses[] = $this->utils->shareInfoToCs3Share($this->shareProvider, $share, "sent"); + } + } + return new JSONResponse($responses, Http::STATUS_OK); + } + + # TODO: @Mahdi where is UpdateShare endpoint? not implemented? + + /** + * Remove Share from share table + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws NotPermittedException + */ + public function unshare($userId): JSONResponse + { + error_log("Unshare"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; + $name = $this->getNameByOpaqueId($opaqueId); + + if ($this->shareProvider->deleteSentShareByName($userId, $name)) { + return new JSONResponse("Deleted Sent Share", Http::STATUS_OK); + } else { + if ($this->shareProvider->deleteReceivedShareByOpaqueId($userId, $opaqueId)) { + return new JSONResponse("Deleted Received Share", Http::STATUS_OK); + } else { + return new JSONResponse("Could not find share", Http::STATUS_BAD_REQUEST); + } + } + } + + /** + * updateReceivedShare updates the received share with share state. + * + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws NotPermittedException + */ + public function updateReceivedShare($userId): JSONResponse + { + error_log("UpdateReceivedShare"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $resourceId = $this->request->getParam("received_share")["share"]["resource_id"]; + $permissions = $this->request->getParam("received_share")["share"]["permissions"]; + $permissionsCode = $this->utils->getPermissionsCode($permissions); + + try { + $share = $this->shareProvider->getReceivedShareByToken($resourceId); + $share->setPermissions($permissionsCode); + $shareUpdate = $this->shareProvider->UpdateReceivedShare($share); + $response = $this->utils->shareInfoToCs3Share( + $this->shareProvider, + $shareUpdate, + "received", + $resourceId + ); + $response["state"] = 2; + return new JSONResponse($response, Http::STATUS_OK); + } catch (Exception $e) { + return new JSONResponse(["error" => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); + } + } + + + /** + * @PublicPage + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * + * @throws InvalidPathException + * @throws NotFoundException + * @throws NotPermittedException + * @throws ShareNotFound|HintException + */ + public function updateSentShare($userId): JSONResponse + { + error_log("UpdateSentShare"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $opaqueId = $this->request->getParam("ref")["Spec"]["Id"]["opaque_id"]; + $permissions = $this->request->getParam("p")["permissions"]; + $permissionsCode = $this->utils->getPermissionsCode($permissions); + $name = $this->getNameByOpaqueId($opaqueId); + if (!($share = $this->shareProvider->getSentShareByName($userId, $name))) { + return new JSONResponse(["error" => "UpdateSentShare failed"], Http::STATUS_INTERNAL_SERVER_ERROR); + } + + $share->setPermissions($permissionsCode); + $shareUpdated = $this->shareProvider->update($share); + $response = $this->utils->shareInfoToCs3Share($this->shareProvider, $shareUpdated, "sent"); + return new JSONResponse($response, Http::STATUS_OK); + } +} diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 6124d208..de822c2a 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -27,21 +27,15 @@ class PageController extends Controller { - /** @var string */ - private string $userId; - - /** @var ILogger */ - private ILogger $logger; - /** @var IDBConnection */ protected IDBConnection $connection; - + /** @var ILogger */ + private ILogger $logger; /** @var IClientService */ private IClientService $httpClientService; public function __construct( string $appName, - string $userId, ILogger $logger, IRequest $request, IDBConnection $connection, @@ -50,7 +44,6 @@ public function __construct( { parent::__construct($appName, $request); - $this->userId = $userId; $this->logger = $logger; $this->connection = $connection; $this->httpClientService = $httpClientService; @@ -68,9 +61,8 @@ public function __construct( */ public function index(): TemplateResponse { - $params = ['user' => $this->userId]; // templates/main.php - return new TemplateResponse('sciencemesh', 'main', $params); + return new TemplateResponse('sciencemesh', 'main'); } /** @@ -154,21 +146,4 @@ public function getInternalMetrics(): JSONResponse $payload = ["metrics" => $metrics, "settings" => $settings]; return new JSONResponse($payload); } - - /* to get them from system rather than manual input */ - /* - private function getInternal() { - $queryBuilder = $this->connection->getQueryBuilder(); - $queryBuilder->select($queryBuilder->createFunction('count(*)')) - ->from('users'); - $result = $queryBuilder->execute(); - $count = $result->fetchColumn(); - $hostname = \OCP\Util::getServerHostName(); - $params = [ - 'total_users' => intval($count), - ]; - return $params; - } - */ - } diff --git a/lib/Controller/RevaController.php b/lib/Controller/RevaController.php deleted file mode 100644 index ad5cd313..00000000 --- a/lib/Controller/RevaController.php +++ /dev/null @@ -1,1621 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh\Controller; - -use DateTime; -use Exception; -use OC\Config; -use OC\Files\View; -use OCA\DAV\TrashBin\TrashBinManager; -use OCA\ScienceMesh\AppInfo\ScienceMeshApp; -use OCA\ScienceMesh\ServerConfig; -use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; -use OCP\AppFramework\Controller; -use OCP\AppFramework\Http; -use OCP\AppFramework\Http\DataResponse; -use OCP\AppFramework\Http\JSONResponse; -use OCP\AppFramework\Http\StreamResponse; -use OCP\Constants; -use OCP\Files\FileInfo; -use OCP\Files\Folder; -use OCP\Files\InvalidPathException; -use OCP\Files\IRootFolder; -use OCP\Files\Node; -use OCP\Files\NotFoundException; -use OCP\Files\NotPermittedException; -use OCP\IConfig; -use OCP\IRequest; -use OCP\IURLGenerator; -use OCP\IUserManager; -use OCP\Lock\ILockingProvider; -use OCP\Lock\LockedException; -use OCP\Share\Exceptions\ShareNotFound; -use OCP\Share\IManager; -use OCP\Share\IShare; -use Symfony\Component\Filesystem\Exception\FileNotFoundException; - -define('RESTRICT_TO_SCIENCEMESH_FOLDER', false); -define('EFSS_PREFIX', (RESTRICT_TO_SCIENCEMESH_FOLDER ? 'sciencemesh/' : '')); - -// See https://github.com/pondersource/sciencemesh-php/issues/96#issuecomment-1298656896 -define('REVA_PREFIX', '/home/'); - -class RevaController extends Controller -{ - /** @var IUserManager */ - private IUserManager $userManager; - - /** @var IURLGenerator */ - private IURLGenerator $urlGenerator; - - /** @var Config */ - private $config; - - /** @var IRootFolder */ - private IRootFolder $rootFolder; - - /** @var TrashBinManager */ - private TrashBinManager $trashManager; - - /** @var IManager */ - private IManager $shareManager; - - /** @var ScienceMeshShareProvider */ - private ScienceMeshShareProvider $shareProvider; - - /** @var string */ - private string $userId; - - /** @var Folder */ - private Folder $userFolder; - - public function __construct( - string $appName, - IRootFolder $rootFolder, - IRequest $request, - IUserManager $userManager, - IURLGenerator $urlGenerator, - IConfig $config, - TrashBinManager $trashManager, - IManager $shareManager, - ScienceMeshShareProvider $shareProvider - ) - { - parent::__construct($appName, $request); - require_once(__DIR__ . '/../../vendor/autoload.php'); - - $this->rootFolder = $rootFolder; - $this->request = $request; - $this->userManager = $userManager; - $this->urlGenerator = $urlGenerator; - $this->config = new ServerConfig($config); - $this->trashManager = $trashManager; - $this->shareManager = $shareManager; - $this->shareProvider = $shareProvider; - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function AddGrant($userId): JSONResponse - { - error_log("AddGrant"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - // FIXME: Expected a param with a grant to add here; - - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @throws NotPermittedException - * @throws Exception - */ - private function init($userId) - { - error_log("RevaController init for user '$userId'"); - $this->userId = $userId; - $this->checkRevadAuth(); - if ($userId) { - error_log("root folder absolute path '" . $this->rootFolder->getPath() . "'"); - if ($this->rootFolder->nodeExists($userId)) { - $this->userFolder = $this->rootFolder->getUserFolder($userId); - error_log("user folder '" . $this->userFolder->getPath() . "'"); - } else { - throw new Exception("Home folder not found for user '$userId', have they logged in through the ownCloud web interface yet?"); - } - } - } - - /** - * @throws NotPermittedException - */ - private function checkRevadAuth() - { - error_log("checkRevadAuth"); - $authHeader = $this->request->getHeader('X-Reva-Secret'); - - if ($authHeader != $this->config->getRevaSharedSecret()) { - throw new NotPermittedException('Please set an http request header "X-Reva-Secret: "!'); - } - } - - private function revaPathToEfssPath($revaPath): string - { - if ("$revaPath/" == REVA_PREFIX) { - error_log("revaPathToEfssPath: Interpreting special case $revaPath as ''"); - return ''; - } - $ret = EFSS_PREFIX . $this->removePrefix($revaPath, REVA_PREFIX); - error_log("revaPathToEfssPath: Interpreting $revaPath as $ret"); - return $ret; - } - - private function removePrefix($string, $prefix) - { - // first check if string is actually prefixed or not. - $len = strlen($prefix); - if (substr($string, 0, $len) === $prefix) { - $ret = substr($string, $len); - } else { - $ret = $string; - } - - return $ret; - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - * @throws ShareNotFound - */ - public function Authenticate($userId): JSONResponse - { - error_log("Authenticate"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - $share = $this->shareProvider->getSentShareByToken($userId); - if ($share) { - $sharedWith = explode("@", $share->getSharedWith()); - $result = [ - "user" => $this->formatFederatedUser($sharedWith[0], $sharedWith[1]), - "scopes" => [], - ]; - return new JSONResponse($result, Http::STATUS_OK); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - } - - $userId = $this->request->getParam("clientID"); - $password = $this->request->getParam("clientSecret"); - - // Try e.g.: - // curl -v -H 'Content-Type:application/json' -d'{"clientID":"einstein",clientSecret":"relativity"}' http://einstein:relativity@localhost/index.php/apps/sciencemesh/~einstein/api/auth/Authenticate - - // see: https://github.com/cs3org/reva/issues/2356 - if ($password == $this->config->getRevaLoopbackSecret()) { - $user = $this->userManager->get($userId); - } else { - $user = $this->userManager->checkPassword($userId, $password); - } - if ($user) { - // FIXME this hardcoded value represents {"resource_id":{"storage_id":"storage-id","opaque_id":"opaque-id"},"path":"some/file/path.txt"} and is not needed - $result = [ - "user" => $this->formatUser($user), - "scopes" => [ - "user" => [ - "resource" => [ - "decoder" => "json", - "value" => "eyJyZXNvdXJjZV9pZCI6eyJzdG9yYWdlX2lkIjoic3RvcmFnZS1pZCIsIm9wYXF1ZV9pZCI6Im9wYXF1ZS1pZCJ9LCJwYXRoIjoic29tZS9maWxlL3BhdGgudHh0In0=", - ], - "role" => 1, - ], - ], - ]; - return new JSONResponse($result, Http::STATUS_OK); - } - - return new JSONResponse("Username / password not recognized", 401); - } - - /** - * GetSentShareByToken gets the information for a share by the given token. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - * @throws ShareNotFound - */ - public function GetSentShareByToken($userId): JSONResponse - { - error_log("GetSentShareByToken: user is -> $userId"); - - // See: https://github.com/cs3org/reva/pull/4115#discussion_r1308371946 - if ($userId !== "nobody") { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - } - - $token = $this->request->getParam("Spec")["Token"]; - error_log("GetSentShareByToken: " . var_export($this->request->getParam("Spec"), true)); - - $share = $this->shareProvider->getSentShareByToken($token); - - if ($share) { - $response = $this->shareInfoToCs3Share($share, $token); - return new JSONResponse($response, Http::STATUS_OK); - } - - return new JSONResponse(["error" => "GetSentShare failed"], Http::STATUS_BAD_REQUEST); - } - - /** - * @throws NotFoundException - * @throws InvalidPathException - */ - private function shareInfoToCs3Share(IShare $share, $token = ''): array - { - $shareeParts = explode("@", $share->getSharedWith()); - if (count($shareeParts) == 1) { - error_log("warning, could not find sharee user@host from '" . $share->getSharedWith() . "'"); - $shareeParts = ["unknown", "unknown"]; - } - - $ownerParts = [$share->getShareOwner(), $this->getDomainFromURL($this->config->getIopUrl())]; - - $stime = 0; // $share->getShareTime()->getTimeStamp(); - - try { - $filePath = $share->getNode()->getPath(); - $opaqueId = "fileid-" . $filePath; - } catch (NotFoundException $e) { - $opaqueId = "unknown"; - } - - // produces JSON that maps to - // https://github.com/cs3org/reva/blob/v1.18.0/pkg/ocm/share/manager/nextcloud/nextcloud.go#L77 - // and - // https://github.com/cs3org/go-cs3apis/blob/d297419/cs3/sharing/ocm/v1beta1/resources.pb.go#L100 - $payload = [ - "id" => [ - // https://github.com/cs3org/go-cs3apis/blob/d297419/cs3/sharing/ocm/v1beta1/resources.pb.go#L423 - "opaque_id" => $share->getId() - ], - "resource_id" => [ - "opaque_id" => $opaqueId - ], - "permissions" => $share->getNode()->getPermissions(), - // https://github.com/cs3org/go-cs3apis/blob/d29741980082ecd0f70fe10bd2e98cf75764e858/cs3/storage/provider/v1beta1/resources.pb.go#L897 - "grantee" => [ - "type" => 1, // https://github.com/cs3org/go-cs3apis/blob/d29741980082ecd0f70fe10bd2e98cf75764e858/cs3/storage/provider/v1beta1/resources.pb.go#L135 - "id" => [ - "opaque_id" => $shareeParts[0], - "idp" => $shareeParts[1] - ], - ], - "owner" => [ - "id" => [ - "opaque_id" => $ownerParts[0], - "idp" => $ownerParts[1] - ], - ], - "creator" => [ - "id" => [ - "opaque_id" => $ownerParts[0], - "idp" => $ownerParts[1] - ], - ], - "ctime" => [ - "seconds" => $stime - ], - "mtime" => [ - "seconds" => $stime - ], - "token" => $token - ]; - - error_log("shareInfoToCs3Share " . var_export($payload, true)); - - return $payload; - } - - private function getDomainFromURL($url) - { - // converts https://revaowncloud1.docker/ to revaowncloud1.docker - // Note: do not use it on anything without http(s) in the start, it would return null. - return str_ireplace("www.", "", parse_url($url, PHP_URL_HOST)); - } - - private function formatFederatedUser($username, $remote): array - { - return [ - "id" => [ - "idp" => $remote, - "opaque_id" => $username, - ], - "display_name" => $username, // FIXME: this comes in the OCM share payload - "username" => $username, - "email" => "unknown@unknown", // FIXME: this comes in the OCM share payload - "type" => 6, - ]; - } - - private function formatUser($user): array - { - return [ - "id" => [ - "idp" => $this->getDomainFromURL($this->config->getIopUrl()), - "opaque_id" => $user->getUID(), - ], - "display_name" => $user->getDisplayName(), - "username" => $user->getUID(), - "email" => $user->getEmailAddress(), - "type" => 1, - ]; - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function CreateDir($userId): JSONResponse - { - error_log("CreateDir"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $urlDecodedPath = urldecode($this->request->getParam("path")); - $path = $this->revaPathToEfssPath($urlDecodedPath); - - try { - $this->userFolder->newFolder($path); - } catch (NotPermittedException $e) { - return new JSONResponse(["error" => "Could not create directory."], Http::STATUS_INTERNAL_SERVER_ERROR); - } - return new JSONResponse("OK", Http::STATUS_OK); - } - - // TODO: @Mahdi: WHat does this even mean? what is state:2 ? - // For ListReceivedShares, GetReceivedShare and UpdateReceivedShare we need to include "state:2" - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function CreateHome($userId): JSONResponse - { - error_log("CreateHome"); - if (RESTRICT_TO_SCIENCEMESH_FOLDER) { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - $homeExists = $this->userFolder->nodeExists("sciencemesh"); - if (!$homeExists) { - try { - $this->userFolder->newFolder("sciencemesh"); // Create the Sciencemesh directory for storage if it doesn't exist. - } catch (NotPermittedException $e) { - return new JSONResponse(["error" => "Create home failed. Resource Path not founD"], Http::STATUS_INTERNAL_SERVER_ERROR); - } - return new JSONResponse("CREATED", Http::STATUS_CREATED); - } - } - return new JSONResponse("OK", Http::STATUS_OK); - } - - // TODO: @Mahdi: ??? - // corresponds the permissions we got from Reva to Nextcloud - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function CreateReference($userId): JSONResponse - { - error_log("CreateReference"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - */ - public function CreateStorageSpace($userId): JSONResponse - { - error_log("CreateStorageSpace"); - return new JSONResponse([ - "status" => [ - "code" => 1, - "trace" => "00000000000000000000000000000000" - ], - "storage_space" => [ - "opaque" => [ - "map" => [ - "bar" => [ - "value" => "c2FtYQ==" - ], - "foo" => [ - "value" => "c2FtYQ==" - ] - ] - ], - "id" => [ - "opaque_id" => "some-opaque-storage-space-id" - ], - "owner" => [ - "id" => [ - "idp" => "some-idp", - "opaque_id" => "some-opaque-user-id", - "type" => 1 - ] - ], - "root" => [ - "storage_id" => "some-storage-id", - "opaque_id" => "some-opaque-root-id" - ], - "name" => "My Storage Space", - "quota" => [ - "quota_max_bytes" => 456, - "quota_max_files" => 123 - ], - "space_type" => "home", - "mtime" => [ - "seconds" => 1234567890 - ] - ] - ], Http::STATUS_OK); - } - - /* Reva handlers */ - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotFoundException - * @throws NotPermittedException - */ - public function Delete($userId): JSONResponse - { - error_log("Delete"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - - try { - $node = $this->userFolder->get($path); - $node->delete($path); - return new JSONResponse("OK", Http::STATUS_OK); - } catch (FileNotFoundException $e) { - return new JSONResponse(["error" => "Failed to delete."], Http::STATUS_INTERNAL_SERVER_ERROR); - } - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function EmptyRecycle($userId): JSONResponse - { - // DIFFERENT FUNCTION IN NC/OC - error_log("EmptyRecycle"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - // See https://github.com/sciencemesh/oc-sciencemesh/issues/4#issuecomment-1283542906 - $this->trashManager->deleteAll(); - return new JSONResponse("OK", Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotFoundException - * @throws NotPermittedException|InvalidPathException - * @throws Exception - */ - public function GetMD($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $ref = $this->request->getParam("ref"); - error_log("GetMD " . var_export($ref, true)); - - if (isset($ref["path"])) { - // e.g. GetMD {"ref": {"path": "/home/asdf"}, "mdKeys": null} - $revaPath = $ref["path"]; - } else if (isset($ref["resource_id"]) && isset($ref["resource_id"]["opaque_id"]) && str_starts_with($ref["resource_id"]["opaque_id"], "fileid-")) { - // e.g. GetMD {"ref": {"resource_id": {"storage_id": "00000000-0000-0000-0000-000000000000", "opaque_id": "fileid-/asdf"}}, "mdKeys":null} - $revaPath = $this->revaPathFromOpaqueId($ref["resource_id"]["opaque_id"]); - } else { - throw new Exception("ref not understood!"); - } - - // this path is url coded, we need to decode it - // for example this converts "we%20have%20space" to "we have space" - $revaPathDecoded = urldecode($revaPath); - - $path = $this->revaPathToEfssPath($revaPathDecoded); - error_log("Looking for EFSS path '$path' in user folder; reva path '$revaPathDecoded' "); - - // apparently nodeExists requires relative path to the user folder: - // see https://github.com/owncloud/core/blob/b7bcbdd9edabf7d639b4bb42c4fb87862ddf4a80/lib/private/Files/Node/Folder.php#L45-L55; - // another string manipulation is necessary to extract relative path from full path. - $relativePath = $this->efssFullPathToRelativePath($path); - - $success = $this->userFolder->nodeExists($relativePath); - if ($success) { - error_log("File found"); - $node = $this->userFolder->get($relativePath); - $resourceInfo = $this->nodeToCS3ResourceInfo($node); - return new JSONResponse($resourceInfo, Http::STATUS_OK); - } - - error_log("File not found"); - return new JSONResponse(["error" => "File not found"], 404); - } - - private function revaPathFromOpaqueId($opaqueId) - { - return $this->removePrefix($opaqueId, "fileid-"); - } - - private function efssFullPathToRelativePath($efssFullPath) - { - - $ret = $this->removePrefix($efssFullPath, $this->userFolder->getPath()); - error_log("efssFullPathToRelativePath: Interpreting $efssFullPath as $ret"); - return $ret; - } - - /** - * @throws InvalidPathException - * @throws NotFoundException - */ - private function nodeToCS3ResourceInfo(Node $node): array - { - $isDirectory = ($node->getType() === FileInfo::TYPE_FOLDER); - $efssPath = substr($node->getPath(), strlen($this->userFolder->getPath()) + 1); - $revaPath = $this->efssPathToRevaPath($efssPath); - - $payload = [ - "type" => ($isDirectory ? 2 : 1), - "id" => [ - "opaque_id" => "fileid-" . $revaPath, - ], - "checksum" => [ - // checksum algorithms: - // 1 UNSET - // 2 ADLER32 - // 3 MD5 - // 4 SHA1 - - // note: folders do not have checksum, their type should be unset. - "type" => $isDirectory ? 1 : 4, - "sum" => $this->getChecksum($node, $isDirectory ? 1 : 4), - ], - "etag" => $node->getEtag(), - "mime_type" => ($isDirectory ? "folder" : $node->getMimetype()), - "mtime" => [ - "seconds" => $node->getMTime(), - ], - "path" => $revaPath, - "permissions" => $node->getPermissions(), - "size" => $node->getSize(), - "owner" => [ - "opaque_id" => $this->userId, - "idp" => $this->getDomainFromURL($this->config->getIopUrl()), - ] - ]; - - error_log("nodeToCS3ResourceInfo " . var_export($payload, true)); - - return $payload; - } - - private function efssPathToRevaPath($efssPath): string - { - $ret = REVA_PREFIX . $this->removePrefix($efssPath, EFSS_PREFIX); - error_log("efssPathToRevaPath: Interpreting $efssPath as $ret"); - return $ret; - } - - private function getChecksum(Node $node, $checksumType = 4): string - { - $checksumTypes = array( - 1 => "UNSET:", - 2 => "ADLER32:", - 3 => "MD5:", - 4 => "SHA1:", - ); - - // checksum is in db table oc_filecache. - // folders do not have checksum - $checksums = explode(' ', $node->getFileInfo()->getChecksum()); - - foreach ($checksums as $checksum) { - - // Note that the use of !== false is deliberate (neither != false nor === true will return the desired result); - // strpos() returns either the offset at which the needle string begins in the haystack string, or the boolean - // false if the needle isn't found. Since 0 is a valid offset and 0 is "false", we can't use simpler constructs - // like !strpos($a, 'are'). - if (strpos($checksum, $checksumTypes[$checksumType]) !== false) { - return substr($checksum, strlen($checksumTypes[$checksumType])); - } - } - - return ''; - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @return Http\DataResponse|JSONResponse - * @throws NotPermittedException - */ - public function GetPathByID($userId) - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - // in progress - $path = "subdir/"; - $storageId = $this->request->getParam("storage_id"); - $opaqueId = $this->request->getParam("opaque_id"); - - return new DataResponse($path, Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function InitiateUpload($userId): JSONResponse - { - $ref = $this->request->getParam("ref"); - $path = $this->revaPathToEfssPath(($ref["path"] ?? "")); - - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - $response = [ - "simple" => $path - ]; - - return new JSONResponse($response, Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - */ - public function ListFolder($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $ref = $this->request->getParam("ref"); - - // this path is url coded, we need to decode it - // for example this converts "we%20have%20space" to "we have space" - $pathDecoded = urldecode(($ref["path"] ?? "")); - $path = $this->revaPathToEfssPath($pathDecoded); - $success = $this->userFolder->nodeExists($path); - error_log("ListFolder: $path"); - - if (!$success) { - error_log("ListFolder: path not found"); - return new JSONResponse(["error" => "Folder not found"], 404); - } - error_log("ListFolder: path found"); - - $node = $this->userFolder->get($path); - $nodes = $node->getDirectoryListing(); - $resourceInfos = array_map(function (Node $node) { - return $this->nodeToCS3ResourceInfo($node); - }, $nodes); - - return new JSONResponse($resourceInfos, Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function ListGrants($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function ListRecycle($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $user = $this->userManager->get($userId); - $trashItems = $this->trashManager->listTrashRoot($user); - $result = []; - - foreach ($trashItems as $node) { - if (preg_match("/^sciencemesh/", $node->getOriginalLocation())) { - $path = $this->efssPathToRevaPath($node->getOriginalLocation()); - $result = [ - [ - "opaque" => [ - "map" => null, - ], - "key" => $path, - "ref" => [ - "resource_id" => [ - "map" => null, - ], - "path" => $path, - ], - "size" => 12345, - "deletion_time" => [ - "seconds" => 1234567890 - ] - ] - ]; - } - } - - return new JSONResponse($result, Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function ListRevisions($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function RemoveGrant($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - // FIXME: Expected a grant to remove here; - - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function RestoreRecycleItem($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $key = $this->request->getParam("key"); - $user = $this->userManager->get($userId); - $trashItems = $this->trashManager->listTrashRoot($user); - - foreach ($trashItems as $node) { - if (preg_match("/^sciencemesh/", $node->getOriginalLocation())) { - // we are using original location as the RecycleItem's - // unique key string, see: - // https://github.com/cs3org/cs3apis/blob/6eab4643f5113a54f4ce4cd8cb462685d0cdd2ef/cs3/storage/provider/v1beta1/resources.proto#L318 - - if ($this->revaPathToEfssPath($key) == $node->getOriginalLocation()) { - $this->trashManager->restoreItem($node); - return new JSONResponse("OK", Http::STATUS_OK); - } - } - } - - return new JSONResponse('["error" => "Not found."]', 404); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function RestoreRevision($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - // FIXME: Expected a revision param here; - - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function SetArbitraryMetadata($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - $metadata = $this->request->getParam("metadata"); - - // FIXME: this needs to be implemented for real, merging the incoming metadata with the existing ones. - // For now we return OK to let the uploads go through, see https://github.com/sciencemesh/nc-sciencemesh/issues/43 - return new JSONResponse("I'm cheating", Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function UnsetArbitraryMetadata($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - - // FIXME: this needs to be implemented for real - return new JSONResponse("I'm cheating", Http::STATUS_OK); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function UpdateGrant($userId): JSONResponse - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $path = $this->revaPathToEfssPath($this->request->getParam("path")); - - // FIXME: Expected a parameter with the grant(s) - return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @return JSONResponse|StreamResponse - * @throws NotFoundException|NotPermittedException - */ - public function Download($userId, $path) - { - error_log("Download"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - error_log("Download path: $path"); - - $efssPath = $this->removePrefix($path, "home/"); - error_log("Download efss path: $efssPath"); - - if ($this->userFolder->nodeExists($efssPath)) { - error_log("Download: file found"); - $node = $this->userFolder->get($efssPath); - $view = new View(); - $nodeLocalFilePath = $view->getLocalFile($node->getPath()); - error_log("Download local file path: $nodeLocalFilePath"); - return new StreamResponse($nodeLocalFilePath); - } - - error_log("Download: file not found"); - return new JSONResponse(["error" => "File not found"], 404); - } - - /** - * @PublicPage - * @NoAdminRequired - * @NoCSRFRequired - * @param $userId - * @param $path - * @return JSONResponse - */ - public function Upload($userId, $path): JSONResponse - { - $revaPath = "/$path"; - error_log("RevaController Upload! user: $userId , reva path: $revaPath"); - - try { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $contents = file_get_contents('php://input'); - $efssPath = $this->revaPathToEfssPath($revaPath); - - error_log("Uploading! reva path: $revaPath"); - error_log("Uploading! efss path $efssPath"); - - if ($this->userFolder->nodeExists($efssPath)) { - $node = $this->userFolder->get($efssPath); - $view = new View(); - $view->file_put_contents($node->getPath(), $contents); - return new JSONResponse("OK", Http::STATUS_OK); - } else { - $dirname = dirname($efssPath); - $filename = basename($efssPath); - - if (!$this->userFolder->nodeExists($dirname)) { - $this->userFolder->newFolder($dirname); - } - - $node = $this->userFolder->get($dirname); - $node->newFile($filename); - - $node = $this->userFolder->get($efssPath); - $view = new View(); - $view->file_put_contents($node->getPath(), $contents); - - return new JSONResponse("CREATED", Http::STATUS_CREATED); - } - } catch (Exception $e) { - return new JSONResponse(["error" => "Upload failed"], Http::STATUS_INTERNAL_SERVER_ERROR); - } - } - - /** - * Get user list. - * @PublicPage - * @NoCSRFRequired - * @NoSameSiteCookieRequired - * @throws NotPermittedException - */ - public function GetUser($dummy): JSONResponse - { - $this->init(false); - - $userToCheck = $this->request->getParam('opaque_id'); - - if ($this->userManager->userExists($userToCheck)) { - $user = $this->userManager->get($userToCheck); - $response = $this->formatUser($user); - return new JSONResponse($response, Http::STATUS_OK); - } - - return new JSONResponse( - ['message' => 'User does not exist'], - Http::STATUS_NOT_FOUND - ); - } - - /** - * Get user by claim. - * @PublicPage - * @NoCSRFRequired - * @NoSameSiteCookieRequired - * - * @throws NotPermittedException - */ - public function GetUserByClaim($dummy): JSONResponse - { - $this->init(false); - - $userToCheck = $this->request->getParam('value'); - - if ($this->request->getParam('claim') == 'username') { - error_log("GetUserByClaim, claim = 'username', value = $userToCheck"); - } else { - return new JSONResponse('Please set the claim to username', Http::STATUS_BAD_REQUEST); - } - - if ($this->userManager->userExists($userToCheck)) { - $user = $this->userManager->get($userToCheck); - $response = $this->formatUser($user); - return new JSONResponse($response, Http::STATUS_OK); - } - - return new JSONResponse( - ['message' => 'User does not exist'], - Http::STATUS_NOT_FOUND - ); - } - - /** - * Create a new share in fn with the given access control list. - * @PublicPage - * @NoCSRFRequired - * @return Http\DataResponse|JSONResponse - * - * @throws NotFoundException - * @throws NotPermittedException - * @throws Exception - */ - public function addSentShare($userId) - { - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $params = $this->request->getParams(); - error_log("addSentShare " . var_export($params, true)); - - $owner = $params["owner"]["opaqueId"]; // . "@" . $params["owner"]["idp"]; - $name = $params["name"]; // "fileid-/other/q/f gr" - $resourceOpaqueId = $params["resourceId"]["opaqueId"]; // "fileid-/other/q/f gr" - $revaPath = $this->revaPathFromOpaqueId($resourceOpaqueId); // "/other/q/f gr" - $efssPath = $this->revaPathToEfssPath($revaPath); - - $revaPermissions = null; - - foreach ($params['accessMethods'] as $accessMethod) { - if (isset($accessMethod['webdavOptions'])) { - $revaPermissions = $accessMethod['webdavOptions']['permissions']; - break; - } - } - - if (!isset($revaPermissions)) { - throw new Exception('reva permissions not found'); - } - - $granteeType = $params["grantee"]["type"]; // "GRANTEE_TYPE_USER" - $granteeHost = $params["grantee"]["userId"]["idp"]; // "revanc2.docker" - $granteeUser = $params["grantee"]["userId"]["opaqueId"]; // "marie" - - $efssPermissions = $this->getPermissionsCode($revaPermissions); - $shareWith = $granteeUser . "@" . $granteeHost; - $sharedSecret = $params["token"]; - - try { - $node = $this->userFolder->get($efssPath); - } catch (NotFoundException $e) { - return new JSONResponse(["error" => "Share failed. Resource Path not found"], Http::STATUS_BAD_REQUEST); - } - - error_log("calling newShare"); - $share = $this->shareManager->newShare(); - $share->setNode($node); - - $this->lock($share->getNode()); - - $share->setShareType(ScienceMeshApp::SHARE_TYPE_SCIENCEMESH); - $share->setSharedBy($userId); - $share->setSharedWith($shareWith); - $share->setShareOwner($owner); - $share->setPermissions($efssPermissions); - $share->setToken($sharedSecret); - $share = $this->shareProvider->createInternal($share); - - return new DataResponse($share->getId(), Http::STATUS_CREATED); - } - - private function getPermissionsCode(array $permissions): int - { - $permissionsCode = 0; - if (!empty($permissions["get_path"]) || !empty($permissions["get_quota"]) || !empty($permissions["initiate_file_download"]) || !empty($permissions["initiate_file_upload"]) || !empty($permissions["stat"])) { - $permissionsCode += Constants::PERMISSION_READ; - } - if (!empty($permissions["create_container"]) || !empty($permissions["move"]) || !empty($permissions["add_grant"]) || !empty($permissions["restore_file_version"]) || !empty($permissions["restore_recycle_item"])) { - $permissionsCode += Constants::PERMISSION_CREATE; - } - if (!empty($permissions["move"]) || !empty($permissions["delete"]) || !empty($permissions["remove_grant"])) { - $permissionsCode += Constants::PERMISSION_DELETE; - } - if (!empty($permissions["list_grants"]) || !empty($permissions["list_file_versions"]) || !empty($permissions["list_recycle"])) { - $permissionsCode += Constants::PERMISSION_SHARE; - } - if (!empty($permissions["update_grant"])) { - $permissionsCode += Constants::PERMISSION_UPDATE; - } - return $permissionsCode; - } - - /** - * @param Node $node - * @return void - * - * @throws LockedException - */ - private function lock(Node $node) - { - $node->lock(ILockingProvider::LOCK_SHARED); - $this->lockedNode = $node; - } - - /** - * add a received share - * - * @NoCSRFRequired - * @PublicPage - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - * @throws Exception - */ - public function addReceivedShare($userId): JSONResponse - { - $params = $this->request->getParams(); - error_log("addReceivedShare " . var_export($params, true)); - foreach ($params['protocols'] as $protocol) { - if (isset($protocol['webdavOptions'])) { - $sharedSecret = $protocol['webdavOptions']['sharedSecret']; - // make sure you have webdav_endpoint = "https://nc1.docker/" under - // [grpc.services.ocmshareprovider] in the sending Reva's config - $uri = $protocol['webdavOptions']['uri']; // e.g. https://nc1.docker/remote.php/dav/ocm/vaKE36Wf1lJWCvpDcRQUScraVP5quhzA - $remote = implode('/', array_slice(explode('/', $uri), 0, 3)); // e.g. https://nc1.docker - break; - } - } - - if (!isset($sharedSecret)) { - throw new Exception('sharedSecret not found'); - } - - if (!isset($remote)) { - throw new Exception('protocols[[webdavOptions][uri]] not found'); - } - - $shareData = [ - "remote" => $remote, //https://nc1.docker - "remote_id" => $params["remoteShareId"], // the id of the share in the oc_share table of the remote. - "share_token" => $sharedSecret, // 'tDPRTrLI4hE3C5T' - "password" => "", - "name" => rtrim($params["name"], "/"), // '/grfe' - "owner" => $params["owner"]["opaqueId"], // 'einstein' - "user" => $userId // 'marie' - ]; - - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $scienceMeshData = [ - "is_external" => true, - ]; - - $id = $this->shareProvider->addScienceMeshShare($scienceMeshData, $shareData); - return new JSONResponse($id, 201); - } - - /** - * Remove Share from share table - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws NotPermittedException - */ - public function Unshare($userId): JSONResponse - { - error_log("Unshare"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; - $name = $this->getNameByOpaqueId($opaqueId); - - if ($this->shareProvider->deleteSentShareByName($userId, $name)) { - return new JSONResponse("Deleted Sent Share", Http::STATUS_OK); - } else { - if ($this->shareProvider->deleteReceivedShareByOpaqueId($userId, $opaqueId)) { - return new JSONResponse("Deleted Received Share", Http::STATUS_OK); - } else { - return new JSONResponse("Could not find share", Http::STATUS_BAD_REQUEST); - } - } - } - - /** - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - */ - public function UpdateSentShare($userId): JSONResponse - { - error_log("UpdateSentShare"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $opaqueId = $this->request->getParam("ref")["Spec"]["Id"]["opaque_id"]; - $permissions = $this->request->getParam("p")["permissions"]; - $permissionsCode = $this->getPermissionsCode($permissions); - $name = $this->getNameByOpaqueId($opaqueId); - if (!($share = $this->shareProvider->getSentShareByName($userId, $name))) { - return new JSONResponse(["error" => "UpdateSentShare failed"], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $share->setPermissions($permissionsCode); - $shareUpdated = $this->shareProvider->update($share); - $response = $this->shareInfoToCs3Share($shareUpdated); - return new JSONResponse($response, Http::STATUS_OK); - } - - /** - * UpdateReceivedShare updates the received share with share state. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws NotPermittedException - */ - public function UpdateReceivedShare($userId): JSONResponse - { - error_log("UpdateReceivedShare"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $resourceId = $this->request->getParam("received_share")["share"]["resource_id"]; - $permissions = $this->request->getParam("received_share")["share"]["permissions"]; - $permissionsCode = $this->getPermissionsCode($permissions); - - try { - $share = $this->shareProvider->getReceivedShareByToken($resourceId); - $share->setPermissions($permissionsCode); - $shareUpdate = $this->shareProvider->UpdateReceivedShare($share); - $response = $this->shareInfoToCs3Share($shareUpdate, $resourceId); - $response["state"] = 2; - return new JSONResponse($response, Http::STATUS_OK); - } catch (Exception $e) { - return new JSONResponse(["error" => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); - } - } - - /** - * ListSentShares returns the shares created by the user. If md is provided is not nil, - * it returns only shares attached to the given resource. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - */ - public function ListSentShares($userId): JSONResponse - { - error_log("ListSentShares"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $responses = []; - $shares = $this->shareProvider->getSentShares($userId); - - if ($shares) { - foreach ($shares as $share) { - $responses[] = $this->shareInfoToCs3Share($share); - } - } - return new JSONResponse($responses, Http::STATUS_OK); - } - - /** - * ListReceivedShares returns the list of shares the user has access. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - */ - public function ListReceivedShares($userId): JSONResponse - { - error_log("ListReceivedShares"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $responses = []; - $shares = $this->shareProvider->getReceivedShares($userId); - - if ($shares) { - foreach ($shares as $share) { - $response = $this->shareInfoToCs3Share($share); - $responses[] = [ - "share" => $response, - "state" => 2 - ]; - } - } - - return new JSONResponse($responses, Http::STATUS_OK); - } - - /** - * GetReceivedShare returns the information for a received share the user has access. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * @throws NotPermittedException - */ - public function GetReceivedShare($userId): JSONResponse - { - error_log("GetReceivedShare"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; - $name = $this->getNameByOpaqueId($opaqueId); - - try { - $share = $this->shareProvider->getReceivedShareByToken($opaqueId); - $response = $this->shareInfoToCs3Share($share, $opaqueId); - $response["state"] = 2; - return new JSONResponse($response, Http::STATUS_OK); - } catch (Exception $e) { - return new JSONResponse(["error" => $e->getMessage()], Http::STATUS_BAD_REQUEST); - } - } - - /** - * GetSentShare gets the information for a share by the given ref. - * @PublicPage - * @NoCSRFRequired - * @param $userId - * @return JSONResponse - * - * @throws InvalidPathException - * @throws NotFoundException - * @throws NotPermittedException - */ - public function GetSentShare($userId): JSONResponse - { - error_log("GetSentShare"); - if ($this->userManager->userExists($userId)) { - $this->init($userId); - } else { - return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); - } - - $opaqueId = $this->request->getParam("Spec")["Id"]["opaque_id"]; - $name = $this->getNameByOpaqueId($opaqueId); - $share = $this->shareProvider->getSentShareByName($userId, $name); - - if ($share) { - $response = $this->shareInfoToCs3Share($share); - return new JSONResponse($response, Http::STATUS_OK); - } - - return new JSONResponse(["error" => "GetSentShare failed"], Http::STATUS_NOT_FOUND); - } - - /** - * Make sure that the passed date is valid ISO 8601 - * So YYYY-MM-DD - * If not throw an exception - * - * @param string $expireDate - * - * @return DateTime - * @throws Exception - */ - private function parseDate(string $expireDate): DateTime - { - try { - $date = new DateTime($expireDate); - } catch (Exception $e) { - throw new Exception('Invalid date. Format must be YYYY-MM-DD'); - } - - $date->setTime(0, 0); - - return $date; - } - - /** - * @param int $userId - * - * @return array|string|string[]|null - */ - private function getStorageUrl(int $userId) - { - $storageUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->linkToRoute("sciencemesh.storage.handleHead", ["userId" => $userId, "path" => "foo"])); - return preg_replace('/foo$/', '', $storageUrl); - } -} diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 8bea3170..2c63826b 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -14,7 +14,6 @@ use Exception; use OC; -use OCA\ScienceMesh\AppConfig; use OCA\ScienceMesh\RevaHttpClient; use OCA\ScienceMesh\ServerConfig; use OCP\AppFramework\Controller; @@ -34,9 +33,6 @@ class SettingsController extends Controller /** @var string */ private string $userId; - /** @var AppConfig */ - private AppConfig $config; - /** @var ServerConfig */ private ServerConfig $serverConfig; @@ -46,20 +42,17 @@ class SettingsController extends Controller /** * @param string $appName - application name * @param IRequest $request - request object - * @param AppConfig $config - application configuration */ public function __construct( - string $appName, - string $userId, - AppConfig $config, - IRequest $request, - IConfig $sciencemeshConfig + string $appName, + string $userId, + IRequest $request, + IConfig $sciencemeshConfig ) { parent::__construct($appName, $request); $this->userId = $userId; - $this->config = $config; $this->serverConfig = new ServerConfig($sciencemeshConfig); $this->sciencemeshConfig = $sciencemeshConfig; @@ -222,23 +215,6 @@ private function storeSettings($apikey, $sitename, $siteurl, $siteid, $country, } } - /** - * Get app settings - * - * @return array - * - * @NoAdminRequired - * @PublicPage - */ - public function GetSettings(): array - { - return [ - "formats" => $this->config->FormatsSetting(), - "sameTab" => $this->config->GetSameTab(), - "shareAttributesVersion" => $this->config->ShareAttributesVersion() - ]; - } - /** * Save sciencemesh settings * @@ -247,7 +223,7 @@ public function GetSettings(): array * @NoAdminRequired * @PublicPage */ - public function SaveSciencemeshSettings(): DataResponse + public function saveSciencemeshSettings(): DataResponse { $sciencemesh_iop_url = $this->request->getParam('sciencemesh_iop_url'); $sciencemesh_shared_secret = $this->request->getParam('sciencemesh_shared_secret'); diff --git a/lib/Controller/StorageController.php b/lib/Controller/StorageController.php new file mode 100644 index 00000000..ebce5435 --- /dev/null +++ b/lib/Controller/StorageController.php @@ -0,0 +1,842 @@ + + */ + +namespace OCA\ScienceMesh\Controller; + +use Exception; +use OC\Config; +use OC\Files\View; +use OCA\DAV\TrashBin\TrashBinManager; +use OCA\ScienceMesh\ServerConfig; +use OCA\ScienceMesh\Utils\StaticMethods; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\StreamResponse; +use OCP\Files\Folder; +use OCP\Files\InvalidPathException; +use OCP\Files\IRootFolder; +use OCP\Files\Node; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IRequest; +use OCP\IUserManager; +use Symfony\Component\Filesystem\Exception\FileNotFoundException; + +define("RESTRICT_TO_SCIENCEMESH_FOLDER", false); + +class StorageController extends Controller +{ + /** @var IUserManager */ + private IUserManager $userManager; + + /** @var Config */ + private $config; + + /** @var IRootFolder */ + private IRootFolder $rootFolder; + + /** @var TrashBinManager */ + private TrashBinManager $trashManager; + + /** @var string */ + private string $userId; + + /** @var Folder */ + private Folder $userFolder; + + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** + * Storage Controller. + * + * @param string $appName + * @param IRootFolder $rootFolder + * @param IRequest $request + * @param IUserManager $userManager + * @param IConfig $config + * @param TrashBinManager $trashManager + * @param IL10N $l10n + * @param ILogger $logger + */ + public function __construct( + string $appName, + IRootFolder $rootFolder, + IRequest $request, + IUserManager $userManager, + IConfig $config, + TrashBinManager $trashManager, + IL10N $l10n, + ILogger $logger + ) + { + parent::__construct($appName, $request); + require_once(__DIR__ . "/../../vendor/autoload.php"); + + $this->rootFolder = $rootFolder; + $this->request = $request; + $this->userManager = $userManager; + $this->config = new ServerConfig($config); + $this->trashManager = $trashManager; + $this->l = $l10n; + $this->logger = $logger; + $this->utils = new StaticMethods($l10n, $logger); + } + + /** + * @throws NotPermittedException + * @throws Exception + */ + private function init($userId) + { + error_log("RevaController init for user '$userId'"); + $this->userId = $userId; + $this->utils->checkRevadAuth($this->request, $this->config->getRevaSharedSecret()); + if ($userId) { + error_log("root folder absolute path '" . $this->rootFolder->getPath() . "'"); + if ($this->rootFolder->nodeExists($userId)) { + $this->userFolder = $this->rootFolder->getUserFolder($userId); + error_log("user folder '" . $this->userFolder->getPath() . "'"); + } else { + throw new Exception("Home folder not found for user '$userId', have they logged in through the ownCloud web interface yet?"); + } + } + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function addGrant($userId): JSONResponse + { + error_log("AddGrant"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + // FIXME: Expected a param with a grant to add here; + + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function createDir($userId): JSONResponse + { + error_log("CreateDir"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $urlDecodedPath = urldecode($this->request->getParam("path")); + $path = $this->utils->revaPathToEfssPath($urlDecodedPath); + + try { + $this->userFolder->newFolder($path); + } catch (NotPermittedException $e) { + return new JSONResponse(["error" => "Could not create directory."], Http::STATUS_INTERNAL_SERVER_ERROR); + } + return new JSONResponse("OK", Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function createHome($userId): JSONResponse + { + error_log("CreateHome"); + if (RESTRICT_TO_SCIENCEMESH_FOLDER) { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + $homeExists = $this->userFolder->nodeExists("sciencemesh"); + if (!$homeExists) { + try { + $this->userFolder->newFolder("sciencemesh"); // Create the Sciencemesh directory for storage if it doesn't exist. + } catch (NotPermittedException $e) { + return new JSONResponse( + ["error" => "Create home failed. Resource Path not found"], + Http::STATUS_INTERNAL_SERVER_ERROR + ); + } + return new JSONResponse("CREATED", Http::STATUS_CREATED); + } + } + return new JSONResponse("OK", Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function createReference($userId): JSONResponse + { + error_log("CreateReference"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + // TODO: @Mahdi maybe not used anymore. + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + */ + public function createStorageSpace($userId): JSONResponse + { + error_log("CreateStorageSpace"); + return new JSONResponse([ + "status" => [ + "code" => 1, + "trace" => "00000000000000000000000000000000" + ], + "storage_space" => [ + "opaque" => [ + "map" => [ + "bar" => [ + "value" => "c2FtYQ==" + ], + "foo" => [ + "value" => "c2FtYQ==" + ] + ] + ], + "id" => [ + "opaque_id" => "some-opaque-storage-space-id" + ], + "owner" => [ + "id" => [ + "idp" => "some-idp", + "opaque_id" => "some-opaque-user-id", + "type" => 1 + ] + ], + "root" => [ + "storage_id" => "some-storage-id", + "opaque_id" => "some-opaque-root-id" + ], + "name" => "My Storage Space", + "quota" => [ + "quota_max_bytes" => 456, + "quota_max_files" => 123 + ], + "space_type" => "home", + "mtime" => [ + "seconds" => 1234567890 + ] + ] + ], Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotFoundException + * @throws NotPermittedException + */ + public function delete($userId): JSONResponse + { + error_log("Delete"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + + try { + $node = $this->userFolder->get($path); + $node->delete($path); + return new JSONResponse("OK", Http::STATUS_OK); + } catch (FileNotFoundException $e) { + return new JSONResponse(["error" => "Failed to delete."], Http::STATUS_INTERNAL_SERVER_ERROR); + } + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @return JSONResponse|StreamResponse + * @throws NotFoundException|NotPermittedException + */ + public function download($userId, $path) + { + error_log("Download"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + error_log("Download path: $path"); + + $efssPath = $this->utils->removePrefix($path, "home/"); + error_log("Download efss path: $efssPath"); + + if ($this->userFolder->nodeExists($efssPath)) { + error_log("Download: file found"); + $node = $this->userFolder->get($efssPath); + $view = new View(); + $nodeLocalFilePath = $view->getLocalFile($node->getPath()); + error_log("Download local file path: $nodeLocalFilePath"); + return new StreamResponse($nodeLocalFilePath); + } + + error_log("Download: file not found"); + return new JSONResponse(["error" => "File not found"], 404); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function emptyRecycle($userId): JSONResponse + { + // TODO: @Mahdi fix this! DIFFERENT FUNCTION IN NC/OC + error_log("EmptyRecycle"); + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + // See https://github.com/sciencemesh/oc-sciencemesh/issues/4#issuecomment-1283542906 + $this->trashManager->deleteAll(); + return new JSONResponse("OK", Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotFoundException + * @throws NotPermittedException|InvalidPathException + * @throws Exception + */ + public function getMD($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $ref = $this->request->getParam("ref"); + error_log("GetMD " . var_export($ref, true)); + + if (!isset($ref)) { + return new JSONResponse("ref not found in the request.", Http::STATUS_BAD_REQUEST); + } + + if (isset($ref["path"])) { + // e.g. GetMD: + // { + // "ref": { + // "path": "/home/asdf" + // }, + // "mdKeys": null + // } + $revaPath = $ref["path"]; + } else if ( + isset($ref["resource_id"]["opaque_id"]) + && + str_starts_with($ref["resource_id"]["opaque_id"], "fileid-") + ) { + // e.g. GetMD: + // { + // "ref": { + // "resource_id": { + // "storage_id": "00000000-0000-0000-0000-000000000000", + // "opaque_id": "fileid-/asdf" + // } + // }, + // "mdKeys": null + // } + $revaPath = $this->utils->revaPathFromOpaqueId($ref["resource_id"]["opaque_id"]); + } else { + return new JSONResponse("ref not understood!", Http::STATUS_BAD_REQUEST); + } + + // this path is url coded, we need to decode it + // for example this converts "we%20have%20space" to "we have space" + $revaPathDecoded = urldecode($revaPath); + + $path = $this->utils->revaPathToEfssPath($revaPathDecoded); + error_log("Looking for EFSS path '$path' in user folder; reva path '$revaPathDecoded' "); + + // apparently nodeExists requires relative path to the user folder: + // see https://github.com/owncloud/core/blob/b7bcbdd9edabf7d639b4bb42c4fb87862ddf4a80/lib/private/Files/Node/Folder.php#L45-L55; + // another string manipulation is necessary to extract relative path from full path. + $relativePath = $this->utils->efssFullPathToRelativePath($path, $this->userFolder->getPath()); + + $success = $this->userFolder->nodeExists($relativePath); + if ($success) { + error_log("File found"); + $node = $this->userFolder->get($relativePath); + $resourceInfo = $this->utils->nodeToCS3ResourceInfo( + $node, + $this->userFolder->getPath(), + $this->userId, + $this->config->getIopIdp() + ); + return new JSONResponse($resourceInfo, Http::STATUS_OK); + } + + error_log("File not found"); + return new JSONResponse(["error" => "File not found"], 404); + } + + // TODO: @Mahdi remove. + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @return Http\DataResponse|JSONResponse + * @throws NotPermittedException + */ + public function getPathByID($userId) + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + // TODO: @Mahdi what is "in progress"? what should be done here? + // in progress + $path = "subdir/"; + $storageId = $this->request->getParam("storage_id"); + $opaqueId = $this->request->getParam("opaque_id"); + + return new DataResponse($path, Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function initiateUpload($userId): JSONResponse + { + $ref = $this->request->getParam("ref"); + $path = $this->utils->revaPathToEfssPath(($ref["path"] ?? "")); + + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + $response = [ + "simple" => $path + ]; + + return new JSONResponse($response, Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws InvalidPathException + * @throws NotFoundException + * @throws NotPermittedException + */ + public function listFolder($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $ref = $this->request->getParam("ref"); + + // this path is url coded, we need to decode it + // for example this converts "we%20have%20space" to "we have space" + $pathDecoded = urldecode(($ref["path"] ?? "")); + $path = $this->utils->revaPathToEfssPath($pathDecoded); + $success = $this->userFolder->nodeExists($path); + error_log("ListFolder: $path"); + + if (!$success) { + error_log("ListFolder: path not found"); + return new JSONResponse(["error" => "Folder not found"], 404); + } + error_log("ListFolder: path found"); + + $node = $this->userFolder->get($path); + $nodes = $node->getDirectoryListing(); + $resourceInfos = array_map(function (Node $node) { + return $this->utils->nodeToCS3ResourceInfo( + $node, + $this->userFolder->getPath(), + $this->userId, + $this->config->getIopIdp() + ); + }, $nodes); + + return new JSONResponse($resourceInfos, Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function listGrants($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function listRecycle($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $user = $this->userManager->get($userId); + $trashItems = $this->trashManager->listTrashRoot($user); + $result = []; + + foreach ($trashItems as $node) { + if (preg_match("/^sciencemesh/", $node->getOriginalLocation())) { + $path = $this->utils->efssPathToRevaPath($node->getOriginalLocation()); + $result = [ + [ + "opaque" => [ + "map" => null, + ], + "key" => $path, + "ref" => [ + "resource_id" => [ + "map" => null, + ], + "path" => $path, + ], + "size" => 12345, + "deletion_time" => [ + "seconds" => 1234567890 + ] + ] + ]; + } + } + + return new JSONResponse($result, Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function listRevisions($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + # TODO: @Mahdi where is Move endpoint? not implemented? + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function removeGrant($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + // FIXME: Expected a grant to remove here; + + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function restoreRecycleItem($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $key = $this->request->getParam("key"); + $user = $this->userManager->get($userId); + $trashItems = $this->trashManager->listTrashRoot($user); + + foreach ($trashItems as $node) { + if (preg_match("/^sciencemesh/", $node->getOriginalLocation())) { + // we are using original location as the RecycleItem's + // unique key string, see: + // https://github.com/cs3org/cs3apis/blob/6eab4643f5113a54f4ce4cd8cb462685d0cdd2ef/cs3/storage/provider/v1beta1/resources.proto#L318 + + if ($this->utils->revaPathToEfssPath($key) == $node->getOriginalLocation()) { + $this->trashManager->restoreItem($node); + return new JSONResponse("OK", Http::STATUS_OK); + } + } + } + + return new JSONResponse('["error" => "Not found."]', 404); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function restoreRevision($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + // FIXME: Expected a revision param here; + + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function setArbitraryMetadata($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + $metadata = $this->request->getParam("metadata"); + + // FIXME: this needs to be implemented for real, merging the incoming metadata with the existing ones. + // For now we return OK to let the uploads go through, see https://github.com/sciencemesh/nc-sciencemesh/issues/43 + return new JSONResponse("I'm cheating", Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function unsetArbitraryMetadata($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + + // FIXME: this needs to be implemented for real + return new JSONResponse("I'm cheating", Http::STATUS_OK); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @return JSONResponse + * @throws NotPermittedException + */ + public function updateGrant($userId): JSONResponse + { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $path = $this->utils->revaPathToEfssPath($this->request->getParam("path")); + + // FIXME: Expected a parameter with the grant(s) + return new JSONResponse("Not implemented", Http::STATUS_NOT_IMPLEMENTED); + } + + /** + * @PublicPage + * @NoAdminRequired + * @NoCSRFRequired + * @param $userId + * @param $path + * @return JSONResponse + */ + public function upload($userId, $path): JSONResponse + { + $revaPath = "/$path"; + error_log("RevaController Upload! user: $userId , reva path: $revaPath"); + + try { + if ($this->userManager->userExists($userId)) { + $this->init($userId); + } else { + return new JSONResponse("User not found", Http::STATUS_FORBIDDEN); + } + + $contents = file_get_contents('php://input'); + $efssPath = $this->utils->revaPathToEfssPath($revaPath); + + error_log("Uploading! reva path: $revaPath"); + error_log("Uploading! efss path $efssPath"); + + if ($this->userFolder->nodeExists($efssPath)) { + $node = $this->userFolder->get($efssPath); + $view = new View(); + $view->file_put_contents($node->getPath(), $contents); + return new JSONResponse("OK", Http::STATUS_OK); + } else { + $dirname = dirname($efssPath); + $filename = basename($efssPath); + + if (!$this->userFolder->nodeExists($dirname)) { + $this->userFolder->newFolder($dirname); + } + + $node = $this->userFolder->get($dirname); + $node->newFile($filename); + + $node = $this->userFolder->get($efssPath); + $view = new View(); + $view->file_put_contents($node->getPath(), $contents); + + return new JSONResponse("CREATED", Http::STATUS_CREATED); + } + } catch (Exception $e) { + return new JSONResponse(["error" => "Upload failed"], Http::STATUS_INTERNAL_SERVER_ERROR); + } + } +} diff --git a/lib/Controller/UserController.php b/lib/Controller/UserController.php new file mode 100644 index 00000000..6477a41a --- /dev/null +++ b/lib/Controller/UserController.php @@ -0,0 +1,129 @@ + + */ + +namespace OCA\ScienceMesh\Controller; + +use Exception; +use OC\Config; +use OCA\ScienceMesh\ServerConfig; +use OCA\ScienceMesh\Utils\StaticMethods; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\Files\NotPermittedException; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IRequest; +use OCP\IUserManager; + +class UserController extends Controller +{ + /** @var Config */ + private $config; + + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var IUserManager */ + private IUserManager $userManager; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** + * User Controller. + * + * @param string $appName + * @param IRequest $request + * @param IConfig $config + * @param IL10N $l10n + * @param ILogger $logger + * @param IUserManager $userManager + */ + public function __construct( + string $appName, + IRequest $request, + IConfig $config, + IL10N $l10n, + ILogger $logger, + IUserManager $userManager + ) + { + parent::__construct($appName, $request); + require_once(__DIR__ . "/../../vendor/autoload.php"); + + $this->request = $request; + $this->config = new ServerConfig($config); + $this->l = $l10n; + $this->logger = $logger; + $this->userManager = $userManager; + $this->utils = new StaticMethods($l10n, $logger); + } + + /** + * get user list. + * + * @PublicPage + * @NoCSRFRequired + * @NoSameSiteCookieRequired + * @throws NotPermittedException + * @throws Exception + */ + public function getUser($dummy): JSONResponse + { + $this->utils->checkRevadAuth($this->request, $this->config->getRevaSharedSecret()); + + $userToCheck = $this->request->getParam("opaque_id"); + + if ($this->userManager->userExists($userToCheck)) { + $user = $this->userManager->get($userToCheck); + $response = $this->utils->formatUser($user, $this->config->getIopIdp()); + return new JSONResponse($response, Http::STATUS_OK); + } + + return new JSONResponse(["message" => "User does not exist"], Http::STATUS_NOT_FOUND); + } + + /** + * get user by claim. + * + * @PublicPage + * @NoCSRFRequired + * @NoSameSiteCookieRequired + * + * @throws NotPermittedException + * @throws Exception + */ + public function getUserByClaim($dummy): JSONResponse + { + $this->utils->checkRevadAuth($this->request, $this->config->getRevaSharedSecret()); + + $userToCheck = $this->request->getParam("value"); + + if ($this->request->getParam("claim") == "username") { + error_log("GetUserByClaim, claim = 'username', value = $userToCheck"); + } else { + return new JSONResponse("Please set the claim to username", Http::STATUS_BAD_REQUEST); + } + + if ($this->userManager->userExists($userToCheck)) { + $user = $this->userManager->get($userToCheck); + $response = $this->utils->formatUser($user, $this->config->getIopIdp()); + return new JSONResponse($response, Http::STATUS_OK); + } + + return new JSONResponse(["message" => "User does not exist"], Http::STATUS_NOT_FOUND); + } +} diff --git a/lib/GlobalConfig/GlobalScaleConfig.php b/lib/GlobalConfig/GlobalScaleConfig.php deleted file mode 100644 index dca6bef6..00000000 --- a/lib/GlobalConfig/GlobalScaleConfig.php +++ /dev/null @@ -1,64 +0,0 @@ - - * @author Michiel De Jong - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh\GlobalConfig; - -use OCP\IConfig; - -class GlobalScaleConfig implements IGlobalScaleConfig -{ - - /** @var IConfig */ - private IConfig $config; - - /** - * Config constructor. - * - * @param IConfig $config - */ - public function __construct(IConfig $config) - { - $this->config = $config; - } - - /** - * check if federation should only be used internally in a global scale setup - * - * @return bool - * @since 12.0.1 - */ - public function onlyInternalFederation(): bool - { - // if global scale is disabled federation works always globally - $gsEnabled = $this->isGlobalScaleEnabled(); - if ($gsEnabled === false) { - return false; - } - - $enabled = $this->config->getSystemValue('gs.federation', 'internal'); - - return $enabled === 'internal'; - } - - /** - * check if global scale is enabled - * - * @return bool - * @since 12.0.1 - */ - public function isGlobalScaleEnabled(): bool - { - $enabled = $this->config->getSystemValue('gs.enabled', false); - return $enabled !== false; - } -} diff --git a/lib/GlobalConfig/IGlobalScaleConfig.php b/lib/GlobalConfig/IGlobalScaleConfig.php deleted file mode 100644 index 5fce9dda..00000000 --- a/lib/GlobalConfig/IGlobalScaleConfig.php +++ /dev/null @@ -1,41 +0,0 @@ - - * @author Michiel De Jong - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh\GlobalConfig; - -/** - * Interface IConfig - * - * Configuration of the global scale architecture - * - * @since 12.0.1 - */ -interface IGlobalScaleConfig -{ - - /** - * check if global scale is enabled - * - * @return bool - * @since 12.0.1 - */ - public function isGlobalScaleEnabled(): bool; - - /** - * check if federation should only be used internally in a global scale setup - * - * @return bool - * @since 12.0.1 - */ - public function onlyInternalFederation(): bool; -} diff --git a/lib/Migration/Version0001Date20211201101630.php b/lib/Migration/Version0001Date20211201101630.php deleted file mode 100644 index 0dcc91e5..00000000 --- a/lib/Migration/Version0001Date20211201101630.php +++ /dev/null @@ -1,100 +0,0 @@ -connection = $connection; - } - - public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) - { - $schema = $schemaClosure(); - $shares = $schema->createTable('sciencemesh_shares'); - $users = $schema->createTable('sciencemesh_users'); - $shares->addColumn( - 'opaque_id', - \OCP\DB\Types::STRING, - ['notnull' => true] - ); - $shares->addColumn( - 'resource_id', - \OCP\DB\Types::STRING, - ['notnull' => true] - ); - $shares->addColumn( - 'permissions', - \OCP\DB\Types::INTEGER, - [] - ); - $shares->addColumn( - 'grantee', - \OCP\DB\Types::INTEGER, - [] - ); - $shares->addColumn( - 'owner', - \OCP\DB\Types::INTEGER, - [] - ); - $shares->addColumn( - 'creator', - \OCP\DB\Types::INTEGER, - [] - ); - $shares->addColumn( - 'ctime', - \OCP\DB\Types::INTEGER, - ['notnull' => true] - ); - $shares->addColumn( - 'mtime', - \OCP\DB\Types::INTEGER, - ['notnull' => true] - ); - $shares->addColumn( - 'is_external', - \OCP\DB\Types::BOOLEAN, - ['notnull' => false] - ); - $shares->addColumn( - 'foreign_id', - \OCP\DB\Types::INTEGER, - [] - ); - $shares->setPrimaryKey(['opaque_id']); - $users->addColumn( - 'id', - \OCP\DB\Types::INTEGER, - ['notnull' => true, 'autoincrement' => true, 'unsigned' => true] - ); - $users->addColumn( - 'idp', - \OCP\DB\Types::STRING, - ['notnull' => true] - ); - $users->addColumn( - 'opaque_id', - \OCP\DB\Types::STRING, - ['notnull' => true] - ); - $users->addColumn( - 'type', - \OCP\DB\Types::INTEGER, - [] - ); - $users->setPrimaryKey(['id']); - return $schema; - } -} diff --git a/lib/Migration/Version010000Date20210118175358.php b/lib/Migration/Version010000Date20210118175358.php deleted file mode 100644 index a2dda8dd..00000000 --- a/lib/Migration/Version010000Date20210118175358.php +++ /dev/null @@ -1,87 +0,0 @@ -hasTable('sciencemesh')) { - $table = $schema->createTable("sciencemesh"); - $table->addColumn('apikey', 'string', [ - 'notnull' => true, - ]); - $table->addColumn('sitename', 'string', [ - 'notnull' => true, - ]); - $table->addColumn('siteurl', 'string', [ - 'notnull' => true, - ]); - $table->addColumn('siteid', 'string', [ - 'notnull' => false, - ]); - $table->addColumn('country', 'string', [ - 'notnull' => true, - 'length' => 3, - ]); - $table->addColumn('iopurl', 'string', [ - 'notnull' => true, - ]); - $table->addColumn('numusers', Types::BIGINT, [ - 'notnull' => true, - 'default' => 0, - 'unsigned' => true, - ]); - $table->addColumn('numfiles', Types::BIGINT, [ - 'notnull' => true, - 'default' => 0, - 'unsigned' => true, - ]); - $table->addColumn('numstorage', Types::BIGINT, [ - 'notnull' => true, - 'default' => 0, - 'unsigned' => true, - ]); - } - return $schema; - } - - /** - * @param IOutput $output - * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` - * @param array $options - */ - public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) - { - } -} diff --git a/lib/Notifier/ScienceMeshNotifier.php b/lib/Notifier/ScienceMeshNotifier.php deleted file mode 100644 index 585a8d64..00000000 --- a/lib/Notifier/ScienceMeshNotifier.php +++ /dev/null @@ -1,106 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh\Notifier; - -use InvalidArgumentException; -use OCP\IURLGenerator; -use OCP\Notification\INotification; -use OCP\Notification\INotifier; - -class ScienceMeshNotifier implements INotifier -{ - - /** @var IURLGenerator */ - protected IURLGenerator $urlGenerator; - - /** - * @param IURLGenerator $urlGenerator - */ - public function __construct(IURLGenerator $urlGenerator) - { - $this->urlGenerator = $urlGenerator; - } - - /** - * Identifier of the notifier, only use [a-z0-9_] - * - * @return string - * @since 17.0.0 - */ - public function getID(): string - { - return 'sciencemesh'; - } - - /** - * Human-readable name describing the notifier - * - * @return string - * @since 17.0.0 - */ - public function getName(): string - { - return "sciencemesh"; - } - - /** - * @param INotification $notification - * @param string $languageCode The code of the language that should be used to prepare the notification - * @return INotification - * @throws InvalidArgumentException When the notification was not prepared by a notifier - */ - - public function prepare(INotification $notification, $languageCode): INotification - { - if ($notification->getApp() !== 'sciencemesh') { - throw new InvalidArgumentException('Unknown app'); - } - - switch ($notification->getSubject()) { - // Deal with known subjects - case 'remote_share': - $subjectParams = $notification->getSubjectParameters(); - if (!isset($subjectParams[0])) { - $notification->setParsedSubject("ScienceMesh notification"); - } else { - $notification->setParsedSubject($subjectParams[0]); - } - $messageParams = $notification->getMessageParameters(); - if (isset($messageParams[0]) && $messageParams[0] !== '') { - $notification->setParsedMessage($messageParams[0]); - } - $notification->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('notifications', 'notifications-dark.svg'))); - - // Deal with the actions for a known subject - foreach ($notification->getActions() as $action) { - switch ($action->getLabel()) { - case 'accept': - $action->setParsedLabel("Accept") - ->setLink($this->urlGenerator->linkToRouteAbsolute('sciencemesh.app.shared'), 'GET'); - break; - case 'decline': - $action->setParsedLabel("Decline") - ->setLink($this->urlGenerator->linkToRouteAbsolute('sciencemesh.app.shared'), 'GET'); - break; - } - - $notification->addParsedAction($action); - } - - return $notification; - - default: - throw new InvalidArgumentException('Unknown subject'); - } - } -} diff --git a/lib/Plugins/ScienceMeshSearchPlugin.php b/lib/Plugins/ScienceMeshSearchPlugin.php index 65f0d1ab..5c4bb74e 100644 --- a/lib/Plugins/ScienceMeshSearchPlugin.php +++ b/lib/Plugins/ScienceMeshSearchPlugin.php @@ -1,26 +1,31 @@ - * @author Mohammad Mahdi Baghbani Pourvahid + * @author Mohammad Mahdi Baghbani Pourvahid */ namespace OCA\ScienceMesh\Plugins; +use Exception; use OC\Share\Constants; use OCA\ScienceMesh\AppInfo\ScienceMeshApp; use OCA\ScienceMesh\RevaHttpClient; +use OCA\ScienceMesh\Utils\StaticMethods; use OCP\Contacts\IManager; use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; use OCP\IUserSession; use OCP\Util\UserSearch; use function explode; use function is_array; +use function strtolower; use function substr_count; class ScienceMeshSearchPlugin @@ -44,13 +49,29 @@ class ScienceMeshSearchPlugin /** @var string */ private string $userId = ''; + + /** @var RevaHttpClient */ private RevaHttpClient $revaHttpClient; + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** + * @throws Exception + */ public function __construct( IManager $contactsManager, IConfig $config, IUserSession $userSession, - UserSearch $userSearch + UserSearch $userSearch, + IL10N $l10n, + ILogger $logger ) { $this->config = $config; @@ -62,8 +83,14 @@ public function __construct( } $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; $this->revaHttpClient = new RevaHttpClient($this->config); + $this->l = $l10n; + $this->logger = $logger; + $this->utils = new StaticMethods($l10n, $logger); } + /** + * @throws Exception + */ public function search($search): array { $result = json_decode($this->revaHttpClient->findAcceptedUsers($this->userId), true); @@ -75,7 +102,6 @@ public function search($search): array $result = []; foreach ($users as $user) { - $serverUrl = parse_url($user['idp']); $domain = (str_starts_with($user['idp'], "http") ? parse_url($user['idp'])["host"] : $user['idp']); $result[] = [ 'label' => $user['display_name'] . " (" . $domain . ")", @@ -117,11 +143,11 @@ public function search($search): array $cloudIds = [$cloudIds]; } - $lowerSearch = \strtolower($search); + $lowerSearch = strtolower($search); foreach ($cloudIds as $cloudId) { - list(, $serverUrl) = $this->splitUserRemote($cloudId); + list(, $serverUrl) = $this->utils->splitUserRemote($cloudId); - if (\strtolower($cloudId) === $lowerSearch) { + if (strtolower($cloudId) === $lowerSearch) { $foundRemoteById = true; // Save this as an exact match and continue with next CLOUD $otherResults[] = [ @@ -150,7 +176,7 @@ public function search($search): array } foreach ($values as $value) { // check if we have an exact match - if (\strtolower($value) === $lowerSearch) { + if (strtolower($value) === $lowerSearch) { $this->result['exact']['remotes'][] = [ 'label' => $contact['FN'], 'value' => [ @@ -192,7 +218,7 @@ public function search($search): array // (if it does, it is a user whose local login domain matches the ownCloud // instance domain) && (empty($this->result['exact']['users']) - || !$this->isInstanceDomain($search)) + || !$this->utils->isInstanceDomain($search, $this->config)) ) { $otherResults[] = [ 'label' => $search, @@ -203,6 +229,10 @@ public function search($search): array ]; } - return array_merge($result, $otherResults); + $result = array_merge($result, $otherResults); + + if (count($result) > 0) + return $result; + return []; } } diff --git a/lib/Plugins/SmFgOcmSearchPlugin.php b/lib/Plugins/SmFgOcmSearchPlugin.php new file mode 100644 index 00000000..f8d3812b --- /dev/null +++ b/lib/Plugins/SmFgOcmSearchPlugin.php @@ -0,0 +1,261 @@ + + * @author Mohammad Mahdi Baghbani Pourvahid + */ + +namespace OCA\ScienceMesh\Plugins; + +use Exception; +use OC\Share\Constants; +use OCA\ScienceMesh\AppInfo\ScienceMeshApp; +use OCA\ScienceMesh\RevaHttpClient; +use OCA\ScienceMesh\Utils\StaticMethods; +use OCP\Contacts\IManager; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IUserSession; +use OCP\Util\UserSearch; +use function count; +use function explode; +use function is_array; +use function strtolower; +use function substr_count; + +/** + * Compatibility search plugin for + * ScienceMesh + OpenCloudMesh + FederatedGroups combination. + * + */ +class SmFgOcmSearchPlugin +{ + protected bool $shareeEnumeration; + + /** @var IManager */ + protected IManager $contactsManager; + + /** @var int */ + protected int $offset = 0; + + /** @var int */ + protected int $limit = 10; + + /** @var UserSearch */ + protected UserSearch $userSearch; + + /** @var IConfig */ + private IConfig $config; + + /** @var string */ + private string $userId = ''; + + /** @var RevaHttpClient */ + private RevaHttpClient $revaHttpClient; + + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** @var StaticMethods */ + private StaticMethods $utils; + + /** + * @var mixed + */ + private $result; + + /** + * @throws Exception + */ + public function __construct( + IManager $contactsManager, + IConfig $config, + IUserSession $userSession, + UserSearch $userSearch, + IL10N $l10n, + ILogger $logger + ) + { + $this->config = $config; + $user = $userSession->getUser(); + $this->contactsManager = $contactsManager; + $this->userSearch = $userSearch; + if ($user !== null) { + $this->userId = $user->getUID(); + } + $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; + $this->revaHttpClient = new RevaHttpClient($this->config); + $this->l = $l10n; + $this->logger = $logger; + $this->utils = new StaticMethods($l10n, $logger); + } + + /** + * @throws Exception + */ + public function search($search): array + { + $result = []; + + $users = json_decode($this->revaHttpClient->findAcceptedUsers($this->userId), true); + + foreach ($users as $user) { + $domain = (str_starts_with($user['idp'], "http") ? parse_url($user['idp'])["host"] : $user['idp']); + $result[] = [ + 'label' => $user['display_name'] . " (" . $domain . ")", + 'value' => [ + 'shareType' => ScienceMeshApp::SHARE_TYPE_SCIENCEMESH, + 'shareWith' => $user['user_id'] . "@" . $user['idp'] . ScienceMeshApp::SCIENCEMESH_POSTFIX, + ], + ]; + } + + $otherResults = []; + + // copied from https://github.com/owncloud/core/blob/v10.11.0/apps/files_sharing/lib/Controller/ShareesController.php#L385-L503 + // just doubling up every result, so it appears once with share type Share::SHARE_TYPE_REMOTE + // and once with share type Share::SHARE_TYPE_REMOTE_GROUP + + // Fetch remote search properties from app config + /** + * @var array $searchProperties + */ + $searchProperties = explode(',', $this->config->getAppValue('dav', 'remote_search_properties', 'CLOUD,FN')); + // Search in contacts + $matchMode = $this->config->getSystemValue('accounts.enable_medial_search', true) === true + ? 'ANY' + : 'START'; + $addressBookContacts = $this->contactsManager->search( + $search, + $searchProperties, + ['matchMode' => $matchMode], + $this->limit, + $this->offset + ); + $foundRemoteById = false; + foreach ($addressBookContacts as $contact) { + if (isset($contact['isLocalSystemBook'])) { + // We only want remote users + continue; + } + if (!isset($contact['CLOUD'])) { + // we need a cloud id to set up a remote share + continue; + } + + // we can have multiple cloud domains, always convert to an array + $cloudIds = $contact['CLOUD']; + if (!is_array($cloudIds)) { + $cloudIds = [$cloudIds]; + } + + $lowerSearch = strtolower($search); + foreach ($cloudIds as $cloudId) { + list(, $serverUrl) = $this->utils->splitUserRemote($cloudId); + + if (strtolower($cloudId) === $lowerSearch) { + $foundRemoteById = true; + // Save this as an exact match and continue with next CLOUD + $otherResults[] = [ + 'label' => $contact['FN'], + 'value' => [ + 'shareType' => Constants::SHARE_TYPE_REMOTE, + 'shareWith' => $cloudId, + 'server' => $serverUrl, + ], + ]; + continue; + } + + // CLOUD matching is done above + unset($searchProperties['CLOUD']); + foreach ($searchProperties as $property) { + // do we even have this property for this contact/ + if (!isset($contact[$property])) { + // Skip this property since our contact doesn't have it + continue; + } + // check if we have a match + $values = $contact[$property]; + if (!is_array($values)) { + $values = [$values]; + } + foreach ($values as $value) { + // check if we have an exact match + if (strtolower($value) === $lowerSearch) { + $this->result['exact']['remotes'][] = [ + 'label' => $contact['FN'], + 'value' => [ + 'shareType' => Constants::SHARE_TYPE_REMOTE, + 'shareWith' => $cloudId, + 'server' => $serverUrl, + ], + ]; + + // Now skip to next CLOUD + continue 3; + } + } + } + + // If we get here, we didn't find an exact match, so add to other matches + if ($this->userSearch->isSearchable($search)) { + $otherResults[] = [ + 'label' => $contact['FN'], + 'value' => [ + 'shareType' => Constants::SHARE_TYPE_REMOTE, + 'shareWith' => $cloudId, + 'server' => $serverUrl, + ], + ]; + } + } + } + + // remove the exact user results if we don't allow autocomplete + if (!$this->shareeEnumeration) { + $otherResults = []; + } + + if (!$foundRemoteById && substr_count($search, '@') >= 1 + && $this->offset === 0 && $this->userSearch->isSearchable($search) + + // if an exact local user is found, only keep the remote entry if + // its domain does not match the trusted domains + // (if it does, it is a user whose local login domain matches the ownCloud + // instance domain) + && (empty($this->result['exact']['users']) + || !$this->utils->isInstanceDomain($search, $this->config)) + ) { + $otherResults[] = [ + 'label' => $search, + 'value' => [ + 'shareType' => Constants::SHARE_TYPE_REMOTE, + 'shareWith' => $search, + ], + ]; + $otherResults[] = [ + 'label' => $search, + 'value' => [ + 'shareType' => Constants::SHARE_TYPE_REMOTE_GROUP, + 'shareWith' => $search, + ], + ]; + } + + $result = array_merge($result, $otherResults); + + if (count($result) > 0) + return $result; + return []; + } +} diff --git a/lib/RevaHttpClient.php b/lib/RevaHttpClient.php index a67d7762..ad00cc54 100644 --- a/lib/RevaHttpClient.php +++ b/lib/RevaHttpClient.php @@ -50,6 +50,18 @@ public function __construct(IConfig $config) $this->revaLoopbackSecret = $this->serverConfig->getRevaLoopbackSecret(); } + public function ocmProvider(string $userId) + { + // TODO: @Mahdi handle failures in this request. + return $this->revaGet('ocm-provider', $userId); + } + + private function revaGet(string $route, string $user, array $params = []) + { + $url = $this->revaUrl . $route; + return $this->curlGet($url, $user, $params); + } + private function curlGet(string $url, string $user, array $params = []) { $ch = curl_init(); @@ -73,47 +85,9 @@ private function curlGet(string $url, string $user, array $params = []) return $output; } - private function curlPost(string $url, string $user, array $params = []) - { - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_TIMEOUT, 10); - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); - curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]); - curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params, JSON_PRETTY_PRINT)); - if ($this->revaLoopbackSecret) { - curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $this->revaLoopbackSecret); - curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); - } - $output = curl_exec($ch); - $info = curl_getinfo($ch); - curl_close($ch); - return $output; - } - - private function revaPost(string $route, string $user, array $params = []) - { - $url = $this->revaUrl . $route; - return $this->curlPost($url, $user, $params); - } - - private function revaGet(string $route, string $user, array $params = []) - { - $url = $this->revaUrl . $route; - return $this->curlGet($url, $user, $params); - } - - public function ocmProvider(string $userId) - { - // TODO: @Mahdi: handle failures in this request. - return $this->revaGet('ocm-provider', $userId); - } - public function generateTokenFromReva(string $userId, string $recipient) { - // TODO: @Mahdi: handle failures in this request. + // TODO: @Mahdi handle failures in this request. $tokenFromReva = $this->revaGet('sciencemesh/generate-invite', $userId, array('recipient' => $recipient)); error_log('Got token from reva!' . $tokenFromReva); return json_decode($tokenFromReva, true); @@ -121,7 +95,7 @@ public function generateTokenFromReva(string $userId, string $recipient) public function findAcceptedUsers(string $userId) { - // TODO: @Mahdi: handle failures in this request. + // TODO: @Mahdi handle failures in this request. $users = $this->revaGet('sciencemesh/find-accepted-users', $userId); error_log("users " . var_export($users, true)); if ($users === "null\n") { @@ -133,7 +107,7 @@ public function findAcceptedUsers(string $userId) public function acceptInvite(string $providerDomain, string $token, string $userId): string { - // TODO: @Mahdi: handle failures in this request. + // TODO: @Mahdi handle failures in this request. $empty = $this->revaPost('sciencemesh/accept-invite', $userId, [ 'providerDomain' => $providerDomain, 'token' => $token @@ -141,6 +115,32 @@ public function acceptInvite(string $providerDomain, string $token, string $user return "Accepted invite"; } + private function revaPost(string $route, string $user, array $params = []) + { + $url = $this->revaUrl . $route; + return $this->curlPost($url, $user, $params); + } + + private function curlPost(string $url, string $user, array $params = []) + { + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 10); + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); + curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params, JSON_PRETTY_PRINT)); + if ($this->revaLoopbackSecret) { + curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $this->revaLoopbackSecret); + curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + } + $output = curl_exec($ch); + $info = curl_getinfo($ch); + curl_close($ch); + return $output; + } + /** * @throws Exception */ @@ -158,6 +158,7 @@ public function createShare(string $user, array $params) throw new Exception("Missing type", 400); } if (!isset($params['role'])) { + // TODO: @Mahdi why is thi hard coded? is it related to share permissions? $params['role'] = 'viewer'; } if (!isset($params['recipientUsername'])) { @@ -166,7 +167,7 @@ public function createShare(string $user, array $params) if (!isset($params['recipientHost'])) { throw new Exception("Missing recipientHost", 400); } - // TODO: @Mahdi: handle failures in this request. + // TODO: @Mahdi handle failures in this request. error_log("Calling reva/sciencemesh/create-share " . json_encode($params)); $responseText = $this->revaPost('sciencemesh/create-share', $user, $params); return json_decode($responseText); diff --git a/lib/ScienceMeshProviderFactory.php b/lib/ScienceMeshProviderFactory.php index 7cb1ab9a..f2c28007 100644 --- a/lib/ScienceMeshProviderFactory.php +++ b/lib/ScienceMeshProviderFactory.php @@ -13,28 +13,28 @@ namespace OCA\ScienceMesh; +use Exception; use OC\Share\Constants; use OC\Share20\DefaultShareProvider; use OC\Share20\Exception\ProviderException; -use OCA\ScienceMesh\AppInfo\Application; +use OCA\ScienceMesh\AppInfo\ScienceMeshApp; use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; use OCP\AppFramework\QueryException; use OCP\IServerContainer; use OCP\Share\IProviderFactory; /** - * Class ProviderFactory + * Class ScienceMeshProviderFactory * - * @package OC\Share20 + * @package OCA\ScienceMesh */ class ScienceMeshProviderFactory implements IProviderFactory { - /** @var IServerContainer */ private IServerContainer $serverContainer; /** @var ?DefaultShareProvider */ - private ?DefaultShareProvider $defaultProvider = null; + private ?DefaultShareProvider $defaultShareProvider = null; /** @var ?ScienceMeshShareProvider */ private ?ScienceMeshShareProvider $scienceMeshShareProvider = null; @@ -66,24 +66,22 @@ public function getProviders(): array */ protected function defaultShareProvider(): DefaultShareProvider { - if ($this->defaultProvider === null) { - // serverContainer really has to be more than just an IServerContainer - // because getLazyRootFolder() is only in \OC\Server - $this->defaultProvider = new DefaultShareProvider( + if ($this->defaultShareProvider === null) { + $this->defaultShareProvider = new DefaultShareProvider( $this->serverContainer->getDatabaseConnection(), $this->serverContainer->getUserManager(), $this->serverContainer->getGroupManager(), $this->serverContainer->getLazyRootFolder() ); } - return $this->defaultProvider; + return $this->defaultShareProvider; } /** - * Create the federated share provider + * Create the sciencemesh share provider * * @return ScienceMeshShareProvider - * @throws QueryException + * @throws QueryException|Exception */ protected function scienceMeshShareProvider(): ?ScienceMeshShareProvider { @@ -92,15 +90,14 @@ protected function scienceMeshShareProvider(): ?ScienceMeshShareProvider * Check if the app is enabled */ $appManager = $this->serverContainer->getAppManager(); - //** change to science mesh */ if (!$appManager->isEnabledForUser('sciencemesh')) { + // TODO: @Mahdi what if sciencemesh is disabled and federatedfilesharing is enabled? + // we are overriding the base share provider, so if sciencemesh is disabled all + // federated share capability will be disabled. return null; } - /* - * TODO: add factory to federated sharing app - */ - $scienceMeshApplication = new Application(); + $scienceMeshApplication = new ScienceMeshApp(); $this->scienceMeshShareProvider = $scienceMeshApplication->getScienceMeshShareProvider(); } return $this->scienceMeshShareProvider; @@ -132,6 +129,7 @@ public function getProvider($id) */ public function getProviderForType($shareType) { + // TODO: @Mahdi possible conflict with rd-sram as Constants::SHARE_TYPE_GROUP is not handled by sciencemesh. if ($shareType === Constants::SHARE_TYPE_REMOTE) { $provider = $this->scienceMeshShareProvider(); } else { diff --git a/lib/Sections/SciencemeshSettingsAdmin.php b/lib/Sections/SciencemeshSettingsAdmin.php index 7fcbe297..367608eb 100644 --- a/lib/Sections/SciencemeshSettingsAdmin.php +++ b/lib/Sections/SciencemeshSettingsAdmin.php @@ -9,6 +9,7 @@ * @author Michiel De Jong * @author Mohammad Mahdi Baghbani Pourvahid */ + namespace OCA\ScienceMesh\Sections; use OCP\IL10N; @@ -26,23 +27,41 @@ public function __construct(IL10N $l, IURLGenerator $urlGenerator) $this->urlGenerator = $urlGenerator; } - public function getIconName(): string - { - return $this->urlGenerator->imagePath('core', 'actions/settings-dark.svg'); - } - + /** + * A string used for section identification, eg: in HTML + * @return string + * @since 10.0 + */ public function getID(): string { return 'sciencemesh_settings'; } + /** + * A string to be displayed to the user for the section + * @return string + * @since 10.0 + */ public function getName(): string { return $this->l->t('ScienceMesh Settings'); } + /** + * @return int + * @since 10.0 + */ public function getPriority(): int { return 1; } -} \ No newline at end of file + + /** + * @return string + * @since 10.0 + */ + public function getIconName(): string + { + return $this->urlGenerator->imagePath('sciencemesh', 'app-black.svg'); + } +} diff --git a/lib/ServerConfig.php b/lib/ServerConfig.php index fa7b8ebe..8a83076d 100644 --- a/lib/ServerConfig.php +++ b/lib/ServerConfig.php @@ -14,24 +14,25 @@ use Exception; use OCP\IConfig; +use RangeException; /** * @throws Exception */ function random_str( int $length = 64, - string $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + string $keyspace = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ): string { if ($length < 1) { - throw new \RangeException("Length must be a positive integer"); + throw new RangeException("Length must be a positive integer"); } $pieces = []; - $max = mb_strlen($keyspace, '8bit') - 1; + $max = mb_strlen($keyspace, "8bit") - 1; for ($i = 0; $i < $length; ++$i) { $pieces [] = $keyspace[random_int(0, $max)]; } - return implode('', $pieces); + return implode("", $pieces); } /** @@ -53,32 +54,40 @@ public function __construct(IConfig $config) public function getApiKey() { - return $this->config->getAppValue('sciencemesh', 'apiKey'); + return $this->config->getAppValue("sciencemesh", "apiKey"); } public function getSiteName() { - return $this->config->getAppValue('sciencemesh', 'siteName'); + return $this->config->getAppValue("sciencemesh", "siteName"); } public function getSiteUrl() { - return $this->config->getAppValue('sciencemesh', 'siteUrl'); + return $this->config->getAppValue("sciencemesh", "siteUrl"); } public function getSiteId() { - return $this->config->getAppValue('sciencemesh', 'siteId'); + return $this->config->getAppValue("sciencemesh", "siteId"); } public function getCountry() { - return $this->config->getAppValue('sciencemesh', 'country'); + return $this->config->getAppValue("sciencemesh", "country"); } public function getIopUrl(): string { - return rtrim($this->config->getAppValue('sciencemesh', 'iopUrl'), '/') . '/'; + return rtrim($this->config->getAppValue("sciencemesh", "iopUrl"), "/") . "/"; + } + + public function getIopIdp(): string + { + // TODO: @Mahdi use function from utils. + // converts https://revaowncloud1.docker/ to revaowncloud1.docker + // NOTE: do not use it on anything without http(s) in the start, it would return null. + return str_ireplace("www.", "", parse_url($this->getIopUrl(), PHP_URL_HOST)); } /** @@ -86,10 +95,10 @@ public function getIopUrl(): string */ public function getRevaLoopbackSecret() { - $ret = $this->config->getAppValue('sciencemesh', 'revaLoopbackSecret'); + $ret = $this->config->getAppValue("sciencemesh", "revaLoopbackSecret"); if (!$ret) { $ret = random_str(32); - $this->config->setAppValue('sciencemesh', 'revaLoopbackSecret', $ret); + $this->config->setAppValue("sciencemesh", "revaLoopbackSecret", $ret); } return $ret; } @@ -99,76 +108,76 @@ public function getRevaLoopbackSecret() */ public function getRevaSharedSecret() { - $ret = $this->config->getAppValue('sciencemesh', 'revaSharedSecret'); + $ret = $this->config->getAppValue("sciencemesh", "revaSharedSecret"); if (!$ret) { $ret = random_str(32); - $this->config->setAppValue('sciencemesh', 'revaSharedSecret', $ret); + $this->config->setAppValue("sciencemesh", "revaSharedSecret", $ret); } return $ret; } public function setRevaSharedSecret($sharedSecret) { - $this->config->setAppValue('sciencemesh', 'revaSharedSecret', $sharedSecret); + $this->config->setAppValue("sciencemesh", "revaSharedSecret", $sharedSecret); } public function getNumUsers() { - return $this->config->getAppValue('sciencemesh', 'numUsers'); + return $this->config->getAppValue("sciencemesh", "numUsers"); } public function getNumFiles() { - return $this->config->getAppValue('sciencemesh', 'numFiles'); + return $this->config->getAppValue("sciencemesh", "numFiles"); } public function getNumStorage() { - return $this->config->getAppValue('sciencemesh', 'numStorage'); + return $this->config->getAppValue("sciencemesh", "numStorage"); } public function setApiKey($apiKey) { - $this->config->setAppValue('sciencemesh', 'apiKey', $apiKey); + $this->config->setAppValue("sciencemesh", "apiKey", $apiKey); } public function setSiteName($siteName) { - $this->config->setAppValue('sciencemesh', 'siteName', $siteName); + $this->config->setAppValue("sciencemesh", "siteName", $siteName); } public function setSiteUrl($siteUrl) { - $this->config->setAppValue('sciencemesh', 'siteUrl', $siteUrl); + $this->config->setAppValue("sciencemesh", "siteUrl", $siteUrl); } public function setSiteId($siteId) { - $this->config->setAppValue('sciencemesh', 'siteId', $siteId); + $this->config->setAppValue("sciencemesh", "siteId", $siteId); } public function setCountry($country) { - $this->config->setAppValue('sciencemesh', 'country', $country); + $this->config->setAppValue("sciencemesh", "country", $country); } public function setIopUrl($iopUrl) { - $this->config->setAppValue('sciencemesh', 'iopUrl', $iopUrl); + $this->config->setAppValue("sciencemesh", "iopUrl", $iopUrl); } public function setNumUsers($numUsers) { - $this->config->setAppValue('sciencemesh', 'numUsers', $numUsers); + $this->config->setAppValue("sciencemesh", "numUsers", $numUsers); } public function setNumFiles($numFiles) { - $this->config->setAppValue('sciencemesh', 'numFiles', $numFiles); + $this->config->setAppValue("sciencemesh", "numFiles", $numFiles); } public function setNumStorage($numStorage) { - $this->config->setAppValue('sciencemesh', 'numStorage', $numStorage); + $this->config->setAppValue("sciencemesh", "numStorage", $numStorage); } } diff --git a/lib/Settings.php b/lib/Settings.php deleted file mode 100644 index 0b4f16d1..00000000 --- a/lib/Settings.php +++ /dev/null @@ -1,74 +0,0 @@ - - * @author Mohammad Mahdi Baghbani Pourvahid - */ - -namespace OCA\ScienceMesh; - -use OCP\AppFramework\Http\TemplateResponse; -use OCP\Settings\ISettings; -use OCP\Template; - -class Settings implements ISettings -{ - private Serverconfig $config; - - public function __construct(Serverconfig $config) - { - $this->config = $config; - } - - public function getForm() - { - $response = new TemplateResponse('sciencemesh', 'settings-admin'); - $response->setParams([ - 'apiKey' => $this->config->getApiKey(), - 'siteName' => $this->config->getSiteName(), - 'siteUrl' => $this->config->getSiteUrl(), - 'siteId' => $this->config->getSiteId(), - 'country' => $this->config->getCountry(), - 'iopUrl' => $this->config->getIopUrl(), - 'numUsers' => $this->config->getNumUsers(), - 'numFiles' => $this->config->getNumFiles(), - 'numStorage' => $this->config->getNumStorage() - ]); - return $response; - } - - public function getSection(): string - { - return 'sharing'; - } - - public function getPriority(): int - { - return 50; - } - - /** - * The panel controller method that returns a template to the UI - * @return TemplateResponse | Template - * @since 10.0 - */ - public function getPanel() - { - // TODO: Implement getPanel() method. - } - - /** - * A string to identify the section in the UI / HTML and URL - * @return string - * @since 10.0 - */ - public function getSectionID() - { - // TODO: Implement getSectionID() method. - } -} diff --git a/lib/Settings/SciencemeshSettingsAdmin.php b/lib/Settings/SciencemeshSettingsAdmin.php index 1be9f017..59240592 100644 --- a/lib/Settings/SciencemeshSettingsAdmin.php +++ b/lib/Settings/SciencemeshSettingsAdmin.php @@ -31,8 +31,10 @@ public function __construct(IConfig $config) } /** + * The panel controller method that returns a template to the UI * @return TemplateResponse * @throws Exception + * @since 10.0 */ public function getPanel(): TemplateResponse { @@ -42,23 +44,26 @@ public function getPanel(): TemplateResponse 'sciencemeshRevaSharedSecret' => $this->serverConfig->getRevaSharedSecret() ]; - return new TemplateResponse('sciencemesh', 'settings/admin', $parameters, ''); + return new TemplateResponse('sciencemesh', 'settings', $parameters, ''); } + /** + * A string to identify the section in the UI / HTML and URL + * @return string + * @since 10.0 + */ public function getSectionID(): string { return 'sciencemesh_settings'; // Name of the previously created section. } /** - * @return int whether the form should be rather on the top or bottom of - * the admin section. The forms are arranged in ascending order of the - * priority values. It is required to return a value between 0 and 100. - * - * E.g.: 70 + * The number used to order the section in the UI. + * @return int between 0 and 100, with 100 being the highest priority + * @since 10.0 */ public function getPriority(): int { return 10; } -} \ No newline at end of file +} diff --git a/lib/ShareProvider/ScienceMeshShareProvider.php b/lib/ShareProvider/ScienceMeshShareProvider.php index 106a4b59..8a79c8a4 100644 --- a/lib/ShareProvider/ScienceMeshShareProvider.php +++ b/lib/ShareProvider/ScienceMeshShareProvider.php @@ -24,8 +24,10 @@ use OCA\FederatedFileSharing\TokenHandler; use OCA\ScienceMesh\AppInfo\ScienceMeshApp; use OCA\ScienceMesh\RevaHttpClient; -use OCP\Constants; +use OCA\ScienceMesh\ServerConfig; +use OCA\ScienceMesh\Utils\StaticMethods; use OCP\Files\IRootFolder; +use OCP\Files\NotFoundException; use OCP\IConfig; use OCP\IDBConnection; use OCP\IL10N; @@ -44,12 +46,18 @@ class ScienceMeshShareProvider extends FederatedShareProviderCopy { - /** @var RevaHttpClient */ - protected RevaHttpClient $revaHttpClient; + /** @var ServerConfig */ + private ServerConfig $serverConfig; /** @var array */ protected array $supportedShareType; + /** @var RevaHttpClient */ + protected RevaHttpClient $revaHttpClient; + + /** @var StaticMethods */ + private StaticMethods $utils; + /** * ScienceMeshShareProvider constructor. * @@ -91,8 +99,10 @@ public function __construct( $userManager ); - $this->supportedShareType[] = ScienceMeshApp::SHARE_TYPE_SCIENCEMESH; + $this->serverConfig = new ServerConfig($config); $this->revaHttpClient = new RevaHttpClient($config); + $this->utils = new StaticMethods($l10n, $logger); + $this->supportedShareType[] = ScienceMeshApp::SHARE_TYPE_SCIENCEMESH; } /** @@ -108,119 +118,10 @@ public function isShareTypeSupported(int $shareType): bool } /** - * Share a path - * - * @param IShare $share - * @return IShare The share object - * @throws ShareNotFound - * @throws Exception - */ - public function createInternal(IShare $share): IShare - { - error_log("SMSP: createInternal"); - $shareWith = $share->getSharedWith(); - - error_log("shareWith $shareWith"); - - error_log("checking if already shared " . $share->getNode()->getName()); - /* - * Check if file is not already shared with the remote user - */ - $alreadyShared = $this->getSharedWith($shareWith, $share->getShareType(), $share->getNode(), 1, 0); - if (!empty($alreadyShared)) { - $message = 'Sharing %1$s failed, because this item is already shared with %2$s'; - $message_t = $this->l->t('Sharing %1$s failed, because this item is already shared with user %2$s', [$share->getNode()->getName(), $shareWith]); - $this->logger->debug(sprintf($message, $share->getNode()->getName(), $shareWith), ['app' => 'ScienceMesh']); - throw new Exception($message_t); - } - - - // FIXME: don't allow ScienceMesh shares if source and target server are the same - // ScienceMesh shares always have read permissions - if (($share->getPermissions() & Constants::PERMISSION_READ) === 0) { - $message = 'ScienceMesh shares require read permissions'; - $message_t = $this->l->t('ScienceMesh shares require read permissions'); - $this->logger->debug($message, ['app' => 'ScienceMesh']); - throw new Exception($message_t); - } - - $share->setSharedWith($shareWith); - $shareId = $this->createScienceMeshShare($share); - - $data = $this->getRawShare($shareId); - return $this->createShareObject($data); - } - - /** - * create sciencemesh share and inform the recipient - * - * @param IShare $share - * @return int - * @throws Exception - */ - protected function createScienceMeshShare(IShare $share): int - { - return $this->addSentShareToDB( - $share->getNodeId(), - $share->getNodeType(), - $share->getSharedWith(), - $share->getSharedBy(), - $share->getShareOwner(), - $share->getPermissions(), - $share->getToken(), - $share->getShareType() - ); - } - - /** - * add share to the database and return the ID + * Share a path. * - * @param int $itemSource - * @param string $itemType - * @param string $shareWith - * @param string $sharedBy - * @param string $uidOwner - * @param int $permissions - * @param string $token - * @param int $shareType - * @return int - */ - protected function addSentShareToDB( - int $itemSource, - string $itemType, - string $shareWith, - string $sharedBy, - string $uidOwner, - int $permissions, - string $token, - int $shareType - ): int - { - $qb = $this->dbConnection->getQueryBuilder(); - $qb->insert('share') - ->setValue('share_type', $qb->createNamedParameter($shareType)) - ->setValue('item_type', $qb->createNamedParameter($itemType)) - ->setValue('item_source', $qb->createNamedParameter($itemSource)) - ->setValue('file_source', $qb->createNamedParameter($itemSource)) - ->setValue('share_with', $qb->createNamedParameter($shareWith)) - ->setValue('uid_owner', $qb->createNamedParameter($uidOwner)) - ->setValue('uid_initiator', $qb->createNamedParameter($sharedBy)) - ->setValue('permissions', $qb->createNamedParameter($permissions)) - ->setValue('token', $qb->createNamedParameter($token)) - ->setValue('stime', $qb->createNamedParameter(time())); - - /* - * Added to fix https://github.com/owncloud/core/issues/22215 - * Can be removed once we get rid of ajax/share.php - */ - $qb->setValue('file_target', $qb->createNamedParameter('')); - - $qb->execute(); - return $qb->getLastInsertId(); - } - - /** - * Share a path + * This method is being called by: + * https://github.com/owncloud/core/blob/e95e978f452787e55515ac3e43763e4adcf87d14/lib/private/Share20/Manager.php#L832C3-L832C3 * * @param IShare $share * @return IShare The share object @@ -232,17 +133,21 @@ public function create(IShare $share): IShare $node = $share->getNode(); $shareWith = $share->getSharedWith(); - // This is the routing flag for sending a share. + // this is the routing flag for sending a share. // if the recipient of the share is a sciencemesh contact, // the search plugin will mark it by a postfix. $isSciencemeshUser = $this->stringEndsWith($shareWith, ScienceMeshApp::SCIENCEMESH_POSTFIX); - // Based on the flag, the share will be sent through sciencemesh or regular share provider. + // based on the flag, the share will be sent through sciencemesh or regular share provider. if ($isSciencemeshUser) { // remove the postfix flag from the string. $shareWith = str_replace(ScienceMeshApp::SCIENCEMESH_POSTFIX, "", $shareWith); + error_log("create: node path: " . $node->getPath()); + // node path: /einstein/files/test + // path parts: ["einstein", "files", "test"] $pathParts = explode("/", $node->getPath()); + // sender: einstein $sender = $pathParts[1]; $sourceOffset = 3; $targetOffset = 3; @@ -250,32 +155,74 @@ public function create(IShare $share): IShare $suffix = ($node->getType() == "dir" ? "/" : ""); // "home" is reva's default work space name, prepending that in the source path: + // source path: /test/ + // target path: /home/test/ $sourcePath = $prefix . "home/" . implode("/", array_slice($pathParts, $sourceOffset)) . $suffix; $targetPath = $prefix . implode("/", array_slice($pathParts, $targetOffset)) . $suffix; - // TODO: make a function for below operation. it is used in a lot placed, but incorrectly. - // it should split username@host into an array of 2 element - // representing array[0] = username, array[1] = host - // requirement: - // handle usernames with multiple @ in them. - // example: MahdiBaghbani@pondersource@sciencemesh.org - // username: MahdiBaghbani@pondersource - // host: sciencemesh.org - $split_point = '@'; - $parts = explode($split_point, $shareWith); - $last = array_pop($parts); - $shareWithParts = array(implode($split_point, $parts), $last); + $shareWithParts = $this->utils->splitUserAndHost($shareWith); + + // don't allow ScienceMesh shares if source and target server are the same. + // this means users with the same reva iop cannot share with each other via sciencemesh and + // should use their native efss capabilities to do so. + // see: https://github.com/sciencemesh/nc-sciencemesh/issues/57 + if ($this->serverConfig->getIopIdp() === $shareWithParts[1]) { + $message = "Not allowed to create a ScienceMesh share for a user on the same server %s as sender."; + $message_t = $this->l->t( + "Not allowed to create a ScienceMesh share for a user on the same server %s as sender.", + [$shareWithParts[1]] + ); + $this->logger->debug( + sprintf( + $message, $shareWithParts[1] + ), + ["app" => "sciencemesh"] + ); + throw new Exception($message_t); + } + + // check if file is not already shared with the remote user. + $alreadyShared = $this->getSharedWith( + $shareWith, + $share->getShareType(), + $share->getNode(), + 1, + 0 + ); + + if (!empty($alreadyShared)) { + $message = "Sharing %s failed, because this item is already shared with %s"; + $message_t = $this->l->t( + "Sharing %s failed, because this item is already shared with %s", + [$share->getNode()->getName(), $share->getSharedWith()] + ); + $this->logger->debug( + sprintf( + $message, $share->getNode()->getName(), $share->getSharedWith() + ), + ["app" => "sciencemesh"] + ); + throw new Exception($message_t); + } $response = $this->revaHttpClient->createShare($sender, [ - 'sourcePath' => $sourcePath, - 'targetPath' => $targetPath, - 'type' => $node->getType(), - 'recipientUsername' => $shareWithParts[0], - 'recipientHost' => $shareWithParts[1] + "sourcePath" => $sourcePath, + "targetPath" => $targetPath, + "type" => $node->getType(), + "recipientUsername" => $shareWithParts[0], + "recipientHost" => $shareWithParts[1] ]); - if (!isset($response) || !isset($response->share) || !isset($response->share->owner) || !isset($response->share->owner->idp)) { - throw new Exception("Unexpected response from reva"); + if (!isset($response->share->owner->idp)) { + $message = "Unexpected response from Reva, response share owner idp doesn't exist."; + $message_t = $this->l->t( + "Unexpected response from Reva, response share owner idp doesn't exist.", + ); + $this->logger->error( + $message, + ["app" => "sciencemesh"] + ); + throw new Exception($message_t); } $share->setId("will-set-this-later"); @@ -288,6 +235,27 @@ public function create(IShare $share): IShare return $share; } + /** + * Share a path via ScienceMesh. + * + * @param IShare $share + * @return IShare The share object + * @throws NotFoundException + * @throws ShareNotFound + * @throws InvalidShare + * @throws IllegalIDChangeException + */ + public function createNativeEfssScienceMeshShare(IShare $share): IShare + { + // this adds share to native efss table in the database. + $shareId = $this->addSentOcmShareToEfssTable($share); + + $data = $this->getRawShare($shareId); + return $this->createShareObject($data); + } + + // TODO: @Mahdi Move to utils. + /** * Check if a given string ends with a substring. * @@ -316,9 +284,9 @@ public function updateReceivedShare(IShare $share): IShare * We allow updating the permissions of sciencemesh shares */ $qb = $this->dbConnection->getQueryBuilder(); - $qb->update('share_external') - ->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId()))) - ->set('owner', $qb->createNamedParameter($share->getShareOwner())) + $qb->update("share_external") + ->where($qb->expr()->eq("id", $qb->createNamedParameter($share->getId()))) + ->set("owner", $qb->createNamedParameter($share->getShareOwner())) ->execute(); return $share; } @@ -333,14 +301,16 @@ public function updateReceivedShare(IShare $share): IShare public function getReceivedShareByToken(string $token) { $qb = $this->dbConnection->getQueryBuilder(); - $cursor = $qb->select('*') - ->from('share_external') - ->where($qb->expr()->eq('share_type', $qb->createNamedParameter(14))) - ->andWhere($qb->expr()->eq('share_token', $qb->createNamedParameter($token))) + $cursor = $qb->select("*") + ->from("share_external") + ->where($qb->expr()->eq("share_type", $qb->createNamedParameter(14))) + ->andWhere($qb->expr()->eq("share_token", $qb->createNamedParameter($token))) ->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if ($data === false) { - throw new ShareNotFound('Share not found', $this->l->t('Could not find share')); + throw new ShareNotFound("Share not found", $this->l->t("Could not find share")); } return $this->createExternalShareObject($data); } @@ -355,12 +325,12 @@ public function getReceivedShareByToken(string $token) protected function createExternalShareObject(array $data) { $share = new Share($this->rootFolder, $this->userManager); - $share->setId((int)$data['id']) - ->setShareType((int)$data['share_type']) - ->setShareOwner($data['owner']) - ->setSharedBy($data['owner']) - ->setToken($data['share_token']) - ->setSharedWith($data['user']); + $share->setId((int)$data["id"]) + ->setShareType((int)$data["share_type"]) + ->setShareOwner($data["owner"]) + ->setSharedBy($data["owner"]) + ->setToken($data["share_token"]) + ->setSharedWith($data["user"]); $share->setProviderId($this->identifier()); return $share; @@ -373,7 +343,7 @@ protected function createExternalShareObject(array $data) */ public function identifier(): string { - return 'sciencemesh'; + return "sciencemesh"; } /** @@ -386,22 +356,27 @@ public function identifier(): string public function getSentShareByToken(string $token): IShare { error_log("share provider getSentShareByToken '$token'"); + $qb = $this->dbConnection->getQueryBuilder(); - $cursor = $qb->select('*') - ->from('share') - ->where($qb->expr()->eq('token', $qb->createNamedParameter($token))) + $cursor = $qb->select("*") + ->from("share") + ->where($qb->expr()->eq("token", $qb->createNamedParameter($token))) ->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if ($data === false) { error_log("sent share not found by token '$token'"); - throw new ShareNotFound('Share not found', $this->l->t('Could not find share')); + throw new ShareNotFound("Share not found", $this->l->t("Could not find share")); } + try { $share = $this->createShareObject($data); } catch (InvalidShare $e) { error_log("sent share found invalid by token '$token'"); - throw new ShareNotFound('Share not found', $this->l->t('Could not find share')); + throw new ShareNotFound("Share not found", $this->l->t("Could not find share")); } + error_log("found sent share " . $data["id"] . " by token '$token'"); return $share; } @@ -410,15 +385,15 @@ public function getSentShares(int $userId): iterable { $qb = $this->dbConnection->getQueryBuilder(); - $qb->select('*') - ->from('share') + $qb->select("*") + ->from("share") ->where( - $qb->expr()->eq('share_type', $qb->createNamedParameter(ScienceMeshApp::SHARE_TYPE_SCIENCEMESH)) + $qb->expr()->eq("share_type", $qb->createNamedParameter(ScienceMeshApp::SHARE_TYPE_SCIENCEMESH)) ) ->andWhere( $qb->expr()->orX( - $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)), - $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)) + $qb->expr()->eq("uid_initiator", $qb->createNamedParameter($userId)), + $qb->expr()->eq("uid_owner", $qb->createNamedParameter($userId)) ) ); @@ -438,10 +413,10 @@ public function getSentShares(int $userId): iterable public function getReceivedShares($userId): iterable { $qb = $this->dbConnection->getQueryBuilder(); - $qb->select('*') - ->from('share_external') + $qb->select("*") + ->from("share_external") ->where( - $qb->expr()->eq('user', $qb->createNamedParameter($userId)) + $qb->expr()->eq("user", $qb->createNamedParameter($userId)) ); $cursor = $qb->execute(); while ($data = $cursor->fetch()) { @@ -459,34 +434,38 @@ public function getReceivedShares($userId): iterable public function deleteSentShareByName($userId, $name): bool { $qb = $this->dbConnection->getQueryBuilder(); - $qb->select('fileid') - ->from('filecache') + $qb->select("fileid") + ->from("filecache") ->where( - $qb->expr()->eq('name', $qb->createNamedParameter($name)) + $qb->expr()->eq("name", $qb->createNamedParameter($name)) ); $cursor = $qb->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } - $id = $data['fileid']; - $isShare = $qb->select('*') - ->from('share') + + + $id = $data["fileid"]; + $isShare = $qb->select("*") + ->from("share") ->where( - $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)) + $qb->expr()->eq("uid_owner", $qb->createNamedParameter($userId)) ) ->andWhere( - $qb->expr()->eq('item_source', $qb->createNamedParameter($id)) + $qb->expr()->eq("item_source", $qb->createNamedParameter($id)) ) ->execute() ->fetch(); if ($isShare) { - $qb->delete('share') + $qb->delete("share") ->where( - $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)) + $qb->expr()->eq("uid_owner", $qb->createNamedParameter($userId)) ) ->andWhere( - $qb->expr()->eq('item_source', $qb->createNamedParameter($id)) + $qb->expr()->eq("item_source", $qb->createNamedParameter($id)) ); $qb->execute(); return true; @@ -509,25 +488,27 @@ public function delete(IShare $share) public function deleteReceivedShareByOpaqueId($userId, $opaqueId): bool { $qb = $this->dbConnection->getQueryBuilder(); - $qb->select('*') - ->from('share_external') + $qb->select("*") + ->from("share_external") ->where( - $qb->expr()->eq('user', $qb->createNamedParameter($userId)) + $qb->expr()->eq("user", $qb->createNamedParameter($userId)) ) ->andWhere( - $qb->expr()->eq('share_token', $qb->createNamedParameter($opaqueId)) + $qb->expr()->eq("share_token", $qb->createNamedParameter($opaqueId)) ); $cursor = $qb->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } else { - $qb->delete('share_external') + $qb->delete("share_external") ->where( - $qb->expr()->eq('user', $qb->createNamedParameter($userId)) + $qb->expr()->eq("user", $qb->createNamedParameter($userId)) ) ->andWhere( - $qb->expr()->eq('share_token', $qb->createNamedParameter($opaqueId)) + $qb->expr()->eq("share_token", $qb->createNamedParameter($opaqueId)) ); $qb->execute(); return true; @@ -542,36 +523,43 @@ public function getSentShareByPath($userId, $path) { $qb = $this->dbConnection->getQueryBuilder(); - $qb->select('fileid') - ->from('filecache') + $qb->select("fileid") + ->from("filecache") ->where( - $qb->expr()->eq('path', $qb->createNamedParameter($path)) + $qb->expr()->eq("path", $qb->createNamedParameter($path)) ); + $cursor = $qb->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } - $id = $data['fileid']; - $qb->select('*') - ->from('share') + $id = $data["fileid"]; + $qb->select("*") + ->from("share") ->where( - $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)) + $qb->expr()->eq("uid_owner", $qb->createNamedParameter($userId)) ) ->andWhere( - $qb->expr()->eq('item_source', $qb->createNamedParameter($id)) + $qb->expr()->eq("item_source", $qb->createNamedParameter($id)) ); + $cursor = $qb->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } + try { $share = $this->createShareObject($data); } catch (InvalidShare $e) { throw new ShareNotFound(); } - $cursor->closeCursor(); + return $share; } @@ -581,30 +569,35 @@ public function getSentShareByPath($userId, $path) public function getShareByOpaqueId($opaqueId) { $qb = $this->dbConnection->getQueryBuilder(); - $c = $qb->select('is_external') - ->from('sciencemesh_shares') + $cursor = $qb->select("is_external") + ->from("sciencemesh_shares") ->where( - $qb->expr()->eq('opaque_id', $qb->createNamedParameter($opaqueId)) + $qb->expr()->eq("opaque_id", $qb->createNamedParameter($opaqueId)) ) ->execute(); - $data = $c->fetch(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } - $external = $data['is_external']; - $c = $qb->select('*') - ->from('sciencemesh_shares', 'sms') - ->innerJoin('sms', $external ? 'share_external' : 'share', 's', $qb->expr()->eq('sms.foreignId', 's.id')) + + $external = $data["is_external"]; + $cursor = $qb->select("*") + ->from("sciencemesh_shares", "sms") + ->innerJoin("sms", $external ? "share_external" : "share", "s", $qb->expr()->eq("sms.foreignId", "s.id")) ->where( - $qb->expr()->eq('sms.opaque_id', $qb->createNamedParameter($opaqueId)) + $qb->expr()->eq("sms.opaque_id", $qb->createNamedParameter($opaqueId)) ) ->execute(); - $data = $c->fetch(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { return false; } - return $external ? $this->createScienceMeshExternalShare($data) : $this->createScienceMeshShare($data); + return $external ? $this->createScienceMeshExternalShare($data) : $this->addSentOcmShareToEfssTable($data); } public function addScienceMeshUser($user) @@ -613,25 +606,27 @@ public function addScienceMeshUser($user) $opaqueId = $user->getOpaqueId(); $type = $user->getType(); $qb = $this->dbConnection->getQueryBuilder(); - $cursor = $qb->select('*') - ->from('sciencemesh_users') + $cursor = $qb->select("*") + ->from("sciencemesh_users") ->where( - $qb->expr()->eq('idp', $qb->createNamedParameter($idp)) + $qb->expr()->eq("idp", $qb->createNamedParameter($idp)) ) ->andWhere( - $qb->expr()->eq('opaque_id', $qb->createNamedParameter($opaqueId)) + $qb->expr()->eq("opaque_id", $qb->createNamedParameter($opaqueId)) ) ->execute(); $data = $cursor->fetch(); + $cursor->closeCursor(); + if (!$data) { - $qb->insert('sciencemesh_users') - ->setValue('idp', $qb->createNamedParameter($idp)) - ->setValue('opaque_id', $qb->createNamedParameter($opaqueId)) - ->setValue('type', $qb->createNamedParameter($type)) + $qb->insert("sciencemesh_users") + ->setValue("idp", $qb->createNamedParameter($idp)) + ->setValue("opaque_id", $qb->createNamedParameter($opaqueId)) + ->setValue("type", $qb->createNamedParameter($type)) ->execute(); return $qb->getLastInsertId(); } else { - return $data['id']; + return $data["id"]; } } @@ -640,55 +635,384 @@ public function addScienceMeshUser($user) */ public function addScienceMeshShare($scienceMeshData, $shareData): int { - if ($scienceMeshData['is_external']) { - return $this->addReceivedShareToDB($shareData); + if ($scienceMeshData["is_external"]) { + return $this->addReceivedOcmShareToEfssTable($shareData); } else { - return $this->createScienceMeshShare($shareData); + return $this->addSentOcmShareToEfssTable($shareData); + } + } + + /** + * add sent ScienceMesh share to the native efss table and return the ID. + * + * @param IShare $share + * @return int + * @throws NotFoundException + */ + protected function addSentOcmShareToEfssTable(IShare $share): int + { + $shareType = $share->getShareType(); + $itemType = $share->getNodeType(); + $itemSource = $share->getNodeId(); + $shareWith = $share->getSharedWith(); + $owner = $share->getShareOwner(); + $sharedBy = $share->getSharedBy(); + $permissions = $share->getPermissions(); + $token = $share->getToken(); + $shareTime = $share->getShareTime()->getTimestamp(); + + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("share") + ->setValue("share_type", $qb->createNamedParameter($shareType)) + ->setValue("item_type", $qb->createNamedParameter($itemType)) + ->setValue("item_source", $qb->createNamedParameter($itemSource)) + ->setValue("file_source", $qb->createNamedParameter($itemSource)) + ->setValue("share_with", $qb->createNamedParameter($shareWith)) + ->setValue("uid_owner", $qb->createNamedParameter($owner)) + ->setValue("uid_initiator", $qb->createNamedParameter($sharedBy)) + ->setValue("permissions", $qb->createNamedParameter($permissions)) + ->setValue("token", $qb->createNamedParameter($token)) + ->setValue("stime", $qb->createNamedParameter($shareTime)); + + /* + * Added to fix https://github.com/owncloud/core/issues/22215 + * Can be removed once we get rid of ajax/share.php + */ + $qb->setValue("file_target", $qb->createNamedParameter("")); + + $qb->execute(); + return $qb->getLastInsertId(); + } + + + /** + * add sent ScienceMesh share to the ScienceMesh table and return the ID + * + * @param $shareData + * @return int + */ + public function addSentOcmShareToSciencemeshTable($shareData): int + { + // check if the share already exists in the database. + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_sent_shares") + ->where($qbt->expr()->eq("share_internal_id", $qbt->createNamedParameter($shareData["share_internal_id"]))); + $cursor = $qbt->execute(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + + // return id if share already exists. + if ($data) { + return $data["id"]; + } + + // add ocm share to sciencemesh_ocm_sent_shares table. + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_sent_shares") + ->setValue("share_internal_id", $qb->createNamedParameter($shareData["share_internal_id"])) + ->setValue("name", $qb->createNamedParameter($shareData["name"])) + ->setValue("share_with", $qb->createNamedParameter($shareData["share_with"])) + ->setValue("owner", $qb->createNamedParameter($shareData["owner"])) + ->setValue("initiator", $qb->createNamedParameter($shareData["initiator"])) + ->setValue("ctime", $qb->createNamedParameter($shareData["ctime"])) + ->setValue("ctime", $qb->createNamedParameter($shareData["ctime"])) + ->setValue("mtime", $qb->createNamedParameter($shareData["mtime"])) + ->setValue("expiration", $qb->createNamedParameter($shareData["expiration"])); + $qb->execute(); + + $id = $qb->getLastInsertId(); + + // add protocols to their tables. + $transfer = $shareData["transfer"] ?? null; + + if (isset($transfer["sourceUri"]) && $transfer["sharedSecret"] && $transfer["size"]) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_sent_share_protocol_transfer") + ->setValue("ocm_sent_share_id", $qb->createNamedParameter($id)) + ->setValue("source_uri", $qb->createNamedParameter($transfer["sourceUri"])) + ->setValue("shared_secret", $qb->createNamedParameter($transfer["sharedSecret"])) + ->setValue("size", $qb->createNamedParameter($transfer["size"])); + $qb->execute(); + } + + $webapp = $shareData["webapp"] ?? null; + + if (isset($webapp["uriTemplate"]) && $webapp["viewMode"]) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_sent_share_protocol_webapp") + ->setValue("ocm_sent_share_id", $qb->createNamedParameter($id)) + ->setValue("uri_template", $qb->createNamedParameter($webapp["uriTemplate"])) + ->setValue("view_mode", $qb->createNamedParameter($webapp["viewMode"])); + $qb->execute(); + } + + $webdav = $shareData["webdav"] ?? null; + + if (isset($webdav["uri"]) && $webdav["sharedSecret"] && $webdav["permissions"]) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_sent_share_protocol_webdav") + ->setValue("ocm_sent_share_id", $qb->createNamedParameter($id)) + ->setValue("uri", $qb->createNamedParameter($webdav["uri"])) + ->setValue("shared_secret", $qb->createNamedParameter($webdav["sharedSecret"])) + ->setValue("permissions", $qb->createNamedParameter($webdav["permissions"])); + $qb->execute(); } + + return $id; } /** - * add share to the database and return the ID + * add received ScienceMesh share to the native efss table and return the ID. * * @param $shareData * @return int */ - public function addReceivedShareToDB($shareData): int + public function addReceivedOcmShareToEfssTable($shareData): int { - $mountpoint = "{{TemporaryMountPointName#" . $shareData["name"] . "}}"; - $mountpoint_hash = md5($mountpoint); + // calculate the mount point has of the share. + $mountPoint = "{{TemporaryMountPointName#" . $shareData["name"] . "}}"; + $mountPointHash = md5($mountPoint); + + // check if the share already exists in the database. $qbt = $this->dbConnection->getQueryBuilder(); - $qbt->select('*') - ->from('share_external') - ->where($qbt->expr()->eq('user', $qbt->createNamedParameter($shareData["user"]))) - ->andWhere($qbt->expr()->eq('mountpoint_hash', $qbt->createNamedParameter($mountpoint_hash))); + $qbt->select("*") + ->from("share_external") + ->where($qbt->expr()->eq("user", $qbt->createNamedParameter($shareData["user"]))) + ->andWhere($qbt->expr()->eq("mountpoint_hash", $qbt->createNamedParameter($mountPointHash))); $cursor = $qbt->execute(); - if ($data = $cursor->fetch()) { - return $data['id']; + $data = $cursor->fetch(); + $cursor->closeCursor(); + + // return id if share already exists. + if ($data) { + return $data["id"]; } - if (!str_starts_with(strtolower($shareData["remote"]), 'http://') && !str_starts_with(strtolower($shareData["remote"]), 'https://')) { + // NOTE: @Mahdi I don't like this approach. + // prefix remote with https if it doesn't start with http or https. + if (!str_starts_with(strtolower($shareData["remote"]), "http://") && !str_starts_with(strtolower($shareData["remote"]), "https://")) { $shareData["remote"] = "https://" . $shareData["remote"]; } + // TODO: @Mahdi maybe use enums? for better readability. // 0 => pending, 1 => accepted, 2 => rejected - $accepted = 0; //pending + $accepted = 0; $qb = $this->dbConnection->getQueryBuilder(); - $qb->insert('share_external') - ->setValue('remote', $qb->createNamedParameter($shareData["remote"])) - ->setValue('remote_id', $qb->createNamedParameter(trim($shareData["remote_id"], '"'))) - ->setValue('share_token', $qb->createNamedParameter($shareData["share_token"])) - ->setValue('password', $qb->createNamedParameter($shareData["password"])) - ->setValue('name', $qb->createNamedParameter($shareData["name"])) - ->setValue('owner', $qb->createNamedParameter($shareData["owner"])) - ->setValue('user', $qb->createNamedParameter($shareData["user"])) - ->setValue('mountpoint', $qb->createNamedParameter($mountpoint)) - ->setValue('mountpoint_hash', $qb->createNamedParameter($mountpoint_hash)) - ->setValue('accepted', $qb->createNamedParameter($accepted)); + $qb->insert("share_external") + ->setValue("remote", $qb->createNamedParameter($shareData["remote"])) + ->setValue("remote_id", $qb->createNamedParameter(trim($shareData["remote_id"], '"'))) + ->setValue("share_token", $qb->createNamedParameter($shareData["share_token"])) + ->setValue("password", $qb->createNamedParameter($shareData["password"])) + ->setValue("name", $qb->createNamedParameter($shareData["name"])) + ->setValue("owner", $qb->createNamedParameter($shareData["owner"])) + ->setValue("user", $qb->createNamedParameter($shareData["user"])) + ->setValue("mountpoint", $qb->createNamedParameter($mountPoint)) + ->setValue("mountpoint_hash", $qb->createNamedParameter($mountPointHash)) + ->setValue("accepted", $qb->createNamedParameter($accepted)); $qb->execute(); return $qb->getLastInsertId(); } + /** + * add received ScienceMesh share to the ScienceMesh table and return the ID + * + * @param $shareData + * @return int + */ + public function addReceivedOcmShareToSciencemeshTable($shareData): int + { + // check if the share already exists in the database. + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_received_shares") + ->where($qbt->expr()->eq("share_external_id", $qbt->createNamedParameter($shareData["share_external_id"]))); + $cursor = $qbt->execute(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + + // return id if share already exists. + if ($data) { + return $data["id"]; + } + + // add ocm share to sciencemesh_ocm_received_shares table. + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_received_shares") + ->setValue("share_external_id", $qb->createNamedParameter($shareData["share_external_id"])) + ->setValue("name", $qb->createNamedParameter($shareData["name"])) + ->setValue("share_with", $qb->createNamedParameter($shareData["share_with"])) + ->setValue("owner", $qb->createNamedParameter($shareData["owner"])) + ->setValue("initiator", $qb->createNamedParameter($shareData["initiator"])) + ->setValue("ctime", $qb->createNamedParameter($shareData["ctime"])) + ->setValue("ctime", $qb->createNamedParameter($shareData["ctime"])) + ->setValue("mtime", $qb->createNamedParameter($shareData["mtime"])) + ->setValue("expiration", $qb->createNamedParameter($shareData["expiration"])) + ->setValue("remote_share_id", $qb->createNamedParameter($shareData["remote_share_id"])); + $qb->execute(); + + $id = $qb->getLastInsertId(); + + // add protocols to their tables. + $transfer = $shareData["transfer"] ?? null; + + if (isset($transfer["sourceUri"]) && $transfer["sharedSecret"] && $transfer["size"]) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_received_share_protocol_transfer") + ->setValue("ocm_received_share_id", $qb->createNamedParameter($id)) + ->setValue("source_uri", $qb->createNamedParameter($transfer["sourceUri"])) + ->setValue("shared_secret", $qb->createNamedParameter($transfer["sharedSecret"])) + ->setValue("size", $qb->createNamedParameter($transfer["size"])); + $qb->execute(); + } + + $webapp = $shareData["webapp"] ?? null; + + if (isset($webapp["uriTemplate"]) && isset($webapp["viewMode"])) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_received_share_protocol_webapp") + ->setValue("ocm_received_share_id", $qb->createNamedParameter($id)) + ->setValue("uri_template", $qb->createNamedParameter($webapp["uriTemplate"])) + ->setValue("view_mode", $qb->createNamedParameter($webapp["viewMode"])); + $qb->execute(); + } + + $webdav = $shareData["webdav"] ?? null; + + if (isset($webdav["uri"]) && $webdav["sharedSecret"] && $webdav["permissions"]) { + $qb = $this->dbConnection->getQueryBuilder(); + $qb->insert("sciencemesh_ocm_received_share_protocol_webdav") + ->setValue("ocm_received_share_id", $qb->createNamedParameter($id)) + ->setValue("uri", $qb->createNamedParameter($webdav["uri"])) + ->setValue("shared_secret", $qb->createNamedParameter($webdav["sharedSecret"])) + ->setValue("permissions", $qb->createNamedParameter($webdav["permissions"])); + $qb->execute(); + } + + return $id; + } + + /** + * get all the data about the sent OCM share from ScienceMesh table. + * + * @param $shareId + * @return array|null + */ + public function getSentOcmShareFromSciencemeshTable($shareId): ?array + { + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_sent_shares") + ->where($qbt->expr()->eq("share_internal_id", $qbt->createNamedParameter($shareId))); + $cursor = $qbt->execute(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + + return $data; + } + + /** + * get all the protocols of the sent OCM share from ScienceMesh table. + * + * @param $ocmShareId + * @return array|null + */ + public function getSentOcmShareProtocolsFromSciencemeshTable($ocmShareId): ?array + { + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_sent_share_protocol_transfer") + ->where($qbt->expr()->eq("ocm_sent_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolTransfer = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_sent_share_protocol_webapp") + ->where($qbt->expr()->eq("ocm_sent_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolWebApp = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_sent_share_protocol_webdav") + ->where($qbt->expr()->eq("ocm_sent_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolWebDav = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + return [ + "transfer" => $protocolTransfer, + "webapp" => $protocolWebApp, + "webdav" => $protocolWebDav, + ]; + } + + /** + * get all the data about the received OCM share from ScienceMesh table. + * + * @param $shareId + * @return array|null + */ + public function getReceivedOcmShareFromSciencemeshTable($shareId): ?array + { + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_received_shares") + ->where($qbt->expr()->eq("share_external_id", $qbt->createNamedParameter($shareId))); + $cursor = $qbt->execute(); + $data = $cursor->fetch(); + $cursor->closeCursor(); + + return $data; + } + + /** + * get all the protocols of the received OCM share from ScienceMesh table. + * + * @param $ocmShareId + * @return array|null + */ + public function getReceivedOcmShareProtocolsFromSciencemeshTable($ocmShareId): ?array + { + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_received_share_protocol_transfer") + ->where($qbt->expr()->eq("ocm_received_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolTransfer = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_received_share_protocol_webapp") + ->where($qbt->expr()->eq("ocm_received_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolWebApp = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + $qbt = $this->dbConnection->getQueryBuilder(); + $qbt->select("*") + ->from("sciencemesh_ocm_received_share_protocol_webdav") + ->where($qbt->expr()->eq("ocm_received_share_id", $qbt->createNamedParameter($ocmShareId))); + $cursor = $qbt->execute(); + + $protocolWebDav = $cursor->fetch() ?? null; + $cursor->closeCursor(); + + return [ + "transfer" => $protocolTransfer, + "webapp" => $protocolWebApp, + "webdav" => $protocolWebDav, + ]; + } protected function revokeShare(IShare $share, bool $isOwner) { diff --git a/lib/SmFgOcmShareProviderFactory.php b/lib/SmFgOcmShareProviderFactory.php new file mode 100644 index 00000000..bc826e47 --- /dev/null +++ b/lib/SmFgOcmShareProviderFactory.php @@ -0,0 +1,191 @@ + + */ + +namespace OCA\ScienceMesh; + +use Exception; +use OC\Share\Constants; +use OC\Share20\DefaultShareProvider; +use OC\Share20\Exception\ProviderException; +use OCA\FederatedGroups\AppInfo\Application; +use OCA\FederatedGroups\MixedGroupShareProvider; +use OCA\FederatedGroups\SRAMFederatedGroupShareProvider; +use OCA\ScienceMesh\AppInfo\ScienceMeshApp; +use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; +use OCP\AppFramework\QueryException; +use OCP\IServerContainer; +use OCP\Share\IProviderFactory; + +/** + * Class SmFgOcmShareProviderFactory + * + */ +class SmFgOcmShareProviderFactory implements IProviderFactory +{ + /** @var IServerContainer */ + private IServerContainer $serverContainer; + + /** @var ?DefaultShareProvider */ + private ?DefaultShareProvider $defaultShareProvider = null; + + /** @var ?SRAMFederatedGroupShareProvider */ + private ?SRAMFederatedGroupShareProvider $federatedGroupShareProvider = null; + + /** @var ?MixedGroupShareProvider */ + private ?MixedGroupShareProvider $mixedGroupShareProvider = null; + + /** @var ?ScienceMeshShareProvider */ + private ?ScienceMeshShareProvider $scienceMeshShareProvider = null; + + /** + * IProviderFactory constructor. + * @param IServerContainer $serverContainer + */ + public function __construct(IServerContainer $serverContainer) + { + $this->serverContainer = $serverContainer; + } + + /** + * @throws QueryException + */ + public function getProviders(): array + { + return [ + $this->defaultShareProvider(), + $this->mixedGroupShareProvider(), + $this->scienceMeshShareProvider(), + $this->federatedGroupShareProvider() + ]; + } + + /** + * Create the default share provider. + * + * @return DefaultShareProvider + */ + protected function defaultShareProvider(): DefaultShareProvider + { + if ($this->defaultShareProvider === null) { + $this->defaultShareProvider = new DefaultShareProvider( + $this->serverContainer->getDatabaseConnection(), + $this->serverContainer->getUserManager(), + $this->serverContainer->getGroupManager(), + $this->serverContainer->getLazyRootFolder() + ); + } + return $this->defaultShareProvider; + } + + /** + * Create the sciencemesh share provider + * + * @return ScienceMeshShareProvider + * @throws QueryException|Exception + */ + protected function scienceMeshShareProvider(): ?ScienceMeshShareProvider + { + if ($this->scienceMeshShareProvider === null) { + /* + * Check if the app is enabled + */ + $appManager = $this->serverContainer->getAppManager(); + if (!$appManager->isEnabledForUser("sciencemesh")) { + // TODO: @Mahdi what if sciencemesh is disabled and federatedfilesharing is enabled? + // we are overriding the base share provider, so if sciencemesh is disabled all + // federated share capability will be disabled. + return null; + } + + $scienceMeshApplication = new ScienceMeshApp(); + $this->scienceMeshShareProvider = $scienceMeshApplication->getScienceMeshShareProvider(); + } + return $this->scienceMeshShareProvider; + } + + /** + * Create the federated share provider for OCM to groups + * + * @return SRAMFederatedGroupShareProvider + */ + protected function federatedGroupShareProvider(): SRAMFederatedGroupShareProvider + { + if ($this->federatedGroupShareProvider === null) { + $app = new Application(); + $this->federatedGroupShareProvider = $app->getSRAMFederatedGroupShareProvider(); + } + return $this->federatedGroupShareProvider; + } + + /** + * Create the mixed group share provider for OCM to groups + * + * @return MixedGroupShareProvider + */ + protected function mixedGroupShareProvider(): MixedGroupShareProvider + { + if ($this->mixedGroupShareProvider === null) { + $this->mixedGroupShareProvider = Application::getMixedGroupShareProvider(); + } + return $this->mixedGroupShareProvider; + } + + /** + * @inheritdoc + * @throws QueryException + */ + public function getProvider($id) + { + $provider = null; + + if ($id === "ocinternal" || $id === "ocMixFederatedSharing") { + $provider = $this->mixedGroupShareProvider(); + } elseif ($id === "ocFederatedSharing" || $id === "sciencemesh") { + $provider = $this->scienceMeshShareProvider(); + } elseif ($id === "ocGroupFederatedSharing") { + $provider = $this->federatedGroupShareProvider(); + } + + + if ($provider === null) { + throw new ProviderException("No provider with id " . $id . " found."); + } + + return $provider; + } + + /** + * @inheritdoc + * @throws QueryException + */ + public function getProviderForType($shareType) + { + $provider = null; + + if ($shareType === Constants::SHARE_TYPE_USER || + $shareType === Constants::SHARE_TYPE_LINK || + $shareType === Constants::SHARE_TYPE_GUEST || + $shareType === Constants::SHARE_TYPE_CONTACT || + $shareType === Constants::SHARE_TYPE_GROUP) { + $provider = $this->mixedGroupShareProvider(); + } elseif ($shareType === Constants::SHARE_TYPE_REMOTE) { + $provider = $this->scienceMeshShareProvider(); + } elseif ($shareType === Constants::SHARE_TYPE_REMOTE_GROUP) { + $provider = $this->federatedGroupShareProvider(); + } + + if ($provider === null) { + throw new ProviderException("No share provider for share type " . $shareType); + } + + return $provider; + } +} diff --git a/lib/SmOcmShareProviderFactory.php b/lib/SmOcmShareProviderFactory.php new file mode 100644 index 00000000..96b0781b --- /dev/null +++ b/lib/SmOcmShareProviderFactory.php @@ -0,0 +1,172 @@ + + */ + +namespace OCA\ScienceMesh; + +use Exception; +use OC\Share\Constants; +use OC\Share20\DefaultShareProvider; +use OC\Share20\Exception\ProviderException; +use OCA\OpenCloudMesh\AppInfo\Application; +use OCA\OpenCloudMesh\FederatedGroupShareProvider; +use OCA\ScienceMesh\AppInfo\ScienceMeshApp; +use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; +use OCP\AppFramework\QueryException; +use OCP\IServerContainer; +use OCP\Share\IProviderFactory; + +/** + * Class SmOcmShareProviderFactory + * + * @package OCA\ScienceMesh + */ +class SmOcmShareProviderFactory implements IProviderFactory +{ + /** @var IServerContainer */ + private IServerContainer $serverContainer; + + /** @var ?DefaultShareProvider */ + private ?DefaultShareProvider $defaultShareProvider = null; + + /** @var ?FederatedGroupShareProvider */ + private ?FederatedGroupShareProvider $federatedGroupShareProvider = null; + + /** @var ?ScienceMeshShareProvider */ + private ?ScienceMeshShareProvider $scienceMeshShareProvider = null; + + /** + * IProviderFactory constructor. + * @param IServerContainer $serverContainer + */ + public function __construct(IServerContainer $serverContainer) + { + $this->serverContainer = $serverContainer; + } + + /** + * @throws QueryException + */ + public function getProviders(): array + { + return [ + $this->defaultShareProvider(), + $this->scienceMeshShareProvider(), + $this->federatedGroupShareProvider() + ]; + } + + /** + * Create the default share provider. + * + * @return DefaultShareProvider + */ + protected function defaultShareProvider(): DefaultShareProvider + { + if ($this->defaultShareProvider === null) { + $this->defaultShareProvider = new DefaultShareProvider( + $this->serverContainer->getDatabaseConnection(), + $this->serverContainer->getUserManager(), + $this->serverContainer->getGroupManager(), + $this->serverContainer->getLazyRootFolder() + ); + } + return $this->defaultShareProvider; + } + + /** + * Create the sciencemesh share provider. + * + * @return ScienceMeshShareProvider + * @throws QueryException|Exception + */ + protected function scienceMeshShareProvider(): ?ScienceMeshShareProvider + { + if ($this->scienceMeshShareProvider === null) { + /* + * Check if the app is enabled. + */ + $appManager = $this->serverContainer->getAppManager(); + if (!$appManager->isEnabledForUser("sciencemesh")) { + // TODO: @Mahdi what if sciencemesh is disabled and federatedfilesharing is enabled? + // we are overriding the base share provider, so if sciencemesh is disabled all + // federated share capability will be disabled. + return null; + } + + $scienceMeshApplication = new ScienceMeshApp(); + $this->scienceMeshShareProvider = $scienceMeshApplication->getScienceMeshShareProvider(); + } + return $this->scienceMeshShareProvider; + } + + /** + * Create the federated share provider for OCM to groups. + * + * @return FederatedGroupShareProvider + */ + protected function federatedGroupShareProvider(): FederatedGroupShareProvider + { + if ($this->federatedGroupShareProvider === null) { + $app = new Application(); + $this->federatedGroupShareProvider = $app->getFederatedGroupShareProvider(); + } + return $this->federatedGroupShareProvider; + } + + /** + * @inheritdoc + * @throws QueryException + */ + public function getProvider($id) + { + $provider = null; + + if ($id === "ocinternal") { + $provider = $this->defaultShareProvider(); + } elseif ($id === "ocFederatedSharing" || $id === "sciencemesh") { + $provider = $this->scienceMeshShareProvider(); + } elseif ($id === "ocGroupFederatedSharing") { + $provider = $this->federatedGroupShareProvider(); + } + + + if ($provider === null) { + throw new ProviderException("No provider with id " . $id . " found."); + } + + return $provider; + } + + /** + * @inheritdoc + * @throws QueryException + */ + public function getProviderForType($shareType) + { + $provider = null; + + if ($shareType === Constants::SHARE_TYPE_USER || + $shareType === Constants::SHARE_TYPE_LINK || + $shareType === Constants::SHARE_TYPE_GROUP) { + $provider = $this->defaultShareProvider(); + } elseif ($shareType === Constants::SHARE_TYPE_REMOTE) { + $provider = $this->scienceMeshShareProvider(); + } elseif ($shareType === Constants::SHARE_TYPE_REMOTE_GROUP) { + $provider = $this->federatedGroupShareProvider(); + } + + if ($provider === null) { + throw new ProviderException("No share provider for share type " . $shareType); + } + + return $provider; + } +} diff --git a/lib/Utils/StaticMethods.php b/lib/Utils/StaticMethods.php new file mode 100644 index 00000000..8c442f8d --- /dev/null +++ b/lib/Utils/StaticMethods.php @@ -0,0 +1,496 @@ + + */ + +namespace OCA\ScienceMesh\Utils; + +use Exception; +use OCA\ScienceMesh\ShareProvider\ScienceMeshShareProvider; +use OCP\Constants; +use OCP\Files\FileInfo; +use OCP\Files\InvalidPathException; +use OCP\Files\Node; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IRequest; +use OCP\IUser; +use OCP\Lock\ILockingProvider; +use OCP\Lock\LockedException; +use OCP\Share\IShare; + +/** + * ownCloud - sciencemesh + * + * This file is licensed under the MIT License. See the LICENCE file. + * @license MIT + * @copyright Sciencemesh 2020 - 2023 + * + * @author Mohammad Mahdi Baghbani Pourvahid + */ + +const RESTRICT_TO_SCIENCEMESH_FOLDER = false; +const EFSS_PREFIX = (RESTRICT_TO_SCIENCEMESH_FOLDER ? "sciencemesh/" : ""); + +// See https://github.com/pondersource/sciencemesh-php/issues/96#issuecomment-1298656896 +const REVA_PREFIX = "/home/"; + + +class StaticMethods +{ + /** @var IL10N */ + private IL10N $l; + + /** @var ILogger */ + private ILogger $logger; + + /** + * StaticMethods class. + * + * @param IL10N $l10n + * @param ILogger $logger + */ + public function __construct( + IL10N $l10n, + ILogger $logger + ) + { + $this->l = $l10n; + $this->logger = $logger; + } + + public function removePrefix($string, $prefix) + { + // first check if string is actually prefixed or not. + $len = strlen($prefix); + if (substr($string, 0, $len) === $prefix) { + $ret = substr($string, $len); + } else { + $ret = $string; + } + + return $ret; + } + + public function revaPathToEfssPath($revaPath): string + { + if ("$revaPath/" == REVA_PREFIX) { + error_log("revaPathToEfssPath: Interpreting special case $revaPath as ''"); + return ""; + } + $ret = EFSS_PREFIX . $this->removePrefix($revaPath, REVA_PREFIX); + error_log("revaPathToEfssPath: Interpreting $revaPath as $ret"); + return $ret; + } + + public function revaPathFromOpaqueId($opaqueId) + { + return $this->removePrefix($opaqueId, "fileid-"); + } + + public function efssPathToRevaPath($efssPath): string + { + $ret = REVA_PREFIX . $this->removePrefix($efssPath, EFSS_PREFIX); + error_log("efssPathToRevaPath: Interpreting $efssPath as $ret"); + return $ret; + } + + public function efssFullPathToRelativePath($efssFullPath, string $userFolderPath) + { + $ret = $this->removePrefix($efssFullPath, $userFolderPath); + error_log("efssFullPathToRelativePath: Interpreting $efssFullPath as $ret"); + return $ret; + } + + public function getChecksum(Node $node, $checksumType = 4): string + { + $checksumTypes = array( + 1 => "UNSET:", + 2 => "ADLER32:", + 3 => "MD5:", + 4 => "SHA1:", + ); + + // checksum is in db table oc_filecache. + // folders do not have checksum + $checksums = explode(" ", $node->getFileInfo()->getChecksum()); + + foreach ($checksums as $checksum) { + + // NOTE: that the use of !== false is deliberate (neither != false nor === true will return the desired result); + // strpos() returns either the offset at which the needle string begins in the haystack string, or the boolean + // false if the needle isn't found. Since 0 is a valid offset and 0 is "false", we can't use simpler constructs + // like !strpos($a, 'are'). + if (strpos($checksum, $checksumTypes[$checksumType]) !== false) { + return substr($checksum, strlen($checksumTypes[$checksumType])); + } + } + + return ""; + } + + /** + * @throws NotPermittedException + */ + public function checkRevadAuth(IRequest $request, string $revaSharedSecret) + { + error_log("checkRevadAuth"); + $authHeader = $request->getHeader("X-Reva-Secret"); + + if ($authHeader != $revaSharedSecret) { + throw new NotPermittedException('Please set an http request header "X-Reva-Secret: "!'); + } + } + + /** + * @param Node $node + * @return void + * + * @throws LockedException + */ + public function lock(Node $node) + { + $node->lock(ILockingProvider::LOCK_SHARED); + } + + public function getPermissionsCode(array $permissions): int + { + $permissionsCode = 0; + if (!empty($permissions["get_path"]) || !empty($permissions["get_quota"]) || !empty($permissions["initiate_file_download"]) || !empty($permissions["initiate_file_upload"]) || !empty($permissions["stat"])) { + $permissionsCode += Constants::PERMISSION_READ; + } + if (!empty($permissions["create_container"]) || !empty($permissions["move"]) || !empty($permissions["add_grant"]) || !empty($permissions["restore_file_version"]) || !empty($permissions["restore_recycle_item"])) { + $permissionsCode += Constants::PERMISSION_CREATE; + } + if (!empty($permissions["move"]) || !empty($permissions["delete"]) || !empty($permissions["remove_grant"])) { + $permissionsCode += Constants::PERMISSION_DELETE; + } + if (!empty($permissions["list_grants"]) || !empty($permissions["list_file_versions"]) || !empty($permissions["list_recycle"])) { + $permissionsCode += Constants::PERMISSION_SHARE; + } + if (!empty($permissions["update_grant"])) { + $permissionsCode += Constants::PERMISSION_UPDATE; + } + return $permissionsCode; + } + + /** + * @throws InvalidPathException + * @throws NotFoundException + */ + public function nodeToCS3ResourceInfo(Node $node, string $userFolderPath, string $userId, string $Idp): array + { + $isDirectory = ($node->getType() === FileInfo::TYPE_FOLDER); + $efssPath = substr($node->getPath(), strlen($userFolderPath) + 1); + $revaPath = $this->efssPathToRevaPath($efssPath); + + $payload = [ + "type" => ($isDirectory ? 2 : 1), + "id" => [ + "opaque_id" => "fileid-" . $revaPath, + ], + "checksum" => [ + // checksum algorithms: + // 1 UNSET + // 2 ADLER32 + // 3 MD5 + // 4 SHA1 + + // NOTE: folders do not have checksum, their type should be unset. + "type" => $isDirectory ? 1 : 4, + "sum" => $this->getChecksum($node, $isDirectory ? 1 : 4), + ], + "etag" => $node->getEtag(), + "mime_type" => ($isDirectory ? "folder" : $node->getMimetype()), + "mtime" => [ + "seconds" => $node->getMTime(), + ], + "path" => $revaPath, + "permissions" => $node->getPermissions(), + "size" => $node->getSize(), + "owner" => [ + "opaque_id" => $userId, + "idp" => $Idp, + ] + ]; + + error_log("nodeToCS3ResourceInfo " . var_export($payload, true)); + + return $payload; + } + + public function formatUser(IUser $user, string $idp): array + { + return [ + "id" => [ + "idp" => $idp, + "opaque_id" => $user->getUID(), + ], + "display_name" => $user->getDisplayName(), + "username" => $user->getUID(), + "email" => $user->getEmailAddress(), + "type" => 1, + ]; + } + + // For ListReceivedShares, GetReceivedShare and UpdateReceivedShare we need to include "state:2" + // see: + // https://github.com/cs3org/cs3apis/blob/cfd1ad29fdf00c79c2a321de7b1a60d0725fe4e8/cs3/sharing/ocm/v1beta1/resources.proto#L160 + /** + * @throws NotFoundException + * @throws InvalidPathException + */ + public function shareInfoToCs3Share( + ScienceMeshShareProvider $shareProvider, + IShare $share, + string $direction, + string $token = "" + ): array + { + $shareId = $share->getId(); + + // TODO @Mahdi use enums! + if ($direction === "sent") { + $ocmShareData = $shareProvider->getSentOcmShareFromSciencemeshTable($shareId); + $ocmShareProtocols = $shareProvider->getSentOcmShareProtocolsFromSciencemeshTable($ocmShareData["id"]); + } elseif ($direction === "received") { + $ocmShareData = $shareProvider->getReceivedOcmShareFromSciencemeshTable($shareId); + $ocmShareProtocols = $shareProvider->getReceivedOcmShareProtocolsFromSciencemeshTable($ocmShareData["id"]); + } + + // use ocm payload stored in sciencemesh table. if it fails, use native efss share data. + // in case of total failure use "unknown". + + // this one is obvious right? + if (isset($ocmShareData["share_with"])) { + $granteeParts = explode("@", $ocmShareData["share_with"]); + } else { + $granteeParts = explode("@", $share->getSharedWith()); + } + + if (count($granteeParts) != 2) { + $granteeParts = ["unknown", "unknown"]; + } + + // the original share owner (who owns the path that is shared) + if (isset($ocmShareData["owner"])) { + $ownerParts = explode("@", $ocmShareData["owner"]); + } else { + $ownerParts = explode("@", $share->getShareOwner()); + } + + if (count($granteeParts) != 2) { + $ownerParts = ["unknown", "unknown"]; + } + + // NOTE: @Mahdi initiator/creator/sharedBy etc., whatever other names it has! means the share sharer! + // you can be owner and sharer, you can be someone who is re-sharing, in this case you are sharer but not owner + if (isset($ocmShareData["initiator"])) { + $creatorParts = explode("@", $ocmShareData["initiator"]); + } else { + $creatorParts = explode("@", $share->getSharedBy()); + } + + if (count($granteeParts) != 2) { + $creatorParts = ["unknown", "unknown"]; + } + + try { + $filePath = $share->getNode()->getPath(); + // @Mahdi why is this hardcoded? + // @Giuseppe this should be something that doesn't change when file is moved! + $opaqueId = "fileid-" . $filePath; + } catch (NotFoundException $e) { + // @Mahdi why not just return status bad request or status not found? + // @Michiel sometimes you want to translate share object even if file doesn't exist. + $opaqueId = "unknown"; + } + + // TODO: @Mahdi update this comment to point at the Reva structure mappings for this json. + // produces JSON that maps to reva + $payload = [ + // use OCM name, if null use efss share native name, if null fall back to "unknown" + "name" => $ocmShareData["name"] ?? ($share->getName() ?? "unknown"), + "token" => $token ?? "unknown", + // TODO: @Mahdi what permissions is the correct one? share permissions has different value than the share->node permissions. + // maybe use the ocmData for this one? needs testing for different scenarios to see which is the best/correct one. + "permissions" => $share->getNode()->getPermissions() ?? 0, + "id" => [ + // https://github.com/cs3org/go-cs3apis/blob/d297419/cs3/sharing/ocm/v1beta1/resources.pb.go#L423 + "opaque_id" => $shareId ?? "unknown", + ], + "resource_id" => [ + "opaque_id" => $opaqueId, + ], + // these three have been already handled and don't need "unknown" default values. + "grantee" => [ + "id" => [ + "opaque_id" => $granteeParts[0], + "idp" => $granteeParts[1], + ], + ], + "owner" => [ + "id" => [ + "opaque_id" => $ownerParts[0], + "idp" => $ownerParts[1], + ], + ], + "creator" => [ + "id" => [ + "opaque_id" => $creatorParts[0], + "idp" => $creatorParts[1], + ], + ], + // NOTE: make sure seconds type is int, otherwise Reva gives: + // error="json: cannot unmarshal string into Go struct field Timestamp.ctime.seconds of type uint64" + "ctime" => [ + "seconds" => isset($ocmShareData["ctime"]) ? (int)$ocmShareData["ctime"] : ($share->getShareTime()->getTimestamp() ?? 0) + ], + "mtime" => [ + "seconds" => isset($ocmShareData["mtime"]) ? (int)$ocmShareData["ctime"] : ($share->getShareTime()->getTimestamp() ?? 0) + ], + "access_methods" => [ + "transfer" => [ + "source_uri" => $ocmShareProtocols["transfer"]["source_uri"] ?? "unknown", + // TODO: @Mahdi this feels redundant, already included in top-level token and webdav shared_secret. + "shared_secret" => $ocmShareProtocols["transfer"]["shared_secret"] ?? "unknown", + // TODO: @Mahdi should the default value be an integer? + "size" => $ocmShareProtocols["transfer"]["size"] ?? "unknown", + ], + "webapp" => [ + "uri_template" => $ocmShareProtocols["webapp"]["uri_template"] ?? "unknown", + "view_mode" => $ocmShareProtocols["webapp"]["view_mode"] ?? "unknown", + ], + "webdav" => [ + // TODO: @Mahdi it is better to have sharedSecret and permissions in this part of code. + "uri" => $ocmShareProtocols["webdav"]["uri"] ?? "unknown", + // TODO: @Mahdi it is interesting this function accepts token as argument! is token different that the share secret? + // why do we have to pass token while the share object already has the information about token? + // $share->getToken(); + "shared_secret" => $ocmShareProtocols["webdav"]["shared_secret"] ?? "unknown", + "permissions" => $ocmShareProtocols["webdav"]["permissions"] ?? "unknown", + ], + ] + ]; + + error_log("shareInfoToCs3Share " . var_export($payload, true)); + + return $payload; + } + + /** + * Checks whether the given target's domain part matches one of the server's + * trusted domain entries + * + * @param string $target target + * @return true if one match was found, false otherwise + */ + public function isInstanceDomain(string $target, IConfig $config): bool + { + if (strpos($target, "/") !== false) { + // not a proper email-like format with domain name + return false; + } + $parts = explode("@", $target); + if (count($parts) === 1) { + // no "@" sign + return false; + } + $domainName = $parts[count($parts) - 1]; + $trustedDomains = $config->getSystemValue("trusted_domains", []); + + return in_array($domainName, $trustedDomains, true); + } + + /** + * split user and remote from federated cloud id + * + * @param string $address federated share address + * @return array [user, remoteURL] + * @throws Exception + */ + public function splitUserRemote(string $address): array + { + if (strpos($address, "@") === false) { + throw new Exception("Invalid Federated Cloud ID"); + } + + // Find the first character that is not allowed in usernames + $id = str_replace("\\", "/", $address); + $posSlash = strpos($id, "/"); + $posColon = strpos($id, ":"); + + if ($posSlash === false && $posColon === false) { + $invalidPos = strlen($id); + } elseif ($posSlash === false) { + $invalidPos = $posColon; + } elseif ($posColon === false) { + $invalidPos = $posSlash; + } else { + $invalidPos = min($posSlash, $posColon); + } + + // Find the last @ before $invalidPos + $pos = $lastAtPos = 0; + while ($lastAtPos !== false && $lastAtPos <= $invalidPos) { + $pos = $lastAtPos; + $lastAtPos = strpos($id, "@", $pos + 1); + } + + if ($pos !== false) { + $user = substr($id, 0, $pos); + $remote = substr($id, $pos + 1); + $remote = $this->fixRemoteURL($remote); + if (!empty($user) && !empty($remote)) { + return [$user, $remote]; + } + } + + throw new Exception("Invalid Federated Cloud ID"); + } + + /** + * Strips away a potential file names and trailing slashes: + * - http://localhost + * - http://localhost/ + * - http://localhost/index.php + * - http://localhost/index.php/s/{shareToken} + * + * all return: http://localhost + * + * @param string $remote + * @return string + */ + protected function fixRemoteURL(string $remote): string + { + $remote = str_replace("\\", "/", $remote); + if ($fileNamePosition = strpos($remote, "/index.php")) { + $remote = substr($remote, 0, $fileNamePosition); + } + return rtrim($remote, "/"); + } + + public function splitUserAndHost(string $username, string $split_char = "@"): array + { + // it should split username@host into an array of 2 element + // representing array[0] = username, array[1] = host + // requirement: + // handle usernames with multiple @ in them. + // example: MahdiBaghbani@pondersource@sciencemesh.org + // username: MahdiBaghbani@pondersource + // host: sciencemesh.org + $parts = explode($split_char, $username); + $last = array_pop($parts); + return array(implode($split_char, $parts), $last); + } +} diff --git a/release/sciencemesh.tar.gz b/release/sciencemesh.tar.gz deleted file mode 100644 index 8344366b..00000000 Binary files a/release/sciencemesh.tar.gz and /dev/null differ diff --git a/templates/accept.php b/templates/accept.php index 245b51c0..5e304f09 100644 --- a/templates/accept.php +++ b/templates/accept.php @@ -24,4 +24,6 @@ - \ No newline at end of file + + + diff --git a/templates/contacts.php b/templates/contacts.php index 8c226775..5e7462ba 100644 --- a/templates/contacts.php +++ b/templates/contacts.php @@ -31,4 +31,4 @@ - \ No newline at end of file + diff --git a/templates/generate.php b/templates/generate.php deleted file mode 100644 index fb6d6da0..00000000 --- a/templates/generate.php +++ /dev/null @@ -1,23 +0,0 @@ - -
-
-
-
-
-
+
-
-
-
Generate a new token
-
Tokens are valid for 24 hours
-
-
- -
-
-
-
-
-
diff --git a/templates/invitations.php b/templates/invitations.php deleted file mode 100644 index 2b876f1e..00000000 --- a/templates/invitations.php +++ /dev/null @@ -1,24 +0,0 @@ - -
-
- inc('navigation/index')); ?> -
-
- -
-
+
-
Generate a new token
-
Tokens are valid for 24 hours
-
-
-
-
-
-
-
-
diff --git a/templates/settings-admin.php b/templates/settings-admin.php deleted file mode 100644 index c58fba5d..00000000 --- a/templates/settings-admin.php +++ /dev/null @@ -1,76 +0,0 @@ - -
-

- t('ScienceMesh Site Settings')); ?> -

-

- -

-

- -

-

- -

-

- -

-

- -

-

- t('ScienceMesh IOP Settings')); ?> -

-

- -

-

- t('ScienceMesh Metrics Settings')); ?> -

-

Note: The following settings need to be provided manually for now, as they are not yet extracted - automatically from Nextcloud. This will change in the future, though.

-

- -

-

- -

-

- -

-
diff --git a/templates/settings.php b/templates/settings.php index c8316a64..af906e75 100644 --- a/templates/settings.php +++ b/templates/settings.php @@ -1,65 +1,34 @@ -
-

- ScienceMesh -

- -

t("Site Settings")) ?>

-
-

t("Site Name")) ?>

-

" placeholder="CERN" type="text">The - name of this site.

- -

t("Site URL")) ?>

-

" placeholder="https://owncloud.example.com" - type="text">The URL at which your site can be reached.

+/** + * controller + * method <> + * loader + * method + * menu item + * routeName + * url + * author + * */ -

t("Country Code")) ?>

-

" placeholder="CH" type="text">The 2- - or 3-digit code of the site's country. A list of all codes can be found here.

-
- -

t("IOP Settings")) ?>

-
-

t("IOP Service Address")) ?>

-

" placeholder="https://owncloud.example.com/iop" - type="text">The main URL of your IOP service. If the IOP is running on the same host as this - ownCloud instance, you can simply use http://localhost:<iop-port> here. -

-
-

t("Metrics")) ?>

-
- Note: The following settings need to be provided manually for now, as they are not yet - extracted automatically from ownCloud. This will change in the future, though. -

t("Number of users")) ?>

-

" placeholder="0" type="number">

-

t("Number of files")) ?>

-

" placeholder="0" type="number">

-

t("Storage volume (in bytes)")) ?>

-

" placeholder="0" type="number">

-
- -

t("API Key")) ?>

-
-

t("API Key")) ?>

-

" placeholder="" type="text">An API key is - needed to register your site with ScienceMesh. If you do not have a key yet, you can register for a free - ScienceMesh account using this link.

-
- -
 
-
-

- - Note: Clicking 'Save' will, if a valid API key has been entered above, register your - site with ScienceMesh (or update your existing entry). -

+script('sciencemesh', 'settings'); +style('sciencemesh', 'style'); +?> +
+
+
+ + + +
+
+ + +
+
+
-
+ diff --git a/templates/settings/admin.php b/templates/settings/admin.php deleted file mode 100644 index 82b3e8b7..00000000 --- a/templates/settings/admin.php +++ /dev/null @@ -1,35 +0,0 @@ - - * method <> - * loader - * method - * menu item - * routeName - * url - * author - * */ - - -script('sciencemesh', 'settings'); -style('sciencemesh', 'style'); -?> -
-
-
- - - -
-
- - -
-
- -
-
-