Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7736-004yKV-2P for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 07:28:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7735-001sUW-0J for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 07:28:35 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w7734-001sUN-1v for pgsql-hackers@lists.postgresql.org; Mon, 30 Mar 2026 07:28:35 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w7732-00000001xJT-00b0 for pgsql-hackers@postgresql.org; Mon, 30 Mar 2026 07:28:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1774855710; bh=CX/p+pAhJYKIdqTTi5guCh19WPopnUizJvrW2sr1lU8=; h=Message-ID:Date:User-Agent:To:From:Subject:From; b=EyaLsFRtIYbLuxfAanhGo+4VT2o7mjY7O/E1FvmUaQHyU00gqidNzhdGxWBBY+sMJ 1ZLBGNv1FPGBLN8fSjS9xxdoigRRZ6b6fkDrsx+U/HUlT1mnD0vwOrEFjZDaFIM8Pp LJuDrY3WHufmPTy8Uj9jS2w4aM6PD+LL+llXjAV9NbDyxMJQgj+97z5CJXHGZhUTPD BfIk+K/EyG9Nd4aZiGGuQuDMCal7dWPXBgYfR0NfH7S2A0p8Z1dS/UV2nGOdvGA4zF /lwSpX8h2iVzE+oIE/zVTfom6Ac/sNLEzIKXn+nv7Y2NSsg/wHhpiBc/+tnVOnrj11 VhgIbddnRE/Zw== Received: from [172.30.48.30] (debian11-template.l.postgrespro.ru [192.168.2.254]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.melnikov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id C55085FFE3 for ; Mon, 30 Mar 2026 10:28:30 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------qUp134d0vHjUjaQwCtR5rTpu" Message-ID: Date: Mon, 30 Mar 2026 10:28:30 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: pgsql-hackers From: "Anton A. Melnikov" Subject: .bc files build dependency issues. X-KSMG-AntiPhishing: NotDetected, bases: 2026/03/30 06:50:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2026/03/30 05:24:00 #28352470 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------qUp134d0vHjUjaQwCtR5rTpu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! While the original discussion was about a specific commit ecaf7c5df and related fix in 16492df7 for 16+ and its effects [1], i would like to point out that a similar behavior can be observed on earlier stable branches (REL_14/15_STABLE) as well. Using a pre-built source tree and the following reproduction that is slightly modified version from [2] which suggests that this is a known pattern for exposing the issue: cd src/backend/parser rm -rf .deps/ gram.c scan.c *.o *.bc gram.h make parser.bc result in: $ make parser.bc /usr/lib/llvm-16/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-deprecated-non-prototype -O2 -I. -I. -I../../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/local/include -flto=thin -emit-llvm -c -o parser.bc parser.c In file included from parser.c:25: ../../../src/include/parser/gramparse.h:29:10: fatal error: 'parser/gram.h' file not found #include "parser/gram.h" ^~~~~~~~~~~~~~~ 1 error generated. make: *** [../../../src/Makefile.global:1084: parser.bc] Error 1 Since this can be reproduced reliably on REL_14/15, it seems worth asking whether fix for .bc files (or something equivalent) should also be backpatched to lower branches, instead of only applying to newer ones. Also as a possible improvement perhaps make the fix less strictly? I.e. replace each .bc file's dependency on all .o files with a more weak dependency just on all source .c files. Namely use: $(patsubst %.o,%.bc, $(OBJS)): $(patsubst %.o,%.c, $(OBJS)) instead of: $(patsubst %.o,%.bc, $(OBJS)): $(OBJS) This might still preserve correct build ordering while reducing unnecessary coupling between targets. As a result make will run faster during parallel builds since it won't wait for absolutely all the object files to be created. For example, rebuilding parser.bc would then require only a single compiler call in src/backend/parser instead of many. Please, see the attached bc-depends-on-c.txt and bc-depends-on-o.txt for details. Best regards, -- Anton A. Melnikov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company [1] https://www.postgresql.org/message-id/flat/E1oYJbR-000FbR-LP%40gemulon.postgresql.org [2] https://www.postgresql.org/message-id/20220915045007.zvlrqqicbttzpgi3%40awork3.anarazel.de --------------qUp134d0vHjUjaQwCtR5rTpu Content-Type: text/plain; charset=UTF-8; name="bc-depends-on-c.txt" Content-Disposition: attachment; filename="bc-depends-on-c.txt" Content-Transfer-Encoding: base64 JCBtYWtlIHBhcnNlci5iYwonL3Vzci9iaW4vcGVybCcgLi9jaGVja19rZXl3b3Jkcy5wbCBn cmFtLnkgLi4vLi4vLi4vc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCi91c3IvbG9jYWwv YmluL2Jpc29uIC1Xbm8tZGVwcmVjYXRlZCAgLWQgLW8gZ3JhbS5jIGdyYW0ueQovdXNyL2xv Y2FsL2Jpbi9mbGV4IC1iIC1DRiAtcCAtcCAtbydzY2FuLmMnIHNjYW4ubAonL3Vzci9iaW4v cGVybCcgLi4vLi4vLi4vc3JjL3Rvb2xzL2ZpeC1vbGQtZmxleC1jb2RlLnBsICdzY2FuLmMn Ci91c3IvbGliL2xsdm0tMTYvYmluL2NsYW5nIC1Xbm8taWdub3JlZC1hdHRyaWJ1dGVzIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5kYXJk IC1YY2xhbmcgLW5vLW9wYXF1ZS1wb2ludGVycyAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUt YXJndW1lbnQgLVduby1jb21wb3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtTzIgIC1JLiAt SS4gLUkuLi8uLi8uLi9zcmMvaW5jbHVkZSAtRF9HTlVfU09VUkNFICAtSS91c3IvaW5jbHVk ZS9saWJ4bWwyIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mbHRvPXRoaW4gLWVtaXQtbGx2bSAt YyAtbyBwYXJzZXIuYmMgcGFyc2VyLmMKCiQgbHMKYW5hbHl6ZS5jICAgICAgICAgIGdyYW0u aCAgICAgICBNYWtlZmlsZSAgICAgcGFyc2VfY2xhdXNlLmMgICBwYXJzZV9jdGUuYyAgIHBh cnNlX2Z1bmMuYyAgIHBhcnNlX29wZXIuYyAgIHBhcnNlci5jICAgICAgICAgIHBhcnNlX3R5 cGUuYyAgICAgc2Nhbi5jCmNoZWNrX2tleXdvcmRzLnBsICBncmFtcGFyc2UuaCAgbWVzb24u YnVpbGQgIHBhcnNlX2NvZXJjZS5jICAgcGFyc2VfZW5yLmMgICBwYXJzZV9tZXJnZS5jICBw YXJzZV9wYXJhbS5jICBwYXJzZV9yZWxhdGlvbi5jICBwYXJzZV91dGlsY21kLmMgIHNjYW4u bApncmFtLmMgICAgICAgICAgICAgZ3JhbS55ICAgICAgIHBhcnNlX2FnZy5jICBwYXJzZV9j b2xsYXRlLmMgIHBhcnNlX2V4cHIuYyAgcGFyc2Vfbm9kZS5jICAgcGFyc2VyLmJjICAgICAg cGFyc2VfdGFyZ2V0LmMgICAgUkVBRE1FICAgICAgICAgICBzY2Fuc3VwLmM= --------------qUp134d0vHjUjaQwCtR5rTpu Content-Type: text/plain; charset=UTF-8; name="bc-depends-on-o.txt" Content-Disposition: attachment; filename="bc-depends-on-o.txt" Content-Transfer-Encoding: base64 JCBtYWtlIHBhcnNlci5iYwpjbGFuZy0xNiAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAt V3BvaW50ZXItYXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlcnJvcj12 bGEgLVdlcnJvcj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyAtV2VuZGlmLWxhYmVscyAt V21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSAtV2Zvcm1h dC1zZWN1cml0eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndyYXB2IC1mZXhjZXNzLXByZWNp c2lvbj1zdGFuZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUtYXJndW1lbnQgLVduby1j b21wb3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZS1z dHJpY3QgLWcgLWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtSS4gLUku IC1JLi4vLi4vLi4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJDRSAgLUkvdXNyL2luY2x1ZGUv bGlieG1sMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8gYW5hbHl6ZS5vIGFuYWx5emUu YwonL3Vzci9iaW4vcGVybCcgLi9jaGVja19rZXl3b3Jkcy5wbCBncmFtLnkgLi4vLi4vLi4v c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCi91c3IvbG9jYWwvYmluL2Jpc29uIC1Xbm8t ZGVwcmVjYXRlZCAgLWQgLW8gZ3JhbS5jIGdyYW0ueQp0b3VjaCBncmFtLmgKY2xhbmctMTYg LVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRp b24tYWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWls YWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUg LVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxp YXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQt Y29tbWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFj cm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZu by1vbWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1E X0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgIC1jIC1vIGdyYW0ubyBncmFtLmMKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3Rv dHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1X ZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1s YWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUg LVdmb3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vz cy1wcmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50 IC1Xbm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9u LXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIg LUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9p bmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNlX2FnZy5v IHBhcnNlX2FnZy5jCmNsYW5nLTE2IC1XYWxsIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XcG9p bnRlci1hcml0aCAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2Vycm9yPXZsYSAt V2Vycm9yPXVuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IC1XZW5kaWYtbGFiZWxzIC1XbWlz c2luZy1mb3JtYXQtYXR0cmlidXRlIC1XY2FzdC1mdW5jdGlvbi10eXBlIC1XZm9ybWF0LXNl Y3VyaXR5IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9u PXN0YW5kYXJkIC1Xbm8tdW51c2VkLWNvbW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBv dW5kLXRva2VuLXNwbGl0LWJ5LW1hY3JvIC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlLXN0cmlj dCAtZyAtZ2dkYiAtTzAgLWczIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1JLiAtSS4gLUku Li8uLi8uLi9zcmMvaW5jbHVkZSAtRF9HTlVfU09VUkNFICAtSS91c3IvaW5jbHVkZS9saWJ4 bWwyIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAtYyAtbyBwYXJzZV9jbGF1c2UubyBwYXJzZV9j bGF1c2UuYwpjbGFuZy0xNiAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXIt YXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlcnJvcj12bGEgLVdlcnJv cj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyAtV2VuZGlmLWxhYmVscyAtV21pc3Npbmct Zm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSAtV2Zvcm1hdC1zZWN1cml0 eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndyYXB2IC1mZXhjZXNzLXByZWNpc2lvbj1zdGFu ZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUtYXJndW1lbnQgLVduby1jb21wb3VuZC10 b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZS1zdHJpY3QgLWcg LWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtSS4gLUkuIC1JLi4vLi4v Li4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJDRSAgLUkvdXNyL2luY2x1ZGUvbGlieG1sMiAt SS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8gcGFyc2VfY29lcmNlLm8gcGFyc2VfY29lcmNl LmMKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRo IC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5n dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1h dC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQg LVduby11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4t c3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2Ri IC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3Ny Yy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNy L2xvY2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNlX2NvbGxhdGUubyBwYXJzZV9jb2xsYXRlLmMK Y2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1X ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFy ZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1h dHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVdu by11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4tc3Bs aXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1P MCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9p bmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNlX2N0ZS5vIHBhcnNlX2N0ZS5jCmNsYW5nLTE2IC1X YWxsIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XcG9pbnRlci1hcml0aCAtV2RlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudCAtV2Vycm9yPXZsYSAtV2Vycm9yPXVuZ3VhcmRlZC1hdmFpbGFi aWxpdHktbmV3IC1XZW5kaWYtbGFiZWxzIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1X Y2FzdC1mdW5jdGlvbi10eXBlIC1XZm9ybWF0LXNlY3VyaXR5IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5kYXJkIC1Xbm8tdW51c2VkLWNv bW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBvdW5kLXRva2VuLXNwbGl0LWJ5LW1hY3Jv IC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlLXN0cmljdCAtZyAtZ2dkYiAtTzAgLWczIC1mbm8t b21pdC1mcmFtZS1wb2ludGVyIC1JLiAtSS4gLUkuLi8uLi8uLi9zcmMvaW5jbHVkZSAtRF9H TlVfU09VUkNFICAtSS91c3IvaW5jbHVkZS9saWJ4bWwyIC1JL3Vzci9sb2NhbC9pbmNsdWRl ICAtYyAtbyBwYXJzZV9lbnIubyBwYXJzZV9lbnIuYwpjbGFuZy0xNiAtV2FsbCAtV21pc3Np bmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0 ZW1lbnQgLVdlcnJvcj12bGEgLVdlcnJvcj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyAt V2VuZGlmLWxhYmVscyAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVuY3Rp b24tdHlwZSAtV2Zvcm1hdC1zZWN1cml0eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndyYXB2 IC1mZXhjZXNzLXByZWNpc2lvbj1zdGFuZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUt YXJndW1lbnQgLVduby1jb21wb3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNhc3Qt ZnVuY3Rpb24tdHlwZS1zdHJpY3QgLWcgLWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJhbWUt cG9pbnRlciAtSS4gLUkuIC1JLi4vLi4vLi4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJDRSAg LUkvdXNyL2luY2x1ZGUvbGlieG1sMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8gcGFy c2VfZXhwci5vIHBhcnNlX2V4cHIuYwpjbGFuZy0xNiAtV2FsbCAtV21pc3NpbmctcHJvdG90 eXBlcyAtV3BvaW50ZXItYXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdl cnJvcj12bGEgLVdlcnJvcj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyAtV2VuZGlmLWxh YmVscyAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSAt V2Zvcm1hdC1zZWN1cml0eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndyYXB2IC1mZXhjZXNz LXByZWNpc2lvbj1zdGFuZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUtYXJndW1lbnQg LVduby1jb21wb3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNhc3QtZnVuY3Rpb24t dHlwZS1zdHJpY3QgLWcgLWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAt SS4gLUkuIC1JLi4vLi4vLi4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJDRSAgLUkvdXNyL2lu Y2x1ZGUvbGlieG1sMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8gcGFyc2VfZnVuYy5v IHBhcnNlX2Z1bmMuYwpjbGFuZy0xNiAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAtV3Bv aW50ZXItYXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlcnJvcj12bGEg LVdlcnJvcj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyAtV2VuZGlmLWxhYmVscyAtV21p c3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSAtV2Zvcm1hdC1z ZWN1cml0eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndyYXB2IC1mZXhjZXNzLXByZWNpc2lv bj1zdGFuZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUtYXJndW1lbnQgLVduby1jb21w b3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZS1zdHJp Y3QgLWcgLWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtSS4gLUkuIC1J Li4vLi4vLi4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJDRSAgLUkvdXNyL2luY2x1ZGUvbGli eG1sMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8gcGFyc2VfbWVyZ2UubyBwYXJzZV9t ZXJnZS5jCmNsYW5nLTE2IC1XYWxsIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XcG9pbnRlci1h cml0aCAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2Vycm9yPXZsYSAtV2Vycm9y PXVuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IC1XZW5kaWYtbGFiZWxzIC1XbWlzc2luZy1m b3JtYXQtYXR0cmlidXRlIC1XY2FzdC1mdW5jdGlvbi10eXBlIC1XZm9ybWF0LXNlY3VyaXR5 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5k YXJkIC1Xbm8tdW51c2VkLWNvbW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBvdW5kLXRv a2VuLXNwbGl0LWJ5LW1hY3JvIC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlLXN0cmljdCAtZyAt Z2dkYiAtTzAgLWczIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1JLiAtSS4gLUkuLi8uLi8u Li9zcmMvaW5jbHVkZSAtRF9HTlVfU09VUkNFICAtSS91c3IvaW5jbHVkZS9saWJ4bWwyIC1J L3Vzci9sb2NhbC9pbmNsdWRlICAtYyAtbyBwYXJzZV9ub2RlLm8gcGFyc2Vfbm9kZS5jCmNs YW5nLTE2IC1XYWxsIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XcG9pbnRlci1hcml0aCAtV2Rl Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2Vycm9yPXZsYSAtV2Vycm9yPXVuZ3VhcmRl ZC1hdmFpbGFiaWxpdHktbmV3IC1XZW5kaWYtbGFiZWxzIC1XbWlzc2luZy1mb3JtYXQtYXR0 cmlidXRlIC1XY2FzdC1mdW5jdGlvbi10eXBlIC1XZm9ybWF0LXNlY3VyaXR5IC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5kYXJkIC1Xbm8t dW51c2VkLWNvbW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBvdW5kLXRva2VuLXNwbGl0 LWJ5LW1hY3JvIC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlLXN0cmljdCAtZyAtZ2dkYiAtTzAg LWczIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1JLiAtSS4gLUkuLi8uLi8uLi9zcmMvaW5j bHVkZSAtRF9HTlVfU09VUkNFICAtSS91c3IvaW5jbHVkZS9saWJ4bWwyIC1JL3Vzci9sb2Nh bC9pbmNsdWRlICAtYyAtbyBwYXJzZV9vcGVyLm8gcGFyc2Vfb3Blci5jCmNsYW5nLTE2IC1X YWxsIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XcG9pbnRlci1hcml0aCAtV2RlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudCAtV2Vycm9yPXZsYSAtV2Vycm9yPXVuZ3VhcmRlZC1hdmFpbGFi aWxpdHktbmV3IC1XZW5kaWYtbGFiZWxzIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1X Y2FzdC1mdW5jdGlvbi10eXBlIC1XZm9ybWF0LXNlY3VyaXR5IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1md3JhcHYgLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5kYXJkIC1Xbm8tdW51c2VkLWNv bW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBvdW5kLXRva2VuLXNwbGl0LWJ5LW1hY3Jv IC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlLXN0cmljdCAtZyAtZ2dkYiAtTzAgLWczIC1mbm8t b21pdC1mcmFtZS1wb2ludGVyIC1JLiAtSS4gLUkuLi8uLi8uLi9zcmMvaW5jbHVkZSAtRF9H TlVfU09VUkNFICAtSS91c3IvaW5jbHVkZS9saWJ4bWwyIC1JL3Vzci9sb2NhbC9pbmNsdWRl ICAtYyAtbyBwYXJzZV9wYXJhbS5vIHBhcnNlX3BhcmFtLmMKY2xhbmctMTYgLVdhbGwgLVdt aXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXIt c3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u ZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1 bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3 cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1s aW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1j YXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZy YW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VS Q0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1v IHBhcnNlX3JlbGF0aW9uLm8gcGFyc2VfcmVsYXRpb24uYwpjbGFuZy0xNiAtV2FsbCAtV21p c3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdkZWNsYXJhdGlvbi1hZnRlci1z dGF0ZW1lbnQgLVdlcnJvcj12bGEgLVdlcnJvcj11bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l dyAtV2VuZGlmLWxhYmVscyAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV2Nhc3QtZnVu Y3Rpb24tdHlwZSAtV2Zvcm1hdC1zZWN1cml0eSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZndy YXB2IC1mZXhjZXNzLXByZWNpc2lvbj1zdGFuZGFyZCAtV25vLXVudXNlZC1jb21tYW5kLWxp bmUtYXJndW1lbnQgLVduby1jb21wb3VuZC10b2tlbi1zcGxpdC1ieS1tYWNybyAtV25vLWNh c3QtZnVuY3Rpb24tdHlwZS1zdHJpY3QgLWcgLWdnZGIgLU8wIC1nMyAtZm5vLW9taXQtZnJh bWUtcG9pbnRlciAtSS4gLUkuIC1JLi4vLi4vLi4vc3JjL2luY2x1ZGUgLURfR05VX1NPVVJD RSAgLUkvdXNyL2luY2x1ZGUvbGlieG1sMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLWMgLW8g cGFyc2VfdGFyZ2V0Lm8gcGFyc2VfdGFyZ2V0LmMKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5n LXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVt ZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdl bmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9u LXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAt ZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1saW5lLWFy Z3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1 bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBv aW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1J L3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNl X3R5cGUubyBwYXJzZV90eXBlLmMKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlw ZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZXJy b3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJl bHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdm b3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1w cmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50IC1X bm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5 cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLUku IC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNs dWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNlX3V0aWxjbWQu byBwYXJzZV91dGlsY21kLmMKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMg LVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9 dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMg LVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3Jt YXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVj aXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8t Y29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUt c3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1J LiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRl L2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1vIHBhcnNlci5vIHBhcnNlci5j Ci91c3IvbG9jYWwvYmluL2ZsZXggLWIgLUNGIC1wIC1wIC1vJ3NjYW4uYycgc2Nhbi5sCicv dXNyL2Jpbi9wZXJsJyAuLi8uLi8uLi9zcmMvdG9vbHMvZml4LW9sZC1mbGV4LWNvZGUucGwg J3NjYW4uYycKY2xhbmctMTYgLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVy LWFyaXRoIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJy b3I9dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5n LWZvcm1hdC1hdHRyaWJ1dGUgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJp dHkgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3Rh bmRhcmQgLVduby11bnVzZWQtY29tbWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQt dG9rZW4tc3BsaXQtYnktbWFjcm8gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1n IC1nZ2RiIC1PMCAtZzMgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4u Ly4uL3NyYy9pbmNsdWRlIC1EX0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIg LUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1jIC1vIHNjYW4ubyBzY2FuLmMKY2xhbmctMTYgLVdh bGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XZGVjbGFyYXRpb24t YWZ0ZXItc3RhdGVtZW50IC1XZXJyb3I9dmxhIC1XZXJyb3I9dW5ndWFyZGVkLWF2YWlsYWJp bGl0eS1uZXcgLVdlbmRpZi1sYWJlbHMgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdj YXN0LWZ1bmN0aW9uLXR5cGUgLVdmb3JtYXQtc2VjdXJpdHkgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZ3cmFwdiAtZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVduby11bnVzZWQtY29t bWFuZC1saW5lLWFyZ3VtZW50IC1Xbm8tY29tcG91bmQtdG9rZW4tc3BsaXQtYnktbWFjcm8g LVduby1jYXN0LWZ1bmN0aW9uLXR5cGUtc3RyaWN0IC1nIC1nZ2RiIC1PMCAtZzMgLWZuby1v bWl0LWZyYW1lLXBvaW50ZXIgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1EX0dO VV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1ZGUg IC1jIC1vIHNjYW5zdXAubyBzY2Fuc3VwLmMKL3Vzci9saWIvbGx2bS0xNi9iaW4vY2xhbmcg LVduby1pZ25vcmVkLWF0dHJpYnV0ZXMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZ3cmFwdiAt ZmV4Y2Vzcy1wcmVjaXNpb249c3RhbmRhcmQgLVhjbGFuZyAtbm8tb3BhcXVlLXBvaW50ZXJz IC1Xbm8tdW51c2VkLWNvbW1hbmQtbGluZS1hcmd1bWVudCAtV25vLWNvbXBvdW5kLXRva2Vu LXNwbGl0LWJ5LW1hY3JvIC1PMiAgLUkuIC1JLiAtSS4uLy4uLy4uL3NyYy9pbmNsdWRlIC1E X0dOVV9TT1VSQ0UgIC1JL3Vzci9pbmNsdWRlL2xpYnhtbDIgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgLWZsdG89dGhpbiAtZW1pdC1sbHZtIC1jIC1vIHBhcnNlci5iYyBwYXJzZXIuYwoKJCBs cwphbmFseXplLmMgICAgICAgICAgZ3JhbS5vICAgICAgIHBhcnNlX2FnZy5jICAgICBwYXJz ZV9jb2VyY2UubyAgIHBhcnNlX2Vuci5jICAgcGFyc2VfZnVuYy5vICAgcGFyc2Vfb3Blci5j ICAgcGFyc2VyLmMgICAgICAgICAgcGFyc2VfdGFyZ2V0Lm8gICBSRUFETUUgICAgIHNjYW5z dXAubwphbmFseXplLm8gICAgICAgICAgZ3JhbXBhcnNlLmggIHBhcnNlX2FnZy5vICAgICBw YXJzZV9jb2xsYXRlLmMgIHBhcnNlX2Vuci5vICAgcGFyc2VfbWVyZ2UuYyAgcGFyc2Vfb3Bl ci5vICAgcGFyc2VfcmVsYXRpb24uYyAgcGFyc2VfdHlwZS5jICAgICBzY2FuLmMKY2hlY2tf a2V5d29yZHMucGwgIGdyYW0ueSAgICAgICBwYXJzZV9jbGF1c2UuYyAgcGFyc2VfY29sbGF0 ZS5vICBwYXJzZV9leHByLmMgIHBhcnNlX21lcmdlLm8gIHBhcnNlX3BhcmFtLmMgIHBhcnNl X3JlbGF0aW9uLm8gIHBhcnNlX3R5cGUubyAgICAgc2Nhbi5sCmdyYW0uYyAgICAgICAgICAg ICBNYWtlZmlsZSAgICAgcGFyc2VfY2xhdXNlLm8gIHBhcnNlX2N0ZS5jICAgICAgcGFyc2Vf ZXhwci5vICBwYXJzZV9ub2RlLmMgICBwYXJzZV9wYXJhbS5vICBwYXJzZXIubyAgICAgICAg ICBwYXJzZV91dGlsY21kLmMgIHNjYW4ubwpncmFtLmggICAgICAgICAgICAgbWVzb24uYnVp bGQgIHBhcnNlX2NvZXJjZS5jICBwYXJzZV9jdGUubyAgICAgIHBhcnNlX2Z1bmMuYyAgcGFy c2Vfbm9kZS5vICAgcGFyc2VyLmJjICAgICAgcGFyc2VfdGFyZ2V0LmMgICAgcGFyc2VfdXRp bGNtZC5vICBzY2Fuc3VwLmM= --------------qUp134d0vHjUjaQwCtR5rTpu--