Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2DD8EC002D for ; Thu, 5 Jan 2023 11:04:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id E949C40C12 for ; Thu, 5 Jan 2023 11:04:13 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org E949C40C12 X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -1.901 X-Spam-Level: X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Si79wQaxVf_S for ; Thu, 5 Jan 2023 11:04:11 +0000 (UTC) X-Greylist: delayed 00:16:46 by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 4F6FA40C11 Received: from 9.mo552.mail-out.ovh.net (9.mo552.mail-out.ovh.net [87.98.180.222]) by smtp2.osuosl.org (Postfix) with ESMTPS id 4F6FA40C11 for ; Thu, 5 Jan 2023 11:04:11 +0000 (UTC) Received: from mxplan6.mail.ovh.net (unknown [10.108.16.132]) by mo552.mail-out.ovh.net (Postfix) with ESMTPS id F0E282D603; Thu, 5 Jan 2023 10:47:01 +0000 (UTC) Received: from peersm.com (37.59.142.101) by DAG6EX2.mxp6.local (172.16.2.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 5 Jan 2023 11:47:00 +0100 Authentication-Results: garm.ovh; auth=pass (GARM-101G00407c64c40-65f0-491e-97b1-aef1374331ea, 249258D5D99FFA02E0C72F60DBFB92960B9062CC) smtp.auth=aymeric@peersm.com X-OVh-ClientIp: 92.184.112.7 To: Vincenzo , Bitcoin Protocol Discussion References: From: Aymeric Vitte Message-ID: <53fcbcb8-8ad7-3742-1682-ee12e8c449d8@peersm.com> Date: Thu, 5 Jan 2023 11:46:59 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------867D655932F3AAECD6E81A69" X-Originating-IP: [37.59.142.101] X-ClientProxiedBy: DAG1EX2.mxp6.local (172.16.2.2) To DAG6EX2.mxp6.local (172.16.2.52) X-Ovh-Tracer-GUID: 93c7d00a-dcd5-4ecf-95d0-92346ec9de2c X-Ovh-Tracer-Id: 12296234359856128922 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvhedrjeekgddulecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhepuffvfhfhkffffgggjggtihesmhdtreertdefjeenucfhrhhomhepteihmhgvrhhitgcugghithhtvgcuoegrhihmvghrihgtsehpvggvrhhsmhdrtghomheqnecuggftrfgrthhtvghrnhepfeekfeetffdvffelffelgeeltdegjeehtefffeeffeeuffelkeehgeevudfffffhnecuffhomhgrihhnpehgihhthhhusgdrtghomhdplhhinhhkvgguihhnrdgtohhmpdhpvggvrhhsmhdrtghomhenucfkphepuddvjedrtddrtddruddpfeejrdehledrudegvddruddtudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepoegrhihmvghrihgtsehpvggvrhhsmhdrtghomheqpdhnsggprhgtphhtthhopedupdhrtghpthhtohepsghithgtohhinhdquggvvheslhhishhtshdrlhhinhhugihfohhunhgurghtihhonhdrohhrghdpvhhinhgtvghniihophgrlhgriiiiohguvghvsehgmhgrihhlrdgtohhmpdfovfetjfhoshhtpehmohehhedvpdhmohguvgepshhmthhpohhuth X-Mailman-Approved-At: Thu, 05 Jan 2023 11:07:57 +0000 Subject: Re: [bitcoin-dev] A Bitcoin NFT System X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jan 2023 11:04:14 -0000 --------------867D655932F3AAECD6E81A69 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Hi Vincent, Indeed the gist was recorded (by mistake) as secret but the link is supposed to work anyway, I have made it public, thanks for confirming that it's working now, just in case I am attaching the text file Regards Aymeric Le 04/01/2023 à 21:59, Vincenzo a écrit : > On Thu Dec 29, 2022 at 5:49 PM CET, Aymeric Vitte via bitcoin-dev wrote: >> I am not a fan of NFTs as currently designed and used, centralized, >> insecure, duplicable, virtual, stealable, not signed, expensive >> >> But if you consider that a NFT is anything that you can buy or store, as >> something real, or electronic, or whatever, in the real world, web or >> metaverse, then it becomes interesting >> >> NFTs are mostly used on Ethereum, and a "mess" to describe this stuff is >> a weak word >> >> Then I wrote: "A Bitcoin NFT system": >> https://gist.github.com/Ayms/01dbfebf219965054b4a3beed1bfeba7 , >> decentralized, secure, not expensive >> > The link is gone or just private. > > Cheers! > > Vincent. -- Sophia-Antipolis, France LinkedIn: https://fr.linkedin.com/in/aymeric-vitte-05855b26 GitHub : https://www.github.com/Ayms Move your coins by yourself (browser version): https://peersm.com/wallet Bitcoin transactions made simple: https://github.com/Ayms/bitcoin-transactions torrent-live: https://github.com/Ayms/torrent-live node-Tor : https://www.github.com/Ayms/node-Tor Zcash wallets made simple: https://github.com/Ayms/zcash-wallets Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets Anti-spies and private torrents, dynamic blocklist: http://torrent-live.peersm.com Peersm : http://www.peersm.com --------------867D655932F3AAECD6E81A69 Content-Type: text/plain; charset="UTF-8"; name="nft.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nft.txt" IyBBIEJpdGNvaW4gTkZUIHN5c3RlbQ0KDQojIyBJbnRyb2R1Y3Rpb24NCg0KTkZUIGlzIGFu b3RoZXIgYmFyYmFyb3VzIG5hbWUgaW52ZW50ZWQgYnkgdGhlIGNyeXB0byBmb2xrcyBtZWFu aW5nIHF1YXNpIG5vdGhpbmcsIGJ5IE5GVCBpbiB0aGlzIHByb3Bvc2FsIHdlIHdpbGwgcmVm ZXIgdG8gd2hhdGV2ZXIgY2FuIGJlIHNvbGQgb3IgcmVmZXJlbmNlZCBmcm9tIHRoZSByZWFs IHdvcmxkLCB3ZWIgYW5kIG1ldGF2ZXJzZSB1c2luZyBhIGJsb2NrY2hhaW4gc3lzdGVtDQoN ClRoZSBlYXN5IHdheSBzb2x1dGlvbiBpcyB1c3VhbGx5IHRvIHVzZSBFdGhlcmV1bSwgY3Jl YXRlIHNvbWUgTkZUIHRva2VucyB2aWEgRVJDLTcyMS8xMTU1IGNvbnRyYWN0cyBhbmQvb3Ig dXNlIHNvbWUgbWFya2V0cGxhY2VzIHN1Y2ggYXMgT3BlbnNlYSB3aGljaCBhbHdheXMgbGVh ZCB0byBhIGNlbnRyYWxpemVkIGFuZCBpbnNlY3VyZSBzeXN0ZW0gdGhhdCBjYW4gY29sbGFw c2UgYXQgYW55IG1vbWVudCwgYW5kIHdoaWNoIGlzIHN0aWxsIGNvbXBsaWNhdGUgc2luY2Ug bm9ib2R5IHVuZGVyc3RhbmQgd2hhdCBpcyBiZWhpbmQsIGZvcnR1bmF0ZWx5IChvciBub3Qp IE1ldGFNYXNrIHdpbGwgZG8gdGhlIGpvYiBmb3IgeW91IHdpdGhvdXQgeW91IHVuZGVyc3Rh bmRpbmcgd2hhdCB5b3UgYXJlIGRvaW5nLCBsaWtlIHdyYXBwZWQgRVRIDQoNClRoaXMgaXMg ZXhwbGFpbmVkIGhlcmU6IFtCaXRjb2luLCBFdGhlcmV1bSwgc21hcnQgY29udHJhY3RzLCBs aWdodG5pbmcsIHNpZGVjaGFpbnMsIERlZmksIERBcHBzLCBORlRzLCBERVgsIERBTyBleHBs YWluZWQgLSBDZW50cmFsaXphdGlvbiB2cyBEZWNlbnRyYWxpemF0aW9uXShodHRwczovL2dp c3QuZ2l0aHViLmNvbS9BeW1zLzA0YjMwODRhMTRlZTIwMmU3MDdiM2ZhZWM1N2VkMjZlKQ0K DQpFc3BlY2lhbGx5OiBbdG9rZW5zIGFuZCBzaWRlY2hhaW5zXShodHRwczovL2dpc3QuZ2l0 aHViLmNvbS9BeW1zLzA0YjMwODRhMTRlZTIwMmU3MDdiM2ZhZWM1N2VkMjZlI2V4YW1wbGUt Mi10b2tlbnMtYW5kLXNpZGVjaGFpbnMpDQoNCkFuZDogW09wZW5zZWFdKGh0dHBzOi8vZ2lz dC5naXRodWIuY29tL0F5bXMvMDRiMzA4NGExNGVlMjAyZTcwN2IzZmFlYzU3ZWQyNmUjZXhh bXBsZS02LW9wZW5zZWEpDQoNCiMjIFB1cnBvc2UNCg0KVGhlIHB1cnBvc2Ugb2YgdGhpcyBw cm9wb3NhbCBpcyB0byBwcm9wb3NlIDxiPmEgc2ltcGxlIE5GVCBzeXN0ZW0gYmFzZWQgb24g dGhlIEJpdGNvaW4gYmxvY2tjaGFpbjwvYj4sIGFzc3VtaW5nIHRoYXQgdGhlIG1haW4gcHVy cG9zZSBvZiBhIE5GVCBpcyB0byBiZSBzb2xkL2JvdWdodCwgYnV0IG5vdCBvbmx5LCBpdCBj YW4gYmUgc29tZXRoaW5nIHRoYXQgeW91IGtlZXAgZm9yIHlvdXJzZWxmIHByb3ZpbmcgeW91 ciBvd25lcnNoaXAgb24gdGhlIGJsb2NrY2hhaW4sIHRoZSBhZHZhbnRhZ2VzIGNvbXBhcmVk IHRvIHVzaW5nIEV0aGVyZXVtIG9yIGFueSBibG9ja2NoYWluL3NpZGVjaGFpbiBvbiBib3Ro IG5ldHdvcmtzIChvciBvdGhlcnMpIHdpbGwgYmUgZXhwbGFpbmVkIGJlbG93DQoNCiMjIFJl ZmVyZW5jaW5nIGEgTkZUDQoNCkEgTkZUIGNhbiBiZSBhIHBoeXNpY2FsIGdvb2QsIGFuIGVs ZWN0cm9uaWMgaXRlbSAoc3VjaCBhcyBpbWFnZSksIHNvbWV0aGluZyB2aXJ0dWFsIG9yIG5v dCwgaW4gZmFjdCBhbnl0aGluZw0KDQpJZiB3ZSB0YWtlIGEgZG9jdW1lbnQgb3IgYW4gaW1h Z2UsIGEgc2ltcGxlIHJlZmVyZW5jZSB0byB0aGUgTkZUIGlzIGl0cyBoYXNoIChTSEEtMjU2 KSwgYnV0IGl0IGlzIG5vdCByZWFsbHkgcmVsZXZhbnQgc2luY2UgaXQncyBlYXN5IGZvciBh IHRoaWVmIHRvIHNsaWdodGx5IG1vZGlmeSB0aGUgZG9jdW1lbnQgb3IgaW1hZ2Ugd2hpY2gg d2lsbCBsZWFkIHRvIGEgZGlmZmVyZW50IGhhc2gNCg0KTm93IGluIHdoYXQgZm9sbG93cyB3 ZSB3aWxsIGFsbG9jYXRlIGEgaGFzaCB0byByZWZlcmVuY2UgYW55IE5GVA0KDQojIyBUaGUg ZmluYWwgaGFzaCByZWZlcmVuY2UgdG8gYSBORlQNCg0KRGVwZW5kaW5nIG9uIHRoZSBjb25k aXRpb25zIHRoZSBoYXNoIGNhbiBiZSBrbm93biAocHVibGljIG1hcmtldHBsYWNlIGZvciBl eGFtcGxlKSBvciB1bmtub3duIChvbmx5IHRoZSBidXllciBhbmQgdGhlIHNlbGxlciBrbm93 IGl0IG9yIHRoZSBvd25lcikNCg0KVGhlcmVyZm9yZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBO RlQgd2lsbCBiZSB0aGUgU0hBLTI1NiBvZiBpdHMgaGFzaCwgd2hpY2ggdGhlbiBoaWRlcyB0 aGUgb3JpZ2luYWwgaGFzaCwgdGhpcyBpcyBvZiBjb3Vyc2UgdXNlbGVzcyBpZiB0aGUgaGFz aCBpcyBrbm93biBidXQgbGV0J3Mga2VlcCB0aGUgc2FtZSBjb252ZW50aW9uLCBjYWxsZWQg fHJlZmVyZW5jZXwgaW4gd2hhdCBmb2xsb3dzDQoNCiMjIE1pbnRpbmcgYSBORlQgb24gQml0 Y29pbg0KDQoiTWludGluZyBhIE5GVCIganVzdCBtZWFucyB0byByZWNvcmQgeW91ciBvd25l cnNoaXAgb2YgdGhlIE5GVCBpbiB0aGUgYmxvY2tjaGFpbg0KDQpUbyBtaW50IGEgTkZUIHRo YXQgeW91IG93biBvbiBCaXRjb2luLCB5b3UgY2FuIGRvIGEgdHJhbnNhY3Rpb24gd2hvc2Ug b3V0cHV0IHdpbGwgYmU6DQoNCiAgICBGcm9tIGFkZHJlc3MgQSAodGhlIHNlbGxlcik6DQog ICAgIE9QX1JFVFVSTiB8cmVmZXJlbmNlfA0KICAgICBEVVNUIChBIG9yIEIpIG9yIHJlZnVu ZCB0byBhbiBhZGRyZXNzIG9mIHlvdXJzZWxmIChBIG9yIEIpDQoNClNpbmNlIHRoZSB0cmFu c2FjdGlvbiBpcyBzaWduZWQgYnkgQSwgd2Uga25vdyB0aGF0IEEgaXMgdGhlIG93bmVyIG9m IHRoZSByZWZlcmVuY2UsIGJ1dCBub3RlIHRoYXQgZnJvbSB0aGlzIHBvaW50IHRoZSBwdWJs aWMga2V5IG9mIEEgaXMga25vd24sIHRoZXJlZm9yZSBpZiB0aGUgcHVycG9zZSBpcyB0byBz dG9yZSBhIGxvbmcgdGVybSBORlQgdGhlbiB1c2UgYW5vdGhlciBhZGRyZXNzIEIgb2YgeW91 cnNlbGYgKGJlY2F1c2UgaW4gc29tZSB0aW1lIGl0IHdpbGwgYmUgZWFzaWVyIHRvIGNyYWNr IGEgYml0Y29pbiBhZGRyZXNzIGZvciB3aGljaCB3ZSBrbm93IHRoZSBwdWJsaWMga2V5IHJh dGhlciB0aGFuIG9uZSB0aGF0IGhvbGRzIHNvbWUgYml0Y29pbnMgYnV0IGhhcyBub3QgYmVl biBzcGVudCwgc28ga25vd2luZyBvbmx5IHRoZSBoYXNoIG9mIHRoaXMgYWRkcmVzcykNCg0K QW4gT1BfUkVUVVJOIG91dHB1dCBpcyBqdXN0IHNvbWV0aGluZyB3aGVyZSB5b3UgY2FuIHN0 b3JlIHNvbWUgZGF0YSwgbGltaXRlZCB0byA1MTJCDQoNCkEgbG90IG9mIHZhcmlhdGlvbnMg YXJlIHBvc3NpYmxlIGluIHRoaXMgYXJ0aWNsZSwgZm9yIGV4YW1wbGUgeW91IGNhbiBkZWNp ZGUgdG8gYWxsb2NhdGUgb25lIEEgYWRkcmVzcyBwZXIgTkZULCBpdCBqdXN0IGRlcGVuZHMg b24gdGhlIHVzZSBjYXNlcw0KDQpGb3IgYWxsIHRoZSB0cmFuc2FjdGlvbnMgbWVudGlvbmVk IGluIHRoaXMgYXJ0aWNsZSwgb3B0LWluIGZvciBSZXBsYWNlIEJ5IEZlZSBtdXN0IG5vdCBi ZSB1c2VkIFtSZXBsYWNlIEJ5IEZlZV0oaHR0cHM6Ly9iaXRjb2luLmZyL3JlcGxhY2UtYnkt ZmVlLXJiZi8pDQoNCkl0IHdvdWxkIGJlIHBvc3NpYmxlIG5vdCB0byB1c2UgT1BfUkVUVVJO IGFuZCBmb3IgZXhhbXBsZSBzdG9yZSB0aGUgfHJlZmVyZW5jZXwgaW4gc2NyaXB0U2lnLCB0 aGVuIGNvbnN0cnVjdCBhbiBhZGRyZXNzIChzY3JpcHRQdWJLZXkpIHRoYXQgd2lsbCBkcm9w IGl0IHdoaWxlIGV4ZWN1dGluZywgYnV0IHRoaXMgd291bGQgYmUgYSBub24gc3RhbmRhcmQg dHJhbnNhY3Rpb24sIHNvIHlvdSBzaG91ZCByZWx5IG9uIHNvbWUgbWluZXJzIHRvIG1pbmUg aXQsIHdpdGhvdXQgc3RlYWxpbmcgeW91ciBORlQsIHNpbmNlIGl0J3MgZWFzeSBmb3IgYSBt aW5lciB0byBjaGFuZ2UgdGhlIHRyYW5zYWN0aW9uIGFuZCBtaW50IHRoZSBORlQgZm9yIGhp bXNlbGYNCg0KIyMgTWludGluZyBzZXZlcmFsIE5GVHMgaW4gb25lIHRyYW5zYWN0aW9uDQoN CllvdSBjYW4gZG8gdGhlIHZlcnkgc2FtZSB1c2luZyB0aGUgQ2hhaW5wb2ludCBwcm90b2Nv bCwgd2hpY2ggaXMgdG8gYnVpbGQgYSBNZXJrbGUgdHJlZSBmcm9tIHxyZWZlcmVuY2UxfCB8 cmVmZXJlbmNlMnwuLi4ufHJlZmVyZW5jZSBOfCAoZm9yIHdoaWNoIHdlIHJlY2FsbCB3aWxs IGJlIHRoZSBTSEEtMjU2IG9mIHRoZSBvcmlnaW5hbCBORlRzIGhhc2gpLCBhbmQgcmVwbGFj ZSB0aGUgcm9vdCBvZiB0aGlzIHRyZWUgaW4gfHJlZmVyZW5jZXwgYWJvdmUNCg0KSG93IENo YWlucG9pbnQgd29yayBpcyB3ZWxsIGRlc2NyaWJlZCBoZXJlOiBbQ2hhaW5wb2ludCBQcm9v Zl0oaHR0cHM6Ly9naXRodWIuY29tL2NoYWlucG9pbnQvd2hpdGVwYXBlci9pc3N1ZXMvNSNp c3N1ZWNvbW1lbnQtMzA0NDUyMTA3KSwgYmFzaWNhbGx5IHdoaWxlIG1ha2luZyBhIENoYWlu cG9pbnQgdHJlZSB5b3UgZ2V0IGEgcHJvb2YgdG8gcmVidWlsZCBpdCBmcm9tIGFueSB8cmVm ZXJlbmNlfCAodGhhdCB5b3UgbXVzdCBrbm93KSwgd2hpY2ggaXMganVzdCB0aGUgb3RoZXIg aGFzaGVzIHRoYXQgeW91IG5lZWQgdG8ga25vdyB0byByZWFjaCB0aGUgcm9vdCANCg0KSW4g dGhhdCBjYXNlIG9ubHkgdGhlIG93bmVyIG9mIHRoZSBtdWx0aXBsZSBORlRzIGtub3dzIHRo ZSBwcm9vZnMgYW5kL29yIHRoZSB8cmVmZXJlbmNlc3wsIHVubGVzcyBoZSBkZWNpZGVzIHRv IHJlbGVhc2UgdGhlbSwgd2hpY2ggaGUgc2hvdWxkIGRvIGFzIGRlc2NyaWJlZCBpbiB0aGUg bmV4dCBwYXJhZ3JhcGggKGJlY2F1c2UgdGhlIGhhc2hlcyBhbmQgcHJvb2ZzIG11c3QgYmUg a25vd24gdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIE5GVCB0cmFuc2ZlcnMpDQoNCkluIHdo YXQgZm9sbG93cyB3ZSB3aWxsIG1ha2UgcmVmZXJlbmNlIHRvIGEgQ2hhaW5wb2ludCB8cmVm ZXJlbmNlfA0KDQojIyBBdm9pZGluZyBkb3VibGUgbWludGluZw0KDQpEb3VibGUgbWludGlu ZyBvZiBORlRzIGlzIHF1aXRlIHRyaXZpYWwsIGFzIGZhciBhcyB3ZSBrbm93IHRoZXJlIGFy ZSB6ZXJvIHByb3RlY3Rpb25zIGFnYWluc3QgdGhpcyBpbiBleGlzdGluZyBzeXN0ZW1zIChF dGhlcmV1bSBhbmQgb3RoZXJzKSwgdGhlIHByaW5jaXBsZSBpcyBzaW1wbGU6IHlvdSBtaW50 IHNldmVyYWwgdGltZSB0aGUgc2FtZSBORlQgYW5kIHBvc3NpYmx5IHNlbGwgaXQgc2V2ZXJh bCB0aW1lIG9yIGdldCByb2JiZWQgKHRoZSB0aGllZiBkb2VzIHRyYW5zYWN0aW9ucyB1c2lu ZyB0aGUgfHJlZmVyZW5jZXwgdGhhdCBoZSBzYXcpLCBiZWNhdXNlIGl0J3MgZWFzeSBmb3Ig YSBtYWxpY2lvdXMgcGVyc29uIHRvIGRvIHRoZSB2ZXJ5IHNhbWUgdHJhbnNhY3Rpb24gdGhh dCB5b3UgZGlkIGFuZCBwcmV0ZW5kIHRoZSBvd25lcnNoaXAgb2YgdGhlIE5GVCwgb3IgaXQn cyBlYXN5IGZvciB5b3UgdG8gbWludCBpdCB0byBkaWZmZXJlbnQgbWFya2V0cGxhY2VzIG9y IG1pbnQgaXQgc2V2ZXJhbCB0aW1lLCBhbmQgdGhlbiBzZWxsIGl0IHNldmVyYWwgdGltZQ0K DQpUbyBpbGx1c3RyYXRlIHRoaXMsIHJlYWQgW1NvbHZpbmcgdGhlIGRvdWJsZSBtaW50aW5n IHByb2JsZW1dKGh0dHBzOi8vbWVkaXVtLmNvbS9nZWVrY3VsdHVyZS9zb2x2aW5nLXRoZS1u ZnQtZG91YmxlLW1pbnRpbmctcHJvYmxlbS13aXRoLWNvbXB1dGVyLXZpc2lvbi1jNTdiYmJi NDY1MmQpDQoNClVuZm9ydHVuYXRlbHkgdGhlIGFib3ZlIGFydGljbGUganVzdCByZWZlcnMg dG8gaW1hZ2VzIGFuZCB0aGUgc29sdXRpb24gZG9lcyBub3Qgd29yayBhdCBhbGwgYXQgdGhl IGVuZCwgYmVjYXVzZSBhc3NvY2lhdGluZyB0aGUgcGljdHVyZSB0byB0aGUgY2FtZXJhIG9y IHdoYXRldmVyIHRoYXQgdG9vayBpdCBkb2VzIG5vdCB3b3JrIGFuZCBpcyBlYXN5IHRvIGZh a2UNCg0KQ29taW5nIGJhY2sgdG8gb3VyIGJpdGNvaW4gY2FzZSwgaXQgc2VlbXMgc2ltcGxl IHRvIGVsZWN0IHlvdSBhcyB0aGUgcmVhbCBvd25lciBvZiB0aGUgTkZUIHNpbmNlIHlvdSBt YWRlIHRoZSB0cmFuc2FjdGlvbiBmaXJzdCwgdGhlbiBiYXNlZCBvbiB0aGUgdGltZXN0YW1w IHlvdSBhcmUgZGVmaW5pdGVseSB0aGUgb3duZXIsIGJ1dCBubw0KDQpUaGUgdGhpZWYgY291 bGQgaW50ZXJjZXB0IHlvdXIgdHJhbnNhY3Rpb24sIGRlY2lkZSBub3QgdG8gYnJvYWRjYXN0 IGl0IGZ1cnRoZXIsIHJlcGxhY2UgaXQgYnkgYSB0cmFuc2FjdGlvbiBtaW50aW5nIHlvdXIg TkZUIGZvciBoaW1zZWxmLCB3aXRoIGhpZ2hlciBuZXR3b3JrIGZlZXMgZm9yIGV4YW1wbGUg YW5kIG1vcmUgZGlyZWN0IGFjY2VzcyB0byBtaW5lcnMsIHRoZW4gdGhpcyB0cmFuc2FjdGlv biB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgYW5kIHRoZSB0aGllZiB3b3VsZCBoYXZlIHN0b2xl biB5b3VyIE5GVA0KDQpZb3UgY2FuJ3QgZG8gYW55dGhpbmcgYWdhaW5zdCB0aGlzIHdpdGhv dXQgdXNpbmcgYSB0aGlyZCBwYXJ0eSB0byByZWNvcmQgdGhhdCB5b3UgaGFkIHRoZSBrbm93 bGVkZ2Ugb2YgdGhlIHxyZWZlcmVuY2V8IGZpcnN0DQoNClRoZSBzYW1lIHByb2JsZW1hdGlj IGV4aXN0cyBmb3IgZXhhbXBsZSBmb3IganMgY29kZSBsb2FkaW5nLCBzZWUgW0JpdGNvaW4t dHJhbnNhY3Rpb25zIHdhbGxldC90b29sc10oaHR0cHM6Ly9wZWVyc20uY29tL3dhbGxldCks IGhlcmUgb3VyIGdpdGh1YiBhY2NvdW50IGlzIHVzZWQgdG8gY2hlY2sgdGhlIGNvZGUNCg0K VGhlbiB0aGUgdmVyeSBzYW1lIGlzIHByb3Bvc2VkIGhlcmUsIHByZWZlcmFibHkgdXNpbmcg dGhlIFtXYXliYWNrIE1hY2hpbmVdKGh0dHBzOi8vYXJjaGl2ZS5vcmcvd2ViLykgdG8gc3Rv cmUgfHJlZmVyZW5jZXwgKHRoYXQgeW91IGFyZSB0aGUgb25seSBvbmUgdG8ga25vdyBhdCB0 aGlzIHN0YWdlKSBzaWduZWQgYnkgQSBiZWZvcmUgbWludGluZyB0aGUgTkZULCB0aGVuIGZv ciBzdXJlIHlvdSBhcmUgdGhlIG93bmVyIG9mIHRoZSBORlQgYmVjYXVzZSB5b3UgYXJlIHRo ZSBmaXJzdCBvbmUgdG8gaGF2ZSByZWZlcmVuY2VkIHxyZWZlcmVuY2V8IGFuZCBzaWduZWQg aXQgd2l0aCB5b3VyIGFkZHJlc3MgKG5vdGUgYWdhaW4gdGhhdCBhcyBzb29uIGFzIHlvdSBz aWduIHNvbWV0aGluZyB0aGUgcHVibGljIGtleSBvZiBBIGlzIGtub3duKQ0KDQpZb3UgY2Fu IHVzZSBvdGhlciBzeXN0ZW1zLCBnaXRodWIsIGV2ZW4gVHdpdHRlcg0KDQpXaGF0IGlmIGFs bCBvZiB0aG9zZSBzeXN0ZW1zIGRpc2FwcGVhciBhbmQgSSBjYW4ndCBwcm92ZSBhbnl0aGlu ZyBhbnkgbG9uZ2VyPyBXZWxsLCB0aGVuIHByb2JhYmx5IGludGVybmV0IGhhcyBkaXNhcHBl YXJlZCB0b28NCg0KQW55d2F5IGxpa2UgdGhlIFdlYlJUQyBwZWVyIGludHJvZHVjdGlvbiBt ZWNoYW5pc20geW91IGNhbiBkbyB0aGlzIGJ5IGFueSBtZWFucyB5b3UgbGlrZSwgeW91ciBv d24gd2Vic2l0ZSwgZXZlbiBhIGxldHRlciwgeW91IGp1c3QgbmVlZCB0byBwcm92ZSB0aGF0 IEEgaGFkIHRoZSBrbm93bGVkZ2Ugb2YgdGhlIGRvdWJsZSBoYXNoIGZpcnN0DQoNCk5vdyB0 aGUgZG91YmxlIG1pbnRpbmcgY2FzZSBpcyBzdXBwb3NlZCB0byBiZSBtYXJnaW5hbCwgZXhj ZXB0IGlmIHlvdSBhcmUgYSB0aGllZiB5b3Vyc2VsZg0KDQojIyBUcmFuc2ZlcnJpbmcgYSBO RlQgZm9yIGZyZWUNCg0KRm9yIGEgZ2lmdCBvciB3aGF0ZXZlciBvdGhlciByZWFzb24sIEEg Y2FuIGRlY2lkZSB0byB0cmFuc2ZlciBhIE5GVCBmb3IgZnJlZSB0byBDLCB0aGUgdHJhbnNh Y3Rpb24gd2lsbCBiZToNCg0KICAgIEZyb20gYWRkcmVzcyBBICh0aGUgc2VsbGVyKToNCiAg ICAgT1BfUkVUVVJOIHxzb21lIGNvZGV8fHJlZmVyZW5jZXwNCiAgICAgRFVTVCAoQykgYW5k IHJlZnVuZCB0byBhbiBhZGRyZXNzIG9mIHlvdXJzZWxmIChBIG9yIEIpDQoJCQ0KfHNvbWUg Y29kZXwgaXMganVzdCB1c2VkIHRvIG1ha2UgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gYSBt aW50aW5nIG9wZXJhdGlvbg0KDQpBIHNlbmRzIHRoZSBvcmlnaW5hbCBoYXNoIHRvIEMNCgkJ DQojIyBDIEJ1eWluZyBhIE5GVCBmcm9tIEENCg0KVGhlIHRyYW5zYWN0aW9uIHdpbGwgYmU6 DQoNCiAgICBGcm9tIGFkZHJlc3MgQyAodGhlIGJ1eWVyKToNCiAgICAgT1BfUkVUVVJOIHxw cmljZXx8c29tZSBjb2RlfHxyZWZlcmVuY2V8LSBzaWduZWQgYnkgQQ0KICAgICB8cHJpY2V8 IHRvIEEgYW5kIHJlZnVuZCB0byBDIG9yIG90aGVyIEMgYWRkcmVzcw0KCQkNCk9uY2UgQSBh bmQgQyBoYXZlIGFncmVlZCBvbiBhIHByaWNlIHRoZW4gQSBzaG91bGQgc2VuZCB0byBDIHRo ZSB8cHJpY2V8fHNvbWUgY29kZXx8cmVmZXJlbmNlfCBzaWduZWQgYnkgaGltLCB3aGljaCBw cm92ZXMgdGhhdCB0aGUgZGVhbCBpcyBhY2NlcHRlZA0KDQpJZiBDIHRyaWVzIHRvIGNoZWF0 IGFuZCBkb2VzIGJyb2FkY2FzdCBhIHRyYW5zYWN0aW9uIHRoYXQgZG9lcyBub3QgbWF0Y2gg dGhlIGFncmVlZCBwcmljZSAoc2luY2UgQyBjYW5ub3QgZmFrZSB0aGUgc2lnbmF0dXJlIG9m IEEpLCB0aGVuIEMgaXMgc3RpbGwgbm90IHRoZSBvd25lciBvZiB0aGUgTkZUIGFuZCBoYXMg bG9zdCBpdHMgYml0Y29pbiwgaWYgYSB0aGllZiBpbnRlcmNlcHRzIHRoZSB0cmFuc2FjdGlv biBhbmQgZG9lcyBhbm90aGVyIG9uZSBmb3IgaGltc2VsZiwgdGhhdCdzIHRoZSBzYW1lLCBz aW5jZSBoZSBpcyBub3Qgd2lsbGluZyB0byBwYXkgZm9yIHRoZSBwcmljZQ0KDQpJZiBBIHJl Y2VpdmVzIHRoZSBjb3JyZWN0IGFtb3VudCwgdGhlbiBoZSB3aWxsIHNlbmQgdG8gQyB0aGUg b3JpZ2luYWwgaGFzaCBvZiB8cmVmZXJlbmNlfCwgdGhlIHNhbWUgcHJpbmNpcGxlIGFwcGxp ZXMgZm9yIGFsbCBmb2xsb3dpbmcgdHJhbnNhY3Rpb25zDQoNCldlIGNhbiBub3QgcmVhbGx5 IGVuZm9yY2UgdGhpcywgQSBjb3VsZCBub3Qgc2VuZCB0aGUgaGFzaCwgYnV0IGZvciB3aGF0 IHB1cnBvc2U/IFRoaXMgcmVwcmVzZW50cyB0aGUgc2FtZSB0cnVzdCBtb2RlbCB0aGFuIHdo ZW4geW91IGFyZSBidXlpbmcgc29tZSBnb29kcyAodGhlIGhhc2ggaXMgdGhlIHRpY2tldCks IG5vdyBpbiBub3JtYWwgY29uZGl0aW9ucyB0aGUgb3JpZ2luYWwgaGFzaCBpcyBub3QgcmVh bGx5IG1hbmRhdG9yeQ0KDQpOb3RlIHRoYXQgd2Uga25vdyBmcm9tIG1pbnRpbmcvc2lnbmlu ZyB0aGUgcHVibGljIGtleSBvZiBBLCB0aGVyZWZvcmUgYW55Ym9keSBjYW4gdmVyaWZ5IHRo ZSBzaWduYXR1cmUgaW4gdGhlIE9QX1JFVFVSTg0KDQpOb3RlIGFnYWluIHRoYXQgdGhlIHNp Z25hdHVyZSBvZiBBIGlzIGVub3VnaCB0byBrbm93IGl0cyBwdWJsaWMga2V5IGFuZCBjaGVj ayB0aGUgc2lnbmF0dXJlLCA8Yj50aGVyZWZvcmUgbWludGluZyBpcyBub3QgbWFuZGF0b3J5 PC9iPiAoZGVwZW5kaW5nIG9uIHRoZSB1c2UgY2FzZXMgYWdhaW4pDQoNCk5vdGUgYWxzbyB0 aGF0IGluIEV0aGVyZXVtIHN0eWxlLCB0aGF0J3MgdGhlIG90aGVyIHdheSBhcm91bmQsIHdo ZXJlIEEgd291bGQgaW5pdGlhdGUgdGhlIGZpbmFsIHRyYW5zYWN0aW9uIHRvIHRoZSBORlQg Y29udHJhY3QgdGhhdCB3aWxsIHRyYW5zZmVyIHRvIEMNCg0KIyMgQyBzZWxsaW5nIGEgTkZU IHRvIEQNCg0KVGhhdCdzIHRoZSBzYW1lOg0KDQogICAgRnJvbSBhZGRyZXNzIEQgKHRoZSBi dXllcik6DQogICAgIE9QX1JFVFVSTiB8cHJpY2V8fHNvbWUgY29kZXx8cmVmZXJlbmNlfC0g c2lnbmVkIGJ5IEMNCiAgICAgfHByaWNlfCB0byBDIGFuZCByZWZ1bmQgdG8gRCBvciBvdGhl ciBEIGFkZHJlc3MNCgkJDQpDIHNlbmRzIHRoZSBvcmlnaW5hbCBoYXNoIHRvIEQNCg0KIyMg QyBCdXlpbmcgYSBORlQgZnJvbSBBIGZyb20gYSBDaGFpbnBvaW50IHxyZWZlcmVuY2V8DQoN CkEgc2VuZHMgdG8gQyB0aGUgfHByaWNlfHxzb21lIGNvZGV8fHJlZmVyZW5jZXx8Q2hhaW5w b2ludCBwcm9vZnwgc2lnbmVkIGJ5IGhpbSwgQyB0aGVuIGRvIHRoZSBmb2xsb3dpbmcgdHJh bnNhY3Rpb246DQoNCiAgICBGcm9tIGFkZHJlc3MgQyAodGhlIGJ1eWVyKToNCiAgICAgT1Bf UkVUVVJOIHxwcmljZXx8c29tZSBjb2RlfHxyZWZlcmVuY2V8fENoYWlucG9pbnQgcHJvb2Z8 LSBzaWduZWQgYnkgQQ0KICAgICB8cHJpY2V8IHRvIEEgYW5kIHJlZnVuZCB0byBDIG9yIG90 aGVyIEMgYWRkcmVzcw0KCQkNCiMjIEdyb3VwL29yZ2FuaXphdGlvbiBDIG9mIGJ1eWVycw0K DQpDIGlzIHRoZW4gYSBtdWx0aXNpZyBhZGRyZXNzIGZ1bmRlZCBieSB0aGUgZ3JvdXAsIGFu ZCBhcyBiZWZvcmU6DQoNCglGcm9tIGFkZHJlc3MgQyAodGhlIGJ1eWVycyk6DQoJCU9QX1JF VFVSTiB8cHJpY2V8fHNvbWUgY29kZXx8cmVmZXJlbmNlfC0gc2lnbmVkIGJ5IEENCgkJfHBy aWNlfCB0byBBIGFuZCByZWZ1bmQgdG8gQyBvciBvdGhlciBDIGFkZHJlc3MNCg0KU2FtZSBw cmluY2lwbGUgd291bGQgYXBwbHkgZm9yIENoYWlucG9pbnQgfHJlZmVyZW5jZXwNCg0KIyMg QnV0LCBpbiBhbGwgb2YgdGhpcywgd2hhdCBpcyB0aGUgcHVycG9zZSBvZiB0aGUgZG91Ymxl IGhhc2ggZm9yIHxyZWZlcmVuY2V8Pw0KDQpKdXN0IHRvIGhpZGUgKGlmIGFwcGxpY2FibGUp IHRoYXQgdGhlIGhhc2ggaXMgb25seSBrbm93biBieSB0aGUgYnV5ZXIgYW5kIHRoZSBzZWxs ZXIgaWYgdGhlIHRyYW5zYWN0aW9ucyBhcmUgY29ycmVjdCwgdGhlbiBpZiBhbnl0aGluZyB1 bmV4cGVjdGVkIGhhcHBlbnMgdGhleSBjYW4gcHJvdmUgdGhhdCB0aGV5IGFyZSB0aGUgb25s eSBvbmUgdG8ga25vdyB0aGUgb3JpZ2luYWwgaGFzaCBvZiB0aGUgTkZUDQoNCldlIGNhbiB0 YWtlIGhlcmUgdGhlIGV4YW1wbGUgb2YgS2VyaW5nIChsdXh1cnkgZ3JvdXApOiBbS2VyaW5n IE5GVCBzb2x1dGlvbl0oaHR0cHM6Ly93d3cudWx5c3NlLW5hcmRpbi5jb20vemhfZW4vYmxv Y2tjaGFpbi10ZWNobm9sb2d5ICksIHRoaXMgaXMgYSB2YXJpYXRpb24gb2Ygd2hhdCBpcyBw cm9wb3NlZCBoZXJlLCB3aGVuIHlvdSBidXkgYSBsdXh1cnkgcHJvZHVjdCB5b3UgZ2V0IGEg Y2VydGlmaWNhdGUsIHRoZW4geW91IGdvIHRvIHRoZWlyIHdlYnNpdGUsIHVzZSB0aGUgY2Vy dGlmaWNhdGUgaW5mb3JtYXRpb24gKyB5b3VyIG5hbWUgJiBjbywgdGhlbiB5b3UgZ2V0IGEg c2Vjb25kIGNlcnRpZmljYXRlIGFuZCB0aGUgYXNzb2NpYXRlZCBoYXNoLCB0aGUgaGFzaCBp cyB0aGVuIHN0b3JlZCBpbiB0aGUgYml0Y29pbiBibG9ja2NoYWluIGluIGFuIE9QX1JFVFVS TiB1c2luZyB0aGUgQ2hhaW5wb2ludCBwcm90b2NvbCB2aWEgW1dvbGVldF0oaHR0cHM6Ly93 d3cud29sZWV0LmlvL2ZyL2FjY3VlaWwvKSBzZXJ2aWNlDQoNClNvIGhlcmUgeW91IGFyZSB0 aGUgb25seSBvbmUgdG8ga25vdyB0aGUgaGFzaCAod2l0aCBLZXJpbmcpLCB0aGUgcHJvYmxl bSBvZiB0aGlzIHNvbHV0aW9uIGlzIHRoYXQgaXQgaXMgdmVyeSBjZW50cmFsaXplZCBhbmQg eW91IGNhbid0IGNvcnJlbGF0ZSB0aGUgaGFzaCB0byB0aGUgcHJvZHVjdC4gVGhhdCdzIHdo ZXJlIHRoZSBkb3VibGUgaGFzaCBtZXRob2QgY291bGQgYmUgdXNlZCwgeW91IHByaW50IG9u IHRoZSBsdXh1cnkgcHJvZHVjdCB0aGUgZG91YmxlIGhhc2ggKFFSIGNvZGUgb3Igd2hhdGV2 ZXIpIGFuZCBnaXZlIHRoZSBvcmlnaW5hbCBoYXNoIHRvIHRoZSBidXllciwgdGhlbiBpZiB0 aGUgcHJvZHVjdCBpcyBjb3VudGVyZmVpdCAod2l0aCB0aGUgc2FtZSBkb3VibGUgaGFzaCkg b3Igc3RvbGVuIHlvdSBjYW4gZGV0ZWN0IGl0IHNpbmNlIHRoZSBtYWxpY2lvdXMgc2VsbGVy IGRvZXMgbm90IGtub3cgdGhlIG9yaWdpbmFsIGhhc2gNCg0KIyMgQ29zdHMNCg0KQ3VycmVu dGx5IHRoZSBuZXR3b3JrIGZlZXMgYXJlIDYtMTIgc2F0b3NoaXMgcGVyIGJ5dGUsIGFuZCB0 aGUgZHVzdCBsaW1pdCBjYW4gYmUgc2V0IGF0IDU0NiBzYXRvc2hpcw0KDQpJdCdzIG5vdCBw b3NzaWJsZSB0byBnaXZlIGEgcHJlY2lzZSBudW1iZXIgaGVyZSBzaW5jZSB0aGUgdHJhbnNh Y3Rpb25zIGRlcGVuZCBvbiB0aGUgbnVtYmVyIG9mIGlucHV0cyBidXQgYW4gW2VzdGltYXRp b25dKGh0dHBzOi8vd3d3LmJpdHN0YW1wLm5ldC9sZWFybi9ibG9ja2NoYWluL2hvdy1hcmUt YnRjLXRyYW5zYWN0aW9uLWZlZXMtZGV0ZXJtaW5lZC8pIHdvdWxkIGJlIGxlc3MgdGhhbiAx IFVTRCBwZXIgdHJhbnNhY3Rpb24gKHByb2JhYmx5IDAuNSBVU0QpIGFnYWluc3QgNzAgdG8g MTAwIFVTRCBvbiBnYXMgZmVlcyBpbiBFdGhlcmV1bQ0KDQpUaGlzIGlzIGZhciBsZXNzIHRo YW4gRXRoZXJldW0gTkZUIHRva2VucyBzZWUgW01veGllIGV4cGVyaWVuY2VdKGh0dHBzOi8v Z2lzdC5naXRodWIuY29tL0F5bXMvMDRiMzA4NGExNGVlMjAyZTcwN2IzZmFlYzU3ZWQyNmUj ZXhhbXBsZS03LW1veGllcy1leHBlcmllbmNlKQ0KDQojIyBJcyB0aGlzIHN5c3RlbSBjZW50 cmFsaXplZD8NCg0KTm8gdW5saWtlIHdoYXRldmVyIGV4aXN0cyBhYm91dCBzaWRlY2hhaW5z IChleGNlcHQgTGlnaHRuaW5nKSwgRXRoZXJldW0gTkZUcyBvciBEc3R1ZmYsIGl0IGlzIG5v dCwgYmVjYXVzZSB5b3UgZG8gbm90IHJlbHkgb24gYW55IGNlbnRyYWxpemVkIHBsYXRmb3Jt IHRvIHVzZSBpdCAodGhlIHRoaXJkIHBhcnR5IGlzIHRoZSBvbmUgeW91IGNob29zZSBhbmQg aXQgY2FuJ3QgaW50ZXJhY3Qgd2l0aCB0aGUgdHJhbnNhY3Rpb25zKSwgb3IgT3JhY2xlcyB0 aGF0IHdvdWxkIGJlIGludm9sdmVkIGluIHlvdXIgdHJhbnNhY3Rpb25zIGNyZWF0aW9uL2Nv bmZpcm1hdGlvbi90cmFuc2Zlcg0KDQojIyBJcyB0aGlzIHN5c3RlbSBhbm9ueW1vdXM/DQoN Ck5vdCB0b3RhbGx5IGFzIGN1cnJlbnRseSBkZXNpZ25lZCwgbGlrZSBMaWdodG5pbmcgYWdh aW4sIHNpbmNlIGJ1eWVyL3NlbGxlciBtdXN0ICJrbm93IiBlYWNoIG90aGVycywgYnV0IHRo ZXkgY2FuIGRvIGl0IHZpYSBhbm9ueW1vdXMgbWVhbnMgbGlrZSBTaWduYWwsIFByb3Rvbm1h aWwsIFRlbGVncmFtIG9yIG90aGVyIHN0dWZmLCBvciBUb3IsIHRoZSBhZHZpc2UgaXMgdG8g Y3JlYXRlIGEgbmV3IGdvb2Qgb2xkIGdtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcHVycG9zZSBh bmQgdXNlIFBHUCBrZXlzDQoNCkluIGFueSBjYXNlIG90aGVycyBhcm91bmQgZG8gbm90IGtu b3cgd2hhdCBpcyBnb2luZyBvbg0KDQojIyBXaHkgbm90IGEgc3VwZXIgc2lkZWNoYWluIGlu c3RlYWQ/DQoNCllvdSBjYW4gcmVhZCB0aGlzIGNvbmNsdXNpb24gZnJvbSBhIHByZXZpb3Vz IGFydGljbGU6IFtDb25jbHVzaW9uXShodHRwczovL2dpc3QuZ2l0aHViLmNvbS9BeW1zLzA0 YjMwODRhMTRlZTIwMmU3MDdiM2ZhZWM1N2VkMjZlI2NvbmNsdXNpb24pDQoNCldlIGhhdmUg ZGlmZmVyZW50IGV4YW1wbGVzLCBidXQgbGV0J3MgdGFrZSBhIGZldywgQmluYW5jZSBTbWFy dCBDaGFpbiwgc3VwcG9zZWRseSBjb21wYXRpYmxlIHdpdGggRXRoZXJldW0gaXMgYSBtZXNz IChvciBGVFQvRlRYIHRva2VuLCBzZWUgW0NvbGxhcHNlIG9mIEZUWCBhbmQgb3RoZXJzOiB0 aGUgRnhja2luZyBUb2tlbiBUaGVvcnldKA0KaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3Bv c3RzL2F5bWVyaWMtdml0dGUtMDU4NTViMjZfdGhlLWZ4Y2tpbmctdG9rZW4tdGhlb3J5LWFz LWEtY29pbmNpZGVuY2UtYWN0aXZpdHktNjk5NjQ5MzU5ODY1MzMxNzEyMC12Q3BBKSksIGFu ZCBbU3RhY2tzXShodHRwczovL3Byb3Rvcy5jb20vd2hhdC1pcy1zdGFja3MtYW5kLWRvZXMt aXQtcmVhbGx5LXNlcnZlLWFzLWRlZmktZm9yLWJpdGNvaW4vKSBmb3IgQml0Y29pbiBzdXBw b3NlZGx5IGFsbG93aW5nICJzbWFydCBjb250cmFjdHMiIGFuZCBORlQgb24gYml0Y29pbiBp cyB0aGUgc2FtZSwgYm90aCBjZW50cmFsaXplZCwgaW5zZWN1cmUsIG1ha2luZyBpdCBkaWZm aWN1bHQgdG8gc3dhcCB0aGUgdG9rZW5zIGJldHdlZW4gb25lIGNoYWluIHRvIGFub3RoZXIN Cg0KTGV0J3MgaG9wZSB0aGlzIGFydGljbGUgc2hvd3MgaG93IHBvd2VyZnVsbCAoYW5kIGxl c3MgY29zdGx5KSBpcyBiaXRjb2luLCBpZiB3ZSBlbGFib3JhdGUgb24gU3RhY2tzIGl0J3Mg YW5vdGhlciBibG9ja2NoYWluIG9uIHRvcCBvZiBCaXRjb2luLCB0aGV5IHJlZ2lzdGVyIHRo ZSBibG9ja3MgaW5zaWRlIE9QX1JFVFVSTiBpbiBCaXRjb2luIHZpYSBhICJwcm9vZiBvZiB0 cmFuc2ZlciIuIFdoeSBkbyB0aGV5IGRvIHRoaXM/IE5vIGlkZWEgYnV0IHN1cmVseSBiZWNh dXNlIHRoZWlyIGJsb2NrY2hhaW4gaXMgbmVpdGhlciBzZWN1cmVkIG5laXRoZXIgZGVjZW50 cmFsaXplZCwgdGhpcyBpcyBqdXN0IGZsb29kaW5nIHRoZSBCaXRjb2luIG5ldHdvcmsgd2l0 aCB1c2VsZXNzIHRyYW5zYWN0aW9ucyBkdXBsaWNhdGluZyBwcm9vZnMgb24gdHdvIGJsb2Nr Y2hhaW5zDQoNClRoZXJlIGFyZSBtYW55ICJwcm9vZi1vZi13aGF0ZXZlciIgdGhhdCBhcmUg anVzdCBmYWtlIHN0dWZmIChsaWtlIEZpbGVjb2luIHByb29mIG9mIHJlcGxpY2F0aW9uIGh0 dHBzOi8vZ2l0aHViLmNvbS9wcm90b2NvbC9yZXNlYXJjaC9pc3N1ZXMvNCksIHVzZWxlc3Ms IHF1aXRlIGR1YmlvdXMsIGFzIHN0YXRlZCBpbiBvdXIgY29uY2x1c2lvbiBhYm92ZSB0aGUg aW50ZXJtZWRpYXRlIHN0YXRlcyBzaG91ZCBiZSBidXJuZWQgYW5kIG9ubHkgdGhlIGZpbmFs L3JlbGV2YW50IHJlc3VsdCBzdG9yZWQgaW4gQml0Y29pbiwgdGhpcyBpcyB2ZXJ5IGV4YWN0 bHkgd2hhdCBpcyBkb2luZyBMaWdodG5pbmcNCg0KSW4gYW55IGNhc2UsIHdoYXRldmVyIHNp ZGVjaGFpbi9ibG9ja2NoYWluIGlzIHByb3Bvc2VkIGNhbiBvbmx5IGxlYWQgdG8gc29tZXRo aW5nIGZ1bm55LCBiZWNhdXNlIGV2ZW4gdGhlIHdvcmxkd2lkZSBuZXR3b3JrcyBiaXRjb2lu IGFuZCBldGhlcmV1bSBhcmUgc3RpbGwgbm90IGRlY2VudHJhbGl6ZWQgdG9kYXksIGRlc3Bp dGUgb2YgdGhlaXIgYWdlLCBiZWNhdXNlIHNvbWV0aGluZyBsaWtlIGEgZmV3IHRob3VzYW5k cyBub2RlcyBpcyBub3Qgd2hhdCB3ZSBjYW4gY2FsbCBhIGRlY2VudHJhbGl6ZWQgc3lzdGVt LCB0aGVuIHByb3Bvc2luZyBzb21ldGhpbmcgZGVjZW50cmFsaXplZCBvbiB0b3Agb2YgaXQg b3Igbm90IGRvZXMgbm90IGxvb2sgc2VyaW91cywgdGhlIG9ubHkgcmVhbCBkZWNlbnRyYWxp emVkIG5ldHdvcmsgcmVtYWlucyBCaXR0b3JyZW50DQoNClRoaXMgcHJvcG9zYWwgc2VlbXMg dG8gY29udHJhZGljdCBvbmUgb2Ygb3VyIGFydGljbGUgW0hvdyBzdGFibGVjb2lucyByZWFs bHkgd29yayAoVGV0aGVyIGV4YW1wbGUpLCBob3cgdG8gY3JhY2sgdGhlbSBhbmQgd2h5IHlv dSBzaG91bGQgdGFrZSBjYXJlIGlmIHlvdSB1c2UgdGhlbV0oaHR0cHM6Ly93d3cubGlua2Vk aW4uY29tL3B1bHNlL2hvdy1zdGFibGVjb2lucy1yZWFsbHktd29yay10ZXRoZXItZXhhbXBs ZS1jcmFjay10aGVtLWF5bWVyaWMtdml0dGUvKSwgYnV0IG5vIGluIGZhY3Qgc2luY2UgZXZl cnl0aGluZyBpcyBzaWduZWQgaGVyZQ0KDQojIyBMb2NhbCBCaXRjb2luDQoNCldlIHdpbGwg bm90IHRhbGsgaGVyZSBhYm91dCB0aGUgY3JhemluZXNzIG9mIHRoZSBCaXRjb2luIGZvcmtz IHBlcmlvZCwgd2hpY2ggd2UgaGF2ZSBkZXNjcmliZWQgaGVyZTogWyJCaXRjb2luIFRhcnR1 ZmZlIC0gVXNlciBndWlkZTogSG93IHRvIGNyZWF0ZSB5b3VyIGJpdGNvaW4gZm9yayBpbiA1 bW4sIGZvb2wgZXZlcnlib2R5IGFuZCBiZWNvbWUgcmljaF0oaHR0cHM6Ly93d3cubGlua2Vk aW4uY29tL3B1bHNlL3VzZXItZ3VpZGUtaG93LWNyZWF0ZS15b3VyLWJpdGNvaW4tZm9yay01 bW4tZm9vbC1ldmVyeWJvZHktdml0dGUpDQoNCkJ1dCB3ZSBjYW4gZW52aXNpb24gYSBsb2Nh bCBCaXRjb2luLCB3aGljaCB3b3VsZCBiZSBsaW1pdGVkIHRvIGFuIGFyZWEgYW5kIGlzIGp1 c3QgYSBmb3JrIG9mIHRoZSBCaXRjb2luIGNvZGUgKGFuZCBub3QgdGhlIEJpdGNvaW4gbmV0 d29yayksIHJlc3RhcnRpbmcgZnJvbSB0aGUgYmVnaW5uaW5nDQoNClRoZW4gaXQncyBwb3Nz aWJsZSB0byBhZGFwdCB0aGUgcnVsZXMgYWNjb3JkaW5nIHRvIHRoZSBsb2NhbCBhcmVhLCBm b3IgZXhhbXBsZSByZWR1Y2luZyB0aGUgY29zdHMgYnkgZWxpbWluYXRpbmcgdGhlIGR1c3Qg bGltaXQsIG5ldHdvcmsgZmVlcyBieSBtaW5pbmcgYXQgbG93ZXN0IGRpZmZpY3VsdHksIHVu bGltaXRlZCBzdXBwbHkgYW5kIG5vIGhhbHZpbmcNCg0KVGhpcyBzZWVtcyB0byBjb250cmFk aWN0IHRoZSBnb29kIHByYWN0aWNlcyBvZiBCaXRjb2luIGJ1dCBub3QgcmVhbGx5LCBzaW5j ZSB0aGUgYXJlYSBpcyBsaW1pdGVkIHRvIHBlb3BsZSB0aGF0IGFyZSBzdXBwb3NlZCB0byBj b29wZXJhdGUgdG9nZXRoZXIsIHRoZW4gdGhlIHJpc2sgb2YgYXR0YWNrIGlzIGxpbWl0ZWQg YWxzbw0KDQpZb3UgbWlnaHQgc2F5IHRoYXQgd2UgYXJlIGNyaXRpY2l6aW5nIGluIFtCaXRj b2luLCBFdGhlcmV1bSwgc21hcnQgY29udHJhY3RzLCBsaWdodG5pbmcsIHNpZGVjaGFpbnMs IERlZmksIERBcHBzLCBORlRzLCBERVgsIERBTyBleHBsYWluZWQgLSBDZW50cmFsaXphdGlv biB2cyBEZWNlbnRyYWxpemF0aW9uXShodHRwczovL2dpc3QuZ2l0aHViLmNvbS9BeW1zLzA0 YjMwODRhMTRlZTIwMmU3MDdiM2ZhZWM1N2VkMjZlKSB0aGUgZmFjdCB0aGF0IG1vc3Qgb2Yg RVJDLTIwL05GVCB0b2tlbnMgYXJlIG9mIHplcm8gdmFsdWUsIGJlY2F1c2UgY29taW5nIGZy b20gbm93aGVyZSwgYnV0IHdlIGFyZSBwcm9wb3NpbmcgdGhlIHNhbWUNCg0KTm90IGV4YWN0 bHksIHRoZSBsb2NhbCBCaXRjb2luIGNvdWxkIGJlIHNlZW4gYXMgYSBiYXJ0ZXIgbW9uZXks IHdpdGggYSBzdGFibGUgdmFsdWUsIG1pbmVkIGJ5IGV2ZXJ5Ym9keSBpbiB0aGUgYXJlYSwg dGhlbiB1bmxpa2UgRVJDLTIwIHRva2VucyB5b3UgY2Fubm90IGlzc3VlIDEgQmlsbGlvbiBv ZiB0aGVtIGFsbCBvZiBhIHN1ZGRlbg0KDQpJdCByZW1haW5zIGRlY2VudHJhbGl6ZWQgc2lu Y2UgZXZlcnlib2R5IGlzIHBhcnRpY2lwYXRpbmcgYW5kIGdldCByZXdhcmRlZCBhY2NvcmRp bmcgdG8gdGhlIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbg0KDQpUbyBhIGNlcnRhaW4gZXh0 ZW50LCBzaW5jZSB0aGUgbG9jYWwgYXJlYSBtYW5hZ2VtZW50IG1pZ2h0IGRlY2lkZSB0byBz aHV0IGRvd24gdGhlIHN5c3RlbQ0KDQpBbiBleGFtcGxlIGlzIGEgY3J1aXNlIGJvYXQgKHdo byBtaWdodCBoYXZlIGxpbWl0ZWQgY29ubmVjdGl2aXR5IHRvIGludGVyYWN0IHdpdGggYW4g b3V0c2lkZSBibG9ja2NoYWluIGFuZCBpcyBub3Qgd2lsbGluZyB0byBidXJuIGl0cyBiYXR0 ZXJpZXMgd2l0aCBtaW5pbmcpIHdoZXJlIGVhY2ggZWxlbWVudCBvZiB0aGUgYm9hdCAoY2Fi aW5zLCBraXRjaGVuLCBldGMpIHdvdWxkIG1pbmUgdGhlIGxvY2FsIEJpdGNvaW4sIHRoZW4g eW91IGNhbiBidXkvZXhjaGFuZ2UgTkZUcyBvbiB0aGUgYm9hdCwgc2VydmljZXMsIHVzZSB0 aGUgdG9rZW4gZm9yIHRoZSBjYXNpbm8sIHJlc3RhdXJhbnRzLCBzaG9wcywgdGhlIGJvYXQg bWV0YXZlcnNlLCBldGMNCg0KVGhlIGxvY2FsIEJpdGNvaW4gY2FuIGJlIGNyYXdsZWQgZnJv bSB0aGUgb3V0c2lkZSBhbmQgdHJhbnNhY3Rpb25zIGNhbiBiZSBzZW50IGZyb20gdGhlIG91 dHNpZGUsIHNvLCBmb3IgZXhhbXBsZSwgbHV4dXJ5IHZlbmRvcnMgYW5kIG90aGVycyBjYW4g cHJvcG9zZSBORlRzIG9uIGJvYXJkIChhbmQgZGVsaXZlciB0aGVtIG9uIGJvYXJkIG9yIHdo ZW4gdGhlIGJvYXQgaXMgYXQgc29tZSBoYXJib3VyKSwgYW5kIE5GVHMgY2FuIGJlIHByb3Bv c2VkIGluc2lkZSB0aGUgYm9hdCBzaG9wcy9tZXRhdmVyc2UNCg0KSW5kZWVkIHNpbmNlIHRo ZSBsb2NhbCBCaXRjb2luIGlzIG5vdCBhIGZvcmsgb2YgQml0Y29pbiBuZXR3b3JrLCB5b3Ug ZG9uJ3QgaGF2ZSB0byBpbXBsZW1lbnQgcmVwbGF5IHByb3RlY3Rpb24gKFNJR0hBU0gpLCB0 aGVuIHVzdWFsIEJpdGNvaW4gdHJhbnNhY3Rpb25zIGNhbiBiZSBidWlsdCBhbmQgc2VudCB0 byB0aGUgbG9jYWwgQml0Y29pbiwgb2YgY291cnNlIHlvdSBtdXN0IG5vdCBtYWtlIG1pc3Rh a2VzIGJldHdlZW4gYm90aCBjaGFpbnMNCg0KSG93IGNhbiB3ZSBicmlkZ2UgdGhpcyB3aXRo IHRoZSBCaXRjb2luIG5ldHdvcmsgPyBUaGUgZmlyc3QgYW5zd2VyIGlzOiB3aHkgd291bGQg eW91IG5lZWQgdG8gZG8gdGhpcz8gSWYgc28sIHRoZW4geW91IG5lZWQgdG8gdXNlIGEgYnJp ZGdlIHdoaWNoIHdpbGwgYmUgb2YgY291cnNlIHNvbWV0aGluZyBjZW50cmFsaXplZCwgcmln aHQgbm93IHdlIGFyZSBub3QgYXdhcmUgb2Ygb3RoZXIgcG9zc2libGUgbWV0aG9kcyAobGlr ZSBhdG9taWMgc3dhcCBvciBvdGhlciBidWxscykNCg0KVGhpcyBjYW4gYXBwbHkgdG8gcGxh bmVzIGFuZCBtYW55IG90aGVyIGxvY2FsIGFyZWFzDQoNCiMjIExpY2Vuc2UgYW5kIGZ1bmRp bmcNCg0KV2hpbGUgdGhpcyB3b3JrIGlzIHB1YmxpYywgaXQgaXMgbm90IGluIHRoZSBwdWJs aWMgYXJlYSBhbmQgdW5kZXIgYW55IG9wZW4gc291cmNlIGxpY2Vuc2UsIHRoZW4gdG8gdXNl IGl0LCBwbGVhc2UgY29udGFjdDogYXltZXJpYyBwZWVyc20gY29tLCBQR1AgS2V5IGZpbmdl cnByaW50IDogNjVFRiBBRTNEIDk3M0YgRDM2QSBBQjI1IDEyMjUgMkExRCA3QjM0IDI2Mjcg QUMzOQ0KDQpUaGUgZ29hbCBoZXJlIGlzIHRvIHJlZmVyZW5jZSB3aG8gZGlkIGZ1bmQgdGhp cyBwcm9wb3NhbA0KDQpodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAyMjEyMzExODU2 NDUvaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vQXltcy8wMWRiZmViZjIxOTk2NTA1NGI0YTNi ZWVkMWJmZWJhNw== --------------867D655932F3AAECD6E81A69--