From owner-freebsd-ports@FreeBSD.ORG Mon Dec 28 17:27:28 2009 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5515106566C for ; Mon, 28 Dec 2009 17:27:28 +0000 (UTC) (envelope-from info@ebbehjorth.dk) Received: from mail02.apz.dk (mail02.apz.dk [86.58.130.214]) by mx1.freebsd.org (Postfix) with ESMTP id AD1A98FC19 for ; Mon, 28 Dec 2009 17:27:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail02.apz.dk (Postfix) with ESMTP id 48345B892; Mon, 28 Dec 2009 18:27:27 +0100 (CET) Received: from mail02.apz.dk ([127.0.0.1]) by localhost (mail02.apz.dk [127.0.0.1]) (amavisd-maia, port 10024) with ESMTP id 03406-06; Mon, 28 Dec 2009 18:27:24 +0100 (CET) Received: from mail02.apz.dk (localhost [127.0.0.1]) by mail02.apz.dk (Postfix) with ESMTP id 27C3EB890; Mon, 28 Dec 2009 18:27:24 +0100 (CET) Received: from 87.61.25.22 (SquirrelMail authenticated user info@ebbehjorth.dk) by mail02.apz.dk with HTTP; Mon, 28 Dec 2009 18:27:24 +0100 Message-ID: In-Reply-To: <20091228154324.GE60869@megatron.madpilot.net> References: <20091228152314.GD60869@megatron.madpilot.net> <23917facf433fc050cd7c4134b9a8c7e.squirrel@mail02.apz.dk> <20091228154324.GE60869@megatron.madpilot.net> Date: Mon, 28 Dec 2009 18:27:24 +0100 From: "Ebbe Hjorth" To: "Guido Falsi" User-Agent: SquirrelMail/1.4.20-RC2 MIME-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20091228182724_50708" X-Priority: 3 (Normal) Importance: Normal X-Virus-Scanned: Maia Mailguard Cc: ports@freebsd.org Subject: Re: FreeBSD Port: gnokii-0.6.28,1 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2009 17:27:28 -0000 ------=_20091228182724_50708 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit > On Mon, Dec 28, 2009 at 04:38:32PM +0100, Ebbe Hjorth wrote: >> >> The system is a fresh install, so all ports is new and should be working >> 100% :) > > I'll have to try this case as soon as I can(I'm unable right now). > I want to help, so i just did a complete reinstall of a freebsd 8.0 and the error is still there, but now i have a log file :) > >> >> Thank you for all the good work! >> > >> > You're welcome and thank you again for bothering with reporting this! >> > >> >> Im sorry for disturbing you, for nothing, without any log file, but i >> guess it is good that you cant reproduce the problem :) > > Don't feel guilty! Better to report a problem than leave it there. If in > fact there is a problem it is not going to fix it by itself! > ------=_20091228182724_50708 Content-Type: application/octet-stream; name="config.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGdub2tpaSBjb25maWd1cmUgMC42LjI4LCB3 aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21t YW5kIGxpbmUgd2FzCgogICQgLi9jb25maWd1cmUgLS13aXRoLWxpYmludGwtcHJlZml4PS91c3Iv bG9jYWwgLS1lbmFibGUtc2VjdXJpdHkgLS13aXRoLXhnbm9raWlkaXI9L3Vzci9sb2NhbC9zaGFy ZSAtLXdpdGhvdXQteCAtLXByZWZpeD0vdXNyL2xvY2FsIC0tbWFuZGlyPS91c3IvbG9jYWwvbWFu IC0taW5mb2Rpcj0vdXNyL2xvY2FsL2luZm8vIC0tYnVpbGQ9aTM4Ni1wb3J0YmxkLWZyZWVic2Q4 LjAKCiMjIC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0 bmFtZSA9IG1haWwwMy5hcHouZGsKdW5hbWUgLW0gPSBpMzg2CnVuYW1lIC1yID0gOC4wLVJFTEVB U0UKdW5hbWUgLXMgPSBGcmVlQlNECnVuYW1lIC12ID0gRnJlZUJTRCA4LjAtUkVMRUFTRSAjMDog U2F0IE5vdiAyMSAxNTo0ODoxNyBVVEMgMjAwOSAgICAgcm9vdEBhbG1laWRhLmNzZS5idWZmYWxv LmVkdTovdXNyL29iai91c3Ivc3JjL3N5cy9HRU5FUklDIAoKL3Vzci9iaW4vdW5hbWUgLXAgPSBp Mzg2Ci9iaW4vdW5hbWUgLVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9 IHVua25vd24KL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0 c3lzaW5mbyA9IHVua25vd24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9t YWNoaW5lICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25v d24KL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC9zYmluClBBVEg6IC9i aW4KUEFUSDogL3Vzci9zYmluClBBVEg6IC91c3IvYmluClBBVEg6IC91c3IvZ2FtZXMKUEFUSDog L3Vzci9sb2NhbC9zYmluClBBVEg6IC91c3IvbG9jYWwvYmluClBBVEg6IC9yb290L2JpbgoKCiMj IC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0tICMjCgpjb25m aWd1cmU6MjI1ODogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJlOjIyNzY6IHJl c3VsdDogaTM4Ni1wb3J0YmxkLWZyZWVic2Q4LjAKY29uZmlndXJlOjIyOTg6IGNoZWNraW5nIGhv c3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjIzMTM6IHJlc3VsdDogaTM4Ni1wb3J0YmxkLWZyZWVi c2Q4LjAKY29uZmlndXJlOjIzMzU6IGNoZWNraW5nIHRhcmdldCBzeXN0ZW0gdHlwZQpjb25maWd1 cmU6MjM1MDogcmVzdWx0OiBpMzg2LXBvcnRibGQtZnJlZWJzZDguMApjb25maWd1cmU6MjQyNjog Y2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6MjQ1MzogcmVzdWx0OiBjYwpjb25maWd1cmU6MjY4 NTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6MjY5MzogY2MgLS12 ZXJzaW9uID4mNQpjYyAoR0NDKSA0LjIuMSAyMDA3MDcxOSAgW0ZyZWVCU0RdCkNvcHlyaWdodCAo QykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3 YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8K d2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1cmU6MjY5NzogJD8gPSAwCmNvbmZpZ3VyZToyNzA0 OiBjYyAtdiA+JjUKVXNpbmcgYnVpbHQtaW4gc3BlY3MuClRhcmdldDogaTM4Ni11bmRlcm15ZGVz ay1mcmVlYnNkCkNvbmZpZ3VyZWQgd2l0aDogRnJlZUJTRC9pMzg2IHN5c3RlbSBjb21waWxlcgpU aHJlYWQgbW9kZWw6IHBvc2l4CmdjYyB2ZXJzaW9uIDQuMi4xIDIwMDcwNzE5ICBbRnJlZUJTRF0K Y29uZmlndXJlOjI3MDg6ICQ/ID0gMApjb25maWd1cmU6MjcxNTogY2MgLVYgPiY1CmNjOiAnLVYn IG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKY29uZmlndXJlOjI3MTk6ICQ/ID0gMQpjb25maWd1 cmU6Mjc0MjogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1l CmNvbmZpZ3VyZToyNzY0OiBjYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1w aXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIC1ML3Vz ci9sb2NhbC9saWIgY29uZnRlc3QuYyAtTC91c3IvcG9ydHMvY29tbXMvZ25va2lpL3dvcmsvZ25v a2lpLTAuNi4yOC9jb21tb24gLUwvdXNyL2xvY2FsL2xpYiA+JjUKY29uZmlndXJlOjI3Njg6ICQ/ ID0gMApjb25maWd1cmU6MjgwNjogcmVzdWx0OiBhLm91dApjb25maWd1cmU6MjgyNTogY2hlY2tp bmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcwpjb25maWd1cmU6MjgzNTogLi9hLm91dApj b25maWd1cmU6MjgzOTogJD8gPSAwCmNvbmZpZ3VyZToyODU4OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6Mjg2NTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nCmNvbmZpZ3Vy ZToyODY3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODcwOiBjaGVja2luZyBmb3Igc3VmZml4IG9m IGV4ZWN1dGFibGVzCmNvbmZpZ3VyZToyODc3OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLWZu by1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9s b2NhbC9pbmNsdWRlIC1mUElDIC1ML3Vzci9sb2NhbC9saWIgY29uZnRlc3QuYyAtTC91c3IvcG9y dHMvY29tbXMvZ25va2lpL3dvcmsvZ25va2lpLTAuNi4yOC9jb21tb24gLUwvdXNyL2xvY2FsL2xp YiA+JjUKY29uZmlndXJlOjI4ODE6ICQ/ID0gMApjb25maWd1cmU6MjkwNzogcmVzdWx0OiAKY29u ZmlndXJlOjI5MTM6IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3Vy ZToyOTM5OiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZToyOTQzOiAkPyA9IDAKY29uZmlndXJlOjI5Njg6IHJlc3VsdDogbwpjb25m aWd1cmU6Mjk3MjogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBp bGVyCmNvbmZpZ3VyZTozMDAxOiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcg LU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElD IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozMDA4OiAkPyA9IDAKY29uZmlndXJlOjMwMjU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozMDM0OiBjaGVja2luZyB3aGV0aGVyIGNjIGFjY2VwdHMgLWcK Y29uZmlndXJlOjMwNjQ6IGNjIC1jIC1nIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAt SS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzA3MTog JD8gPSAwCmNvbmZpZ3VyZTozMTcyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE4OTogY2hlY2tp bmcgZm9yIGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6MzI2MzogY2MgIC1j IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxp YXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLWZQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjMyNzA6ICQ/ID0gMApjb25maWd1cmU6MzI5MzogcmVzdWx0OiBub25lIG5lZWRlZApjb25maWd1 cmU6MzMxNzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmlndXJl OjMzNTc6IGNjIC1FIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwv aW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jCmNvbmZpZ3VyZTozMzY0OiAkPyA9IDAKY29uZmlndXJl OjMzOTU6IGNjIC1FIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwv aW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6ODoyODogZXJyb3I6IGFjX25vbmV4 aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjM0MDI6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiZ25va2lpIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn bm9raWkiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjAuNi4yOCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJnbm9raWkgMC42LjI4Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImh0 dHA6Ly93d3cuZ25va2lpLm9yZy8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxhY19ub25leGlzdGVudC5oPgpjb25maWd1cmU6MzQzNTogcmVzdWx0OiBjYyAtRQpjb25maWd1 cmU6MzQ2NDogY2MgLUUgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2Nh bC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjM0NzE6ICQ/ID0gMApjb25maWd1 cmU6MzUwMjogY2MgLUUgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2Nh bC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzo4OjI4OiBlcnJvcjogYWNfbm9u ZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzUwOTogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJnbm9raWkiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imdub2tpaSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMC42LjI4Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgImdub2tpaSAwLjYuMjgiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi aHR0cDovL3d3dy5nbm9raWkub3JnLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTozNTQ5OiBjaGVja2luZyBmb3IgZ3JlcCB0 aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUKY29uZmlndXJlOjM2MDk6IHJlc3VsdDogL3Vz ci9iaW4vZ3JlcApjb25maWd1cmU6MzYxNDogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZToz Njc4OiByZXN1bHQ6IC91c3IvYmluL2dyZXAgLUUKY29uZmlndXJlOjM2ODM6IGNoZWNraW5nIGZv ciBBTlNJIEMgaGVhZGVyIGZpbGVzCmNvbmZpZ3VyZTozNzEzOiBjYyAtYyAtTzIgLXBpcGUgLWZu by1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9s b2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozNzIwOiAkPyA9IDAK Y29uZmlndXJlOjM4MTk6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUg LWZQSUMgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jIC1ML3Vzci9wb3J0cy9jb21tcy9nbm9r aWkvd29yay9nbm9raWktMC42LjI4L2NvbW1vbiAtTC91c3IvbG9jYWwvbGliID4mNQpjb25maWd1 cmU6MzgyMzogJD8gPSAwCmNvbmZpZ3VyZTozODI5OiAuL2NvbmZ0ZXN0CmNvbmZpZ3VyZTozODMz OiAkPyA9IDAKY29uZmlndXJlOjM4NTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODc1OiBjaGVj a2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjM4OTY6IGNjIC1jIC1PMiAtcGlwZSAtZm5v LXN0cmljdC1hbGlhc2luZyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgLWZQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjM5MDM6ICQ/ID0gMApj b25maWd1cmU6MzkyMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4NzU6IGNoZWNraW5nIGZvciBz eXMvc3RhdC5oCmNvbmZpZ3VyZTozODk2OiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxp YXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRl IC1mUElDIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozOTAzOiAkPyA9IDAKY29uZmlndXJlOjM5 MjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODc1OiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29u ZmlndXJlOjM4OTY6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtTzIgLXBp cGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLWZQSUMgY29uZnRl c3QuYyA+JjUKY29uZmlndXJlOjM5MDM6ICQ/ID0gMApjb25maWd1cmU6MzkyMDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjM4NzU6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6Mzg5Njog Y2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1PMiAtcGlwZSAtZm5vLXN0cmlj dC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6MzkwMzogJD8gPSAwCmNvbmZpZ3VyZTozOTIwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 Mzg3NTogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCmNvbmZpZ3VyZTozODk2OiBjYyAtYyAtTzIgLXBp cGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1J L3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozOTAzOiAk PyA9IDAKY29uZmlndXJlOjM5MjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODc1OiBjaGVja2lu ZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3VyZTozODk2OiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9p bmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozOTAzOiAkPyA9IDAKY29uZmln dXJlOjM5MjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODc1OiBjaGVja2luZyBmb3IgaW50dHlw ZXMuaApjb25maWd1cmU6Mzg5NjogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJ QyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzkwMzogJD8gPSAwCmNvbmZpZ3VyZTozOTIwOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg3NTogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3Vy ZTozODk2OiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZTozOTAzOiAkPyA9IDAKY29uZmlndXJlOjM5MjA6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTozODc1OiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjM4OTY6IGNjIC1j IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxp YXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLWZQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjM5MDM6ICQ/ID0gMApjb25maWd1cmU6MzkyMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM5NDU6 IGNoZWNraW5nIG1pbml4L2NvbmZpZy5oIHVzYWJpbGl0eQpjb25maWd1cmU6Mzk2MjogY2MgLWMg LU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5j OjUxOjI2OiBlcnJvcjogbWluaXgvY29uZmlnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK Y29uZmlndXJlOjM5Njk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiZ25va2lpIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJnbm9raWkiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjAu Ni4yOCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJnbm9raWkgMC42LjI4Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImh0dHA6Ly93d3cuZ25va2lpLm9yZy8iCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPG1pbml4L2NvbmZpZy5oPgpjb25maWd1cmU6 Mzk4MzogcmVzdWx0OiBubwpjb25maWd1cmU6Mzk4NzogY2hlY2tpbmcgbWluaXgvY29uZmlnLmgg cHJlc2VuY2UKY29uZmlndXJlOjQwMDI6IGNjIC1FIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQyBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTg6 MjY6IGVycm9yOiBtaW5peC9jb25maWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25m aWd1cmU6NDAwOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJnbm9raWkiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImdub2tpaSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMC42LjI4 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImdub2tpaSAwLjYuMjgiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiaHR0cDovL3d3dy5nbm9raWkub3JnLyIKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PG1pbml4L2NvbmZpZy5oPgpjb25maWd1cmU6NDAyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NDA1 NjogY2hlY2tpbmcgZm9yIG1pbml4L2NvbmZpZy5oCmNvbmZpZ3VyZTo0MDYzOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo0MDk0OiBjaGVja2luZyB3aGV0aGVyIGl0IGlzIHNhZmUgdG8gZGVmaW5lIF9f RVhURU5TSU9OU19fCmNvbmZpZ3VyZTo0MTIyOiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3Qt YWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1mUElDIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MTI5OiAkPyA9IDAKY29uZmlndXJl OjQxNDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0MTg3OiBjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZTo0MjU1OiByZXN1bHQ6IC91c3IvYmluL2luc3RhbGwg LWMgLW8gcm9vdCAtZyB3aGVlbApjb25maWd1cmU6NDI2NjogY2hlY2tpbmcgd2hldGhlciBidWls ZCBlbnZpcm9ubWVudCBpcyBzYW5lCmNvbmZpZ3VyZTo0MzA5OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NDMzNDogY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAKY29uZmlndXJlOjQz NzM6IHJlc3VsdDogLi9pbnN0YWxsLXNoIC1jIC1kCmNvbmZpZ3VyZTo0Mzg2OiBjaGVja2luZyBm b3IgZ2F3awpjb25maWd1cmU6NDQxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NDM4NjogY2hlY2tp bmcgZm9yIG1hd2sKY29uZmlndXJlOjQ0MTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjQzODY6IGNo ZWNraW5nIGZvciBuYXdrCmNvbmZpZ3VyZTo0NDAyOiBmb3VuZCAvdXNyL2Jpbi9uYXdrCmNvbmZp Z3VyZTo0NDEzOiByZXN1bHQ6IG5hd2sKY29uZmlndXJlOjQ0MjQ6IGNoZWNraW5nIHdoZXRoZXIg Z21ha2Ugc2V0cyAkKE1BS0UpCmNvbmZpZ3VyZTo0NDQ2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NDQ3NjogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSBnbWFrZQpjb25maWd1 cmU6NDUwNDogcmVzdWx0OiBHTlUKY29uZmlndXJlOjQ2OTM6IGNoZWNraW5nIGRlcGVuZGVuY3kg c3R5bGUgb2YgY2MKY29uZmlndXJlOjQ3ODQ6IHJlc3VsdDogZ2NjMwpjb25maWd1cmU6NDg1MTog Y2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6NDg3ODogcmVzdWx0OiBjYwpjb25maWd1cmU6NTEx MDogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6NTExODogY2MgLS12 ZXJzaW9uID4mNQpjYyAoR0NDKSA0LjIuMSAyMDA3MDcxOSAgW0ZyZWVCU0RdCkNvcHlyaWdodCAo QykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3 YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8K d2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1cmU6NTEyMjogJD8gPSAwCmNvbmZpZ3VyZTo1MTI5 OiBjYyAtdiA+JjUKVXNpbmcgYnVpbHQtaW4gc3BlY3MuClRhcmdldDogaTM4Ni11bmRlcm15ZGVz ay1mcmVlYnNkCkNvbmZpZ3VyZWQgd2l0aDogRnJlZUJTRC9pMzg2IHN5c3RlbSBjb21waWxlcgpU aHJlYWQgbW9kZWw6IHBvc2l4CmdjYyB2ZXJzaW9uIDQuMi4xIDIwMDcwNzE5ICBbRnJlZUJTRF0K Y29uZmlndXJlOjUxMzM6ICQ/ID0gMApjb25maWd1cmU6NTE0MDogY2MgLVYgPiY1CmNjOiAnLVYn IG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKY29uZmlndXJlOjUxNDQ6ICQ/ID0gMQpjb25maWd1 cmU6NTE0NzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVy CmNvbmZpZ3VyZTo1MjAwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTIwOTogY2hlY2tpbmcgd2hl dGhlciBjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTo1MzQ3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NTM2NDogY2hlY2tpbmcgZm9yIGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6 NTQ2ODogcmVzdWx0OiBub25lIG5lZWRlZApjb25maWd1cmU6NTQ5MDogY2hlY2tpbmcgd2hldGhl ciBjYyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIKY29uZmlndXJlOjU1MjI6IGNjIC1j IGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo1NTI2OiAkPyA9IDAKY29u ZmlndXJlOjU1MzI6IGNjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3Vy ZTo1NTM2OiAkPyA9IDAKY29uZmlndXJlOjU1OTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NjIz OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6NTc0MTog cmVzdWx0OiBjYyAtRQpjb25maWd1cmU6NTc3MDogY2MgLUUgLU8yIC1waXBlIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMKY29uZmlndXJl OjU3Nzc6ICQ/ID0gMApjb25maWd1cmU6NTgwODogY2MgLUUgLU8yIC1waXBlIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIGNvbmZ0ZXN0LmMKY29uZnRlc3Qu YzoyNToyODogZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29uZmlndXJlOjU4MTU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiZ25va2lpIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbm9raWkiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjAuNi4yOCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJnbm9raWkgMC42LjI4Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImh0dHA6Ly93d3cuZ25va2lpLm9yZy8iCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgUEFDS0FHRSAiZ25va2lpIgp8ICNkZWZpbmUgVkVSU0lPTiAiMC42LjI4Igp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJl OjU4NTg6IGNoZWNraW5nIGZvciBmbGV4CmNvbmZpZ3VyZTo1ODc0OiBmb3VuZCAvdXNyL2Jpbi9m bGV4CmNvbmZpZ3VyZTo1ODg1OiByZXN1bHQ6IGZsZXgKY29uZmlndXJlOjU5MjI6IGZsZXggY29u ZnRlc3QubApjb25maWd1cmU6NTkyNjogJD8gPSAwCmNvbmZpZ3VyZTo1OTI4OiBjaGVja2luZyBs ZXggb3V0cHV0IGZpbGUgcm9vdApjb25maWd1cmU6NTk0NDogcmVzdWx0OiBsZXgueXkKY29uZmln dXJlOjU5NDk6IGNoZWNraW5nIGxleCBsaWJyYXJ5CmNvbmZpZ3VyZTo1OTY4OiBjYyAtbyBjb25m dGVzdCAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIC1ML3Vzci9sb2NhbC9saWIgY29u ZnRlc3QuYyAgLUwvdXNyL3BvcnRzL2NvbW1zL2dub2tpaS93b3JrL2dub2tpaS0wLjYuMjgvY29t bW9uIC1ML3Vzci9sb2NhbC9saWIgPiY1CmNvbmZ0ZXN0Lmw6IEluIGZ1bmN0aW9uICd5eWxleCc6 CmNvbmZ0ZXN0Lmw6Njogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHBvaW50ZXIgYW5kIGlu dGVnZXIKY29uZnRlc3QubDo2OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJv bSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0Ci92YXIvdG1wLy9jY2NiUFRncC5vKC50ZXh0KzB4OTZl KTogSW4gZnVuY3Rpb24gYGlucHV0JzoKOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB5eXdyYXAn Ci92YXIvdG1wLy9jY2NiUFRncC5vKC50ZXh0KzB4ZTkxKTogSW4gZnVuY3Rpb24gYC5MMjA3JzoK OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB5eXdyYXAnCi92YXIvdG1wLy9jY2NiUFRncC5vKC50 ZXh0KzB4MTA4Yyk6IEluIGZ1bmN0aW9uIGBtYWluJzoKOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv IGB5eXdyYXAnCmNvbmZpZ3VyZTo1OTc1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogQSBsZXhpY2FsIHNjYW5uZXIgZ2VuZXJhdGVkIGJ5IGZsZXggKi8KfCAKfCAv KiBTY2FubmVyIHNrZWxldG9uIHZlcnNpb246CnwgICogJEhlYWRlcjogL2hvbWUvZGFmZnkvdTAv dmVybi9mbGV4L1JDUy9mbGV4LnNrbCx2IDIuOTEgOTYvMDkvMTAgMTY6NTg6NDggdmVybiBFeHAg JAp8ICAqICRGcmVlQlNEOiBzcmMvdXNyLmJpbi9sZXgvZmxleC5za2wsdiAxLjEwLjIuMS4yLjEg MjAwOS8xMC8yNSAwMToxMDoyOSBrZW5zbWl0aCBFeHAgJAp8ICAqLwp8IAp8ICNpZiBkZWZpbmVk KF9fRnJlZUJTRF9fKQp8ICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KfCAjZWxzZQp8ICNkZWZpbmUg X191bnVzZWQKfCAjZGVmaW5lIF9fZGVhZDIKfCAjZW5kaWYKfCAKfCAjZGVmaW5lIEZMRVhfU0NB Tk5FUgp8ICNkZWZpbmUgWVlfRkxFWF9NQUpPUl9WRVJTSU9OIDIKfCAjZGVmaW5lIFlZX0ZMRVhf TUlOT1JfVkVSU0lPTiA1CnwgCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgCnwgCnwgLyogY2Zyb250 IDEuMiBkZWZpbmVzICJjX3BsdXNwbHVzIiBpbnN0ZWFkIG9mICJfX2NwbHVzcGx1cyIgKi8KfCAj aWZkZWYgY19wbHVzcGx1cwp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIF9fY3BsdXNw bHVzCnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgCnwgI2lu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICNpbmNsdWRlIDx1bmlzdGQuaD4KfCAKfCAvKiBVc2UgcHJvdG90 eXBlcyBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuICovCnwgI2RlZmluZSBZWV9VU0VfUFJPVE9T CnwgCnwgLyogVGhlICJjb25zdCIgc3RvcmFnZS1jbGFzcy1tb2RpZmllciBpcyB2YWxpZC4gKi8K fCAjZGVmaW5lIFlZX1VTRV9DT05TVAp8IAp8ICNlbHNlCS8qICEgX19jcGx1c3BsdXMgKi8KfCAK fCAjaWYgX19TVERDX18KfCAKfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MKfCAjZGVmaW5lIFlZX1VT RV9DT05TVAp8IAp8ICNlbmRpZgkvKiBfX1NURENfXyAqLwp8ICNlbmRpZgkvKiAhIF9fY3BsdXNw bHVzICovCnwgCnwgI2lmZGVmIF9fVFVSQk9DX18KfCAgI3ByYWdtYSB3YXJuIC1yY2gKfCAgI3By YWdtYSB3YXJuIC11c2UKfCAjaW5jbHVkZSA8aW8uaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+Cnwg I2RlZmluZSBZWV9VU0VfQ09OU1QKfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MKfCAjZW5kaWYKfCAK fCAjaWZkZWYgWVlfVVNFX0NPTlNUCnwgI2RlZmluZSB5eWNvbnN0IGNvbnN0CnwgI2Vsc2UKfCAj ZGVmaW5lIHl5Y29uc3QKfCAjZW5kaWYKfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8ICNk ZWZpbmUgWVlfUFJPVE8ocHJvdG8pIHByb3RvCnwgI2Vsc2UKfCAjZGVmaW5lIFlZX1BST1RPKHBy b3RvKSAoKQp8ICNlbmRpZgp8IAp8IC8qIFJldHVybmVkIHVwb24gZW5kLW9mLWZpbGUuICovCnwg I2RlZmluZSBZWV9OVUxMIDAKfCAKfCAvKiBQcm9tb3RlcyBhIHBvc3NpYmx5IG5lZ2F0aXZlLCBw b3NzaWJseSBzaWduZWQgY2hhciB0byBhbiB1bnNpZ25lZAp8ICAqIGludGVnZXIgZm9yIHVzZSBh cyBhbiBhcnJheSBpbmRleC4gIElmIHRoZSBzaWduZWQgY2hhciBpcyBuZWdhdGl2ZSwKfCAgKiB3 ZSB3YW50IHRvIGluc3RlYWQgdHJlYXQgaXQgYXMgYW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVu Y2UgdGhlCnwgICogZG91YmxlIGNhc3QuCnwgICovCnwgI2RlZmluZSBZWV9TQ19UT19VSShjKSAo KHVuc2lnbmVkIGludCkgKHVuc2lnbmVkIGNoYXIpIGMpCnwgCnwgLyogRW50ZXIgYSBzdGFydCBj b25kaXRpb24uICBUaGlzIG1hY3JvIHJlYWxseSBvdWdodCB0byB0YWtlIGEgcGFyYW1ldGVyLAp8 ICAqIGJ1dCB3ZSBkbyBpdCB0aGUgZGlzZ3VzdGluZyBjcnVmdHkgd2F5IGZvcmNlZCBvbiB1cyBi eSB0aGUgKCktbGVzcwp8ICAqIGRlZmluaXRpb24gb2YgQkVHSU4uCnwgICovCnwgI2RlZmluZSBC RUdJTiB5eV9zdGFydCA9IDEgKyAyICoKfCAKfCAvKiBUcmFuc2xhdGUgdGhlIGN1cnJlbnQgc3Rh cnQgc3RhdGUgaW50byBhIHZhbHVlIHRoYXQgY2FuIGJlIGxhdGVyIGhhbmRlZAp8ICAqIHRvIEJF R0lOIHRvIHJldHVybiB0byB0aGUgc3RhdGUuICBUaGUgWVlTVEFURSBhbGlhcyBpcyBmb3IgbGV4 CnwgICogY29tcGF0aWJpbGl0eS4KfCAgKi8KfCAjZGVmaW5lIFlZX1NUQVJUICgoeXlfc3RhcnQg LSAxKSAvIDIpCnwgI2RlZmluZSBZWVNUQVRFIFlZX1NUQVJUCnwgCnwgLyogQWN0aW9uIG51bWJl ciBmb3IgRU9GIHJ1bGUgb2YgYSBnaXZlbiBzdGFydCBzdGF0ZS4gKi8KfCAjZGVmaW5lIFlZX1NU QVRFX0VPRihzdGF0ZSkgKFlZX0VORF9PRl9CVUZGRVIgKyBzdGF0ZSArIDEpCnwgCnwgLyogU3Bl Y2lhbCBhY3Rpb24gbWVhbmluZyAic3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBmaWxlIi4gKi8KfCAj ZGVmaW5lIFlZX05FV19GSUxFIHl5cmVzdGFydCggeXlpbiApCnwgCnwgI2RlZmluZSBZWV9FTkRf T0ZfQlVGRkVSX0NIQVIgMAp8IAp8IC8qIFNpemUgb2YgZGVmYXVsdCBpbnB1dCBidWZmZXIuICov CnwgI2RlZmluZSBZWV9CVUZfU0laRSAxNjM4NAp8IAp8IHR5cGVkZWYgc3RydWN0IHl5X2J1ZmZl cl9zdGF0ZSAqWVlfQlVGRkVSX1NUQVRFOwp8IAp8IGV4dGVybiBpbnQgeXlsZW5nOwp8IGV4dGVy biBGSUxFICp5eWluLCAqeXlvdXQ7CnwgCnwgI2RlZmluZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU4g MAp8ICNkZWZpbmUgRU9CX0FDVF9FTkRfT0ZfRklMRSAxCnwgI2RlZmluZSBFT0JfQUNUX0xBU1Rf TUFUQ0ggMgp8IAp8IC8qIFRoZSBmdW5reSBkby13aGlsZSBpbiB0aGUgZm9sbG93aW5nICNkZWZp bmUgaXMgdXNlZCB0byB0dXJuIHRoZSBkZWZpbml0aW9uCnwgICogaW50IGEgc2luZ2xlIEMgc3Rh dGVtZW50ICh3aGljaCBuZWVkcyBhIHNlbWktY29sb24gdGVybWluYXRvcikuICBUaGlzCnwgICog YXZvaWRzIHByb2JsZW1zIHdpdGggY29kZSBsaWtlOgp8ICAqCnwgICogCWlmICggY29uZGl0aW9u X2hvbGRzICkKfCAgKgkJeXlsZXNzKCA1ICk7CnwgICoJZWxzZQp8ICAqCQlkb19zb21ldGhpbmdf ZWxzZSgpOwp8ICAqCnwgICogUHJpb3IgdG8gdXNpbmcgdGhlIGRvLXdoaWxlIHRoZSBjb21waWxl ciB3b3VsZCBnZXQgdXBzZXQgYXQgdGhlCnwgICogImVsc2UiIGJlY2F1c2UgaXQgaW50ZXJwcmV0 ZWQgdGhlICJpZiIgc3RhdGVtZW50IGFzIGJlaW5nIGFsbAp8ICAqIGRvbmUgd2hlbiBpdCByZWFj aGVkIHRoZSAnOycgYWZ0ZXIgdGhlIHl5bGVzcygpIGNhbGwuCnwgICovCnwgCnwgLyogUmV0dXJu IGFsbCBidXQgdGhlIGZpcnN0ICduJyBtYXRjaGVkIGNoYXJhY3RlcnMgYmFjayB0byB0aGUgaW5w dXQgc3RyZWFtLiAqLwp8IAp8ICNkZWZpbmUgeXlsZXNzKG4pIFwKfCAJZG8gXAp8IAkJeyBcCnwg CQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwKfCAJCSp5eV9jcCA9 IHl5X2hvbGRfY2hhcjsgXAp8IAkJWVlfUkVTVE9SRV9ZWV9NT1JFX09GRlNFVCBcCnwgCQl5eV9j X2J1Zl9wID0geXlfY3AgPSB5eV9icCArIG4gLSBZWV9NT1JFX0FESjsgXAp8IAkJWVlfRE9fQkVG T1JFX0FDVElPTjsgLyogc2V0IHVwIHl5dGV4dCBhZ2FpbiAqLyBcCnwgCQl9IFwKfCAJd2hpbGUg KCAwICkKfCAKfCAjZGVmaW5lIHVucHV0KGMpIHl5dW5wdXQoIGMsIHl5dGV4dF9wdHIgKQp8IAp8 IC8qIFRoZSBmb2xsb3dpbmcgaXMgYmVjYXVzZSB3ZSBjYW5ub3QgcG9ydGFibHkgZ2V0IG91ciBo YW5kcyBvbiBzaXplX3QKfCAgKiAod2l0aG91dCBhdXRvY29uZidzIGhlbHAsIHdoaWNoIGlzbid0 IGF2YWlsYWJsZSBiZWNhdXNlIHdlIHdhbnQKfCAgKiBmbGV4LWdlbmVyYXRlZCBzY2FubmVycyB0 byBjb21waWxlIG9uIHRoZWlyIG93bikuCnwgICovCnwgdHlwZWRlZiB1bnNpZ25lZCBpbnQgeXlf c2l6ZV90Owp8IAp8IAp8IHN0cnVjdCB5eV9idWZmZXJfc3RhdGUKfCAJewp8IAlGSUxFICp5eV9p bnB1dF9maWxlOwp8IAp8IAljaGFyICp5eV9jaF9idWY7CQkvKiBpbnB1dCBidWZmZXIgKi8KfCAJ Y2hhciAqeXlfYnVmX3BvczsJCS8qIGN1cnJlbnQgcG9zaXRpb24gaW4gaW5wdXQgYnVmZmVyICov CnwgCnwgCS8qIFNpemUgb2YgaW5wdXQgYnVmZmVyIGluIGJ5dGVzLCBub3QgaW5jbHVkaW5nIHJv b20gZm9yIEVPQgp8IAkgKiBjaGFyYWN0ZXJzLgp8IAkgKi8KfCAJeXlfc2l6ZV90IHl5X2J1Zl9z aXplOwp8IAp8IAkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGludG8geXlfY2hfYnVmLCBu b3QgaW5jbHVkaW5nIEVPQgp8IAkgKiBjaGFyYWN0ZXJzLgp8IAkgKi8KfCAJaW50IHl5X25fY2hh cnM7CnwgCnwgCS8qIFdoZXRoZXIgd2UgIm93biIgdGhlIGJ1ZmZlciAtIGkuZS4sIHdlIGtub3cg d2UgY3JlYXRlZCBpdCwKfCAJICogYW5kIGNhbiByZWFsbG9jKCkgaXQgdG8gZ3JvdyBpdCwgYW5k IHNob3VsZCBmcmVlKCkgaXQgdG8KfCAJICogZGVsZXRlIGl0Lgp8IAkgKi8KfCAJaW50IHl5X2lz X291cl9idWZmZXI7CnwgCnwgCS8qIFdoZXRoZXIgdGhpcyBpcyBhbiAiaW50ZXJhY3RpdmUiIGlu cHV0IHNvdXJjZTsgaWYgc28sIGFuZAp8IAkgKiBpZiB3ZSdyZSB1c2luZyBzdGRpbyBmb3IgaW5w dXQsIHRoZW4gd2Ugd2FudCB0byB1c2UgZ2V0YygpCnwgCSAqIGluc3RlYWQgb2YgZnJlYWQoKSwg dG8gbWFrZSBzdXJlIHdlIHN0b3AgZmV0Y2hpbmcgaW5wdXQgYWZ0ZXIKfCAJICogZWFjaCBuZXds aW5lLgp8IAkgKi8KfCAJaW50IHl5X2lzX2ludGVyYWN0aXZlOwp8IAp8IAkvKiBXaGV0aGVyIHdl J3JlIGNvbnNpZGVyZWQgdG8gYmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUuCnwgCSAqIElm IHNvLCAnXicgcnVsZXMgd2lsbCBiZSBhY3RpdmUgb24gdGhlIG5leHQgbWF0Y2gsIG90aGVyd2lz ZQp8IAkgKiBub3QuCnwgCSAqLwp8IAlpbnQgeXlfYXRfYm9sOwp8IAp8IAkvKiBXaGV0aGVyIHRv IHRyeSB0byBmaWxsIHRoZSBpbnB1dCBidWZmZXIgd2hlbiB3ZSByZWFjaCB0aGUKfCAJICogZW5k IG9mIGl0Lgp8IAkgKi8KfCAJaW50IHl5X2ZpbGxfYnVmZmVyOwp8IAp8IAlpbnQgeXlfYnVmZmVy X3N0YXR1czsKfCAjZGVmaW5lIFlZX0JVRkZFUl9ORVcgMAp8ICNkZWZpbmUgWVlfQlVGRkVSX05P Uk1BTCAxCnwgCS8qIFdoZW4gYW4gRU9GJ3MgYmVlbiBzZWVuIGJ1dCB0aGVyZSdzIHN0aWxsIHNv bWUgdGV4dCB0byBwcm9jZXNzCnwgCSAqIHRoZW4gd2UgbWFyayB0aGUgYnVmZmVyIGFzIFlZX0VP Rl9QRU5ESU5HLCB0byBpbmRpY2F0ZSB0aGF0IHdlCnwgCSAqIHNob3VsZG4ndCB0cnkgcmVhZGlu ZyBmcm9tIHRoZSBpbnB1dCBzb3VyY2UgYW55IG1vcmUuICBXZSBtaWdodAp8IAkgKiBzdGlsbCBo YXZlIGEgYnVuY2ggb2YgdG9rZW5zIHRvIG1hdGNoLCB0aG91Z2gsIGJlY2F1c2Ugb2YKfCAJICog cG9zc2libGUgYmFja2luZy11cC4KfCAJICoKfCAJICogV2hlbiB3ZSBhY3R1YWxseSBzZWUgdGhl IEVPRiwgd2UgY2hhbmdlIHRoZSBzdGF0dXMgdG8gIm5ldyIKfCAJICogKHZpYSB5eXJlc3RhcnQo KSksIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGNvbnRpbnVlIHNjYW5uaW5nIGJ5CnwgCSAqIGp1c3Qg cG9pbnRpbmcgeXlpbiBhdCBhIG5ldyBpbnB1dCBmaWxlLgp8IAkgKi8KfCAjZGVmaW5lIFlZX0JV RkZFUl9FT0ZfUEVORElORyAyCnwgCX07CnwgCnwgc3RhdGljIFlZX0JVRkZFUl9TVEFURSB5eV9j dXJyZW50X2J1ZmZlciA9IDA7CnwgCnwgLyogV2UgcHJvdmlkZSBtYWNyb3MgZm9yIGFjY2Vzc2lu ZyBidWZmZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhlCnwgICogZnV0dXJlIHdlIHdhbnQgdG8gcHV0 IHRoZSBidWZmZXIgc3RhdGVzIGluIGEgbW9yZSBnZW5lcmFsCnwgICogInNjYW5uZXIgc3RhdGUi Lgp8ICAqLwp8ICNkZWZpbmUgWVlfQ1VSUkVOVF9CVUZGRVIgeXlfY3VycmVudF9idWZmZXIKfCAK fCAKfCAvKiB5eV9ob2xkX2NoYXIgaG9sZHMgdGhlIGNoYXJhY3RlciBsb3N0IHdoZW4geXl0ZXh0 IGlzIGZvcm1lZC4gKi8KfCBzdGF0aWMgY2hhciB5eV9ob2xkX2NoYXI7CnwgCnwgc3RhdGljIGlu dCB5eV9uX2NoYXJzOwkJLyogbnVtYmVyIG9mIGNoYXJhY3RlcnMgcmVhZCBpbnRvIHl5X2NoX2J1 ZiAqLwp8IAp8IAp8IGludCB5eWxlbmc7CnwgCnwgLyogUG9pbnRzIHRvIGN1cnJlbnQgY2hhcmFj dGVyIGluIGJ1ZmZlci4gKi8KfCBzdGF0aWMgY2hhciAqeXlfY19idWZfcCA9IChjaGFyICopIDA7 Cnwgc3RhdGljIGludCB5eV9pbml0ID0gMTsJCS8qIHdoZXRoZXIgd2UgbmVlZCB0byBpbml0aWFs aXplICovCnwgc3RhdGljIGludCB5eV9zdGFydCA9IDA7CS8qIHN0YXJ0IHN0YXRlIG51bWJlciAq Lwp8IAp8IC8qIEZsYWcgd2hpY2ggaXMgdXNlZCB0byBhbGxvdyB5eXdyYXAoKSdzIHRvIGRvIGJ1 ZmZlciBzd2l0Y2hlcwp8ICAqIGluc3RlYWQgb2Ygc2V0dGluZyB1cCBhIGZyZXNoIHl5aW4uICBB IGJpdCBvZiBhIGhhY2sgLi4uCnwgICovCnwgc3RhdGljIGludCB5eV9kaWRfYnVmZmVyX3N3aXRj aF9vbl9lb2Y7CnwgCnwgdm9pZCB5eXJlc3RhcnQgWVlfUFJPVE8oKCBGSUxFICppbnB1dF9maWxl ICkpOwp8IAp8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9T VEFURSBuZXdfYnVmZmVyICkpOwp8IHZvaWQgeXlfbG9hZF9idWZmZXJfc3RhdGUgWVlfUFJPVE8o KCB2b2lkICkpOwp8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyIFlZX1BST1RPKCgg RklMRSAqZmlsZSwgaW50IHNpemUgKSk7Cnwgdm9pZCB5eV9kZWxldGVfYnVmZmVyIFlZX1BST1RP KCggWVlfQlVGRkVSX1NUQVRFIGIgKSk7Cnwgdm9pZCB5eV9pbml0X2J1ZmZlciBZWV9QUk9UTygo IFlZX0JVRkZFUl9TVEFURSBiLCBGSUxFICpmaWxlICkpOwp8IHZvaWQgeXlfZmx1c2hfYnVmZmVy IFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIgKSk7CnwgI2RlZmluZSBZWV9GTFVTSF9CVUZG RVIgeXlfZmx1c2hfYnVmZmVyKCB5eV9jdXJyZW50X2J1ZmZlciApCnwgCnwgWVlfQlVGRkVSX1NU QVRFIHl5X3NjYW5fYnVmZmVyIFlZX1BST1RPKCggY2hhciAqYmFzZSwgeXlfc2l6ZV90IHNpemUg KSk7CnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nIFlZX1BST1RPKCggeXljb25zdCBj aGFyICp5eV9zdHIgKSk7CnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMgWVlfUFJPVE8o KCB5eWNvbnN0IGNoYXIgKmJ5dGVzLCBpbnQgbGVuICkpOwp8IAp8IHN0YXRpYyB2b2lkICp5eV9m bGV4X2FsbG9jIFlZX1BST1RPKCggeXlfc2l6ZV90ICkpOwp8IHN0YXRpYyB2b2lkICp5eV9mbGV4 X3JlYWxsb2MgWVlfUFJPVE8oKCB2b2lkICosIHl5X3NpemVfdCApKSBfX3VudXNlZDsKfCBzdGF0 aWMgdm9pZCB5eV9mbGV4X2ZyZWUgWVlfUFJPVE8oKCB2b2lkICogKSk7CnwgCnwgI2RlZmluZSB5 eV9uZXdfYnVmZmVyIHl5X2NyZWF0ZV9idWZmZXIKfCAKfCAjZGVmaW5lIHl5X3NldF9pbnRlcmFj dGl2ZShpc19pbnRlcmFjdGl2ZSkgXAp8IAl7IFwKfCAJaWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVy ICkgXAp8IAkJeXlfY3VycmVudF9idWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9C VUZfU0laRSApOyBcCnwgCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9pc19pbnRlcmFjdGl2ZSA9IGlz X2ludGVyYWN0aXZlOyBcCnwgCX0KfCAKfCAjZGVmaW5lIHl5X3NldF9ib2woYXRfYm9sKSBcCnwg CXsgXAp8IAlpZiAoICEgeXlfY3VycmVudF9idWZmZXIgKSBcCnwgCQl5eV9jdXJyZW50X2J1ZmZl ciA9IHl5X2NyZWF0ZV9idWZmZXIoIHl5aW4sIFlZX0JVRl9TSVpFICk7IFwKfCAJeXlfY3VycmVu dF9idWZmZXItPnl5X2F0X2JvbCA9IGF0X2JvbDsgXAp8IAl9CnwgCnwgI2RlZmluZSBZWV9BVF9C T0woKSAoeXlfY3VycmVudF9idWZmZXItPnl5X2F0X2JvbCkKfCAKfCAKfCAjZGVmaW5lIFlZX1VT RVNfUkVKRUNUCnwgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFlZX0NIQVI7CnwgRklMRSAqeXlpbiA9 IChGSUxFICopIDAsICp5eW91dCA9IChGSUxFICopIDA7CnwgdHlwZWRlZiBpbnQgeXlfc3RhdGVf dHlwZTsKfCBleHRlcm4gY2hhciAqeXl0ZXh0Owp8ICNkZWZpbmUgeXl0ZXh0X3B0ciB5eXRleHQK fCAKfCBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUgWVlfUFJPVE8o KCB2b2lkICkpOwp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMgWVlfUFJP VE8oKCB5eV9zdGF0ZV90eXBlIGN1cnJlbnRfc3RhdGUgKSk7Cnwgc3RhdGljIGludCB5eV9nZXRf bmV4dF9idWZmZXIgWVlfUFJPVE8oKCB2b2lkICkpOwp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vy cm9yIFlZX1BST1RPKCggeXljb25zdCBjaGFyIG1zZ1tdICkpIF9fZGVhZDI7CnwgCnwgLyogRG9u ZSBhZnRlciB0aGUgY3VycmVudCBwYXR0ZXJuIGhhcyBiZWVuIG1hdGNoZWQgYW5kIGJlZm9yZSB0 aGUKfCAgKiBjb3JyZXNwb25kaW5nIGFjdGlvbiAtIHNldHMgdXAgeXl0ZXh0Lgp8ICAqLwp8ICNk ZWZpbmUgWVlfRE9fQkVGT1JFX0FDVElPTiBcCnwgCXl5dGV4dF9wdHIgPSB5eV9icDsgXAp8IAl5 eXRleHRfcHRyIC09IHl5X21vcmVfbGVuOyBcCnwgCXl5bGVuZyA9IChpbnQpICh5eV9jcCAtIHl5 dGV4dF9wdHIpOyBcCnwgCXl5X2hvbGRfY2hhciA9ICp5eV9jcDsgXAp8IAkqeXlfY3AgPSAnXDAn OyBcCnwgCXl5X2NfYnVmX3AgPSB5eV9jcDsKfCAKfCAjZGVmaW5lIFlZX05VTV9SVUxFUyA4Cnwg I2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSIDkKfCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlf YWNjbGlzdFsyM10gPQp8ICAgICB7ICAgMCwKfCAgICAgICAgIDksICAgIDcsICAgIDgsICAgIDgs ICAgIDEsICAgIDcsICAgIDgsICAgIDIsICAgIDcsICAgIDgsCnwgICAgICAgICAzLCAgICA3LCAg ICA4LCAgICA0LCAgICA3LCAgICA4LCAgICA1LCAgICA3LCAgICA4LCAgICA2LAp8ICAgICAgICAg NywgICAgOAp8ICAgICB9IDsKfCAKfCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfYWNjZXB0 WzE0XSA9CnwgICAgIHsgICAwLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMiwgICAgNCwg ICAgNSwgICAgOCwgICAxMSwgICAxNCwgICAxNywKfCAgICAgICAgMjAsICAgMjMsICAgMjMKfCAg ICAgfSA7CnwgCnwgc3RhdGljIHl5Y29uc3QgaW50IHl5X2VjWzI1Nl0gPQp8ICAgICB7ICAgMCwK fCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDIsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDMsICAgIDQsICAgIDUsICAgIDYsCnwgCnwgICAgICAgICA3 LCAgICA4LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8 ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8IAp8ICAgICAgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwg ICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxCnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5eWNvbnN0IGludCB5eV9tZXRhWzldID0KfCAg ICAgeyAgIDAsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxCnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGludCB5eV9iYXNlWzEz XSA9CnwgICAgIHsgICAwLAp8ICAgICAgICAgMCwgICAgMCwgICAgOSwgICAxMCwgICAxMCwgICAx MCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwKfCAgICAgICAgMTAsICAgMTAKfCAgICAgfSA7Cnwg Cnwgc3RhdGljIHl5Y29uc3Qgc2hvcnQgaW50IHl5X2RlZlsxM10gPQp8ICAgICB7ICAgMCwKfCAg ICAgICAgMTIsICAgIDEsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIs ICAgMTIsCnwgICAgICAgIDEyLCAgICAwCnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5eWNvbnN0IHNo b3J0IGludCB5eV9ueHRbMTldID0KfCAgICAgeyAgIDAsCnwgICAgICAgICA0LCAgICA1LCAgICA2 LCAgICA3LCAgICA4LCAgICA5LCAgIDEwLCAgIDExLCAgIDEyLCAgICAzLAp8ICAgICAgICAxMiwg ICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMgp8ICAgICB9IDsKfCAKfCBz dGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfY2hrWzE5XSA9CnwgICAgIHsgICAwLAp8ICAgICAg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMywgICAx MiwKfCAgICAgICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIK fCAgICAgfSA7CnwgCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfc3RhdGVfYnVmW1lZX0JVRl9T SVpFICsgMl0sICp5eV9zdGF0ZV9wdHI7Cnwgc3RhdGljIGNoYXIgKnl5X2Z1bGxfbWF0Y2g7Cnwg c3RhdGljIGludCB5eV9scDsKfCAjZGVmaW5lIFJFSkVDVCBcCnwgeyBcCnwgKnl5X2NwID0geXlf aG9sZF9jaGFyOyAvKiB1bmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQgKi8gXAp8IHl5 X2NwID0geXlfZnVsbF9tYXRjaDsgLyogcmVzdG9yZSBwb3NzLiBiYWNrZWQtb3ZlciB0ZXh0ICov IFwKfCArK3l5X2xwOyBcCnwgZ290byBmaW5kX3J1bGU7IFwKfCB9Cnwgc3RhdGljIGludCB5eV9t b3JlX2ZsYWcgPSAwOwp8IHN0YXRpYyBpbnQgeXlfbW9yZV9sZW4gPSAwOwp8ICNkZWZpbmUgeXlt b3JlKCkgKHl5X21vcmVfZmxhZyA9IDEpCnwgI2RlZmluZSBZWV9NT1JFX0FESiB5eV9tb3JlX2xl bgp8ICNkZWZpbmUgWVlfUkVTVE9SRV9ZWV9NT1JFX09GRlNFVAp8IGNoYXIgKnl5dGV4dDsKfCAj bGluZSAxICJjb25mdGVzdC5sIgp8ICNkZWZpbmUgSU5JVElBTCAwCnwgI2xpbmUgMzkxICJsZXgu eXkuYyIKfCAKfCAvKiBNYWNyb3MgYWZ0ZXIgdGhpcyBwb2ludCBjYW4gYWxsIGJlIG92ZXJyaWRk ZW4gYnkgdXNlciBkZWZpbml0aW9ucyBpbgp8ICAqIHNlY3Rpb24gMS4KfCAgKi8KfCAKfCAjaWZu ZGVmIFlZX1NLSVBfWVlXUkFQCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiBpbnQg eXl3cmFwIFlZX1BST1RPKCggdm9pZCApKTsKfCAjZWxzZQp8IGV4dGVybiBpbnQgeXl3cmFwIFlZ X1BST1RPKCggdm9pZCApKTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAjaWZuZGVmIFlZX05PX1VO UFVUCnwgc3RhdGljIHZvaWQgeXl1bnB1dCBZWV9QUk9UTygoIGludCBjLCBjaGFyICpidWZfcHRy ICkpOwp8ICNlbmRpZgp8IAp8ICNpZm5kZWYgeXl0ZXh0X3B0cgp8IHN0YXRpYyB2b2lkIHl5X2Zs ZXhfc3RybmNweSBZWV9QUk9UTygoIGNoYXIgKiwgeXljb25zdCBjaGFyICosIGludCApKTsKfCAj ZW5kaWYKfCAKfCAjaWZkZWYgWVlfTkVFRF9TVFJMRU4KfCBzdGF0aWMgaW50IHl5X2ZsZXhfc3Ry bGVuIFlZX1BST1RPKCggeXljb25zdCBjaGFyICogKSk7CnwgI2VuZGlmCnwgCnwgI2lmbmRlZiBZ WV9OT19JTlBVVAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IHN0YXRpYyBpbnQgeXlpbnB1dCBZWV9Q Uk9UTygoIHZvaWQgKSk7CnwgI2Vsc2UKfCBzdGF0aWMgaW50IGlucHV0IFlZX1BST1RPKCggdm9p ZCApKTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAjaWYgWVlfU1RBQ0tfVVNFRAp8IHN0YXRpYyBp bnQgeXlfc3RhcnRfc3RhY2tfcHRyID0gMDsKfCBzdGF0aWMgaW50IHl5X3N0YXJ0X3N0YWNrX2Rl cHRoID0gMDsKfCBzdGF0aWMgaW50ICp5eV9zdGFydF9zdGFjayA9IDA7CnwgI2lmbmRlZiBZWV9O T19QVVNIX1NUQVRFCnwgc3RhdGljIHZvaWQgeXlfcHVzaF9zdGF0ZSBZWV9QUk9UTygoIGludCBu ZXdfc3RhdGUgKSk7CnwgI2VuZGlmCnwgI2lmbmRlZiBZWV9OT19QT1BfU1RBVEUKfCBzdGF0aWMg dm9pZCB5eV9wb3Bfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOwp8ICNlbmRpZgp8ICNpZm5kZWYg WVlfTk9fVE9QX1NUQVRFCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUgWVlfUFJPVE8oKCB2b2lk ICkpOwp8ICNlbmRpZgp8IAp8ICNlbHNlCnwgI2RlZmluZSBZWV9OT19QVVNIX1NUQVRFIDEKfCAj ZGVmaW5lIFlZX05PX1BPUF9TVEFURSAxCnwgI2RlZmluZSBZWV9OT19UT1BfU1RBVEUgMQp8ICNl bmRpZgp8IAp8ICNpZmRlZiBZWV9NQUxMT0NfREVDTAp8IFlZX01BTExPQ19ERUNMCnwgI2Vsc2UK fCAjaWYgX19TVERDX18KfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2luY2x1ZGUgPHN0ZGxpYi5o Pgp8ICNlbmRpZgp8ICNlbHNlCnwgLyogSnVzdCB0cnkgdG8gZ2V0IGJ5IHdpdGhvdXQgZGVjbGFy aW5nIHRoZSByb3V0aW5lcy4gIFRoaXMgd2lsbCBmYWlsCnwgICogbWlzZXJhYmx5IG9uIG5vbi1B TlNJIHN5c3RlbXMgZm9yIHdoaWNoIHNpemVvZihzaXplX3QpICE9IHNpemVvZihpbnQpCnwgICog b3Igc2l6ZW9mKHZvaWQqKSAhPSBzaXplb2YoaW50KS4KfCAgKi8KfCAjZW5kaWYKfCAjZW5kaWYK fCAKfCAvKiBBbW91bnQgb2Ygc3R1ZmYgdG8gc2x1cnAgdXAgd2l0aCBlYWNoIHJlYWQuICovCnwg I2lmbmRlZiBZWV9SRUFEX0JVRl9TSVpFCnwgI2RlZmluZSBZWV9SRUFEX0JVRl9TSVpFIDgxOTIK fCAjZW5kaWYKfCAKfCAvKiBDb3B5IHdoYXRldmVyIHRoZSBsYXN0IHJ1bGUgbWF0Y2hlZCB0byB0 aGUgc3RhbmRhcmQgb3V0cHV0LiAqLwp8IAp8ICNpZm5kZWYgRUNITwp8IC8qIFRoaXMgdXNlZCB0 byBiZSBhbiBmcHV0cygpLCBidXQgc2luY2UgdGhlIHN0cmluZyBtaWdodCBjb250YWluIE5VTCdz LAp8ICAqIHdlIG5vdyB1c2UgZndyaXRlKCkuCnwgICovCnwgI2RlZmluZSBFQ0hPICh2b2lkKSBm d3JpdGUoIHl5dGV4dCwgeXlsZW5nLCAxLCB5eW91dCApCnwgI2VuZGlmCnwgCnwgLyogR2V0cyBp bnB1dCBhbmQgc3R1ZmZzIGl0IGludG8gImJ1ZiIuICBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFk LCBvciBZWV9OVUxMLAp8ICAqIGlzIHJldHVybmVkIGluICJyZXN1bHQiLgp8ICAqLwp8ICNpZm5k ZWYgWVlfSU5QVVQKfCAjZGVmaW5lIFlZX0lOUFVUKGJ1ZixyZXN1bHQsbWF4X3NpemUpIFwKfCAJ aWYgKCB5eV9jdXJyZW50X2J1ZmZlci0+eXlfaXNfaW50ZXJhY3RpdmUgKSBcCnwgCQl7IFwKfCAJ CWludCBjID0gJyonLCBuOyBcCnwgCQlmb3IgKCBuID0gMDsgbiA8IG1heF9zaXplICYmIFwKfCAJ CQkgICAgIChjID0gZ2V0YyggeXlpbiApKSAhPSBFT0YgJiYgYyAhPSAnXG4nOyArK24gKSBcCnwg CQkJYnVmW25dID0gKGNoYXIpIGM7IFwKfCAJCWlmICggYyA9PSAnXG4nICkgXAp8IAkJCWJ1Zltu KytdID0gKGNoYXIpIGM7IFwKfCAJCWlmICggYyA9PSBFT0YgJiYgZmVycm9yKCB5eWluICkgKSBc CnwgCQkJWVlfRkFUQUxfRVJST1IoICJpbnB1dCBpbiBmbGV4IHNjYW5uZXIgZmFpbGVkIiApOyBc CnwgCQlyZXN1bHQgPSBuOyBcCnwgCQl9IFwKfCAJZWxzZSBpZiAoICgocmVzdWx0ID0gZnJlYWQo IGJ1ZiwgMSwgbWF4X3NpemUsIHl5aW4gKSkgPT0gMCkgXAp8IAkJICAmJiBmZXJyb3IoIHl5aW4g KSApIFwKfCAJCVlZX0ZBVEFMX0VSUk9SKCAiaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIg KTsKfCAjZW5kaWYKfCAKfCAvKiBObyBzZW1pLWNvbG9uIGFmdGVyIHJldHVybjsgY29ycmVjdCB1 c2FnZSBpcyB0byB3cml0ZSAieXl0ZXJtaW5hdGUoKTsiIC0KfCAgKiB3ZSBkb24ndCB3YW50IGFu IGV4dHJhICc7JyBhZnRlciB0aGUgInJldHVybiIgYmVjYXVzZSB0aGF0IHdpbGwgY2F1c2UKfCAg KiBzb21lIGNvbXBpbGVycyB0byBjb21wbGFpbiBhYm91dCB1bnJlYWNoYWJsZSBzdGF0ZW1lbnRz Lgp8ICAqLwp8ICNpZm5kZWYgeXl0ZXJtaW5hdGUKfCAjZGVmaW5lIHl5dGVybWluYXRlKCkgcmV0 dXJuIFlZX05VTEwKfCAjZW5kaWYKfCAKfCAvKiBOdW1iZXIgb2YgZW50cmllcyBieSB3aGljaCBz dGFydC1jb25kaXRpb24gc3RhY2sgZ3Jvd3MuICovCnwgI2lmbmRlZiBZWV9TVEFSVF9TVEFDS19J TkNSCnwgI2RlZmluZSBZWV9TVEFSVF9TVEFDS19JTkNSIDI1CnwgI2VuZGlmCnwgCnwgLyogUmVw b3J0IGEgZmF0YWwgZXJyb3IuICovCnwgI2lmbmRlZiBZWV9GQVRBTF9FUlJPUgp8ICNkZWZpbmUg WVlfRkFUQUxfRVJST1IobXNnKSB5eV9mYXRhbF9lcnJvciggbXNnICkKfCAjZW5kaWYKfCAKfCAv KiBEZWZhdWx0IGRlY2xhcmF0aW9uIG9mIGdlbmVyYXRlZCBzY2FubmVyIC0gYSBkZWZpbmUgc28g dGhlIHVzZXIgY2FuCnwgICogZWFzaWx5IGFkZCBwYXJhbWV0ZXJzLgp8ICAqLwp8ICNpZm5kZWYg WVlfREVDTAp8ICNkZWZpbmUgWVlfREVDTCBpbnQgeXlsZXggWVlfUFJPVE8oKCB2b2lkICkpCnwg I2VuZGlmCnwgCnwgLyogQ29kZSBleGVjdXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcnVs ZSwgYWZ0ZXIgeXl0ZXh0IGFuZCB5eWxlbmcKfCAgKiBoYXZlIGJlZW4gc2V0IHVwLgp8ICAqLwp8 ICNpZm5kZWYgWVlfVVNFUl9BQ1RJT04KfCAjZGVmaW5lIFlZX1VTRVJfQUNUSU9OCnwgI2VuZGlm CnwgCnwgLyogQ29kZSBleGVjdXRlZCBhdCB0aGUgZW5kIG9mIGVhY2ggcnVsZS4gKi8KfCAjaWZu ZGVmIFlZX0JSRUFLCnwgI2RlZmluZSBZWV9CUkVBSyBicmVhazsKfCAjZW5kaWYKfCAKfCAjZGVm aW5lIFlZX1JVTEVfU0VUVVAgXAp8IAlZWV9VU0VSX0FDVElPTgp8IAp8IFlZX0RFQ0wKfCAJewp8 IAl5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7CnwgCWNoYXIgKnl5X2NwLCAqeXlfYnA7 CnwgCWludCB5eV9hY3Q7CnwgCnwgI2xpbmUgMSAiY29uZnRlc3QubCIKfCAKfCAjbGluZSA1NDQg ImxleC55eS5jIgp8IAp8IAlpZiAoIHl5X2luaXQgKQp8IAkJewp8IAkJeXlfaW5pdCA9IDA7Cnwg CnwgI2lmZGVmIFlZX1VTRVJfSU5JVAp8IAkJWVlfVVNFUl9JTklUOwp8ICNlbmRpZgp8IAp8IAkJ aWYgKCAhIHl5X3N0YXJ0ICkKfCAJCQl5eV9zdGFydCA9IDE7CS8qIGZpcnN0IHN0YXJ0IHN0YXRl ICovCnwgCnwgCQlpZiAoICEgeXlpbiApCnwgCQkJeXlpbiA9IHN0ZGluOwp8IAp8IAkJaWYgKCAh IHl5b3V0ICkKfCAJCQl5eW91dCA9IHN0ZG91dDsKfCAKfCAJCWlmICggISB5eV9jdXJyZW50X2J1 ZmZlciApCnwgCQkJeXlfY3VycmVudF9idWZmZXIgPQp8IAkJCQl5eV9jcmVhdGVfYnVmZmVyKCB5 eWluLCBZWV9CVUZfU0laRSApOwp8IAp8IAkJeXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKfCAJCX0K fCAKfCAJd2hpbGUgKCAxICkJCS8qIGxvb3BzIHVudGlsIGVuZC1vZi1maWxlIGlzIHJlYWNoZWQg Ki8KfCAJCXsKfCAJCXl5X21vcmVfbGVuID0gMDsKfCAJCWlmICggeXlfbW9yZV9mbGFnICkKfCAJ CQl7CnwgCQkJeXlfbW9yZV9sZW4gPSB5eV9jX2J1Zl9wIC0geXl0ZXh0X3B0cjsKfCAJCQl5eV9t b3JlX2ZsYWcgPSAwOwp8IAkJCX0KfCAJCXl5X2NwID0geXlfY19idWZfcDsKfCAKfCAJCS8qIFN1 cHBvcnQgb2YgeXl0ZXh0LiAqLwp8IAkJKnl5X2NwID0geXlfaG9sZF9jaGFyOwp8IAp8IAkJLyog eXlfYnAgcG9pbnRzIHRvIHRoZSBwb3NpdGlvbiBpbiB5eV9jaF9idWYgb2YgdGhlIHN0YXJ0IG9m CnwgCQkgKiB0aGUgY3VycmVudCBydW4uCnwgCQkgKi8KfCAJCXl5X2JwID0geXlfY3A7CnwgCnwg CQl5eV9jdXJyZW50X3N0YXRlID0geXlfc3RhcnQ7CnwgCQl5eV9zdGF0ZV9wdHIgPSB5eV9zdGF0 ZV9idWY7CnwgCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9jdXJyZW50X3N0YXRlOwp8IHl5X21hdGNo Ogp8IAkJZG8KfCAJCQl7CnwgCQkJWVlfQ0hBUiB5eV9jID0geXlfZWNbWVlfU0NfVE9fVUkoKnl5 X2NwKV07CnwgCQkJd2hpbGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5 X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQp8IAkJCQl7CnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUg PSAoaW50KSB5eV9kZWZbeXlfY3VycmVudF9zdGF0ZV07CnwgCQkJCWlmICggeXlfY3VycmVudF9z dGF0ZSA+PSAxMyApCnwgCQkJCQl5eV9jID0geXlfbWV0YVsodW5zaWduZWQgaW50KSB5eV9jXTsK fCAJCQkJfQp8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50 X3N0YXRlXSArICh1bnNpZ25lZCBpbnQpIHl5X2NdOwp8IAkJCSp5eV9zdGF0ZV9wdHIrKyA9IHl5 X2N1cnJlbnRfc3RhdGU7CnwgCQkJKyt5eV9jcDsKfCAJCQl9CnwgCQl3aGlsZSAoIHl5X2Jhc2Vb eXlfY3VycmVudF9zdGF0ZV0gIT0gMTAgKTsKfCAKfCB5eV9maW5kX2FjdGlvbjoKfCAJCXl5X2N1 cnJlbnRfc3RhdGUgPSAqLS15eV9zdGF0ZV9wdHI7CnwgCQl5eV9scCA9IHl5X2FjY2VwdFt5eV9j dXJyZW50X3N0YXRlXTsKfCBnb3RvIGZpbmRfcnVsZTsgLyogYXZvaWQgYGRlZmluZWQgYnV0IG5v dCB1c2VkJyB3YXJuaW5nICovCnwgZmluZF9ydWxlOiAvKiB3ZSBicmFuY2ggdG8gdGhpcyBsYWJl bCB3aGVuIGJhY2tpbmcgdXAgKi8KfCAJCWZvciAoIDsgOyApIC8qIHVudGlsIHdlIGZpbmQgd2hh dCBydWxlIHdlIG1hdGNoZWQgKi8KfCAJCQl7CnwgCQkJaWYgKCB5eV9scCAmJiB5eV9scCA8IHl5 X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlICsgMV0gKQp8IAkJCQl7CnwgCQkJCXl5X2FjdCA9IHl5 X2FjY2xpc3RbeXlfbHBdOwp8IAkJCQkJewp8IAkJCQkJeXlfZnVsbF9tYXRjaCA9IHl5X2NwOwp8 IAkJCQkJYnJlYWs7CnwgCQkJCQl9CnwgCQkJCX0KfCAJCQktLXl5X2NwOwp8IAkJCXl5X2N1cnJl bnRfc3RhdGUgPSAqLS15eV9zdGF0ZV9wdHI7CnwgCQkJeXlfbHAgPSB5eV9hY2NlcHRbeXlfY3Vy cmVudF9zdGF0ZV07CnwgCQkJfQp8IAp8IAkJWVlfRE9fQkVGT1JFX0FDVElPTjsKfCAKfCAKfCBk b19hY3Rpb246CS8qIFRoaXMgbGFiZWwgaXMgdXNlZCBvbmx5IHRvIGFjY2VzcyBFT0YgYWN0aW9u cy4gKi8KfCAKfCAKfCAJCXN3aXRjaCAoIHl5X2FjdCApCnwgCXsgLyogYmVnaW5uaW5nIG9mIGFj dGlvbiBzd2l0Y2ggKi8KfCBjYXNlIDE6CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDIgImNvbmZ0 ZXN0LmwiCnwgeyBFQ0hPOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSAyOgp8IFlZX1JVTEVfU0VUVVAK fCAjbGluZSAzICJjb25mdGVzdC5sIgp8IHsgUkVKRUNUOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSAz Ogp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSA0ICJjb25mdGVzdC5sIgp8IHsgeXltb3JlICgpOyB9 CnwgCVlZX0JSRUFLCnwgY2FzZSA0Ogp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSA1ICJjb25mdGVz dC5sIgp8IHsgeXlsZXNzICgxKTsgfQp8IAlZWV9CUkVBSwp8IGNhc2UgNToKfCBZWV9SVUxFX1NF VFVQCnwgI2xpbmUgNiAiY29uZnRlc3QubCIKfCB7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0K fCAJWVlfQlJFQUsKfCBjYXNlIDY6CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDcgImNvbmZ0ZXN0 LmwiCnwgeyB1bnB1dCAoeXl0ZXh0WzBdKTsgfQp8IAlZWV9CUkVBSwp8IGNhc2UgNzoKfCBZWV9S VUxFX1NFVFVQCnwgI2xpbmUgOCAiY29uZnRlc3QubCIKfCB7IEJFR0lOIElOSVRJQUw7IH0KfCAJ WVlfQlJFQUsKfCBjYXNlIDg6CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDkgImNvbmZ0ZXN0Lmwi CnwgRUNITzsKfCAJWVlfQlJFQUsKfCAjbGluZSA2NzUgImxleC55eS5jIgp8IAkJCWNhc2UgWVlf U1RBVEVfRU9GKElOSVRJQUwpOgp8IAkJCQl5eXRlcm1pbmF0ZSgpOwp8IAp8IAljYXNlIFlZX0VO RF9PRl9CVUZGRVI6CnwgCQl7CnwgCQkvKiBBbW91bnQgb2YgdGV4dCBtYXRjaGVkIG5vdCBpbmNs dWRpbmcgdGhlIEVPQiBjaGFyLiAqLwp8IAkJaW50IHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQg PSAoaW50KSAoeXlfY3AgLSB5eXRleHRfcHRyKSAtIDE7CnwgCnwgCQkvKiBVbmRvIHRoZSBlZmZl Y3RzIG9mIFlZX0RPX0JFRk9SRV9BQ1RJT04uICovCnwgCQkqeXlfY3AgPSB5eV9ob2xkX2NoYXI7 CnwgCQlZWV9SRVNUT1JFX1lZX01PUkVfT0ZGU0VUCnwgCnwgCQlpZiAoIHl5X2N1cnJlbnRfYnVm ZmVyLT55eV9idWZmZXJfc3RhdHVzID09IFlZX0JVRkZFUl9ORVcgKQp8IAkJCXsKfCAJCQkvKiBX ZSdyZSBzY2FubmluZyBhIG5ldyBmaWxlIG9yIGlucHV0IHNvdXJjZS4gIEl0J3MKfCAJCQkgKiBw b3NzaWJsZSB0aGF0IHRoaXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUgdXNlcgp8IAkJCSAqIGp1c3Qg cG9pbnRlZCB5eWluIGF0IGEgbmV3IHNvdXJjZSBhbmQgY2FsbGVkCnwgCQkJICogeXlsZXgoKS4g IElmIHNvLCB0aGVuIHdlIGhhdmUgdG8gYXNzdXJlCnwgCQkJICogY29uc2lzdGVuY3kgYmV0d2Vl biB5eV9jdXJyZW50X2J1ZmZlciBhbmQgb3VyCnwgCQkJICogZ2xvYmFscy4gIEhlcmUgaXMgdGhl IHJpZ2h0IHBsYWNlIHRvIGRvIHNvLCBiZWNhdXNlCnwgCQkJICogdGhpcyBpcyB0aGUgZmlyc3Qg YWN0aW9uIChvdGhlciB0aGFuIHBvc3NpYmx5IGEKfCAJCQkgKiBiYWNrLXVwKSB0aGF0IHdpbGwg bWF0Y2ggZm9yIHRoZSBuZXcgaW5wdXQgc291cmNlLgp8IAkJCSAqLwp8IAkJCXl5X25fY2hhcnMg PSB5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFyczsKfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+ eXlfaW5wdXRfZmlsZSA9IHl5aW47CnwgCQkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9z dGF0dXMgPSBZWV9CVUZGRVJfTk9STUFMOwp8IAkJCX0KfCAKfCAJCS8qIE5vdGUgdGhhdCBoZXJl IHdlIHRlc3QgZm9yIHl5X2NfYnVmX3AgIjw9IiB0byB0aGUgcG9zaXRpb24KfCAJCSAqIG9mIHRo ZSBmaXJzdCBFT0IgaW4gdGhlIGJ1ZmZlciwgc2luY2UgeXlfY19idWZfcCB3aWxsCnwgCQkgKiBh bHJlYWR5IGhhdmUgYmVlbiBpbmNyZW1lbnRlZCBwYXN0IHRoZSBOVUwgY2hhcmFjdGVyCnwgCQkg KiAoc2luY2UgYWxsIHN0YXRlcyBtYWtlIHRyYW5zaXRpb25zIG9uIEVPQiB0byB0aGUKfCAJCSAq IGVuZC1vZi1idWZmZXIgc3RhdGUpLiAgQ29udHJhc3QgdGhpcyB3aXRoIHRoZSB0ZXN0CnwgCQkg KiBpbiBpbnB1dCgpLgp8IAkJICovCnwgCQlpZiAoIHl5X2NfYnVmX3AgPD0gJnl5X2N1cnJlbnRf YnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFyc10gKQp8IAkJCXsgLyogVGhpcyB3YXMgcmVhbGx5 IGEgTlVMLiAqLwp8IAkJCXl5X3N0YXRlX3R5cGUgeXlfbmV4dF9zdGF0ZTsKfCAKfCAJCQl5eV9j X2J1Zl9wID0geXl0ZXh0X3B0ciArIHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQ7CnwgCnwgCQkJ eXlfY3VycmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSgpOwp8IAp8IAkJCS8qIE9r YXksIHdlJ3JlIG5vdyBwb3NpdGlvbmVkIHRvIG1ha2UgdGhlIE5VTAp8IAkJCSAqIHRyYW5zaXRp b24uICBXZSBjb3VsZG4ndCBoYXZlCnwgCQkJICogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkgZ28g YWhlYWQgYW5kIGRvIGl0CnwgCQkJICogZm9yIHVzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93IGhv dyB0byBkZWFsCnwgCQkJICogd2l0aCB0aGUgcG9zc2liaWxpdHkgb2YgamFtbWluZyAoYW5kIHdl IGRvbid0CnwgCQkJICogd2FudCB0byBidWlsZCBqYW1taW5nIGludG8gaXQgYmVjYXVzZSB0aGVu IGl0CnwgCQkJICogd2lsbCBydW4gbW9yZSBzbG93bHkpLgp8IAkJCSAqLwp8IAp8IAkJCXl5X25l eHRfc3RhdGUgPSB5eV90cnlfTlVMX3RyYW5zKCB5eV9jdXJyZW50X3N0YXRlICk7CnwgCnwgCQkJ eXlfYnAgPSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7CnwgCnwgCQkJaWYgKCB5eV9uZXh0X3N0 YXRlICkKfCAJCQkJewp8IAkJCQkvKiBDb25zdW1lIHRoZSBOVUwuICovCnwgCQkJCXl5X2NwID0g Kyt5eV9jX2J1Zl9wOwp8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbmV4dF9zdGF0ZTsKfCAJ CQkJZ290byB5eV9tYXRjaDsKfCAJCQkJfQp8IAp8IAkJCWVsc2UKfCAJCQkJewp8IAkJCQl5eV9j cCA9IHl5X2NfYnVmX3A7CnwgCQkJCWdvdG8geXlfZmluZF9hY3Rpb247CnwgCQkJCX0KfCAJCQl9 CnwgCnwgCQllbHNlIHN3aXRjaCAoIHl5X2dldF9uZXh0X2J1ZmZlcigpICkKfCAJCQl7CnwgCQkJ Y2FzZSBFT0JfQUNUX0VORF9PRl9GSUxFOgp8IAkJCQl7CnwgCQkJCXl5X2RpZF9idWZmZXJfc3dp dGNoX29uX2VvZiA9IDA7CnwgCnwgCQkJCWlmICggeXl3cmFwKCkgKQp8IAkJCQkJewp8IAkJCQkJ LyogTm90ZTogYmVjYXVzZSB3ZSd2ZSB0YWtlbiBjYXJlIGluCnwgCQkJCQkgKiB5eV9nZXRfbmV4 dF9idWZmZXIoKSB0byBoYXZlIHNldCB1cAp8IAkJCQkJICogeXl0ZXh0LCB3ZSBjYW4gbm93IHNl dCB1cAp8IAkJCQkJICogeXlfY19idWZfcCBzbyB0aGF0IGlmIHNvbWUgdG90YWwKfCAJCQkJCSAq IGhvc2VyIChsaWtlIGZsZXggaXRzZWxmKSB3YW50cyB0bwp8IAkJCQkJICogY2FsbCB0aGUgc2Nh bm5lciBhZnRlciB3ZSByZXR1cm4gdGhlCnwgCQkJCQkgKiBZWV9OVUxMLCBpdCdsbCBzdGlsbCB3 b3JrIC0gYW5vdGhlcgp8IAkJCQkJICogWVlfTlVMTCB3aWxsIGdldCByZXR1cm5lZC4KfCAJCQkJ CSAqLwp8IAkJCQkJeXlfY19idWZfcCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsKfCAKfCAJ CQkJCXl5X2FjdCA9IFlZX1NUQVRFX0VPRihZWV9TVEFSVCk7CnwgCQkJCQlnb3RvIGRvX2FjdGlv bjsKfCAJCQkJCX0KfCAKfCAJCQkJZWxzZQp8IAkJCQkJewp8IAkJCQkJaWYgKCAhIHl5X2RpZF9i dWZmZXJfc3dpdGNoX29uX2VvZiApCnwgCQkJCQkJWVlfTkVXX0ZJTEU7CnwgCQkJCQl9CnwgCQkJ CWJyZWFrOwp8IAkJCQl9CnwgCnwgCQkJY2FzZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU46CnwgCQkJ CXl5X2NfYnVmX3AgPQp8IAkJCQkJeXl0ZXh0X3B0ciArIHl5X2Ftb3VudF9vZl9tYXRjaGVkX3Rl eHQ7CnwgCnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoKTsK fCAKfCAJCQkJeXlfY3AgPSB5eV9jX2J1Zl9wOwp8IAkJCQl5eV9icCA9IHl5dGV4dF9wdHIgKyBZ WV9NT1JFX0FESjsKfCAJCQkJZ290byB5eV9tYXRjaDsKfCAKfCAJCQljYXNlIEVPQl9BQ1RfTEFT VF9NQVRDSDoKfCAJCQkJeXlfY19idWZfcCA9CnwgCQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlf Y2hfYnVmW3l5X25fY2hhcnNdOwp8IAp8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfZ2V0X3By ZXZpb3VzX3N0YXRlKCk7CnwgCnwgCQkJCXl5X2NwID0geXlfY19idWZfcDsKfCAJCQkJeXlfYnAg PSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7CnwgCQkJCWdvdG8geXlfZmluZF9hY3Rpb247Cnwg CQkJfQp8IAkJYnJlYWs7CnwgCQl9CnwgCnwgCWRlZmF1bHQ6CnwgCQlZWV9GQVRBTF9FUlJPUigK fCAJCQkiZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1ubyBhY3Rpb24gZm91bmQi ICk7CnwgCX0gLyogZW5kIG9mIGFjdGlvbiBzd2l0Y2ggKi8KfCAJCX0gLyogZW5kIG9mIHNjYW5u aW5nIG9uZSB0b2tlbiAqLwp8IAl9IC8qIGVuZCBvZiB5eWxleCAqLwp8IAp8IAp8IC8qIHl5X2dl dF9uZXh0X2J1ZmZlciAtIHRyeSB0byByZWFkIGluIGEgbmV3IGJ1ZmZlcgp8ICAqCnwgICogUmV0 dXJucyBhIGNvZGUgcmVwcmVzZW50aW5nIGFuIGFjdGlvbjoKfCAgKglFT0JfQUNUX0xBU1RfTUFU Q0ggLQp8ICAqCUVPQl9BQ1RfQ09OVElOVUVfU0NBTiAtIGNvbnRpbnVlIHNjYW5uaW5nIGZyb20g Y3VycmVudCBwb3NpdGlvbgp8ICAqCUVPQl9BQ1RfRU5EX09GX0ZJTEUgLSBlbmQgb2YgZmlsZQp8 ICAqLwp8IAp8IHN0YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVyKCkKfCAJewp8IAljaGFyICpk ZXN0ID0geXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZjsKfCAJY2hhciAqc291cmNlID0geXl0 ZXh0X3B0cjsKfCAJaW50IG51bWJlcl90b19tb3ZlLCBpOwp8IAlpbnQgcmV0X3ZhbDsKfCAKfCAJ aWYgKCB5eV9jX2J1Zl9wID4gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFy cyArIDFdICkKfCAJCVlZX0ZBVEFMX0VSUk9SKAp8IAkJImZhdGFsIGZsZXggc2Nhbm5lciBpbnRl cm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQiICk7CnwgCnwgCWlmICggeXlfY3VycmVu dF9idWZmZXItPnl5X2ZpbGxfYnVmZmVyID09IDAgKQp8IAkJeyAvKiBEb24ndCB0cnkgdG8gZmls bCB0aGUgYnVmZmVyLCBzbyB0aGlzIGlzIGFuIEVPRi4gKi8KfCAJCWlmICggeXlfY19idWZfcCAt IHl5dGV4dF9wdHIgLSBZWV9NT1JFX0FESiA9PSAxICkKfCAJCQl7CnwgCQkJLyogV2UgbWF0Y2hl ZCBhIHNpbmdsZSBjaGFyYWN0ZXIsIHRoZSBFT0IsIHNvCnwgCQkJICogdHJlYXQgdGhpcyBhcyBh IGZpbmFsIEVPRi4KfCAJCQkgKi8KfCAJCQlyZXR1cm4gRU9CX0FDVF9FTkRfT0ZfRklMRTsKfCAJ CQl9CnwgCnwgCQllbHNlCnwgCQkJewp8IAkJCS8qIFdlIG1hdGNoZWQgc29tZSB0ZXh0IHByaW9y IHRvIHRoZSBFT0IsIGZpcnN0CnwgCQkJICogcHJvY2VzcyBpdC4KfCAJCQkgKi8KfCAJCQlyZXR1 cm4gRU9CX0FDVF9MQVNUX01BVENIOwp8IAkJCX0KfCAJCX0KfCAKfCAJLyogVHJ5IHRvIHJlYWQg bW9yZSBkYXRhLiAqLwp8IAp8IAkvKiBGaXJzdCBtb3ZlIGxhc3QgY2hhcnMgdG8gc3RhcnQgb2Yg YnVmZmVyLiAqLwp8IAludW1iZXJfdG9fbW92ZSA9IChpbnQpICh5eV9jX2J1Zl9wIC0geXl0ZXh0 X3B0cikgLSAxOwp8IAp8IAlmb3IgKCBpID0gMDsgaSA8IG51bWJlcl90b19tb3ZlOyArK2kgKQp8 IAkJKihkZXN0KyspID0gKihzb3VyY2UrKyk7CnwgCnwgCWlmICggeXlfY3VycmVudF9idWZmZXIt Pnl5X2J1ZmZlcl9zdGF0dXMgPT0gWVlfQlVGRkVSX0VPRl9QRU5ESU5HICkKfCAJCS8qIGRvbid0 IGRvIHRoZSByZWFkLCBpdCdzIG5vdCBndWFyYW50ZWVkIHRvIHJldHVybiBhbiBFT0YsCnwgCQkg KiBqdXN0IGZvcmNlIGFuIEVPRgp8IAkJICovCnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9j aGFycyA9IHl5X25fY2hhcnMgPSAwOwp8IAp8IAllbHNlCnwgCQl7CnwgCQlpbnQgbnVtX3RvX3Jl YWQgPQp8IAkJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZSAtIG51bWJlcl90b19tb3Zl IC0gMTsKfCAKfCAJCXdoaWxlICggbnVtX3RvX3JlYWQgPD0gMCApCnwgCQkJeyAvKiBOb3QgZW5v dWdoIHJvb20gaW4gdGhlIGJ1ZmZlciAtIGdyb3cgaXQuICovCnwgI2lmZGVmIFlZX1VTRVNfUkVK RUNUCnwgCQkJWVlfRkFUQUxfRVJST1IoCnwgImlucHV0IGJ1ZmZlciBvdmVyZmxvdywgY2FuJ3Qg ZW5sYXJnZSBidWZmZXIgYmVjYXVzZSBzY2FubmVyIHVzZXMgUkVKRUNUIiApOwp8ICNlbHNlCnwg CnwgCQkJLyoganVzdCBhIHNob3J0ZXIgbmFtZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyICovCnwg CQkJWVlfQlVGRkVSX1NUQVRFIGIgPSB5eV9jdXJyZW50X2J1ZmZlcjsKfCAKfCAJCQlpbnQgeXlf Y19idWZfcF9vZmZzZXQgPQp8IAkJCQkoaW50KSAoeXlfY19idWZfcCAtIGItPnl5X2NoX2J1Zik7 CnwgCnwgCQkJaWYgKCBiLT55eV9pc19vdXJfYnVmZmVyICkKfCAJCQkJewp8IAkJCQlpbnQgbmV3 X3NpemUgPSBiLT55eV9idWZfc2l6ZSAqIDI7CnwgCnwgCQkJCWlmICggbmV3X3NpemUgPD0gMCAp CnwgCQkJCQliLT55eV9idWZfc2l6ZSArPSBiLT55eV9idWZfc2l6ZSAvIDg7CnwgCQkJCWVsc2UK fCAJCQkJCWItPnl5X2J1Zl9zaXplICo9IDI7CnwgCnwgCQkJCWItPnl5X2NoX2J1ZiA9IChjaGFy ICopCnwgCQkJCQkvKiBJbmNsdWRlIHJvb20gaW4gZm9yIDIgRU9CIGNoYXJzLiAqLwp8IAkJCQkJ eXlfZmxleF9yZWFsbG9jKCAodm9pZCAqKSBiLT55eV9jaF9idWYsCnwgCQkJCQkJCSBiLT55eV9i dWZfc2l6ZSArIDIgKTsKfCAJCQkJfQp8IAkJCWVsc2UKfCAJCQkJLyogQ2FuJ3QgZ3JvdyBpdCwg d2UgZG9uJ3Qgb3duIGl0LiAqLwp8IAkJCQliLT55eV9jaF9idWYgPSAwOwp8IAp8IAkJCWlmICgg ISBiLT55eV9jaF9idWYgKQp8IAkJCQlZWV9GQVRBTF9FUlJPUigKfCAJCQkJImZhdGFsIGVycm9y IC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3ciICk7CnwgCnwgCQkJeXlfY19idWZfcCA9 ICZiLT55eV9jaF9idWZbeXlfY19idWZfcF9vZmZzZXRdOwp8IAp8IAkJCW51bV90b19yZWFkID0g eXlfY3VycmVudF9idWZmZXItPnl5X2J1Zl9zaXplIC0KfCAJCQkJCQludW1iZXJfdG9fbW92ZSAt IDE7CnwgI2VuZGlmCnwgCQkJfQp8IAp8IAkJaWYgKCBudW1fdG9fcmVhZCA+IFlZX1JFQURfQlVG X1NJWkUgKQp8IAkJCW51bV90b19yZWFkID0gWVlfUkVBRF9CVUZfU0laRTsKfCAKfCAJCS8qIFJl YWQgaW4gbW9yZSBkYXRhLiAqLwp8IAkJWVlfSU5QVVQoICgmeXlfY3VycmVudF9idWZmZXItPnl5 X2NoX2J1ZltudW1iZXJfdG9fbW92ZV0pLAp8IAkJCXl5X25fY2hhcnMsIG51bV90b19yZWFkICk7 CnwgCnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9IHl5X25fY2hhcnM7CnwgCQl9 CnwgCnwgCWlmICggeXlfbl9jaGFycyA9PSAwICkKfCAJCXsKfCAJCWlmICggbnVtYmVyX3RvX21v dmUgPT0gWVlfTU9SRV9BREogKQp8IAkJCXsKfCAJCQlyZXRfdmFsID0gRU9CX0FDVF9FTkRfT0Zf RklMRTsKfCAJCQl5eXJlc3RhcnQoIHl5aW4gKTsKfCAJCQl9CnwgCnwgCQllbHNlCnwgCQkJewp8 IAkJCXJldF92YWwgPSBFT0JfQUNUX0xBU1RfTUFUQ0g7CnwgCQkJeXlfY3VycmVudF9idWZmZXIt Pnl5X2J1ZmZlcl9zdGF0dXMgPQp8IAkJCQlZWV9CVUZGRVJfRU9GX1BFTkRJTkc7CnwgCQkJfQp8 IAkJfQp8IAp8IAllbHNlCnwgCQlyZXRfdmFsID0gRU9CX0FDVF9DT05USU5VRV9TQ0FOOwp8IAp8 IAl5eV9uX2NoYXJzICs9IG51bWJlcl90b19tb3ZlOwp8IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlf Y2hfYnVmW3l5X25fY2hhcnNdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwp8IAl5eV9jdXJyZW50 X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnMgKyAxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hB UjsKfCAKfCAJeXl0ZXh0X3B0ciA9ICZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmWzBdOwp8 IAp8IAlyZXR1cm4gcmV0X3ZhbDsKfCAJfQp8IAp8IAp8IC8qIHl5X2dldF9wcmV2aW91c19zdGF0 ZSAtIGdldCB0aGUgc3RhdGUganVzdCBiZWZvcmUgdGhlIEVPQiBjaGFyIHdhcyByZWFjaGVkICov CnwgCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkKfCAJewp8 IAl5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7CnwgCWNoYXIgKnl5X2NwOwp8IAp8IAl5 eV9jdXJyZW50X3N0YXRlID0geXlfc3RhcnQ7CnwgCXl5X3N0YXRlX3B0ciA9IHl5X3N0YXRlX2J1 ZjsKfCAJKnl5X3N0YXRlX3B0cisrID0geXlfY3VycmVudF9zdGF0ZTsKfCAKfCAJZm9yICggeXlf Y3AgPSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7IHl5X2NwIDwgeXlfY19idWZfcDsgKyt5eV9j cCApCnwgCQl7CnwgCQlZWV9DSEFSIHl5X2MgPSAoKnl5X2NwID8geXlfZWNbWVlfU0NfVE9fVUko Knl5X2NwKV0gOiAxKTsKfCAJCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0 ZV0gKyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkKfCAJCQl7CnwgCQkJeXlfY3VycmVudF9z dGF0ZSA9IChpbnQpIHl5X2RlZlt5eV9jdXJyZW50X3N0YXRlXTsKfCAJCQlpZiAoIHl5X2N1cnJl bnRfc3RhdGUgPj0gMTMgKQp8IAkJCQl5eV9jID0geXlfbWV0YVsodW5zaWduZWQgaW50KSB5eV9j XTsKfCAJCQl9CnwgCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbnh0W3l5X2Jhc2VbeXlfY3VycmVu dF9zdGF0ZV0gKyAodW5zaWduZWQgaW50KSB5eV9jXTsKfCAJCSp5eV9zdGF0ZV9wdHIrKyA9IHl5 X2N1cnJlbnRfc3RhdGU7CnwgCQl9CnwgCnwgCXJldHVybiB5eV9jdXJyZW50X3N0YXRlOwp8IAl9 CnwgCnwgCnwgLyogeXlfdHJ5X05VTF90cmFucyAtIHRyeSB0byBtYWtlIGEgdHJhbnNpdGlvbiBv biB0aGUgTlVMIGNoYXJhY3Rlcgp8ICAqCnwgICogc3lub3BzaXMKfCAgKgluZXh0X3N0YXRlID0g eXlfdHJ5X05VTF90cmFucyggY3VycmVudF9zdGF0ZSApOwp8ICAqLwp8IAp8ICNpZmRlZiBZWV9V U0VfUFJPVE9TCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfdHJ5X05VTF90cmFucyggeXlfc3Rh dGVfdHlwZSB5eV9jdXJyZW50X3N0YXRlICkKfCAjZWxzZQp8IHN0YXRpYyB5eV9zdGF0ZV90eXBl IHl5X3RyeV9OVUxfdHJhbnMoIHl5X2N1cnJlbnRfc3RhdGUgKQp8IHl5X3N0YXRlX3R5cGUgeXlf Y3VycmVudF9zdGF0ZTsKfCAjZW5kaWYKfCAJewp8IAlpbnQgeXlfaXNfamFtOwp8IAp8IAlZWV9D SEFSIHl5X2MgPSAxOwp8IAl3aGlsZSAoIHl5X2Noa1t5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVd ICsgeXlfY10gIT0geXlfY3VycmVudF9zdGF0ZSApCnwgCQl7CnwgCQl5eV9jdXJyZW50X3N0YXRl ID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOwp8IAkJaWYgKCB5eV9jdXJyZW50X3N0 YXRlID49IDEzICkKfCAJCQl5eV9jID0geXlfbWV0YVsodW5zaWduZWQgaW50KSB5eV9jXTsKfCAJ CX0KfCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVd ICsgKHVuc2lnbmVkIGludCkgeXlfY107CnwgCXl5X2lzX2phbSA9ICh5eV9jdXJyZW50X3N0YXRl ID09IDEyKTsKfCAJaWYgKCAhIHl5X2lzX2phbSApCnwgCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9j dXJyZW50X3N0YXRlOwp8IAp8IAlyZXR1cm4geXlfaXNfamFtID8gMCA6IHl5X2N1cnJlbnRfc3Rh dGU7CnwgCX0KfCAKfCAKfCAjaWZuZGVmIFlZX05PX1VOUFVUCnwgI2lmZGVmIFlZX1VTRV9QUk9U T1MKfCBzdGF0aWMgdm9pZCB5eXVucHV0KCBpbnQgYywgY2hhciAqeXlfYnAgKQp8ICNlbHNlCnwg c3RhdGljIHZvaWQgeXl1bnB1dCggYywgeXlfYnAgKQp8IGludCBjOwp8IGNoYXIgKnl5X2JwOwp8 ICNlbmRpZgp8IAl7CnwgCWNoYXIgKnl5X2NwID0geXlfY19idWZfcDsKfCAKfCAJLyogdW5kbyBl ZmZlY3RzIG9mIHNldHRpbmcgdXAgeXl0ZXh0ICovCnwgCSp5eV9jcCA9IHl5X2hvbGRfY2hhcjsK fCAKfCAJaWYgKCB5eV9jcCA8IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWYgKyAyICkKfCAJ CXsgLyogbmVlZCB0byBzaGlmdCB0aGluZ3MgdXAgdG8gbWFrZSByb29tICovCnwgCQkvKiArMiBm b3IgRU9CIGNoYXJzLiAqLwp8IAkJaW50IG51bWJlcl90b19tb3ZlID0geXlfbl9jaGFycyArIDI7 CnwgCQljaGFyICpkZXN0ID0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbCnwgCQkJCQl5 eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3NpemUgKyAyXTsKfCAJCWNoYXIgKnNvdXJjZSA9Cnwg CQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW251bWJlcl90b19tb3ZlXTsKfCAKfCAJ CXdoaWxlICggc291cmNlID4geXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZiApCnwgCQkJKi0t ZGVzdCA9ICotLXNvdXJjZTsKfCAKfCAJCXl5X2NwICs9IChpbnQpIChkZXN0IC0gc291cmNlKTsK fCAJCXl5X2JwICs9IChpbnQpIChkZXN0IC0gc291cmNlKTsKfCAJCXl5X2N1cnJlbnRfYnVmZmVy LT55eV9uX2NoYXJzID0KfCAJCQl5eV9uX2NoYXJzID0geXlfY3VycmVudF9idWZmZXItPnl5X2J1 Zl9zaXplOwp8IAp8IAkJaWYgKCB5eV9jcCA8IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWYg KyAyICkKfCAJCQlZWV9GQVRBTF9FUlJPUiggImZsZXggc2Nhbm5lciBwdXNoLWJhY2sgb3ZlcmZs b3ciICk7CnwgCQl9CnwgCnwgCSotLXl5X2NwID0gKGNoYXIpIGM7CnwgCnwgCnwgCXl5dGV4dF9w dHIgPSB5eV9icDsKfCAJeXlfaG9sZF9jaGFyID0gKnl5X2NwOwp8IAl5eV9jX2J1Zl9wID0geXlf Y3A7CnwgCX0KfCAjZW5kaWYJLyogaWZuZGVmIFlZX05PX1VOUFVUICovCnwgCnwgCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgc3RhdGljIGludCB5eWlucHV0KCkKfCAjZWxzZQp8IHN0YXRpYyBpbnQg aW5wdXQoKQp8ICNlbmRpZgp8IAl7CnwgCWludCBjOwp8IAp8IAkqeXlfY19idWZfcCA9IHl5X2hv bGRfY2hhcjsKfCAKfCAJaWYgKCAqeXlfY19idWZfcCA9PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIg KQp8IAkJewp8IAkJLyogeXlfY19idWZfcCBub3cgcG9pbnRzIHRvIHRoZSBjaGFyYWN0ZXIgd2Ug d2FudCB0byByZXR1cm4uCnwgCQkgKiBJZiB0aGlzIG9jY3VycyAqYmVmb3JlKiB0aGUgRU9CIGNo YXJhY3RlcnMsIHRoZW4gaXQncyBhCnwgCQkgKiB2YWxpZCBOVUw7IGlmIG5vdCwgdGhlbiB3ZSd2 ZSBoaXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgp8IAkJICovCnwgCQlpZiAoIHl5X2NfYnVmX3Ag PCAmeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5eV9uX2NoYXJzXSApCnwgCQkJLyogVGhp cyB3YXMgcmVhbGx5IGEgTlVMLiAqLwp8IAkJCSp5eV9jX2J1Zl9wID0gJ1wwJzsKfCAKfCAJCWVs c2UKfCAJCQl7IC8qIG5lZWQgbW9yZSBpbnB1dCAqLwp8IAkJCWludCBvZmZzZXQgPSB5eV9jX2J1 Zl9wIC0geXl0ZXh0X3B0cjsKfCAJCQkrK3l5X2NfYnVmX3A7CnwgCnwgCQkJc3dpdGNoICggeXlf Z2V0X25leHRfYnVmZmVyKCkgKQp8IAkJCQl7CnwgCQkJCWNhc2UgRU9CX0FDVF9MQVNUX01BVENI Ogp8IAkJCQkJLyogVGhpcyBoYXBwZW5zIGJlY2F1c2UgeXlfZ19uX2IoKQp8IAkJCQkJICogc2Vl cyB0aGF0IHdlJ3ZlIGFjY3VtdWxhdGVkIGEKfCAJCQkJCSAqIHRva2VuIGFuZCBmbGFncyB0aGF0 IHdlIG5lZWQgdG8KfCAJCQkJCSAqIHRyeSBtYXRjaGluZyB0aGUgdG9rZW4gYmVmb3JlCnwgCQkJ CQkgKiBwcm9jZWVkaW5nLiAgQnV0IGZvciBpbnB1dCgpLAp8IAkJCQkJICogdGhlcmUncyBubyBt YXRjaGluZyB0byBjb25zaWRlci4KfCAJCQkJCSAqIFNvIGNvbnZlcnQgdGhlIEVPQl9BQ1RfTEFT VF9NQVRDSAp8IAkJCQkJICogdG8gRU9CX0FDVF9FTkRfT0ZfRklMRS4KfCAJCQkJCSAqLwp8IAp8 IAkJCQkJLyogUmVzZXQgYnVmZmVyIHN0YXR1cy4gKi8KfCAJCQkJCXl5cmVzdGFydCggeXlpbiAp Owp8IAp8IAkJCQkJLyogZmFsbCB0aHJvdWdoICovCnwgCnwgCQkJCWNhc2UgRU9CX0FDVF9FTkRf T0ZfRklMRToKfCAJCQkJCXsKfCAJCQkJCWlmICggeXl3cmFwKCkgKQp8IAkJCQkJCXJldHVybiBF T0Y7CnwgCnwgCQkJCQlpZiAoICEgeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mICkKfCAJCQkJ CQlZWV9ORVdfRklMRTsKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAJCQkJCXJldHVybiB5eWlucHV0 KCk7CnwgI2Vsc2UKfCAJCQkJCXJldHVybiBpbnB1dCgpOwp8ICNlbmRpZgp8IAkJCQkJfQp8IAp8 IAkJCQljYXNlIEVPQl9BQ1RfQ09OVElOVUVfU0NBTjoKfCAJCQkJCXl5X2NfYnVmX3AgPSB5eXRl eHRfcHRyICsgb2Zmc2V0Owp8IAkJCQkJYnJlYWs7CnwgCQkJCX0KfCAJCQl9CnwgCQl9CnwgCnwg CWMgPSAqKHVuc2lnbmVkIGNoYXIgKikgeXlfY19idWZfcDsJLyogY2FzdCBmb3IgOC1iaXQgY2hh cidzICovCnwgCSp5eV9jX2J1Zl9wID0gJ1wwJzsJLyogcHJlc2VydmUgeXl0ZXh0ICovCnwgCXl5 X2hvbGRfY2hhciA9ICorK3l5X2NfYnVmX3A7CnwgCnwgCnwgCXJldHVybiBjOwp8IAl9CnwgCnwg CnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCB2b2lkIHl5cmVzdGFydCggRklMRSAqaW5wdXRfZmls ZSApCnwgI2Vsc2UKfCB2b2lkIHl5cmVzdGFydCggaW5wdXRfZmlsZSApCnwgRklMRSAqaW5wdXRf ZmlsZTsKfCAjZW5kaWYKfCAJewp8IAlpZiAoICEgeXlfY3VycmVudF9idWZmZXIgKQp8IAkJeXlf Y3VycmVudF9idWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9CVUZfU0laRSApOwp8 IAp8IAl5eV9pbml0X2J1ZmZlciggeXlfY3VycmVudF9idWZmZXIsIGlucHV0X2ZpbGUgKTsKfCAJ eXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKfCAJfQp8IAp8IAp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T Cnwgdm9pZCB5eV9zd2l0Y2hfdG9fYnVmZmVyKCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlciAp CnwgI2Vsc2UKfCB2b2lkIHl5X3N3aXRjaF90b19idWZmZXIoIG5ld19idWZmZXIgKQp8IFlZX0JV RkZFUl9TVEFURSBuZXdfYnVmZmVyOwp8ICNlbmRpZgp8IAl7CnwgCWlmICggeXlfY3VycmVudF9i dWZmZXIgPT0gbmV3X2J1ZmZlciApCnwgCQlyZXR1cm47CnwgCnwgCWlmICggeXlfY3VycmVudF9i dWZmZXIgKQp8IAkJewp8IAkJLyogRmx1c2ggb3V0IGluZm9ybWF0aW9uIGZvciBvbGQgYnVmZmVy LiAqLwp8IAkJKnl5X2NfYnVmX3AgPSB5eV9ob2xkX2NoYXI7CnwgCQl5eV9jdXJyZW50X2J1ZmZl ci0+eXlfYnVmX3BvcyA9IHl5X2NfYnVmX3A7CnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9j aGFycyA9IHl5X25fY2hhcnM7CnwgCQl9CnwgCnwgCXl5X2N1cnJlbnRfYnVmZmVyID0gbmV3X2J1 ZmZlcjsKfCAJeXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKfCAKfCAJLyogV2UgZG9uJ3QgYWN0dWFs bHkga25vdyB3aGV0aGVyIHdlIGRpZCB0aGlzIHN3aXRjaCBkdXJpbmcKfCAJICogRU9GICh5eXdy YXAoKSkgcHJvY2Vzc2luZywgYnV0IHRoZSBvbmx5IHRpbWUgdGhpcyBmbGFnCnwgCSAqIGlzIGxv b2tlZCBhdCBpcyBhZnRlciB5eXdyYXAoKSBpcyBjYWxsZWQsIHNvIGl0J3Mgc2FmZQp8IAkgKiB0 byBnbyBhaGVhZCBhbmQgYWx3YXlzIHNldCBpdC4KfCAJICovCnwgCXl5X2RpZF9idWZmZXJfc3dp dGNoX29uX2VvZiA9IDE7CnwgCX0KfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHZvaWQg eXlfbG9hZF9idWZmZXJfc3RhdGUoIHZvaWQgKQp8ICNlbHNlCnwgdm9pZCB5eV9sb2FkX2J1ZmZl cl9zdGF0ZSgpCnwgI2VuZGlmCnwgCXsKfCAJeXlfbl9jaGFycyA9IHl5X2N1cnJlbnRfYnVmZmVy LT55eV9uX2NoYXJzOwp8IAl5eXRleHRfcHRyID0geXlfY19idWZfcCA9IHl5X2N1cnJlbnRfYnVm ZmVyLT55eV9idWZfcG9zOwp8IAl5eWluID0geXlfY3VycmVudF9idWZmZXItPnl5X2lucHV0X2Zp bGU7CnwgCXl5X2hvbGRfY2hhciA9ICp5eV9jX2J1Zl9wOwp8IAl9CnwgCnwgCnwgI2lmZGVmIFlZ X1VTRV9QUk9UT1MKfCBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciggRklMRSAqZmls ZSwgaW50IHNpemUgKQp8ICNlbHNlCnwgWVlfQlVGRkVSX1NUQVRFIHl5X2NyZWF0ZV9idWZmZXIo IGZpbGUsIHNpemUgKQp8IEZJTEUgKmZpbGU7CnwgaW50IHNpemU7CnwgI2VuZGlmCnwgCXsKfCAJ WVlfQlVGRkVSX1NUQVRFIGI7CnwgCnwgCWIgPSAoWVlfQlVGRkVSX1NUQVRFKSB5eV9mbGV4X2Fs bG9jKCBzaXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKSApOwp8IAlpZiAoICEgYiApCnwg CQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVm ZmVyKCkiICk7CnwgCnwgCWItPnl5X2J1Zl9zaXplID0gc2l6ZTsKfCAKfCAJLyogeXlfY2hfYnVm IGhhcyB0byBiZSAyIGNoYXJhY3RlcnMgbG9uZ2VyIHRoYW4gdGhlIHNpemUgZ2l2ZW4gYmVjYXVz ZQp8IAkgKiB3ZSBuZWVkIHRvIHB1dCBpbiAyIGVuZC1vZi1idWZmZXIgY2hhcmFjdGVycy4KfCAJ ICovCnwgCWItPnl5X2NoX2J1ZiA9IChjaGFyICopIHl5X2ZsZXhfYWxsb2MoIGItPnl5X2J1Zl9z aXplICsgMiApOwp8IAlpZiAoICEgYi0+eXlfY2hfYnVmICkKfCAJCVlZX0ZBVEFMX0VSUk9SKCAi b3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKSIgKTsKfCAKfCAJYi0+ eXlfaXNfb3VyX2J1ZmZlciA9IDE7CnwgCnwgCXl5X2luaXRfYnVmZmVyKCBiLCBmaWxlICk7Cnwg CnwgCXJldHVybiBiOwp8IAl9CnwgCnwgCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCB2b2lkIHl5 X2RlbGV0ZV9idWZmZXIoIFlZX0JVRkZFUl9TVEFURSBiICkKfCAjZWxzZQp8IHZvaWQgeXlfZGVs ZXRlX2J1ZmZlciggYiApCnwgWVlfQlVGRkVSX1NUQVRFIGI7CnwgI2VuZGlmCnwgCXsKfCAJaWYg KCAhIGIgKQp8IAkJcmV0dXJuOwp8IAp8IAlpZiAoIGIgPT0geXlfY3VycmVudF9idWZmZXIgKQp8 IAkJeXlfY3VycmVudF9idWZmZXIgPSAoWVlfQlVGRkVSX1NUQVRFKSAwOwp8IAp8IAlpZiAoIGIt Pnl5X2lzX291cl9idWZmZXIgKQp8IAkJeXlfZmxleF9mcmVlKCAodm9pZCAqKSBiLT55eV9jaF9i dWYgKTsKfCAKfCAJeXlfZmxleF9mcmVlKCAodm9pZCAqKSBiICk7CnwgCX0KfCAKfCAKfCAjaWZu ZGVmIFlZX0FMV0FZU19JTlRFUkFDVElWRQp8ICNpZm5kZWYgWVlfTkVWRVJfSU5URVJBQ1RJVkUK fCBleHRlcm4gaW50IGlzYXR0eSBZWV9QUk9UTygoIGludCApKTsKfCAjZW5kaWYKfCAjZW5kaWYK fCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHZvaWQgeXlfaW5pdF9idWZmZXIoIFlZX0JVRkZF Ul9TVEFURSBiLCBGSUxFICpmaWxlICkKfCAjZWxzZQp8IHZvaWQgeXlfaW5pdF9idWZmZXIoIGIs IGZpbGUgKQp8IFlZX0JVRkZFUl9TVEFURSBiOwp8IEZJTEUgKmZpbGU7CnwgI2VuZGlmCnwgCnwg CnwgCXsKfCAJeXlfZmx1c2hfYnVmZmVyKCBiICk7CnwgCnwgCWItPnl5X2lucHV0X2ZpbGUgPSBm aWxlOwp8IAliLT55eV9maWxsX2J1ZmZlciA9IDE7CnwgCnwgI2lmIFlZX0FMV0FZU19JTlRFUkFD VElWRQp8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IDE7CnwgI2Vsc2UKfCAjaWYgWVlfTkVWRVJf SU5URVJBQ1RJVkUKfCAJYi0+eXlfaXNfaW50ZXJhY3RpdmUgPSAwOwp8ICNlbHNlCnwgCWItPnl5 X2lzX2ludGVyYWN0aXZlID0gZmlsZSA/IChpc2F0dHkoIGZpbGVubyhmaWxlKSApID4gMCkgOiAw Owp8ICNlbmRpZgp8ICNlbmRpZgp8IAl9CnwgCnwgCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCB2 b2lkIHl5X2ZsdXNoX2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIgKQp8ICNlbHNlCnwgdm9pZCB5 eV9mbHVzaF9idWZmZXIoIGIgKQp8IFlZX0JVRkZFUl9TVEFURSBiOwp8ICNlbmRpZgp8IAp8IAl7 CnwgCWlmICggISBiICkKfCAJCXJldHVybjsKfCAKfCAJYi0+eXlfbl9jaGFycyA9IDA7CnwgCnwg CS8qIFdlIGFsd2F5cyBuZWVkIHR3byBlbmQtb2YtYnVmZmVyIGNoYXJhY3RlcnMuICBUaGUgZmly c3QgY2F1c2VzCnwgCSAqIGEgdHJhbnNpdGlvbiB0byB0aGUgZW5kLW9mLWJ1ZmZlciBzdGF0ZS4g IFRoZSBzZWNvbmQgY2F1c2VzCnwgCSAqIGEgamFtIGluIHRoYXQgc3RhdGUuCnwgCSAqLwp8IAli LT55eV9jaF9idWZbMF0gPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7CnwgCWItPnl5X2NoX2J1Zlsx XSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsKfCAKfCAJYi0+eXlfYnVmX3BvcyA9ICZiLT55eV9j aF9idWZbMF07CnwgCnwgCWItPnl5X2F0X2JvbCA9IDE7CnwgCWItPnl5X2J1ZmZlcl9zdGF0dXMg PSBZWV9CVUZGRVJfTkVXOwp8IAp8IAlpZiAoIGIgPT0geXlfY3VycmVudF9idWZmZXIgKQp8IAkJ eXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKfCAJfQp8IAp8IAp8ICNpZm5kZWYgWVlfTk9fU0NBTl9C VUZGRVIKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX2J1 ZmZlciggY2hhciAqYmFzZSwgeXlfc2l6ZV90IHNpemUgKQp8ICNlbHNlCnwgWVlfQlVGRkVSX1NU QVRFIHl5X3NjYW5fYnVmZmVyKCBiYXNlLCBzaXplICkKfCBjaGFyICpiYXNlOwp8IHl5X3NpemVf dCBzaXplOwp8ICNlbmRpZgp8IAl7CnwgCVlZX0JVRkZFUl9TVEFURSBiOwp8IAp8IAlpZiAoIHNp emUgPCAyIHx8CnwgCSAgICAgYmFzZVtzaXplLTJdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiB8 fAp8IAkgICAgIGJhc2Vbc2l6ZS0xXSAhPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgKQp8IAkJLyog VGhleSBmb3Jnb3QgdG8gbGVhdmUgcm9vbSBmb3IgdGhlIEVPQidzLiAqLwp8IAkJcmV0dXJuIDA7 CnwgCnwgCWIgPSAoWVlfQlVGRkVSX1NUQVRFKSB5eV9mbGV4X2FsbG9jKCBzaXplb2YoIHN0cnVj dCB5eV9idWZmZXJfc3RhdGUgKSApOwp8IAlpZiAoICEgYiApCnwgCQlZWV9GQVRBTF9FUlJPUigg Im91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9zY2FuX2J1ZmZlcigpIiApOwp8IAp8IAliLT55 eV9idWZfc2l6ZSA9IHNpemUgLSAyOwkvKiAiLSAyIiB0byB0YWtlIGNhcmUgb2YgRU9CJ3MgKi8K fCAJYi0+eXlfYnVmX3BvcyA9IGItPnl5X2NoX2J1ZiA9IGJhc2U7CnwgCWItPnl5X2lzX291cl9i dWZmZXIgPSAwOwp8IAliLT55eV9pbnB1dF9maWxlID0gMDsKfCAJYi0+eXlfbl9jaGFycyA9IGIt Pnl5X2J1Zl9zaXplOwp8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IDA7CnwgCWItPnl5X2F0X2Jv bCA9IDE7CnwgCWItPnl5X2ZpbGxfYnVmZmVyID0gMDsKfCAJYi0+eXlfYnVmZmVyX3N0YXR1cyA9 IFlZX0JVRkZFUl9ORVc7CnwgCnwgCXl5X3N3aXRjaF90b19idWZmZXIoIGIgKTsKfCAKfCAJcmV0 dXJuIGI7CnwgCX0KfCAjZW5kaWYKfCAKfCAKfCAjaWZuZGVmIFlZX05PX1NDQU5fU1RSSU5HCnwg I2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9zdHJpbmcoIHl5 Y29uc3QgY2hhciAqeXlfc3RyICkKfCAjZWxzZQp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0 cmluZyggeXlfc3RyICkKfCB5eWNvbnN0IGNoYXIgKnl5X3N0cjsKfCAjZW5kaWYKfCAJewp8IAlp bnQgbGVuOwp8IAlmb3IgKCBsZW4gPSAwOyB5eV9zdHJbbGVuXTsgKytsZW4gKQp8IAkJOwp8IAp8 IAlyZXR1cm4geXlfc2Nhbl9ieXRlcyggeXlfc3RyLCBsZW4gKTsKfCAJfQp8ICNlbmRpZgp8IAp8 IAp8ICNpZm5kZWYgWVlfTk9fU0NBTl9CWVRFUwp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCnwgWVlf QlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMoIHl5Y29uc3QgY2hhciAqYnl0ZXMsIGludCBsZW4g KQp8ICNlbHNlCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMoIGJ5dGVzLCBsZW4gKQp8 IHl5Y29uc3QgY2hhciAqYnl0ZXM7CnwgaW50IGxlbjsKfCAjZW5kaWYKfCAJewp8IAlZWV9CVUZG RVJfU1RBVEUgYjsKfCAJY2hhciAqYnVmOwp8IAl5eV9zaXplX3QgbjsKfCAJaW50IGk7CnwgCnwg CS8qIEdldCBtZW1vcnkgZm9yIGZ1bGwgYnVmZmVyLCBpbmNsdWRpbmcgc3BhY2UgZm9yIHRyYWls aW5nIEVPQidzLiAqLwp8IAluID0gbGVuICsgMjsKfCAJYnVmID0gKGNoYXIgKikgeXlfZmxleF9h bGxvYyggbiApOwp8IAlpZiAoICEgYnVmICkKfCAJCVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5 bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnl0ZXMoKSIgKTsKfCAKfCAJZm9yICggaSA9IDA7IGkg PCBsZW47ICsraSApCnwgCQlidWZbaV0gPSBieXRlc1tpXTsKfCAKfCAJYnVmW2xlbl0gPSBidWZb bGVuKzFdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwp8IAp8IAliID0geXlfc2Nhbl9idWZmZXIo IGJ1ZiwgbiApOwp8IAlpZiAoICEgYiApCnwgCQlZWV9GQVRBTF9FUlJPUiggImJhZCBidWZmZXIg aW4geXlfc2Nhbl9ieXRlcygpIiApOwp8IAp8IAkvKiBJdCdzIG9rYXkgdG8gZ3JvdyBldGMuIHRo aXMgYnVmZmVyLCBhbmQgd2Ugc2hvdWxkIHRocm93IGl0CnwgCSAqIGF3YXkgd2hlbiB3ZSdyZSBk b25lLgp8IAkgKi8KfCAJYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDE7CnwgCnwgCXJldHVybiBiOwp8 IAl9CnwgI2VuZGlmCnwgCnwgCnwgI2lmbmRlZiBZWV9OT19QVVNIX1NUQVRFCnwgI2lmZGVmIFlZ X1VTRV9QUk9UT1MKfCBzdGF0aWMgdm9pZCB5eV9wdXNoX3N0YXRlKCBpbnQgbmV3X3N0YXRlICkK fCAjZWxzZQp8IHN0YXRpYyB2b2lkIHl5X3B1c2hfc3RhdGUoIG5ld19zdGF0ZSApCnwgaW50IG5l d19zdGF0ZTsKfCAjZW5kaWYKfCAJewp8IAlpZiAoIHl5X3N0YXJ0X3N0YWNrX3B0ciA+PSB5eV9z dGFydF9zdGFja19kZXB0aCApCnwgCQl7CnwgCQl5eV9zaXplX3QgbmV3X3NpemU7CnwgCnwgCQl5 eV9zdGFydF9zdGFja19kZXB0aCArPSBZWV9TVEFSVF9TVEFDS19JTkNSOwp8IAkJbmV3X3NpemUg PSB5eV9zdGFydF9zdGFja19kZXB0aCAqIHNpemVvZiggaW50ICk7CnwgCnwgCQlpZiAoICEgeXlf c3RhcnRfc3RhY2sgKQp8IAkJCXl5X3N0YXJ0X3N0YWNrID0gKGludCAqKSB5eV9mbGV4X2FsbG9j KCBuZXdfc2l6ZSApOwp8IAp8IAkJZWxzZQp8IAkJCXl5X3N0YXJ0X3N0YWNrID0gKGludCAqKSB5 eV9mbGV4X3JlYWxsb2MoCnwgCQkJCQkodm9pZCAqKSB5eV9zdGFydF9zdGFjaywgbmV3X3NpemUg KTsKfCAKfCAJCWlmICggISB5eV9zdGFydF9zdGFjayApCnwgCQkJWVlfRkFUQUxfRVJST1IoCnwg CQkJIm91dCBvZiBtZW1vcnkgZXhwYW5kaW5nIHN0YXJ0LWNvbmRpdGlvbiBzdGFjayIgKTsKfCAJ CX0KfCAKfCAJeXlfc3RhcnRfc3RhY2tbeXlfc3RhcnRfc3RhY2tfcHRyKytdID0gWVlfU1RBUlQ7 CnwgCnwgCUJFR0lOKG5ld19zdGF0ZSk7CnwgCX0KfCAjZW5kaWYKfCAKfCAKfCAjaWZuZGVmIFlZ X05PX1BPUF9TVEFURQp8IHN0YXRpYyB2b2lkIHl5X3BvcF9zdGF0ZSgpCnwgCXsKfCAJaWYgKCAt LXl5X3N0YXJ0X3N0YWNrX3B0ciA8IDAgKQp8IAkJWVlfRkFUQUxfRVJST1IoICJzdGFydC1jb25k aXRpb24gc3RhY2sgdW5kZXJmbG93IiApOwp8IAp8IAlCRUdJTih5eV9zdGFydF9zdGFja1t5eV9z dGFydF9zdGFja19wdHJdKTsKfCAJfQp8ICNlbmRpZgp8IAp8IAp8ICNpZm5kZWYgWVlfTk9fVE9Q X1NUQVRFCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUoKQp8IAl7CnwgCXJldHVybiB5eV9zdGFy dF9zdGFja1t5eV9zdGFydF9zdGFja19wdHIgLSAxXTsKfCAJfQp8ICNlbmRpZgp8IAp8ICNpZm5k ZWYgWVlfRVhJVF9GQUlMVVJFCnwgI2RlZmluZSBZWV9FWElUX0ZBSUxVUkUgMgp8ICNlbmRpZgp8 IAp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCnwgc3RhdGljIHZvaWQgeXlfZmF0YWxfZXJyb3IoIHl5 Y29uc3QgY2hhciBtc2dbXSApCnwgI2Vsc2UKfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvcigg bXNnICkKfCBjaGFyIG1zZ1tdOwp8ICNlbmRpZgp8IAl7CnwgCSh2b2lkKSBmcHJpbnRmKCBzdGRl cnIsICIlc1xuIiwgbXNnICk7CnwgCWV4aXQoIFlZX0VYSVRfRkFJTFVSRSApOwp8IAl9CnwgCnwg CnwgCnwgLyogUmVkZWZpbmUgeXlsZXNzKCkgc28gaXQgd29ya3MgaW4gc2VjdGlvbiAzIGNvZGUu ICovCnwgCnwgI3VuZGVmIHl5bGVzcwp8ICNkZWZpbmUgeXlsZXNzKG4pIFwKfCAJZG8gXAp8IAkJ eyBcCnwgCQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwKfCAJCXl5 dGV4dFt5eWxlbmddID0geXlfaG9sZF9jaGFyOyBcCnwgCQl5eV9jX2J1Zl9wID0geXl0ZXh0ICsg bjsgXAp8IAkJeXlfaG9sZF9jaGFyID0gKnl5X2NfYnVmX3A7IFwKfCAJCSp5eV9jX2J1Zl9wID0g J1wwJzsgXAp8IAkJeXlsZW5nID0gbjsgXAp8IAkJfSBcCnwgCXdoaWxlICggMCApCnwgCnwgCnwg LyogSW50ZXJuYWwgdXRpbGl0eSByb3V0aW5lcy4gKi8KfCAKfCAjaWZuZGVmIHl5dGV4dF9wdHIK fCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfc3RybmNweSggY2hh ciAqczEsIHl5Y29uc3QgY2hhciAqczIsIGludCBuICkKfCAjZWxzZQp8IHN0YXRpYyB2b2lkIHl5 X2ZsZXhfc3RybmNweSggczEsIHMyLCBuICkKfCBjaGFyICpzMTsKfCB5eWNvbnN0IGNoYXIgKnMy Owp8IGludCBuOwp8ICNlbmRpZgp8IAl7CnwgCWludCBpOwp8IAlmb3IgKCBpID0gMDsgaSA8IG47 ICsraSApCnwgCQlzMVtpXSA9IHMyW2ldOwp8IAl9CnwgI2VuZGlmCnwgCnwgI2lmZGVmIFlZX05F RURfU1RSTEVOCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMgaW50IHl5X2ZsZXhfc3Ry bGVuKCB5eWNvbnN0IGNoYXIgKnMgKQp8ICNlbHNlCnwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxl biggcyApCnwgeXljb25zdCBjaGFyICpzOwp8ICNlbmRpZgp8IAl7CnwgCWludCBuOwp8IAlmb3Ig KCBuID0gMDsgc1tuXTsgKytuICkKfCAJCTsKfCAKfCAJcmV0dXJuIG47CnwgCX0KfCAjZW5kaWYK fCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2FsbG9j KCB5eV9zaXplX3Qgc2l6ZSApCnwgI2Vsc2UKfCBzdGF0aWMgdm9pZCAqeXlfZmxleF9hbGxvYygg c2l6ZSApCnwgeXlfc2l6ZV90IHNpemU7CnwgI2VuZGlmCnwgCXsKfCAJcmV0dXJuICh2b2lkICop IG1hbGxvYyggc2l6ZSApOwp8IAl9CnwgCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMg dm9pZCAqeXlfZmxleF9yZWFsbG9jKCB2b2lkICpwdHIsIHl5X3NpemVfdCBzaXplICkKfCAjZWxz ZQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X3JlYWxsb2MoIHB0ciwgc2l6ZSApCnwgdm9pZCAqcHRy Owp8IHl5X3NpemVfdCBzaXplOwp8ICNlbmRpZgp8IAl7CnwgCS8qIFRoZSBjYXN0IHRvIChjaGFy ICopIGluIHRoZSBmb2xsb3dpbmcgYWNjb21tb2RhdGVzIGJvdGgKfCAJICogaW1wbGVtZW50YXRp b25zIHRoYXQgdXNlIGNoYXIqIGdlbmVyaWMgcG9pbnRlcnMsIGFuZCB0aG9zZQp8IAkgKiB0aGF0 IHVzZSB2b2lkKiBnZW5lcmljIHBvaW50ZXJzLiAgSXQgd29ya3Mgd2l0aCB0aGUgbGF0dGVyCnwg CSAqIGJlY2F1c2UgYm90aCBBTlNJIEMgYW5kIEMrKyBhbGxvdyBjYXN0bGVzcyBhc3NpZ25tZW50 IGZyb20KfCAJICogYW55IHBvaW50ZXIgdHlwZSB0byB2b2lkKiwgYW5kIGRlYWwgd2l0aCBhcmd1 bWVudCBjb252ZXJzaW9ucwp8IAkgKiBhcyB0aG91Z2ggZG9pbmcgYW4gYXNzaWdubWVudC4KfCAJ ICovCnwgCXJldHVybiAodm9pZCAqKSByZWFsbG9jKCAoY2hhciAqKSBwdHIsIHNpemUgKTsKfCAJ fQp8IAp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCnwgc3RhdGljIHZvaWQgeXlfZmxleF9mcmVlKCB2 b2lkICpwdHIgKQp8ICNlbHNlCnwgc3RhdGljIHZvaWQgeXlfZmxleF9mcmVlKCBwdHIgKQp8IHZv aWQgKnB0cjsKfCAjZW5kaWYKfCAJewp8IAlmcmVlKCBwdHIgKTsKfCAJfQp8IAp8ICNpZiBZWV9N QUlOCnwgaW50IG1haW4oKQp8IAl7CnwgCXl5bGV4KCk7CnwgCXJldHVybiAwOwp8IAl9CnwgI2Vu ZGlmCnwgI2xpbmUgOSAiY29uZnRlc3QubCIKfCAKfCAjaWZkZWYgWVlURVhUX1BPSU5URVIKfCBl eHRlcm4gY2hhciAqeXl0ZXh0Owp8ICNlbmRpZgp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8ICAg cmV0dXJuICEgeXlsZXggKCkgKyAhIHl5d3JhcCAoKTsKfCB9CmNvbmZpZ3VyZTo1OTY4OiBjYyAt byBjb25mdGVzdCAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLU8yIC1waXBlIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1mUElDIC1ML3Vzci9sb2NhbC9s aWIgY29uZnRlc3QuYyAtbGZsIC1ML3Vzci9wb3J0cy9jb21tcy9nbm9raWkvd29yay9nbm9raWkt MC42LjI4L2NvbW1vbiAtTC91c3IvbG9jYWwvbGliID4mNQpjb25mdGVzdC5sOiBJbiBmdW5jdGlv biAneXlsZXgnOgpjb25mdGVzdC5sOjY6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBwb2lu dGVyIGFuZCBpbnRlZ2VyCmNvbmZ0ZXN0Lmw6Njogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBw b2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdApjb25maWd1cmU6NTk3NTogJD8gPSAw CmNvbmZpZ3VyZTo1OTk5OiByZXN1bHQ6IC1sZmwKY29uZmlndXJlOjYwMDU6IGNoZWNraW5nIHdo ZXRoZXIgeXl0ZXh0IGlzIGEgcG9pbnRlcgpjb25maWd1cmU6NjAyNjogY2MgLW8gY29uZnRlc3Qg LU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQyAtTC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0 LmMgLWxmbCAtTC91c3IvcG9ydHMvY29tbXMvZ25va2lpL3dvcmsvZ25va2lpLTAuNi4yOC9jb21t b24gLUwvdXNyL2xvY2FsL2xpYiA+JjUKY29uZnRlc3QubDogSW4gZnVuY3Rpb24gJ3l5bGV4JzoK Y29uZnRlc3QubDo2OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgaW50 ZWdlcgpjb25mdGVzdC5sOjY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRlciBmcm9t IGludGVnZXIgd2l0aG91dCBhIGNhc3QKY29uZmlndXJlOjYwMzM6ICQ/ID0gMApjb25maWd1cmU6 NjA1NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwNzc6IGNoZWNraW5nIGZvciBybQpjb25maWd1 cmU6NjA5NTogZm91bmQgL2Jpbi9ybQpjb25maWd1cmU6NjEwODogcmVzdWx0OiAvYmluL3JtCmNv bmZpZ3VyZTo2MTE4OiBjaGVja2luZyBmb3IgZmluZApjb25maWd1cmU6NjEzNjogZm91bmQgL3Vz ci9iaW4vZmluZApjb25maWd1cmU6NjE0OTogcmVzdWx0OiAvdXNyL2Jpbi9maW5kCmNvbmZpZ3Vy ZTo2MTYxOiBjaGVja2luZyBmb3IgZ21ha2UKY29uZmlndXJlOjYxODg6IHJlc3VsdDogZ21ha2UK Y29uZmlndXJlOjYyMDM6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6NjIxOTogZm91bmQgL3Vz ci9iaW4vYXIKY29uZmlndXJlOjYyMzA6IHJlc3VsdDogYXIKY29uZmlndXJlOjYyNTU6IGNoZWNr aW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjYzMjM6IHJlc3VsdDog L3Vzci9iaW4vaW5zdGFsbCAtYyAtbyByb290IC1nIHdoZWVsCmNvbmZpZ3VyZTo2MzM3OiBjaGVj a2luZyB3aGV0aGVyIE5MUyBpcyByZXF1ZXN0ZWQKY29uZmlndXJlOjYzNDY6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo2MzYzOiBjaGVja2luZyBmb3IgaW50bHRvb2wgPj0gMC4zNS4wCmNvbmZpZ3Vy ZTo2MzcwOiByZXN1bHQ6ICBmb3VuZApjb25maWd1cmU6NjM3MzogZXJyb3I6IFlvdXIgaW50bHRv b2wgaXMgdG9vIG9sZC4gIFlvdSBuZWVkIGludGx0b29sIDAuMzUuMCBvciBsYXRlci4KCiMjIC0t LS0tLS0tLS0tLS0tLS0gIyMKIyMgQ2FjaGUgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0t LS0tICMjCgphY19jdl9idWlsZD1pMzg2LXBvcnRibGQtZnJlZWJzZDguMAphY19jdl9jX2NvbXBp bGVyX2dudT15ZXMKYWNfY3ZfZW52X0NDX3NldD1zZXQKYWNfY3ZfZW52X0NDX3ZhbHVlPWNjCmFj X2N2X2Vudl9DRkxBR1Nfc2V0PXNldAphY19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPSctTzIgLXBpcGUg LWZuby1zdHJpY3QtYWxpYXNpbmcnCmFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9c2V0CmFjX2N2X2Vu dl9DUFBGTEFHU192YWx1ZT0nLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9s b2NhbC9pbmNsdWRlIC1mUElDJwphY19jdl9lbnZfQ1BQX3NldD0nJwphY19jdl9lbnZfQ1BQX3Zh bHVlPScnCmFjX2N2X2Vudl9HTElCX0NGTEFHU19zZXQ9JycKYWNfY3ZfZW52X0dMSUJfQ0ZMQUdT X3ZhbHVlPScnCmFjX2N2X2Vudl9HTElCX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9HTElCX0xJQlNf dmFsdWU9JycKYWNfY3ZfZW52X0dUS19DRkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9HVEtfQ0ZMQUdT X3ZhbHVlPScnCmFjX2N2X2Vudl9HVEtfTElCU19zZXQ9JycKYWNfY3ZfZW52X0dUS19MSUJTX3Zh bHVlPScnCmFjX2N2X2Vudl9MREZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9 LUwvdXNyL2xvY2FsL2xpYgphY19jdl9lbnZfTElCUENTQ0xJVEVfQ0ZMQUdTX3NldD0nJwphY19j dl9lbnZfTElCUENTQ0xJVEVfQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9MSUJQQ1NDTElURV9M SUJTX3NldD0nJwphY19jdl9lbnZfTElCUENTQ0xJVEVfTElCU192YWx1ZT0nJwphY19jdl9lbnZf TElCU19zZXQ9c2V0CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPSctTC91c3IvcG9ydHMvY29tbXMvZ25v a2lpL3dvcmsvZ25va2lpLTAuNi4yOC9jb21tb24gLUwvdXNyL2xvY2FsL2xpYicKYWNfY3ZfZW52 X1BLR19DT05GSUdfc2V0PXNldAphY19jdl9lbnZfUEtHX0NPTkZJR192YWx1ZT0vdXNyL2xvY2Fs L2Jpbi9wa2ctY29uZmlnCmFjX2N2X2Vudl9YTUtNRl9zZXQ9JycKYWNfY3ZfZW52X1hNS01GX3Zh bHVlPScnCmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9c2V0CmFjX2N2X2Vudl9idWlsZF9hbGlh c192YWx1ZT1pMzg2LXBvcnRibGQtZnJlZWJzZDguMAphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9 JycKYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9JycKYWNfY3ZfZW52X3RhcmdldF9hbGlhc19z ZXQ9JycKYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0nJwphY19jdl9oZWFkZXJfaW50dHlw ZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwphY19jdl9oZWFkZXJfbWluaXhfY29u ZmlnX2g9bm8KYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD15ZXMK YWNfY3ZfaGVhZGVyX3N0ZGxpYl9oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVzCmFjX2N2 X2hlYWRlcl9zdHJpbmdzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwphY19jdl9o ZWFkZXJfc3lzX3R5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaG9z dD1pMzg2LXBvcnRibGQtZnJlZWJzZDguMAphY19jdl9saWJfbGV4PS1sZmwKYWNfY3Zfb2JqZXh0 PW8KYWNfY3ZfcGF0aF9FR1JFUD0nL3Vzci9iaW4vZ3JlcCAtRScKYWNfY3ZfcGF0aF9GSU5EPS91 c3IvYmluL2ZpbmQKYWNfY3ZfcGF0aF9HUkVQPS91c3IvYmluL2dyZXAKYWNfY3ZfcGF0aF9STT0v YmluL3JtCmFjX2N2X3Byb2dfQVI9YXIKYWNfY3ZfcHJvZ19BV0s9bmF3awphY19jdl9wcm9nX0NQ UD0nY2MgLUUnCmFjX2N2X3Byb2dfTEVYPWZsZXgKYWNfY3ZfcHJvZ19NQUtFPWdtYWtlCmFjX2N2 X3Byb2dfYWNfY3RfQ0M9Y2MKYWNfY3ZfcHJvZ19jY19jODk9JycKYWNfY3ZfcHJvZ19jY19jY19j X289eWVzCmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNfY3ZfcHJvZ19sZXhfcm9vdD1sZXgueXkKYWNf Y3ZfcHJvZ19sZXhfeXl0ZXh0X3BvaW50ZXI9eWVzCmFjX2N2X3Byb2dfbWFrZV9nbWFrZV9zZXQ9 eWVzCmFjX2N2X3NhZmVfdG9fZGVmaW5lX19fZXh0ZW5zaW9uc19fPXllcwphY19jdl90YXJnZXQ9 aTM4Ni1wb3J0YmxkLWZyZWVic2Q4LjAKYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGU9Z2NjMwpsdF9jdl9zeXNfbWF4X2NtZF9sZW49MjYyMTQ0CgojIyAtLS0tLS0tLS0tLS0tLS0t LSAjIwojIyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwoKQUNM T0NBTD0nJHtTSEVMTH0gL3Vzci9wb3J0cy9jb21tcy9nbm9raWkvd29yay9nbm9raWktMC42LjI4 L21pc3NpbmcgLS1ydW4gYWNsb2NhbC0xLjEwJwpBTExfTElOR1VBUz0nJwpBTURFUEJBQ0tTTEFT SD0nXCcKQU1ERVBfRkFMU0U9JyMnCkFNREVQX1RSVUU9JycKQU1UQVI9JyR7U0hFTEx9IC91c3Iv cG9ydHMvY29tbXMvZ25va2lpL3dvcmsvZ25va2lpLTAuNi4yOC9taXNzaW5nIC0tcnVuIHRhcicK QVI9J2FyJwpBUz0nJwpBVVRPQ09ORj0nJHtTSEVMTH0gL3Vzci9wb3J0cy9jb21tcy9nbm9raWkv d29yay9nbm9raWktMC42LjI4L21pc3NpbmcgLS1ydW4gYXV0b2NvbmYnCkFVVE9IRUFERVI9JyR7 U0hFTEx9IC91c3IvcG9ydHMvY29tbXMvZ25va2lpL3dvcmsvZ25va2lpLTAuNi4yOC9taXNzaW5n IC0tcnVuIGF1dG9oZWFkZXInCkFVVE9NQUtFPScke1NIRUxMfSAvdXNyL3BvcnRzL2NvbW1zL2du b2tpaS93b3JrL2dub2tpaS0wLjYuMjgvbWlzc2luZyAtLXJ1biBhdXRvbWFrZS0xLjEwJwpBV0s9 J25hd2snCkJMVUVUT09USF9MSUJTPScnCkNBVEFMT0dTPScnCkNBVE9CSkVYVD0nJwpDQz0nY2Mn CkNDREVQTU9ERT0nZGVwbW9kZT1nY2MzJwpDRkxBR1M9Jy1PMiAtcGlwZSAtZm5vLXN0cmljdC1h bGlhc2luZycKQ1BQPSdjYyAtRScKQ1BQRkxBR1M9Jy1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtZlBJQycKQ1lHUEFUSF9XPSdlY2hvJwpEQVRBRElS TkFNRT0nJwpERUZTPScnCkRFUERJUj0nLmRlcHMnCkRMTFRPT0w9JycKRFNZTVVUSUw9JycKRFVN UEJJTj0nJwpFQ0hPX0M9JycKRUNIT19OPSctbicKRUNIT19UPScnCkVHUkVQPScvdXNyL2Jpbi9n cmVwIC1FJwpFWEVFWFQ9JycKRkdSRVA9JycKRklORD0nL3Vzci9iaW4vZmluZCcKR0VUVEVYVF9Q QUNLQUdFPScnCkdMREZMQUdTPScnCkdMSUJfQ0ZMQUdTPScnCkdMSUJfTElCUz0nJwpHTU9GSUxF Uz0nJwpHTVNHRk1UPScnCkdOT0tJSV9MVF9WRVJTSU9OPScnCkdOT0tJSV9MVF9WRVJTSU9OX0FH RT0nMCcKR05PS0lJX0xUX1ZFUlNJT05fQ1VSUkVOVD0nNScKR05PS0lJX0xUX1ZFUlNJT05fUkVW SVNJT049JzAnCkdSRVA9Jy91c3IvYmluL2dyZXAnCkdUS19DRkxBR1M9JycKR1RLX0xJQlM9JycK SEFWRV9HVEtfRkFMU0U9JycKSEFWRV9HVEtfVFJVRT0nJwpIQVZFX0xJQklDQUw9JycKSEFWRV9M SUJVU0I9JycKSEFWRV9NWVNRTF9GQUxTRT0nJwpIQVZFX01ZU1FMX1RSVUU9JycKSEFWRV9QT1NU R1JFU19GQUxTRT0nJwpIQVZFX1BPU1RHUkVTX1RSVUU9JycKSEFWRV9YR05PS0lJPScnCklOU1RB TExfREFUQT0naW5zdGFsbCAgLW8gcm9vdCAtZyB3aGVlbCAtbSA0NDQnCklOU1RBTExfUFJPR1JB TT0naW5zdGFsbCAgLXMgLW8gcm9vdCAtZyB3aGVlbCAtbSA1NTUnCklOU1RBTExfU0NSSVBUPSdp bnN0YWxsICAtbyByb290IC1nIHdoZWVsIC1tIDU1NScKSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSck KGluc3RhbGxfc2gpIC1jIC1zJwpJTlNUT0JKRVhUPScnCklOVExMSUJTPScnCklOVExUT09MX0NB VkVTX1JVTEU9JycKSU5UTFRPT0xfREVTS1RPUF9SVUxFPScnCklOVExUT09MX0RJUkVDVE9SWV9S VUxFPScnCklOVExUT09MX0VYVFJBQ1Q9JycKSU5UTFRPT0xfS0JEX1JVTEU9JycKSU5UTFRPT0xf S0VZU19SVUxFPScnCklOVExUT09MX01FUkdFPScnCklOVExUT09MX09BRl9SVUxFPScnCklOVExU T09MX1BFUkw9JycKSU5UTFRPT0xfUE9MSUNZX1JVTEU9JycKSU5UTFRPT0xfUE9OR19SVUxFPScn CklOVExUT09MX1BST1BfUlVMRT0nJwpJTlRMVE9PTF9TQ0hFTUFTX1JVTEU9JycKSU5UTFRPT0xf U0VSVkVSX1JVTEU9JycKSU5UTFRPT0xfU0VSVklDRV9SVUxFPScnCklOVExUT09MX1NIRUVUX1JV TEU9JycKSU5UTFRPT0xfU09VTkRMSVNUX1JVTEU9JycKSU5UTFRPT0xfVEhFTUVfUlVMRT0nJwpJ TlRMVE9PTF9VSV9SVUxFPScnCklOVExUT09MX1VQREFURT0nJwpJTlRMVE9PTF9YQU1fUlVMRT0n JwpJTlRMVE9PTF9YTUxfTk9NRVJHRV9SVUxFPScnCklOVExUT09MX1hNTF9SVUxFPScnCkxEPScn CkxERkxBR1M9Jy1ML3Vzci9sb2NhbC9saWInCkxFWD0nZmxleCcKTEVYTElCPSctbGZsJwpMRVhf T1VUUFVUX1JPT1Q9J2xleC55eScKTElCR05PS0lJX1ZFUlNJT05fTUFKT1I9JycKTElCR05PS0lJ X1ZFUlNJT05fTUlOT1I9JycKTElCR05PS0lJX1ZFUlNJT05fUkVMRUFTRT0nJwpMSUJHTk9LSUlf VkVSU0lPTl9TVFJJTkc9JycKTElCSUNPTlY9JycKTElCT0JKUz0nJwpMSUJQQ1NDTElURV9DRkxB R1M9JycKTElCUENTQ0xJVEVfTElCUz0nJwpMSUJTPSctTC91c3IvcG9ydHMvY29tbXMvZ25va2lp L3dvcmsvZ25va2lpLTAuNi4yOC9jb21tb24gLUwvdXNyL2xvY2FsL2xpYicKTElCVE9PTD0nJwpM SVBPPScnCkxOX1M9JycKTFRMSUJJQ09OVj0nJwpMVExJQk9CSlM9JycKTUFLRT0nZ21ha2UnCk1B S0VJTkZPPScke1NIRUxMfSAvdXNyL3BvcnRzL2NvbW1zL2dub2tpaS93b3JrL2dub2tpaS0wLjYu MjgvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycKTUtESVJfUD0nLi9pbnN0YWxsLXNoIC1jIC1kJwpN S0lOU1RBTExESVJTPScnCk1TR0ZNVD0nL3Vzci9sb2NhbC9iaW4vbXNnZm10JwpNU0dGTVRfT1BU Uz0nJwpNU0dNRVJHRT0nJwpNWVNRTENPTkZJRzU9JycKTVlTUUxDT05GSUc9JycKTVlTUUxfQ0ZM QUdTPScnCk1ZU1FMX0xJQlM9JycKTkVFRF9MT0NBTEVfQ0hBUlNFVD0nJwpOTT0nJwpOTUVESVQ9 JycKT0JKRFVNUD0nJwpPQkpFWFQ9J28nCk9UT09MNjQ9JycKT1RPT0w9JycKT1dOX0dFVE9QVD0n JwpQQUNLQUdFPSdnbm9raWknClBBQ0tBR0VfQlVHUkVQT1JUPSdodHRwOi8vd3d3Lmdub2tpaS5v cmcvJwpQQUNLQUdFX05BTUU9J2dub2tpaScKUEFDS0FHRV9TVFJJTkc9J2dub2tpaSAwLjYuMjgn ClBBQ0tBR0VfVEFSTkFNRT0nZ25va2lpJwpQQUNLQUdFX1ZFUlNJT049JzAuNi4yOCcKUEFUSF9T RVBBUkFUT1I9JzonClBHQ09ORklHPScnClBLR19DT05GSUc9Jy91c3IvbG9jYWwvYmluL3BrZy1j b25maWcnClBPRklMRVM9JycKUE9TVEdSRVNfQ0ZMQUdTPScnClBPU1RHUkVTX0xJQlM9JycKUE9T VUI9JycKUE9fSU5fREFUQURJUl9GQUxTRT0nJwpQT19JTl9EQVRBRElSX1RSVUU9JycKUFRIUkVB RF9DQz0nJwpQVEhSRUFEX0NGTEFHUz0nJwpQVEhSRUFEX0xJQlM9JycKUkFOTElCPScnClJNPScv YmluL3JtJwpTRUQ9JycKU0VUX01BS0U9JycKU0hFTEw9Jy9iaW4vc2gnClNNU0RfRkFMU0U9JycK U01TRF9UUlVFPScnClNUUklQPScnClRDUF9MSUJTPScnClRFUk1MREZMQUdTPScnClRFUk1MSUJT PScnClVTQl9MSUJTPScnClVTRV9OTFM9J3llcycKVVNFX1VOSVg5OFBUWVM9JycKVkVSU0lPTj0n MC42LjI4JwpXSU4zMj0nJwpXSU4zMl9DUk9TUz0nJwpXSU4zMl9GQUxTRT0nJwpXSU4zMl9UUlVF PScnClhHRVRURVhUPScvdXNyL2xvY2FsL2Jpbi94Z2V0dGV4dCcKWE1LTUY9JycKWFBBQ0tBR0U9 JycKWFBNX0NGTEFHUz0nJwpYUE1fTElCUz0nJwpYVkVSU0lPTj0nMS4wJwphY19jdF9DQz0nY2Mn CmFjX2N0X0RVTVBCSU49JycKYWN4X3B0aHJlYWRfY29uZmlnPScnCmFtX19mYXN0ZGVwQ0NfRkFM U0U9JyMnCmFtX19mYXN0ZGVwQ0NfVFJVRT0nJwphbV9faW5jbHVkZT0naW5jbHVkZScKYW1fX2lz cmM9JycKYW1fX2xlYWRpbmdfZG90PScuJwphbV9fcXVvdGU9JycKYW1fX3Rhcj0nJHtBTVRBUn0g Y2hvZiAtICIkJHRhcmRpciInCmFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKYmluZGlyPScke2V4 ZWNfcHJlZml4fS9iaW4nCmJ1aWxkPSdpMzg2LXBvcnRibGQtZnJlZWJzZDguMCcKYnVpbGRfYWxp YXM9J2kzODYtcG9ydGJsZC1mcmVlYnNkOC4wJwpidWlsZF9jcHU9J2kzODYnCmJ1aWxkX29zPSdm cmVlYnNkOC4wJwpidWlsZF92ZW5kb3I9J3BvcnRibGQnCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9 JwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2Rv Yy8ke1BBQ0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwpleGVjX3ByZWZpeD0nTk9O RScKaG9zdD0naTM4Ni1wb3J0YmxkLWZyZWVic2Q4LjAnCmhvc3RfYWxpYXM9JycKaG9zdF9jcHU9 J2kzODYnCmhvc3Rfb3M9J2ZyZWVic2Q4LjAnCmhvc3RfdmVuZG9yPSdwb3J0YmxkJwpodG1sZGly PScke2RvY2Rpcn0nCmluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwppbmZvZGlyPScvdXNy L2xvY2FsL2luZm8nCmluc3RhbGxfc2g9JyQoU0hFTEwpIC91c3IvcG9ydHMvY29tbXMvZ25va2lp L3dvcmsvZ25va2lpLTAuNi4yOC9pbnN0YWxsLXNoJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xp YicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxlZGlyPScke2RhdGFy b290ZGlyfS9sb2NhbGUnCmxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCmx0X0VDSE89J2Vj aG8nCm1hbmRpcj0nL3Vzci9sb2NhbC9tYW4nCm1rZGlyX3A9JyQodG9wX2J1aWxkZGlyKS8uL2lu c3RhbGwtc2ggLWMgLWQnCm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPScke2Rv Y2Rpcn0nCnByZWZpeD0nL3Vzci9sb2NhbCcKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgs Jwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRz dGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0 PSdpMzg2LXBvcnRibGQtZnJlZWJzZDguMCcKdGFyZ2V0X2FsaWFzPScnCnRhcmdldF9jcHU9J2kz ODYnCnRhcmdldF9vcz0nZnJlZWJzZDguMCcKdGFyZ2V0X3ZlbmRvcj0ncG9ydGJsZCcKCiMjIC0t LS0tLS0tLS0tICMjCiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgojZGVmaW5l IFBBQ0tBR0VfTkFNRSAiZ25va2lpIgojZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ25va2lpIgoj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMC42LjI4IgojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJn bm9raWkgMC42LjI4IgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJodHRwOi8vd3d3Lmdub2tp aS5vcmcvIgojZGVmaW5lIFNURENfSEVBREVSUyAxCiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CiNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKI2RlZmluZSBIQVZFX1NURExJQl9IIDEKI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKI2RlZmluZSBIQVZFX1NURElOVF9I IDEKI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCiNkZWZp bmUgX0FMTF9TT1VSQ0UgMQojZGVmaW5lIF9HTlVfU09VUkNFIDEKI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQojZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKI2RlZmluZSBQQUNLQUdF ICJnbm9raWkiCiNkZWZpbmUgVkVSU0lPTiAiMC42LjI4IgojZGVmaW5lIFlZVEVYVF9QT0lOVEVS IDEKCmNvbmZpZ3VyZTogZXhpdCAxCg== ------=_20091228182724_50708--