summaryrefslogtreecommitdiffstats
path: root/courgette
Commit message (Collapse)AuthorAgeFilesLines
* Remove msvs_guid from chrome_frame/, cloud_print/, content/tony@chromium.org2011-06-221-5/+0
| | | | | | | | | | courgette/, and google_update/. BUG=28727 Review URL: http://codereview.chromium.org/7191021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90119 0039d316-1c4b-4281-b951-d872f2087c98
* Final gyp patch to make use of the new cross-platform POSIX defines ↵tony@chromium.org2011-05-231-2/+2
| | | | | | | | toolkit_uses_gtk, os_posix, and use_x11. For lists of source files that use a mix of POSIX and Gtk APIs, toolkit_uses_gtk was given precedence. Solaris was made to use ALSA also, as libasound has been ported to FreeBSD and Solaris as a wrapper around the native OSS. Review URL: http://codereview.chromium.org/7055003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86352 0039d316-1c4b-4281-b951-d872f2087c98
* Globally replace <(library) with static_libraryevan@chromium.org2011-05-191-2/+2
| | | | | | | | | | | We provided <(library) as a variable to support a peculiar build configuration on Linux. We no longer support that build configuration, so we can simplify this code to no longer use a variable. Review URL: http://codereview.chromium.org/7051014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86004 0039d316-1c4b-4281-b951-d872f2087c98
* iwyu: Include stringprintf.h where appropriate, part 3.jhawkins@chromium.org2011-05-122-4/+2
| | | | | | | | | | | BUG=82098 TEST=none R=csilv@chromium.org Review URL: http://codereview.chromium.org/7016011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85088 0039d316-1c4b-4281-b951-d872f2087c98
* Make courgette compiler on clang and linux x64 buildersgrt@chromium.org2011-04-061-2/+4
| | | | | | | | | BUG=none TEST=none TBR=tommi Review URL: http://codereview.chromium.org/6802013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80667 0039d316-1c4b-4281-b951-d872f2087c98
* fix build error.tommi@chromium.org2011-04-061-1/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80654 0039d316-1c4b-4281-b951-d872f2087c98
* Switch out use of std::string and std::vector for large allocations for a ↵tommi@chromium.org2011-04-0618-296/+552
| | | | | | | | | | | | | | | | | buffer class that doesn't throw exceptions. The new buffer class is pretty simple and relies on the MemoryAllocator class that I previously to back large allocations with mapped files when memory is scarce. That reduced the number of crashes quite a bit but we still crash on machines that are simply out of diskspace as well. So, the right thing to do is to expect and handle failures which is what this cl is all about. What we should see once this has landed is that crash dumps due to courgette running out of disk space should disappear from crash/ and instead we should see the number of users that run into this particular problem in dashboards. TEST=Courgette out-of-memory/out-of-diskspace errors should disappear from crash/ BUG=74777 Review URL: http://codereview.chromium.org/6677141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80648 0039d316-1c4b-4281-b951-d872f2087c98
* Pulling in new icu with msvs2010 fix.bradnelson@google.com2011-03-291-1/+3
| | | | | | | | | | | Cloned http://codereview.chromium.org/6767003/ to land in the same CL. BUG=None TEST=None R=jeanluc@chromium.org Review URL: http://codereview.chromium.org/6698070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79646 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-285-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Quick fix for clang and linux views builders.tommi@chromium.org2011-03-221-6/+6
| | | | | | | | TBR=robertshield BUG=none Review URL: http://codereview.chromium.org/6721007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79032 0039d316-1c4b-4281-b951-d872f2087c98
* Identifying call sites that need to handle out of memory situations in ↵tommi@chromium.org2011-03-2211-169/+313
| | | | | | | | | | | | | | | | | Courgette. There's no functional change here, only interface changes: * Change methods that are known to fail out in the field to return bool instead of void. * Where those methods are called, check the return value and report errors * In debug builds use a specialized template class that forces callers to check return values (this is possible at compile time in gcc, but unfortunately not in VS). The next step will be to change the implementation to not use STL containers. TEST=Run courgette tests. BUG=74777 Review URL: http://codereview.chromium.org/6716006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79030 0039d316-1c4b-4281-b951-d872f2087c98
* Change other usages of .size() to .empty() when applicable.erg@google.com2011-03-042-2/+2
| | | | | | | | | BUG=carnitas TEST=compiles Review URL: http://codereview.chromium.org/6609008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76962 0039d316-1c4b-4281-b951-d872f2087c98
* Instrument the allocator code so that we can track down the cause of recent ↵tommi@chromium.org2011-03-033-44/+66
| | | | | | | | | | | crashes. BUG=74777 TEST=This should give us a clearer picture of what's going wrong in the recent courgette crashes. Review URL: http://codereview.chromium.org/6611027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76834 0039d316-1c4b-4281-b951-d872f2087c98
* Pure pedantry: Replace all ".size() == 0" with ".empty()".erg@google.com2011-03-021-6/+6
| | | | | | | | | BUG=carnitas TEST=compiles; existing unit tests. Review URL: http://codereview.chromium.org/6602049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76467 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of an STL compatible allocator for Courgette on Windows.tommi@chromium.org2011-03-0110-64/+439
| | | | | | | | | | | | | | | | | This is to better handle low memory situations when applying a differential patch to a large Chrome setup. For reading input files, I'm also switching to using memory mapped files instead of ReadFileToString to reduce the load on the heap. TEST=courgette.exe should succeed in applying a patch between two chrome 10.x archives on an XP machine with 180MB of physical memory and no page file. BUG=72459,73209 Review URL: http://codereview.chromium.org/6597038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76320 0039d316-1c4b-4281-b951-d872f2087c98
* Improved memory usage while applying patch.sra@chromium.org2011-02-236-16/+96
| | | | | | | | | | | | | | | | | | | | | | | Reduced total size of allocations from 520MB to 318MB. The general technique is to allocate the correct size rather than grow into the correct size and overshoot. 1. Find file sizes and allocate buffers of that size for the input files. 2. Pre-allocate a buffer for the collected inputs for the final diff. 3. Calculate the size for (2) during compression and include it in the patch header. The courgette.exe command line tool now calls the same ApplyEnsemblePatch entry point that is called by the installer. This ensures measurements of courgette.exe are a better reflection of the installer. BUG=72459 Review URL: http://codereview.chromium.org/6546008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75787 0039d316-1c4b-4281-b951-d872f2087c98
* Make the 32bit courgette.exe tool large-adddress-aware so that it can create ↵tommi@chromium.org2011-02-231-0/+5
| | | | | | | | | | | patches. (The courgette64 tool doesn't build in all configurations) Review URL: http://codereview.chromium.org/6565008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75763 0039d316-1c4b-4281-b951-d872f2087c98
* Clang: enable -Wbool-conversions and -Wunused-variables on Linux.hans@chromium.org2011-01-143-21/+21
| | | | | | | | | | | | | | | -Wbool-conversion warns about EXPECT_EQ(false, blah), so replace that with EXPECT_FALSE(blah). Do the same with EXPECT_EQ(true, blah) for good measure (even though that doesn't generate warnings). Also remove the one instance of an unused variable. BUG=69421 TEST=buildbots all compile and all tests pass Review URL: http://codereview.chromium.org/6300001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71431 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: fix a bunch of NULL vs. 0 issues spotted by gcc 4.5.craig.schlenter@chromium.org2011-01-131-4/+4
| | | | | | | | | | | | There are more gcc 4.5 issues to be solved so GYP_DEFINES=='werror=' is still required to build with 4.5 even with these changes. BUG=66652 TEST=compiles with gcc 4.5 and trybots Review URL: http://codereview.chromium.org/6186008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71325 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-111-4/+6
| | | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70920 Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70977 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70920 - Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-101-6/+4
| | | | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Review URL: http://codereview.chromium.org/6070006 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/6099012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70923 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-101-4/+6
| | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70920 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70782 - Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-071-6/+4
| | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Review URL: http://codereview.chromium.org/6070006 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/6100007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70783 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-071-4/+6
| | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70782 0039d316-1c4b-4281-b951-d872f2087c98
* Also build a 64-bit exe version of the 32-bit courgettebradnelson@google.com2010-12-2114-73/+130
| | | | | | | | | | | | utility + library to support larger input sizes. BUG=63793 TEST=None Review URL: http://codereview.chromium.org/5096007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69779 0039d316-1c4b-4281-b951-d872f2087c98
* Call InitLogging() for courgette.akalin@chromium.org2010-11-161-0/+7
| | | | | | | | | | | BUG=None TEST=Manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66208 Review URL: http://codereview.chromium.org/5038002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66236 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66208 - Call InitLogging() for courgette.akalin@chromium.org2010-11-161-6/+0
| | | | | | | | | | | | BUG=None TEST=Manually Review URL: http://codereview.chromium.org/5038002 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5066001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66218 0039d316-1c4b-4281-b951-d872f2087c98
* Call InitLogging() for courgette.akalin@chromium.org2010-11-161-0/+6
| | | | | | | | | BUG=None TEST=Manually Review URL: http://codereview.chromium.org/5038002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66208 0039d316-1c4b-4281-b951-d872f2087c98
* base: Get rid of 'using' declaration of StringAppendF.tfarina@chromium.org2010-11-153-28/+29
| | | | | | | | | | | Update the callers to append base:: in the calls to StringAppendF. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/4974001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66116 0039d316-1c4b-4281-b951-d872f2087c98
* Fix compile failure.pkasting@chromium.org2010-10-211-2/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63424 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - courgette/.pkasting@chromium.org2010-10-218-157/+109
| | | | | | | | | | This eliminates the custom logging code as VLOG is per-module configurable. I did preserve the distinct log level numbers in the VLOG statements. BUG=none TEST=none Review URL: http://codereview.chromium.org/3904002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63407 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent Courgette from choosing a really large executable as the basis of ↵mal@chromium.org2010-09-261-0/+27
| | | | | | | | | | | | comparison for a small executable. Patch by sra@chromium.org. BUG= none TEST= diff installer creation succeeds. Review URL: http://codereview.chromium.org/3431029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60591 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 7)thestig@chromium.org2010-08-272-4/+2
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3176026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57737 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land part of r55416, minus actually moving the test_suite.h contents to a ↵brettw@chromium.org2010-08-172-2/+2
| | | | | | | | | | | | | | | | | | | | | | | .cc file. Cleanup in base. This moves the implementation (and a bunch of header file dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56399 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land just the project file changes from r55416. This makes projects that usebrettw@chromium.org2010-08-151-0/+2
| | | | | | | | | base test files dependent on test_support_base. TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56172 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 55400 - Cleanup in base. This moves the implementation (and a bunch ↵nsylvain@chromium.org2010-08-093-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | of header file dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/3035062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55416 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup in base. This moves the implementation (and a bunch of header filebrettw@chromium.org2010-08-093-2/+4
| | | | | | | | | | | | | | | | | | | dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55400 0039d316-1c4b-4281-b951-d872f2087c98
* base: rename Environment::GetEnv to Environment::GetVar.tfarina@chromium.org2010-08-071-1/+1
| | | | | | | | | | | This is the part 4 and the latest of this series. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/3029062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55326 0039d316-1c4b-4281-b951-d872f2087c98
* Add #include utf_string_conversions.h to all files that use ASCIIToWide andbrettw@chromium.org2010-08-031-1/+1
| | | | | | | | | | | | | | | ASCIIToUTF16. I removed string_util includes from a few places where it obviously wasn't needed. In a separate pass, I'm going to remove ASCIITo* from string_util, then I'm going to do an even later pass to find the unnecessary string_util.h includes and remove them. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3058027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54746 0039d316-1c4b-4281-b951-d872f2087c98
* base: Rename EnvVarGetter to Environment.tfarina@chromium.org2010-08-031-2/+2
| | | | | | | | | | | | | | | Now EnvVarGetter do much more than getting environment variables. Per suggestion from Pawel in http://codereview.chromium.org/3043018/. BUG=None TEST=trybots Signed-off-by: Thiago Farina <tfarina@chromium.org> Review URL: http://codereview.chromium.org/3052034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54696 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more callers of the integer/string functions to usingbrettw@chromium.org2010-07-312-10/+7
| | | | | | | | | | string_number_conversions.h TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3013046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54454 0039d316-1c4b-4281-b951-d872f2087c98
* Move the number conversions from string_util to a new file.brettw@chromium.org2010-07-301-6/+4
| | | | | | | | | | | | | Use the base namespace in the new file. Update callers. I removed all wstring variants and also the string->number ones that ignore the return value. That encourages people to write code and forget about error handling. TEST=included unit tests BUG=none Review URL: http://codereview.chromium.org/3056029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54355 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated CommandLine::GetLooseValues(), rename to args().evan@chromium.org2010-07-211-1/+9
| | | | | | | | | | | | | | | It returned a wstring, when really we wanted the native encoded strings. Fixing the majority of callers actually simplified them in many cases because the callers wanted native strings too. Since I'm touching every caller, I gave it a more useful name. I'm not sure where "loose" came from but it never made sense to me. BUG=24672 Review URL: http://codereview.chromium.org/3028010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53193 0039d316-1c4b-4281-b951-d872f2087c98
* Remove <iostream> where possible.erg@google.com2010-07-201-1/+0
| | | | | | | | | | | | | <iostream> creates a static initializer. Most people don't need <iostream> anyway--they really need <ostream> for operator<< overloads. <iostream> should *never* be included in a header file; <iosfwd> exists for that purpose. BUG=none TEST=none Review URL: http://codereview.chromium.org/3014015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53083 0039d316-1c4b-4281-b951-d872f2087c98
* base: Get rid of the deprecated SysInfo::GetEnvVar.tfarina@chromium.org2010-07-081-4/+8
| | | | | | | | | | | Use the new EnvVarGetter::GetEnv instead. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/2876045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51829 0039d316-1c4b-4281-b951-d872f2087c98
* Use an array of pages for the large arrays.sra@chromium.org2010-05-295-12/+188
| | | | | | | | | | | | | The large arrays of ints used by the suffix array code sometimes can't be allocated due to fragmented address space. Using an array of 'pages' lets the allocation be satisfied by many smaller allocations. BUG=none TEST=none Review URL: http://codereview.chromium.org/2228003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48547 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for bug where 64-bit executables were processed as 32-bit executables.laforge@chromium.org2010-03-154-7/+24
| | | | | | | | | | Added some more logging. TBR=sra Review URL: http://codereview.chromium.org/988002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41598 0039d316-1c4b-4281-b951-d872f2087c98
* OpenBSD/FreeBSD GYP changes (most of the remaining ones)pvalchev@google.com2010-02-041-2/+2
| | | | | | Review URL: http://codereview.chromium.org/565043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38079 0039d316-1c4b-4281-b951-d872f2087c98
* Clarify licenses on a bunch of files.evan@chromium.org2009-12-291-0/+4
| | | | | | | | | | | In this process, I also filed bugs on various projects we depend on that also have unclear licenses. BUG=28291 Review URL: http://codereview.chromium.org/521009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35323 0039d316-1c4b-4281-b951-d872f2087c98
* Add compiler-specific "examine printf format" attributes to printfs.evan@chromium.org2009-11-201-6/+7
| | | | | | | | | | | | Functions that take a printf-style format get a new annotation, which produces a bunch of compiler warnings when you use printf impoperly. This change adds the annotations and fixes the warnings. We now must use PRId64 for 64-bit numbers and the PRIsz for size_t. Review URL: http://codereview.chromium.org/339059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32600 0039d316-1c4b-4281-b951-d872f2087c98