Commit Graph

397 Commits

Author SHA1 Message Date
lxnay
88c514f51c Entropy/entropyConstants:
- split const_HandleException creating const_kill_threads
Entropy/entropyTools:
- kill_threads uses const_kill_threads
- introduce movefile(), from Portage, that will be used to atomically move files


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@3007 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-02-10 16:15:19 +00:00
lxnay
b9b08b78d4 Entropy/TODO:
- update TODO
Entropy/PackageInterface:
- implement config action, emerge --config hooks now implemented
Entropy/Equo:
- add new command equo config for handling packages needing a pkg_config (emerge --config) callback after install


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@3006 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-02-09 00:03:14 +00:00
lxnay
eeb55fe045 Entropy:
- since it seems to not make sense to have a connection test link to check against on 'equo update', let's remove it and see how users react


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@3001 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-02-08 17:24:38 +00:00
lxnay
6d6500c24e Entropy/Equo/world:
- small fix, when upgrading branch, do not call RepoInterface.sync if an exception occured
Entropy/RepoInterface/EAPI3:
- handle get_eapi3_local_database correctly, can return None
Entropy/entropyConstants:
- new global method const_set_chmod


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2985 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-02-03 12:49:38 +00:00
lxnay
b7009574a5 Entropy/EntropyDatabaseInterface:
- implement packages changelog support and their methods
- remove unused searchPackagesKeyVersion method
- remove checkReadOnly calls from most of the methods
Entropy/EquoInterface:
- implement support for package changelogs
Entropy/PortageInterface:
- implement support for package changelogs


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2956 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-28 14:59:39 +00:00
lxnay
582eab8eae Entropy/TODO:
- update TODO
Entropy/entropyConstants:
- remove conflicting_tagged_packages from etpConst and move to a 'per-repo' config file
Entropy/SystemSettings:
- handle new conflicting tagged packages file per-repo
Entropy/RepoInterface:
- when syncing the repo, download the new conflicting tagged packages file
Entropy/ServerInterface:
- handle the new conflicting tagged packages file (upload/download)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2911 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-16 15:36:54 +00:00
lxnay
2f7c6b8e94 Entropy/TODO:
- update TODO
Entropy/PackageSettings class:
- rename to SystemSettings
- add filesystem directories and its mask parsers
Entropy/*:
- rename PackageSettings to SystemSettings
Entropy/SystemSettings:
- improve parsers code and speed


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2908 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-16 13:40:41 +00:00
lxnay
5fcbef3115 Entropy/EquoInterface:
- generate_dependency_tree: added support for PDEPENDs, which will be sorted correctly now, after the package itself
Entropy/EntropyDatabaseInterface:
- new method retrievePostDependencies, useful to retrieve PDEPENDs


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2904 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-15 17:31:06 +00:00
lxnay
f5fb4a768a Entropy/entropyConstants:
- move cache files extension string to etpConst
- fix the Entropy code accordingly
Entropy/EntropyCacher:
- add sync method to force a cache flush
- implement a thread lock to be thread-safe
Entropy/EquoInterface:
- fix a bug with cache cleaning after masking/unmasking packages
- scan PackageSettings at every instance load to ensure proper settings reads
- get_masked_packages_tree: some speed improvements
- is_match_masked_by_user: new method, makes easy to check if a package has been masked by the user
- is_match_unmasked_by_user: same as above, new method
- mask_match, unmask_match: rewrite the management of package masking and make possible to mask a package from the interface too (only unmask was previously implemented)
- mask_match, unmask_match: make possible to mask/unmask by key + slot coupling (app-foo/foo:2)
Entropy/EntropyDatabaseInterface:
- improve speed of idpackageValidator child methods


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2886 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-11 21:27:32 +00:00
lxnay
30ed52ccc7 Entropy:
- move etpConst['packagemaskingreasons'] to EquoInterface.PackageSettings dict
- add reverse dict in EquoInterface.PackageSettings to standardize the package masking identifiers


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2885 cd1c1023-2f26-0410-ae45-c471fc1f0318
2009-01-11 10:30:56 +00:00
lxnay
93176ad2ca Entropy/entropyTools:
- applicationLockCheck: raise SystemExit exception instead of sys.exit
Entropy/EquoInterface:
- changed dependencies calculation results, always pull in updated dependencies, deep_deps now works with revisions, disabled 'needed' check
Entropy/entropyConstants:
- fix a small bug in const_setupEntropyPid: that caused to report entropy as locked if entropy.pid is found but empty


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2819 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-31 08:33:18 +00:00
lxnay
4bf56a99c3 Entropy/TODO:
- update TODO
Entropy/entropyConstants:
- say goodbye to etpRSSMessages
- other cosmetical fixes
Entropy/EquoInterface:
- close LogFile instance's file on instance delete
- wipe os.system() calls
- rewrite get_meant_packages() to use SOUNDEX features of SQLITE3
- replace old and slow filterSatisfiedDependencies with get_unsatisfied_dependencies, which is faster and more reliable (added NEEDED check by default)
- improve speed of generate_dependency_tree
- improve speed of get_required_packages
- fix get_world_update_cache_hash()
- improve speed of retrieveInstallQueue
- make __unpack_package reporting the right error on uncompressTarBz2 if this crashes
- remove Python 2.4/2.5 workarounds since they are not needed anymore, being entropyTools.uncompressTarBz2 fixed forever (handling UTF-8 filenames correctly)
- adjust __move_image_to_system for the changes above
- __move_image_to_system, if an error is caught on shutil.move, do not crash but report it to user instead
Entropy/TriggerInterface:
- replace os.system() with subprocess.call()
- remove unused nspluginwrapper trigger
Entropy/ErrorReportInterface:
- add locale output
- get the full content of ps auxf, not just the first 80 chars
- update handler accordingly (handlers/)
Entropy/LogFile:
- close log file on object deletion
Entropy:
- import subprocess by default
Entropy/EntropyDatabaseInterface:
- remove etpRSSMessages and use a ServerInterface variable instead
- add new method getVersioningData, useful to speed up other Entropy areas
- improving speed of other functions adding more one-liners conditionals
- add new method retrieveNeededRaw, useful to speed up other Entropy areas
- improve speed of retrieveDependenciesList, everything can be done at SQL level
- new method searchSimilarPackages that uses SOUNDEX to retrieve similar package/atom names
- improve speed of listAllCategories
- shrink databaseStructureUpdates
- remove old and dusted method
- improve speed of doDatabaseImport
- improve speed of database_checksum
- group multiple .cursor.execute using .cursor.executescript
- improve speed of __filterSlotTagUse
Entropy/entropyTools:
- improve speed and reliability of uncompressTarBz2


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2818 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-30 18:43:16 +00:00
lxnay
20632c7e27 Entropy/entropyConstants:
- add dependstable to the SQL db generation string


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2815 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-22 21:23:03 +00:00
lxnay
5337fdec11 Entropy/caches:
- remove cache global variables
- say goodbye to const_resetCache, not needed anymore


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2783 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-14 13:23:52 +00:00
lxnay
e569355022 Entropy/entropyConstants:
- get rid of etpRemoteFailures and maskingReasonsStorage global variables
Entropy/EquoInterface:
- apply entropyConstants changes
- new method get_masked_package_reason
Entropy/EntropyDatabaseInterface:
- hack to control idpackageValidatorCache size


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2782 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-14 12:42:09 +00:00
lxnay
e46fd159e5 Entropy/EquoInterface:
- allow tagging entropy packages by setting ENTROPY_PROJECT_TAG inside the ebuild


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2767 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-11 10:47:39 +00:00
lxnay
f228e68597 Entropy/Equo:
- add support for package sets
Entropy/EquoInterface:
- group initConfig_entropyConstants calls in a stand-alone EquoInterface method
- half-implement in-memory repositories (will be completed upon request)
- atomMatch: support matchRepo for server-repos too
Entropy/TODO:
- update TODO
Entropy/EquoInterface:
- improve packageSetMatch method
- implement packagesExpand and packageSetExpand methods
Entropy/exceptionTools:
- implement new InvalidPackageSet exception


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2738 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-08 12:48:47 +00:00
lxnay
fd85e10164 Entropy/EntropyDatabaseInterface:
- implement table structure for supporting package sets
- add methods to handle them: clearPackageSets(), insertPackageSets(), retrievePackageSets()
Entropy/Socket Server Interface:
- if command is not valid, return a CL answer
Entropy/Socket Server Client Interface:
- handle CL answers on receive()
Entropy/ServerInterface:
- add support for package sets, loading data from sets/ database dir subdirectory
- automatically handle them by updating the db at every change
Entropy/Repository Daemon:
- add EAPI3 support for package sets
Entropy/RepoInterface/EquoInterface:
- add support for package sets on sync
- add package sets match and search functions
more tomorrow


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2735 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-07 22:38:42 +00:00
lxnay
6f7cd190e9 Entropy/entropyTools:
- add extract_packages_from_set_file method, just a helper function
Entropy/Package Masking inteface reworked:
- etpConst['packagemasking'] is gone, the Package masking interface changed name, now it's called PackageSettings and is a standalone class that can work like a simple python dictionary object
- adapt all the code to the new interface, which is close to final and pretty solid if compared to the old one etpConst['packagemasking'] dict and its issues (like being un-initialized)
Entropy/Package sets support:
- implement server-side methods (ServerInterface) to collect repository-defined sets
Entropy/urlFetcher:
- move some init code to stand-alone functions (setup_proxy and setup_resume_support method)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2733 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-07 19:28:05 +00:00
lxnay
48e409da0c Entropy/entropyConstants:
- empty system_packages list, we now have packages.db.system_mask, which is the best place to put system packages
Entropy/PortageInterface:
- add suport to package sets, introducing 3 new methods: get_set_config(), get_sets(), get_sets_expanded()


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2732 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-07 16:22:53 +00:00
lxnay
1a3b088ed1 Entropy/packages.db.mask syntax:
- remove branch parameter from file atoms syntax
- update code accordingly
Entropy/phpBB3AuthInterface:
- _generate_sql(): fix SQL update statement with utf-8 chars


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2730 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-07 13:08:01 +00:00
lxnay
b44bf5350d Entropy/DistributionUGCInterface:
- add caching infrastructure to avoid running long queries multiple times returning the same result
- set cache expiration to 1 day by default


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2724 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-06 15:03:51 +00:00
lxnay
fa969f42ce Entropy:
- remove the use of list.sort() method in favour of sorted(list)
- implement a per-repository system packages mask, to force clients to install specified packages (like one of the slotted sys-libs/db packages for convenience), consider this an extension to system packages


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2721 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-12-05 21:37:18 +00:00
lxnay
6d166039bd Entropy/entropyConstants:
- always enable Gentoo-compat, remove ability to disable it


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2691 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-18 12:49:26 +00:00
lxnay
9d21894af9 Entropy/DistributionUGCInterface:
- add search_iddoc_item method to search available document identifiers
Entropy/RepoInterface:
- implement system make.conf sanity check
- implement automatic /etc/make.profile updates
Entropy/entropyConstants:
- add rootdir prefix to spm configuration files
Entropy/entropy.py:
- general tidy
Entropy/entropyTools:
- add function to determine if a path is sane or not (is_valid_path)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2658 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-09 16:06:20 +00:00
lxnay
efe58d408d Entropy/DistributionUGCInterface:
- _get_ugc_extra_metadata(): if key is already provided, copy to pkgkey dict key
Entropy/SocketHostInterface:
- add command length limit setting, default to 768000 bytes
- fine tune the forked requests timeout, default to 300


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2649 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-05 12:04:58 +00:00
lxnay
6fc7c949ea Entropy/SocketHostInterface:
- reduce the forked requests timeout to 15 (from 300) seconds
- export the setting to etpConst


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2636 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-03 22:48:43 +00:00
lxnay
9c5301a74f Entropy/TriggerInterface:
- write more info about portage exceptions on relevant triggers
Entropy/PortageInterface:
- add two helper methods write_traceback_to_log() and write_to_log()
- fix an issue causing Portage to raise UnsupportedAPIException, doebuild()'s mysettings must contain a valid EAPI string


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2631 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-03 15:26:17 +00:00
lxnay
51e2d952f9 Entropy/SocketHostInterface:
- reduce session TTL by default
- add soft barrier to the simultaneous connections limit, adding random lag


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2625 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-02 20:55:36 +00:00
lxnay
5fcbe084e5 Entropy/SocketHostInterface:
- introduce max connections per IP limit
- introduce automatic PID killer on handle() when time is over (default timeout = 120 seconds)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2618 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-11-02 11:00:59 +00:00
lxnay
c7c8f2c2e1 Entropy/entropyConstants:
etpdatabasemissingdepswlfile -> etpdatabasemissingdepsblfile


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2575 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-26 15:22:05 +00:00
lxnay
ff39cd9514 Entropy/ServerInterface/QAInterface:
- make possible to blacklist missing library dependencies at runtime and through packages.db.missing_deps_whitelist file inside the repository db directory


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2573 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-26 14:45:03 +00:00
lxnay
1dc14f2dca Entropy/EquoInterface:
- implement safe mode feature -> EquoInterface.safe_mode status integer, first function to use it is EquoInterface.openClientDatabase()
- openClientDatabase() make possible to start an EquoInterface instance with a corrupted/non-existant installed packages database (safe mode) which can be detected by client interfaces (Equo/Spritz)
Entropy/EntropyDatabaseInterface:
- improve branch support (and speed) for client database (installed packages db)
Entropy/rssFeed:
- make it a generic RSS handling class
Entropy/ServerInterface:
- make changes to rssFeed instances to reflect the change above
Entropy/Repository Manager:
- add support for notice boards handling
Entropy/ServerInterface:
- add support for notice boards handling
Entropy/EquoInterface:
- add support for notice boards


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2521 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-13 17:14:06 +00:00
lxnay
76d8d9596c Entropy/TODO:
- update TODO
Entropy/Equo:
- add installed packages database backup/restore tools
Entropy/EquoInterface:
- add backup/restore database helper functions
Entropy/EntropyDatabaseInterface:
- fix getIDPackageFromDownload()
Entropy/entropyTools:
- add compress_file() function (uncompress_file() already present)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2518 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-11 21:11:07 +00:00
lxnay
8ab4ae3851 Entropy/entropyConstants:
- sort etpConst['branches']


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2501 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-08 15:18:52 +00:00
lxnay
30782e37ed Entropy:
- database split: work out the client part


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2497 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-08 12:41:17 +00:00
lxnay
f8eb794969 Entropy/Repository Manager:
- add --nodeps option to compile_atoms


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2457 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-03 14:11:54 +00:00
lxnay
ccdd7aec7f Entropy/entropyConstants:
- switch branch to 4 by default in hard-coded config


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2451 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-10-03 01:57:22 +00:00
lxnay
50da03d02a Entropy/RepositoryManager:
- add --fetchonly and --buildonly support to compile_atoms()


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2444 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-30 10:09:06 +00:00
lxnay
e5be4c8a93 Entropy/entropyConstants:
- add some SPM options for future reference


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2436 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-29 19:50:47 +00:00
lxnay
4363f805ab Entropy/ServerInterface/Database Interface:
- code optimization when using SQLite executemany()
- change counters table structure (auto-migrated) to allow multiple branches support to work server-side, this shouldn't affect other things that much, hopefully


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2426 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-25 17:11:10 +00:00
lxnay
7f2078cfd7 Entropy/entropyConstants:
- add 'constants' support for the future repository notice board


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2417 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-24 13:18:07 +00:00
lxnay
a093dc1734 Entropy/entropyConstants:
- add repoid key to etpConst['server_repositories']


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2386 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-16 20:59:57 +00:00
lxnay
051de39d8a Entropy/entropyConstants:
- add document types descriptions (singular form)


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2381 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-15 16:22:35 +00:00
lxnay
9af2dd6de9 Entropy/UGCCacheInterface:
- add UGCClientInterface.get_docs() cache infrastructure
Entropy/Socket/OpenSSL:
- add SysCallError exception handling
Entropy/entropyConstants:
- add ugc types description


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2375 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-07 19:50:20 +00:00
lxnay
a9b49c4e91 Entropy/RepoInterface:
- fix a typo in ____construct_paths() and add 'profile.link' item
- run_sync(): remove self.Entropy.update_ugc_cache() call, not needed
Entropy/EquoInterface:
- loadRepositoryDatabase(): verify that repository id really exists
Entropy/DistributionUGCCommands:
- fix commands syntax
Entropy/UGCCacheInterface:
- support multi-threaded mode
- improve performance
- get_package_downloads(): return 0 instead of None in case of errors
- get_downloads_cache(), get_vote_cache(): check against pickle load exceptions


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2368 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-09-05 18:33:22 +00:00
lxnay
703656912a Entropy/UGCCacheInterface:
- new general purpose UGC caching infrastructure to speed up iterations when no up-to-date data is needed
Entropy/UGCClientInterface:
- move every caching related function to the new UGCCacheInterface class
- add some caching stuff
- make is_repository_eapi3_aware() faster
Entropy/DistributionUGCInterface:
- fix an error inside the query of get_ugc_alldownloads()


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2365 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-08-31 15:13:45 +00:00
lxnay
0695e72048 Entropy/SocketHostInterface:
- add support for noop string
- add some testing code


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2358 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-08-31 10:54:50 +00:00
lxnay
3b425c3b41 Entropy/UGC Interface:
- move UGC package vote range to etpConst['ugc_voterange']
- add voting support to Equo


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2340 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-08-26 13:00:10 +00:00
lxnay
76c16149ad Entropy/Server Interface:
- export binary packages expiration days setting to server.conf


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2339 cd1c1023-2f26-0410-ae45-c471fc1f0318
2008-08-26 11:29:25 +00:00