From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:1008:1e59::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id 8JldOy9Hf2XyWwAAkFu2QA (envelope-from ) for ; Sun, 17 Dec 2023 20:08:32 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id EKPFNi9Hf2WVZQEA62LTzQ (envelope-from ) for ; Sun, 17 Dec 2023 20:08:31 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=ricklupton.name header.s=fm1 header.b="f a1wVb5"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=P59AuSgc; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=ricklupton.name ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1702840111; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=cxoPx3Z16hojiIylsuSDhDJ4mwWM9z+UNvkoMY1SkZQ=; b=PdejsAsRMJVu46TDg3wnf91xvFtqV3sZkcKv0ajj03l6iHg8w16gqxNdSmm6CXimaK4cV8 ph8Cymiazv9wSicJZjNXHBsBPMPU3Ldh14rvvq65q6S3On3KQdBqb0QR073MqQfdbIvobq 0lZ8/DExnchX28vuKHMZJEfDTlEkQlIMM8BJLSVGSu6kNpKI2Y+X04+Tw33z7AdIwH9c1t g1wUWmPfEGukzwTjDri5e2OPj3DJT6hXKjhQvbSAo0R2stLDTmTdG1whCZ9OkN57zvLMQZ sPCAmwBYkR0EHm28+iITDSjvojbVIN+vx8dqDpiWvpA2I0v1QshrLfOKZaszBQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1702840111; a=rsa-sha256; cv=none; b=qbdlJitfqc4vz7m2F7jk9/cecqM3kXaFWGZcNyWkZuZufoGV1P3/d3gAtByfsTM+bMUA1b JoxOfbCM4vguhX32VCH7ViTdXKRjIwfFcs333wjmwgHOzPQttgtV4rd8ak9DQkSQmu2AqR m1z7pb7P8ZNkVW9bkZj0wqEsmaeWo8q9i3i5AIh+TkhR4VkQKdcFqvSZzBIEB89qqz0o/l 0FrRSruIRNqgb6VDmbgUidSImQ63Ld1XBarRT4VzXrc0s+CBu0Hjs3kWQP66rHIZR06dIO JS1J3Ll5WWyAX3DP6zaGojWXftsWAe4/vjjkM/HqYw6k3lt1t/aq2ZtWLPPQ6Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=ricklupton.name header.s=fm1 header.b="f a1wVb5"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=P59AuSgc; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=ricklupton.name Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2F22E15669 for ; Sun, 17 Dec 2023 20:08:30 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEwUG-0005A2-2z; Sun, 17 Dec 2023 14:07:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEwUC-00055w-I4 for emacs-orgmode@gnu.org; Sun, 17 Dec 2023 14:07:36 -0500 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rEwUA-0005Wn-Be for emacs-orgmode@gnu.org; Sun, 17 Dec 2023 14:07:36 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 57FCC320025E; Sun, 17 Dec 2023 14:07:30 -0500 (EST) Received: from imap50 ([10.202.2.100]) by compute2.internal (MEProxy); Sun, 17 Dec 2023 14:07:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ricklupton.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm1; t=1702840049; x= 1702926449; bh=cxoPx3Z16hojiIylsuSDhDJ4mwWM9z+UNvkoMY1SkZQ=; b=f a1wVb5Cq5+I75YOgEkjPwpo8KBoL3u/kx57m+KHlDv90wSwW90m+UqT4HC7t+n+n 8wCCb4xeEaPZV8qktSdIB1Jmll0HcRyzrFl/ObrgTEHik1akSLwGZuJVU5RY6tTo 048/ygBIRzijYgqeFa177b/D5t7e93njefNnr+MaHT93uZxxrz81TVJaYTljJkk9 SHTI6fi2jEUe4j3k6uK77vBKMJ4o2BirVUg3vwTfPdsLY5tmRwY33DpzTMz1cIkW 3BUvpzJF/Yd2US+KboHSY/Ll51Pe9I5K/XjuvGYnTdjHLf8sJUzZcsPYXRti8lz4 saNZdxsEi1VS3m2OCJd3g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1702840049; x=1702926449; bh=cxoPx3Z16hojiIylsuSDhDJ4mwWM 9z+UNvkoMY1SkZQ=; b=P59AuSgcDUPCOlGdAyPomnloooPmxHWob2du3IZRroQd ydiv8oEYOFfozVe2A2ejLK32Nzd9Jdlly0UO1euQAhoo9sdITs4169o64wfFAtQi ir9BASk/qih0JB0ylNQ27XE+bJLVZ9+qoRbX2WIhffE4WmzWsg3HxnLWTmR/Ood0 eWNy8bIboL6+3+W4l3MN6YmZDDrVPvSCA3AsQa81p0sROcPCDxMiB0ADQ0ivfM/D p5mYEAC8KZMcJoQLGHrpTIkfw5azHICCrwL8hsD5LRrsIUebyqiP4GTQoLEUREvI XOMN/JX4ADQCh2+nhjMQkTIl/VaRMKX12NViXcqaLw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddtiedguddvtdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvfevufgtse hmtderreerredtnecuhfhrohhmpedftfhitghkucfnuhhpthhonhdfuceomhgrihhlsehr ihgtkhhluhhpthhonhdrnhgrmhgvqeenucggtffrrghtthgvrhhnpedtudekueffvefgue eikedtffeujedvhfevtdetgedvjeetjeeftdeiheejgfeuueenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghilhesrhhitghklhhuphhtoh hnrdhnrghmvg X-ME-Proxy: Feedback-ID: i0143436f:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 74EF51700093; Sun, 17 Dec 2023 14:07:29 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-1283-g327e3ec917-fm-20231207.002-g327e3ec9 MIME-Version: 1.0 Message-Id: In-Reply-To: <87bkaqcjpz.fsf@localhost> References: <118435e8-0b20-46fd-af6a-88de8e19fac6@app.fastmail.com> <87edkwsafe.fsf@localhost> <87cywh2ad6.fsf@localhost> <87jzpmqiy0.fsf@localhost> <2cdfefbf-e9e3-4aeb-a410-1ff3a9d6168e@app.fastmail.com> <87zfybzkul.fsf@localhost> <3c5737c8-f489-4144-a27f-c0e0527c79c0@app.fastmail.com> <87bkaqcjpz.fsf@localhost> Date: Sun, 17 Dec 2023 19:07:08 +0000 From: "Rick Lupton" To: "Ihor Radchenko" Cc: "Y. E." Subject: [PATCH v2] org-id: allow using parent's existing id in links to headlines Content-Type: multipart/mixed; boundary=e1c7c031352d4d40a09172e3b1d6f3f0 Received-SPF: pass client-ip=64.147.123.25; envelope-from=mail@ricklupton.name; helo=wout2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -6.84 X-Spam-Score: -6.84 X-Migadu-Queue-Id: 2F22E15669 X-Migadu-Scanner: mx11.migadu.com X-TUID: pqJ2uFLkTHVD --e1c7c031352d4d40a09172e3b1d6f3f0 Content-Type: text/plain Please find attached updated patch which I think addresses all the points discussed. Let me know if you see any further changes needed. Thanks, Rick --e1c7c031352d4d40a09172e3b1d6f3f0 Content-Disposition: attachment; filename*0="0001-org-id.el-Extend-links-with-search-strings-inherit-v2.pa"; filename*1="tch" Content-Type: application/octet-stream; name="=?UTF-8?Q?0001-org-id.el-Extend-links-with-search-strings-inherit-v2.pat?= =?UTF-8?Q?ch?=" Content-Transfer-Encoding: BASE64 ZGlmZiAtLWdpdCBhL2RvYy9vcmctbWFudWFsLm9yZyBiL2RvYy9vcmctbWFudWFsLm9yZwpp bmRleCBlZTI0MTMyNDguLmE4MjI2NWUwNCAxMDA2NDQKLS0tIGEvZG9jL29yZy1tYW51YWwu b3JnCisrKyBiL2RvYy9vcmctbWFudWFsLm9yZwpAQCAtMzI5NiwxMCArMzI5Niw2IEBAIEhl cmUgaXMgdGhlIGZ1bGwgc2V0IG9mIGJ1aWx0LWluIGxpbmsgdHlwZXM6CiAKICAgRmlsZSBs aW5rcy4gIEZpbGUgbmFtZSBtYXkgYmUgcmVtb3RlLCBhYnNvbHV0ZSwgb3IgcmVsYXRpdmUu CiAKLSAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSBsaW5lIG51bWJlciwgb3Ig YSB0ZXh0IHNlYXJjaC4KLSAgSW4gT3JnIGZpbGVzLCB5b3UgbWF5IGxpbmsgdG8gYSBoZWFk bGluZSBuYW1lLCBhIGN1c3RvbSBJRCwgb3IgYQotICBjb2RlIHJlZmVyZW5jZSBpbnN0ZWFk LgotCiAgIEFzIGEgc3BlY2lhbCBjYXNlLCAiZmlsZSIgcHJlZml4IG1heSBiZSBvbWl0dGVk IGlmIHRoZSBmaWxlIG5hbWUKICAgaXMgY29tcGxldGUsIGUuZy4sIGl0IHN0YXJ0cyB3aXRo ID0uLz0sIG9yID0vPS4KIApAQCAtMzM2Myw0NCArMzM1OSw1MCBAQCBIZXJlIGlzIHRoZSBm dWxsIHNldCBvZiBidWlsdC1pbiBsaW5rIHR5cGVzOgogCiAgIEV4ZWN1dGUgYSBzaGVsbCBj b21tYW5kIHVwb24gYWN0aXZhdGlvbi4KIAorCitGb3IgPWZpbGU6PSBhbmQgPWlkOj0gbGlu a3MsIHlvdSBjYW4gYWRkaXRpb25hbGx5IHNwZWNpZnkgYSBsaW5lCitudW1iZXIsIG9yIGEg dGV4dCBzZWFyY2ggc3RyaW5nLCBzZXBhcmF0ZWQgYnkgPTo6PS4gIEluIE9yZyBmaWxlcywg eW91CittYXkgbGluayB0byBhIGhlYWRsaW5lIG5hbWUsIGEgY3VzdG9tIElELCBvciBhIGNv ZGUgcmVmZXJlbmNlIGluc3RlYWQuCisKIFRoZSBmb2xsb3dpbmcgdGFibGUgaWxsdXN0cmF0 ZXMgdGhlIGxpbmsgdHlwZXMgYWJvdmUsIGFsb25nIHdpdGggdGhlaXIKIG9wdGlvbnM6CiAK LXwgTGluayBUeXBlICB8IEV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLXwgaHR0cCAgICAg ICB8ID1odHRwOi8vc3RhZmYuc2NpZW5jZS51dmEubmwvYy5kb21pbmlrLz0gICAgICAgICAg ICAgICAgIHwKLXwgaHR0cHMgICAgICB8ID1odHRwczovL29yZ21vZGUub3JnLz0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZG9pICAgICAgICB8ID1kb2k6MTAu MTAwMC8xODI9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg ZmlsZSAgICAgICB8ID1maWxlOi9ob21lL2RvbWluaWsvaW1hZ2VzL2p1cGl0ZXIuanBnPSAg ICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID0vaG9tZS9kb21pbmlrL2ltYWdl cy9qdXBpdGVyLmpwZz0gKHNhbWUgYXMgYWJvdmUpICAgICAgIHwKLXwgICAgICAgICAgICB8 ID1maWxlOnBhcGVycy9sYXN0LnBkZj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLXwgICAgICAgICAgICB8ID0uL3BhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJv dmUpICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOi9zc2g6 bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChyZW1vdGUpICAgICAgIHwKLXwgICAg ICAgICAgICB8ID0vc3NoOm1lQHNvbWUud2hlcmU6cGFwZXJzL2xhc3QucGRmPSAoc2FtZSBh cyBhYm92ZSkgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnNvbWV0ZXh0ZmlsZTo6Tk5O PSAoanVtcCB0byBsaW5lIG51bWJlcikgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1m aWxlOnByb2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6c29tZSB3b3Jkcz0gKHRl eHQgc2VhcmNoKVtmbjoxMl0gICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3Rz Lm9yZzo6KnRhc2sgdGl0bGU9IChoZWFkbGluZSBzZWFyY2gpICAgICAgIHwKLXwgICAgICAg ICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6I2N1c3RvbS1pZD0gKGhlYWRsaW5lIHNlYXJj aCkgICAgICAgIHwKLXwgYXR0YWNobWVudCB8ID1hdHRhY2htZW50OnByb2plY3RzLm9yZz0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1hdHRh Y2htZW50OnByb2plY3RzLm9yZzo6c29tZSB3b3Jkcz0gKHRleHQgc2VhcmNoKSAgICAgIHwK LXwgZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OPSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwgaWQgICAgICAgICB8ID1pZDpCNzQyM0Y0RC0yRThB LTQ3MUItODgxMC1DNDBGMDc0NzE3RTk9ICAgICAgICAgICAgICAgIHwKLXwgbmV3cyAgICAg ICB8ID1uZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLXwgbWFpbHRvICAgICB8ID1tYWlsdG86YWRlbnRAZ2FsYXh5Lm5ldD0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgbWhlICAgICAgICB8ID1taGU6Zm9s ZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg ICAgICAgICAgICB8ID1taGU6Zm9sZGVyI2lkPSAobWVzc2FnZSBsaW5rKSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKLXwgcm1haWwgICAgICB8ID1ybWFpbDpmb2xkZXI9IChmb2xk ZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8 ID1ybWFpbDpmb2xkZXIjaWQ9IChtZXNzYWdlIGxpbmspICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLXwgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAoZ3JvdXAgbGluaykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1nbnVzOmdyb3Vw I2lkPSAoYXJ0aWNsZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYmJk YiAgICAgICB8ID1iYmRiOlIuKlN0YWxsbWFuPSAocmVjb3JkIHdpdGggcmVnZXhwKSAgICAg ICAgICAgICAgICAgIHwKLXwgaXJjICAgICAgICB8ID1pcmM6L2lyYy5jb20vI2VtYWNzL2Jv Yj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgaGVscCAgICAgICB8ID1o ZWxwOm9yZy1zdG9yZS1saW5rPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgaW5mbyAgICAgICB8ID1pbmZvOm9yZyNFeHRlcm5hbCBsaW5rcz0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKLXwgc2hlbGwgICAgICB8ID1zaGVsbDpscyAqLm9y Zz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZWxpc3Ag ICAgICB8ID1lbGlzcDooZmluZC1maWxlICJFbGlzcC5vcmciKT0gKEVsaXNwIGZvcm0gdG8g ZXZhbHVhdGUpIHwKLXwgICAgICAgICAgICB8ID1lbGlzcDpvcmctYWdlbmRhPSAoaW50ZXJh Y3RpdmUgRWxpc3AgY29tbWFuZCkgICAgICAgICAgIHwKK3wgTGluayBUeXBlICB8IEV4YW1w bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8Cit8LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorfCBodHRwICAgICAg IHwgPWh0dHA6Ly9zdGFmZi5zY2llbmNlLnV2YS5ubC9jLmRvbWluaWsvPSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKK3wgaHR0cHMgICAgICB8ID1odHRwczovL29yZ21vZGUub3Jn Lz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGRv aSAgICAgICAgfCA9ZG9pOjEwLjEwMDAvMTgyPSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBmaWxlICAgICAgIHwgPWZpbGU6L2hvbWUv ZG9taW5pay9pbWFnZXMvanVwaXRlci5qcGc9ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKK3wgICAgICAgICAgICB8ID0vaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpwZz0g KHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9Zmls ZTpwYXBlcnMvbGFzdC5wZGY9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPS4vcGFwZXJzL2xhc3QucGRmPSAoc2FtZSBh cyBhYm92ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAg ICB8ID1maWxlOi9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChyZW1vdGUp ICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9L3NzaDptZUBzb21lLndoZXJl OnBhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgfAorfCAg ICAgICAgICAgIHwgPWZpbGU6c29tZXRleHRmaWxlOjpOTk49IChqdW1wIHRvIGxpbmUgbnVt YmVyKSAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOnByb2pl Y3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5vcmc6OnNvbWUgd29yZHM9ICh0 ZXh0IHNlYXJjaClbZm46MTJdICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZp bGU6cHJvamVjdHMub3JnOjoqdGFzayB0aXRsZT0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAg ICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6I2N1c3Rv bS1pZD0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAgICAgICAgICAgICB8Cit8IGF0dGFjaG1l bnQgfCA9YXR0YWNobWVudDpwcm9qZWN0cy5vcmc9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWF0dGFjaG1lbnQ6cHJvamVj dHMub3JnOjpzb21lIHdvcmRzPSAodGV4dCBzZWFyY2gpICAgICAgICAgICAgICAgIHwKK3wg ZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OPSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGlkICAgICAgICAgfCA9aWQ6Qjc0MjNG NEQtMkU4QS00NzFCLTg4MTAtQzQwRjA3NDcxN0U5PSAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorfCAgICAgICAgICAgIHwgPWlkOkI3NDIzRjRELTJFOEEtNDcxQi04ODEwLUM0MEYw NzQ3MTdFOTo6KnRhc2s9IChoZWFkbGluZSBzZWFyY2gpIHwKK3wgbmV3cyAgICAgICB8ID1u ZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cit8IG1haWx0byAgICAgfCA9bWFpbHRvOmFkZW50QGdhbGF4eS5uZXQ9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBtaGUgICAg ICAgIHwgPW1oZTpmb2xkZXI9IChmb2xkZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1taGU6Zm9sZGVyI2lkPSAo bWVzc2FnZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8 IHJtYWlsICAgICAgfCA9cm1haWw6Zm9sZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPXJtYWlsOmZv bGRlciNpZD0gKG1lc3NhZ2UgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKK3wgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAoZ3JvdXAgbGluaykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9 Z251czpncm91cCNpZD0gKGFydGljbGUgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorfCBiYmRiICAgICAgIHwgPWJiZGI6Ui4qU3RhbGxtYW49IChyZWNv cmQgd2l0aCByZWdleHApICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgaXJjICAg ICAgICB8ID1pcmM6L2lyYy5jb20vI2VtYWNzL2JvYj0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cit8IGhlbHAgICAgICAgfCA9aGVscDpvcmctc3RvcmUt bGluaz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor fCBpbmZvICAgICAgIHwgPWluZm86b3JnI0V4dGVybmFsIGxpbmtzPSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgc2hlbGwgICAgICB8ID1zaGVsbDps cyAqLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cit8IGVsaXNwICAgICAgfCA9ZWxpc3A6KGZpbmQtZmlsZSAiRWxpc3Aub3JnIik9 IChFbGlzcCBmb3JtIHRvIGV2YWx1YXRlKSAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwg PWVsaXNwOm9yZy1hZ2VuZGE9IChpbnRlcmFjdGl2ZSBFbGlzcCBjb21tYW5kKSAgICAgICAg ICAgICAgICAgICAgIHwKIAogIytjaW5kZXg6IFZNIGxpbmtzCiAjK2NpbmRleDogV2FuZGVy bHVzdCBsaW5rcwpAQCAtMzQ2MSw4ICszNDYzLDkgQEAgY3VycmVudCBidWZmZXI6CiAtIC9P cmcgbW9kZSBidWZmZXJzLyA6OgogCiAgIEZvciBPcmcgZmlsZXMsIGlmIHRoZXJlIGlzIGEg PTw8dGFyZ2V0Pj49IGF0IHBvaW50LCB0aGUgbGluayBwb2ludHMKLSAgdG8gdGhlIHRhcmdl dC4gIE90aGVyd2lzZSBpdCBwb2ludHMgdG8gdGhlIGN1cnJlbnQgaGVhZGxpbmUsIHdoaWNo Ci0gIGlzIGFsc28gdGhlIGRlc2NyaXB0aW9uLgorICB0byB0aGUgdGFyZ2V0LiAgSWYgdGhl cmUgaXMgYSBuYW1lZCBibG9jayAodXNpbmcgPSMrbmFtZTo9KSBhdAorICBwb2ludCwgdGhl IGxpbmsgcG9pbnRzIHRvIHRoYXQgbmFtZS4gIE90aGVyd2lzZSBpdCBwb2ludHMgdG8gdGhl CisgIGN1cnJlbnQgaGVhZGxpbmUsIHdoaWNoIGlzIGFsc28gdGhlIGRlc2NyaXB0aW9uLgog CiAgICMrdmluZGV4OiBvcmctaWQtbGluay10by1vcmctdXNlLWlkCiAgICMrY2luZGV4OiBA c2FtcHtDVVNUT01fSUR9LCBwcm9wZXJ0eQpAQCAtMzQ4MCw2ICszNDgzLDEzIEBAIGN1cnJl bnQgYnVmZmVyOgogICB0aW1lc3RhbXAsIGRlcGVuZGluZyBvbiB+b3JnLWlkLW1ldGhvZH4u ICBMYXRlciwgd2hlbiBpbnNlcnRpbmcgdGhlCiAgIGxpbmssIHlvdSBuZWVkIHRvIGRlY2lk ZSB3aGljaCBvbmUgdG8gdXNlLgogCisgICMrdmluZGV4OiBvcmctaWQtbGluay1jb25zaWRl ci1wYXJlbnQtaWQKKyAgV2hlbiB+b3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkfiBp cyB+dH4sIHBhcmVudCA9SUQ9IHByb3BlcnRpZXMKKyAgYXJlIGNvbnNpZGVyZWQuICBUaGlz IGFsbG93cyBsaW5raW5nIHRvIHNwZWNpZmljIHRhcmdldHMsIG5hbWVkCisgIGJsb2Nrcywg b3IgaGVhZGxpbmVzICh3aGljaCBtYXkgbm90IGhhdmUgYSBnbG9iYWxseSB1bmlxdWUgPUlE PQorICB0aGVtc2VsdmVzKSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJlbnQgaGVhZGxp bmUgb3IgZmlsZSB3aGljaAorICBkb2VzLgorCiAtIC9FbWFpbC9OZXdzIGNsaWVudHM6IFZN LCBSbWFpbCwgV2FuZGVybHVzdCwgTUgtRSwgR251cy8gOjoKIAogICAjK3ZpbmRleDogb3Jn LWxpbmstZW1haWwtZGVzY3JpcHRpb24tZm9ybWF0CkBAIC0zNzUzLDEzICszNzYzLDE1IEBA IHRoZSBsaW5rIGNvbXBsZXRpb24gZnVuY3Rpb24gbGlrZSB0aGlzOgogKG9yZy1saW5rLXNl dC1wYXJhbWV0ZXIgInR5cGUiIDpjb21wbGV0ZSAjJ3NvbWUtY29tcGxldGlvbi1mdW5jdGlv bikKICMrZW5kX3NyYwogCi0qKiBTZWFyY2ggT3B0aW9ucyBpbiBGaWxlIExpbmtzCisqKiBT ZWFyY2ggT3B0aW9ucyBpbiBGaWxlIGFuZCBJRCBMaW5rcwogOlBST1BFUlRJRVM6CiA6REVT Q1JJUFRJT046IExpbmtpbmcgdG8gYSBzcGVjaWZpYyBsb2NhdGlvbi4KIDpBTFRfVElUTEU6 IFNlYXJjaCBPcHRpb25zCiA6RU5EOgogIytjaW5kZXg6IHNlYXJjaCBvcHRpb24gaW4gZmls ZSBsaW5rcworIytjaW5kZXg6IHNlYXJjaCBvcHRpb24gaW4gaWQgbGlua3MKICMrY2luZGV4 OiBmaWxlIGxpbmtzLCBzZWFyY2hpbmcKKyMrY2luZGV4OiBpZCBsaW5rcywgc2VhcmNoaW5n CiAjK2NpbmRleDogYXR0YWNobWVudCBsaW5rcywgc2VhcmNoaW5nCiAKIEZpbGUgbGlua3Mg Y2FuIGNvbnRhaW4gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBtYWtlIEVtYWNzIGp1bXAg dG8gYQpAQCAtMzc3MSw4ICszNzgzLDggQEAgZXhhbXBsZSwgd2hlbiB0aGUgY29tbWFuZCB+ b3JnLXN0b3JlLWxpbmt+IGNyZWF0ZXMgYSBsaW5rIChzZWUKIGxpbmUgYXMgYSBzZWFyY2gg c3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmluZCB0aGlzIGxpbmUgYmFjayBsYXRlcgog d2hlbiBmb2xsb3dpbmcgdGhlIGxpbmsgd2l0aCB7e3trYmQoQy1jIEMtbyl9fX0uCiAKLU5v dGUgdGhhdCBhbGwgc2VhcmNoIG9wdGlvbnMgYXBwbHkgZm9yIEF0dGFjaG1lbnQgbGlua3Mg aW4gdGhlIHNhbWUKLXdheSB0aGF0IHRoZXkgYXBwbHkgZm9yIEZpbGUgbGlua3MuCitOb3Rl IHRoYXQgYWxsIHNlYXJjaCBvcHRpb25zIGFwcGx5IGZvciBBdHRhY2htZW50IGFuZCBJRCBs aW5rcyBpbiB0aGUKK3NhbWUgd2F5IHRoYXQgdGhleSBhcHBseSBmb3IgRmlsZSBsaW5rcy4K IAogSGVyZSBpcyB0aGUgc3ludGF4IG9mIHRoZSBkaWZmZXJlbnQgd2F5cyB0byBhdHRhY2gg YSBzZWFyY2ggdG8gYSBmaWxlCiBsaW5rLCB0b2dldGhlciB3aXRoIGV4cGxhbmF0aW9ucyBm b3IgZWFjaDoKQEAgLTIxMjUyLDcgKzIxMjY0LDcgQEAgVGhlIGZvbGxvd2luZyA9b2wtbWFu LmVsPSBmaWxlIGltcGxlbWVudHMgaXQKIFBBVEggc2hvdWxkIGJlIGEgdG9waWMgdGhhdCBj YW4gYmUgdGhyb3duIGF0IHRoZSBtYW4gY29tbWFuZC4iCiAgIChmdW5jYWxsIG9yZy1tYW4t Y29tbWFuZCBwYXRoKSkKIAotKGRlZnVuIG9yZy1tYW4tc3RvcmUtbGluayAoKQorKGRlZnVu IG9yZy1tYW4tc3RvcmUtbGluayAoJm9wdGlvbmFsIF9pbnRlcmFjdGl2ZT8pCiAgICJTdG9y ZSBhIGxpbmsgdG8gYSBtYW4gcGFnZS4iCiAgICh3aGVuIChtZW1xIG1ham9yLW1vZGUgJyhN YW4tbW9kZSB3b21hbi1tb2RlKSkKICAgICA7OyBUaGlzIGlzIGEgbWFuIHBhZ2UsIHdlIGRv IG1ha2UgdGhpcyBsaW5rLgpAQCAtMjEzMTIsMTMgKzIxMzI0LDE1IEBAIEEgcmV2aWV3IG9m ID1vbC1tYW4uZWw9OgogCiAgICBGb3IgZXhhbXBsZSwgfm9yZy1tYW4tc3RvcmUtbGlua34g aXMgcmVzcG9uc2libGUgZm9yIHN0b3JpbmcgYSBsaW5rCiAgICB3aGVuIH5vcmctc3RvcmUt bGlua34gKHNlZSBbWypIYW5kbGluZyBMaW5rc11dKSBpcyBjYWxsZWQgZnJvbSBhIGJ1ZmZl cgotICAgZGlzcGxheWluZyBhIG1hbiBwYWdlLiAgSXQgZmlyc3QgY2hlY2tzIGlmIHRoZSBt YWpvciBtb2RlIGlzCi0gICBhcHByb3ByaWF0ZS4gIElmIGNoZWNrIGZhaWxzLCB0aGUgZnVu Y3Rpb24gcmV0dXJucyB+bmlsfiwgd2hpY2gKLSAgIG1lYW5zIGl0IGlzbid0IHJlc3BvbnNp YmxlIGZvciBjcmVhdGluZyBhIGxpbmsgdG8gdGhlIGN1cnJlbnQKLSAgIGJ1ZmZlci4gIE90 aGVyd2lzZSB0aGUgZnVuY3Rpb24gbWFrZXMgYSBsaW5rIHN0cmluZyBieSBjb21iaW5pbmcK LSAgIHRoZSA9bWFuOj0gcHJlZml4IHdpdGggdGhlIG1hbiB0b3BpYy4gIEl0IGFsc28gcHJv dmlkZXMgYSBkZWZhdWx0Ci0gICBkZXNjcmlwdGlvbi4gIFRoZSBmdW5jdGlvbiB+b3JnLWlu c2VydC1saW5rfiBjYW4gaW5zZXJ0IGl0IGJhY2sKLSAgIGludG8gYW4gT3JnIGJ1ZmZlciBs YXRlciBvbi4KKyAgIGRpc3BsYXlpbmcgYSBtYW4gcGFnZS4gIEl0IGlzIHBhc3NlZCBhbiBh cmd1bWVudCB+aW50ZXJhY3RpdmU/fgorICAgd2hpY2ggdGhpcyBmdW5jdGlvbiBkb2VzIG5v dCB1c2UsIGJ1dCBvdGhlciBzdG9yZSBmdW5jdGlvbnMgdXNlIHRvCisgICBiZWhhdmUgZGlm ZmVyZW50bHkgd2hlbiBhIGxpbmsgaXMgc3RvcmVkIGludGVyYWN0aXZlbHkgYnkgdGhlIHVz ZXIuCisgICBJdCBmaXJzdCBjaGVja3MgaWYgdGhlIG1ham9yIG1vZGUgaXMgYXBwcm9wcmlh dGUuICBJZiBjaGVjayBmYWlscywKKyAgIHRoZSBmdW5jdGlvbiByZXR1cm5zIH5uaWx+LCB3 aGljaCBtZWFucyBpdCBpc24ndCByZXNwb25zaWJsZSBmb3IKKyAgIGNyZWF0aW5nIGEgbGlu ayB0byB0aGUgY3VycmVudCBidWZmZXIuICBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uCisgICBt YWtlcyBhIGxpbmsgc3RyaW5nIGJ5IGNvbWJpbmluZyB0aGUgPW1hbjo9IHByZWZpeCB3aXRo IHRoZSBtYW4KKyAgIHRvcGljLiAgSXQgYWxzbyBwcm92aWRlcyBhIGRlZmF1bHQgZGVzY3Jp cHRpb24uICBUaGUgZnVuY3Rpb24KKyAgIH5vcmctaW5zZXJ0LWxpbmt+IGNhbiBpbnNlcnQg aXQgYmFjayBpbnRvIGFuIE9yZyBidWZmZXIgbGF0ZXIgb24uCiAKICoqIEFkZGluZyBFeHBv cnQgQmFja2VuZHMKIDpQUk9QRVJUSUVTOgpkaWZmIC0tZ2l0IGEvZXRjL09SRy1ORVdTIGIv ZXRjL09SRy1ORVdTCmluZGV4IDZjODEyMjFjMS4uNDI2ZThlODIwIDEwMDY0NAotLS0gYS9l dGMvT1JHLU5FV1MKKysrIGIvZXRjL09SRy1ORVdTCkBAIC0yODMsNiArMjgzLDEyIEBAIHRp bWVzdGFtcCBvYmplY3QuICBQb3NzaWJsZSB2YWx1ZXM6IH50aW1lcmFuZ2V+LCB+ZGF0ZXJh bmdlfiwgfm5pbH4uCiB+b3JnLWVsZW1lbnQtdGltZXN0YW1wLWludGVycHJldGVyfiB0YWtl cyBpbnRvIGFjY291bnQgdGhpcyBwcm9wZXJ0eQogYW5kIHJldHVybnMgYW4gYXBwcm9wcmlh dGUgdGltZXN0YW1wIHN0cmluZy4KIAorKioqKiA9b3JnLWxpbms9IHN0b3JlIGZ1bmN0aW9u cyBhcmUgcGFzc2VkIGFuIH5pbnRlcmFjdGl2ZT9+IGFyZ3VtZW50CisKK1RoZSB+OnN0b3Jl On4gZnVuY3Rpb25zIHNldCBmb3IgbGluayB0eXBlcyB1c2luZworfm9yZy1saW5rLXNldC1w YXJhbWV0ZXJzfiBhcmUgbm93IHBhc3NlZCBhbiB+aW50ZXJhY3RpdmU/fiBhcmd1bWVudCwK K2luZGljYXRpbmcgd2hldGhlciB+b3JnLXN0b3JlLWxpbmt+IHdhcyBjYWxsZWQgaW50ZXJh Y3RpdmVseS4KKwogKioqIH5vcmctcHJpb3JpdHk9c2hvd34gY29tbWFuZCBubyBsb25nZXIg YWRqdXN0cyBmb3Igc2NoZWR1bGVkL2RlYWRsaW5lCiAKIEluIGFnZW5kYSB2aWV3cywgfm9y Zy1wcmlvcml0eT1zaG93fiBjb21tYW5kIHByZXZpb3VzbHkgZGlzcGxheWVkIHRoZQpAQCAt MzYxLDYgKzM2NywxOCBAQCBUaGUgY2hhbmdlIGlzIGJyZWFraW5nIHdoZW4gfm9yZy11c2Ut cHJvcGVydHktaW5oZXJpdGFuY2V+IGlzIHNldCB0byB+dH4uCiAqKiogfm9yZy1iYWJlbC1s aWx5cG9uZC1jb21waWxlLWxpbHlmaWxlfiBpZ25vcmVzIG9wdGlvbmFsIHNlY29uZCBhcmd1 bWVudAogCiBUaGUgPVRFU1Q9IHBhcmFtZXRlciBpcyBiZXR0ZXIgc2VydmVkIGJ5IEVtYWNz IGRlYnVnZ2luZyB0b29scy4KKworKioqIH5vcmctaWQtc3RvcmUtbGlua34gbm93IGFkZHMg c2VhcmNoIHN0cmluZ3MgZm9yIHByZWNpc2UgbGluayB0YXJnZXRzCisKK1RoaXMgbmV3IGJl aGF2aW91ciBjYW4gYmUgZGlzYWJsZWQgZ2VuZXJhbGx5IGJ5IHNldHRpbmcKK35vcmctaWQt bGluay11c2UtY29udGV4dH4gdG8gfm5pbH4sIG9yIHdoZW4gc3RvcmluZyBhIHNwZWNpZmlj IGxpbmsgYnkKK3Bhc3NpbmcgYSBwcmVmaXggYXJndW1lbnQgdG8gfm9yZy1zdG9yZS1saW5r fi4KKworV2hlbiB1c2luZyB0aGlzIGZlYXR1cmUsIElEcyBzaG91bGQgbm90IGluY2x1ZGUg PTo6PSwgd2hpY2ggaXMgdXNlZCBpbgorbGlua3MgdG8gaW5kaWNhdGUgdGhlIHN0YXJ0IG9m IHRoZSBzZWFyY2ggc3RyaW5nLiAgRm9yIGJhY2t3YXJkcworY29tcGFiaWxpdHksIGV4aXN0 aW5nIElEcyBpbmNsdWRpbmcgPTo6PSB3aWxsIHN0aWxsIGJlIG1hdGNoZWQgKGJ1dAorY2Fu bm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBwcmVjaXNlIGxpbmsgdGFyZ2V0cykuCisKICoq IE5ldyBhbmQgY2hhbmdlZCBvcHRpb25zCiAqKiogTmV3IHZhcmlhYmxlIH5vcmctY2xvY2st b3V0LXJlbW92ZWQtbGFzdC1jbG9ja34KIApAQCAtNTQ0LDYgKzU2MiwyMiBAQCBDdXJyZW50 bHkgaW1wbGVtZW50ZWQgb3B0aW9ucyBhcmU6CiBUaGUgY2FwdHVyZSB0ZW1wbGF0ZSBleHBh bnNpb24gZWxlbWVudCA9JUs9IGNyZWF0ZXMgbGlua3MgdXNpbmcKIH5vcmctc3RvcmUtbGlu a34sIHdoaWNoIHJlc3BlY3RzIHRoZSB2YWx1ZXMgb2Ygfm9yZy1pZC1saW5rLXRvLXVzZS1p ZH4uCiAKKyoqKiBOZXcgb3B0aW9uIH5vcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWR+ IHRvIGFsbG93ID1pZDo9IGxpbmtzIHRvIHBhcmVudCBoZWFkbGluZXMKKworRm9yID1pZDo9 IGxpbmtzLCB3aGVuIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIH5vcmctc3RvcmUtbGlua34g d2lsbAorbG9vayBmb3IgaWRzIGZyb20gcGFyZW50L2FuY2VzdG9yIGhlYWRsaW5lcywgaWYg dGhlIGN1cnJlbnQgaGVhZGxpbmUKK2RvZXMgbm90IGhhdmUgYW4gaWQuCisKK0NvbWJpbmVk IHdpdGggdGhlIG5ldyBhYmlsaXR5IGZvciA9aWQ6PSBsaW5rcyB0byB1c2Ugc2VhcmNoIHN0 cmluZ3MKK2ZvciBwcmVjaXNlIGxpbmsgdGFyZ2V0cyAod2hlbiA9b3JnLWlkLWxpbmstdXNl LWNvbnRleHQ9IGlzID10PSwgd2hpY2gKK2lzIHRoZSBkZWZhdWx0KSwgdGhpcyBhbGxvd3Mg bGlua2luZyB0byBzcGVjaWZpYyBoZWFkbGluZXMgd2l0aG91dAorcmVxdWlyaW5nIGV2ZXJ5 IGhlYWRsaW5lIHRvIGhhdmUgYW4gaWQgcHJvcGVydHksIGFzIGxvbmcgYXMgdGhlCitoZWFk bGluZSBpcyB1bmlxdWUgd2l0aGluIGEgc3VidHJlZSB0aGF0IGRvZXMgaGF2ZSBhbiBpZCBw cm9wZXJ0eS4KKworQnkgZ2l2aW5nIGZpbGVzIHRvcC1sZXZlbCBpZCBwcm9wZXJ0aWVzLCBs aW5rcyB0byBoZWFkbGluZXMgaW4gdGhlCitmaWxlIGNhbiBiZSBtYWRlIG1vcmUgcm9idXN0 IGJ5IHVzaW5nIHRoZSBmaWxlIGlkIGluc3RlYWQgb2YgdGhlIGZpbGUKK3BhdGguCisKICoq IE5ldyBmZWF0dXJlcwogKioqID1vYi1wbGFudHVtbC5lbD06IFN1cHBvcnQgdGlreiBmaWxl IGZvcm1hdCBvdXRwdXQKIApAQCAtODA4LDYgKzg0MiwxMSBAQCBhcyB0aGUgZnVuY3Rpb24g Y2FuIGFsc28gYWN0IG9uIG9iamVjdHMuCiAqKiogfm9yZy1leHBvcnQtZ2V0LXBhcmVudH4g aXMgcmVuYW1lZCB0byB+b3JnLWVsZW1lbnQtcGFyZW50fiBhbmQgbW92ZWQgdG8gPWxpc3Av b3JnLWVsZW1lbnQuZWw9CiAKICoqKiB+b3JnLWV4cG9ydC1nZXQtcGFyZW50LWVsZW1lbnR+ IGlzIHJlbmFtZWQgdG8gfm9yZy1lbGVtZW50LXBhcmVudC1lbGVtZW50fiBhbmQgbW92ZWQg dG8gPWxpc3Avb3JnLWVsZW1lbnQuZWw9CisqKiogTmV3IG9wdGlvbmFsIGFyZ3VtZW50IGZv ciB+b3JnLWlkLWdldH4gYW5kIH5vcmctaWQtZ2V0LWNyZWF0ZX4KKworTmV3IG9wdGlvbmFs IGFyZ3VtZW50ID1JTkhFUklUPSBtZWFucyBpbmhlcml0ZWQgSUQgcHJvcGVydGllcyBmcm9t CitwYXJlbnQgZW50cmllcyBhcmUgY29uc2lkZXJlZCB3aGVuIGdldHRpbmcgYW4gZW50cnkn cyBJRCAoc2VlCit+b3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkfiBvcHRpb24pLgog CiAqKiBNaXNjZWxsYW5lb3VzCiAqKiogPW9yZy1jcnlwdC5lbD0gbm93IGFwcGxpZXMgaW5p dGlhbCB2aXNpYmlsaXR5IHNldHRpbmdzIHRvIGRlY3J5cHRlZCBlbnRyaWVzCmRpZmYgLS1n aXQgYS9saXNwL29sLmVsIGIvbGlzcC9vbC5lbAppbmRleCA2NDgwYjc4MGQuLmI2ZjVjN2Nl NyAxMDA2NDQKLS0tIGEvbGlzcC9vbC5lbAorKysgYi9saXNwL29sLmVsCkBAIC02Myw3ICs2 Myw2IEBACiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZmluZC1wcm9wZXJ0eSAib3JnIiAocHJv cGVydHkgJm9wdGlvbmFsIHZhbHVlKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1nZXQtaGVh ZGluZyAib3JnIiAoJm9wdGlvbmFsIG5vLXRhZ3Mgbm8tdG9kbyBuby1wcmlvcml0eSBuby1j b21tZW50KSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pZC1maW5kLWlkLWZpbGUgIm9yZy1p ZCIgKGlkKSkKLShkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pZC1zdG9yZS1saW5rICJvcmctaWQi ICgpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWluc2VydC1oZWFkaW5nICJvcmciICgmb3B0 aW9uYWwgYXJnIGludmlzaWJsZS1vayB0b3ApKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWxv YWQtbW9kdWxlcy1tYXliZSAib3JnIiAoJm9wdGlvbmFsIGZvcmNlKSkKIChkZWNsYXJlLWZ1 bmN0aW9uIG9yZy1tYXJrLXJpbmctcHVzaCAib3JnIiAoJm9wdGlvbmFsIHBvcyBidWZmZXIp KQpAQCAtODE4LDYgKzgxNyw0NCBAQCBzcGVjLiIKICAgKG9yZy13aXRoLXBvaW50LWF0IChj YXIgcmVnaW9uKQogICAgIChub3QgKG9yZy1pbi1yZWdleHAgb3JnLWxpbmstYW55LXJlKSkp KQogCisoZGVmdW4gb3JnLWxpbmstLXRyeS1saW5rLXN0b3JlLWZ1bmN0aW9ucyAoaW50ZXJh Y3RpdmU/KQorICAiVHJ5IHN0b3JpbmcgZXh0ZXJuYWwgbGlua3MsIHByb21wdGluZyBpZiBt b3JlIHRoYW4gb25lIGlzIHBvc3NpYmxlLgorCitFYWNoIGZ1bmN0aW9uIHJldHVybmVkIGJ5 IGBvcmctc3RvcmUtbGluay1mdW5jdGlvbnMnIGlzIGNhbGxlZCBpbgordHVybi4gIElmIG11 bHRpcGxlIGZ1bmN0aW9ucyByZXR1cm4gbm9uLW5pbCwgcHJvbXB0IGZvciB3aGljaAorbGlu ayBzaG91bGQgYmUgc3RvcmVkLgorCitSZXR1cm4gdCB3aGVuIGEgbGluayBoYXMgYmVlbiBz dG9yZWQgaW4gYG9yZy1saW5rLXN0b3JlLXByb3BzJy4iCisgIChsZXQgKChyZXN1bHRzLWFs aXN0IG5pbCkpCisgICAgKGRvbGlzdCAoZiAob3JnLXN0b3JlLWxpbmstZnVuY3Rpb25zKSkK KyAgICAgICh3aGVuIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAoZnVu Y2FsbCBmIGludGVyYWN0aXZlPykKKyAgICAgICAgICAgICAgOzsgWFhYOiBUaGUgc3RvcmUg ZnVuY3Rpb24gdXNlZCAoPCBPcmcgOS43KSB0byBhY2NlcHQgbm8KKyAgICAgICAgICAgICAg OzsgYXJndW1lbnRzOyBwcm92aWRlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBm b3IKKyAgICAgICAgICAgICAgOzsgdGhlbS4KKyAgICAgICAgICAgICAgKHdyb25nLW51bWJl ci1vZi1hcmd1bWVudHMKKyAgICAgICAgICAgICAgIChmdW5jYWxsIGYpKSkKKyAgICAgICAg OzsgWFhYOiByZXR1cm4gdmFsdWUgaXMgbm90IGxpbmsncyBwbGlzdCwgc28gd2UKKyAgICAg ICAgOzsgc3RvcmUgdGhlIG5ldyB2YWx1ZSBiZWZvcmUgaXQgaXMgbW9kaWZpZWQuICBJdAor ICAgICAgICA7OyB3b3VsZCBiZSBjbGVhbmVyIHRvIGFzayBzdG9yZSBsaW5rIGZ1bmN0aW9u cyB0bworICAgICAgICA7OyByZXR1cm4gdGhlIHBsaXN0IGluc3RlYWQuCisgICAgICAgIChw dXNoIChjb25zIGYgKGNvcHktc2VxdWVuY2Ugb3JnLXN0b3JlLWxpbmstcGxpc3QpKQorICAg ICAgICAgICAgICByZXN1bHRzLWFsaXN0KSkpCisgICAgKHBjYXNlIHJlc3VsdHMtYWxpc3QK KyAgICAgIChgbmlsIG5pbCkKKyAgICAgIChgKCgsXyAuICxfKSkgdCkJO3NpbmdsZSBjaG9p Y2U6IG5vdGhpbmcgdG8gZG8KKyAgICAgIChgKCgsbmFtZSAuICxfKSAuICxfKQorICAgICAg IDs7IFJlaW5zdGF0ZSBsaW5rIHBsaXN0IGFzc29jaWF0ZWQgdG8gdGhlIGNob3NlbgorICAg ICAgIDs7IGZ1bmN0aW9uLgorICAgICAgIChhcHBseSAjJ29yZy1saW5rLXN0b3JlLXByb3Bz CisgICAgICAgICAgICAgIChjZHIgKGFzc29jLXN0cmluZworICAgICAgICAgICAgICAgICAg ICAoY29tcGxldGluZy1yZWFkCisgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJTdG9y ZSBsaW5rIHdpdGggKGRlZmF1bHQgJXMpOiAiIG5hbWUpCisgICAgICAgICAgICAgICAgICAg ICAobWFwY2FyICMnY2FyIHJlc3VsdHMtYWxpc3QpCisgICAgICAgICAgICAgICAgICAgICBu aWwgdCBuaWwgbmlsIChzeW1ib2wtbmFtZSBuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAg cmVzdWx0cy1hbGlzdCkpKQorICAgICAgIHQpKSkpCisKIAwKIDs7OyBQdWJsaWMgQVBJCiAK QEAgLTEzMzUsNiArMTM3Miw1NyBAQCBwcmlvcml0eSBjb29raWUgb3IgdGFnLiIKIAkgIChv cmctbGluay0tbm9ybWFsaXplLXN0cmluZwogCSAgIChvciBzdHJpbmcgKG9yZy1nZXQtaGVh ZGluZyB0IHQgdCB0KSkpKSkKIAorKGRlZnVuIG9yZy1saW5rLXByZWNpc2UtbGluay10YXJn ZXQgKCZvcHRpb25hbCByZWxhdGl2ZS10bykKKyAgIkRldGVybWluZSBzZWFyY2ggc3RyaW5n IGFuZCBkZXNjcmlwdGlvbiBmb3Igc3RvcmluZyBhIGxpbmsuCisKK0lmIGEgc2VhcmNoIHN0 cmluZyBpcyBmb3VuZCwgcmV0dXJuIGNvbnMgY2VsbCAoU0VBUkNILVNUUklORworLiBERVND KS4gIE90aGVyd2lzZSwgcmV0dXJuIG5pbC4KKworSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJl Z2lvbiwgdGhlIGNvbnRlbnRzIGlzIHVzZWQgKHNlZQorYG9yZy1saW5rLS1jb250ZXh0LWZy b20tcmVnaW9uJykuCisKK0luIG9yZy1tb2RlIGJ1ZmZlcnMsIGlmIHBvaW50IGlzIGF0IGEg bmFtZWQgZWxlbWVudCAoZS5nLiBhCitzb3VyY2UgYmxvY2spLCB0aGUgbmFtZSBpcyB1c2Vk LiBJZiB3aXRoaW4gYSBoZWFkaW5nLCB0aGUgY3VycmVudAoraGVhZGluZyBpcyB1c2VkLgor CitJZiBub25lIG9mIHRob3NlIGZpbmRzIGEgc3VpdGFibGUgc2VhcmNoIHN0cmluZywgdGhl IGN1cnJlbnQgbGluZQoraXMgdXNlZCBhcyB0aGUgc2VhcmNoIHN0cmluZy4KKworT3B0aW9u YWwgYXJndW1lbnQgUkVMQVRJVkUtVE8gc3BlY2lmaWVzIHRoZSBidWZmZXIgcG9zaXRpb24g d2hlcmUKK3RoZSBzZWFyY2ggd2lsbCBzdGFydCBmcm9tLiAgSWYgdGhlIHNlYXJjaCB0YXJn ZXQgdGhhdCB3b3VsZCBiZQorcmV0dXJuZWQgaXMgYWxyZWFkeSBhdCB0aGlzIGxvY2F0aW9u LCByZXR1cm4gbmlsIHRvIGF2b2lkCit1bm5lY2Vzc2FyeSBzZWFyY2ggc3RyaW5ncyAoZm9y IGV4YW1wbGUsIHdoZW4gdXNpbmcgc2VhcmNoCitzdHJpbmdzIHRvIGZpbmQgdGFyZ2V0cyB3 aXRoaW4gb3JnLWlkIGxpbmtzKS4iCisgIChsZXQgKChyZXN1bHQKKyAgICAgICAgIChjb25k CisgICAgICAgICAgKChkZXJpdmVkLW1vZGUtcCAnb3JnLW1vZGUpCisgICAgICAgICAgIChs ZXQqICgoZWxlbWVudCAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKQorICAgICAgICAgICAgICAg ICAgKG5hbWUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpuYW1lIGVsZW1lbnQpKQorICAgICAg ICAgICAgICAgICAgKGhlYWRpbmcgKG9yZy1lbGVtZW50LWxpbmVhZ2UgZWxlbWVudCAnaGVh ZGxpbmUgdCkpKQorICAgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAgICgobGV0ICgo cmVnaW9uIChvcmctbGluay0tY29udGV4dC1mcm9tLXJlZ2lvbikpKQorICAgICAgICAgICAg ICAgICAoYW5kIHJlZ2lvbiAoY29ucyAob3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJpbmcgcmVn aW9uIHQpIG5pbCkpKSkKKyAgICAgICAgICAgICAgKG5hbWUKKyAgICAgICAgICAgICAgIChj b25zIG5hbWUgbmFtZSkpCisgICAgICAgICAgICAgICgob3JnLWJlZm9yZS1maXJzdC1oZWFk aW5nLXApCisgICAgICAgICAgICAgICAoY29ucyAob3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJp bmcgKG9yZy1jdXJyZW50LWxpbmUtc3RyaW5nKSB0KSBuaWwpKQorICAgICAgICAgICAgICAo KGFuZCBoZWFkaW5nCisgICAgICAgICAgICAgICAgICAgICg+IChvcmctZWxlbWVudC1iZWdp biBoZWFkaW5nKSAob3IgcmVsYXRpdmUtdG8gMCkpKQorICAgICAgICAgICAgICAgKGNvbnMg KG9yZy1saW5rLWhlYWRpbmctc2VhcmNoLXN0cmluZykKKyAgICAgICAgICAgICAgICAgICAg IChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgIChv cmctZ2V0LWhlYWRpbmcgdCB0IHQgdCkpKSkpKSkKKworICAgICAgICAgIDs7IE5vdCBpbiBh biBvcmctbW9kZSBidWZmZXIKKyAgICAgICAgICAodAorICAgICAgICAgICAoY29ucyAob3Jn LWxpbmstLW5vcm1hbGl6ZS1zdHJpbmcKKyAgICAgICAgICAgICAgICAgIChvciAob3JnLWxp bmstLWNvbnRleHQtZnJvbS1yZWdpb24pIChvcmctY3VycmVudC1saW5lLXN0cmluZykpCisg ICAgICAgICAgICAgICAgICB0KQorICAgICAgICAgICAgICAgICBuaWwpKSkpKQorCisgICAg OzsgT25seSB1c2Ugc2VhcmNoIG9wdGlvbiBpZiB0aGVyZSBpcyBzb21lIHRleHQuCisgICAg KHdoZW4gKG9yZy1zdHJpbmctbnctcCAoY2FyIHJlc3VsdCkpCisgICAgICByZXN1bHQpKSkK KwogKGRlZnVuIG9yZy1saW5rLW9wZW4tYXMtZmlsZSAocGF0aCBpbi1lbWFjcykKICAgIlBy ZXRlbmQgUEFUSCBpcyBhIGZpbGUgbmFtZSBhbmQgb3BlbiBpdC4KIApAQCAtMTU1NywzNiAr MTY0NSwxNyBAQCBub24tbmlsLiIKIAkgICAgKG1vdmUtYmVnaW5uaW5nLW9mLWxpbmUgMikK IAkgICAgKHNldC1tYXJrIChwb2ludCkpKSkpCiAgICAgKHNldHEgb3JnLXN0b3JlLWxpbmst cGxpc3QgbmlsKQotICAgIChsZXQgKGxpbmsgY3BsdHh0IGRlc2Mgc2VhcmNoIGN1c3RvbS1p ZCBhZ2VuZGEtbGluaykgOzsgZGVzY3JpcHRpb24KKyAgICAobGV0ICgob3JnLWxpbmstY29u dGV4dC1mb3ItZmlsZXMgKG9yZy14b3Igb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFy ZyAnKDQpKSkpCisgICAgICAgICAgbGluayBjcGx0eHQgZGVzYyBzZWFyY2ggY3VzdG9tLWlk IGFnZW5kYS1saW5rKSA7OyBkZXNjcmlwdGlvbgogICAgICAgKGNvbmQKICAgICAgICA7OyBT dG9yZSBhIGxpbmsgdXNpbmcgYW4gZXh0ZXJuYWwgbGluayB0eXBlLCBpZiBhbnkgZnVuY3Rp b24gaXMKLSAgICAgICA7OyBhdmFpbGFibGUuIElmIG1vcmUgdGhhbiBvbmUgY2FuIGdlbmVy YXRlIGEgbGluayBmcm9tIGN1cnJlbnQKLSAgICAgICA7OyBsb2NhdGlvbiwgYXNrIHdoaWNo IG9uZSB0byB1c2UuCisgICAgICAgOzsgYXZhaWxhYmxlLiAgSWYgbW9yZSB0aGFuIG9uZSBj YW4gZ2VuZXJhdGUgYSBsaW5rIGZyb20KKyAgICAgICA7OyBjdXJyZW50IGxvY2F0aW9uLCBh c2sgd2hpY2ggb25lIHRvIHVzZS4gIE5lZ2F0ZQorICAgICAgIDs7IGBvcmctY29udGV4dC1p bi1maWxlLWxpbmtzJyB3aGVuIGdpdmVuIGEgc2luZ2xlIHByZWZpeCBhcmcuCiAgICAgICAg KChhbmQgKG5vdCAoZXF1YWwgYXJnICcoMTYpKSkKLQkgICAgIChsZXQgKChyZXN1bHRzLWFs aXN0IG5pbCkpCi0JICAgICAgIChkb2xpc3QgKGYgKG9yZy1zdG9yZS1saW5rLWZ1bmN0aW9u cykpCi0JCSAod2hlbiAoZnVuY2FsbCBmKQotCQkgICA7OyBYWFg6IHJldHVybiB2YWx1ZSBp cyBub3QgbGluaydzIHBsaXN0LCBzbyB3ZQotCQkgICA7OyBzdG9yZSB0aGUgbmV3IHZhbHVl IGJlZm9yZSBpdCBpcyBtb2RpZmllZC4gIEl0Ci0JCSAgIDs7IHdvdWxkIGJlIGNsZWFuZXIg dG8gYXNrIHN0b3JlIGxpbmsgZnVuY3Rpb25zIHRvCi0JCSAgIDs7IHJldHVybiB0aGUgcGxp c3QgaW5zdGVhZC4KLQkJICAgKHB1c2ggKGNvbnMgZiAoY29weS1zZXF1ZW5jZSBvcmctc3Rv cmUtbGluay1wbGlzdCkpCi0JCQkgcmVzdWx0cy1hbGlzdCkpKQotCSAgICAgICAocGNhc2Ug cmVzdWx0cy1hbGlzdAotCQkgKGBuaWwgbmlsKQotCQkgKGAoKCxfIC4gLF8pKSB0KQk7c2lu Z2xlIGNob2ljZTogbm90aGluZyB0byBkbwotCQkgKGAoKCxuYW1lIC4gLF8pIC4gLF8pCi0J CSAgOzsgUmVpbnN0YXRlIGxpbmsgcGxpc3QgYXNzb2NpYXRlZCB0byB0aGUgY2hvc2VuCi0J CSAgOzsgZnVuY3Rpb24uCi0JCSAgKGFwcGx5ICMnb3JnLWxpbmstc3RvcmUtcHJvcHMKLQkJ CSAoY2RyIChhc3NvYy1zdHJpbmcKLQkJCSAgICAgICAoY29tcGxldGluZy1yZWFkCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIlN0b3JlIGxpbmsgd2l0aCAo ZGVmYXVsdCAlcyk6ICIgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG1hcGNhciAjJ2NhciByZXN1bHRzLWFsaXN0KQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuaWwgdCBuaWwgbmlsIChzeW1ib2wtbmFtZSBuYW1lKSkKLQkJCSAgICAgICBy ZXN1bHRzLWFsaXN0KSkpCi0JCSAgdCkpKSkKLQkoc2V0cSBsaW5rIChwbGlzdC1nZXQgb3Jn LXN0b3JlLWxpbmstcGxpc3QgOmxpbmspKQorICAgICAgICAgICAgIChvcmctbGluay0tdHJ5 LWxpbmstc3RvcmUtZnVuY3Rpb25zIGludGVyYWN0aXZlPykpCisgICAgICAgIChzZXRxIGxp bmsgKHBsaXN0LWdldCBvcmctc3RvcmUtbGluay1wbGlzdCA6bGluaykpCiAgICAgICAgIDs7 IElmIHN0b3JlIGZ1bmN0aW9uIGFjdHVhbGx5IHNldCBgOmRlc2NyaXB0aW9uJyBwcm9wZXJ0 eSwgdXNlCiAgICAgICAgIDs7IGl0LCBldmVuIGlmIGl0IGlzIG5pbC4gIE90aGVyd2lzZSwg ZmFsbGJhY2sgdG8gbmlsIChhc2sgdXNlcikuCiAJKHNldHEgZGVzYyAocGxpc3QtZ2V0IG9y Zy1zdG9yZS1saW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKQpAQCAtMTYzNyw2ICsxNzA2LDcg QEAgbm9uLW5pbC4iCiAJICAgIChvcmctd2l0aC1wb2ludC1hdCBtCiAJICAgICAgKHNldHEg YWdlbmRhLWxpbmsgKG9yZy1zdG9yZS1saW5rIG5pbCBpbnRlcmFjdGl2ZT8pKSkpKSkKIAor ICAgICAgIDs7IENhbGVuZGFyIG1vZGUKICAgICAgICAoKGVxIG1ham9yLW1vZGUgJ2NhbGVu ZGFyLW1vZGUpCiAJKGxldCAoKGNkIChjYWxlbmRhci1jdXJzb3ItdG8tZGF0ZSkpKQogCSAg KHNldHEgbGluawpAQCAtMTY0NSw2ICsxNzE1LDcgQEAgbm9uLW5pbC4iCiAJCSAob3JnLWVu Y29kZS10aW1lIDAgMCAwIChudGggMSBjZCkgKG50aCAwIGNkKSAobnRoIDIgY2QpKSkpCiAJ ICAob3JnLWxpbmstc3RvcmUtcHJvcHMgOnR5cGUgImNhbGVuZGFyIiA6ZGF0ZSBjZCkpKQog CisgICAgICAgOzsgSW1hZ2UgbW9kZQogICAgICAgICgoZXEgbWFqb3ItbW9kZSAnaW1hZ2Ut bW9kZSkKIAkoc2V0cSBjcGx0eHQgKGNvbmNhdCAiZmlsZToiCiAJCQkgICAgIChhYmJyZXZp YXRlLWZpbGUtbmFtZSBidWZmZXItZmlsZS1uYW1lKSkKQEAgLTE2NjIsMTIgKzE3MzMsMjAg QEAgbm9uLW5pbC4iCiAJICAoc2V0cSBjcGx0eHQgKGNvbmNhdCAiZmlsZToiIGZpbGUpCiAJ CWxpbmsgY3BsdHh0KSkpCiAKKyAgICAgICA7OyBUcnkgYG9yZy1jcmVhdGUtZmlsZS1zZWFy Y2gtZnVuY3Rpb25zYC4gIElmIGFueSBhcmUKKyAgICAgICA7OyBzdWNjZXNzZnVsLCBjcmVh dGUgYSBmaWxlIGxpbmsgdG8gdGhlIGN1cnJlbnQgYnVmZmVyIHdpdGgKKyAgICAgICA7OyB0 aGUgcHJvdmlkZWQgc2VhcmNoIHN0cmluZy4gIChzZXRzIGBsaW5rYCBhbmQgYGNwbHR4dGAg dG8KKyAgICAgICA7OyB0aGUgc2FtZSB0aGluZzsgaXQgbG9va3MgbGlrZSB0aGUgaW50ZW50 aW9uIG9yaWdpbmFsbHkgd2FzCisgICAgICAgOzsgdGhhdCBjcGx0eHQgd2FzIGEgZGVzY3Jp cHRpb24sIHdoaWNoIG1pZ2h0IGhhdmUgYmVlbiBzZXQgYnkKKyAgICAgICA7OyB0aGUgc2Vh cmNoLWZ1bmN0aW9uIChyZW1vdmVkIGluIHN3aXRjaCB0byBsZXhpY2FsIGJpbmRpbmcpKS4K ICAgICAgICAoKHNldHEgc2VhcmNoIChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2Vz cwogCQkgICAgICAnb3JnLWNyZWF0ZS1maWxlLXNlYXJjaC1mdW5jdGlvbnMpKQogCShzZXRx IGxpbmsgKGNvbmNhdCAiZmlsZToiIChhYmJyZXZpYXRlLWZpbGUtbmFtZSBidWZmZXItZmls ZS1uYW1lKQogCQkJICAgIjo6IiBzZWFyY2gpKQogCShzZXRxIGNwbHR4dCAob3IgbGluaykp KSA7OyBkZXNjcmlwdGlvbgogCisgICAgICAgOzsgTWFpbiBsb2dpYyBmb3Igc3RvcmluZyBi dWlsdC1pbiBsaW5rIHR5cGVzIGluIG9yZy1tb2RlCisgICAgICAgOzsgYnVmZmVycwogICAg ICAgICgoYW5kIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSAoZGVy aXZlZC1tb2RlLXAgJ29yZy1tb2RlKSkKIAkob3JnLXdpdGgtbGltaXRlZC1sZXZlbHMKIAkg KHNldHEgY3VzdG9tLWlkIChvcmctZW50cnktZ2V0IG5pbCAiQ1VTVE9NX0lEIikpCkBAIC0x Njg3LDcxICsxNzY2LDMzIEBAIG5vbi1uaWwuIgogICAgICAgICAgICAgICAgICBkZXNjIG5p bAogICAgICAgICAgICAgICAgICA7OyBEbyBub3QgYXBwZW5kICNDVVNUT01fSUQgbGluayBi ZWxvdy4KICAgICAgICAgICAgICAgICAgY3VzdG9tLWlkIG5pbCkpCi0JICAoKGFuZCAoZmVh dHVyZXAgJ29yZy1pZCkKLQkJKG9yIChlcSBvcmctaWQtbGluay10by1vcmctdXNlLWlkIHQp Ci0JCSAgICAoYW5kIGludGVyYWN0aXZlPwotCQkJIChvciAoZXEgb3JnLWlkLWxpbmstdG8t b3JnLXVzZS1pZCAnY3JlYXRlLWlmLWludGVyYWN0aXZlKQotCQkJICAgICAoYW5kIChlcSBv cmctaWQtbGluay10by1vcmctdXNlLWlkCi0JCQkJICAgICAgJ2NyZWF0ZS1pZi1pbnRlcmFj dGl2ZS1hbmQtbm8tY3VzdG9tLWlkKQotCQkJCSAgKG5vdCBjdXN0b20taWQpKSkpCi0JCSAg ICAoYW5kIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgKG9yZy1lbnRyeS1nZXQgbmlsICJJ RCIpKSkpCi0JICAgOzsgU3RvcmUgYSBsaW5rIHVzaW5nIHRoZSBJRCBhdCBwb2ludAotCSAg IChzZXRxIGxpbmsgKGNvbmRpdGlvbi1jYXNlIG5pbAotCQkJICAocHJvZzEgKG9yZy1pZC1z dG9yZS1saW5rKQotCQkJICAgIChzZXRxIGRlc2MgKHBsaXN0LWdldCBvcmctc3RvcmUtbGlu ay1wbGlzdCA6ZGVzY3JpcHRpb24pKSkKLQkJCShlcnJvcgotCQkJIDs7IFByb2JhYmx5IGJl Zm9yZSBmaXJzdCBoZWFkbGluZSwgbGluayBvbmx5IHRvIGZpbGUKLQkJCSAoY29uY2F0ICJm aWxlOiIKLQkJCQkgKGFiYnJldmlhdGUtZmlsZS1uYW1lCi0JCQkJICAoYnVmZmVyLWZpbGUt bmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpKSkpKSkKLQkgICh0CisgICAgICAgICAgKHQK IAkgICA7OyBKdXN0IGxpbmsgdG8gY3VycmVudCBoZWFkbGluZS4KIAkgICAoc2V0cSBjcGx0 eHQgKGNvbmNhdCAiZmlsZToiCiAJCQkJKGFiYnJldmlhdGUtZmlsZS1uYW1lCiAJCQkJIChi dWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSkpKQotCSAgIDs7IEFkZCBh IGNvbnRleHQgc2VhcmNoIHN0cmluZy4KLQkgICAod2hlbiAob3JnLXhvciBvcmctbGluay1j b250ZXh0LWZvci1maWxlcyAoZXF1YWwgYXJnICcoNCkpKQotCSAgICAgKGxldCogKChlbGVt ZW50IChvcmctZWxlbWVudC1hdC1wb2ludCkpCi0JCSAgICAobmFtZSAob3JnLWVsZW1lbnQt cHJvcGVydHkgOm5hbWUgZWxlbWVudCkpCi0JCSAgICAoY29udGV4dAotCQkgICAgIChjb25k Ci0JCSAgICAgICgobGV0ICgocmVnaW9uIChvcmctbGluay0tY29udGV4dC1mcm9tLXJlZ2lv bikpKQotCQkJIChhbmQgcmVnaW9uIChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZyByZWdp b24gdCkpKSkKLQkJICAgICAgKG5hbWUpCi0JCSAgICAgICgob3JnLWJlZm9yZS1maXJzdC1o ZWFkaW5nLXApCi0JCSAgICAgICAob3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJpbmcgKG9yZy1j dXJyZW50LWxpbmUtc3RyaW5nKSB0KSkKLQkJICAgICAgKHQgKG9yZy1saW5rLWhlYWRpbmct c2VhcmNoLXN0cmluZykpKSkpCi0JICAgICAgICh3aGVuIChvcmctc3RyaW5nLW53LXAgY29u dGV4dCkKLQkJIChzZXRxIGNwbHR4dCAoZm9ybWF0ICIlczo6JXMiIGNwbHR4dCBjb250ZXh0 KSkKLQkJIChzZXRxIGRlc2MKLQkJICAgICAgIChvciBuYW1lCi0JCQkgICA7OyBBbHRob3Vn aCBkZXNjcmlwdGlvbiBpcyBub3QgYSBzZWFyY2gKLQkJCSAgIDs7IHN0cmluZywgdXNlIGBv cmctbGluay0tbm9ybWFsaXplLXN0cmluZycKLQkJCSAgIDs7IHRvIHByZXR0aWZ5IGl0IChj b250aWd1b3VzIHdoaXRlIHNwYWNlcykKLQkJCSAgIDs7IGFuZCByZW1vdmUgdm9sYXRpbGUg Y29udGVudHMgKHN0YXRpc3RpY3MKLQkJCSAgIDs7IGNvb2tpZXMpLgotCQkJICAgKGFuZCAo bm90IChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkpCi0JCQkJKG9yZy1saW5rLS1ub3Jt YWxpemUtc3RyaW5nCi0JCQkJIChvcmctZ2V0LWhlYWRpbmcgdCB0IHQgdCkpKQotCQkJICAg Ik5PTkUiKSkpKSkKLQkgICAoc2V0cSBsaW5rIGNwbHR4dCkpKSkpCi0KKyAgICAgICAgICAg KHdoZW4gb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMKKyAgICAgICAgICAgICAocGNhc2Ug KG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQpCisgICAgICAgICAgICAgICAoYG5pbCBu aWwpCisgICAgICAgICAgICAgICAoYCgsc2VhcmNoLXN0cmluZyAuICxzZWFyY2gtZGVzYykK KyAgICAgICAgICAgICAgICAoc2V0cSBjcGx0eHQgKGZvcm1hdCAiJXM6OiVzIiBjcGx0eHQg c2VhcmNoLXN0cmluZykpCisgICAgICAgICAgICAgICAgKHNldHEgZGVzYyBzZWFyY2gtZGVz YykpKSkKKyAgICAgICAgICAgKHNldHEgbGluayBjcGx0eHQpKSkpKQorCisgICAgICAgOzsg QnVmZmVyIGxpbmtlZCB0byBmaWxlLCBidXQgbm90IGFuIG9yZy1tb2RlIGJ1ZmZlci4KICAg ICAgICAoKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCiAJOzsgSnVz dCBsaW5rIHRvIHRoaXMgZmlsZSBoZXJlLgogCShzZXRxIGNwbHR4dCAoY29uY2F0ICJmaWxl OiIKIAkJCSAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lCiAJCQkgICAgICAoYnVmZmVyLWZp bGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpKSkKIAk7OyBBZGQgYSBjb250ZXh0IHNl YXJjaCBzdHJpbmcuCi0JKHdoZW4gKG9yZy14b3Igb3JnLWxpbmstY29udGV4dC1mb3ItZmls ZXMgKGVxdWFsIGFyZyAnKDQpKSkKLQkgIChsZXQgKChjb250ZXh0IChvcmctbGluay0tbm9y bWFsaXplLXN0cmluZwotCQkJICAob3IgKG9yZy1saW5rLS1jb250ZXh0LWZyb20tcmVnaW9u KQotCQkJICAgICAgKG9yZy1jdXJyZW50LWxpbmUtc3RyaW5nKSkKLQkJCSAgdCkpKQotCSAg ICA7OyBPbmx5IHVzZSBzZWFyY2ggb3B0aW9uIGlmIHRoZXJlIGlzIHNvbWUgdGV4dC4KLQkg ICAgKHdoZW4gKG9yZy1zdHJpbmctbnctcCBjb250ZXh0KQotCSAgICAgIChzZXRxIGNwbHR4 dCAoZm9ybWF0ICIlczo6JXMiIGNwbHR4dCBjb250ZXh0KSkKLQkgICAgICAoc2V0cSBkZXNj ICJOT05FIikpKSkKLQkoc2V0cSBsaW5rIGNwbHR4dCkpCisgICAgICAgICh3aGVuIG9yZy1s aW5rLWNvbnRleHQtZm9yLWZpbGVzCisgICAgICAgICAgKHBjYXNlIChvcmctbGluay1wcmVj aXNlLWxpbmstdGFyZ2V0KQorICAgICAgICAgICAgKGBuaWwgbmlsKQorICAgICAgICAgICAg KGAoLHNlYXJjaC1zdHJpbmcgLiAsc2VhcmNoLWRlc2MpCisgICAgICAgICAgICAgKHNldHEg Y3BsdHh0IChmb3JtYXQgIiVzOjolcyIgY3BsdHh0IHNlYXJjaC1zdHJpbmcpKQorICAgICAg ICAgICAgIChzZXRxIGRlc2Mgc2VhcmNoLWRlc2MpKSkpCisgICAgICAgIChzZXRxIGxpbmsg Y3BsdHh0KSkKIAogICAgICAgIChpbnRlcmFjdGl2ZT8KIAkodXNlci1lcnJvciAiTm8gbWV0 aG9kIGZvciBzdG9yaW5nIGEgbGluayBmcm9tIHRoaXMgYnVmZmVyIikpCmRpZmYgLS1naXQg YS9saXNwL29yZy1pZC5lbCBiL2xpc3Avb3JnLWlkLmVsCmluZGV4IGZiZTZhMGVkMC4uZjMx NzViMjNlIDEwMDY0NAotLS0gYS9saXNwL29yZy1pZC5lbAorKysgYi9saXNwL29yZy1pZC5l bApAQCAtMTI5LDYgKzEyOSw0OSBAQCBuaWwgICBOZXZlciB1c2UgYW4gSUQgdG8gbWFrZSBh IGxpbmssIGluc3RlYWQgbGluayB1c2luZyBhIHRleHQgc2VhcmNoIGZvcgogCSAgKGNvbnN0 IDp0YWcgIk9ubHkgdXNlIGV4aXN0aW5nIiB1c2UtZXhpc3RpbmcpCiAJICAoY29uc3QgOnRh ZyAiRG8gbm90IHVzZSBJRCB0byBjcmVhdGUgbGluayIgbmlsKSkpCiAKKyhkZWZjdXN0b20g b3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkIG5pbAorICAiTm9uLW5pbCBtZWFucyBz dG9yaW5nIGEgbGluayB0byBhbiBPcmcgZW50cnkgY29uc2lkZXJzIGluaGVyaXRlZCBJRHMu CisKK1doZW4gdGhpcyBvcHRpb24gaXMgbm9uLW5pbCwgSUQgcHJvcGVydGllcyBpbmhlcml0 ZWQgZnJvbSBwYXJlbnQKK2VudHJpZXMgd2lsbCBiZSBjb25zaWRlcmVkIHdoZW4gc3Rvcmlu ZyBhbiBJRCBsaW5rLiAgSWYgbm8gSUQgaXMKK2ZvdW5kIGluIHRoaXMgd2F5LCBhIG5ldyBv bmUgbWF5IGJlIGNyZWF0ZWQgYXMgbm9ybWFsIChzZWUKK2BvcmctaWQtbGluay10by1vcmct dXNlLWlkJykuCisKK0ZvciBleGFtcGxlLCBnaXZlbiB0aGlzIG9yZyBmaWxlOgorCisqIFBh cmVudAorOlBST1BFUlRJRVM6Cis6SUQ6IGFiYworOkVORDoKKyoqIENoaWxkIDEKKyoqIENo aWxkIDIKKworV2l0aCBgb3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkJyBzZXQgdG8g dCwgc3RvcmluZyBhIGxpbmsKK3dpdGggcG9pbnQgYXQgXCJDaGlsZCAxXCIgd2lsbCBwcm9k dWNlIGEgbGluayBcImlkOmFiY1wiIHRvCitcIlBhcmVudFwiLgorCitUaGlzIGlzIHBhcnRp Y3VsYXJseSB1c2VmdWwgd2l0aCBgb3JnLWlkLWxpbmstdXNlLWNvbnRleHQnCitlbmFibGVk LCBhcyBpdCBhbGxvd3MgbGlua2luZyB0byB1bmlxdWVseS1uYW1lZCBzdWItZW50cmllcwor d2l0aGluIGEgcGFyZW50IGVudHJ5IHdpdGggYW4gSUQsIHdpdGhvdXQgcmVxdWlyaW5nIGV2 ZXJ5CitzdWItZW50cnkgdG8gaGF2ZSBpdHMgb3duIElELiAgSW4gdGhhdCBjYXNlLCB0aGUg ZXhhbXBsZSBsaW5rCithYm92ZSB3b3VsZCBiZSBcImlkOmFiYzo6KkNoaWxkIDFcIiwgd2hp Y2ggbGlua3MgZGlyZWN0bHkgdG8KK1wiQ2hpbGQgMVwiIGRlc3BpdGUgaXQgbm90IGhhdmlu ZyBpdHMgb3duIElEIHByb3BlcnR5LiIKKyAgOmdyb3VwICdvcmctbGluay1zdG9yZQorICA6 Z3JvdXAgJ29yZy1pZAorICA6cGFja2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuNyIpCisgIDp0 eXBlICdib29sZWFuKQorCisoZGVmY3VzdG9tIG9yZy1pZC1saW5rLXVzZS1jb250ZXh0IHQK KyAgIk5vbi1uaWwgbWVhbnMgZW5hYmxlcyBzZWFyY2ggc3RyaW5nIGNvbnRleHQgaW4gb3Jn LWlkIGxpbmtzLgorCitTZWFyY2ggc3RyaW5ncyBhcmUgYWRkZWQgYnkgYG9yZy1pZC1zdG9y ZS1saW5rJyB3aGVuIGJvdGggdGhlCitnZW5lcmFsIG9wdGlvbiBgb3JnLWxpbmstY29udGV4 dC1mb3ItZmlsZXMnIGFuZCB0aGUgb3JnLWlkIG9wdGlvbgorYG9yZy1pZC1saW5rLXVzZS1j b250ZXh0JyBhcmUgbm9uLW5pbC4iCisgIDpncm91cCAnb3JnLWxpbmstc3RvcmUKKyAgOmdy b3VwICdvcmctaWQKKyAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI5LjciKQorICA6dHlw ZSAnYm9vbGVhbikKKwogKGRlZmN1c3RvbSBvcmctaWQtdXVpZC1wcm9ncmFtICJ1dWlkZ2Vu IgogICAiVGhlIHV1aWRnZW4gcHJvZ3JhbS4iCiAgIDpncm91cCAnb3JnLWlkCkBAIC0yNTgs MTQgKzMwMSwxNyBAQCBUaGlzIHZhcmlhYmxlIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBgb3Jn LWlkLXRyYWNrLWdsb2JhbGx5JyBpcyBzZXQuIgogOzs7IFRoZSBBUEkgZnVuY3Rpb25zCiAK IDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gb3JnLWlkLWdldC1jcmVhdGUgKCZvcHRpb25hbCBm b3JjZSkKKyhkZWZ1biBvcmctaWQtZ2V0LWNyZWF0ZSAoJm9wdGlvbmFsIGZvcmNlIGluaGVy aXQpCiAgICJDcmVhdGUgYW4gSUQgZm9yIHRoZSBjdXJyZW50IGVudHJ5IGFuZCByZXR1cm4g aXQuCiBJZiB0aGUgZW50cnkgYWxyZWFkeSBoYXMgYW4gSUQsIGp1c3QgcmV0dXJuIGl0Lgot V2l0aCBvcHRpb25hbCBhcmd1bWVudCBGT1JDRSwgZm9yY2UgdGhlIGNyZWF0aW9uIG9mIGEg bmV3IElELiIKK1dpdGggb3B0aW9uYWwgYXJndW1lbnQgRk9SQ0UsIGZvcmNlIHRoZSBjcmVh dGlvbiBvZiBhIG5ldyBJRC4KK1dpdGggb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJVCwgY29u c2lkZXIgcGFyZW50cycgSURzIGlmIHRoZQorY3VycmVudCBlbnRyeSBkb2VzIG5vdCBoYXZl IG9uZS4iCiAgIChpbnRlcmFjdGl2ZSAiUCIpCiAgICh3aGVuIGZvcmNlCi0gICAgKG9yZy1l bnRyeS1wdXQgKHBvaW50KSAiSUQiIG5pbCkpCi0gIChvcmctaWQtZ2V0IChwb2ludCkgJ2Ny ZWF0ZSkpCisgICAgKG9yZy1lbnRyeS1wdXQgKHBvaW50KSAiSUQiIG5pbCkKKyAgICAoc2V0 cSBpbmhlcml0IG5pbCkpCisgIChvcmctaWQtZ2V0IChwb2ludCkgJ2NyZWF0ZSBuaWwgaW5o ZXJpdCkpCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gb3JnLWlkLWNvcHkgKCkKQEAgLTI4 MCwxNSArMzI2LDE2IEBAIFRoaXMgaXMgdXNlZnVsIHdoZW4gd29ya2luZyB3aXRoIGNvbnRl bnRzIGluIGEgdGVtcG9yYXJ5IGJ1ZmZlcgogdGhhdCB3aWxsIGJlIGNvcGllZCBiYWNrIHRv IHRoZSBvcmlnaW5hbC4iKQogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIG9yZy1pZC1nZXQg KCZvcHRpb25hbCBlcG9tIGNyZWF0ZSBwcmVmaXgpCisoZGVmdW4gb3JnLWlkLWdldCAoJm9w dGlvbmFsIGVwb20gY3JlYXRlIHByZWZpeCBpbmhlcml0KQogICAiR2V0IHRoZSBJRCBwcm9w ZXJ0eSBvZiB0aGUgZW50cnkgYXQgRVBPTS4KIEVQT00gaXMgYW4gZWxlbWVudCwgbWFya2Vy LCBvciBidWZmZXIgcG9zaXRpb24uCiBJZiBFUE9NIGlzIG5pbCwgcmVmZXIgdG8gdGhlIGVu dHJ5IGF0IHBvaW50LgogSWYgdGhlIGVudHJ5IGRvZXMgbm90IGhhdmUgYW4gSUQsIHRoZSBm dW5jdGlvbiByZXR1cm5zIG5pbC4KK0lmIElOSEVSSVQgaXMgbm9uLW5pbCwgcGFyZW50cycg SURzIGFyZSBhbHNvIGNvbnNpZGVyZWQuCiBIb3dldmVyLCB3aGVuIENSRUFURSBpcyBub24t bmlsLCBjcmVhdGUgYW4gSUQgaWYgbm9uZSBpcyBwcmVzZW50IGFscmVhZHkuCiBQUkVGSVgg d2lsbCBiZSBwYXNzZWQgdGhyb3VnaCB0byBgb3JnLWlkLW5ldycuCiBJbiBhbnkgY2FzZSwg dGhlIElEIG9mIHRoZSBlbnRyeSBpcyByZXR1cm5lZC4iCi0gIChsZXQgKChpZCAob3JnLWVu dHJ5LWdldCBlcG9tICJJRCIpKSkKKyAgKGxldCAoKGlkIChvcmctZW50cnktZ2V0IGVwb20g IklEIiAoYW5kIGluaGVyaXQgdCkpKSkKICAgICAoY29uZAogICAgICAoKGFuZCBpZCAoc3Ry aW5ncCBpZCkgKHN0cmluZy1tYXRjaCAiXFxTLSIgaWQpKQogICAgICAgaWQpCkBAIC03MDcs MTQgKzc1NCwyNiBAQCBvcHRpb25hbCBhcmd1bWVudCBNQVJLRVJQLCByZXR1cm4gdGhlIHBv c2l0aW9uIGFzIGEgbmV3IG1hcmtlci4iCiAoZGVmdW4gb3JnLWlkLXN0b3JlLWxpbmsgKCkK ICAgIlN0b3JlIGEgbGluayB0byB0aGUgY3VycmVudCBlbnRyeSwgdXNpbmcgaXRzIElELgog Ci1JZiBiZWZvcmUgZmlyc3QgaGVhZGluZyBzdG9yZSBmaXJzdCB0aXRsZS1rZXl3b3JkIGFz IGRlc2NyaXB0aW9uCi1vciBmaWxlbmFtZSBpZiBubyB0aXRsZS4iCitUaGUgbGluayBkZXNj cmlwdGlvbiBpcyBiYXNlZCBvbiB0aGUgaGVhZGluZywgb3IgaWYgYmVmb3JlIHRoZQorZmly c3QgaGVhZGluZywgdGhlIHRpdGxlIGtleXdvcmQgaWYgYXZhaWxhYmxlLCBvciBlbHNlIHRo ZQorZmlsZW5hbWUuCisKK1doZW4gYG9yZy1saW5rLWNvbnRleHQtZm9yLWZpbGVzJyBhbmQg YG9yZy1pZC1saW5rLXVzZS1jb250ZXh0JworYXJlIG5vbi1uaWwsIGFkZCBhIHNlYXJjaCBz dHJpbmcgdG8gdGhlIGxpbmsuICBUaGUgbGluaworZGVzY3JpcHRpb24gaXMgdGhlbiBiYXNl ZCBvbiB0aGUgc2VhcmNoIHN0cmluZyB0YXJnZXQuCisKK1doZW4gYG9yZy1pZC1saW5rLWNv bnNpZGVyLXBhcmVudC1pZCcgaXMgbm9uLW5pbCwgSUQgcHJvcGVydGllcworYXJlIGluaGVy aXRlZCBmcm9tIHBhcmVudCBlbnRyaWVzLiIKICAgKGludGVyYWN0aXZlKQotICAod2hlbiAo YW5kIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSAoZGVyaXZlZC1t b2RlLXAgJ29yZy1tb2RlKSkKLSAgICAobGV0KiAoKGxpbmsgKGNvbmNhdCAiaWQ6IiAob3Jn LWlkLWdldC1jcmVhdGUpKSkKKyAgKHdoZW4gKGFuZCAoYnVmZmVyLWZpbGUtbmFtZSAoYnVm ZmVyLWJhc2UtYnVmZmVyKSkKKyAgICAgICAgICAgICAoZGVyaXZlZC1tb2RlLXAgJ29yZy1t b2RlKSkKKyAgICAobGV0KiAoKGxpbmsgKGNvbmNhdCAiaWQ6IiAob3JnLWlkLWdldC1jcmVh dGUgbmlsIG9yZy1pZC1saW5rLWNvbnNpZGVyLXBhcmVudC1pZCkpKQorICAgICAgICAgICAo aWQtbG9jYXRpb24gKG9yIChhbmQgb3JnLWVudHJ5LXByb3BlcnR5LWluaGVyaXRlZC1mcm9t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2VyLXBvc2l0aW9uIG9y Zy1lbnRyeS1wcm9wZXJ0eS1pbmhlcml0ZWQtZnJvbSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChvcmctYmFjay10by1oZWFkaW5nLW9yLXBvaW50 LW1pbikgKHBvaW50KSkpKQogCSAgIChjYXNlLWZvbGQtc2VhcmNoIG5pbCkKIAkgICAoZGVz YyAoc2F2ZS1leGN1cnNpb24KLQkJICAgKG9yZy1iYWNrLXRvLWhlYWRpbmctb3ItcG9pbnQt bWluIHQpCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBpZC1sb2NhdGlvbikKICAg ICAgICAgICAgICAgICAgICAoY29uZCAoKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoa2V5d29yZHMgKG9yZy1jb2xsZWN0 LWtleXdvcmRzICcoIlRJVExFIikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYga2V5d29yZHMKQEAgLTcyNiwxNCArNzg1LDU5IEBAIG9yIGZpbGVuYW1lIGlmIG5vIHRp dGxlLiIKIAkJCSAgICAgIChtYXRjaC1zdHJpbmcgNCkKIAkJCSAgICAobWF0Y2gtc3RyaW5n IDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAodCBsaW5rKSkpKSkKKyAgICAgICh3 aGVuIChhbmQgb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMgb3JnLWlkLWxpbmstdXNlLWNv bnRleHQpCisgICAgICAgIChwY2FzZSAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRhcmdldCBp ZC1sb2NhdGlvbikKKyAgICAgICAgICAoYG5pbCBuaWwpCisgICAgICAgICAgKGAoLHNlYXJj aC1zdHJpbmcgLiAsc2VhcmNoLWRlc2MpCisgICAgICAgICAgIChzZXRxIGxpbmsgKGNvbmNh dCBsaW5rICI6OiIgc2VhcmNoLXN0cmluZykpCisgICAgICAgICAgIChzZXRxIGRlc2Mgc2Vh cmNoLWRlc2MpKSkpCiAgICAgICAob3JnLWxpbmstc3RvcmUtcHJvcHMgOmxpbmsgbGluayA6 ZGVzY3JpcHRpb24gZGVzYyA6dHlwZSAiaWQiKQogICAgICAgbGluaykpKQogCi0oZGVmdW4g b3JnLWlkLW9wZW4gKGlkIF8pCi0gICJHbyB0byB0aGUgZW50cnkgd2l0aCBpZCBJRC4iCi0g IChvcmctbWFyay1yaW5nLXB1c2gpCi0gIChsZXQgKChtIChvcmctaWQtZmluZCBpZCAnbWFy a2VyKSkKLQljbWQpCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG9yZy1pZC1zdG9yZS1saW5r LW1heWJlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmU/KQorICAiU3RvcmUgYSBsaW5rIHRvIHRo ZSBjdXJyZW50IGVudHJ5IHVzaW5nIGl0cyBJRCBpZiBlbmFibGVkLgorCitUaGUgdmFsdWUg b2YgYG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQnIGRldGVybWluZXMgd2hldGhlciBhbiBJ RAorbGluayBzaG91bGQgYmUgc3RvcmVkLCB1c2luZyBgb3JnLWlkLXN0b3JlLWxpbmsnLgor CitBc3N1bWUgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnRlcmFjdGl2ZWx5IGlmIElOVEVS QUNUSVZFPyBpcworbm9uLW5pbC4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgICh3aGVuIChh bmQgKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCisgICAgICAgICAg ICAgKGRlcml2ZWQtbW9kZS1wICdvcmctbW9kZSkKKyAgICAgICAgICAgICAob3IgKGVxIG9y Zy1pZC1saW5rLXRvLW9yZy11c2UtaWQgdCkKKyAgICAgICAgICAgICAgICAgKGFuZCBpbnRl cmFjdGl2ZT8KKyAgICAgICAgICAgICAgICAgICAgICAob3IgKGVxIG9yZy1pZC1saW5rLXRv LW9yZy11c2UtaWQgJ2NyZWF0ZS1pZi1pbnRlcmFjdGl2ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKGFuZCAoZXEgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JlYXRlLWlmLWludGVyYWN0aXZlLWFuZC1u by1jdXN0b20taWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAob3Jn LWVudHJ5LWdldCBuaWwgIkNVU1RPTV9JRCIpKSkpKQorICAgICAgICAgICAgICAgICAoYW5k IG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQKKyAgICAgICAgICAgICAgICAgICAgICAob3Jn LWVudHJ5LWdldCBuaWwgIklEIiBvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQpKSkp CisgICAgKG9yZy1pZC1zdG9yZS1saW5rKSkpCisKKyhkZWZ1biBvcmctaWQtb3BlbiAobGlu ayBfKQorICAiR28gdG8gdGhlIGVudHJ5IGluZGljYXRlZCBieSBpZCBsaW5rIExJTksuCisK K1RoZSBsaW5rIGNhbiBpbmNsdWRlIGEgc2VhcmNoIHN0cmluZyBhZnRlciBcIjo6XCIsIHdo aWNoIGlzCitwYXNzZWQgdG8gYG9yZy1saW5rLXNlYXJjaCcuCisKK0ZvciBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSB3aXRoIElEcyB0aGF0IGNvbnRhaW4gXCI6OlwiLCBpZiBubworbWF0 Y2ggaXMgZm91bmQgZm9yIHRoZSBJRCwgdGhlIGZ1bGwgbGluayBzdHJpbmcgaW5jbHVkaW5n IFwiOjpcIgord2lsbCBiZSB0cmllZCBhcyBhbiBJRC4iCisgIChsZXQqICgob3B0aW9uIChh bmQgKHN0cmluZy1tYXRjaCAiOjpcXCguKlxcKVxcJyIgbGluaykKKwkJICAgICAgKG1hdGNo LXN0cmluZyAxIGxpbmspKSkKKwkgKGlkIChpZiAobm90IG9wdGlvbikgbGluaworICAgICAg ICAgICAgICAgKHN1YnN0cmluZyBsaW5rIDAgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQorICAg ICAgICAgbSBjbWQpCisgICAgKG9yZy1tYXJrLXJpbmctcHVzaCkKKyAgICAoc2V0cSBtIChv cmctaWQtZmluZCBpZCAnbWFya2VyKSkKKyAgICAod2hlbiAoYW5kIChub3QgbSkgb3B0aW9u KQorICAgICAgOzsgQmFja3dhcmRzIGNvbXBhdGliaWxpdHk6IGlmIGlkIGlzIG5vdCBmb3Vu ZCwgdHJ5IHRyZWF0aW5nCisgICAgICA7OyB3aG9sZSBsaW5rIGFzIGFuIGlkLgorICAgICAg KHNldHEgbSAob3JnLWlkLWZpbmQgbGluayAnbWFya2VyKSkKKyAgICAgICh3aGVuIG0KKyAg ICAgICAgKHNldHEgb3B0aW9uIG5pbCkpKQogICAgICh1bmxlc3MgbQogICAgICAgKGVycm9y ICJDYW5ub3QgZmluZCBlbnRyeSB3aXRoIElEIFwiJXNcIiIgaWQpKQogICAgIDs7IFVzZSBh IGJ1ZmZlci1zd2l0Y2hpbmcgY29tbWFuZCBpbiBhbmFsb2d5IHRvIGZpbmRpbmcgZmlsZXMK QEAgLTc1MCw5ICs4NTQsMTYgQEAgb3IgZmlsZW5hbWUgaWYgbm8gdGl0bGUuIgogCShmdW5j YWxsIGNtZCAobWFya2VyLWJ1ZmZlciBtKSkpCiAgICAgKGdvdG8tY2hhciBtKQogICAgICht b3ZlLW1hcmtlciBtIG5pbCkKKyAgICAod2hlbiBvcHRpb24KKyAgICAgIChzYXZlLXJlc3Ry aWN0aW9uCisgICAgICAgICh1bmxlc3MgKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQor ICAgICAgICAgIChvcmctbmFycm93LXRvLXN1YnRyZWUpKQorICAgICAgICAob3JnLWxpbmst c2VhcmNoIG9wdGlvbikpKQogICAgIChvcmctZm9sZC1zaG93LWNvbnRleHQpKSkKIAotKG9y Zy1saW5rLXNldC1wYXJhbWV0ZXJzICJpZCIgOmZvbGxvdyAjJ29yZy1pZC1vcGVuKQorKG9y Zy1saW5rLXNldC1wYXJhbWV0ZXJzICJpZCIKKyAgOmZvbGxvdyAjJ29yZy1pZC1vcGVuCisg IDpzdG9yZSAjJ29yZy1pZC1zdG9yZS1saW5rLW1heWJlKQogCiAocHJvdmlkZSAnb3JnLWlk KQogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1vbC5lbCBiL3Rlc3RpbmcvbGlz cC90ZXN0LW9sLmVsCmluZGV4IGUwY2VjMDg1NC4uZmE4ZDE1YzJiIDEwMDY0NAotLS0gYS90 ZXN0aW5nL2xpc3AvdGVzdC1vbC5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVzdC1vbC5lbApA QCAtMzgxLDYgKzM4MSwxMzIgQEAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS95YW50YXI5Mi9v cmcvaXNzdWVzLzQuIgogCSAoZXF1YWwgKGZvcm1hdCAiW1tmaWxlOiVzOjoqZm9vIGJhcl1b Zm9vIGJhcl1dIiBmaWxlIGZpbGUpCiAJCShvcmctc3RvcmUtbGluayBuaWwpKSkpKSkpCiAK KyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy1saW5rL3ByZWNpc2UtbGluay10YXJnZXQgKCkKKyAg IlRlc3QgYG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXRgIHNwZWNpZmljYXRpb25zLiIK KyAgKHNob3VsZAorICAgKGVxdWFsICcoIipIMSIgLiAiSDEiKQorICAgICAgICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIMTxwb2ludD5cbiogSDJcbiIKKyAgICAgICAgICAg IChvcmctbGluay1wcmVjaXNlLWxpbmstdGFyZ2V0KSkpKQorICAoc2hvdWxkCisgICAoZXF1 YWwgJygiZm9vIiAuICJmb28iKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dCAiKiBIMVxuIytuYW1lOiBmb288cG9pbnQ+XG4jK2JlZ2luX2V4YW1wbGVcbmhpXG4jK2Vu ZF9leGFtcGxlXG4iCisgICAgICAgICAgICAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRhcmdl dCkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsICcoIlRleHQiIC4gbmlsKQorICAgICAgICAg IChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiXG5UZXh0PHBvaW50PlxuKiBIMVxuIgorICAg ICAgICAgICAgKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQpKSkpCisgIChzaG91bGQK KyAgIChlcXVhbCBuaWwKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIlxu PHBvaW50PlxuKiBIMVxuIgorICAgICAgICAgICAgKG9yZy1saW5rLXByZWNpc2UtbGluay10 YXJnZXQpKSkpCisgIDs7IHJlbGF0aXZlIHRvIGEgaGVhZGluZworICAoc2hvdWxkCisgICAo ZXF1YWwgbmlsCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgxPHBv aW50PlxuKiBIMlxuIgorICAgICAgICAgICAgKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJn ZXQgMSkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsICcoIipIMiIgLiAiSDIiKQorICAgICAg ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIMVxuKiBIMjxwb2ludD5cbiIKKyAg ICAgICAgICAgIChvcmctbGluay1wcmVjaXNlLWxpbmstdGFyZ2V0IDEpKSkpCisgIChzaG91 bGQKKyAgIChlcXVhbCBuaWwKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQg IiogSDFcbiogSDI8cG9pbnQ+XG4iCisgICAgICAgICAgICAob3JnLWxpbmstcHJlY2lzZS1s aW5rLXRhcmdldCA2KSkpKQorICApCisKKyhkZWZtYWNybyB0ZXN0LW9sLXN0b3JlZC1saW5r LXdpdGgtdGV4dCAodGV4dCAmcmVzdCBib2R5KQorICAiUmV0dXJuIDpsaW5rIGFuZCA6ZGVz Y3JpcHRpb24gZnJvbSBsaW5rIHN0b3JlZCBpbiBib2R5LiIKKyAgKGRlY2xhcmUgKGluZGVu dCAxKSkKKyAgYChsZXQgKG9yZy1zdG9yZS1saW5rLXBsaXN0KQorICAgICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQtaW4tZmlsZSAsdGV4dAorICAgICAgICxAYm9keQorICAgICAgIChs aXN0IChwbGlzdC1nZXQgb3JnLXN0b3JlLWxpbmstcGxpc3QgOmxpbmspCisgICAgICAgICAg ICAgKHBsaXN0LWdldCBvcmctc3RvcmUtbGluay1wbGlzdCA6ZGVzY3JpcHRpb24pKSkpKQor CisoZXJ0LWRlZnRlc3QgdGVzdC1vcmctbGluay9pZC1zdG9yZS1saW5rICgpCisgICJUZXN0 IGBvcmctaWQtc3RvcmUtbGluaycgc3BlY2lmaWNhdGlvbnMuIgorICAobGV0ICgob3JnLWlk LWxpbmstdG8tb3JnLXVzZS1pZCBuaWwpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICco bmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAi KiBIMVxuOlBST1BFUlRJRVM6XG46SUQ6IGFiY1xuOkVORDpcbiIKKyAgICAgICAgICAgICAg KG9yZy1pZC1zdG9yZS1saW5rLW1heWJlIHQpKSkpKQorICA7OyBPbiBhIGhlYWRsaW5lLCBs aW5rIHRvIHRoYXQgaGVhZGxpbmUncyBJRC4gIFVzZSBoZWFkaW5nIGFzIHRoZQorICA7OyBk ZXNjcmlwdGlvbiBvZiB0aGUgbGluay4KKyAgKGxldCAoKG9yZy1pZC1saW5rLXRvLW9yZy11 c2UtaWQgdCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJygiaWQ6YWJjIiAiSDEiKQor ICAgICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG46UFJP UEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0 b3JlLWxpbmstbWF5YmUgdCkpKSkpCisgIDs7IFJlbW92ZSBUT0RPIGtleXdvcmRzIGV0YyBm cm9tIGRlc2NyaXB0aW9uIG9mIHRoZSBsaW5rLgorICAobGV0ICgob3JnLWlkLWxpbmstdG8t b3JnLXVzZS1pZCB0KSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKCJpZDphYmMiICJI MSIpCisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogVE9E TyBbI0FdIEgxIDp0YWc6XG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuIgorICAg ICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmstbWF5YmUgdCkpKSkpCisgIDs7IGNyZWF0 ZS1pZi1pbnRlcmFjdGl2ZQorICAobGV0ICgob3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCAn Y3JlYXRlLWlmLWludGVyYWN0aXZlKSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKCJp ZDphYmMiICJIMSIpCisgICAgICAgICAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24g J29yZy1pZC1uZXcpCisgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCZyZXN0IF9y ZXN0KSAiYWJjIikpKQorICAgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRo LXRleHQgIiogSDFcbiIKKyAgICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmstbWF5 YmUgdCkpKSkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJyhuaWwgbmlsKQorICAgICAg ICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG4iCisgICAgICAg ICAgICAgIChvcmctaWQtc3RvcmUtbGluay1tYXliZSBuaWwpKSkpKQorICA7OyBjcmVhdGUt aWYtaW50ZXJhY3RpdmUtYW5kLW5vLWN1c3RvbS1pZAorICAobGV0ICgob3JnLWlkLWxpbmst dG8tb3JnLXVzZS1pZCAnY3JlYXRlLWlmLWludGVyYWN0aXZlLWFuZC1uby1jdXN0b20taWQp KQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICcoImlkOmFiYyIgIkgxIikKKyAgICAgICAg ICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnb3JnLWlkLW5ldykKKyAgICAgICAg ICAgICAgICAgICAgICAgKGxhbWJkYSAoJnJlc3QgX3Jlc3QpICJhYmMiKSkpCisgICAgICAg ICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuIgorICAgICAg ICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluay1tYXliZSB0KSkpKSkKKyAgICAoc2hvdWxk CisgICAgIChlcXVhbCAnKG5pbCBuaWwpCisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQt bGluay13aXRoLXRleHQgIiogSDFcbjpQUk9QRVJUSUVTOlxuOkNVU1RPTV9JRDogeHl6XG46 RU5EOlxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmstbWF5YmUgdCkpKSkK KyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKG5pbCBuaWwpCisgICAgICAgICAgICAodGVz dC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogSDFcbiIKKyAgICAgICAgICAgICAgKG9y Zy1pZC1zdG9yZS1saW5rLW1heWJlIG5pbCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1v cmctbGluay9pZC1zdG9yZS1saW5rLXVzaW5nLXBhcmVudCAoKQorICAiVGVzdCBgb3JnLWlk LXN0b3JlLWxpbmsnIHNwZWNpZmljYXRpb25zIHdpdGggYG9yZy1pZC1saW5rLWNvbnNpZGVy LXBhcmVudC1pZGAgc2V0LiIKKyAgOzsgd2hlbiB1c2luZyBjb250ZXh0IHRvIHN0aWxsIGZp bmQgc3BlY2lmaWMgaGVhZGluZworICAobGV0ICgob3JnLWlkLWxpbmstY29uc2lkZXItcGFy ZW50LWlkIHQpCisgICAgICAgIChvcmctaWQtbGluay11c2UtY29udGV4dCB0KSkKKyAgICAo c2hvdWxkCisgICAgIChlcXVhbCAnKCJpZDphYmM6OipIMiIgIkgyIikKKyAgICAgICAgICAg ICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuOlBST1BFUlRJRVM6XG46 SUQ6IGFiY1xuOkVORDpcbioqIEgyXG48cG9pbnQ+IgorICAgICAgICAgICAgICAob3JnLWlk LXN0b3JlLWxpbmspKSkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJygiaWQ6YWJjOjpu YW1lIiAibmFtZSIpCisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRl eHQgIiogSDFcbjpQUk9QRVJUSUVTOlxuOklEOiBhYmNcbjpFTkQ6XG5cbiMrbmFtZTogbmFt ZVxuPHBvaW50PiMrYmVnaW5fZXhhbXBsZVxuaGlcbiMrZW5kX2V4YW1wbGVcbiIKKyAgICAg ICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rKSkpKQorICAgIChzaG91bGQKKyAgICAgKGVx dWFsICcoImlkOmFiYyIgIkgxIikKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5r LXdpdGgtdGV4dCAiKiBIMTxwb2ludD5cbjpQUk9QRVJUSUVTOlxuOklEOiBhYmNcbjpFTkQ6 XG4qKiBIMlxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmspKSkpKQorICA7 OyB3aGVuIG5vdCB1c2luZyBjb250ZXh0LCBkZXNjcmlwdGlvbiBzaG91bGQgYmUgdGhlIHBh cmVudC9maWxlCisgIChsZXQgKChvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQgdCkK KyAgICAgICAgKG9yZy1pZC1saW5rLXVzZS1jb250ZXh0IG5pbCkpCisgICAgKHNob3VsZAor ICAgICAoZXF1YWwgJygiaWQ6YWJjIiAiSDEiKQorICAgICAgICAgICAgKHRlc3Qtb2wtc3Rv cmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5E OlxuKiogSDJcbjxwb2ludD4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluaykp KSkKKyAgICAoc2hvdWxkCisgICAgIChsZXQgKChyZXN1bHQgKHRlc3Qtb2wtc3RvcmVkLWxp bmstd2l0aC10ZXh0ICI6UFJPUEVSVElFUzpcbjpJRDogdG9wXG46RU5EOlxuOiogSDFcbjxw b2ludD4iCisgICAgICAgICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmspKSkpCisg ICAgICAgKGVxdWFsICJpZDp0b3AiIChjYXIgcmVzdWx0KSkKKyAgICAgICA7OyBzdHJpcCBy YW5kb20gYnVmZmVyIGZpbGUgbmFtZQorICAgICAgIChlcXVhbCAib3JnLXRlc3QiIChzdWJz dHJpbmcgKGNhZHIgcmVzdWx0KSAwIDgpKSkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwg JygiaWQ6dG9wIiAidGl0bGUiKQorICAgICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmst d2l0aC10ZXh0ICI6UFJPUEVSVElFUzpcbjpJRDogdG9wXG46RU5EOlxuIytUSVRMRTogdGl0 bGVcblxuOiogSDFcbjxwb2ludD4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGlu aykpKSkpKQorCiAMCiA7OzsgUmFkaW8gVGFyZ2V0cwogCg== --e1c7c031352d4d40a09172e3b1d6f3f0--