From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp56.i.mail.ru (smtp56.i.mail.ru [217.69.128.36]) by sourceware.org (Postfix) with ESMTPS id 98CAE3858D39 for ; Wed, 29 Dec 2021 11:04:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 98CAE3858D39 Received: by smtp56.i.mail.ru with esmtpa (envelope-from ) id 1n2WlE-0005yp-MB; Wed, 29 Dec 2021 14:04:49 +0300 Date: Wed, 29 Dec 2021 14:04:49 +0300 From: =?Windows-1251?Q?=D4=B8=E4=E0=F0_=D1=F2=F0=FB=E6=ED=B8=A2?=(Fiodar Stryzhniou) To: Richard Earnshaw Cc: gcc-help@gcc.gnu.org Subject: Re: Symbian: unalighned relocations for pointers-to-members Message-Id: <20211229140449.2e727ee2fb05036de93d8ef8@mail.ru> In-Reply-To: <8f38d61e-f5c2-b9a1-b2d3-3bf5ee5cb4a4@foss.arm.com> References: <20211216033947.6ba586c6ca664cb651cc4cb1@mail.ru> <8f38d61e-f5c2-b9a1-b2d3-3bf5ee5cb4a4@foss.arm.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__29_Dec_2021_14_04_49_+0300_=3e=KD89xPamm1As" X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD94D5EF110843E6A6756D129FFADCD37D44B66CFF8B7714B73182A05F538085040AE51B0332146BD77CE8187D3B33549BB5D8A94FA9EAB556763CB5DE4080DB666 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE724CD972B668B8034EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006371AA4FDB8B3812E678638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8646815C207F5020BF8A409A9D69372FC6F9789CCF6C18C3F8528715B7D10C86878DA827A17800CE70F3DDF2BBF19B93A9FA2833FD35BB23D9E625A9149C048EE1E561CDFBCA1751F28451B159A507268D2E47CDBA5A96583BD4B6F7A4D31EC0BC014FD901B82EE079FA2833FD35BB23D27C277FBC8AE2E8B1A9C11735BBA05FBA471835C12D1D977C4224003CC836476EB9C4185024447017B076A6E789B0E975F5C1EE8F4F765FCB4F0072945D2B5C03AA81AA40904B5D9CF19DD082D7633A078D18283394535A93AA81AA40904B5D98AA50765F790063734E399CB81F16120D81D268191BDAD3D698AB9A7B718F8C4D1B931868CE1C5781A620F70A64A45A98AA50765F79006372E808ACE2090B5E1725E5C173C3A84C3C5EA940A35A165FF2DBA43225CD8A89F616AD31D0D18CD5CA91E23F1B6B78B78B5C8C57E37DE458BEDA766A37F9254B7 X-C1DE0DAB: 0D63561A33F958A50AE2862DE822469B04803AAFBA7ACFA18CCEE8007AFF7307D59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA75438CC92D4039F4E2410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D349FD10E01B3CDC9E2AC3CC500A2A8A1E2AC888FE5D9610C1E749652B836979589EC870FF0E736669E1D7E09C32AA3244CF63091BEB750E703B7420402082E48D0795D98D676DD64D0729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojXY22XoowekB15ikPApmbcA== X-Mailru-Sender: B5420D632883B294CF6673AD81AF0FB68A036D778A8442748FFA108DBF448FEDE2527C969975515C2B4E3A9B39D17ED8FB559BB5D741EB9638645ACA06CB6E346F53C80213D1719C67EA787935ED9F1B X-Mras: Ok X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Dec 2021 11:04:54 -0000 This is a multi-part message in MIME format. --Multipart=_Wed__29_Dec_2021_14_04_49_+0300_=3e=KD89xPamm1As Content-Type: text/plain; charset=Windows-1251 Content-Transfer-Encoding: 8bit On Mon, 20 Dec 2021 15:37:26 +0000 Richard Earnshaw wrote: > On 16/12/2021 00:39, Ô¸äàð Ñòðûæí¸¢ (Fiodar Stryzhniou) via Gcc-help wrote: > > Hello. I maintain ScummVM port for Symbian Series 60v3. ScummVM is a complete rewrite of hundreds old games' executables and is not an emulator. It's free and opensource. > > > > Last year, when I prepared a version 2.2.0 in the release, it was faced with the fact that when the Ultima engine is turned on in the executable file (supports Ultima 1, 4, 6, 8), it does not start. Ultima 4 & 6 support disabling allowed SCUMMVM. In the spring of this year, after some changes in the source code Ultima, the elf2e32 utility has begun to complete the work with the error "Line 427". To clarify the causes of the error, a rebeling of the code responsible for the support of Ultima 4 & 6 was carried out. > > The rebel passed as follows: > > 1. Removed ultima.lib (Static Library) > > 2. Left the entry point, deleted all other files associated with Ultima 4/6 from the project assembly > > 3. Collected ultima.lib, then collected scummvm.exe > > 4. Added files to the project and continued to collect until the error did not jump out. > > > > I have done these steps first for Ultima 4, then - 6. In both cases, the reason was pointer-to-member array declaration. > > Ultima 4 - https://github.com/scummvm/scummvm/blob/master/engines/ultima/ultima4/game/item.cpp#L49 > > Ultima 6 - https://github.com/scummvm/scummvm/blob/master/engines/ultima/nuvie/usecode/u6_object_types.h#L28 > > > > elf2e32 creates E32 aka EPOC32 aka Symbian exe and dlls from elf. > > > > Analysis of the elf2e32 source code indicated the reason - when checking the created file, unaligned relocations were found. After modifying the source code, the elf2e32 was printed unaligned relocations. I redirect to file "readelf -a ". I find several random Elf32_Rel r_offset from elf2e32 in readelf output. GCC 5.4.0 and 11.2.0 give same result. > > > > > > I can't tell from this what the issue might be. To stand any chance of > proceeding further, I think we're going to need a simple, > self-contained, testcase that can demonstrate the problem. > > I don't think I've seen a question about SymbianOS support in over 5 > years, now, possibly longer. Given that SymbianOS itself was > discontinued back around 2013 (8 years ago now), the GCC port has > declined to the point where I suspect it's likely to get deprecated > soon, due to lack of maintenance. > > R. I made very small testcase in main.cpp. Attachment contains Carbide Ñ++ project files too if needed. Console output taken from Carbide C++: Using built-in specs. COLLECT_GCC=arm-none-symbianelf-gcc Target: arm-none-symbianelf Configured with: ../gcc-11.2.0/./configure --target=arm-none-symbianelf --prefix=/usr/local/gcc-11.2.0 --without-headers --enable-languages=c,c+ +,lto --enable-poison-system-directories --enable-lto --with-newlib --enable-long-long --with-libiconv-prefix=/usr/local --with-dwarf2 --enable-interwork --enable-tls --enable-multilib --disable-hosted-libstdcxx --disable-libstdcxx-pch --disable-option-checking --disable-threads --disable-nls --disable-win32-registry --disable-libssp --disable-shared --enable-wchar_t --enable-extra-sgxxlite-multilibs --enable-c99 --with-static-standard-libraries Thread model: single Supported LTO compression algorithms: zlib gcc version 11.2.0 (GCC) COLLECT_GCC_OPTIONS='-g3' '-gdwarf-2' '-fexceptions' '-Wall' '-Wno-unknown-pragmas' '-mapcs-frame' '-mthumb-interwork' '-pipe' '-nostdinc' '-c' '-Wno-multichar' '-Wno-unused' '-Wformat=0' '-v' '-marm' '-mfloat-abi=soft' '-D' '__MARM_INTERWORK__' '-MD' '-D' '_DEBUG' '-D' '_UNICODE' '-D' '__GCCE__' '-D' '__SYMBIAN32__' '-D' '__S60_50__' '-D' '__S60_3X__' '-D' '__SERIES60_3X__' '-D' '__GCCE__' '-D' '__EPOC32__' '-D' '__MARM__' '-D' '__EABI__' '-D' '__MARM_ARMV5__' '-D' '__EXE__' '-D' '__SUPPORT_CPP_EXCEPTIONS__' '-D' '__MARM_ARMV5__' '-D' '__PRODUCT_INCLUDE__="/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant/Symbian_OS.hrh"' '-Wno-ctor-dtor-privacy' '-fpermissive' '-std=c++14' '-include' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/INCLUDE/GCCE/gcce.h' '-I' '/Symbian/Projects/unalighned_reloc_report/src' '-I' '/Symbian/Projects/unalighned_reloc_report/inc' '-I' '/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include' '-I' '/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant' '-I' 'd:/mingw/msys/1.0/local/gcc-11.2.0/lib/gcc/arm-none-symbianelf/11.2.0/include' '-o' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.o' '-mlibarch=armv5t' '-march=armv5t' '-dumpdir' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/' d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../libexec/gcc/arm-none-symbianelf/11.2.0/cc1plus.exe -quiet -nostdinc -v -I /Symbian/Projects/unalighned_reloc_report/src -I /Symbian/Projects/unalighned_reloc_report/inc -I /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include -I /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant -I d:/mingw/msys/1.0/local/gcc-11.2.0/lib/gcc/arm-none-symbianelf/11.2.0/include -iprefix d:\mingw\msys\1.0\local\gcc-11.2.0\bin \../lib/gcc/arm-none-symbianelf/11.2.0/ -MD /Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.d -MQ /Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.o -dD -D__USES_INITFINI__ -D __MARM_INTERWORK__ -D _DEBUG -D _UNICODE -D __GCCE__ -D __SYMBIAN32__ -D __S60_50__ -D __S60_3X__ -D __SERIES60_3X__ -D __GCCE__ -D __EPOC32__ -D __MARM__ -D __EABI__ -D __MARM_ARMV5__ -D __EXE__ -D __SUPPORT_CPP_EXCEPTIONS__ -D __MARM_ARMV5__ -D __PRODUCT_INCLUDE__="/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant/Symbian_OS.hrh" -include /Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/INCLUDE/GCCE/gcce.h /Symbian/Projects/unalighned_reloc_report/src/main.cpp -fno-builtin -fvisibility=hidden -fno-short-enums -fshort-wchar -quiet -dumpdir /Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/ -dumpbase main.cpp -dumpbase-ext .cpp -mapcs-frame -mthumb-interwork -marm -mfloat-abi=soft -mlibarch=armv5t -march=armv5t -g3 -gdwarf-2 -Wall -Wno-unknown-pragmas -Wno-multichar -Wno-unused -Wformat=0 -Wno-ctor-dtor-privacy -std=c++14 -version -fexceptions -fpermissive -fno-builtin -fvisibility=hidden -fno-short-enums -fshort-wchar -o - | d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../lib/gcc/arm-none-symbianelf/11.2.0/../../../../arm-none-symbianelf/bin/as.exe -march=armv5t -mapcs-frame -mfpu=vfp -mthumb-interwork -mfloat-abi=soft -meabi=5 -o /Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.o GNU C++14 (GCC) version 11.2.0 (arm-none-symbianelf) compiled by GNU C version 6.3.0, GMP version 6.1.0, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.16.1-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 #include "..." search starts here: #include <...> search starts here: /Symbian/Projects/unalighned_reloc_report/src /Symbian/Projects/unalighned_reloc_report/inc /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant d:/mingw/msys/1.0/local/gcc-11.2.0/lib/gcc/arm-none-symbianelf/11.2.0/include End of search list. GNU C++14 (GCC) version 11.2.0 (arm-none-symbianelf) compiled by GNU C version 6.3.0, GMP version 6.1.0, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.16.1-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 7bd26c26f5e3795062462f9efc696d4f COMPILER_PATH=d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../libexec/gcc/arm-none-symbianelf/11.2.0/;d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../libexec/gcc/;d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../lib/gcc/arm-none-symbianelf/11.2.0/../../../../arm-none-symbianelf/bin/ LIBRARY_PATH=d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../lib/gcc/arm-none-symbianelf/11.2.0/;d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../lib/gcc/;d:/mingw/msys/1.0/local/gcc-11.2.0/bin/../lib/gcc/arm-none-symbianelf/11.2.0/../../../../arm-none-symbianelf/lib/ COLLECT_GCC_OPTIONS='-g3' '-gdwarf-2' '-fexceptions' '-Wall' '-Wno-unknown-pragmas' '-mapcs-frame' '-mthumb-interwork' '-pipe' '-nostdinc' '-c' '-Wno-multichar' '-Wno-unused' '-Wformat=0' '-v' '-marm' '-mfloat-abi=soft' '-D' '__MARM_INTERWORK__' '-MD' '-D' '_DEBUG' '-D' '_UNICODE' '-D' '__GCCE__' '-D' '__SYMBIAN32__' '-D' '__S60_50__' '-D' '__S60_3X__' '-D' '__SERIES60_3X__' '-D' '__GCCE__' '-D' '__EPOC32__' '-D' '__MARM__' '-D' '__EABI__' '-D' '__MARM_ARMV5__' '-D' '__EXE__' '-D' '__SUPPORT_CPP_EXCEPTIONS__' '-D' '__MARM_ARMV5__' '-D' '__PRODUCT_INCLUDE__="/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant/Symbian_OS.hrh"' '-Wno-ctor-dtor-privacy' '-fpermissive' '-std=c++14' '-include' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/INCLUDE/GCCE/gcce.h' '-I' '/Symbian/Projects/unalighned_reloc_report/src' '-I' '/Symbian/Projects/unalighned_reloc_report/inc' '-I' '/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include' '-I' '/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant' '-I' 'd:/mingw/msys/1.0/local/gcc-11.2.0/lib/gcc/arm-none-symbianelf/11.2.0/include' '-o' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.o' '-mlibarch=armv5t' '-march=armv5t' '-dumpdir' '/Symbian/S60_5th_Edition_SDK_v1.0/EPOC32/BUILD/Symbian/Projects/unalighned_reloc_report/epoc/UNALIGHNED_RELOC_REPORT/GCCE/udeb/main.' ‘files copied: 1. line 437 elf2e32 : Error: E1066: Image failed validation make[1]: *** [\Symbian\S60_5th_Edition_SDK_v1.0\epoc32 \release\gcce\udeb\unalighned_reloc_report.exe] Error 1 make: *** [TARGETUNALIGHNED_RELOC_REPORT] Error 2 ----- Ô¸äàð Ñòðûæí¸¢(Fiodar Stryzhniou) --Multipart=_Wed__29_Dec_2021_14_04_49_+0300_=3e=KD89xPamm1As Content-Type: application/zip; name="unalighned_reloc_report.zip" Content-Disposition: attachment; filename="unalighned_reloc_report.zip" Content-Transfer-Encoding: base64 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 xqPZRD0btumMKAOkYYyfb8MwG5+Je4Guorq6OqjN++hWb0jJBr/uLsVFt0IPwVg/rLvHh9vzq27T n52qSOEFId9gArIxs5rZE+X1iP3ktbPDs0fzROgC8BkDZSXLa5VBGEf0uVeyVYVdPFMF8gvaT9aZ +4hQUINbbtXeVKZNZjfhw6vVAjTtrUEBJouqRlq47W53PTNzomagaZhKlNSw/EwU/G0oM4dUbfc8 EVb1AvpAg0BwNqY5CgTiYn7k6fX+R8PfHUfvfPfDietDciV//dgPUEsDBBQAAAAAAJtgnVMAAAAA AAAAAAAAAAAdAAAAdW5hbGlnaG5lZF9yZWxvY19yZXBvcnQvZGF0YS9QSwMEFAAAAAAA4WGdUwAA AAAAAAAAAAAAAB0AAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9lcG9jL1BLAwQUAAAACADoYJ1T /KfRbvUAAABRAQAAJQAAAHVuYWxpZ2huZWRfcmVsb2NfcmVwb3J0L2Vwb2MvQUJMRC5CQVRtUMFq wkAUvAfyD4OwFzESa61twbbGRCqkJtT0FpCYPJOt665stoH+fROlPRQv85jHMDPMS7B4jRAtl7Zl W+/BGzxRHLMDOSVJ0pmhArvM5BX2XBAczL3QH3rz5CLu9+FHWEcJAn+VtLRzOZEWcDYXaRyil26+ jzueyTTW6pNyU6dfMhO8rCQVW01C5S2elDZpi3ma9sBGYDdgY7BbsAnYHdgU7B7swbb4HqS10oIa ErPZCKUyCouK8kPcJtvWmQey6Lo8/v1/ezV4Wn+EV2worxRWNTrxAA3pmiuJydB1x1t3CqUh2jn0 AFzWJhOCiud/Wef7A1BLAwQUAAAACACbYJ1TKrQyY9MAAACvAQAAJAAAAHVuYWxpZ2huZWRfcmVs b2NfcmVwb3J0L2Vwb2MvYmxkLmluZq2QMWvDMBCFZwv0H27OkOyBDqaJocVuTeLOwbbk6EDSqWep pf31vRQ6dssbbnjfO95xu41WD3eUVvAyBltVe5i82WJcxKlLdsQVwB4aa4jhnBm/XUQqQh8pfTFe XYZbIJXJ4wyGwohR6MGuM2PKSFHo4HCFBb2FxPSBxq6QnQWpIQ7jb4jte0G2BsSCqaA3GK+3lFaV 6NORbNMCI5Q4eumN1lzYepplJuK8vfdHNjuttOpPz5e+rYfm9dSdtTocm/qtHf5I1/XNU3sU8N9V ISStfgBQSwMEFAAAAAgA3WGdU1undddgAQAAlgIAADgAAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9y dC9lcG9jL3VuYWxpZ2huZWRfcmVsb2NfcmVwb3J0Lm1tcK1SXWuDMBR9VvA/3OeCtuseVgp7SNV1 gv3AD4pQEBvjzFATYizdfv2u7cae+tYQws09555zucl0YpmvD1yWCduiZYaxhKErGv5Rd6zMFWsE xVMKpZ22lcgig66FMgCW8MZKoSDWin/XHRcDoq6QXwqLNYwEOZwaTqEUbcE7RD3WU8Wl5qJDNKl5 D7h1zUAq8cmohl4yyitOiyun4g2DCj3utfToGUymlmmZCYnWfmIYcNeXXdgfLcn2PjKvmTTwDCyb wezC5uXLYvFUjXpp7EfB1g1TD5mOc+Qdtcw4ixN/85vGaR1RmT7PR7AZShRDyi6NXH9Pknc0wLpe 0TEdBquIRBkasaFnymn4aUzv9kmw26L/2nV9sA+dsNuh0ZzWhbpdhw755S3GqbaFBvsMdl+cma1Z K/tRhoQHksX5Kg1CLydxTqKNZXr+Kl2vySr08xTj3TbM/huE8XUdKvF3/ABQSwMEFAAAAAAAm2Cd UwAAAAAAAAAAAAAAABwAAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9pbmMvUEsDBBQAAAAIAJtg nVPRXulZ9gAAAAgCAAA1AAAAdW5hbGlnaG5lZF9yZWxvY19yZXBvcnQvaW5jL3VuYWxpZ2huZWRf cmVsb2NfcmVwb3J0LmitkD1vwjAQhudEyn84qUvLgCXY6IeE8gGR0oAona0QX2pL4Rw5tlT663tA u7YLN9xw73PvfYhJEsPzDYPt6uaIUbSAQE1vPjShkg5723IerPNTzcwyeG1dBLCAApV18Oad+dJk bGA1tcPJcauHMzCEQ29aUPbYGGI1w7F1ZvDGEqv5J4LGRqGDzvR4+3MmIomT+M50pLADKd/rZVWu 1nWeyV1ebVLO281uL9dSMsaMIfwbO/sJAVBS2weFUPDe43XIT+UJ57NDM+JUv/zCRaD2cvLWWW/9 abi2rKosL2QK+5I85PPZK//o/uHx4oakTAcgxP/rfANQSwMEFAAAAAAAm2CdUwAAAAAAAAAAAAAA ABwAAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9zaXMvUEsDBBQAAAAIAJtgnVPaqqd7nQEAAPEC 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 Y19yZXBvcnQvZXBvYy8KACAAAAAAAAEAGAA0HbWOlPzXAeikRnyi/NcBQJ3+I5P81wFQSwECPwAU AAAACADoYJ1T/KfRbvUAAABRAQAAJQAkAAAAAAAAACAAAAD4CwAAdW5hbGlnaG5lZF9yZWxvY19y ZXBvcnQvZXBvYy9BQkxELkJBVAoAIAAAAAAAAQAYAOwtd3iT/NcB7C13eJP81wHsLXd4k/zXAVBL AQI/ABQAAAAIAJtgnVMqtDJj0wAAAK8BAAAkACQAAAAAAAAAIAAAADANAAB1bmFsaWdobmVkX3Jl bG9jX3JlcG9ydC9lcG9jL2JsZC5pbmYKACAAAAAAAAEAGACoJggkk/zXAThpcniT/NcBqCYIJJP8 1wFQSwECPwAUAAAACADdYZ1TW6d112ABAACWAgAAOAAkAAAAAAAAACAAAABFDgAAdW5hbGlnaG5l ZF9yZWxvY19yZXBvcnQvZXBvYy91bmFsaWdobmVkX3JlbG9jX3JlcG9ydC5tbXAKACAAAAAAAAEA GADU6HiMlPzXAXipgI6U/NcBqCYIJJP81wFQSwECPwAUAAAAAACbYJ1TAAAAAAAAAAAAAAAAHAAk AAAAAAAAABAAAAD7DwAAdW5hbGlnaG5lZF9yZWxvY19yZXBvcnQvaW5jLwoAIAAAAAAAAQAYAKgm CCST/NcBqCYIJJP81wFAnf4jk/zXAVBLAQI/ABQAAAAIAJtgnVPRXulZ9gAAAAgCAAA1ACQAAAAA AAAAIAAAADUQAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9pbmMvdW5hbGlnaG5lZF9yZWxvY19y ZXBvcnQuaAoAIAAAAAAAAQAYAKgmCCST/NcBXBg+JZP81wGoJggkk/zXAVBLAQI/ABQAAAAAAJtg nVMAAAAAAAAAAAAAAAAcACQAAAAAAAAAEAAAAH4RAAB1bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9z aXMvCgAgAAAAAAABABgAqCYIJJP81wGoJggkk/zXAUCd/iOT/NcBUEsBAj8AFAAAAAgAm2CdU9qq p3udAQAA8QIAADwAJAAAAAAAAAAgAAAAuBEAAHVuYWxpZ2huZWRfcmVsb2NfcmVwb3J0L3Npcy91 bmFsaWdobmVkX3JlbG9jX3JlcG9ydF9FS0EyLnBrZwoAIAAAAAAAAQAYAKgmCCST/NcBqCYIJJP8 1wGoJggkk/zXAVBLAQI/ABQAAAAAANRunVMAAAAAAAAAAAAAAAAcACQAAAAAAAAAEAAAAK8TAAB1 bmFsaWdobmVkX3JlbG9jX3JlcG9ydC9zcmMvCgAgAAAAAAABABgAtiafeaL81wG2Jp95ovzXAUCd /iOT/NcBUEsBAj8AFAAAAAgAvWCdU+XvxsfKAgAAYQYAACQAJAAAAAAAAAAgAAAA6RMAAHVuYWxp Z2huZWRfcmVsb2NfcmVwb3J0L3NyYy9tYWluLmNwcAoAIAAAAAAAAQAYAFhKs0qT/NcBmDo0A6L8 1wGoJggkk/zXAVBLBQYAAAAADgAOAHkGAAD1FgAAAAA= --Multipart=_Wed__29_Dec_2021_14_04_49_+0300_=3e=KD89xPamm1As--