From owner-freebsd-current@FreeBSD.ORG Wed Oct 6 11:02:40 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AD45416A4CE for ; Wed, 6 Oct 2004 11:02:40 +0000 (GMT) Received: from mproxy.gmail.com (rproxy.gmail.com [64.233.170.201]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2191943D4C for ; Wed, 6 Oct 2004 11:02:40 +0000 (GMT) (envelope-from nkalev@gmail.com) Received: by mproxy.gmail.com with SMTP id 79so4017066rnk for ; Wed, 06 Oct 2004 04:02:38 -0700 (PDT) Received: by 10.38.79.46 with SMTP id c46mr1594824rnb; Wed, 06 Oct 2004 04:02:38 -0700 (PDT) Received: by 10.38.209.72 with HTTP; Wed, 6 Oct 2004 04:02:38 -0700 (PDT) Message-ID: <136a340a04100604021216f931@mail.gmail.com> Date: Wed, 6 Oct 2004 14:02:38 +0300 From: Nikolay Kalev To: itetcu@people.tecnik93.com, freebsd-current@freebsd.org In-Reply-To: <20041006114235.79eb1aee@it.buh.tecnik93.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_56_2360383.1097060558435" References: <200410060019.i960JSbq012606@bunrab.catwhisker.org> <1F92A08DB846503C2933CB0D@192.168.1.16> <20041006010051.GA53821@sirius.speicher.org> <20041006065433.GB612@loge.nixsys.be> <136a340a041006002068ffbf8d@mail.gmail.com> <20041006114235.79eb1aee@it.buh.tecnik93.com> Subject: Re: csh is root's shell? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Nikolay Kalev List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Oct 2004 11:02:40 -0000 ------=_Part_56_2360383.1097060558435 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wed, 6 Oct 2004 11:42:35 +0300, Ion-Mihai Tetcu wrote: > On Wed, 6 Oct 2004 10:20:34 +0300 > Nikolay Kalev wrote: > > > Put sum tcshrc scripts from tcshrc.sf.net and it will be better then bash. > > I think i;m on my way to create a patch for that :-))). > > I've recently discussed with the port maintainer of tcshrc to work at an > update of the port (our distfile is from 2003), but if you have already > done work is this area please say, I don't wanna duplicate yours. > > If not, maybe I can send you a diff when is ready to test it ? > Ok here is a Simple dot.tcshrc file which needs more testing and cleanup. I removed some stuff which are not working very well under FreeBSD in new versions of tcshrc scripts from the original author. -- Key fingerprint = 9864 E575 E207 FB90 44C8 26A2 0167 E57E 66ED 0F1D ------=_Part_56_2360383.1097060558435 Content-Type: application/octet-stream; name="dot.tcshrc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dot.tcshrc" IwojIE1hZGUgZnJvbSB0Y3NocmMuc2YubmV0IHByb2plY3QgKyBzb21lIGZpeGVzIGZvciBiZXR0 ZXIgd29ya2luZyB1bmRlciBGcmVlQlNECiMgYnkgTmlrb2xheSBLYWxldiA8cm9vdGNob0BtaWNy b2JzZC5uZXQ+CiMgLnRjc2hyYyByZXNvdXJjZSBzY3JpcHQgd2l0aCBzb21lIHByZXR0eSBpbXBy b3ZlbWVudHMgb3ZlciBub3JtYWwgdGNzaCBmdW5jdGlvbnMKIwoKIyAgICAgICAgICJ1c2VyIiAr ICJyb290IiBlbnZpcm9ubWVudCAoYmFzaWMpCnNldCAtZiBwYXRoID0gKCAkcGF0aCAvYmluICkK c2V0IC1mIHBhdGggPSAoICRwYXRoIC9zYmluICkKc2V0IC1mIHBhdGggPSAoICRwYXRoIC91c3Iv YmluICkKc2V0IC1mIHBhdGggPSAoICRwYXRoIC91c3Ivc2JpbiApCnNldCAtZiBwYXRoID0gKCAk cGF0aCAvdXNyL2xvY2FsL2JpbiApCnNldCAtZiBwYXRoID0gKCAkcGF0aCAvdXNyL2xvY2FsL3Ni aW4gKQoKIyAgICAgICAgICJ1c2VyIiArICJyb290IiBlbnZpcm9ubWVudCAobWlzYykKc2V0IC1s IHBhdGggPSAoICRwYXRoIC91c3IvbG9jYWwvc3NsL2JpbiApCnNldCAtbCBwYXRoID0gKCAkcGF0 aCAvdXNyL2xvY2FsL3NhbWJhL2JpbiApCnNldCAtbCBwYXRoID0gKCAkcGF0aCAvdXNyL2xvY2Fs L2phdmEvYmluICkKc2V0IC1sIHBhdGggPSAoICRwYXRoIC91c3IvZ2FtZXMgKQoKaWYgKCQ/VVNF UiA9PSAwIHx8ICQ/cHJvbXB0ID09IDApIGV4aXQKCiMgZ2VuZXJhbCBjb25maWd1cmF0aW9uCgpp ZiAoJExPR05BTUUgPT0gInJvb3QiKSB0aGVuCgkJc2V0IHByb21wdD0iWyVCJW0lYl06JVMlLyVz IyAiCgkJZWxzZQoJCXNldCBwcm9tcHQ9IlslQiVtJWJdOiVTJS8lcz4gIgplbmRpZgoKc2V0IHBy b21wdDI9IiVSPyIKc2V0IHByb21wdDM9IkNPUlJFQ1Q+ICVCJVIlYiAoeXxufGUpPyIKc2V0IG5v YmVlcApzZXQgaGlzdG9yeT00MDk2CnVuc2V0IGhpc3RmaWxlCnNldCB3YXRjaD0oMCBhbnkgYW55 KQpzZXQgd2hvPSIlbiBoYXMgJWEgJWwgZnJvbSAlTS4iCnNldCBpbnB1dG1vZGU9aW5zZXJ0CnNl dCBhdXRvbGlzdApzZXQgYXV0b2NvcnJlY3QKc2V0IGF1dG9leHBhbmQKc2V0IGNvbXBsZXRlPWVu aGFuY2UKIyBjb3JyZWN0aW9uIG9wdGlvbiBpcyBjb21tZW50ZWQgYmVjYXVzZSBvZiBpc3N1ZXMg ZHVyaW5nIGNvbXBpbGF0aW9uLiBJZiBzb21lb25lIHdhbnRzIHRvIHRyeSBpdCBvdXQgcGxlYXNl IGdvIGFoZWFkIDotKS4KI3NldCBjb3JyZWN0PWFsbAp1bnNldCBhdXRvbG9nb3V0CnNldCBzeW1s aW5rcz1jaGFzZQpzZXQgbGlzdGpvYnMKc2V0IHByaW50ZXhpdHZhbHVlCiMgdGhpcyBpcyBwcmV0 dHkgbmVhZCB0byBhc2sgeW91IHdoZW4Kc2V0IHJtc3RhcgojIElnbm9yZXQgZmlsZXMgZm9yIGNv bXBsZXRpdGlvbgpzZXQgZmlnbm9yZT0oLm8pCiMgVGhpcyBvbmUgaXMgbXkgZmF2b3JpdGUhIEdp dmVzIHN0YXR1cyBhYm91dCB1c2VkIHRpbWUsIENQVSBhbmQgc28gb24sIGFmdGVyIGNvbXBpbGF0 aW9uIG9yIG90aGVyIHNvcnRzIG9mIHRhc2tzLgpzZXQgdGltZT0oOCAiXApUaW1lIHNwZW50IGlu IHVzZXIgbW9kZSAgIChDUFUgc2Vjb25kcykgOiAlVXNcClRpbWUgc3BlbnQgaW4ga2VybmVsIG1v ZGUgKENQVSBzZWNvbmRzKSA6ICVTc1wKVG90YWwgdGltZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogJUVzXApDUFUgdXRpbGlzYXRpb24gKHBlcmNlbnRhZ2UpICAgICAgICAgICAgOiAl UFwKVGltZXMgdGhlIHByb2Nlc3Mgd2FzIHN3YXBwZWQgICAgICAgICAgIDogJVdcClRpbWVzIG9m IG1ham9yIHBhZ2UgZmF1bHRzICAgICAgICAgICAgICA6ICVGXApUaW1lcyBvZiBtaW5vciBwYWdl IGZhdWx0cyAgICAgICAgICAgICAgOiAlUiIpCgp1bnNldCB0cGVyaW9kCnVuYWxpYXMgcGVyaW9k aWMKc2V0IFVSTFM9KGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvICkKCiMJQ29tbWFuZCBhbGlhc2Vz CgphbGlhcyBybSAJJ3JtIC1pJwphbGlhcyBjcCAJJ2NwIC1pJwphbGlhcyBtdiAJJ212IC1pJwph bGlhcyBkZWwgICAJJ3JtIC1pJwphbGlhcyBjbHMgICAJJ2NsZWFyJwphbGlhcyBtZCAgICAJJ21r ZGlyIC1wJwphbGlhcyByZCAgICAJJ3JtZGlyJwoKaWYgKCAtZSBgd2hlcmUgbGVzc2AgKSB0aGVu CglhbGlhcyBtb3JlIAknbGVzcycKZW5kaWYKCmFsaWFzIHRvZGF5IAkiZGF0ZSAnKyVkJWgleSci CmFsaWFzIG1lc3MgCSdjbGVhciA7IHRhaWwgLWYgL3Zhci9sb2cvbWVzc2FnZXMnCgppZiAoIC1l IGB3aGVyZSB2aW1gKSB0aGVuCglhbGlhcyB2aSAJJ3ZpbScKZW5kaWYKCmFsaWFzIHggICAgIAkn ZXhpdCcKYWxpYXMgZmYgICAgCSdmaW5kIC4gLW5hbWUgJConCmFsaWFzIC4gCSdwd2QnCmFsaWFz IC4uIAknY2QgLi4nCmFsaWFzIC4uLwknY2QgLi4vJwphbGlhcyAuLi4gCSdjZCAuLi8uLicKYWxp YXMgLi4uLwknY2QgLi4vLi4vJwphbGlhcyAtCQknY2QgLScKYWxpYXMgLwkJJ2NkIC8nCmFsaWFz IG1hZWsgICdtYWtlJwphbGlhcyBhbGFpcyAnYWxpYXMnCmFsaWFzIGNzbCAgICdjbGVhcicKYWxp YXMgaGVscGNvbW1hbmQgbWFuCgojIEJpbmRrZXlzCgpzd2l0Y2ggKCAkT1NUWVBFICkKICAgICAg Y2FzZSAiRnJlZUJTRCoiOiAgICAgICAgICMgRnJlZUJTRAoJIyBJTlNFUlQgOiB0b2dnbGVzIG92 ZXJ3cml0ZSBvciBpbnNlcnQgbW9kZS4KCWJpbmRrZXkgICAgXltbMn4gIG92ZXJ3cml0ZS1tb2Rl IAoKCSMgREVMRVRFIDogZGVsZXRlIGNoYXIgYXQgY3Vyc29yIHBvc2l0aW9uLgoJYmluZGtleSAg ICBeW1szfiAgZGVsZXRlLWNoYXIKCgkjIEhPTUUgOiBnbyB0byB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBsaW5lLgoJYmluZGtleSAgICBeW1sxfiAgYmVnaW5uaW5nLW9mLWxpbmUKCgkjIEVORCA6IGdv IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCgliaW5ka2V5ICAgIF5bWzR+ICBlbmQtb2YtbGluZQoK CSMgUEFHRSBVUCA6IHNlYXJjaCBpbiBoaXN0b3J5IGJhY2t3YXJkcyBmb3IgbGluZSBiZWdpbm5p bmcgYXMgY3VycmVudC4KCWJpbmRrZXkgICAgXltbNX4gICBoaXN0b3J5LXNlYXJjaC1iYWNrd2Fy ZAoKCSMgUEFHRSBET1dOIDogc2VhcmNoIGluIGhpc3RvcnkgZm9yd2FyZHMgZm9yIGxpbmUgYmVn aW5uaW5nIGFzIGN1cnJlbnQuCgliaW5ka2V5ICAgIF5bWzZ+ICAgaGlzdG9yeS1zZWFyY2gtZm9y d2FyZAoKCSMgRVNDLWxlZnQtYXJyb3cgOiBnbyB0byBiZWdpbm5pbmcgb2YgbGVmdCB3b3JkLiAg ICAgICAgCgkjIFRoZSBzZWNvbmQgdmVyc2lvbiBpcyB1c2VkIHRvIGZpeCBhIHN0cmFuZ2UgYnVn IHdoZXJlIHRoZSBiaW5kaW5nCgkjIHN0b3BzIHdvcmtpbmcgYWZ0ZXIgc29tZSB1c2FnZS4gRGlk IG5vdCBtYW5hZ2UgdG8gcmVjcmVhdGUuCgliaW5ka2V5ICAgIF5bXltbRCB2aS13b3JkLWJhY2sK CWJpbmRrZXkJICAgGxtPRCB2aS13b3JkLWJhY2sKCgkjIEVTQy1yaWdodC1hcnJvdyA6IGdvIHRv IGJlZ2lubmluZyBvZiByaWdodCB3b3JkLgoJIyBUaGUgc2Vjb25kIHZlcnNpb24gaXMgdXNlZCB0 byBmaXggYSBzdHJhbmdlIGJ1ZyB3aGVyZSB0aGUgYmluZGluZwoJIyBzdG9wcyB3b3JraW5nIGFm dGVyIHNvbWUgdXNhZ2UuIERpZCBub3QgbWFuYWdlIHRvIHJlY3JlYXRlLgoJYmluZGtleSAgICBe W15bW0Mgdmktd29yZC1md2QKCWJpbmRrZXkJICAgGxtPQyB2aS13b3JkLWZ3ZAoKCSMgRjEgOiBo ZWxwIG9uIGNvbW1hbmQgY3VycmVudGx5IHR5cGVkKGlmICdscyBwYXNzd2QnLCBoZWxwIG9uICds cycpLgoJIyBmaXJzdDogd2hpbGUgaW4gY29uc29sZSBtb2RlLCBzZWNvbmQ6IHdoaWxlIGluIFgK CWJpbmRrZXkgICAgXltbW0EgICBydW4taGVscAoJYmluZGtleSAgICAbT1AgICAgcnVuLWhlbHAK CgkjIEYyIDogc2V0IHRoZSBtYXJrIGNvbW1hbmQgdG8gY3Vyc29yIHBvc2l0aW9uLgoJIyBmaXJz dDogd2hpbGUgaW4gY29uc29sZSBtb2RlLCBzZWNvbmQ6IHdoaWxlIGluIFgKCWJpbmRrZXkgIF5b W1tCICAgIHNldC1tYXJrLWNvbW1hbmQgCgliaW5ka2V5ICAbT1EgICAgIHNldC1tYXJrLWNvbW1h bmQgCgoJIyBGMyA6IG1vdmUgY3Vyc29yIHRvIHRoZSBtYXJrZWQgcG9zaXRpb24uCgkjIGZpcnN0 OiB3aGlsZSBpbiBjb25zb2xlIG1vZGUsIHNlY29uZDogd2hpbGUgaW4gWAoJYmluZGtleSAgIF5b W1tDICAgZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmsgCgliaW5ka2V5ICAgG09SICAgIGV4Y2hhbmdl LXBvaW50LWFuZC1tYXJrIAoKCSMgRjQgOiAtLWVtcHR5LS0KCSMgZmlyc3Q6IHdoaWxlIGluIGNv bnNvbGUgbW9kZSwgc2Vjb25kOiB3aGlsZSBpbiBYCgliaW5ka2V5ICAgXltbW0QgICB1bmRlZmlu ZWQta2V5CgliaW5ka2V5ICAgG09TICAgdW5kZWZpbmVkLWtleQoKCSMgRjUgOiBjaGVjayBsaW5l IGZvciBzcGVsbGluZyBhbmQgbWFrZSBjaGFuZ2VzLgoJIyBmaXJzdDogd2hpbGUgaW4gY29uc29s ZSBtb2RlLCBzZWNvbmQ6IHdoaWxlIGluIFgKCWJpbmRrZXkgICAgXltbW0UgICBzcGVsbC1saW5l CgliaW5ka2V5ICAgIBtbMTV+ICAgc3BlbGwtbGluZQoKCSMgRjYgOiBjaGVjayBjdXJyZW50IHdv cmQgZm9yIHNwZWxsaW5nIGFuZCBtYWtlIGNoYW5nZXMuCgkjIHNhbWUgaW4gYm90aCBjb25zb2xl IGFuZCBYIG1vZGVzCgliaW5ka2V5ICAgIF5bWzE3fiAgc3BlbGwtd29yZAoKCSMgRjcgOiBpbnNl cnQgbGFzdCBpdGVtIG9mIHByZXZpb3VzIGNvbW1hbmQuCgliaW5ka2V5ICAgIF5bWzE4fiAgaW5z ZXJ0LWxhc3Qtd29yZAoKCSMgRjggOiBzZWFyY2ggaW4gaGlzdG9yeSBiYWNrd2FyZHMgZm9yIGxp bmUgYmVnaW5uaW5nIGFzIGN1cnJlbnQuCgliaW5ka2V5ICAgXltbMTl+ICBoaXN0b3J5LXNlYXJj aC1iYWNrd2FyZAoKCSMgRjkgOiBjbGVhciBzY3JlZW4uCgkjIFlvdSBtYXkgYmUgaW4gdGhlIG1p ZGRsZSBvZiBhIGNvbW1hbmQgd2hlbiB5b3UgdXNlIHRoaXMuCgkjIERvZXMgbm90IGFmZmVjdCB3 aGF0IHlvdSBhcmUgd3JpdGluZyBhdCB0aGUgbW9tZW50LgoJYmluZGtleSAgICBeW1syMH4gIGNs ZWFyLXNjcmVlbgoKCSMgRjEwIDogZG8gYW4gJ2xzIC1sJy4gICAgKFwxNiBpcyBDdHJsLVUgb24g TGludXgoYW5kIFN1bj8pKQoJIyBEb2VzIG5vdCB3b3JrIG9uIHNvbWUgeHRlcm0qIChnbm9tZS10 ZXJtaW5hbCkuCgliaW5ka2V5IC1zIF5bWzIxfiAgIlwxNmxzIC1sXG4iCgoJIyBGMTEgOiBkaXNw bGF5IGxvYWQgYXZlcmFnZSBhbmQgY3VycmVudCBwcm9jZXNzIHN0YXR1cy4KCSMgRG9lcyBub3Qg d29yayBvbiBMaW51eC4gUGVyaGFwcyBidWcgaW4gdGNzaD8KCSMgQ2hhbmdlZCB3aXRoIHJ1bm5p bmcgInVwdGltZSIuCgkjIyMgYmluZGtleSAgICBeW1syM34gIGxvYWQtYXZlcmFnZSAKCWJpbmRr ZXkgLXMgICBeW1syM34gICJcMTZ1cHRpbWVcbiIKCgkjIEYxMiA6IGRvIGEgYWxhLWNzaCBjb21w bGV0aW9uLgoJYmluZGtleSAgICBeW1syNH4gIGNvbXBsZXRlLXdvcmQtcmF3CgoJIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkjIEFkdmFuY2VkIHNldHRpbmdzCgoJIyBU aGFua3MgdG8gQ2FybG9zIER1YXJ0ZSA8Y2dkQHRlbGV3ZWIucHQ+CgkjIEVhenkgZWRpdCBvZiBw YXRoLCB0eXBlIEN0cmwtWCBwCgliaW5ka2V5IC1zICdeWHAnICAgICAgICAnLiBgZWNobyAkcGF0 aGBeWCopXkFeRHNldCBwYXRoID0gKCAnCgoJIyBDdHJsLVggKiAgIEV4cGFuZCBnbG9iLiBleGFt cGxlOiBscyAqPF5YKj4gIHdpbGwgZXhwYW5kIHRoZSBsaW5lCgkjIGRlZmF1bHQgYmVoYXZpb3Vy CgoJIyBDdHJsLVggJCAgIEV4cGFuZCB2YXJpYWJsZXMuIGV4YW1wbGU6ICRURVJNPF5YJD4gd2l0 aCBnaXZlICB2dDEwMAoJIyBkZWZhdWx0IGJlaGF2aW91cgogICAJYnJlYWtzdzsKICAgICAgY2Fz ZSAiZnJlZWJzZCoiOiAgICAgICAjIEZyZWVCU0QsIGJ5IHNjb3R0IDxzdG9ja0BmaXNoY3JhY2tl ci5jb20+CgkjIElOU0VSVCA6IHRvZ2dsZXMgb3ZlcndyaXRlIG9yIGluc2VydCBtb2RlLgoJYmlu ZGtleSBeW1tMIG92ZXJ3cml0ZS1tb2RlIAoJYmluZGtleSAgICBeW1syfiAgb3ZlcndyaXRlLW1v ZGUJIyBmb3IgeAoKCSMgREVMRVRFIDogZGVsZXRlIGNoYXIgYXQgY3Vyc29yIHBvc2l0aW9uLgoJ YmluZGtleSBePyBkZWxldGUtY2hhcgoJYmluZGtleSAgICBeW1szfiAgZGVsZXRlLWNoYXIJCSMg Zm9yIHgKCgkjIEhPTUUgOiBnbyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLgoJIyBhbHJl YWR5IGJvdW5kIHRvIGJlZ2lubm5pbmctb2YtbGluZSwgYnV0IHRoZSBrZXljb2RlIHRoaW5nIHdh cyBkaWZmZXJlbnQuCgliaW5ka2V5IF5bW0ggYmVnaW5uaW5nLW9mLWxpbmUKCgkjIEVORCA6IGdv IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCgkjIHNhbWUgYXMgYWJvdmUuCgliaW5ka2V5IF5bW0Yg ZW5kLW9mLWxpbmUKCgkjIFBBR0UgVVAgOiBzZWFyY2ggaW4gaGlzdG9yeSBiYWNrd2FyZHMgZm9y IGxpbmUgYmVnaW5uaW5nIGFzIGN1cnJlbnQuCgliaW5ka2V5IF5bW0kgaGlzdG9yeS1zZWFyY2gt YmFja3dhcmQKCWJpbmRrZXkgXltbNX4gaGlzdG9yeS1zZWFyY2gtYmFja3dhcmQJIyBmb3IgeAoK CSMgUEFHRSBET1dOIDogc2VhcmNoIGluIGhpc3RvcnkgZm9yd2FyZHMgZm9yIGxpbmUgYmVnaW5u aW5nIGFzIGN1cnJlbnQuCgliaW5ka2V5IF5bW0cgaGlzdG9yeS1zZWFyY2gtZm9yd2FyZCAKCWJp bmRrZXkgXltbNn4gaGlzdG9yeS1zZWFyY2gtZm9yd2FyZCAJIyBmb3IgeAoKCSMgRVNDLWxlZnQt YXJyb3cgOiBnbyB0byBiZWdpbm5pbmcgb2YgbGVmdCB3b3JkLiAgICAgICAgCgkjIFRoZSBzZWNv bmQgdmVyc2lvbiBpcyB1c2VkIHRvIGZpeCBhIHN0cmFuZ2UgYnVnIHdoZXJlIHRoZSBiaW5kaW5n CgkjIHN0b3BzIHdvcmtpbmcgYWZ0ZXIgc29tZSB1c2FnZS4gRGlkIG5vdCBtYW5hZ2UgdG8gcmVj cmVhdGUuCgliaW5ka2V5IF5bXltbRCB2aS13b3JkLWJhY2sgICAgICAgICAgIyBub3QgZnJlZWJz ZCBzcGVjaWZpYwoJYmluZGtleQkgICAbG09EIHZpLXdvcmQtYmFjawoKCSMgRVNDLXJpZ2h0LWFy cm93IDogZ28gdG8gYmVnaW5uaW5nIG9mIHJpZ2h0IHdvcmQuCgkjIFRoZSBzZWNvbmQgdmVyc2lv biBpcyB1c2VkIHRvIGZpeCBhIHN0cmFuZ2UgYnVnIHdoZXJlIHRoZSBiaW5kaW5nCgkjIHN0b3Bz IHdvcmtpbmcgYWZ0ZXIgc29tZSB1c2FnZS4gRGlkIG5vdCBtYW5hZ2UgdG8gcmVjcmVhdGUuCgli aW5ka2V5IF5bXltbQyB2aS13b3JkLWZ3ZAkJIyBhbHNvIG5vdCBmcmVlYnNkIHNwZWNpZmljCgli aW5ka2V5CSAgIBsbT0Mgdmktd29yZC1md2QKCgkjIEYxIDogaGVscCBvbiBjb21tYW5kIGN1cnJl bnRseSB0eXBlZChpZiAnbHMgcGFzc3dkJywgaGVscCBvbiAnbHMnKS4KCSMgZmlyc3Q6IHdoaWxl IGluIGNvbnNvbGUgbW9kZSwgc2Vjb25kOiB3aGlsZSBpbiBYCgliaW5ka2V5IF5bW00gcnVuLWhl bHAKCWJpbmRrZXkgICAgG09QICAgIHJ1bi1oZWxwCgoJIyBGMiA6IHNldCB0aGUgbWFyayBjb21t YW5kIHRvIGN1cnNvciBwb3NpdGlvbi4KCSMgZmlyc3Q6IHdoaWxlIGluIGNvbnNvbGUgbW9kZSwg c2Vjb25kOiB3aGlsZSBpbiBYCgliaW5ka2V5IF5bW04gc2V0LW1hcmstY29tbWFuZAoJYmluZGtl eSAgG09RICAgICBzZXQtbWFyay1jb21tYW5kIAoKCSMgRjMgOiBtb3ZlIGN1cnNvciB0byB0aGUg bWFya2VkIHBvc2l0aW9uLgoJIyBmaXJzdDogd2hpbGUgaW4gY29uc29sZSBtb2RlLCBzZWNvbmQ6 IHdoaWxlIGluIFgKCWJpbmRrZXkgXltbTyBleGNoYW5nZS1wb2ludC1hbmQtbWFyawoJYmluZGtl eSAgIBtPUiAgICBleGNoYW5nZS1wb2ludC1hbmQtbWFyayAKCgkjIEY0IDogLS1lbXB0eS0tCgkj IGZpcnN0OiB3aGlsZSBpbiBjb25zb2xlIG1vZGUsIHNlY29uZDogd2hpbGUgaW4gWAoJYmluZGtl eSBeW1tQIHVuZGVmaW5lZC1rZXkKCWJpbmRrZXkgICAbT1MgICB1bmRlZmluZWQta2V5CgoJIyBG NSA6IGNoZWNrIGxpbmUgZm9yIHNwZWxsaW5nIGFuZCBtYWtlIGNoYW5nZXMuCgkjIGZpcnN0OiB3 aGlsZSBpbiBjb25zb2xlIG1vZGUsIHNlY29uZDogd2hpbGUgaW4gWAoJYmluZGtleSBeW1tRIHNw ZWxsLWxpbmUKCWJpbmRrZXkgICAgG1sxNX4gICBzcGVsbC1saW5lCgoJIyBGNiA6IGNoZWNrIGN1 cnJlbnQgd29yZCBmb3Igc3BlbGxpbmcgYW5kIG1ha2UgY2hhbmdlcy4KCWJpbmRrZXkgXltbUiBz cGVsbC13b3JkCgliaW5ka2V5IF5bWzE3fiBzcGVsbC13b3JkCQkjIGZvciB4CgoJIyBGNyA6IGlu c2VydCBsYXN0IGl0ZW0gb2YgcHJldmlvdXMgY29tbWFuZC4KCWJpbmRrZXkgXltbUyBpbnNlcnQt bGFzdC13b3JkCgliaW5ka2V5IF5bWzE4fiBpbnNlcnQtbGFzdC13b3JkCQkjIGZvciB4CgoJIyBG OCA6IHNlYXJjaCBpbiBoaXN0b3J5IGJhY2t3YXJkcyBmb3IgbGluZSBiZWdpbm5pbmcgYXMgY3Vy cmVudC4KCWJpbmRrZXkgXltbVCBoaXN0b3J5LXNlYXJjaC1iYWNrd2FyZAoJYmluZGtleSBeW1sx OX4gaGlzdG9yeS1zZWFyY2gtYmFja3dhcmQJIyBmb3IgeAoKCSMgRjkgOiBjbGVhciBzY3JlZW4u CgkjIFlvdSBtYXkgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1hbmQgd2hlbiB5b3UgdXNlIHRo aXMuCgkjIERvZXMgbm90IGFmZmVjdCB3aGF0IHlvdSBhcmUgd3JpdGluZyBhdCB0aGUgbW9tZW50 LgoJYmluZGtleSBeW1tVIGNsZWFyLXNjcmVlbgoJYmluZGtleSBeW1syMH4gY2xlYXItc2NyZWVu CQkjIGZvciB4CgoJIyBGMTAgOiBkbyBhbiAnbHMgLWwnLiAgICAoXDE2IGlzIEN0cmwtVSBvbiBM aW51eChhbmQgU3VuPykpCgliaW5ka2V5IC1zIF5bW1YgIl5VbHMgLWxcbiIKCWJpbmRrZXkgLXMg XltbMjF+ICAiXlVscyAtbFxuIgkJIyBmb3IgeAoKCSMgRjExIDogZGlzcGxheSBsb2FkIGF2ZXJh Z2UgYW5kIGN1cnJlbnQgcHJvY2VzcyBzdGF0dXMuCgliaW5ka2V5IF5bW1cgbG9hZC1hdmVyYWdl CgliaW5ka2V5IF5bWzIzfiBsb2FkLWF2ZXJhZ2UJCSMgZm9yIHgKCgkjIEYxMiA6IGRvIGEgYWxh LWNzaCBjb21wbGV0aW9uLgoJYmluZGtleSBeW1tYIGNvbXBsZXRlLXdvcmQtcmF3CgliaW5ka2V5 IF5bWzI0fiBjb21wbGV0ZS13b3JkLXJhdwkjIGZvciB4CgoJIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCgkjIEFkdmFuY2VkIHNldHRpbmdzCgoJIyBUaGFua3MgdG8gQ2Fy bG9zIER1YXJ0ZSA8Y2dkQHRlbGV3ZWIucHQ+CgkjIEVhenkgZWRpdCBvZiBwYXRoLCB0eXBlIEN0 cmwtWCBwCgliaW5ka2V5IC1zICdeWHAnICAgICAgICAnLiBgZWNobyAkcGF0aGBeWCopXkFeRHNl dCBwYXRoID0gKCAnCgoJIyBDdHJsLVggKiAgIEV4cGFuZCBnbG9iLiBleGFtcGxlOiBscyAqPF5Y Kj4gIHdpbGwgZXhwYW5kIHRoZSBsaW5lCgkjIGRlZmF1bHQgYmVoYXZpb3VyCgoJIyBDdHJsLVgg JCAgIEV4cGFuZCB2YXJpYWJsZXMuIGV4YW1wbGU6ICRURVJNPF5YJD4gd2l0aCBnaXZlICB2dDEw MAoJIyBkZWZhdWx0IGJlaGF2aW91cgoJYnJlYWtzdzsKICAgICAgZGVmYXVsdDoKZW5kc3cKCiMg Y29tcGxldGUKCm9uaW50ciAtCmlmICghICQ/cHJvbXB0KSBnb3RvIGVuZAoKaWYgKCQ/dGNzaCkg dGhlbgogICAgaWYgKCR0Y3NoICE9IDEpIHRoZW4KICAgCXNldCByZXY9JHRjc2g6cgoJc2V0IHJl bD0kcmV2OmUKCXNldCBwYXQ9JHRjc2g6ZQoJc2V0IHJldj0kcmV2OnIKICAgIGVuZGlmCiAgICBp ZiAoJHJldiA+IDUgJiYgJHJlbCA+IDEpIHRoZW4KCXNldCBfY29tcGxldGU9MQogICAgZW5kaWYK ICAgIHVuc2V0IHJldiByZWwgcGF0CmVuZGlmCgppZiAoJD9fY29tcGxldGUpIHRoZW4KICAgIHNl dCBub2dsb2IKICAgIGlmICggISAkP2hvc3RzICkgc2V0IGhvc3RzCgogICAgY29tcGxldGUgeXdo byAgCW4vKi9cJGhvc3RzLwkjIGFyZ3VtZW50IGZyb20gbGlzdCBpbiAkaG9zdHMKICAgIGNvbXBs ZXRlIHJzaAlwLzEvXCRob3N0cy8gYy8tLyIobCBuKSIvICAgbi8tbC91LyBOLy1sL2MvIG4vLS9j LyBwLzIvYy8gcC8qL2YvCiAgICBjb21wbGV0ZSBzc2gJcC8xL1wkaG9zdHMvIGMvLS8iKGwgbiki LyAgIG4vLWwvdS8gTi8tbC9jLyBuLy0vYy8gcC8yL2MvIHAvKi9mLwogICAgY29tcGxldGUgeHJz aAlwLzEvXCRob3N0cy8gYy8tLyIobCA4IGUpIi8gbi8tbC91LyBOLy1sL2MvIG4vLS9jLyBwLzIv Yy8gcC8qL2YvCiAgICBjb21wbGV0ZSBybG9naW4gCXAvMS9cJGhvc3RzLyBjLy0vIihsIDggZSki LyBuLy1sL3UvCiAgICBjb21wbGV0ZSB0ZWxuZXQgCXAvMS9cJGhvc3RzLyBwLzIveDonPHBvcnQ+ Jy8gbi8qL24vCgogICAgY29tcGxldGUgY2QgIAlwLzEvZC8JCSMgRGlyZWN0b3JpZXMgb25seQog ICAgY29tcGxldGUgY2hkaXIgCXAvMS9kLwogICAgY29tcGxldGUgcHVzaGQgCXAvMS9kLwogICAg Y29tcGxldGUgcG9wZCAJcC8xL2QvCiAgICBjb21wbGV0ZSBwdSAJcC8xL2QvCiAgICBjb21wbGV0 ZSBwbyAJcC8xL2QvCiAgICBjb21wbGV0ZSBjb21wbGV0ZSAJcC8xL1gvCQkjIENvbXBsZXRpb25z IG9ubHkKICAgIGNvbXBsZXRlIHVuY29tcGxldGUJbi8qL1gvCiAgICBjb21wbGV0ZSBleGVjIAlw LzEvYy8JCSMgQ29tbWFuZHMgb25seQogICAgY29tcGxldGUgdHJhY2UgCXAvMS9jLwogICAgY29t cGxldGUgc3RyYWNlIAlwLzEvYy8KICAgIGNvbXBsZXRlIHdoaWNoCW4vKi9jLwogICAgY29tcGxl dGUgd2hlcmUJbi8qL2MvCiAgICBjb21wbGV0ZSBza2lsbCAJcC8xL2MvCiAgICBjb21wbGV0ZSBk ZGUJcC8xL2MvIAogICAgY29tcGxldGUgYWRiCWMvLUkvZC8gbi8tL2MvIE4vLS8iKGNvcmUpIi8g cC8xL2MvIHAvMi8iKGNvcmUpIi8KICAgIGNvbXBsZXRlIHNkYglwLzEvYy8KICAgIGNvbXBsZXRl IGRieAljLy1JL2QvIG4vLS9jLyBOLy0vIihjb3JlKSIvIHAvMS9jLyBwLzIvIihjb3JlKSIvCiAg ICBjb21wbGV0ZSB4ZGIJcC8xL2MvCiAgICBjb21wbGV0ZSBnZGIJbi8tZC9kLyBuLyovYy8KICAg IGNvbXBsZXRlIHVwcwlwLzEvYy8KICAgIGNvbXBsZXRlIHNldAknYy8qPS9mLycgJ3AvMS9zLz0n ICduLz0vZi8nCiAgICBjb21wbGV0ZSB1bnNldAluLyovcy8KICAgIGNvbXBsZXRlIGFsaWFzIAlw LzEvYS8JCSMgb25seSBhbGlhc2VzIGFyZSB2YWxpZAogICAgY29tcGxldGUgdW5hbGlhcwluLyov YS8KICAgIGNvbXBsZXRlIHhkdmkgCW4vKi9mOiouZHZpLwkjIE9ubHkgZmlsZXMgdGhhdCBtYXRj aCAqLmR2aQogICAgY29tcGxldGUgZHZpcHMgCW4vKi9mOiouZHZpLwogICAgY29tcGxldGUgdGV4 IAluLyovZjoqLnRleC8JIyBPbmx5IGZpbGVzIHRoYXQgbWF0Y2ggKi50ZXgKICAgIGNvbXBsZXRl IGxhdGV4IAluLyovZjoqLnt0ZXgsbHR4fS8KICAgIGNvbXBsZXRlIHN1CQljLy0tLyIobG9naW4g ZmFzdCBwcmVzZXJ2ZS1lbnZpcm9ubWVudCBjb21tYW5kIHNoZWxsIFwKCQkJaGVscCB2ZXJzaW9u KSIvCWMvLS8iKGYgbCBtIHAgYyBzIC0pIi8gXAoJCQluL3stYywtLWNvbW1hbmR9L2MvIFwKCQkJ bkB7LXMsLS1zaGVsbH1AJ2BjYXQgL2V0Yy9zaGVsbHNgJ0Agbi8qL3UvCiAgICBjb21wbGV0ZSBj YyAJYy8tW0lMXS9kLyBcCiAgICAgICAgICAgICAgY0AtbEAnYFxscyAtMSAvdXNyL2xpYi9saWIq LmEgfCBzZWQgcyVeLlwqL2xpYiUlXDtzJVxcLmFcJCUlYCdAIFwKCQkJYy8tLyIobyBsIGMgZyBM IEkgRCBVKSIvIG4vKi9mOiouW2NvYXNpXS8KICAgIGNvbXBsZXRlIGFjYyAJYy8tW0lMXS9kLyBc CiAgICAgICBjQC1sQCdgXGxzIC0xIC91c3IvbGFuZy9TQzEuMC9saWIqLmEgfCBzZWQgcyVeLlwq L2xpYiUlXDtzJVxcLmFcJCUlYCdAIFwKCQkJYy8tLyIobyBsIGMgZyBMIEkgRCBVKSIvIG4vKi9m OiouW2NvYXNpXS8KICAgIGNvbXBsZXRlIGdjYyAJYy8tW0lMXS9kLyBcCgkJIAljLy1mLyIoY2Fs bGVyLXNhdmVzIGNzZS1mb2xsb3ctanVtcHMgZGVsYXllZC1icmFuY2ggXAoJCSAgICAgICAgICAg ICAgIGVsaWRlLWNvbnN0cnVjdG9ycyBleHBlbnNpdmUtb3B0aW1pemF0aW9ucyBcCgkJCSAgICAg ICBmbG9hdC1zdG9yZSBmb3JjZS1hZGRyIGZvcmNlLW1lbSBpbmxpbmUgXAoJCQkgICAgICAgaW5s aW5lLWZ1bmN0aW9ucyBrZWVwLWlubGluZS1mdW5jdGlvbnMgXAoJCQkgICAgICAgbWVtb2l6ZS1s b29rdXBzIG5vLWRlZmF1bHQtaW5saW5lIFwKCQkJICAgICAgIG5vLWRlZmVyLXBvcCBuby1mdW5j dGlvbi1jc2Ugb21pdC1mcmFtZS1wb2ludGVyIFwKCQkJICAgICAgIHJlcnVuLWNzZS1hZnRlci1s b29wIHNjaGVkdWxlLWluc25zIFwKCQkJICAgICAgIHNjaGVkdWxlLWluc25zMiBzdHJlbmd0aC1y ZWR1Y2UgXAoJCQkgICAgICAgdGhyZWFkLWp1bXBzIHVucm9sbC1hbGwtbG9vcHMgXAoJCQkgICAg ICAgdW5yb2xsLWxvb3BzIHN5bnRheC1vbmx5IGFsbC12aXJ0dWFsIFwKCQkJICAgICAgIGNvbmQt bWlzbWF0Y2ggZG9sbGFycy1pbi1pZGVudGlmaWVycyBcCgkJCSAgICAgICBlbnVtLWludC1lcXVp diBuby1hc20gbm8tYnVpbHRpbiBcCgkJCSAgICAgICBuby1zdHJpY3QtcHJvdG90eXBlIHNpZ25l ZC1iaXRmaWVsZHMgXAoJCQkgICAgICAgc2lnbmVkLWNoYXIgdGhpcy1pcy12YXJpYWJsZSB1bnNp Z25lZC1iaXRmaWVsZHMgXAoJCQkgICAgICAgdW5zaWduZWQtY2hhciB3cml0YWJsZS1zdHJpbmdz IGNhbGwtc2F2ZWQtcmVnIFwKCQkJICAgICAgIGNhbGwtdXNlZC1yZWcgZml4ZWQtcmVnIG5vLWNv bW1vbiBcCgkJCSAgICAgICBuby1nbnUtYmludXRpbHMgbm9ubnVsbC1vYmplY3RzIFwKCQkJICAg ICAgIHBjYy1zdHJ1Y3QtcmV0dXJuIHBpYyBQSUMgc2hhcmVkLWRhdGEgXAoJCQkgICAgICAgc2hv cnQtZW51bXMgc2hvcnQtZG91YmxlIHZvbGF0aWxlKSIvIFwKCQkgCWMvLVcvIihhbGwgYWdncmVn YXRlLXJldHVybiBjYXN0LWFsaWduIGNhc3QtcXVhbCBcCgkJICAgICAgCSAgICAgICBjb21tZW50 IGNvbnZlcnNpb24gZW51bS1jbGFzaCBlcnJvciBmb3JtYXQgXAoJCSAgICAgIAkgICAgICAgaWQt Y2xhc2gtbGVuIGltcGxpY2l0IG1pc3NpbmctcHJvdG90eXBlcyBcCgkJICAgICAgCSAgICAgICBu by1wYXJlbnRoZXNlcyBwb2ludGVyLWFyaXRoIHJldHVybi10eXBlIHNoYWRvdyBcCgkJICAgICAg CSAgICAgICBzdHJpY3QtcHJvdG90eXBlcyBzd2l0Y2ggdW5pbml0aWFsaXplZCB1bnVzZWQgXAoJ CSAgICAgIAkgICAgICAgd3JpdGUtc3RyaW5ncykiLyBcCgkJIAljLy1tLyIoNjgwMDAgNjgwMjAg Njg4ODEgYml0ZmllbGQgZnBhIG5vYml0ZmllbGQgcnRkIFwKCQkJICAgICAgIHNob3J0IGM2ODAw MCBjNjgwMjAgc29mdC1mbG9hdCBnIGdudSB1bml4IGZwdSBcCgkJCSAgICAgICBuby1lcGlsb2d1 ZSkiLyBcCgkJIAljLy1kLyIoRCBNIE4pIi8gXAoJCSAJYy8tLyIoZiBXIHZzcGVjIHYgdnBhdGgg YW5zaSB0cmFkaXRpb25hbCBcCgkJCSAgICAgIHRyYWRpdGlvbmFsLWNwcCB0cmlncmFwaHMgcGVk YW50aWMgeCBvIGwgYyBnIEwgXAoJCQkgICAgICBJIEQgVSBPIE8yIEMgRSBIIEIgYiBWIE0gTUQg TU0gaSBkeW5hbWljIFwKCQkJICAgICAgbm9kdGRsaWIgc3RhdGljIG5vc3RkaW5jIHVuZGVmKSIv IFwKCQkgCWMvLWwvZjoqLmEvIFwKCQkgCW4vKi9mOioue2MsQyxjYyxvLGEscyxpfS8KICAgIGNv bXBsZXRlIGcrKyAJbi8qL2Y6Ki57QyxjYyxvLHMsaX0vCiAgICBjb21wbGV0ZSBDQyAJbi8qL2Y6 Ki57QyxjYyxjcHAsbyxzLGl9LwogICAgY29tcGxldGUgcm0gCWMvLS0vIihkaXJlY3RvcnkgZm9y Y2UgaW50ZXJhY3RpdmUgdmVyYm9zZSBcCgkJCXJlY3Vyc2l2ZSBoZWxwIHZlcnNpb24pIi8gYy8t LyIoZCBmIGkgdiByIFIgLSkiLyBcCgkJCW4vKi9mOl4qLntjLGNjLEMsaCxpbn0vCSMgUHJvdGVj dCBwcmVjaW91cyBmaWxlcwogICAgY29tcGxldGUgdmkgCW4vKi9mOl4qLltvYV0vCiAgICBjb21w bGV0ZSBiaW5ka2V5ICAgIE4vLWEvYi8gTi8tYy9jLyBuLy1bYXNjcl0vJ3g6PGtleS1zZXF1ZW5j ZT4nLyBcCgkJCW4vLVtzdmVkbHJdL24vIGMvLVt2ZWRsXS9uLyBjLy0vIihhIHMgayBjIHYgZSBk IGwgcikiL1wKCQkJbi8tay8iKGxlZnQgcmlnaHQgdXAgZG93bikiLyBwLzItL2IvIFwKCQkJcC8x Lyd4OjxrZXktc2VxdWVuY2Ugb3Igb3B0aW9uPicvCgogICAgY29tcGxldGUgZmluZCAJbi8tZnN0 eXBlLyIobmZzIDQuMikiLyBuLy1uYW1lL2YvIFwKCQkgIAluLy10eXBlLyIoYyBiIGQgZiBwIGwg cykiLyBuLy11c2VyL3UvIG4vLWdyb3VwL2cvIFwKCQkJbi8tZXhlYy9jLyBuLy1vay9jLyBuLy1j cGlvL2YvIG4vLW5jcGlvL2YvIG4vLW5ld2VyL2YvIFwKCQkgIAljLy0vIihmc3R5cGUgbmFtZSBw ZXJtIHBydW5lIHR5cGUgdXNlciBub3VzZXIgXAoJCSAgCSAgICAgZ3JvdXAgbm9ncm91cCBzaXpl IGludW0gYXRpbWUgbXRpbWUgY3RpbWUgZXhlYyBcCgkJCSAgICAgb2sgcHJpbnQgbHMgY3BpbyBu Y3BpbyBuZXdlciB4ZGV2IGRlcHRoIFwKCQkJICAgICBkYXlzdGFydCBmb2xsb3cgbWF4ZGVwdGgg bWluZGVwdGggbm9sZWFmIHZlcnNpb24gXAoJCQkgICAgIGFuZXdlciBjbmV3ZXIgYW1pbiBjbWlu IG1taW4gdHJ1ZSBmYWxzZSB1aWQgZ2lkIFwKCQkJICAgICBpbG5hbWUgaW5hbWUgaXBhdGggaXJl Z2V4IGxpbmtzIGxuYW1lIGVtcHR5IHBhdGggXAoJCQkgICAgIHJlZ2V4IHVzZWQgeHR5cGUgZnBy aW50IGZwcmludDAgZnByaW50ZiBcCgkJCSAgICAgcHJpbnQwIHByaW50ZiBub3QgYSBhbmQgbyBv cikiLyBcCgkJCSAgICAgbi8qL2QvCgogICAgY29tcGxldGUgLSUqCWMvJS9qLwkJCSMgZmlsbCBp biB0aGUgam9icyBidWlsdGluCiAgICBjb21wbGV0ZSB7ZmcsYmcsc3RvcH0JYy8lL2ovIHAvMS8i KCUpIi8vCgogICAgY29tcGxldGUgbGltaXQJYy8tLyIoaCkiLyBuLyovbC8KICAgIGNvbXBsZXRl IHVubGltaXQJYy8tLyIoaCkiLyBuLyovbC8KCiAgICBjb21wbGV0ZSAtY28qCXAvMC8iKGNvbXBy ZXNzKSIvCSMgbWFrZSBjb21wcmVzcyBjb21wbGV0aW9uCgkJCQkJCSMgbm90IGFtYmlndW91cwog ICAgY29tcGxldGUgemNhdAluLyovZjoqLlovCgogICAgY29tcGxldGUgZmluZ2VyCWMvKkAvXCRo b3N0cy8gbi8qL3UvQCAKICAgIGNvbXBsZXRlIHBpbmcJcC8xL1wkaG9zdHMvCiAgICBjb21wbGV0 ZSB0cmFjZXJvdXRlCXAvMS9cJGhvc3RzLwoKICAgIGNvbXBsZXRlIHt0YWxrLG50YWxrLHBob25l fQlwLzEvJ2B1c2VycyB8IHRyICIgIiAiXDAxMiIgfCB1bmlxYCcvIFwKCQluLyovXGB3aG9cIFx8 XCBncmVwXCBcJDoxXCBcfFwgYXdrXCBcJ1x7XCBwcmludFwgXCQyXCBcfVwnXGAvCgogICAgY29t cGxldGUgZnRwCWMvLS8iKGQgaSBnIG4gdikiLyBuLy0vXCRob3N0cy8gcC8xL1wkaG9zdHMvIG4v Ki9uLwoKICAgICMgdGhpcyBvbmUgaXMgc2ltcGxlLi4uCiAgICAjY29tcGxldGUgcmNwIGMvKjov Zi8gQ0BbLi9cJH5dKkBmQCBuLyovXCRob3N0cy86CiAgICAjIEZyb20gTWljaGFlbCBTY2hyb2Vk ZXIgPG1sc2Nocm9lQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPiAKICAgICMgVGhp cyBvbmUgd2lsbCByc2ggdG8gdGhlIGZpbGUgdG8gZmV0Y2ggdGhlIGxpc3Qgb2YgZmlsZXMhCiAg ICBjb21wbGV0ZSByY3AgJ2MlKkAqOiVgc2V0IHE9JDotMDtzZXQgcT0iJHE6cy9ALyAvIjtzZXQg cT0iJHE6cy86LyAvIjtzZXQgcT0oJHEgIiAiKTtyc2ggJHFbMl0gLWwgJHFbMV0gbHMgLWRwICRx WzNdXCpgJScgJ2MlKjolYHNldCBxPSQ6LTA7c2V0IHE9IiRxOnMvOi8gLyI7c2V0IHE9KCRxICIg Iik7cnNoICRxWzFdIGxzIC1kcCAkcVsyXVwqYCUnICdjJSpAJSRob3N0cyU6JyAnQ0BbLi8kfl0q QGZAJyAgJ24vKi8kaG9zdHMvOicKCiAgICBjb21wbGV0ZSBkZCBjLy0tLyIoaGVscCB2ZXJzaW9u KSIvIGMvW2lvXWY9L2YvIFwKCQljL2NvbnY9KiwvIihhc2NpaSBlYmNkaWMgaWJtIGJsb2NrIHVu YmxvY2sgXAoJCQkgICAgbGNhc2Ugbm90cnVuYyB1Y2FzZSBzd2FiIG5vZXJyb3Igc3luYykiLyxc CgkJYy9jb252PS8iKGFzY2lpIGViY2RpYyBpYm0gYmxvY2sgdW5ibG9jayBcCgkJCSAgbGNhc2Ug bm90cnVuYyB1Y2FzZSBzd2FiIG5vZXJyb3Igc3luYykiLyxcCgkgICAgICAgIGMvKj0veDonPG51 bWJlcj4nLyBcCgkJbi8qLyIoaWYgb2YgY29udiBpYnMgb2JzIGJzIGNicyBmaWxlcyBza2lwIGZp bGUgc2VlayBjb3VudCkiLz0KCiAgICBjb21wbGV0ZSBuc2xvb2t1cCAgIHAvMS94Oic8aG9zdD4n LyBwLzIvXCRob3N0cy8KCiAgICBjb21wbGV0ZSBhciBjL1tkbXBxcnR4XS8iKGMgbCBvIHUgdiBh IGIgaSkiLyBwLzEvIihkIG0gcCBxIHIgdCB4KSIvLyBcCgkJcC8yL2Y6Ki5hLyBwLyovZjoqLm8v CgogICAgIyB0aGVzZSBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlIE1IIGNvbXBsZXRpb24gaGFj a3MgYmVsb3cgLSBqZ290dHMKICAgIGNvbXBsZXRlIHtzcHJldixzbmV4dH0gXAoJCWNAK0BGOiRI T01FL01haWwvQAoKICAgICMgdGhlc2UgYW5kIGludGVycnVwdCBoYW5kbGluZyBmcm9tIEphYXAg VmVybWV1bGVuIDxqYWFwQHNlcXVlbnQuY29tPgogICAgY29tcGxldGUge3JleGVjLHJ4ZXhlYyxy eHRlcm0scm10ZXJtfSBcCgkJCSdwLzEvJGhvc3RzLycgJ2MvLS8obCBMIEUpLycgJ24vLWwvdS8n ICduLy1ML2YvJyBcCgkJCSduLy1FL2UvJyAnbi8qL2MvJwogICAgY29tcGxldGUga2lsbAknYy8t L1MvJyAnYy8lL2ovJyBcCgkJCSduLyovYHBzIC11ICRMT0dOQU1FIHwgYXdrICciJyIne3ByaW50 ICQxfSciJyInYC8nCgogICAgIyB0aGVzZSBmcm9tIE1hcmMgSG9yb3dpdHogPG1hcmNAY2FtLm92 LmNvbT4KICAgIGNvbXBsZXRlIGF0dGFjaCAnbi8tbW91bnRwb2ludC9kLycgJ24vLW0vZC8nICdu Ly10eXBlLyhhZnMgbmZzIHJ2ZCB1ZnMpLycgXAoJCSAgICAnbi8tdC8oYWZzIG5mcyBydmQgdWZz KS8nICduLy11c2VyL3UvJyAnbi8tVS91LycgXAoJCSAgICAnYy8tLyh2ZXJib3NlIHF1aWV0IGZv cmNlIHByaW50cGF0aCBsb29rdXAgZGVidWcgbWFwIFwKCQkJICBub21hcCByZW1hcCB6ZXBoeXIg bm96ZXBoeXIgcmVhZG9ubHkgd3JpdGUgXAoJCQkgIG1vdW50cG9pbnQgbm9leHBsaWNpdCBleHBs aWNpdCB0eXBlIG1vdW50b3B0aW9ucyBcCgkJCSAgbm9zZXR1aWQgc2V0dWlkIG92ZXJyaWRlIHNr aXBmc2NrIGxvY2sgdXNlciBob3N0KS8nIFwKCQkgICAgJ24vLWUvZi8nICduLyovKCkvJwogICAg Y29tcGxldGUgaGVzaW5mbwkncC8xL3UvJyBcCgkJCSdwLzIvKHBhc3N3ZCBncm91cCB1aWQgZ3Jw bGlzdCBwY2FwIHBvYm94IGNsdXN0ZXIgXAoJCQkgICAgICBmaWxzeXMgc2xvYyBzZXJ2aWNlKS8n CgogICAgIyB0aGVzZSBmcm9tIEUuIEpheSBCZXJrZW5iaWx0IDxlamJARVJBLkNPTT4KICAgICMg PSBpc24ndCBhbHdheXMgZm9sbG93ZWQgYnkgYSBmaWxlbmFtZSBvciBhIHBhdGggYW55bW9yZSAt IGpnb3R0cwogICAgY29tcGxldGUgLi9jb25maWd1cmUgJ2MvLS0qPS9mLycgJ2MvLS17Y2FjaGUt ZmlsZSxwcmVmaXgsZXhlYy1wcmVmaXgsXAogICAgCQkJCWJpbmRpcixzYmluZGlyLGxpYmV4ZWNk aXIsZGF0YWRpcixcCgkJCQlzeXNjb25mZGlyLHNoYXJlZHN0YXRlZGlyLGxvY2Fsc3RhdGVkaXIs XAoJCQkJbGliZGlyLGluY2x1ZGVkaXIsb2xkaW5jbHVkZWRpcixpbmZvZGlyLFwKCQkJCW1hbmRp cixzcmNkaXJ9Lyg9KS8vJyBcCgkJCSAnYy8tLS8oY2FjaGUtZmlsZSB2ZXJib3NlIHByZWZpeCBl eGVjLXByZWZpeCBiaW5kaXIgXAoJCQkgCXNiaW5kaXIgbGliZXhlY2RpciBkYXRhZGlyIHN5c2Nv bmZkaXIgXAoJCQkJc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBsaWJkaXIgXAoJCQkJaW5j bHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyIFwKCQkJCXNyY2RpcikvLycKICAg IGNvbXBsZXRlIGdzICdjLy1zREVWSUNFPS8oeDExIGNkam1vbm8gY2RqNTUwIGVwc29uIGVwczlo aWdoIGVwc29uYyBcCgkJCSAgICAgIGRmYXhoaWdoIGRmYXhsb3cgbGFzZXJqZXQgbGpldDQgc3Bh cmMgcGJtIFwKCQkJICAgICAgcGJtcmF3IHBnbSBwZ21yYXcgcHBtIHBwbXJhdyBiaXQpLycgXAoJ CSdjLy1zT3V0cHV0RmlsZT0vZi8nICdjLy1zLyhERVZJQ0UgT3V0cHV0RmlsZSkvPScgXAoJCSdj Ly1kLyhOT0RJU1BMQVkgTk9QTEFURk9OVFMgTk9QQVVTRSkvJyAnbi8qL2YvJwogICAgY29tcGxl dGUgcGVybAknbi8tUy9jLycKICAgIGNvbXBsZXRlIHByaW50ZW52CSduLyovZS8nCiAgICBjb21w bGV0ZSBzY2NzCXAvMS8iKGFkbWluIGNkYyBjaGVjayBjbGVhbiBjb21iIGRlbGVkaXQgZGVsZ2V0 IFwKCQkJZGVsdGEgZGlmZnMgZWRpdCBlbnRlciBmaXggZ2V0IGhlbHAgaW5mbyBcCgkJCXByaW50 IHBycyBwcnQgcm1kZWwgc2Njc2RpZmYgdGVsbCB1bmVkaXQgXAoJCQl1bmdldCB2YWwgd2hhdCki LwogICAgY29tcGxldGUgc2V0ZW52CSdwLzEvZS8nICdjLyo6L2YvJwoKICAgICMgdGhlc2UgYW5k IG1ldGhvZCBvZiBzZXR0aW5nIGhvc3RzIGZyb20gS2ltbW8gU3VvbWluZW4gPGtpbUB0YWMubnlj Lm55LnVzPgogICAgaWYgKCAtZiAkSE9NRS8ubWhfcHJvZmlsZSAmJiAteCAiYHdoaWNoIGZvbGRl cnNgIiApIHRoZW4gCgogICAgaWYgKCAhICQ/Rk9MREVSUyApIHNldGVudiBGT0xERVJTICJgZm9s ZGVycyAtZmFzdCAtcmVjdXJzZWAiCiAgICBpZiAoICEgJD9NSEEgKSAgICAgc2V0ZW52IE1IQSAg ICAgImBhbGkgfCBzZWQgLWUgJy9eIC9kJyAtZSAncy86LiovLydgIgoKICAgIHNldCBmb2xkZXJz ID0gKCAkRk9MREVSUyApCiAgICBzZXQgbWhhID0gKCAkTUhBICkKCiAgICBjb21wbGV0ZSBhbGkg XAogICAgICAgICdjLy0vKGFsaWFzIG5vbGlzdCBsaXN0IG5vbm9ybWFsaXplIG5vcm1hbGl6ZSBu b3VzZXIgdXNlciBoZWxwKS8nIFwKICAgICAgICAnbiwtYWxpYXMsZiwnCgogICAgY29tcGxldGUg YW5ubyBcCiAgICAgICAgJ2MvLS8oY29tcG9uZW50IG5vaW5wbGFjZSBpbnBsYWNlIG5vZGF0ZSBk YXRlIHRleHQgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAgJ24s KixgKG1hcmsgfCBzZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBsYXN0KXx0 ciAiICIgIlwxMiIgfCBzb3J0IC11YCwnCgogICAgY29tcGxldGUgYnVyc3QgXAogICAgICAgICdj Ly0vKG5vaW5wbGFjZSBpbnBsYWNlIG5vcXVpZXQgcXVpZXQgbm92ZXJib3NlIHZlcmJvc2UgaGVs cCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAgJ24sKixgKG1hcmsgfCBz ZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBsYXN0KXx0ciAiICIgIlwxMiIg fCBzb3J0IC11YCwnCgogICAgY29tcGxldGUgY29tcCBcCiAgICAgICAgJ2MvLS8oZHJhZnRmb2xk ZXIgZHJhZnRtZXNzYWdlIG5vZHJhZnRmb2xkZXIgZWRpdG9yIG5vZWRpdCBmaWxlIGZvcm0gbm91 c2UgdXNlIHdoYXRub3dwcm9jIG5vd2hhdG5vd3Byb2MgaGVscCkvJyBcCiAgICAgICAgJ2MsKywk Zm9sZGVycywnICBcCiAgICAgICAgJ24sLXdoYXRub3dwcm9jLGMsJyAgXAogICAgICAgICduLC1m aWxlLGYsJ1wKICAgICAgICAnbiwtZm9ybSxmLCdcCiAgICAgICAgJ24sKixgKG1hcmsgfCBzZWQg InMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBsYXN0KXx0ciAiICIgIlwxMiIgfCBz b3J0IC11YCwnCgogICAgY29tcGxldGUgZGlzdCBcCiAgICAgICAgJ2MvLS8obm9hbm5vdGF0ZSBh bm5vdGF0ZSBkcmFmdGZvbGRlciBkcmFmdG1lc3NhZ2Ugbm9kcmFmdGZvbGRlciBlZGl0b3Igbm9l ZGl0IGZvcm0gbm9pbnBsYWNlIGlucGxhY2Ugd2hhdG5vd3Byb2Mgbm93aGF0bm93cHJvYyBoZWxw KS8nIFwKICAgICAgICAnYywrLCRmb2xkZXJzLCcgIFwKICAgICAgICAnbiwtd2hhdG5vd3Byb2Ms YywnICBcCiAgICAgICAgJ24sLWZvcm0sZiwnXAogICAgICAgICduLCosYChtYXJrIHwgc2VkICJz LzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYgZmlyc3QgbGFzdCl8dHIgIiAiICJcMTIiIHwgc29y dCAtdWAsJwoKICAgIGNvbXBsZXRlIGZvbGRlciBcCiAgICAgICAgJ2MvLS8oYWxsIG5vZmFzdCBm YXN0IG5vaGVhZGVyIGhlYWRlciBub3BhY2sgcGFjayBub3ZlcmJvc2UgdmVyYm9zZSBub3JlY3Vy c2UgcmVjdXJzZSBub3RvdGFsIHRvdGFsIG5vcHJpbnQgcHJpbnQgbm9saXN0IGxpc3QgcHVzaCBw b3AgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAgJ24sKixgKG1h cmsgfCBzZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBsYXN0KXx0ciAiICIg IlwxMiIgfCBzb3J0IC11YCwnCgogICAgY29tcGxldGUgZm9sZGVycyBcCiAgICAgICAgJ2MvLS8o YWxsIG5vZmFzdCBmYXN0IG5vaGVhZGVyIGhlYWRlciBub3BhY2sgcGFjayBub3ZlcmJvc2UgdmVy Ym9zZSBub3JlY3Vyc2UgcmVjdXJzZSBub3RvdGFsIHRvdGFsIG5vcHJpbnQgcHJpbnQgbm9saXN0 IGxpc3QgcHVzaCBwb3AgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAg ICAgJ24sKixgKG1hcmsgfCBzZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBs YXN0KXx0ciAiICIgIlwxMiIgfCBzb3J0IC11YCwnCgogICAgY29tcGxldGUgZm9ydyBcCiAgICAg ICAgJ2MvLS8obm9hbm5vdGF0ZSBhbm5vdGF0ZSBkcmFmdGZvbGRlciBkcmFmdG1lc3NhZ2Ugbm9k cmFmdGZvbGRlciBlZGl0b3Igbm9lZGl0IGZpbHRlciBmb3JtIG5vZm9ybWF0IGZvcm1hdCBub2lu cGxhY2UgaW5wbGFjZSBkaWdlc3QgaXNzdWUgdm9sdW1lIHdoYXRub3dwcm9jIG5vd2hhdG5vd3By b2MgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAgJ24sLXdoYXRu b3dwcm9jLGMsJyAgXAogICAgICAgICduLC1maWx0ZXIsZiwnXAogICAgICAgICduLC1mb3JtLGYs J1wKICAgICAgICAnbiwqLGAobWFyayB8IHNlZCAicy86LiovLyI7ZWNobyBuZXh0IGN1ciBwcmV2 IGZpcnN0IGxhc3QpfHRyICIgIiAiXDEyIiB8IHNvcnQgLXVgLCcKCiAgICBjb21wbGV0ZSBpbmMg XAogICAgICAgICdjLy0vKGF1ZGl0IGZpbGUgbm9hdWRpdCBub2NoYW5nZWN1ciBjaGFuZ2VjdXIg ZmlsZSBmb3JtIGZvcm1hdCBub3NpbGVudCBzaWxlbnQgbm90cnVuY2F0ZSB0cnVuY2F0ZSB3aWR0 aCBoZWxwKS8nIFwKICAgICAgICAnYywrLCRmb2xkZXJzLCcgIFwKICAgICAgICAnbiwtYXVkaXQs ZiwnXAogICAgICAgICduLC1mb3JtLGYsJwoKICAgIGNvbXBsZXRlIG1hcmsgXAogICAgICAgICdj Ly0vKGFkZCBkZWxldGUgbGlzdCBzZXF1ZW5jZSBub3B1YmxpYyBwdWJsaWMgbm96ZXJvIHplcm8g aGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAgJ24sKixgKG1hcmsg fCBzZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIgcHJldiBmaXJzdCBsYXN0KXx0ciAiICIgIlwx MiIgfCBzb3J0IC11YCwnCgogICAgY29tcGxldGUgbWhtYWlsIFwKICAgICAgICAnYy8tLyhib2R5 IGNjIGZyb20gc3ViamVjdCBoZWxwKS8nIFwKICAgICAgICAnbiwtY2MsJG1oYSwnICBcCiAgICAg ICAgJ24sLWZyb20sJG1oYSwnICBcCiAgICAgICAgJ24vKi8kbWhhLycKCiAgICBjb21wbGV0ZSBt aHBhdGggXAogICAgICAgICdjLy0vKGhlbHApLycgXAogICAgICAgICdjLCssJGZvbGRlcnMsJyAg XAogICAgICAgICduLCosYChtYXJrIHwgc2VkICJzLzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYg Zmlyc3QgbGFzdCl8dHIgIiAiICJcMTIiIHwgc29ydCAtdWAsJwoKICAgIGNvbXBsZXRlIG1zZ2No ayBcCiAgICAgICAgJ2MvLS8obm9kYXRlIGRhdGUgbm9ub3RpZnkgbm90aWZ5IGhlbHApLycgCgog ICAgY29tcGxldGUgbXNoIFwKICAgICAgICAnYy8tLyhwcm9tcHQgbm9zY2FuIHNjYW4gbm90b3Bj dXIgdG9wY3VyIGhlbHApLycgCgogICAgY29tcGxldGUgbmV4dCBcCiAgICAgICAgJ2MvLS8oZHJh ZnQgZm9ybSBtb3JlcHJvYyBub21vcmVwcm9jIGxlbmd0aCB3aWR0aCBzaG93cHJvYyBub3Nob3dw cm9jIGhlYWRlciBub2hlYWRlciBoZWxwKS8nIFwKICAgICAgICAnYywrLCRmb2xkZXJzLCcgIFwK ICAgICAgICAnbiwtbW9yZXByb2MsYywnICBcCiAgICAgICAgJ24sLXNob3dwcm9jLGMsJyAgXAog ICAgICAgICduLC1mb3JtLGYsJwoKICAgIGNvbXBsZXRlIHBhY2tmIFwKICAgICAgICAnYy8tLyhm aWxlIGhlbHApLycgXAogICAgICAgICdjLCssJGZvbGRlcnMsJyAgXAogICAgICAgICduLCosYCht YXJrIHwgc2VkICJzLzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYgZmlyc3QgbGFzdCl8dHIgIiAi ICJcMTIiIHwgc29ydCAtdWAsJwoKICAgIGNvbXBsZXRlIHBpY2sgXAogICAgICAgICdjLy0vKGFu ZCBvciBub3QgbGJyYWNlIHJicmFjZSBjYyBkYXRlIGZyb20gc2VhcmNoIHN1YmplY3QgdG8gb3Ro ZXJjb21wb25lbnQgYWZ0ZXIgYmVmb3JlIGRhdGVmaWVsZCBzZXF1ZW5jZSBub3B1YmxpYyBwdWJs aWMgbm96ZXJvIHplcm8gbm9saXN0IGxpc3QgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVy cywnICBcCiAgICAgICAgJ24sKixgKG1hcmsgfCBzZWQgInMvOi4qLy8iO2VjaG8gbmV4dCBjdXIg cHJldiBmaXJzdCBsYXN0KXx0ciAiICIgIlwxMiIgfCBzb3J0IC11YCwnCgogICAgY29tcGxldGUg cHJldiBcCiAgICAgICAgJ2MvLS8oZHJhZnQgZm9ybSBtb3JlcHJvYyBub21vcmVwcm9jIGxlbmd0 aCB3aWR0aCBzaG93cHJvYyBub3Nob3dwcm9jIGhlYWRlciBub2hlYWRlciBoZWxwKS8nIFwKICAg ICAgICAnYywrLCRmb2xkZXJzLCcgIFwKICAgICAgICAnbiwtbW9yZXByb2MsYywnICBcCiAgICAg ICAgJ24sLXNob3dwcm9jLGMsJyAgXAogICAgICAgICduLC1mb3JtLGYsJwoKICAgIGNvbXBsZXRl IHByb21wdGVyIFwKICAgICAgICAnYy8tLyhlcmFzZSBraWxsIG5vcHJlcGVuZCBwcmVwZW5kIG5v cmFwaWQgcmFwaWQgbm9kb3Rlb2YgZG90ZW9mIGhlbHApLycgCgogICAgY29tcGxldGUgcmVmaWxl IFwKICAgICAgICAnYy8tLyhkcmFmdCBub2xpbmsgbGluayBub3ByZXNlcnZlIHByZXNlcnZlIHNy YyBmaWxlIGhlbHApLycgXAogICAgICAgICdjLCssJGZvbGRlcnMsJyAgXAogICAgICAgICduLC1m aWxlLGYsJ1wKICAgICAgICAnbiwqLGAobWFyayB8IHNlZCAicy86LiovLyI7ZWNobyBuZXh0IGN1 ciBwcmV2IGZpcnN0IGxhc3QpfHRyICIgIiAiXDEyIiB8IHNvcnQgLXVgLCcKCiAgICBjb21wbGV0 ZSBybWYgXAogICAgICAgICdjLy0vKG5vaW50ZXJhY3RpdmUgaW50ZXJhY3RpdmUgaGVscCkvJyBc CiAgICAgICAgJ2MsKywkZm9sZGVycywnICAKCiAgICBjb21wbGV0ZSBybW0gXAogICAgICAgICdj Ly0vKGhlbHApLycgXAogICAgICAgICdjLCssJGZvbGRlcnMsJyAgXAogICAgICAgICduLCosYCht YXJrIHwgc2VkICJzLzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYgZmlyc3QgbGFzdCl8dHIgIiAi ICJcMTIiIHwgc29ydCAtdWAsJwoKICAgIGNvbXBsZXRlIHNjYW4gXAogICAgICAgICdjLy0vKG5v Y2xlYXIgY2xlYXIgZm9ybSBmb3JtYXQgbm9oZWFkZXIgaGVhZGVyIHdpZHRoIG5vcmV2ZXJzZSBy ZXZlcnNlIGZpbGUgaGVscCkvJyBcCiAgICAgICAgJ2MsKywkZm9sZGVycywnICBcCiAgICAgICAg J24sLWZvcm0sZiwnXAogICAgICAgICduLC1maWxlLGYsJ1wKICAgICAgICAnbiwqLGAobWFyayB8 IHNlZCAicy86LiovLyI7ZWNobyBuZXh0IGN1ciBwcmV2IGZpcnN0IGxhc3QpfHRyICIgIiAiXDEy IiB8IHNvcnQgLXVgLCcKCiAgICBjb21wbGV0ZSBzZW5kIFwKICAgICAgICAnYy8tLyhhbGlhcyBk cmFmdCBkcmFmdGZvbGRlciBkcmFmdG1lc3NhZ2Ugbm9kcmFmdGZvbGRlciBmaWx0ZXIgbm9maWx0 ZXIgbm9mb3JtYXQgZm9ybWF0IG5vZm9yd2FyZCBmb3J3YXJkIG5vbXNnaWQgbXNnaWQgbm9wdXNo IHB1c2ggbm92ZXJib3NlIHZlcmJvc2Ugbm93YXRjaCB3YXRjaCB3aWR0aCBoZWxwKS8nIFwKICAg ICAgICAnbiwtYWxpYXMsZiwnXAogICAgICAgICduLC1maWx0ZXIsZiwnCgogICAgY29tcGxldGUg c2hvdyBcCiAgICAgICAgJ2MvLS8oZHJhZnQgZm9ybSBtb3JlcHJvYyBub21vcmVwcm9jIGxlbmd0 aCB3aWR0aCBzaG93cHJvYyBub3Nob3dwcm9jIGhlYWRlciBub2hlYWRlciBoZWxwKS8nIFwKICAg ICAgICAnYywrLCRmb2xkZXJzLCcgIFwKICAgICAgICAnbiwtbW9yZXByb2MsYywnICBcCiAgICAg ICAgJ24sLXNob3dwcm9jLGMsJyAgXAogICAgICAgICduLC1mb3JtLGYsJ1wKICAgICAgICAnbiwq LGAobWFyayB8IHNlZCAicy86LiovLyI7ZWNobyBuZXh0IGN1ciBwcmV2IGZpcnN0IGxhc3QpfHRy ICIgIiAiXDEyIiB8IHNvcnQgLXVgLCcKCiAgICBjb21wbGV0ZSBzb3J0bSBcCiAgICAgICAgJ2Mv LS8oZGF0ZWZpZWxkIHRleHRmaWVsZCBub3RleHRmaWVsZCBsaW1pdCBub2xpbWl0IG5vdmVyYm9z ZSB2ZXJib3NlIGhlbHApLycgXAogICAgICAgICdjLCssJGZvbGRlcnMsJyAgXAogICAgICAgICdu LCosYChtYXJrIHwgc2VkICJzLzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYgZmlyc3QgbGFzdCl8 dHIgIiAiICJcMTIiIHwgc29ydCAtdWAsJwoKICAgIGNvbXBsZXRlIHZtaCBcCiAgICAgICAgJ2Mv LS8ocHJvbXB0IHZtaHByb2Mgbm92bWhwcm9jIGhlbHApLycgXAogICAgICAgICduLC12bWhwcm9j LGMsJyAgCgogICAgY29tcGxldGUgd2hhdG5vdyBcCiAgICAgICAgJ2MvLS8oZHJhZnRmb2xkZXIg ZHJhZnRtZXNzYWdlIG5vZHJhZnRmb2xkZXIgZWRpdG9yIG5vZWRpdCBwcm9tcHQgaGVscCkvJyAK CiAgICBjb21wbGV0ZSB3aG9tIFwKICAgICAgICAnYy8tLyhhbGlhcyBub2NoZWNrIGNoZWNrIGRy YWZ0IGRyYWZ0Zm9sZGVyIGRyYWZ0bWVzc2FnZSBub2RyYWZ0Zm9sZGVyIGhlbHApLycgXAogICAg ICAgICduLC1hbGlhcyxmLCcKCiAgICBjb21wbGV0ZSBwbHVtIFwKICAgICAgICAnYy8tLygpLycg XAogICAgICAgICdjLCssJGZvbGRlcnMsJyAgXAogICAgICAgICduLCosYChtYXJrIHwgc2VkICJz LzouKi8vIjtlY2hvIG5leHQgY3VyIHByZXYgZmlyc3QgbGFzdCl8dHIgIiAiICJcMTIiIHwgc29y dCAtdWAsJwoKICAgIGNvbXBsZXRlIG1haWwgXAogICAgICAgICdjLy0vKCkvJyBcCiAgICAgICAg J24vKi8kbWhhLycKCiAgICBlbmRpZgoKICAgICNmcm9tIERhbiBOaWNvbGFlc2N1IDxkYW5uQGlj cy51Y2kuZWR1PgogICAgaWYgKCAkP01PRFVMRVNIT01FICkgdGhlbgoJYWxpYXMgQ29tcGxfbW9k dWxlICdmaW5kICR7TU9EVUxFUEFUSDphcy86LyAvfSAtbmFtZSAudmVyc2lvbiAtbyAtbmFtZSAu bW9kdWxlYVwqIC1wcnVuZSAtbyAtcHJpbnQgIHwgc2VkIGBlY2hvICItZSBzQCR7TU9EVUxFUEFU SDphcyU6JS9cKkBAZyAtZSBzQCV9L1wqQEBnImAnCgljb21wbGV0ZSBtb2R1bGUgJ3AlMSUoYWRk IGxvYWQgdW5sb2FkIHN3aXRjaCBkaXNwbGF5IGF2YWlsIHVzZSB1bnVzZSB1cGRhdGUgcHVyZ2Ug bGlzdCBjbGVhciBoZWxwIGluaXRhZGQgaW5pdHJtIGluaXRzd2l0Y2ggaW5pdGxpc3QgaW5pdGNs ZWFyKSUnIFwKCSduJXt1bmwqLHN3Kixpbml0cyp9JWBlY2hvICIkTE9BREVETU9EVUxFUzphcy86 LyAvImAlJyBcCgknbiV7bG8qLGRpKixoZSosaW5pdGEqLGluaXRyKn0lYGV2YWwgQ29tcGxfbW9k dWxlYCUnIFwKCSdOJXtzdyosaW5pdHN3Kn0lYGV2YWwgQ29tcGxfbW9kdWxlYCUnICdDJS0lKC1h cHBlbmQpJScgJ24le3VzZSx1bnUqLGF2Kn0lZCUnICduJS1hcHBlbmQlZCUnIFwKCSdDJVteLV0q JWBldmFsIENvbXBsX21vZHVsZWAlJwogICAgZW5kaWYKCiAgICAjIGZyb20gR2VvcmdlIENveAog ICAgY29tcGxldGUgYWNyb3JlYWQJJ3AvKi9mOioue3BkZixQREZ9LycKICAgIGNvbXBsZXRlIGFw YWNoZWN0bCAgJ2MvKi8oc3RhcnQgc3RvcCByZXN0YXJ0IGZ1bGxzdGF0dXMgc3RhdHVzIGdyYWNl ZnVsIFwKCQkJY29uZmlndGVzdCBoZWxwKS8nCiAgICBjb21wbGV0ZSBhcHBsZXR2aWV3ZXIJJ3Av Ki9mOiouY2xhc3MvJwogICAgY29tcGxldGUgYmlzb24JJ2MvLS0vKGRlYnVnIGRlZmluZXMgZmls ZS1wcmVmaXg9IGZpeGVkLW91dHB1dC1maWxlcyBcCgkJCWhlbHAgbmFtZS1wcmVmaXg9IG5vLWxp bmVzIG5vLXBhcnNlciBvdXRwdXQ9IFwKCQkJdG9rZW4tdGFibGUgdmVyYm9zZSB2ZXJzaW9uIHlh Y2MpLycgXAoJCQknYy8tLyhiIGQgaCBrIGwgbiBvIHAgdCB2IHkgVikvJyAnbi8tYi9mLycgJ24v LW8vZi8nIFwKCQkJJ24vLXAvZi8nCiAgICBjb21wbGV0ZSBidW56aXAyCSdwLyovZjoqLmJ6Mi8n IAogICAgY29tcGxldGUgYnppcDIJJ24vLTkvZjpeKi5iejIvJyAnbi8tZC9mOiouYnoyLycKICAg IGNvbXBsZXRlIGMrKwkncC8qL2Y6Ki57YysrLGN4eCxjLGNjLEMsY3BwfS8nCiAgICBjb21wbGV0 ZSBjbwkJJ3BAMUBgXGxzIC0xYSBSQ1MgfCBzZWQgLWUgInMvXCguKlwpLHYvXDEvImBAJwogICAg Y29tcGxldGUgY3JvbnRhYgknbi8tdS91LycKICAgIGNvbXBsZXRlIGNhbWNvbnRyb2wJJ3AvMS8o Y21kIGRlYnVnIGRlZmVjdHMgZGV2bGlzdCBlamVjdCBpbnF1aXJ5IFwKCQkJbW9kZXBhZ2UgbmVn b3RpYXRlIHBlcmlwaGxpc3QgcmVzY2FuIHJlc2V0IHN0YXJ0IFwKCQkJc3RvcCB0YWdzIHR1cikv JwogICAgY29tcGxldGUgY3RsaW5uZAkncC8xLyhhZGRoaXN0IGFsbG93IGJlZ2luIGNhbmNlbCBj aGFuZ2Vncm91cCBcCgkJCWNoZWNrZmlsZSBkcm9wIGZlZWRpbmZvIGZsdXNoIGZsdXNobG9ncyBn byBoYW5ndXAgXAoJCQlsb2dtb2RlIG1vZGUgbmFtZSBuZXdncm91cCBwYXJhbSBwYXVzZSByZWFk ZXJzIHJlZmlsZSBcCgkJCXJlamVjdCByZWxvYWQgcmVudW1iZXIgcmVzZXJ2ZSBybWdyb3VwIHNl bmQgc2h1dGRvd24gXAoJCQlraWxsIHRocm90dGxlIHRyYWNlIHhhYm9ydCB4ZXhlYykvJwogICAg Y29tcGxldGUgY3ZzCSdjLy0tLyhoZWxwIGhlbHAtY29tbWFuZHMgaGVscC1zeW5vbnltcykvJyBc CgkJCSdwLzEvKGFkZCBhZG1pbiBhbm5vdGF0ZSBjaGVja291dCBjb21taXQgZGlmZiBcCgkJCWVk aXQgZWRpdG9ycyBleHBvcnQgaGlzdG9yeSBpbXBvcnQgaW5pdCBsb2cgbG9naW4gXAoJCQlsb2dv dXQgcmRpZmYgcmVsZWFzZSByZW1vdmUgcnRhZyBzdGF0dXMgdGFnIHVuZWRpdCBcCgkJCXVwZGF0 ZSB3YXRjaCB3YXRjaGVycykvJyAnbi8tYS8oZWRpdCB1bmVkaXQgY29tbWl0IFwKCQkJYWxsIG5v bmUpLycgJ24vd2F0Y2gvKG9uIG9mZiBhZGQgcmVtb3ZlKS8nCiAgICBjb21wbGV0ZSBjeHgJJ3Av Ki9mOioue2MrKyxjeHgsYyxjYyxDLGNwcH0vJwogICAgY29tcGxldGUgZGV0ZXgJJ3AvKi9mOiou dGV4LycKICAgIGNvbXBsZXRlIGVkcXVvdGEgICAgJ24vKi91LycKICAgIGNvbXBsZXRlIGV4ZWMJ J3AvMS9jLycKICAgIGNvbXBsZXRlIGdob3N0dmlldwkncC8qL2Y6Ki5wcy8nCiAgICBjb21wbGV0 ZSBndgkJJ3AvKi9mOioucHMvJwojIyAgQWRkZWQgZ2d2CiAgICBjb21wbGV0ZSBnZ3YJCSdwLyov ZjoqLnBzLycKICAgIGNvbXBsZXRlIGlmY29uZmlnCSdwQDFAYGlmY29uZmlnIC1sYEAnICduLyov KHJhbmdlIHBoYXNlIGxpbmsgbmV0bWFzayBcCgkJCW10dSB2bGFuZGV2IHZsYW4gbWV0cmljIG1l ZGlhb3B0IGRvd24gZGVsZXRlIFwKCQkJYnJvYWRjYXN0IGFycCBkZWJ1ZykvJwogICAgY29tcGxl dGUgaW1ha2UJJ2MvLUkvZC8nCiAgICBjb21wbGV0ZSBpcGZ3IAkncC8xLyhmbHVzaCBhZGQgZGVs ZXRlIGxpc3Qgc2hvdyB6ZXJvKS8nIFwKCQkJJ24vYWRkLyhhbGxvdyBwZXJtaXQgYWNjZXB0IHBh c3MgZGVueSBkcm9wIHJlamVjdCBcCgkJCXJlc2V0IGNvdW50IHNraXB0byBudW0gZGl2ZXJ0IHBv cnQgdGVlIHBvcnQpLycKICAgIGNvbXBsZXRlIGphdmFjCSdwLyovZjoqLmphdmEvJwogICAgY29t cGxldGUgbGRpZjJsZGJtCSduLy1pL2Y6Ki5sZGlmLycKICAgIGNvbXBsZXRlIGxpYnRvb2wJJ2Mv LS1tb2RlPS8oY29tcGlsZSBleGVjdXRlIGZpbmlzaCBpbnN0YWxsIGxpbmsgXAoJCQl1bmluc3Rh bGwpLycgJ2MvLS0vKGNvbmZpZyBkZWJ1ZyBkcnktcnVuIGZlYXR1cmVzIFwKCQkJZmluaXNoIGhl bHAgcXVpZXQgc2lsZW50IHZlcnNpb24gbW9kZT0pLycKICAgIGNvbXBsZXRlIGxpYnRvb2xpemUJ J2MvLS0vKGF1dG9tYWtlIGNvcHkgZGVidWcgZHJ5LXJ1biBmb3JjZSBoZWxwIGx0ZGwgXAoJCQls dGRsLXRhciB2ZXJzaW9uKS8nCiAgICBjb21wbGV0ZSBsaW5rcwknYy8tLyhhc3N1bWUtY29kZXBh Z2UgYXN5bmMtZG5zIGRvd25sb2FkLWRpciBcCgkJCWZvcm1hdC1jYWNoZS1zaXplIGZ0cC1wcm94 eSBoZWxwIGh0dHAtcHJveHkgXAoJCQltYXgtY29ubmVjdGlvbnMgbWF4LWNvbm5lY3Rpb25zLXRv LWhvc3QgXAoJCQltZW1vcnktY2FjaGUtc2l6ZSByZWNlaXZlLXRpbWVvdXQgcmV0cmllcyBcCgkJ CXVucmVzdGFydGFibGUtcmVjZWl2ZS10aW1lb3V0IHZlcnNpb24pLycKICAgIGNvbXBsZXRlIG5h dGQJYy8tLycoYWxpYXNfYWRkcmVzcyBjb25maWcgZGVueV9pbmNvbWluZyBkeW5hbWljIFwKCQkJ aW5wb3J0IGludGVyZmFjZSBsb2cgbG9nX2RlbmllZCBsb2dfZmFjaWxpdHkgXAoJCQlvdXRwb3J0 IG91dHBvcnQgcG9ydCBwcHRwYWxpYXMgcHJveHlfb25seSBcCgkJCXByb3h5X3J1bGUgcmVkaXJl Y3RfYWRkcmVzcyByZWRpcmVjdF9wb3J0IFwKCQkJcmV2ZXJzZSBzYW1lX3BvcnRzIHVucmVnaXN0 ZXJlZF9vbmx5IHVzZV9zb2NrZXRzIFwKCQkJdmVyYm9zZSknLyAnbkAtaW50ZXJmYWNlQGBpZmNv bmZpZyAtbGBAJwogICAgY29tcGxldGUgbmV0c3RhdAknbkAtSUBgaWZjb25maWcgLWxgQCcKICAg IGNvbXBsZXRlIG9iamR1bXAJJ2MvLS0vKGFkanVzdC12bWE9IGFsbC1oZWFkZXJzIGFyY2hpdGVj dHVyZT0gXAoJCQlhcmNoaXZlLWhlYWRlcnMgZGVidWdnaW5nIGRlbWFuZ2xlIGRpc2Fzc2VtYmxl IFwKCQkJZGlzYXNzZW1ibGUtYWxsIGRpc2Fzc2VtYmxlLXplcm9lcyBkeW5hbWljLXJlbG9jIFwK CQkJZHluYW1pYy1zeW1zIGVuZGlhbj0gZmlsZS1oZWFkZXJzIGZ1bGwtY29udGVudHMgXAoJCQlo ZWFkZXJzIGhlbHAgaW5mbyBsaW5lLW51bWJlcnMgbm8tc2hvdy1yYXctaW5zbiBcCgkJCXByZWZp eC1hZGRyZXNzZXMgcHJpdmF0ZS1oZWFkZXJzIHJlbG9jIHNlY3Rpb24taGVhZGVycyBcCgkJCXNl Y3Rpb249c291cmNlIHN0YWJzIHN0YXJ0LWFkZHJlc3M9IHN0b3AtYWRkcmVzcz0gXAoJCQlzeW1z IHRhcmdldD0gdmVyc2lvbiB3aWRlKS8nIFwKCQkJJ2MvLS8oYSBoIGkgZiBDIGQgRCBwIHIgUiB0 IFQgeCBzIFMgbCB3KS8nCiAgICBjb21wbGV0ZSB4bW9kbWFwCSdjLy0vKGRpc3BsYXkgaGVscCBn cmFtbWFyIHZlcmJvc2UgcXVpZXQgbiBlIHBtIHBrIFwKCQkJcGtlIHBwKS8nCiAgICBjb21wbGV0 ZSBseW54CSdjLy0vKGFjY2VwdF9hbGxfY29va2llcyBhbm9ueW1vdXMgYXNzdW1lX2NoYXJzZXQ9 IFwKCQkJYXNzdW1lX2xvY2FsX2NoYXJzZXQ9IGFzc3VtZV91bnJlY19jaGFyc2V0PSBhdXRoPSBi YXNlIFwKCQkJYm9vayBidXJpZWRfbmV3cyBjYWNoZT0gY2FzZSBjZmc9IGNoaWxkIGNvb2tpZV9m aWxlPSBcCgkJCWNvb2tpZXMgY29yZSBjcmF3bCBkZWJ1Z19wYXJ0aWFsIGRpc3BsYXk9IGR1bXAg ZWRpdG9yPSBcCgkJCWVtYWNza2V5cyBlbmFibGVfc2Nyb2xsYmFjayBlcnJvcl9maWxlPSBmb3Jj ZV9odG1sIFwKCQkJZm9yY2Vfc2VjdXJlIGZvcm1zX29wdGlvbnMgZnJvbSBmdHAgZ2V0X2RhdGEg aGVhZCBoZWxwIFwKCQkJaGlkZGVubGlua3M9IGhpc3RvcmljYWwgaG9tZXBhZ2U9IGltYWdlX2xp bmtzIGluZGV4PSBcCgkJCWlzbWFwIGxpbms9IGxvY2FsaG9zdCBtaW1lX2hlYWRlciBtaW5pbWFs IFwKCQkJbmV3c2NodW5rc2l6ZT0gbmV3c21heGNodW5rPSBub2Jyb3dzZSBub2NjIG5vY29sb3Ig XAoJCQlub2ZpbGVyZWZlcmVyIG5vbGlzdCBub2xvZyBub3BhdXNlIG5vcHJpbnQgbm9yZWRpciBc CgkJCW5vcmVmZXJlciBub3N0YXR1cyBudW1iZXJfbGlua3MgcGFydGlhbCBwYXJ0aWFsX3RocmVz IFwKCQkJcGF1dGg9IHBvcHVwIHBvc3RfZGF0YSBwcmVwYXJzZWQgcHJpbnQgcHNldWRvX2lubGlu ZXMgXAoJCQlyYXcgcmVhbG0gcmVsb2FkIHJlc3RyaWN0aW9ucz0gcmVzdWJtaXRfcG9zdHMgcmxv Z2luIFwKCQkJc2VsZWN0aXZlIHNob3dfY3Vyc29yIHNvZnRfZHF1b3RlcyBzb3VyY2Ugc3RhY2tf ZHVtcCBcCgkJCXN0YXJ0ZmlsZV9vayB0YWdzb3VwIHRlbG5ldCB0ZXJtPSB0bG9nIHRyYWNlIHRy YXZlcnNhbCBcCgkJCXVuZGVyc2NvcmUgdXNlcmFnZW50PSB2YWxpZGF0ZSB2ZXJib3NlIHZlcnNp b24gdmlrZXlzIFwKCQkJd2lkdGg9KS8nICdjLyhodHRwfGZ0cCkvJFVSTFMvJwogICAgY29tcGxl dGUgZ21ha2UJJ2Mvey0tZGlyZWN0b3J5PSwtLWluY2x1ZGUtZGlyPX0vZC8nIFwKCQkJJ2Mvey0t YXNzdW1lLW5ldywtLWFzc3VtZS1vbGQsLS1tYWtlZmlsZSwtLW5ldy1maWxlLC0td2hhdC1pZiwt LWZpbGV9L2YvJyBcCgkJCSdjLy0tLyhhc3N1bWUtbmV3PSBhc3N1bWUtb2xkPSBkZWJ1ZyBkaXJl Y3Rvcnk9IFwKCQkJZHJ5LXJ1biBlbnZpcm9ubWVudC1vdmVycmlkZXMgZmlsZT0gaGVscCBcCgkJ CWlnbm9yZS1lcnJvcnMgaW5jbHVkZS1kaXI9IGpvYnNbPU5dIGp1c3QtcHJpbnQgXAoJCQlrZWVw LWdvaW5nIGxvYWQtYXZlcmFnZVs9Tl0gbWFrZWZpbGU9IG1heC1sb2FkWz1OXSBcCgkJCW5ldy1m aWxlPSBuby1idWlsdGluLXJ1bGVzIG5vLWtlZXAtZ29pbmcgXAoJCQluby1wcmludC1kaXJlY3Rv cnkgb2xkLWZpbGU9IHByaW50LWRhdGEtYmFzZSBcCgkJCXByaW50LWRpcmVjdG9yeSBxdWVzdGlv biBxdWlldCByZWNvbiBzaWxlbnQgc3RvcCBcCgkJCXRvdWNoIHZlcnNpb24gd2Fybi11bmRlZmlu ZWQtdmFyaWFibGVzIHdoYXQtaWY9KS8nIFwKCQkJJ25AKkBgY2F0IC1zIEdOVU1ha2VmaWxlIE1h a2VmaWxlIG1ha2VmaWxlIHwmIHNlZCAtbiAtZSAiL05vIHN1Y2ggZmlsZS9kIiAtZSAicy9eXChb QS1aYS16MC05LV0qXCk6LiovXDEvcCJgQCcgXAoJCQknbi89L2YvJyAnbi8tZi9mLycKICAgIGNv bXBsZXRlIG1peGVyCXAvMS8nKHZvbCBiYXNzIHRyZWJsZSBzeW50aCBwY20gc3BlYWtlciBtaWMg Y2QgbWl4IFwKCQkJcGNtMiByZWMgaWdhaW4gb2dhaW4gbGluZTEgbGluZTIgbGluZTMpJy8gXAoJ CQlwQDJAJ2BtaXhlciAkOi0xIHwgYXdrIFx7XCBwcmludFwgXCQ3XCBcfWAnQAoKICAgIGNvbXBs ZXRlIG1wZzEyMwknYy8tLS8oMnRvMSA0dG8xIDhiaXQgYWdncmVzc2l2ZSBhdSBhdWRpb2Rldmlj ZSBcCiAgICAJCQlhdXRoIGJ1ZmZlciBjZHIgY2hlY2sgZG91Ymxlc3BlZWQgZXF1YWxpemVyIGZy YW1lcyBcCgkJCWdhaW4gaGFsZnNwZWVkIGhlYWRwaG9uZXMgbGVmdCBsaW5lb3V0IGxpc3QgbWl4 IG1vbm8gXAoJCQlwcm94eSBxdWlldCByYW5kb20gcmF0ZSByZW9wZW4gcmVzeW5jIHJpZ2h0IHNj YWxlIFwKCQkJc2h1ZmZsZSBzaW5nbGUwIHNpbmdsZTEgc2tpcCBzcGVha2VyIHN0ZG91dCBzdGVy ZW8gXAoJCQl0ZXN0IHZlcmJvc2Ugd2F2KS8nICdwLyovZjoqLnttcDMsTVAzfS8nCiAgICBjb21w bGV0ZSBteXNxbGFkbWluCSduLyovKGNyZWF0ZSBkcm9wIGV4dGVuZGVkLXN0YXR1cyBmbHVzaC1o b3N0cyBcCgkJCWZsdXNoLWxvZ3MgZmx1c2gtc3RhdHVzIGZsdXNoLXRhYmxlcyBmbHVzaC1wcml2 aWxlZ2VzIFwKCQkJa2lsbCBwYXNzd29yZCBwaW5nIHByb2Nlc3NsaXN0IHJlbG9hZCByZWZyZXNo IFwKCQkJc2h1dGRvd24gc3RhdHVzIHZhcmlhYmxlcyB2ZXJzaW9uKS8nCiAgICBjb21wbGV0ZSBt dXR0CWNALWY9QEY6JHtIT01FfS9NYWlsL0AgXAoJCQluLy1hL2YvIFwKCQkJbi8tRi9mLyBuLy1I L2YvIFwKCQkJbi8tcy94Oic8c3ViamVjdCBsaW5lPicvIFwKCQkJbi8tZS94Oic8Y29tbWFuZD4n LyBcCgkJCW5ALWJAJ2BjYXQgJHtIT01FfS8ubXV0dHJjLWFsaWFzIHwgYXdrICciJyIne3ByaW50 ICQyIH0nIiciXGBAIFwKCQkJbkAtY0AnYGNhdCAke0hPTUV9Ly5tdXR0cmMtYWxpYXMgfCBhd2sg JyInIid7cHJpbnQgJDIgfSciJyJcYEAgXAoJCQluQCpAJ2BjYXQgJHtIT01FfS8ubXV0dHJjLWFs aWFzIHwgYXdrICciJyIne3ByaW50ICQyIH0nIiciXGBACiAgICBjb21wbGV0ZSBuZGMJJ24vKi8o c3RhdHVzIGR1bXBkYiByZWxvYWQgc3RhdHMgdHJhY2Ugbm90cmFjZSBcCgkJCXF1ZXJ5bG9nIHN0 YXJ0IHN0b3AgcmVzdGFydCApLycKICAgIGNvbXBsZXRlIG5tCQknYy8tLS8oZGVidWctc3ltcyBk ZWZpbmVkLW9ubHkgZGVtYW5nbGUgZHluYW1pYyBcCgkJCWV4dGVybi1vbmx5IGZvcm1hdD0gaGVs cCBsaW5lLW51bWJlcnMgbm8tZGVtYW5nbGUgXAoJCQluby1zb3J0IG51bWVyaWMtc29ydCBwb3J0 YWJpbGl0eSBwcmludC1hcm1hcCBcCgkJCXByaW50LWZpbGUtbmFtZSByZXZlcnNlLXNvcnQgc2l6 ZS1zb3J0IHVuZGVmaW5lZC1vbmx5IFwKCQkJdmVyc2lvbikvJyAncC8qL2Y6Xioue2gsQyxjLGNj fS8nCiAgICBjb21wbGV0ZSBubWFwCSduQC1lQGBpZmNvbmZpZyAtbGBAJyAncC8qLyRob3N0bmFt ZXMvJwogICAgY29tcGxldGUgcGVybGRvYyAJJ25AKkBgXGxzIC0xIC91c3IvbGliZGF0YS9wZXJs LzUuKi9wb2QgfCBzZWQgcyVcXC5wb2QuXCpcJCUlYEAnCiAgICBjb21wbGV0ZSBwb3N0Zml4ICAg ICduLyovKHN0YXJ0IHN0b3AgcmVsb2FkIGFib3J0IGZsdXNoIGNoZWNrKS8nCiAgICBjb21wbGV0 ZSBwb3N0bWFwCSduLzEvKGhhc2g6IHJlZ2V4cDopJyAnYy9oYXNoOi9mLycgJ2MvcmVnZXhwOi9m LycKICAgIGNvbXBsZXRlIHJjc2RpZmYJJ3BAMUBgXGxzIC0xYSBSQ1MgfCBzZWQgLWUgInMvXCgu KlwpLHYvXDEvImBAJwogICAgY29tcGxldGUgWAkJJ2MvLS8oSSBhIGFjIGFsbG93TW91c2VPcGVu RmFpbCBhbGxvd05vbkxvY2FsTW9kSW5EZXYgXAoJCQlhbGxvd05vbkxvY2FsWHZpZHR1bmUgYXIx IGFyMiBhdWRpdCBhdXRoIGJlc3RSZWZyZXNoIFwKCQkJYmdhbW1hIGJwcCBicm9hZGNhc3QgYnMg YyBjYyBjbGFzcyBjbyBjb3JlIGRlZmVyZ2x5cGhzIFwKCQkJZGlzYWJsZU1vZEluRGV2IGRpc2Fi bGVWaWRNb2RlIGRpc3BsYXlJRCBkcGkgZHBtcyBmIGZjIFwKCQkJZmxpcFBpeGVscyBmbiBmcCBn YW1tYSBnZ2FtbWEgaGVscCBpbmRpcmVjdCBrYiBrZWVwdHR5IFwKCQkJbGQgbGYgbG9nbyBscyBu b2xpc3RlbiBzdHJpbmcgbm9sb2FkeGtiIG5vbG9jayBub3BuIFwKCQkJb25jZSBwIHBuIHBvcnQg cHJvYmVvbmx5IHF1ZXJ5IHF1aWV0IHIgcmdhbW1hIHMgXAoJCQlzaG93Y29uZmlnIHNwIHN1IHQg dGVybWluYXRlIHRvIHRzdCB2IHZlcmJvc2UgdmVyc2lvbiBcCgkJCXdlaWdodCB3bSB4IHhrYmRi IHhrYm1hcCkvJwogICAgY29tcGxldGUgdXNlcnMgICAgICAnYy8tLS8oaGVscCB2ZXJzaW9uKS8n ICdwLzEveDoiPGFjY291bnRpbmdfZmlsZT4iLycKICAgIGNvbXBsZXRlIHZpZGNvbnRyb2wJJ3Av MS8oMTMyeDI1IDEzMngzMCAxMzJ4NDMgMTMyeDUwIDEzMng2MCA0MHgyNSA4MHgyNSBcCgkJCTgw eDMwIDgweDQzIDgweDUwIDgweDYwIEVHQV84MHgyNSBFR0FfODB4NDMgXAoJCQlWRVNBXzEzMngy NSBWRVNBXzEzMngzMCBWRVNBXzEzMng0MyBWRVNBXzEzMng1MCBcCgkJCVZFU0FfMTMyeDYwIFZF U0FfODAweDYwMCBWR0FfMzIweDIwMCBWR0FfNDB4MjUgXAoJCQlWR0FfODB4MjUgVkdBXzgweDMw IFZHQV84MHg1MCBWR0FfODB4NjApLycKICAgIGNvbXBsZXRlIHZpbQknbi8qL2Y6XiouW29hXS8n CiAgICBjb21wbGV0ZSB3aGVyZQknbi8qL2MvJwogICAgY29tcGxldGUgd2hpY2gJJ24vKi9jLycK ICAgIGNvbXBsZXRlIHdtc2V0YmcJJ2MvLS8oZGlzcGxheSBEIFMgYSBiIGMgZCBlIG0gcCBzIHQg dSB3KS8nIFwKCQkJJ2MvLS0vKGJhY2stY29sb3IgY2VudGVyIGNvbG9ycyBkaXRoZXIgaGVscCBt YXRjaCBcCgkJCW1heHNjYWxlIHBhcnNlIHNjYWxlIHNtb290aCB0aWxlIHVwZGF0ZS1kb21haW4g XAoJCQl1cGRhdGUtd21ha2VyIHZlcnNpb24gd29ya3NwYWNlKS8nCiAgICBjb21wbGV0ZSB4ZGIJ J3AvMS9jLycKICAgIGNvbXBsZXRlIHhkdmkJJ2MvLS8oYWxsb3dzaGVsbCBkZWJ1ZyBkaXNwbGF5 IGV4cGVydCBnYW1tYSBodXNoY2hhcnMgXAoJCQlodXNoY2hlY2tzdW1zIGh1c2hzcGVjaWFscyBp bnN0YWxsIGludGVycHJldGVyIGtlZXAgXAoJCQltYXJnaW5zIG5vZ3JleSBub2luc3RhbGwgbm9t YWtlcGsgbm9zY2FuIHBhcGVyIHNhZmVyIFwKCQkJc2hyaW5rYnV0dG9ubiB0aG9yb3VnaCB0b3Bt YXJnaW4gdW5kZXJsaW5rIHZlcnNpb24pLycgXAoJCQknbi8tcGFwZXIvKGE0IGE0ciBhNSBhNXIp LycgJ3AvKi9mOiouZHZpLycKICAgIGNvbXBsZXRlIHhsb2NrCSdjLy0vKGFsbG93YWNjZXNzIGFs bG93cm9vdCBkZWJ1ZyBkZXNjcmlwdGlvbiBcCgkJCWVjaG9rZXlzIGVuYWJsZXNhdmVyIGdyYWJt b3VzZSBncmFic2VydmVyIGhpZGUgaW5yb290IFwKCQkJaW5zdGFsbCBpbndpbmRvdyBtb25vIG1v dXNlbW90aW9uIG5vbG9jayByZW1vdGUgXAoJCQlyZXNldHNhdmVyIHNvdW5kIHRpbWVlbGFwc2Vk IHVzZTNkIHVzZWZpcnN0IHZlcmJvc2UgXAoJCQl3aXJlZnJhbWUgYmFja2dyb3VuZCBiYXRjaGNv dW50IGJnIGJpdG1hcCBib3RoM2QgXAoJCQljb3VudCBjeWNsZXMgZGVsYXkgZGVsdGEzZCBkaXNw bGF5IGRwbXNvZmYgXAoJCQlkcG1zc3RhbmRieSBkcG1zc3VzcGVuZCBlbmRDbWQgZXJhc2VkZWxh eSBlcmFzZW1vZGUgXAoJCQllcmFzZXRpbWUgZmcgZm9udCBmb3JlZ3JvdW5kIGdlb21ldHJ5IGhl bHAgXAoJCQlpY29uZ2VvbWV0cnkgaW5mbyBpbnZhbGlkIGxlZnQzZCBsb2NrZGVsYXkgbG9nb3V0 Q21kIFwKCQkJbWFpbENtZCBtYWlsSWNvbiBtZXNzYWdlIG1lc3NhZ2VmaWxlIG1lc3NhZ2Vmb250 IFwKCQkJbWVzc2FnZXNmaWxlIG1vZGUgbmFtZSBuY29sb3JzIG5pY2Ugbm9tYWlsSWNvbiBub25l M2QgXAoJCQlwYXJlbnQgcGFzc3dvcmQgcGxhbmZvbnQgcHJvZ3JhbSByZXNvdXJjZXMgcmlnaHQz ZCBcCgkJCXNhdHVyYXRpb24gc2l6ZSBzdGFydENtZCB0aW1lb3V0IHVzZXJuYW1lIHZhbGlkYXRl IFwKCQkJdmVyc2lvbiB2aXN1YWwpLycgJ24vLW1vZGUvKGFudCBhdGxhbnRpcyBiYWxsIGJhdCBc CgkJCWJsb3QgYm91Ym91bGUgYm91bmNlIGJyYWlkIGJ1YmJsZSBidWJibGUzZCBidWcgY2FnZSBc CgkJCWNhcnRvb24gY2xvY2sgY29yYWwgY3J5c3RhbCBkYWlzeSBkY2xvY2sgZGVjYXkgZGVjbyBc CgkJCWRlbW9uIGRpbGVtbWEgZGlzY3JldGUgZHJpZnQgZXllcyBmYWRlcGxvdCBmbGFnIGZsYW1l IFwKCQkJZmxvdyBmb3Jlc3QgZ2FsYXh5IGdlYXJzIGdvb3AgZ3JhdiBoZWxpeCBob3AgaHlwZXIg XAoJCQlpY28gaWZzIGltYWdlIGludmVydCBqdWxpYSBrYWxlaWQga3VtcHBhIGxhbWVudCBsYXNl ciBcCgkJCWxpZmUgbGlmZTFkIGxpZmUzZCBsaWdodG5pbmcgbGlzYSBsaXNzaWUgbG9vcCBseWFw dW5vdiBcCgkJCW1hbmRlbGJyb3QgbWFycXVlZSBtYXRyaXggbWF6ZSBtb2ViaXVzIG1vcnBoM2Qg XAoJCQltb3VudGFpbiBtdW5jaCBub3NlIHBhY21hbiBwZW5yb3NlIHBldGFsIHBpcGVzIHB1enps ZSBcCgkJCXB5cm8gcWl4IHJvbGwgcm90b3IgcnViaWsgc2hhcGUgc2llcnBpbnNraSBzbGlwIHNw aGVyZSBcCgkJCXNwaXJhbCBzcGxpbmUgc3Byb2luZ2llcyBzdGFpcnMgc3RhciBzdGFyZmlzaCBz dHJhbmdlIFwKCQkJc3VwZXJxdWFkcmljcyBzd2FybSBzd2lybCB0ZXRyaXMgdGhvcm5iaXJkIHRy aWFuZ2xlIFwKCQkJdHViZSB0dXJ0bGUgdmluZXMgdm90ZXJzIHdhdG9yIHdpcmUgd29ybGQgd29y bSB4amFjayBcCgkJCWJsYW5rIGJvbWIgcmFuZG9tKS8nIAogICAgY29tcGxldGUgeGZpZwknYy8t LyhkaXNwbGF5KS8nICdwLyovZjoqLmZpZy8nCiAgICBjb21wbGV0ZSB3Z2V0IAljLy0tLyIoYWNj ZXB0PSBhcHBlbmQtb3V0cHV0PSBiYWNrZ3JvdW5kIGNhY2hlPSBcCgkJCWNvbnRpbnVlIGNvbnZl cnQtbGlua3MgY3V0LWRpcnM9IGRlYnVnIFwKCQkJZGVsZXRlLWFmdGVyIGRpcmVjdG9yeS1wcmVm aXg9IGRvbWFpbnM9IFwKCQkJZG9udC1yZW1vdmUtbGlzdGluZyBkb3Qtc3R5bGU9IGV4Y2x1ZGUt ZGlyZWN0b3JpZXM9IFwKCQkJZXhjbHVkZS1kb21haW5zPSBleGVjdXRlPSBmb2xsb3ctZnRwIFwK CQkJZm9yY2UtZGlyZWN0b3JpZXMgZm9yY2UtaHRtbCBnbG9iPSBoZWFkZXI9IGhlbHAgXAoJCQlo dHRwLXBhc3N3ZD0gaHR0cC11c2VyPSBpZ25vcmUtbGVuZ3RoIFwKCQkJaW5jbHVkZS1kaXJlY3Rv cmllcz0gaW5wdXQtZmlsZT0gbGV2ZWw9IG1pcnJvciBcCgkJCW5vLWNsb2JiZXIgbm8tZGlyZWN0 b3JpZXMgbm8taG9zdC1kaXJlY3RvcmllcyBcCgkJCW5vLWhvc3QtbG9va3VwIG5vLXBhcmVudCBu b24tdmVyYm9zZSBcCgkJCW91dHB1dC1kb2N1bWVudD0gb3V0cHV0LWZpbGU9IHBhc3NpdmUtZnRw IFwKCQkJcHJveHktcGFzc3dkPSBwcm94eS11c2VyPSBwcm94eT0gcXVpZXQgcXVvdGE9IFwKCQkJ cmVjdXJzaXZlIHJlamVjdD0gcmVsYXRpdmUgcmV0ci1zeW1saW5rcyBzYXZlLWhlYWRlcnMgXAoJ CQlzZXJ2ZXItcmVzcG9uc2Ugc3Bhbi1ob3N0cyBzcGlkZXIgdGltZW91dD0gXAoJCQl0aW1lc3Rh bXBpbmcgdHJpZXM9IHVzZXItYWdlbnQ9IHZlcmJvc2UgdmVyc2lvbiB3YWl0PSkiLwoKICAgICMg dGhlc2UgZnJvbSBUb20gV2FyemVrYSA8dG9tQHdhei5jYz4KCiAgICAjIHRoaXMgb25lIHdvcmtz IGJ1dCBpcyBzbG93IGFuZCBkb2Vzbid0IGRlc2NlbmQgaW50byBzdWJkaXJlY3RvcmllcwogICAg IyBjb21wbGV0ZQljZAlDQFsuL1wkfl0qQGRAIFwKICAgICMJCQlwQDFAJ2BcbHMgLTFGIC4gJGNk cGF0aCB8IGdyZXAgL1wkIHwgc29ydCAtdWAnQCBuQCpAbkAKCiAgICBpZiAoIC1yIC9ldGMvc2hl bGxzICkgdGhlbgogICAgICAgIGNvbXBsZXRlIHNldGVudglwQDFAZUAgbkBESVNQTEFZQFwkaG9z dHNAOiBuQFNIRUxMQCdgY2F0IC9ldGMvc2hlbGxzYCdACiAgICBlbHNlCgljb21wbGV0ZSBzZXRl bnYJcEAxQGVAIG5ARElTUExBWUBcJGhvc3RzQDoKICAgIGVuZGlmCiAgICBjb21wbGV0ZSB1bnNl dGVudgluLyovZS8KCiAgICBpZiAoLXIgL3Zhci9zcG9vbC9tYWlsKSB0aGVuCiAgICAgIHNldCBf bWFpbGRpciA9IC92YXIvc3Bvb2wvbWFpbAogICAgZWxzZQogICAgICBzZXQgX21haWxkaXIgPSAv dXNyL21haWwKICAgIGVuZGlmCiAgICBpZiAoLXIgJEhPTUUvLm1haWxyYykgdGhlbgogICAgICAg IGNvbXBsZXRlIG1haWwJYy8tLyIoZSBpIGYgbiBzIHUgdikiLyBjLypAL1wkaG9zdHMvIFwKCQkJ Y0ArQEY6JEhPTUUvTWFpbEAgQ0BbLi9cJH5dQGZAIG4vLXMveDonPHN1YmplY3Q+Jy8gXAoJCQlu QC11QFQ6JF9tYWlsZGlyQCBuLy1mL2YvIFwKCQkJbkAqQCdgc2VkIC1uIHMvYWxpYXMvL3AgJEhP TUUvLm1haWxyYyB8IHRyIC1zICIgIiAiCSIgfCBjdXQgLWYgMmAnQAogICAgZWxzZQogICAgICAg IGNvbXBsZXRlIG1haWwJYy8tLyIoZSBpIGYgbiBzIHUgdikiLyBjLypAL1wkaG9zdHMvIFwKCQkJ Y0ArQEY6JEhPTUUvTWFpbEAgQ0BbLi9cJH5dQGZAIG4vLXMveDonPHN1YmplY3Q+Jy8gXAoJCQlu QC11QFQ6JF9tYWlsZGlyQCBuLy1mL2YvIG4vKi91LwogICAgZW5kaWYKICAgIHVuc2V0IF9tYWls ZGlyCgogICAgaWYgKCEgJD9NQU5QQVRIKSB0aGVuCglpZiAoLXIgL3Vzci9zaGFyZS9tYW4pIHRo ZW4KCSAgICBzZXRlbnYgTUFOUEFUSCAvdXNyL3NoYXJlL21hbjoKCWVsc2UKCSAgICBzZXRlbnYg TUFOUEFUSCAvdXNyL21hbjoKCWVuZGlmCiAgICBlbmRpZgoKICAgICMgdXNlIG9mICRNQU5QQVRI IGZyb20gRGFuIE5pY29sYWVzY3UgPGRhbm5AaWNzLnVjaS5lZHU+CiAgICAjIHVzZSBvZiAnZmlu ZCcgYWRhcHRlZCBmcm9tIEx1Ym9taXIgSG9zdCA8aG9zdDhAa2VwbGVyLmZtcGgudW5pYmEuc2s+ CiAgICBjb21wbGV0ZSBtYW4gXAoJICAgICduQDFAYHNldCBxID0gIiRNQU5QQVRIOmFzJTolL21h bjEgJSIgOyBcbHMgLTEgJHEgfCYgc2VkIC1lIHMlXi5cKjouXCpcJCUlIC1lIHMlXFwuMS5cKlwk JSVgQCdcCgkgICAgJ25AMkBgc2V0IHEgPSAiJE1BTlBBVEg6YXMlOiUvbWFuMiAlIiA7IFxscyAt MSAkcSB8JiBzZWQgLWUgcyVeLlwqOi5cKlwkJSUgLWUgcyVcXC4yLlwqXCQlJWBAJ1wKCSAgICAn bkAzQGBzZXQgcSA9ICIkTUFOUEFUSDphcyU6JS9tYW4zICUiIDsgXGxzIC0xICRxIHwmIHNlZCAt ZSBzJV4uXCo6LlwqXCQlJSAtZSBzJVxcLjMuXCpcJCUlYEAnXAoJICAgICduQDRAYHNldCBxID0g IiRNQU5QQVRIOmFzJTolL21hbjQgJSIgOyBcbHMgLTEgJHEgfCYgc2VkIC1lIHMlXi5cKjouXCpc JCUlIC1lIHMlXFwuNC5cKlwkJSVgQCdcCgkgICAgJ25ANUBgc2V0IHEgPSAiJE1BTlBBVEg6YXMl OiUvbWFuNSAlIiA7IFxscyAtMSAkcSB8JiBzZWQgLWUgcyVeLlwqOi5cKlwkJSUgLWUgcyVcXC41 LlwqXCQlJWBAJ1wKCSAgICAnbkA2QGBzZXQgcSA9ICIkTUFOUEFUSDphcyU6JS9tYW42ICUiIDsg XGxzIC0xICRxIHwmIHNlZCAtZSBzJV4uXCo6LlwqXCQlJSAtZSBzJVxcLjYuXCpcJCUlYEAnXAoJ ICAgICduQDdAYHNldCBxID0gIiRNQU5QQVRIOmFzJTolL21hbjcgJSIgOyBcbHMgLTEgJHEgfCYg c2VkIC1lIHMlXi5cKjouXCpcJCUlIC1lIHMlXFwuNy5cKlwkJSVgQCdcCgkgICAgJ25AOEBgc2V0 IHEgPSAiJE1BTlBBVEg6YXMlOiUvbWFuOCAlIiA7IFxscyAtMSAkcSB8JiBzZWQgLWUgcyVeLlwq Oi5cKlwkJSUgLWUgcyVcXC44LlwqXCQlJWBAJ1wKCSAgICAnbkA5QGBzZXQgcSA9ICIkTUFOUEFU SDphcyU6JS9tYW45ICUiIDsgXGxzIC0xICRxIHwmIHNlZCAtZSBzJV4uXCo6LlwqXCQlJSAtZSBz JVxcLjkuXCpcJCUlYEAnXAoJICAgICduQDBAYHNldCBxID0gIiRNQU5QQVRIOmFzJTolL21hbjAg JSIgOyBcbHMgLTEgJHEgfCYgc2VkIC1lIHMlXi5cKjouXCpcJCUlIC1lIHMlXFwuMC5cKlwkJSVg QCdcCgkgICAgJ25AbkBgc2V0IHEgPSAiJE1BTlBBVEg6YXMlOiUvbWFubiAlIiA7IFxscyAtMSAk cSB8JiBzZWQgLWUgcyVeLlwqOi5cKlwkJSUgLWUgcyVcXC5uLlwqXCQlJWBAJ1wKCSAgICAnbkBv QGBzZXQgcSA9ICIkTUFOUEFUSDphcyU6JS9tYW5vICUiIDsgXGxzIC0xICRxIHwmIHNlZCAtZSBz JV4uXCo6LlwqXCQlJSAtZSBzJVxcLm8uXCpcJCUlYEAnXAoJICAgICduQGxAYHNldCBxID0gIiRN QU5QQVRIOmFzJTolL21hbmwgJSIgOyBcbHMgLTEgJHEgfCYgc2VkIC1lIHMlXi5cKjouXCpcJCUl IC1lIHMlXFwubC5cKlwkJSVgQCdcCgkgICAgJ25AcEBgc2V0IHEgPSAiJE1BTlBBVEg6YXMlOiUv bWFucCAlIiA7IFxscyAtMSAkcSB8JiBzZWQgLWUgcyVeLlwqOi5cKlwkJSUgLWUgcyVcXC5wLlwq XCQlJWBAJ1wKCSAgICBjQC1AIigtIGYgayBNIFAgcyBTIHQpIkAgbkAtZkBjQCBuQC1rQHg6Jzxr ZXl3b3JkPidAIG5ALVtNUF1AZEAgICBcCgkgICAgJ05ALVtNUF1AYFxscyAtMSAkOi0xL21hbj8g fCYgc2VkIC1uIHMlXFwuLlxcK1wkJSVwYEAnICAgICAgICAgICAgXAoJICAgICduQC1bc1NdQGBc bHMgLTEgJE1BTlBBVEg6YXMlOiUgJSB8JiBzZWQgLW4gcyVebWFuJSVwIHwgc29ydCAtdWBAJ1wK CSAgICAnbkAqQGBmaW5kICRNQU5QQVRIOmFzJTolICUgXCggLXR5cGUgZiAtbyAtdHlwZSBsIFwp IC1wcmludGYgIiVmICIgfCYgc2VkIC1lICJzJWZpbmQ6IC4qOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5JSUiIC1lICJzJVwoW15cLl1cK1wpXC5cKFteIF0qXCkgJVwxICVnImBAJwoJICAgICNu QCpAY0AgIyBvbGQgd2F5IC0tIGNvbW1hbmRzIG9ubHkKCiAgICBjb21wbGV0ZSBwcwkgICAgICAg IGMvLXQveDonPHR0eT4nLyBjLy0vIihhIGMgQyBlIGcgayBsIFMgdCB1IHYgdyB4KSIvIFwKCQkJ bi8tay94Oic8a2VybmVsPicvIE4vLWsveDonPGNvcmVfZmlsZT4nLyBuLyoveDonPFBJRD4nLwog ICAgY29tcGxldGUgY29tcHJlc3MJYy8tLyIoYyBmIHYgYikiLyBuLy1iL3g6JzxtYXhfYml0cz4n LyBuLyovZjpeKi5aLwogICAgY29tcGxldGUgdW5jb21wcmVzcwljLy0vIihjIGYgdikiLyAgICAg ICAgICAgICAgICAgICAgICAgIG4vKi9mOiouWi8KCiAgICBjb21wbGV0ZSB1dWVuY29kZQlwLzEv Zi8gcC8yL3g6JzxkZWNvZGVfcGF0aG5hbWU+Jy8gbi8qL24vCiAgICBjb21wbGV0ZSB1dWRlY29k ZQljLy0vIihmKSIvIG4vLWYvZjoqLnt1dSxVVX0vIHAvMS9mOioue3V1LFVVfS8gbi8qL24vCgog ICAgY29tcGxldGUgeGhvc3QJYy9bKy1dL1wkaG9zdHMvIG4vKi9cJGhvc3RzLwogICAgY29tcGxl dGUgeHBkZgljLy0vIih6IGcgcmVtb3RlIHJhaXNlIHF1aXQgY21hcCByZ2IgcGFwZXJjb2xvciAg ICAgICBcCgkJCSAgICAgIGV1Y2pwIHQxbGliIGZyZWV0eXBlIHBzIHBhcGVydyBwYXBlcmggbGV2 ZWwxICAgIFwKCQkJICAgICAgdXB3IGZ1bGxzY3JlZW4gY21kIHEgdiBoIGhlbHApIi8gICAgICAg ICAgICAgICAgXAoJCQluLy16L3g6Jzx6b29tICgtNSAuLiArNSkgb3IgInBhZ2UiIG9yICJ3aWR0 aCI+Jy8gICAgICBcCgkJCW4vLWcveDonPGdlb21ldHJ5PicvIG4vLXJlbW90ZS94Oic8bmFtZT4n LyAgICAgICAgICAgIFwKCQkJbi8tcmdiL3g6JzxudW1iZXI+Jy8gbi8tcGFwZXJjb2xvci94Oic8 Y29sb3I+Jy8gICAgICAgXAoJCQluLy17dDFsaWIsZnJlZXR5cGV9L3g6Jzxmb250X3R5cGU+Jy8g ICAgICAgICAgICAgICAgICBcCgkJCW4vLXBzL3g6JzxQU19maWxlPicvIG4vLXBhcGVydy94Oic8 d2lkdGg+Jy8gICAgICAgICAgIFwKCQkJbi8tcGFwZXJoL3g6JzxoZWlnaHQ+Jy8gbi8tdXB3L3g6 JzxwYXNzd29yZD4nLyAgICAgICAgXAoJCQluLy0vZjoqLntwZGYsUERGfS8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCgkJCU4vLXt6LGcscmVtb3RlLHJnYixwYXBlcmNvbG9y LHQxbGliLGZyZWV0eXBlLHBzLHBhcGVydyxwYXBlcmgsdXB3fS9mOioue3BkZixQREZ9LyBcCgkJ CU4vLS94Oic8cGFnZT4nLyBwLzEvZjoqLntwZGYsUERGfS8gcC8yL3g6JzxwYWdlPicvCgogICAg IyB0aGVzZSBjb25mb3JtIHRvIHRoZSBsYXRlc3QgR05VIHZlcnNpb25zIGF2YWlsYWJsZSBhdCBw cmVzcyB0aW1lIC4uLgogICAgIyB1cGRhdGVzIGJ5IEpvaG4gR290dHMgPGpnb3R0c0Blbmdpbi51 bWljaC5lZHU+CiAgICBpZiAoLVggZW1hY3MpIHRoZW4KICAgICAgIyBUVyBub3RlOiAgaWYgeW91 ciB2ZXJzaW9uIG9mIEdOVSBFbWFjcyBzdXBwb3J0cyB0aGUgIi0tdmVyc2lvbiIgb3B0aW9uLAog ICAgICAjICAgICAgICAgICB1bmNvbW1lbnQgdGhpcyBsaW5lIGFuZCBjb21tZW50IHRoZSBuZXh0 IHRvIGF1dG9tYXRpY2FsbHkKICAgICAgIyAgICAgICAgICAgZGV0ZWN0IHRoZSB2ZXJzaW9uLCBl bHNlIHJlcGxhY2UgIjIxLjIiIHdpdGggeW91ciB2ZXJzaW9uLgogICAgICAjc2V0IF9lbWFjc192 ZXI9YGVtYWNzIC0tdmVyc2lvbiB8IHNlZCAtZSAncyVHTlUgRW1hY3MgJSUnIC1lIHEgfCBjdXQg LWQgLiAtZjEtMmAKICAgICAgc2V0IF9lbWFjc192ZXI9MjEuMgogICAgICBzZXQgX2VtYWNzX2Rp cj1gd2hpY2ggZW1hY3MgfCBzZWQgcyUvYmluL2VtYWNzJSVgIAogICAgICBjb21wbGV0ZSBlbWFj cwljLy0tLyIoYmF0Y2ggdGVybWluYWwgZGlzcGxheSBuby13aW5kb3dzIG5vLWluaXQtZmlsZSBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyIGRlYnVnLWluaXQgdW5pYnl0ZSBt dWx0aWJ5dGUgdmVyc2lvbiBoZWxwIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v LXNpdGUtZmlsZSBmdW5jYWxsIGxvYWQgZXZhbCBpbnNlcnQga2lsbCkiLyBcCiAgICAgICAgICAg ICAgICAgICAgICAgIGMvLS8iKHQgZCBudyBxIHUgZiBsIC0pIi8gYy8rL3g6JzxsaW5lX251bWJl cj4nLyBcCgkJCW4vey10LC0tdGVybWluYWx9L3g6Jzx0ZXJtaW5hbD4nLyBuL3stZCwtLWRpc3Bs YXl9L3g6JzxkaXNwbGF5PicvIFwKCSAgICAgICAgICAgICAgICBuL3stdSwtLXVzZXJ9L3UvIG4v ey1mLC0tZnVuY2FsbH0veDonPGxpc3BfZnVuY3Rpb24+Jy8gXAoJCQluQHstbCwtLWxvYWR9QEY6 JF9lbWFjc19kaXIvc2hhcmUvZW1hY3MvJF9lbWFjc192ZXIvbGlzcEAgXAoJCQluLy0tZXZhbC94 Oic8ZXhwcmVzc2lvbj4nLyBuLy0taW5zZXJ0L2YvIG4vKi9mOl4qW1wjfl0vCiAgICAgIHVuc2V0 IF9lbWFjc192ZXIgX2VtYWNzX2RpcgogICAgZW5kaWYKCiAgICAjIGlmIHlvdXIgInpjYXQiIGlz IHRoZSBHTlUgdmVyc2lvbiwgY2hhbmdlICJnemNhdCIgYmVsb3cgdG8ganVzdCAiemNhdCIKICAg IGNvbXBsZXRlIGd6Y2F0CWMvLS0vIihmb3JjZSBoZWxwIGxpY2Vuc2UgcXVpZXQgdmVyc2lvbiki LyBcCgkJCWMvLS8iKGYgaCBMIHEgViAtKSIvIG4vKi9mOioue2d6LFoseix6aXB9LwogICAgY29t cGxldGUgZ3ppcAljLy0tLyIoc3Rkb3V0IHRvLXN0ZG91dCBkZWNvbXByZXNzIHVuY29tcHJlc3Mg XAoJCQlmb3JjZSBoZWxwIGxpc3QgbGljZW5zZSBuby1uYW1lIHF1aWV0IHJlY3Vyc2UgXAoJCQlz dWZmaXggdGVzdCB2ZXJib3NlIHZlcnNpb24gZmFzdCBiZXN0KSIvIFwKCQkJYy8tLyIoYyBkIGYg aCBsIEwgbiBxIHIgUyB0IHYgViAxIDIgMyA0IDUgNiA3IDggOSAtKSIvXAoJCQluL3stUywtLXN1 ZmZpeH0veDonPGZpbGVfbmFtZV9zdWZmaXg+Jy8gXAoJCQluL3stZCwtLXtkZSx1bn1jb21wcmVz c30vZjoqLntneixaLHosemlwLHRheix0Z3p9LyBcCgkJCU4vey1kLC0te2RlLHVufWNvbXByZXNz fS9mOioue2d6LFoseix6aXAsdGF6LHRnen0vIFwKCQkJbi8qL2Y6Xioue2d6LFoseix6aXAsdGF6 LHRnen0vCiAgICBjb21wbGV0ZSB7Z3VuemlwLHVuZ3ppcH0gYy8tLS8iKHN0ZG91dCB0by1zdGRv dXQgZm9yY2UgaGVscCBsaXN0IGxpY2Vuc2UgXAoJCQluby1uYW1lIHF1aWV0IHJlY3Vyc2Ugc3Vm Zml4IHRlc3QgdmVyYm9zZSB2ZXJzaW9uKSIvIFwKCQkJYy8tLyIoYyBmIGggbCBMIG4gcSByIFMg dCB2IFYgLSkiLyBcCgkJCW4vey1TLC0tc3VmZml4fS94Oic8ZmlsZV9uYW1lX3N1ZmZpeD4nLyBc CgkJCW4vKi9mOioue2d6LFoseix6aXAsdGF6LHRnen0vCiAgICBjb21wbGV0ZSB6Z3JlcAljLy0q QS94Oic8I19saW5lc19hZnRlcj4nLyBjLy0qQi94Oic8I19saW5lc19iZWZvcmU+Jy9cCgkJCWMv LS8iKEEgYiBCIGMgQyBlIGYgaCBpIGwgbiBzIHYgViB3IHgpIi8gXAoJCQlwLzEveDonPGxpbWl0 ZWRfcmVndWxhcl9leHByZXNzaW9uPicvIE4vLSplL2YvIFwKCQkJbi8tKmUveDonPGxpbWl0ZWRf cmVndWxhcl9leHByZXNzaW9uPicvIG4vLSpmL2YvIG4vKi9mLwogICAgY29tcGxldGUgemVncmVw CWMvLSpBL3g6JzwjX2xpbmVzX2FmdGVyPicvIGMvLSpCL3g6JzwjX2xpbmVzX2JlZm9yZT4nL1wK CQkJYy8tLyIoQSBiIEIgYyBDIGUgZiBoIGkgbCBuIHMgdiBWIHcgeCkiLyBcCgkJCXAvMS94Oic8 ZnVsbF9yZWd1bGFyX2V4cHJlc3Npb24+Jy8gTi8tKmUvZi8gXAoJCQluLy0qZS94Oic8ZnVsbF9y ZWd1bGFyX2V4cHJlc3Npb24+Jy8gbi8tKmYvZi8gbi8qL2YvCiAgICBjb21wbGV0ZSB6ZmdyZXAJ Yy8tKkEveDonPCNfbGluZXNfYWZ0ZXI+Jy8gYy8tKkIveDonPCNfbGluZXNfYmVmb3JlPicvXAoJ CQljLy0vIihBIGIgQiBjIEMgZSBmIGggaSBsIG4gcyB2IFYgdyB4KSIvIFwKCQkJcC8xL3g6Jzxm aXhlZF9zdHJpbmc+Jy8gTi8tKmUvZi8gXAoJCQluLy0qZS94Oic8Zml4ZWRfc3RyaW5nPicvIG4v LSpmL2YvIG4vKi9mLwogICAgY29tcGxldGUgem5ldwljLy0vIihmIHQgdiA5IFAgSykiLyBuLyov ZjoqLlovCiAgICBjb21wbGV0ZSB6bW9yZQluLyovZjoqLntneixaLHosemlwfS8KICAgIGNvbXBs ZXRlIHpmaWxlCW4vKi9mOioue2d6LFoseix6aXAsdGF6LHRnen0vCiAgICBjb21wbGV0ZSB6dG91 Y2gJbi8qL2Y6Ki57Z3osWix6LHppcCx0YXosdGd6fS8KICAgIGNvbXBsZXRlIHpmb3JjZQluLyov ZjpeKi57Z3osdGd6fS8KCiAgICBjb21wbGV0ZSBncmVwCWMvLSpBL3g6JzwjX2xpbmVzX2FmdGVy PicvIGMvLSpCL3g6JzwjX2xpbmVzX2JlZm9yZT4nL1wKCQkJYy8tLS8iKGV4dGVuZGVkLXJlZ2V4 cCBmaXhlZC1yZWdleHAgYmFzaWMtcmVnZXhwIFwKCQkJcmVnZXhwIGZpbGUgaWdub3JlLWNhc2Ug d29yZC1yZWdleHAgbGluZS1yZWdleHAgXAoJCQluby1tZXNzYWdlcyByZXZlcnQtbWF0Y2ggdmVy c2lvbiBoZWxwIGJ5dGUtb2Zmc2V0IFwKCQkJbGluZS1udW1iZXIgd2l0aC1maWxlbmFtZSBuby1m aWxlbmFtZSBxdWlldCBzaWxlbnQgXAoJCQl0ZXh0IGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZSBmaWxl cy13aXRob3V0LW1hdGNoIFwKCQkJZmlsZXMtd2l0aC1tYXRjaGVzIGNvdW50IGJlZm9yZS1jb250 ZXh0IGFmdGVyLWNvbnRleHQgXAoJCQljb250ZXh0IGJpbmFyeSB1bml4LWJ5dGUtb2Zmc2V0cyki LyBcCgkJCWMvLS8iKEEgYSBCIGIgQyBjIGQgRSBlIEYgZiBHIEggaCBpIEwgbCBuIHEgciBzIFUg dSBWIFwKCQkJCXYgdyB4KSIvIFwKCQkJcC8xL3g6JzxsaW1pdGVkX3JlZ3VsYXJfZXhwcmVzc2lv bj4nLyBOLy0qZS9mLyBcCgkJCW4vLSplL3g6JzxsaW1pdGVkX3JlZ3VsYXJfZXhwcmVzc2lvbj4n LyBuLy0qZi9mLyBuLyovZi8KICAgIGNvbXBsZXRlIGVncmVwCWMvLSpBL3g6JzwjX2xpbmVzX2Fm dGVyPicvIGMvLSpCL3g6JzwjX2xpbmVzX2JlZm9yZT4nL1wKCQkJYy8tLS8iKGV4dGVuZGVkLXJl Z2V4cCBmaXhlZC1yZWdleHAgYmFzaWMtcmVnZXhwIFwKCQkJcmVnZXhwIGZpbGUgaWdub3JlLWNh c2Ugd29yZC1yZWdleHAgbGluZS1yZWdleHAgXAoJCQluby1tZXNzYWdlcyByZXZlcnQtbWF0Y2gg dmVyc2lvbiBoZWxwIGJ5dGUtb2Zmc2V0IFwKCQkJbGluZS1udW1iZXIgd2l0aC1maWxlbmFtZSBu by1maWxlbmFtZSBxdWlldCBzaWxlbnQgXAoJCQl0ZXh0IGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZSBm aWxlcy13aXRob3V0LW1hdGNoIFwKCQkJZmlsZXMtd2l0aC1tYXRjaGVzIGNvdW50IGJlZm9yZS1j b250ZXh0IGFmdGVyLWNvbnRleHQgXAoJCQljb250ZXh0IGJpbmFyeSB1bml4LWJ5dGUtb2Zmc2V0 cykiLyBcCgkJCWMvLS8iKEEgYSBCIGIgQyBjIGQgRSBlIEYgZiBHIEggaCBpIEwgbCBuIHEgciBz IFUgdSBWIFwKCQkJCXYgdyB4KSIvIFwKCQkJcC8xL3g6JzxmdWxsX3JlZ3VsYXJfZXhwcmVzc2lv bj4nLyBOLy0qZS9mLyBcCgkJCW4vLSplL3g6JzxmdWxsX3JlZ3VsYXJfZXhwcmVzc2lvbj4nLyBu Ly0qZi9mLyBuLyovZi8KICAgIGNvbXBsZXRlIGZncmVwCWMvLSpBL3g6JzwjX2xpbmVzX2FmdGVy PicvIGMvLSpCL3g6JzwjX2xpbmVzX2JlZm9yZT4nL1wKCQkJYy8tLS8iKGV4dGVuZGVkLXJlZ2V4 cCBmaXhlZC1yZWdleHAgYmFzaWMtcmVnZXhwIFwKCQkJcmVnZXhwIGZpbGUgaWdub3JlLWNhc2Ug d29yZC1yZWdleHAgbGluZS1yZWdleHAgXAoJCQluby1tZXNzYWdlcyByZXZlcnQtbWF0Y2ggdmVy c2lvbiBoZWxwIGJ5dGUtb2Zmc2V0IFwKCQkJbGluZS1udW1iZXIgd2l0aC1maWxlbmFtZSBuby1m aWxlbmFtZSBxdWlldCBzaWxlbnQgXAoJCQl0ZXh0IGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZSBmaWxl cy13aXRob3V0LW1hdGNoIFwKCQkJZmlsZXMtd2l0aC1tYXRjaGVzIGNvdW50IGJlZm9yZS1jb250 ZXh0IGFmdGVyLWNvbnRleHQgXAoJCQljb250ZXh0IGJpbmFyeSB1bml4LWJ5dGUtb2Zmc2V0cyki LyBcCgkJCWMvLS8iKEEgYSBCIGIgQyBjIGQgRSBlIEYgZiBHIEggaCBpIEwgbCBuIHEgciBzIFUg dSBWIFwKCQkJCXYgdyB4KSIvIFwKCQkJcC8xL3g6JzxmaXhlZF9zdHJpbmc+Jy8gTi8tKmUvZi8g XAoJCQluLy0qZS94Oic8Zml4ZWRfc3RyaW5nPicvIG4vLSpmL2YvIG4vKi9mLwoKICAgIGNvbXBs ZXRlIHNlZAljLy0tLyIocXVpZXQgc2lsZW50IHZlcnNpb24gaGVscCBleHByZXNzaW9uIGZpbGUp Ii8gICBcCgkJCWMvLS8iKG4gViBlIGYgLSkiLyBuL3stZSwtLWV4cHJlc3Npb259L3g6JzxzY3Jp cHQ+Jy8gIFwKCQkJbi97LWYsLS1maWxlfS9mOiouc2VkLyBOLy17ZSxmLC17ZmlsZSxleHByZXNz aW9ufX0vZi8gXAoJCQluLy0veDonPHNjcmlwdD4nLyBOLy0vZi8gcC8xL3g6JzxzY3JpcHQ+Jy8g cC8yL2YvCgogICAgY29tcGxldGUgdXNlcnMJYy8tLS8iKGhlbHAgdmVyc2lvbikiLyBwLzEveDon PGFjY291bnRpbmdfZmlsZT4nLwogICAgY29tcGxldGUgd2hvCWMvLS0vIihoZWFkaW5nIGlkbGUg Y291bnQgbWVzZyBtZXNzYWdlIHdyaXRhYmxlIGhlbHAgXAogICAgCQkJdmVyc2lvbikiLyBjLy0v IihIIGkgbSBxIHMgVCB3IHUgLSkiLyBcCgkJCXAvMS94Oic8YWNjb3VudGluZ19maWxlPicvIG4v YW0vIihpKSIvIG4vYXJlLyIoeW91KSIvCgogICAgY29tcGxldGUgY2hvd24JYy8tLS8iKGNoYW5n ZXMgZGVyZWZlcmVuY2Ugbm8tZGVyZWZlcmVuY2Ugc2lsZW50IFwKICAgIAkJCXF1aWV0IHJlZmVy ZW5jZSByZWN1cnNpdmUgdmVyYm9zZSBoZWxwIHZlcnNpb24pIi8gXAoJCQljLy0vIihjIGYgaCBS IHYgLSkiLyBDQFsuL1wkfl1AZkAgYy8qWy46XS9nLyBcCgkJCW4vLS91LzogcC8xL3UvOiBuLyov Zi8KICAgIGNvbXBsZXRlIGNoZ3JwCWMvLS0vIihjaGFuZ2VzIG5vLWRlcmVmZXJlbmNlIHNpbGVu dCBxdWlldCByZWZlcmVuY2UgXAogICAgCQkJcmVjdXJzaXZlIHZlcmJvc2UgaGVscCB2ZXJzaW9u KSIvIFwKCQkJYy8tLyIoYyBmIGggUiB2IC0pIi8gbi8tL2cvIHAvMS9nLyBuLyovZi8KICAgIGNv bXBsZXRlIGNobW9kCWMvLS0vIihjaGFuZ2VzIHNpbGVudCBxdWlldCB2ZXJib3NlIHJlZmVyZW5j ZSBcCiAgICAJCQlyZWN1cnNpdmUgaGVscCB2ZXJzaW9uKSIvIGMvLS8iKGMgZiBSIHYpIi8KICAg IGNvbXBsZXRlIGRmCQljLy0tLyIoYWxsIGJsb2NrLXNpemUgaHVtYW4tcmVhZGFibGUgc2kgaW5v ZGVzIFwKCQkJa2lsb2J5dGVzIGxvY2FsIG1lZ2FieXRlcyBuby1zeW5jIHBvcnRhYmlsaXR5IHN5 bmMgXAoJCQl0eXBlIHByaW50LXR5cGUgZXhjbHVkZS10eXBlIGhlbHAgdmVyc2lvbikiLyBcCgkJ CWMvLS8iKGEgSCBoIGkgayBsIG0gUCBUIHQgdiB4KSIvCiAgICBjb21wbGV0ZSBkdQkJYy8tLS8i KGFsbCBibG9jay1zaXplIGJ5dGVzIHRvdGFsIGRlcmVmZXJlbmNlLWFyZ3MgXAogICAgCQkJaHVt YW4tcmVhZGFibGUgc2kga2lsb2J5dGVzIGNvdW50LWxpbmtzIGRlcmVmZXJlbmNlIFwKCQkJbWVn YWJ5dGVzIHNlcGFyYXRlLWRpcnMgc3VtbWFyaXplIG9uZS1maWxlLXN5c3RlbSBcCgkJCWV4Y2x1 ZGUtZnJvbSBleGNsdWRlIG1heC1kZXB0aCBoZWxwIHZlcnNpb24iLyBcCgkJCWMvLS8iKGEgYiBj IEQgSCBoIGsgTCBsIG0gUyBzIFggeCkiLwoKICAgIGNvbXBsZXRlIGNhdAljLy0tLyIobnVtYmVy LW5vbmJsYW5rIG51bWJlciBzcXVlZXplLWJsYW5rIHNob3ctYWxsIFwKCQkJc2hvdy1ub25wcmlu dGluZyBzaG93LWVuZHMgc2hvdy10YWJzIGhlbHAgdmVyc2lvbikiLyBcCgkJCWMvLS8iKEEgYiBF IGUgbiBzIFQgdCB1IHYgLSkiLyBuLyovZi8KICAgIGNvbXBsZXRlIG12CQljLy0tLyIoYmFja3Vw IGZvcmNlIGludGVyYWN0aXZlIHVwZGF0ZSB2ZXJib3NlIHN1ZmZpeCBcCgkJCXZlcnNpb24tY29u dHJvbCBoZWxwIHZlcnNpb24pIi8gXAoJCQljLy0vIihiIGYgaSBTIHUgViB2IC0pIi8gXAoJCQlu L3stUywtLXN1ZmZpeH0veDonPHN1ZmZpeD4nLyBcCgkJCW4vey1WLC0tdmVyc2lvbi1jb250cm9s fS8iKHQgbnVtYmVyZWQgbmlsIGV4aXN0aW5nIFwKCQkJbmV2ZXIgc2ltcGxlKSIvIG4vLS9mLyBO Ly0vZC8gcC8xL2YvIHAvMi9kLyBuLyovZi8KICAgIGNvbXBsZXRlIGNwCQljLy0tLyIoYXJjaGl2 ZSBiYWNrdXAgbm8tZGVyZWZlcmVuY2UgZm9yY2UgXAogICAgCQkJaW50ZXJhY3RpdmUgbGluayBw cmVzZXJ2ZSBwYXJlbnRzIHNwYXJzZSByZWN1cnNpdmUgXAoJCQlzeW1ib2xpYy1saW5rIHN1ZmZp eCB1cGRhdGUgdmVyYm9zZSB2ZXJzaW9uLWNvbnRyb2wgXAoJCQlvbmUtZmlsZS1zeXN0ZW0gaGVs cCB2ZXJzaW9uKSIvIFwKCQkJYy8tLyIoYSBiIGQgZiBpIGwgUCBwIFIgciBTIHMgdSBWIHYgeCAt KSIvIFwKCQkJbi8tKnIvZC8gbi97LVMsLS1zdWZmaXh9L3g6JzxzdWZmaXg+Jy8gXAoJCQluL3st ViwtLXZlcnNpb24tY29udHJvbH0vIih0IG51bWJlcmVkIG5pbCBleGlzdGluZyBcCgkJCW5ldmVy IHNpbXBsZSkiLyBuLy0vZi8gTi8tL2QvIHAvMS9mLyBwLzIvZC8gbi8qL2YvCiAgICBjb21wbGV0 ZSBsbgkJYy8tLS8iKGJhY2t1cCBkaXJlY3RvcnkgZm9yY2Ugbm8tZGVyZWZlcmVuY2UgXAogICAg CQkJaW50ZXJhY3RpdmUgc3ltYm9saWMgc3VmZml4IHZlcmJvc2UgdmVyc2lvbi1jb250cm9sIFwK CQkJaGVscCB2ZXJzaW9uKSIvIFwKCQkJYy8tLyIoYiBkIEYgZiBpIG4gUyBzIFYgdiAtKSIvIFwK CQkJbi97LVMsLS1zdWZmaXh9L3g6JzxzdWZmaXg+Jy8gXAoJCQluL3stViwtLXZlcnNpb24tY29u dHJvbH0vIih0IG51bWJlcmVkIG5pbCBleGlzdGluZyBcCgkJCW5ldmVyIHNpbXBsZSkiLyBuLy0v Zi8gTi8tL3g6JzxsaW5rX25hbWU+Jy8gXAoJCQlwLzEvZi8gcC8yL3g6JzxsaW5rX25hbWU+Jy8K ICAgIGNvbXBsZXRlIHRvdWNoCWMvLS0vIihkYXRlIHJlZmVyZW5jZSB0aW1lIGhlbHAgdmVyc2lv bikiLyBcCgkJCWMvLS8iKGEgYyBkIGYgbSByIHQgLSkiLyBcCgkJCW4vey1kLC0tZGF0ZX0veDon PGRhdGVfc3RyaW5nPicvIFwKCQkJYy8tLXRpbWUvIihhY2Nlc3MgYXRpbWUgbXRpbWUgbW9kaWZ5 IHVzZSkiLyBcCgkJCW4vey1yLC0tZmlsZX0vZi8gbi8tdC94Oic8dGltZV9zdGFtcD4nLyBuLyov Zi8KICAgIGNvbXBsZXRlIG1rZGlyCWMvLS0vIihtb2RlIHBhcmVudHMgdmVyYm9zZSBoZWxwIHZl cnNpb24pIi8gXAogICAgCQkJYy8tLyIocCBtIC0pIi8gXAoJCQluL3stbSwtLW1vZGV9L3g6Jzxt b2RlPicvIG4vKi9kLwogICAgY29tcGxldGUgcm1kaXIJYy8tLS8iKGlnbm9yZS1mYWlsLW9uLW5v bi1lbXB0eSBwYXJlbnRzIHZlcmJvc2UgaGVscCBcCiAgICAJCQl2ZXJzaW9uKSIvIGMvLS8iKHAg LSkiLyBuLyovZC8KCiAgICBjb21wbGV0ZSB0YXIJYy8tW0FjcnVdKi8iKGIgQiBDIGYgRiBnIEcg aCBpIGwgTCBNIE4gbyBQIFwKCQkJUiBTIFQgdiBWIHcgVyBYIHogWikiLyBcCgkJCWMvLVtkdHhd Ki8iKCBCIEMgZiBGIGcgRyBpIGsgSyBtIE0gTyBwIFAgXAoJCQlSIHMgUyBUIHYgdyB4IFggeiBa KSIvIFwKCQkJcC8xLyIoQSBjIGQgciB0IHUgeCAtQSAtYyAtZCAtciAtdCAtdSAteCBcCgkJCS0t Y2F0ZW5hdGUgLS1jb25jYXRlbmF0ZSAtLWNyZWF0ZSAtLWRpZmYgLS1jb21wYXJlIFwKCQkJLS1k ZWxldGUgLS1hcHBlbmQgLS1saXN0IC0tdXBkYXRlIC0tZXh0cmFjdCAtLWdldCBcCgkJCS0taGVs cCAtLXZlcnNpb24pIi8gXAoJCQljLy0tLyIoY2F0ZW5hdGUgY29uY2F0ZW5hdGUgY3JlYXRlIGRp ZmYgY29tcGFyZSBcCgkJCWRlbGV0ZSBhcHBlbmQgbGlzdCB1cGRhdGUgZXh0cmFjdCBnZXQgYXRp bWUtcHJlc2VydmUgXAoJCQlibG9jay1zaXplIHJlYWQtZnVsbC1ibG9ja3MgZGlyZWN0b3J5IGNo ZWNrcG9pbnQgZmlsZSBcCgkJCWZvcmNlLWxvY2FsIGluZm8tc2NyaXB0IG5ldy12b2x1bWUtc2Ny aXB0IGluY3JlbWVudGFsIFwKCQkJbGlzdGVkLWluY3JlbWVudGFsIGRlcmVmZXJlbmNlIGlnbm9y ZS16ZXJvcyBcCgkJCWlnbm9yZS1mYWlsZWQtcmVhZCBrZWVwLW9sZC1maWxlcyBzdGFydGluZy1m aWxlIFwKCQkJb25lLWZpbGUtc3lzdGVtIHRhcGUtbGVuZ3RoIG1vZGlmaWNhdGlvbi10aW1lIFwK CQkJbXVsdGktdm9sdW1lIGFmdGVyLWRhdGUgbmV3ZXIgb2xkLWFyY2hpdmUgcG9ydGFiaWxpdHkg XAoJCQl0by1zdGRvdXQgc2FtZS1wZXJtaXNzaW9ucyBwcmVzZXJ2ZS1wZXJtaXNzaW9ucyBcCgkJ CWFic29sdXRlLXBhdGhzIHByZXNlcnZlIHJlY29yZC1udW1iZXIgcmVtb3ZlLWZpbGVzIFwKCQkJ c2FtZS1vcmRlciBwcmVzZXJ2ZS1vcmRlciBzYW1lLW93bmVyIHNwYXJzZSBcCgkJCWZpbGVzLWZy b20gbnVsbCB0b3RhbHMgdmVyYm9zZSBsYWJlbCB2ZXJzaW9uIFwKCQkJaW50ZXJhY3RpdmUgY29u ZmlybWF0aW9uIHZlcmlmeSBleGNsdWRlIGV4Y2x1ZGUtZnJvbSBcCgkJCWNvbXByZXNzIHVuY29t cHJlc3MgZ3ppcCB1bmd6aXAgdXNlLWNvbXByZXNzLXByb2dyYW0gXAoJCQlibG9jay1jb21wcmVz cyBoZWxwIHZlcnNpb24pIi8gXAoJCQljLy0vIihiIEIgQyBmIEYgZyBHIGggaSBrIEsgbCBMIG0g TSBOIG8gTyBwIFAgUiBzIFMgXAoJCQlUIHYgViB3IFcgWCB6IFogMCAxIDIgMyA0IDUgNiA3IC0p Ii8gXAoJCQlDQFsvZGV2XUBmQCBcCgkJCW4vLWMqZi94Oic8bmV3X3Rhcl9maWxlLCBkZXZpY2Vf ZmlsZSwgb3IgIi0iPicvIFwKCQkJbi97LVtBZHJ0dXhdKmYsLS1maWxlfS9mOioue3Rhcix0YXos dGd6fS8gXAoJCQlOL3steCpmLC0tZmlsZX0vJ2B0YXIgLXRmICQ6LTFgJy8gXAoJCQluLy0tdXNl LWNvbXByZXNzLXByb2dyYW0vYy8gXAoJCQluL3stYiwtLWJsb2NrLXNpemV9L3g6JzxibG9ja19z aXplPicvIFwKCQkJbi97LVYsLS1sYWJlbH0veDonPHZvbHVtZV9sYWJlbD4nLyBcCgkJCW4vey1O LC0te2FmdGVyLWRhdGUsbmV3ZXJ9fS94Oic8ZGF0ZT4nLyBcCgkJCW4vey1MLC0tdGFwZS1sZW5n dGh9L3g6Jzx0YXBlX2xlbmd0aF9pbl9rQj4nLyBcCgkJCW4vey1DLC0tZGlyZWN0b3J5fS9kLyBc CgkJCU4vey1DLC0tZGlyZWN0b3J5fS8nYFxscyAkOi0xYCcvIFwKCQkJbi8tWzAtN10vIihsIG0g aCkiLwoKICAgICMgU1ZSNCBmaWxlc3lzdGVtcwogICAgY29tcGxldGUgIG1vdW50CWMvLS8iKGEg RiBtIG8gTyBwIHIgdiBWKSIvIG4vLXAvbi8gbi8tdi9uLyBcCiAgICAJCQluLy1vL3g6JzxGU1R5 cGVfb3B0aW9ucz4nLyBcCiAgICAJCQluQC1GQCdgXGxzIC0xIC91c3IvbGliL2ZzYCdAIFwKICAg IAkJCW5AKkAnYGdyZXAgLXYgIl4jIiAvZXRjL3Zmc3RhYiB8IHRyIC1zICIgIiAiCSAiIHwgY3V0 IC1mIDNgJ0AKICAgIGNvbXBsZXRlIHVtb3VudAljLy0vIihhIG8gVikiLyBuLy1vL3g6JzxGU1R5 cGVfb3B0aW9ucz4nLyBcCiAgICAJCQluLyovJ2Btb3VudCB8IGN1dCAtZCAiICIgLWYgMWAnLwog ICAgY29tcGxldGUgIG1vdW50YWxsCWMvLS8iKEYgbCByKSIvIG5ALUZAJ2BcbHMgLTEgL3Vzci9s aWIvZnNgJ0AKICAgIGNvbXBsZXRlIHVtb3VudGFsbAljLy0vIihGIGggayBsIHIgcykiLyBuQC1G QCdgXGxzIC0xIC91c3IvbGliL2ZzYCdAIFwKICAgIAkJCW4vLWgvJ2BkZiAtayB8IGN1dCAtcyAt ZCAiOiIgLWYgMSB8IHNvcnQgLXVgJy8KICAgICMgQlNEIDQuMyBmaWxlc3lzdGVtcwogICAgI2Nv bXBsZXRlICBtb3VudAljLy0vIihhIHIgdCB2KSIvIG4vLXQvIig0LjIgbmZzKSIvIFwKICAgICMJ CQluQCpAJ2BncmVwIC12ICJeIyIgL2V0Yy9mc3RhYiB8IHRyIC1zICIgIiAiCSIgfCBjdXQgLWYg MmAnQAogICAgI2NvbXBsZXRlIHVtb3VudAljLy0vIihhIGggdCB2KSIvIG4vLXQvIig0LjIgbmZz KSIvIFwKICAgICMJCQluLy1oLydgZGYgfCBjdXQgLXMgLWQgIjoiIC1mIDEgfCBzb3J0IC11YCcv IFwKICAgICMJCQluLyovJ2Btb3VudCB8IGN1dCAtZCAiICIgLWYgM2AnLwogICAgIyBCU0QgNC4y IGZpbGVzeXN0ZW1zCiAgICAjY29tcGxldGUgIG1vdW50CWMvLS8iKGEgciB0IHYpIi8gbi8tdC8i KHVmcyBuZnMpIi8gXAogICAgIwkJCW5AKkAnYGN1dCAtZCAiOiIgLWYgMiAvZXRjL2ZzdGFiYCdA CiAgICAjY29tcGxldGUgdW1vdW50CWMvLS8iKGEgaCB0IHYpIi8gbi8tdC8iKHVmcyBuZnMpIi8g XAogICAgIwkJCW4vLWgvJ2BkZiB8IGN1dCAtcyAtZCAiOiIgLWYgMSB8IHNvcnQgLXVgJy8gXAog ICAgIwkJCW4vKi8nYG1vdW50IHwgY3V0IC1kICIgIiAtZiAzYCcvCgogICAgIyB0aGVzZSBkZWFs IHdpdGggTklTIChmb3JtZXJseSBZUCk7IGlmIGl0J3Mgbm90IHJ1bm5pbmcgeW91IGRvbid0IG5l ZWQgJ2VtCiAgICBpZiAoLVggZG9tYWlubmFtZSkgdGhlbgogICAgICBzZXQgX2RvbWFpbiA9ICJg ZG9tYWlubmFtZWAiCiAgICAgIHNldCBfeXBkaXIgID0gL3Zhci95cAkjIGRpcmVjdG9yeSB3aGVy ZSBOSVMgKFlQKSBtYXBzIGFyZSBrZXB0CiAgICAgIGlmICgiJF9kb21haW4iICE9ICIiICYmICIk X2RvbWFpbiIgIT0gIm5vbmFtZSIpIHRoZW4KICAgICAgICBjb21wbGV0ZSBkb21haW5uYW1lIHBA MUBEOiRfeXBkaXJAIiAiIG5AKkBuQAogICAgICAgIGNvbXBsZXRlIHlwY2F0CSAgICBjQC1AIihk IGsgdCB4KSJAIG5ALXhAbkAgbkAtZEBEOiRfeXBkaXJAIiAiIFwKCSAgICAgICAgICAgICAgICAg ICAgTkAtZEBcYFxcbHNcIC0xXCAkX3lwZGlyL1wkOi0xXCBcfFwgc2VkXCAtblwgcyVcXFxcLnBh Z1xcXCQlJXBcYEAgXAoJICAgICAgICAgICAgICAgICAgICBuQCpAXGBcXGxzXCAtMVwgJF95cGRp ci8kX2RvbWFpblwgXHxcIHNlZFwgLW5cIHMlXFxcXC5wYWdcXFwkJSVwXGBACiAgICAgICAgY29t cGxldGUgeXBtYXRjaCAgICBjQC1AIihkIGsgdCB4KSJAIG5ALXhAbkAgbkAtZEBEOiRfeXBkaXJA IiAiIFwKCSAgICAgICAgICAgICAgICAgICAgTkAtZEB4Oic8a2V5IC4uLj4nQCBuQC1AeDonPGtl eSAuLi4+J0AgcEAxQHg6JzxrZXkgLi4uPidAIFwKCSAgICAgICAgICAgICAgICAgICAgbkAqQFxg XFxsc1wgLTFcICRfeXBkaXIvJF9kb21haW5cIFx8XCBzZWRcIC1uXCBzJVxcXFwucGFnXFxcJCUl cFxgQAogICAgICAgIGNvbXBsZXRlIHlwd2hpY2ggICAgY0AtQCIoZCBtIHQgeCBWMSBWMikiQCBu QC14QG5AIG5ALWRARDokX3lwZGlyQCIgIiBcCgkgICAgICAgICAgICAgICAgICAgIG5ALW1AXGBc XGxzXCAtMVwgJF95cGRpci8kX2RvbWFpblwgXHxcIHNlZFwgLW5cIHMlXFxcXC5wYWdcXFwkJSVw XGBAIFwKCQkJICAgIE5ALW1AbkAgbkAqQFwkaG9zdHNACiAgICAgIGVuZGlmCiAgICAgIHVuc2V0 IF9kb21haW4gX3lwZGlyCiAgICBlbmRpZgoKICAgIGNvbXBsZXRlIG1ha2UgXAoJJ24vLWYvZi8n IFwKICAgICAgCSdjLyo9L2YvJyBcCgknbkAqQGBjYXQgLXMgR05VbWFrZWZpbGUgTWFrZWZpbGUg bWFrZWZpbGUgfCYgc2VkIC1uIC1lICIvTm8gc3VjaCBmaWxlL2QiIC1lICIvXlteICAgICAjXS4q Oi9zLzouKi8vcCJgQCcKCiAgICBpZiAoIC1mIC9ldGMvcHJpbnRjYXAgKSB0aGVuCglzZXQgcHJp bnRlcnM9KGBzZWQgLW4gLWUgIi9eW14gICAgICNdLio6L3MvOi4qLy9wIiAvZXRjL3ByaW50Y2Fw YCkKCgljb21wbGV0ZSBscHIgICAgJ2MvLVAvJHByaW50ZXJzLycKCWNvbXBsZXRlIGxwcSAgICAn Yy8tUC8kcHJpbnRlcnMvJwoJY29tcGxldGUgbHBybSAgICdjLy1QLyRwcmludGVycy8nCgljb21w bGV0ZSBscHF1b3RhICAgICAgICAncC8xLygtUXBybG9nZ2VyKS8nICdjLy1QLyRwcmludGVycy8n Cgljb21wbGV0ZSBkdmlwcyAgJ2MvLVAvJHByaW50ZXJzLycgJ24vLW8vZjoqLntwcyxQU30vJyAn bi8qL2Y6Ki5kdmkvJwoJY29tcGxldGUgZHZpbGoJJ3AvKi9mOiouZHZpLycKICAgIGVuZGlmCgog ICAgdW5zZXQgbm9nbG9iCiAgICB1bnNldCBfY29tcGxldGUKZW5kaWYKCmVuZDoKCW9uaW50cgoK Cgo= ------=_Part_56_2360383.1097060558435--