From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 04 Jan 2024 13:51:33 +0100 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rLNCA-003XOc-0S for lore@lore.pengutronix.de; Thu, 04 Jan 2024 13:51:33 +0100 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1rLNC9-0004Ki-GO; Thu, 04 Jan 2024 13:51:33 +0100 Received: from enterprise02.smtp.diehl.com ([193.201.238.220]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rLNBp-0004Js-5R for ptxdist@pengutronix.de; Thu, 04 Jan 2024 13:51:13 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=diehl.com; i=@diehl.com; q=dns/txt; s=default; t=1704372673; x=1735908673; h=from:to:subject:message-id:mime-version:date; bh=odqMDjQcfd/Pzkw1Mg84iKD0QqAHZyUHzNjKzW/yKJA=; b=MY+iHX/nFpD0EQmomlnsfsDajCl5RjCfQGVMGm4/2zstfC1v3BQdFqD3 kaHeb4LWSx0miPiSLCS9tqwZIvzt33ETQm5iR1C3z2hzVCIIhct97ITHw FpX/nqNtdOIi+dUG1jRsP0f6GhrCZVQr+UoWtSpfmmOnBwpZTJgutkkAm 4MqfFKDHaet2gH9o9YVGQdXgwxtYYgObHr9Naz69Q74sPmj2B6GvFIl00 ULRX3qBxPxDdA8/EnANgvLx9boApUe8JnkhFIi3OHFDMreslcId8mmIhx 0BuQo1vaOQMRfXKFyr1IqN0KW/lw3ssjmViMH6o2jsth3+sxCl8M5G+om g==; X-CSE-ConnectionGUID: xq8wmLtxSAy3CPjOJQkp2g== X-CSE-MsgGUID: N5YNxRhMQBisUxR7GEl/Qg== X-ThreatScanner-Verdict: Negative IronPort-Data: A9a23:6BP/3qAXxQNamxVW/0njw5YqxClBgxIJ4kV8jC+edVH5lGZ7hGRDl z1BRiGbeqTZIWXoOIAhNtzysAhTiSLnvpU+EV85s2kyVBqmwuKfW4XFJxn8bn/KIMSZHBo65 JpBO4Ofd8tkFXbSq0zwYuC5/HJy3/uGS+XwArbIYngpSF47QnYo1Rszx+c12N816TTV721hn PuryyGIEAT0g24c3hsow6KftAs9+7PxtSID+FA/aPBP+lTZkj4eFpZYOaL0L0z+BIJOGrbSe wq4913Kw4+j10xrUruYurbnblVYBfnRMBmVzHZXVqimxBNFo2s5yKJ8KPlZaXBRzT6Tm4gsi 5QV3aBcMjzFTZAg4sxGFUEwLgl+IbFeqviAPmeg98CSwk3CNXDrxrJ2D0BxZeUkFp1M7RJzG YYwc3ZVBi2+ut9a4I5Xa8E1289zJ8CzbdtG4io5x27QB/t6S82SG/6WtY9T0jk8iJwXTafVa vRCZGs0ZnwsQfHt1nQ/Vchixrf43hETVxUC9Tp5cIJuuzC7IDRZieWraJyNPIXSGa25p27Az kre5WP1HxoGA9KWzDuB4xqEi/TG9c/BcNt6+IaQqLgy3DV/+kRJUEdKDQLj/aHg4qKDc4k3x 3I8q3NGQZcapBTDounVB3WQvHOCtxgAbNtce8VSBNalk/e8D66xXwDofxYZADAUnJZeqQ8Cj zdlq+jU6QlH69V5f54/GoC89lteMQBNRYMLiLRtoQEtu7EPq6lr5v7Do0oK/AdYQbQZFBmpq w1mohTSiJ0DlJ4U0oGn7WvukmmHnprubDc2/l/YCzfNAgNRPOZJZqSk7ErQ4ukYdsCSSUOZ+ nQFlsiaqusJCPlhlgTUGKNdRvfwt7Dca2e0bV1HRvHN8xyh9niiZsZX+y1zPkNgNMosdT7kY EuVsgRUjHNWFCTzNvEuON7pYygs5Y69JPL1bPDxV/BPeaVhTlCo0SUpXEHFiggBl2Bpy8nTI 6yzadq8AXcBFYx/wTy5WvsH1rkq1mYyyAvuqYvTwxG12rWBPCTTRbYIMF/IZecj9MtovTnoz jqWDOPSoz03bQE0SnO/HVI7RbzSEUUGOA== IronPort-HdrOrdr: A9a23:TiyiTq7M7MP1QII6gwPXwOzXdLJyesId70hD6qkoc3xom7+j5q OTdZUgpHjJYVkqNk3I9errBEDiewK7yXcW2+gs1N6ZNWGMhILCFu1fBP7ZrAEIdReSygcX79 YDT0E3MqyUMbGst7eC3CCoV9I73p2F/KSkweDT0W1pQRx2Z7oI1XYANu+0KDwTeDV7 X-Talos-CUID: =?us-ascii?q?9a23=3A6Fw1kGl9lz0bDR09OUKKxgbbjnvXOW3EnGjVB1O?= =?us-ascii?q?oMk94E5atS3iywaB8ycU7zg=3D=3D?= X-Talos-MUID: =?us-ascii?q?9a23=3A7cKVxg6N7kSzBC928/WDzFSmxoxOvpWIGHoNtKw?= =?us-ascii?q?sutK5JRYvFBqZyw24F9o=3D?= X-IronPort-AV: E=Sophos;i="6.04,330,1695679200"; d="p7s'?scan'208";a="71361340" From: Denis OSTERLAND-HEIM To: "ptxdist@pengutronix.de" Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="----FA99F1CD21F5B1F023F5CD8985907713" Date: Thu, 4 Jan 2024 13:51:12 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-103.2 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_WELCOMELIST,USER_IN_WHITELIST autolearn=ham autolearn_force=no version=3.4.2 Subject: Re: [ptxdist] [EXT] Re: [PATCH] libfdt: New package. X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false This is an S/MIME signed message ------FA99F1CD21F5B1F023F5CD8985907713 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, great work. There is also rules/host-dtc.make which maybe can be simplified. -----Original Message----- From: ptxdist On Behalf Of Ladislav Michl Sent: Thursday, January 4, 2024 12:16 PM To: ptxdist@pengutronix.de Subject: [EXT] Re: [ptxdist] [PATCH] libfdt: New package. [EXTERNAL EMAIL] Hi Christian! On Thu, Jan 04, 2024 at 10:26:42AM +0100, Christian Melki wrote: > Hi Ladis, > > On 1/4/24 10:12 AM, Ladislav Michl wrote: > > Hi, > > > > On Wed, Jan 03, 2024 at 08:23:52PM +0100, Christian Melki wrote: > > > Add the device-tree-compiler source as libfdt. > > > I guess the package could have been named dtc as a target variant > > > with libfdt, but I don't know of any uses of the dtc on target > > > environments. > > > > Appended my version created about two years ago... Those DTC tools > > were used to patch devicetree during on field board upgrade when > > moving from ancient kernel. Flash repartioning was part of that > > upgrade as well as use of RAUC. Basically all userspace was moved to > > ramdisk, detached from flash, new image was prepared and flashed at > > once - single point of failure, board was dead when this failed, but > > as far as I know, it never happened. So yes, dtc on target > > environment is very usefull :) > > > > Oh. Didn't know you already had a version. > > I would probably have written my own tool using libfdt, integrated > into something else. :) But that isn't saying there is no need for > anyone. > > > > So the only use I can think of is libfdt. I think the name is more > > > accurate towards usage, but it isn't as symmetrical as the typical > > > host-* and normal variants. > > > > In case you reconsider, I'll merge your and my variant (I didn't > > bother with licenses as it was part of local BSP). > > I'll gladly reconsider. It's perfectly fine if there are usecases. > Please go ahead and do a merge if you like. > But keep binaries as optional. I prefer it that way. > > Either way, libfdt needs to happen on target because of qemu afaict. Yes. I expect qemu select DTC once someone (hint, hint) updates qemu :) Here's updated version, please give it a try. -- >8 -- Subject: [PATCH] dtc: new package From: Ladislav Michl Please note this package is not as symmetrical as the typical host-* and normal variants. Here the latest version is usually needed. This work is prepping for qemu 8.2.0+, as it requires libfdt as a separate library. It has stopped providing one internally. Signed-off-by: Christian Melki Signed-off-by: Ladislav Michl --- rules/dtc.in | 36 +++++++++++++++++++++++ rules/dtc.make | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 rules/dtc.in create mode 100644 rules/dtc.make diff --git a/rules/dtc.in b/rules/dtc.in new file mode 100644 index 000000000..2edb6f925 --- /dev/null +++ b/rules/dtc.in @@ -0,0 +1,36 @@ +## SECTION=system_libraries +menuconfig DTC + tristate + prompt "dtc " + help + Device Tree Compiler (dtc) toolchain. While dtc itself is + occasionally needed for device tree manipulaton on the + target, libfdt may be required. + +if DTC + +config DTC_DTC + bool + prompt "dtc" + +config DTC_DTDIFF + bool + prompt "dtdiff" + +config DTC_FDTDUMP + bool + prompt "fdtdump" + +config DTC_FDTGET + bool + prompt "fdtget" + +config DTC_FDTOVERLAY + bool + prompt "fdtoverlay" + +config DTC_FDTPUT + bool + prompt "fdtput" + +endif diff --git a/rules/dtc.make b/rules/dtc.make new file mode 100644 index 000000000..d0e6a7617 --- /dev/null +++ b/rules/dtc.make @@ -0,0 +1,80 @@ +# -*-makefile-*- +# +# Copyright (C) 2022 Ladislav Michl # Copyright +(C) 2023 Christian Melki # # For further +information about the PTXdist project and license conditions # see the +README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_DTC) += dtc + +# +# Paths and names +# +DTC_VERSION := 1.7.0 +DTC_MD5 := 58f007905843f6ed6cecf820eeada0ef +DTC := dtc-v$(DTC_VERSION) +DTC_SUFFIX := tar.gz +DTC_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(DTC).$(DTC_SUFFI X) +DTC_SOURCE := $(SRCDIR)/$(DTC).$(DTC_SUFFIX) +DTC_DIR := $(BUILDDIR)/$(DTC) +DTC_LICENSE := BSD-2-Clause OR GPL-2.0 +DTC_LICENSE_FILES := \ + file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e \ + file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927 + +# +----------------------------------------------------------------------- +----- +# Prepare +# +----------------------------------------------------------------------- +----- + +DTC_CONF_TOOL := NO +DTC_MAKE_OPT := \ + PREFIX=/usr \ + NO_PYTHON=1 \ + NO_VALGRIND=1 \ + NO_YAML=1 \ + $(CROSS_ENV_CC) + +DTC_INSTALL_OPT := \ + $(DTC_MAKE_OPT) \ + install-bin \ + install-includes \ + install-lib + +# +----------------------------------------------------------------------- +----- +# Target-Install +# +----------------------------------------------------------------------- +----- + +DTC_BIN-y := DTC_BIN- is not defined AFAIK it is okay to append to a not yet defined symbol I would suggest to either define both or none. Regards Denis +DTC_BIN-$(PTXCONF_DTC_DTC) += dtc +DTC_BIN-$(PTXCONF_DTC_DTDIFF) += dtdiff +DTC_BIN-$(PTXCONF_DTC_FDTDUMP) += fdtdump +DTC_BIN-$(PTXCONF_DTC_FDTGET) += fdtget +DTC_BIN-$(PTXCONF_DTC_FDTOVERLAY) += fdtoverlay +DTC_BIN-$(PTXCONF_DTC_FDTPUT) += fdtput + +$(STATEDIR)/dtc.targetinstall: + @$(call targetinfo) + + @$(call install_init, dtc) + @$(call install_fixup, dtc,PRIORITY,optional) + @$(call install_fixup, dtc,SECTION,base) + @$(call install_fixup, dtc,AUTHOR,"Ladislav Michl ") + @$(call install_fixup, dtc,DESCRIPTION,missing) + + @$(call install_lib, dtc, 0, 0, 0644, libfdt-$(DTC_VERSION)) + + @$(foreach tool, $(DTC_BIN-y), \ + $(call install_copy, dtc, 0, 0, 0755, -, \ + /usr/bin/$(tool));) + + @$(call install_finish, dtc) + + @$(call touch) + +# vim: syntax=make -- 2.39.2 ------FA99F1CD21F5B1F023F5CD8985907713 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIIPQAYJKoZIhvcNAQcCoIIPMTCCDy0CAQExDzANBglghkgBZQMEAgEFADALBgkq hkiG9w0BBwGgggxWMIIGUTCCBDmgAwIBAgICMAAwDQYJKoZIhvcNAQELBQAwgaMx ITAfBgNVBAMMGERpZWhsIEdyb3VwIE1haWwgUm9vdCBDQTELMAkGA1UEBhMCREUx EjAQBgNVBAcMCU51ZXJuYmVyZzEUMBIGA1UECgwLRGllaGwgR3JvdXAxFDASBgNV BAsMC0RpZWhsIEdyb3VwMQ8wDQYDVQQIDAZCYXllcm4xIDAeBgkqhkiG9w0BCQEW EXg1MDktY2FAZGllaGwuY29tMB4XDTE4MDUyOTEyMzIzNVoXDTI4MDUyNjEyMzIz NVowgZQxCzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCYXllcm4xFDASBgNVBAoMC0Rp ZWhsIEdyb3VwMRswGQYDVQQLDBJEaWVobCBNZXRlcmluZyBUS0gxHzAdBgNVBAMM FkRpZWhsIE1ldGVyaW5nIE1haWwgQ0ExIDAeBgkqhkiG9w0BCQEWEXg1MDktY2FA ZGllaGwuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtISPrKPL Zjjh//2n9b+GXgrhijJV2knQVC0+/FS3zGl4p2fboB+Vr4YHz1uilEvhsS1oG4FV f1u0dqdmLVxDHBPMO2K1NKKOJN/6LDDfyiZGNqDOJke6FzrmDyPXXTDtgzWZfdnD esx63XSxprre30oJ3BxDFS+/8UpuI628SPc1N4125rHeUXG4scKFSjqRPcIOAQ2X veGXU2dYHzq7B02NA8tssmtJNwXjyvMjOw6HGZ8SB87TrFQm6drEtM7QhI/mfpGe nTZ4nc84n0yKuMveav8IOspYbkOXzi4JapiOUpmccNLZdIiMg5WJQ0Xt9NSp5yD5 CYKideGrWgX2wNEBpalgjZoPPQDImcWEJx88/yYZ4FwtRD3VueFqpBr4z/bxwVDr N2a/sEqnocY9Tm2EQyHFHDCJ9JyYEXB8W0LTFcUAx+uHijwPk/oIB5EeH8UygXlX qUqII+BUZ+q5m5sIc4eXQ10UpUEjG/ptIyO1Ee/E0kPOWzHp07pPgXCZohZb3y41 Ha2pO6rXOsOmPBK2r2++fLWz3NFyfEJCmn6FcBNi003HUEVCup1D9/9yaPHPSieN 27sjQcQ96GbOitC99p3xMnSlg4N11lGeuTXCZjIGXdZL5/dThQaxneVA+hr2X+i1 KmqnesMaSBEuBEBDmbDbakEgJFVWtVeXuk8CAwEAAaOBmzCBmDASBgNVHRMBAf8E CDAGAQH/AgEAMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUn8t6NGPzWsF+oZYXxmfn p4Ok7rIwHwYDVR0jBBgwFoAUZrrYQMMD50v/OCDMgDN7y/GT2P8wNQYDVR0fBC4w LDAqoCigJoYkaHR0cDovL2tleXMuZGllaGwuY29tL2NybC90ay1oX24uY3JsMA0G CSqGSIb3DQEBCwUAA4ICAQAl6hO6b6+GseZi3EAU+zPVhxNZP5Y+YsBnjf13jCGw nUVvPz6giwXiCd9KIC4eCqqrJLTHwZe8c/9hSk5CCd6A5XAd3YudrPDvmIwms5Ex OREMQkygZO6/qxfXO6IhfUO4HvYQtQexzHOLuxG/KdycVwWapA4acFzBurxFQ3aG jvPRgvWxe2Mt3K9wLrEhvGrDmS8yg4bYNyBZGgax6LRhfW4/ShInVUa0koG2Sj+H hKpppvqDK4FNgR2dKeCPoo28P9a+K9N3wkLKx4zxaxHegij0DsJOBAVbhk+vDWDO gedjtT09c9bsykaXFzykyQeQz7cwrTQ1gDacdcDgywMDQzZKim9O3JpyzvXnD7mb CvclM3xp9w6jIJbeaQE7HDlA9YIL/bSRIQq8mJcXArUevLK2MX/Mb+5m3UMU+zXc ZqmaneeZeR4bOWrmmhK6bMuce6H+i2YB1vG3BAcSfKQUzZ1m6aKSW1FvjI3SZXQD FzRzBwC5ql7i2ugtfOLNYjOO/fvAxNppIZb3IyWN1KBAI7YgS4nx0us/NIlWpTMW 91WeUtNBCp2sgi3VTi/TUel3RZ9x3tggMUhrksGkFXz2NUL85AdPV6BqJXXXHggd 121rnduE9ocMt0MFLuDPkMaHqKNzBAcKTcmFM8KYMJ5Z7NBqGtTAgHNVmEnU8gu3 czCCBf0wggPloAMCAQICAgtcMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJE RTEPMA0GA1UECAwGQmF5ZXJuMRQwEgYDVQQKDAtEaWVobCBHcm91cDEbMBkGA1UE CwwSRGllaGwgTWV0ZXJpbmcgVEtIMR8wHQYDVQQDDBZEaWVobCBNZXRlcmluZyBN YWlsIENBMSAwHgYJKoZIhvcNAQkBFhF4NTA5LWNhQGRpZWhsLmNvbTAeFw0yNDAx MDIwOTE5MzlaFw0yNjAxMDIwOTE5MzlaMIG8MSIwIAYDVQQDDBlkZW5pcy5vc3Rl cmxhbmRAZGllaGwuY29tMSgwJgYJKoZIhvcNAQkBFhlkZW5pcy5vc3RlcmxhbmRA ZGllaGwuY29tMQswCQYDVQQGEwJERTEPMA0GA1UECAwGQmF5ZXJuMRwwGgYDVQQK DBNEaWVobCBNZXRlcmluZyBUSy1IMRwwGgYDVQQLDBNEaWVobCBNZXRlcmluZyBU Sy1IMRIwEAYDVQQHDAlOdWVybmJlcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQDC4CfZJns8lrNXSkis30SmXgEPwIED4unjF8EoHzBRk5cQphMwuxVY uFrZmkB8+FJ7kNnazQ5ddAH+7uh/w7vxEbch92iEpJxYRT6z9U7Mgw0sqGjzWQjd sVzCSrWJrOdrHXc65BnAPOpjNDNe1dR8J9Z4a7OZU5NnQqJMT314j2gfGawGDakJ Vph7S6v4AVmty1Fi4iRbaIamu8KJFrHQb5E1UVD5drrxW6TS0z/3YkrMQ6qA1fBB Y271mRVq/1ByvJMgPJu7LtIyuGwGJw44RxF0JPLlqRWpsIa+z2cI48dkvwb8k0T1 rNSIj9urOmUEJGF5O8LioUy0vwmxeWF7AgMBAAGjggEtMIIBKTAfBgNVHSMEGDAW gBSfy3o0Y/NawX6hlhfGZ+eng6TusjAJBgNVHRIEAjAAMCQGA1UdEQQdMBuBGWRl bmlzLm9zdGVybGFuZEBkaWVobC5jb20wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDov L2tleXMuZGllaGwuY29tL2NybC90ay1oX24uY3JsMDUGCCsGAQUFBwEBBCkwJzAl BggrBgEFBQcwAoYZaHR0cDovL3d3dy5kaWVobC5jb20vcGtpLzAJBgNVHRMEAjAA MB0GA1UdDgQWBBQK9y4jVYoCDsL7lhhJKjEP5wv1nTALBgNVHQ8EBAMCBaAwHQYD VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMBEGCWCGSAGG+EIBAQQEAwIFoDAN BgkqhkiG9w0BAQsFAAOCAgEAB27J8TZvm6g0rtQpv4kqYwzkXOkCt27WHHWzl/JZ knFwWH4mvlRSrQtKkx8cPb5xqqx7k4qXC7TAef4W5YmnpWDtw7YHQAygAsCV1+i8 uBhdnBVRYkLi0Brsqb/KaDVCFDAYn82kr8OlDaVl5GazIF5rTTUFVT7QEUewf5e7 Ej4tkepIMP8DW0mM9VRdiSd+DFQQQsQR91nJZS+Gd0jT2tW6SVtZEGnsdgKi9VOw +/u7TPynQA3m70zel9t0RySfc5bfZGqEBK/nqU2g5n/qaHKT9cMM8vTAJOmzMv4W p7j6RF851h+6c4kH0UsUR9LdbXsKS0KsKTmjPbmbuMAWSEafskq5lJdhIybBnGcp FwOkXw6yLHhvmBQ27hVolbrAgLprlLBm8qLq0G3dPHlLwgnNlD6RAcjaVLOcqH3Q HWHbKlVg310S75cll1rM+GAudWdsHWxOUbK7R0lwJf/E+FAXciAsExWzCQarpSFI AYJjvnsYTiSWas6b5L/rKtyeWIz5wJ3ovxFaMglCtGNGh3sqKwVgb0PeGJ/hfXkV Z3i06A/GFOMDvvZ4kI2OL2wwUftkvi8ID5g2nbX/WQh9y6zhlXtiOlA1IplU+PU3 OHrFL4SBW0X7j1l+9Jl9kGy/ukAr+9nWZ55nUoV/L9C1GLrAO5KF/fDpO2b7lidQ mWUxggKuMIICqgIBATCBmzCBlDELMAkGA1UEBhMCREUxDzANBgNVBAgMBkJheWVy bjEUMBIGA1UECgwLRGllaGwgR3JvdXAxGzAZBgNVBAsMEkRpZWhsIE1ldGVyaW5n IFRLSDEfMB0GA1UEAwwWRGllaGwgTWV0ZXJpbmcgTWFpbCBDQTEgMB4GCSqGSIb3 DQEJARYReDUwOS1jYUBkaWVobC5jb20CAgtcMA0GCWCGSAFlAwQCAQUAoIHkMBgG CSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI0MDEwNDEy NTExMlowLwYJKoZIhvcNAQkEMSIEIEiV1lX3S6M2UZQjRqLWTQioCYF8qAihEP2A 7x+ep98wMHkGCSqGSIb3DQEJDzFsMGowCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQB FjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqG SIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUA BIIBAFD6+YThVtfaN6E/wbWYcOnSrNbzmNKRXjV0e8Tqqs5E/IJOOM4pJAOomHkU IFUen0GmIt/dNlMXI6dN8cuhH2OaWrCUOp/38IC3wXXz95XyNE56vRAQzO4g86RF Gx9tRjVjB6zJ1LO2m6b6IE0kH62m0EOdwRtOJDokIYBvScUML8i7w0dvzlTOE8iW 6YVXtIe3T4k8EhKhm188oedi0twEYDt0y8inEfqtV3Ozu6g+uHbWB4RrHkRHBUGp TLC+GXcyfjDDThJhFeSzABbrpLKePSAE/5ldw5UiHSSm9I34SjkKqyG2bRW1XZps g2Jr4SNMa4PFEClgZStuJDxu37s= ------FA99F1CD21F5B1F023F5CD8985907713--