View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0022484 | Open CASCADE | OCCT:Foundation Classes | public | 2011-05-10 12:40 | 2020-12-10 09:57 |
Reporter | epv | Assigned To | bugmaster | ||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
OS | All | ||||
Target Version | 6.8.0 | Fixed in Version | 6.8.0 | ||
Summary | 0022484: UNICODE characters support. | ||||
Description | OpenCascade uses primarily ASCII encoding and doesn’t fully support Unicode characters, especially that is concerned working with files and directories. It makes real restriction on development of modern application that must work with non-ASCII file names as well. So, Unicode encoding support should be added. | ||||
Additional information and documentation updates | UNICODE characters support in OCCT The main idea of the implemented improvement is that API is kept untouched. Instead behavior of all functions that accept on input Standard_CString is changed, so that now the strings are assumed to be in UTF-8 encoding. The constructor of TCollection_ExtendedString is used to convert UTF-8 strings to wide characters, which are then cast directly to wchar_t* and passed to appropriate system functions that take wchar_t* on input; for example, _wopen instead of open. Note that this change will break backward compatibility with applications which currently use filenames in extended ASCII encoding bound to the current locale. Such applications should be updated to convert such strings to UTF-8 format. The patch has been implemented for WNT platform only; other platforms remain supporting only ASCII encoding. The conversion from UTF-8 to wchar_t is made using little-endian approach. Thus, this code will not work correctly on big-endian platforms. It is needed to complete this in the way similar as it is done for binary persistence (see the macro DO_INVERSE in FSD_FileHeader.hxx). | ||||
Tags | No tags attached. | ||||
Test case number | Will be created | ||||
related to | 0024716 | closed | bugmaster | Open CASCADE | OSD_Path - remove excessive validity checks and allow non-ascii strings |
related to | 0025302 | closed | Open CASCADE | Incorrect locale and unicode support in Draw console | |
parent of | 0025369 | closed | bugmaster | Open CASCADE | Visualization, Image_AlienPixMap - handle UTF-8 names in image read/save operations on Windows |
parent of | 0025367 | closed | bugmaster | Open CASCADE | IGES and BRep persistence - support unicode file names on Windows |
parent of | 0026380 | closed | bugmaster | Open CASCADE | OSD_SharedLibrary - handle UTF-8 file paths |
parent of | 0027198 | closed | Open CASCADE | OSD_Environment - use wide characters API on Windows | |
parent of | 0027675 | closed | bugmaster | Open CASCADE | Foundation Classes - handle Unicode path to CSF_UnitsLexicon and CSF_UnitsDefinition on Windows |
parent of | 0027676 | closed | bugmaster | Open CASCADE | Foundation Classes - define Standard_ExtCharacter, Standard_Utf16Char using C++11 types char16_t |
parent of | 0027838 | closed | kgv | Open CASCADE | Foundation Classes - support wchar_t* input within TCollection_AsciiString and TCollection_ExtendedString |
parent of | 0027880 | closed | bugmaster | Open CASCADE | Samples - fix handling of Unicode paths within MFC import/export sample |
parent of | 0025534 | closed | bugmaster | Community | TObj_Application unicode path issue. |
parent of | 0028110 | closed | apn | Open CASCADE | Configuration - specify Unicode charset instead of multibyte in project files for Visual Studio |
parent of | 0028353 | closed | apn | Community | Samples - IESample cannot write files to paths with special characters |
parent of | 0028454 | closed | bugmaster | Community | Data Exchange, STEP reader - names with special characters cannot be read |
parent of | 0029069 | closed | apn | Community | Samples - handle UNICODE filenames within C++/CLI CSharp sample |
parent of | 0031182 | closed | Community | Data Exchange - STEP export unicode name as "???" | |
parent of | 0031851 | closed | bugmaster | Open CASCADE | Data Exchange, STEP - enable Unicode symbols in STEP export |
parent of | 0025685 | assigned | dpasukhi | Community | Application Framework - TCollection_ExtendedString unicode storage in xml document is unreadable |
parent of | 0025681 | closed | bugmaster | Community | Application Framework - Unicode data storage in XML or binary format |
parent of | 0025683 | assigned | vro | Community | Application Framework - No entrance to construct a LDOMBasicString from TCollection_ExtendedString |
parent of | 0031340 | closed | bugmaster | Open CASCADE | Application Framework - LDOM fails to read XML file starting with BOM |
parent of | 0025682 | closed | bugmaster | Community | Application Framework - TObj_Model::GetModelName() should store in document in unicode mode instead of ascii mode |
parent of | 0031940 | closed | bugmaster | Community | Foundation Classes - TCollection_ExtendedString::Print() corrupts UNICODE strings and does not compile with C++20 |
related to | 0022125 | closed | bugmaster | Open CASCADE | TCollection_ExtendedString: conversion from UTF-8 to unicode |
related to | 0024943 | closed | bugmaster | Open CASCADE | Port MFC sample to UNICODE for compatibility with VS2013 |
related to | 0025308 | new | Open CASCADE | TCollection_ExtendedString, NCollection_String - merge classes for string management | |
related to | 0026514 | closed | bugmaster | Open CASCADE | OSD_Path can not work with French symbols in file name. |
related to | 0028172 | closed | kgv | Community | Replace Standard_CString file path with Unicode form TCollection_ExtendedString |
child of | 0014673 | closed | bugmaster | Open CASCADE | Provide true support for Unicode symbols |
Not all the children of this issue are yet resolved or closed. |
2011-05-10 10:43
|
OCC22484_v1_epv.zip (204,990 bytes) |
|
Current implementation uses char* to store UTF-8 string. The API of OCC file classes and methods was not modified. The string is analyzed and in case of UFT-8 code converted to be used in appropriate system functions. Current implementation finalized only for Windows platform. |
|
The first version of fix put into CR22484. Please review and send back |
|
Dear pdn, I have following remarks to the patch (after preliminary review). > #ifdef WNT WNT macro definition is deprecated. Please use appropriate build-in macros instead (_MSC_VER or _WIN32 depending on situation). > myStream.open( (const wchar_t*) aWName.ToExtString(),ios::in); // ios::nocreate is not portable Please remove irrelevant comments from copy-pasted lines. > + TCollection_ExtendedString aFileNameW(aFileName, Standard_True); > + TCollection_ExtendedString dirNameW(dirName); If I understood correctly, TCollection_ExtendedString constructor parses > +/* LD : We do not need this routine any longer : */ > +/* Dont remove a no empty directory */ > + > + > +#if 0 Big unidentified piece of commented code. General remark - this patch broke backward compatibility with applications which currently uses filenames in current locale. |
|
Remarks: 1) It is needed also to make corrections in OCCT Products, like DXF. 2) TCollection_ExtendedString. In ConvertToUnicode2B and ConvertToUnicode3B, the code is stick to little endian. It will be inconsistent for big endian platforms. 3) The following files contain changes not relevant to this bug. It is needed to create another bug for that, and make a version here that contains only relevant changes. BinLDrivers_DocumentRetrievalDriver.cdl BinLDrivers_DocumentRetrievalDriver.cxx 4) Why did you add commented routine DeleteDirectory in OSD_WNT.cxx appeared again? Please, remove. 5) The same is with the function SetDeleteDirectoryProc. 6) Remove declaration of the following functions in OSD_WNT_1.hxx: DeleteDirectory SetDeleteDirectoryProc DirWalk MsgBox WNT_InitTimer WNT_StatTimer _debug_break 7) The changes concerning "locale" in PCDM_RetrievalDriver.cxx are incorrect (return back to an older version). Concerning general remark of KGV, I agree. We need to clearly declare it in release notes. |
|
Branch CR22484 has been updated forcibly by pdn. SHA-1: a5aaaf3a2c80ef36b4d33c9e070213fd118d058b |
|
Minor remarks: - in Draw_Interpretor.cxx, local class TclUTFToLocalStringSentry becomes unused, please remove it - change in PCDM.cdl is wrong, please revert (these two enums have been removed recently, see 0024180) |
|
I have added description of the patch prepared by msv some time ago (edited) in Additional Information field |
|
Branch CR22484 has been updated forcibly by pdn. SHA-1: 5a4311328b5af737e0402999152f948a902ad8ce |
|
No remarks, please check building on Linux, Windows 64-bit, then test |
|
Dear BugMaster, Branch CR22484 was compiled on Linux and following compilation errors were detected: http://jenkins-test-02.nnov.opencascade.com/user/mnt/my-views/view/CR22484/job/mnt-CR22484-master_build_occt_linux/1/parsed_console/ 1. ../../../../src/FSD/FSD_BinaryFile.cxx:84:8: error: macro names must be identifiers 2. ../../../../src/FSD/FSD_File.cxx:76:8: error: macro names must be identifiers Branch CR22484 was compiled on Windows and following compilation errors were detected: http://jenkins-test-02.nnov.opencascade.com/user/mnt/my-views/view/CR22484/job/mnt-CR22484-master_build_occt_windows/1/parsed_console/ 1. ..\..\..\src\FSD\FSD_BinaryFile.cxx(84): fatal error C1016: #if[n]def expected an identifier 2. ..\..\..\src\FSD\FSD_File.cxx(76): fatal error C1016: #if[n]def expected an identifier 3. ..\..\..\src\Message\Message_MsgFile.cxx(217): fatal error C1016: #if[n]def expected an identifier 4. ..\..\..\src\LDOM\LDOMParser.cxx(138): fatal error C1016: #if[n]def expected an identifier 5. ..\..\..\src\BinLDrivers\BinLDrivers_DocumentRetrievalDriver.cxx(182): fatal error C1016: #if[n]def expected an identifier 6. ..\..\..\src\StepFile\stepread.c(86): fatal error C1016: #if[n]def expected an identifier |
|
Branch CR22484 has been updated by pdn. SHA-1: e3249fb86154833d355b08ea31f2e0ff9d1c5e30 Detailed log of new commits: Author: pdn Date: Thu Sep 25 14:29:15 2014 +0400 Fix for compilation errors and fix for StepFile (avoid objects in pure c code) |
|
Fixed |
|
Dear BugMaster, Branch CR22484 (and products from GIT master) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: e3249fb86154833d355b08ea31f2e0ff9d1c5e30 Number of compiler warnings: occt component: Linux: 15 (15 on master) Windows: 0 (0 on master) MacOS: 193 (193 on master) products component : Linux: 11 (11 on master) Windows: 1 (1 on master) Regressions/Differences: http://occt-tests/CR22484-master-occt/Windows-32-VC10/summary.html bugs caf(015) bug170_3 Testing cases: Not done Testing on Linux: Total MEMORY difference: 356246768 / 355468788 Total CPU difference: 45192.93000000016 / 44818.88000000009 Testing on Windows: Total MEMORY difference: 245490128 / 242252872 Total CPU difference: 34173.109375 / 34303.3125 There are differences in images found by testdiff: http://occt-tests/CR22484-master-occt/Debian60-64/diff-Debian60-64.html http://occt-tests/CR22484-master-occt/Windows-32-VC10/diff-Windows-32-VC10.html Pay attention to: bugs vis bug22796_2 |
|
Branch CR22484 has been updated by pdn. SHA-1: 57a388503997f41b94212f37673af17d427bdf83 Detailed log of new commits: Author: pdn Date: Tue Sep 30 13:23:30 2014 +0400 Fixes for set unicode symbols to OCAF and visualization |
|
Fixed, please review and retest |
|
No remarks, please test |
|
Branch CR22484 has been updated forcibly by apv. SHA-1: c59407add5ab4f2225ad5fe740997438e9a7c628 |
|
Dear BugMaster, Branch CR22484 (and products from GIT master) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: c59407add5ab4f2225ad5fe740997438e9a7c628 Number of compiler warnings: occt component: Linux: 15 (15 on master) Windows: 0 (0 on master) MacOS: 196 (196 on master) products component : Linux: 11 (11 on master) Windows: 3 (3 on master) Regressions/Differences: Not detected Testing cases: Will be created Testing on Linux: Total MEMORY difference: 398316920 / 397657468 Total CPU difference: 47295.91000000001 / 46596.08000000006 Testing on Windows: Total MEMORY difference: 279461580 / 279221480 Total CPU difference: 38884.5 / 39387.71875 There are differences in images found by testdiff: http://occt-tests/CR22484-master-occt/Debian60-64/diff-Debian60-64.html http://occt-tests/CR22484-master-occt/Windows-32-VC10/diff-Windows-32-VC10.html Pay attention to: bugs vis bug22149 |
|
Branch CR22484 has been updated by abv. SHA-1: a27569a567728ab3f99677ecb9a1656d02a22d5c Detailed log of new commits: Author: abv Date: Thu Oct 2 14:15:14 2014 +0400 Definition of Unicode symbol in test corrected |
|
I have corrected test bugs vis bug22149, please check the image |
|
Dear BugMaster, Updated test-case bugs viz bug22149 has been relaunched on Linux and Windows platforms. Results on both platforms are OK. http://occt-tests/CR22484-master-occt/Debian60-64/bugs/vis/bug22149.html http://occt-tests/CR22484-master-occt/Windows-32-VC10/bugs/vis/bug22149.html |
|
I have problems to understand where I need to change the string handling in my program. For example BRepTools::Write still call ofstream.open with an Standandard_CString instead of a wide string. |
|
It seems the solution currently implemented covers only STEP, OCCT binary persistence, and message resources. Reading and writing BREP and IGES seems to still not support Unicode on Windows. Pavel, can you confirm this? |
|
Yes, you are right. The additional bug will be created to update IGES and BRep |
|
Branch CR22484 has been deleted by inv. SHA-1: a27569a567728ab3f99677ecb9a1656d02a22d5c |
|
Please use the following lines to make a test: box b 10 10 10 set s [encoding convertfrom unicode \x1F\x04\x40\x04\x35\x04\x32\x04\x35\x04\x34\x04] stepwrite a b $s.stp # file should be created stepread $s.stp a * |
occt: master d9ff84e8 2014-10-02 11:39:25
Committer: bugmaster Details Diff |
0022484: UNICODE characters support Initial UNICODE (UFT-8) characters support for OCCT file operations Fix for compilation errors and fix for StepFile (avoid objects in pure c code) Fixes for set unicode symbols to OCAF and visualization |
Affected Issues 0022484 |
|
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cdl | Diff File | ||
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx | Diff File | ||
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx | Diff File | ||
mod - src/DDataStd/DDataStd_BasicCommands.cxx | Diff File | ||
mod - src/Draw/Draw_Interpretor.cxx | Diff File | ||
mod - src/FSD/FSD_BinaryFile.cxx | Diff File | ||
mod - src/FSD/FSD_CmpFile.cxx | Diff File | ||
mod - src/FSD/FSD_File.cxx | Diff File | ||
mod - src/LDOM/LDOMParser.cxx | Diff File | ||
mod - src/Message/Message_Msg.cxx | Diff File | ||
mod - src/Message/Message_MsgFile.cxx | Diff File | ||
mod - src/OSD/OSD_Directory.cxx | Diff File | ||
mod - src/OSD/OSD_DirectoryIterator.cxx | Diff File | ||
mod - src/OSD/OSD_Error.cxx | Diff File | ||
mod - src/OSD/OSD_File.cxx | Diff File | ||
mod - src/OSD/OSD_FileIterator.cxx | Diff File | ||
mod - src/OSD/OSD_FileNode.cxx | Diff File | ||
mod - src/OSD/OSD_Path.cxx | Diff File | ||
mod - src/OSD/OSD_Process.cxx | Diff File | ||
mod - src/OSD/OSD_signal_WNT.cxx | Diff File | ||
mod - src/OSD/OSD_WNT.cxx | Diff File | ||
mod - src/OSD/OSD_WNT_1.hxx | Diff File | ||
mod - src/PCDM/PCDM_ReadWriter.cxx | Diff File | ||
mod - src/PCDM/PCDM_ReadWriter_1.cxx | Diff File | ||
mod - src/PCDM/PCDM_RetrievalDriver.cxx | Diff File | ||
mod - src/StepFile/StepFile_Read.cxx | Diff File | ||
mod - src/StepFile/stepread.c | Diff File | ||
mod - src/TCollection/TCollection_AsciiString.cdl | Diff File | ||
mod - src/TCollection/TCollection_AsciiString.cxx | Diff File | ||
mod - src/TCollection/TCollection_ExtendedString.cdl | Diff File | ||
mod - src/TCollection/TCollection_ExtendedString.cxx | Diff File | ||
mod - src/UTL/UTL.cxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx | Diff File | ||
mod - tests/bugs/vis/bug22796_2 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-08-02 11:23 | bugmaster | Category | OCCT:FDC => OCCT:Foundation Classes |
2011-08-03 12:17 | bugmaster | Fixed in Version | EMPTY => |
2011-08-03 12:17 | bugmaster | Target Version | => 6.5.2 |
2011-08-03 12:17 | bugmaster | Description Updated | |
2011-09-21 12:42 | bugmaster | Target Version | 6.5.2 => 6.5.3 |
2011-12-05 10:43 |
|
Relationship added | child of 0014673 |
2012-02-02 10:16 |
|
Target Version | 6.5.3 => 6.5.4 |
2012-10-21 11:29 |
|
Target Version | 6.5.4 => 6.6.0 |
2013-02-28 17:05 |
|
Target Version | 6.6.0 => 6.7.0 |
2013-06-07 20:25 |
|
Assigned To | bugmaster => pdn |
2013-06-07 20:25 |
|
Status | new => assigned |
2013-06-09 20:54 |
|
Relationship added | related to 0023457 |
2013-06-09 20:59 |
|
Relationship deleted | related to 0023457 |
2013-06-10 11:33 |
|
Note Added: 0024708 | |
2013-06-11 12:19 |
|
Note Added: 0024728 | |
2013-06-11 12:19 |
|
Assigned To | pdn => msv |
2013-06-11 12:19 |
|
Status | assigned => resolved |
2013-06-13 10:01 | kgv | Note Added: 0024739 | |
2013-06-13 12:53 |
|
Note Added: 0024744 | |
2013-06-13 12:53 |
|
Assigned To | msv => pdn |
2013-06-13 12:53 |
|
Status | resolved => assigned |
2013-11-06 15:10 | kgv | Relationship added | related to 0022125 |
2013-11-06 15:12 | kgv | Target Version | 6.7.0 => 6.7.1 |
2014-04-04 18:16 |
|
Target Version | 6.7.1 => 6.8.0 |
2014-07-12 17:37 | kgv | Relationship added | related to 0024943 |
2014-09-10 08:19 | kgv | Target Version | 6.8.0 => 7.0.0 |
2014-09-23 14:05 | git | Note Added: 0032000 | |
2014-09-23 14:06 |
|
Target Version | 7.0.0 => 6.8.0 |
2014-09-23 14:06 |
|
Assigned To | pdn => abv |
2014-09-23 14:06 |
|
Status | assigned => resolved |
2014-09-24 12:21 |
|
Note Added: 0032076 | |
2014-09-24 12:21 |
|
Assigned To | abv => pdn |
2014-09-24 12:21 |
|
Status | resolved => assigned |
2014-09-24 12:28 |
|
Note Added: 0032078 | |
2014-09-24 12:28 |
|
Additional Information Updated | |
2014-09-24 12:39 | git | Note Added: 0032079 | |
2014-09-24 12:40 |
|
Assigned To | pdn => abv |
2014-09-24 12:40 |
|
Status | assigned => resolved |
2014-09-24 14:35 |
|
Note Added: 0032090 | |
2014-09-24 14:35 |
|
Assigned To | abv => bugmaster |
2014-09-24 14:35 |
|
Status | resolved => reviewed |
2014-09-24 14:49 |
|
Assigned To | bugmaster => apv |
2014-09-24 15:01 | kgv | Relationship added | related to 0024716 |
2014-09-25 12:38 |
|
Note Added: 0032129 | |
2014-09-25 12:39 |
|
Assigned To | apv => pdn |
2014-09-25 12:39 |
|
Status | reviewed => assigned |
2014-09-25 14:29 | git | Note Added: 0032144 | |
2014-09-25 14:29 |
|
Note Added: 0032145 | |
2014-09-25 14:29 |
|
Assigned To | pdn => abv |
2014-09-25 14:29 |
|
Status | assigned => resolved |
2014-09-25 14:30 |
|
Status | resolved => reviewed |
2014-09-25 14:31 |
|
Assigned To | abv => apv |
2014-09-26 13:57 |
|
Note Added: 0032224 | |
2014-09-26 13:57 |
|
Assigned To | apv => pdn |
2014-09-26 13:57 |
|
Status | reviewed => assigned |
2014-09-26 13:57 |
|
Note Edited: 0032224 | |
2014-09-30 13:23 | git | Note Added: 0032454 | |
2014-09-30 13:24 |
|
Note Added: 0032455 | |
2014-09-30 13:24 |
|
Assigned To | pdn => abv |
2014-09-30 13:24 |
|
Status | assigned => resolved |
2014-10-01 09:59 |
|
Note Added: 0032492 | |
2014-10-01 09:59 |
|
Assigned To | abv => bugmaster |
2014-10-01 09:59 |
|
Status | resolved => reviewed |
2014-10-01 11:28 |
|
Relationship added | related to 0025302 |
2014-10-01 13:07 |
|
Assigned To | bugmaster => apv |
2014-10-01 13:12 | kgv | Relationship added | related to 0025308 |
2014-10-01 16:29 | git | Note Added: 0032516 | |
2014-10-02 14:04 |
|
Test case number | => Will be created |
2014-10-02 14:07 |
|
Note Added: 0032573 | |
2014-10-02 14:07 |
|
Assigned To | apv => pdn |
2014-10-02 14:07 |
|
Status | reviewed => assigned |
2014-10-02 14:16 | git | Note Added: 0032578 | |
2014-10-02 14:18 |
|
Note Added: 0032579 | |
2014-10-02 14:18 |
|
Assigned To | pdn => apv |
2014-10-02 14:18 |
|
Status | assigned => feedback |
2014-10-02 14:50 |
|
Note Added: 0032581 | |
2014-10-02 14:50 |
|
Assigned To | apv => bugmaster |
2014-10-02 14:50 |
|
Status | feedback => tested |
2014-10-03 14:07 | bugmaster | Changeset attached | => occt master d9ff84e8 |
2014-10-03 14:07 | bugmaster | Status | tested => verified |
2014-10-03 14:07 | bugmaster | Resolution | open => fixed |
2014-10-13 23:15 | shoogen | Note Added: 0033047 | |
2014-10-13 23:25 |
|
Note Added: 0033048 | |
2014-10-14 11:52 |
|
Note Added: 0033058 | |
2014-10-14 16:44 | kgv | Relationship added | parent of 0025369 |
2014-10-14 16:49 | kgv | Relationship added | parent of 0025367 |
2014-10-21 16:43 | git | Note Added: 0033446 | |
2014-11-06 11:59 |
|
Note Added: 0034088 | |
2014-11-11 12:42 |
|
Fixed in Version | => 6.8.0 |
2014-11-11 13:03 |
|
Status | verified => closed |
2015-06-29 20:14 | kgv | Relationship added | parent of 0026380 |
2015-08-03 20:55 | kgv | Relationship added | related to 0026514 |
2016-02-22 22:09 | kgv | Relationship added | parent of 0027198 |
2016-07-13 22:44 | kgv | Relationship added | parent of 0027675 |
2016-07-14 10:44 | kgv | Relationship added | parent of 0027676 |
2016-09-04 14:34 | kgv | Relationship added | parent of 0027838 |
2016-09-19 11:48 | kgv | Relationship added | parent of 0027880 |
2016-11-02 12:57 | kgv | Relationship added | child of 0025534 |
2016-11-02 12:58 | kgv | Relationship replaced | parent of 0025534 |
2016-11-16 10:27 | kgv | Relationship added | parent of 0028110 |
2016-11-29 07:55 | kgv | Relationship added | related to 0028172 |
2017-01-13 16:10 | kgv | Relationship added | parent of 0028353 |
2017-02-13 17:15 | kgv | Relationship added | parent of 0028454 |
2018-01-29 11:18 | kgv | Relationship added | parent of 0029069 |
2019-12-17 13:35 | kgv | Relationship added | parent of 0031182 |
2020-10-14 09:31 | kgv | Relationship added | parent of 0031851 |
2020-10-14 11:45 | kgv | Relationship added | parent of 0025685 |
2020-10-14 11:47 | kgv | Relationship added | parent of 0025681 |
2020-10-14 11:47 | kgv | Relationship added | parent of 0025683 |
2020-10-14 12:02 | kgv | Relationship added | parent of 0031340 |
2020-10-14 12:06 | kgv | Relationship added | parent of 0025682 |
2020-11-18 14:58 | kgv | Relationship added | parent of 0031940 |