Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vlMjj-00AR4q-1O for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Jan 2026 07:46:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vlMji-0076QT-15 for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Jan 2026 07:46:42 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vlMjh-0076Q3-1c for pgsql-hackers@lists.postgresql.org; Thu, 29 Jan 2026 07:46:42 +0000 Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vlMjd-002sh1-0u for pgsql-hackers@postgresql.org; Thu, 29 Jan 2026 07:46:40 +0000 Received: by mail-ua1-x92c.google.com with SMTP id a1e0cc1a2514c-9413e5ee53eso454135241.0 for ; Wed, 28 Jan 2026 23:46:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769672797; cv=none; d=google.com; s=arc-20240605; b=d3njyKr82AVLkfgfFBrl+mIyNqigMy8V7Wd8nrpXE1eri1vV02df5szl9iTtXAoxNB o6nG+5dKMJDMubsG/R3UchEtgzAjhawiaZwr37uPtfNiQSYJQJz43rblYtlCq3j4dwnT ySJEAJscCzShM0i1kVlMWO2f3Ahc+aiTBpEWCS5BDaxeWINBN+/J/43oBPrNP+c43nMC MHWmXVm6+q4xEtjbiNjpK87doqNeu3W7kAxw2ERrCnT9z5yTiJnIxy56QOmLKyzL3YKe oxE09suvrUUFtmiRXDXHgsCDCVy7ID5kExis4VXfVnwoAqj8SFdQgZckVCftu2o7Ql8I OD8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=gAGwhDMOquzxyM/VwNIO08/p4U0Ljkio6AbxkgsiwmQ=; fh=avB99NFUZUuRO6EvyVDHl1BZtkVYgSwrgysLOrUtkoQ=; b=UQTNtKo5fIP6ht/jIrkMfh97g79yJj8RHfH8HwdAMOapdf2WwF4DVWhB1HoipsXyIB zg7wiH4ahmWdS5rfhQ/uPowBJHSM4q/tlf+0EIYEAGmWTOu0nZ9StAbnnBAGknMCJa/y xYsWHwbR7lPOw9OxcPOwDM88C+6tLLl1cMBiPHdm3lTfwP7J9BLG6H4wWI2+mK68lgvn oDkEZEhxYSYRj0J8h0xrbScW1Hynf1s6w5U2y6nK3yDw2nIPV+kS4izc+0hJbNBrm8ti 2x8IEuAvv+fHA22y05sZbf5cH8MsX4o1RJ15V0XDUQ6EkIna+JyanvBZcmO9GCx9hYxJ 0r2Q==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769672797; x=1770277597; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gAGwhDMOquzxyM/VwNIO08/p4U0Ljkio6AbxkgsiwmQ=; b=fFA1/N3L1+n93dG+9SEcfuagLFAKLy2LFrOalJ0pq92U/tnCj31e0EzuNSq0OadHlY 9pko1DNW/FmmLIr3rVW+SlTfMJzdQ2XGS5xmuf2nAq/sxjXB+ocP7l0f7qSs0Pr3teVt zl2kL6/SaBkxv9RIFzeVdfqayvWGC15YV2ueag7pL680F7Xv0fRoqDjAkytOwhr5v9IB fjiGAvWjPTX3XkHcB3M7XiR0iHJwrHodeoLNk3lU/3XH7HvMHdOzklRjczmj+zm/IQ+x 1wIQ2EsKT4K+BmmHrIpt+iwULcb5DoyUhwqXshqx69tvuoeIIBn1/VHCiXrPKTDbvi7a ThLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769672797; x=1770277597; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gAGwhDMOquzxyM/VwNIO08/p4U0Ljkio6AbxkgsiwmQ=; b=MjKo8nQzQ4hP+3/WvteoGw1Q2frpoCJEWfJJYaoaktRx47YXjRKBolwe3LFG4+zrFj angFxXhjAj8Q7m0y8Mlp+OxPBA6gRsL+T4xf4SQeE1kmPSHaT596GHgffmnfmXLdbDX4 qhZnFb8ymnj+CAWMtAL9ntY3+uMK24bzJsi02mOBcz9RO83V1Dfp+FzZE3L07ctt1PDj PpXA2SZ8bAhp/okoNIzDEadKJBPwom/zBB3yFOOdpJPrTm7WEKTrsKkwZuuvy7sj3j8t kgROMPd0W+km/nZC1d0efgkGR8/b8i1GoP6wskSEjhG3ZndI1c/ItfCvW1KHgV1a9MvF wKow== X-Forwarded-Encrypted: i=1; AJvYcCUthjFFuEVawgig6F2rsvlrwP8LE+6kL7uj4yyLlPOTo6DkxoT/ofngCxZeH/BHyijFPwq2voCkCS6lQndY@postgresql.org X-Gm-Message-State: AOJu0YzvaCw40reNa/O74E0cT/zgIGGV65qRbWwCYv/CxMqwUGCA4W67 qNNulAhVIsII0A5woumZHMtq3DxMpURyoKtsJO7fMCjoPy30hqO8MoMVRDirrU//uaJnkOquZLA 1btvCXRWpFGavdSSAlicC+TtPLl4g8dA= X-Gm-Gg: AZuq6aKgdQNg9cVtpo8MtS8tMZH4V6hn+zLqJ4vL5B2vWpsSffr2Qf4ipF7mijXmYuT tbUnLH7lruL9KYhbXoifvMUL7n/Da5r2+rxrB+MWJO0BBF3MTe1ApCYL85RE6JN36/uJANM4fcK aIs9yODZ6mCB83p7XABxuHfp9F2six9ZXethCm0dCj+jWz75hCH395Os+vZgg44C2XJzUD2XdyM VlJi6RbSxqq8jXew0My2EzVZwMDtrcxo8EqNORRb9dLKIdi2OKCl5wlaUkTRMMNbeA5NXZtA8J8 GmDs+j7mRtXCLtzctXPsVQLePa//ZEb4jwJeCnZeKo4Ef5qUrlBsizDN7qlN/h49MAdIN9uyO/k oC2CPPjLY+T5I1xlMXnQp+cLsEDBup9EbVEpcZMmn9Y0XcuEtwHWWxtbHnKX2E1ZnwFyDLIzX3O MEMiTq7sxXdSpIxtmBBjoP X-Received: by 2002:a05:6102:c87:b0:5ee:a76a:8513 with SMTP id ada2fe7eead31-5f7238cba75mr3338847137.33.1769672797084; Wed, 28 Jan 2026 23:46:37 -0800 (PST) MIME-Version: 1.0 References: <4c358bf8-87e8-4760-83d5-a6f9fcd88907@postgresfriends.org> <1b702de4-86b0-4144-a2d0-38266296894f@postgresfriends.org> <82b4223e-84d4-432d-8167-dd698ce489f5@postgresfriends.org> In-Reply-To: From: jian he Date: Thu, 29 Jan 2026 15:46:00 +0800 X-Gm-Features: AZwV_QjLHY6SmqvInRrVLXOAToDmKweQgr7AxKta6W2s2J6w6jQ5tRUv8Kqu1GU Message-ID: Subject: Re: implement CAST(expr AS type FORMAT 'template') To: Vik Fearing Cc: "David G. Johnston" , Corey Huinker , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000708dcb0649820ee9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000708dcb0649820ee9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable hi. Please check the attached new version. I=E2=80=99ve integrated the CAST FORMAT logic right into coerce_to_target_t= ype and coerce_type, see static function coerce_type_with_format. in coerce_type_with_format, we first first do source type, target type, format expression check, validation, if everything is ok then, construct a FuncCal= l node and let ParseFuncOrColumn do all the remaining job, with that now over= all the patch looks more neat. I have tried to transform SELECT CAST(NULL::text as time FORMAT NULL); into SELECT CAST( NULL::text AS timestamp with time zone FORMAT NULL::text)::tim= e; Then later realized it will not work, so CAST FORMAT can only be applied to= the result type of the following formatting functions: to_char, to_number, to_d= ate, or to_timestamp. The tests are extensive. I put them right next to the to_char, to_number, to_date, and to_timestamp tests so it's super easy to compare the results w= ith CAST FORMAT. -- jian https://www.enterprisedb.com/ --000000000000708dcb0649820ee9 Content-Type: text/x-patch; charset="UTF-8"; name="v5-0001-CAST-expr-AS-type-FORMAT-template.patch" Content-Disposition: attachment; filename="v5-0001-CAST-expr-AS-type-FORMAT-template.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkz5gn9x0 RnJvbSBiNTBkMjYzMDIwMTliZDFiMDkwNTZlNTAwYjZhMzJjMWE4NTRiMDQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTU6MDA6MzkgKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 IDEvMV0gQ0FTVChleHByIEFTIHR5cGUgRk9STUFUICd0ZW1wbGF0ZScpCgpUaGlzIGVuYWJsZXMg dGhlIENBU1QoZXhwcmVzc2lvbiBBUyB0eXBlIEZPUk1BVCB0ZW1wbGF0ZSkgc3ludGF4LgoKRm9y IEJpbmFyeS1jb2VyY2libGUgY2FzdHM6IFNwZWNpZnlpbmcgYSBmb3JtYXQgdGVtcGxhdGUgZm9y IGJpbmFyeS1jb2VyY2libGUKY2FzdHMgKGUuZy4sIHRleHQgdG8gdGV4dCkgd2lsbCBub3cgcmFp c2UgYW4gZXJyb3IuCgpObyBwZ19jYXN0IGVudHJpZXMgaGF2ZSBiZWVuIG1vZGlmaWVkIGF0IHRo aXMgc3RhZ2UuIEFkZGluZyB0aGVzZQpmb3JtYXR0aW5nIGZ1bmN0aW9ucyB0byBwZ19jYXN0IGhh cyBjb21wbGV4IGltcGxpY2F0aW9ucyByZXF1aXJpbmcgZnVydGhlcgpkaXNjdXNzaW9uIChzZWUg WzFdKSBhbmQgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSB0byBhY2hpZXZlIHRoZSBjdXJyZW50 CmJlaGF2aW9yLgoKVW5kZXIgdGhlIGhvb2QsIENBU1QgRk9STUFUIGlzIHRyYW5zZm9ybWVkIGlu dG8gYSBGdW5jRXhwciBub2RlLiAgU2luY2Ugb25seQpmdW5jdGlvbiB0b19jaGFyLCB0b19kYXRl LCB0b19udW1iZXIsIGFuZCB0b190aW1lc3RhbXAgc3VwcG9ydCBmb3JtYXR0aW5nLCB0aGlzCmZl YXR1cmUgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8gdGhlIGlucHV0IGFuZCByZXN1bHQgdHlwZXMg Y29tcGF0aWJsZSB3aXRoIHRoZXNlCmZ1bmN0aW9ucy4KClsxXTogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUNKdWZ4RjRPVz14MnJDd2ErWm1jZ29wRHdHS0RYaGEwOXFUZlRwQ2ozUVNURzZZOVFAbWFp bC5nbWFpbC5jb20KY29udGV4dDogaHR0cHM6Ly93aWtpLnBvc3RncmVzcWwub3JnL3dpa2kvUG9z dGdyZVNRTF92c19TUUxfU3RhbmRhcmQjTWFqb3JfZmVhdHVyZXNfc2ltcGx5X25vdF9pbXBsZW1l bnRlZF95ZXQKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4R3FtN2NZUTVD NjVFb2gxei1mK2FNZGh2OV83Vj1Ob0xIX3A2dXV5ZXNpNkFAbWFpbC5nbWFpbC5jb20KY29tbWl0 ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU5NTcKLS0tCiBj b250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICAgICAgfCAgNjMgKysrKysK IGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgICAgICB8ICA2MyArKysr KwogY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsr CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDIgKwog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAyNDEgKysrKysr KysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAg ICAgfCAgMjEgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAg fCAgMTkgKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmggICAgICAgICAgICAgfCAg MTEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91dCAgIHwgIDMz ICsrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ob3JvbG9neS5vdXQgICAgICAgIHwgMTI5 ICsrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50ZXJ2YWwub3V0ICAgICAg ICB8ICAxMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21pc2Mub3V0ICAgICAgICAgICAg fCAyMTYgKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcmlj Lm91dCAgICAgICAgIHwgMTQ3ICsrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xs YXRlLmxpbnV4LnV0Zjguc3FsICAgfCAgIDcgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaG9yb2xv Z3kuc3FsICAgICAgICAgICAgIHwgIDQyICsrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50ZXJ2 YWwuc3FsICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2Muc3Fs ICAgICAgICAgICAgICAgICB8ICA4MCArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVy aWMuc3FsICAgICAgICAgICAgICB8ICAyNiArLQogMjEgZmlsZXMgY2hhbmdlZCwgMTE0MyBpbnNl cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApp bmRleCA4YzBiZjU0ZjBmMy4uN2E1OGZmMzQzY2UgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 Lm91dApAQCAtMjIxMCw2ICsyMjEwLDI3IEBAIFNFTEVDVCB0b19kYXRlKCcwNSBEZWMgMjAwMCcs ICAgICAgICAgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQogIHQKICgxIHJvdykKIAorU0VMRUNUIGNh c3QoJzA1IERlYyAyMDAwJzo6Y2l0ZXh0IGFzIGRhdGUgZm9ybWF0ICdERCBNb24gWVlZWSc6OmNp dGV4dCkKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZ WVlZJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgY2FzdCgnMDUgRGVj IDIwMDAnOjpjaXRleHQgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykKKyAgICAgPSBjYXN0 KCcwNSBEZWMgMjAwMCcgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKyB0IAor LS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgY2FzdCgnMDUgRGVjIDIwMDAnIGFzIGRhdGUgZm9y bWF0ICdERCBNb24gWVlZWSc6OmNpdGV4dCkKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcgYXMg ZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQor CiBTRUxFQ1QgdG9fbnVtYmVyKCcxMiw0NTQuOC0nOjpjaXRleHQsICc5OUc5OTlEOVMnOjpjaXRl eHQpCiAgICAgID0gdG9fbnVtYmVyKCcxMiw0NTQuOC0nLCAgICAgICAgICc5OUc5OTlEOVMnKSBB UyB0OwogIHQgCkBAIC0yMjMxLDYgKzIyNTIsMjcgQEAgU0VMRUNUIHRvX251bWJlcignMTIsNDU0 LjgtJywgICAgICAgICAnOTlHOTk5RDlTJzo6Y2l0ZXh0KQogIHQKICgxIHJvdykKIAorU0VMRUNU IGNhc3QoJzEyLDQ1NC44LSc6OmNpdGV4dCBhcyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJzo6 Y2l0ZXh0KQorICAgICA9IGNhc3QoJzEyLDQ1NC44LScgYXMgbnVtZXJpYyBmb3JtYXQgJzk5Rzk5 OUQ5UycpIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGNhc3QoJzEyLDQ1 NC44LSc6OmNpdGV4dCBhcyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJykKKyAgICAgPSBjYXN0 KCcxMiw0NTQuOC0nIGFzIG51bWVyaWMgZm9ybWF0ICc5OUc5OTlEOVMnKSBBUyB0OworIHQgCist LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBjYXN0KCcxMiw0NTQuOC0nIGFzIG51bWVyaWMgZm9y bWF0ICc5OUc5OTlEOVMnOjpjaXRleHQpCisgICAgID0gY2FzdCgnMTIsNDU0LjgtJyBhcyBudW1l cmljIGZvcm1hdCAnOTlHOTk5RDlTJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBT RUxFQ1QgdG9fdGltZXN0YW1wKCcwNSBEZWMgMjAwMCc6OmNpdGV4dCwgJ0REIE1vbiBZWVlZJzo6 Y2l0ZXh0KQogICAgICA9IHRvX3RpbWVzdGFtcCgnMDUgRGVjIDIwMDAnLCAgICAgICAgICdERCBN b24gWVlZWScpIEFTIHQ7CiAgdCAKQEAgLTIyNTIsNiArMjI5NCwyNyBAQCBTRUxFQ1QgdG9fdGlt ZXN0YW1wKCcwNSBEZWMgMjAwMCcsICAgICAgICAgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQogIHQK ICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzA1IERlYyAyMDAwJzo6Y2l0ZXh0IGFzIHRpbWVzdGFt cHR6IGZvcm1hdCAnREQgTW9uIFlZWVknOjpjaXRleHQpCisgICAgID0gY2FzdCgnMDUgRGVjIDIw MDAnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnREQgTW9uIFlZWVknKSBBUyB0OworIHQgCistLS0K KyB0CisoMSByb3cpCisKK1NFTEVDVCBjYXN0KCcwNSBEZWMgMjAwMCc6OmNpdGV4dCBhcyB0aW1l c3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZJykKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcg YXMgdGltZXN0YW1wdHogZm9ybWF0ICdERCBNb24gWVlZWScpIEFTIHQ7CisgdCAKKy0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGNhc3QoJzA1IERlYyAyMDAwJyBhcyB0aW1lc3RhbXB0eiBmb3Jt YXQgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQorICAgICA9IGNhc3QoJzA1IERlYyAyMDAwJyBhcyB0 aW1lc3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEg cm93KQorCiAtLSBUcnkgYXNzaWduaW5nIGZ1bmN0aW9uIHJlc3VsdHMgdG8gYSBjb2x1bW4uCiBT RUxFQ1QgQ09VTlQoKikgPSA4OjpiaWdpbnQgQVMgdCBGUk9NIHRyeTsKICB0IApkaWZmIC0tZ2l0 IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CmluZGV4IGM1ZTVmMTgwZjJiLi45NTEzYmI3MmNlMyAxMDA2 NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRy aWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMjIxMCw2ICsyMjEwLDI3IEBAIFNF TEVDVCB0b19kYXRlKCcwNSBEZWMgMjAwMCcsICAgICAgICAgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0 KQogIHQKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzA1IERlYyAyMDAwJzo6Y2l0ZXh0IGFzIGRh dGUgZm9ybWF0ICdERCBNb24gWVlZWSc6OmNpdGV4dCkKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAw MCcgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgY2FzdCgnMDUgRGVjIDIwMDAnOjpjaXRleHQgYXMgZGF0ZSBmb3JtYXQg J0REIE1vbiBZWVlZJykKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcgYXMgZGF0ZSBmb3JtYXQg J0REIE1vbiBZWVlZJykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgY2Fz dCgnMDUgRGVjIDIwMDAnIGFzIGRhdGUgZm9ybWF0ICdERCBNb24gWVlZWSc6OmNpdGV4dCkKKyAg ICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMg dDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgdG9fbnVtYmVyKCcxMiw0NTQuOC0n OjpjaXRleHQsICc5OUc5OTlEOVMnOjpjaXRleHQpCiAgICAgID0gdG9fbnVtYmVyKCcxMiw0NTQu OC0nLCAgICAgICAgICc5OUc5OTlEOVMnKSBBUyB0OwogIHQgCkBAIC0yMjMxLDYgKzIyNTIsMjcg QEAgU0VMRUNUIHRvX251bWJlcignMTIsNDU0LjgtJywgICAgICAgICAnOTlHOTk5RDlTJzo6Y2l0 ZXh0KQogIHQKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzEyLDQ1NC44LSc6OmNpdGV4dCBhcyBu dW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJzo6Y2l0ZXh0KQorICAgICA9IGNhc3QoJzEyLDQ1NC44 LScgYXMgbnVtZXJpYyBmb3JtYXQgJzk5Rzk5OUQ5UycpIEFTIHQ7CisgdCAKKy0tLQorIHQKKygx IHJvdykKKworU0VMRUNUIGNhc3QoJzEyLDQ1NC44LSc6OmNpdGV4dCBhcyBudW1lcmljIGZvcm1h dCAnOTlHOTk5RDlTJykKKyAgICAgPSBjYXN0KCcxMiw0NTQuOC0nIGFzIG51bWVyaWMgZm9ybWF0 ICc5OUc5OTlEOVMnKSBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBjYXN0 KCcxMiw0NTQuOC0nIGFzIG51bWVyaWMgZm9ybWF0ICc5OUc5OTlEOVMnOjpjaXRleHQpCisgICAg ID0gY2FzdCgnMTIsNDU0LjgtJyBhcyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJykgQVMgdDsK KyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcwNSBEZWMgMjAw MCc6OmNpdGV4dCwgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQogICAgICA9IHRvX3RpbWVzdGFtcCgn MDUgRGVjIDIwMDAnLCAgICAgICAgICdERCBNb24gWVlZWScpIEFTIHQ7CiAgdCAKQEAgLTIyNTIs NiArMjI5NCwyNyBAQCBTRUxFQ1QgdG9fdGltZXN0YW1wKCcwNSBEZWMgMjAwMCcsICAgICAgICAg J0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQogIHQKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzA1IERl YyAyMDAwJzo6Y2l0ZXh0IGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnREQgTW9uIFlZWVknOjpjaXRl eHQpCisgICAgID0gY2FzdCgnMDUgRGVjIDIwMDAnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnREQg TW9uIFlZWVknKSBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBjYXN0KCcw NSBEZWMgMjAwMCc6OmNpdGV4dCBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZJykK KyAgICAgPSBjYXN0KCcwNSBEZWMgMjAwMCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdERCBNb24g WVlZWScpIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGNhc3QoJzA1IERl YyAyMDAwJyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQorICAg ICA9IGNhc3QoJzA1IERlYyAyMDAwJyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZ JykgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiAtLSBUcnkgYXNzaWduaW5nIGZ1bmN0 aW9uIHJlc3VsdHMgdG8gYSBjb2x1bW4uCiBTRUxFQ1QgQ09VTlQoKikgPSA4OjpiaWdpbnQgQVMg dCBGUk9NIHRyeTsKICB0IApkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5z cWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBhYTFjZjlhYmQ1Yy4uMWIz MmI4YmY2NTYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCisrKyBi L2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC02NzcsNiArNjc3LDEzIEBAIFNFTEVD VCB0b19kYXRlKCcwNSBEZWMgMjAwMCc6OmNpdGV4dCwgJ0REIE1vbiBZWVlZJykKIFNFTEVDVCB0 b19kYXRlKCcwNSBEZWMgMjAwMCcsICAgICAgICAgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQogICAg ICA9IHRvX2RhdGUoJzA1IERlYyAyMDAwJywgICAgICAgICAnREQgTW9uIFlZWVknKSBBUyB0Owog CitTRUxFQ1QgY2FzdCgnMDUgRGVjIDIwMDAnOjpjaXRleHQgYXMgZGF0ZSBmb3JtYXQgJ0REIE1v biBZWVlZJzo6Y2l0ZXh0KQorICAgICA9IGNhc3QoJzA1IERlYyAyMDAwJyBhcyBkYXRlIGZvcm1h dCAnREQgTW9uIFlZWVknKSBBUyB0OworU0VMRUNUIGNhc3QoJzA1IERlYyAyMDAwJzo6Y2l0ZXh0 IGFzIGRhdGUgZm9ybWF0ICdERCBNb24gWVlZWScpCisgICAgID0gY2FzdCgnMDUgRGVjIDIwMDAn IGFzIGRhdGUgZm9ybWF0ICdERCBNb24gWVlZWScpIEFTIHQ7CitTRUxFQ1QgY2FzdCgnMDUgRGVj IDIwMDAnIGFzIGRhdGUgZm9ybWF0ICdERCBNb24gWVlZWSc6OmNpdGV4dCkKKyAgICAgPSBjYXN0 KCcwNSBEZWMgMjAwMCcgYXMgZGF0ZSBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKwogU0VM RUNUIHRvX251bWJlcignMTIsNDU0LjgtJzo6Y2l0ZXh0LCAnOTlHOTk5RDlTJzo6Y2l0ZXh0KQog ICAgICA9IHRvX251bWJlcignMTIsNDU0LjgtJywgICAgICAgICAnOTlHOTk5RDlTJykgQVMgdDsK IFNFTEVDVCB0b19udW1iZXIoJzEyLDQ1NC44LSc6OmNpdGV4dCwgJzk5Rzk5OUQ5UycpCkBAIC02 ODQsNiArNjkxLDEzIEBAIFNFTEVDVCB0b19udW1iZXIoJzEyLDQ1NC44LSc6OmNpdGV4dCwgJzk5 Rzk5OUQ5UycpCiBTRUxFQ1QgdG9fbnVtYmVyKCcxMiw0NTQuOC0nLCAgICAgICAgICc5OUc5OTlE OVMnOjpjaXRleHQpCiAgICAgID0gdG9fbnVtYmVyKCcxMiw0NTQuOC0nLCAgICAgICAgICc5OUc5 OTlEOVMnKSBBUyB0OwogCitTRUxFQ1QgY2FzdCgnMTIsNDU0LjgtJzo6Y2l0ZXh0IGFzIG51bWVy aWMgZm9ybWF0ICc5OUc5OTlEOVMnOjpjaXRleHQpCisgICAgID0gY2FzdCgnMTIsNDU0LjgtJyBh cyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJykgQVMgdDsKK1NFTEVDVCBjYXN0KCcxMiw0NTQu OC0nOjpjaXRleHQgYXMgbnVtZXJpYyBmb3JtYXQgJzk5Rzk5OUQ5UycpCisgICAgID0gY2FzdCgn MTIsNDU0LjgtJyBhcyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJykgQVMgdDsKK1NFTEVDVCBj YXN0KCcxMiw0NTQuOC0nIGFzIG51bWVyaWMgZm9ybWF0ICc5OUc5OTlEOVMnOjpjaXRleHQpCisg ICAgID0gY2FzdCgnMTIsNDU0LjgtJyBhcyBudW1lcmljIGZvcm1hdCAnOTlHOTk5RDlTJykgQVMg dDsKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMDUgRGVjIDIwMDAnOjpjaXRleHQsICdERCBNb24g WVlZWSc6OmNpdGV4dCkKICAgICAgPSB0b190aW1lc3RhbXAoJzA1IERlYyAyMDAwJywgICAgICAg ICAnREQgTW9uIFlZWVknKSBBUyB0OwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMDUgRGVjIDIwMDAn OjpjaXRleHQsICdERCBNb24gWVlZWScpCkBAIC02OTEsNiArNzA1LDEzIEBAIFNFTEVDVCB0b190 aW1lc3RhbXAoJzA1IERlYyAyMDAwJzo6Y2l0ZXh0LCAnREQgTW9uIFlZWVknKQogU0VMRUNUIHRv X3RpbWVzdGFtcCgnMDUgRGVjIDIwMDAnLCAgICAgICAgICdERCBNb24gWVlZWSc6OmNpdGV4dCkK ICAgICAgPSB0b190aW1lc3RhbXAoJzA1IERlYyAyMDAwJywgICAgICAgICAnREQgTW9uIFlZWVkn KSBBUyB0OwogCitTRUxFQ1QgY2FzdCgnMDUgRGVjIDIwMDAnOjpjaXRleHQgYXMgdGltZXN0YW1w dHogZm9ybWF0ICdERCBNb24gWVlZWSc6OmNpdGV4dCkKKyAgICAgPSBjYXN0KCcwNSBEZWMgMjAw MCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdERCBNb24gWVlZWScpIEFTIHQ7CitTRUxFQ1QgY2Fz dCgnMDUgRGVjIDIwMDAnOjpjaXRleHQgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdERCBNb24gWVlZ WScpCisgICAgID0gY2FzdCgnMDUgRGVjIDIwMDAnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnREQg TW9uIFlZWVknKSBBUyB0OworU0VMRUNUIGNhc3QoJzA1IERlYyAyMDAwJyBhcyB0aW1lc3RhbXB0 eiBmb3JtYXQgJ0REIE1vbiBZWVlZJzo6Y2l0ZXh0KQorICAgICA9IGNhc3QoJzA1IERlYyAyMDAw JyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ0REIE1vbiBZWVlZJykgQVMgdDsKKwogLS0gVHJ5IGFz c2lnbmluZyBmdW5jdGlvbiByZXN1bHRzIHRvIGEgY29sdW1uLgogU0VMRUNUIENPVU5UKCopID0g ODo6YmlnaW50IEFTIHQgRlJPTSB0cnk7CiBJTlNFUlQgSU5UTyB0cnkKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMKaW5kZXggZDI5NjY0Y2E1ZDQuLjBjNWNiM2VjNzI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpA QCAtNDQ2Myw2ICs0NDYzLDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2Rl ICpub2RlLAogCiAJCQkJaWYgKFdBTEsodGMtPmFyZykpCiAJCQkJCXJldHVybiB0cnVlOworCQkJ CWlmIChXQUxLKHRjLT5mb3JtYXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh0 Yy0+dHlwZU5hbWUpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDcx M2VlNWMxMGEyLi5mNWZlNjM0ZDUyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTcsNiArMTU3LDkgQEAg c3RhdGljIFJhd1N0bXQgKm1ha2VSYXdTdG10KE5vZGUgKnN0bXQsIGludCBzdG10X2xvY2F0aW9u KTsKIHN0YXRpYyB2b2lkIHVwZGF0ZVJhd1N0bXRFbmQoUmF3U3RtdCAqcnMsIGludCBlbmRfbG9j YXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VDb2x1bW5SZWYoY2hhciAqY29sbmFtZSwgTGlzdCAq aW5kaXJlY3Rpb24sCiAJCQkJCQkgICBpbnQgbG9jYXRpb24sIGNvcmVfeXlzY2FuX3QgeXlzY2Fu bmVyKTsKK3N0YXRpYyBOb2RlICptYWtlRm9ybWF0dGVkVHlwZUNhc3QoTm9kZSAqYXJnLCBUeXBl TmFtZSAqdHlwZW5hbWUsCisJCQkJCQkJCSAgIE5vZGUgKmZvcm1hdCwKKwkJCQkJCQkJICAgaW50 IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlVHlwZUNhc3QoTm9kZSAqYXJnLCBUeXBlTmFt ZSAqdHlwZW5hbWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZVN0cmluZ0NvbnN0 Q2FzdChjaGFyICpzdHIsIGludCBsb2NhdGlvbiwgVHlwZU5hbWUgKnR5cGVuYW1lKTsKIHN0YXRp YyBOb2RlICptYWtlSW50Q29uc3QoaW50IHZhbCwgaW50IGxvY2F0aW9uKTsKQEAgLTE2MDcwLDYg KzE2MDczLDggQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCX0KIAkJCXwgQ0FTVCAn KCcgYV9leHByIEFTIFR5cGVuYW1lICcpJwogCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1 LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIEZPUk1BVCBhX2V4cHIg JyknCisJCQkJeyAkJCA9IG1ha2VGb3JtYXR0ZWRUeXBlQ2FzdCgkMywgJDUsICQ3LCBAMSk7IH0K IAkJCXwgRVhUUkFDVCAnKCcgZXh0cmFjdF9saXN0ICcpJwogCQkJCXsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoImV4dHJhY3QiKSwKQEAgLTE4OTk0LDEy ICsxODk5OSwyNiBAQCBtYWtlQ29sdW1uUmVmKGNoYXIgKmNvbG5hbWUsIExpc3QgKmluZGlyZWN0 aW9uLAogCXJldHVybiAoTm9kZSAqKSBjOwogfQogCitzdGF0aWMgTm9kZSAqCittYWtlRm9ybWF0 dGVkVHlwZUNhc3QoTm9kZSAqYXJnLCBUeXBlTmFtZSAqdHlwZW5hbWUsIE5vZGUgKmZvcm1hdCwg aW50IGxvY2F0aW9uKQoreworCVR5cGVDYXN0ICAgKm4gPSBtYWtlTm9kZShUeXBlQ2FzdCk7CisK KwluLT5hcmcgPSBhcmc7CisJbi0+dHlwZU5hbWUgPSB0eXBlbmFtZTsKKwluLT5mb3JtYXQgPSBm b3JtYXQ7CisJbi0+bG9jYXRpb24gPSBsb2NhdGlvbjsKKworCXJldHVybiAoTm9kZSAqKSBuOwor fQorCiBzdGF0aWMgTm9kZSAqCiBtYWtlVHlwZUNhc3QoTm9kZSAqYXJnLCBUeXBlTmFtZSAqdHlw ZW5hbWUsIGludCBsb2NhdGlvbikKIHsKIAlUeXBlQ2FzdCAgICpuID0gbWFrZU5vZGUoVHlwZUNh c3QpOwogCiAJbi0+YXJnID0gYXJnOworCW4tPmZvcm1hdCA9IE5VTEw7CiAJbi0+dHlwZU5hbWUg PSB0eXBlbmFtZTsKIAluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwogCXJldHVybiAoTm9kZSAqKSBu OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCmluZGV4IDkxM2NhNTM2NjZmLi5iZmFhYzQyMjll YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1 ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZnVu Yy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTc0LDYgKzc1 LDcgQEAgc3RhdGljIGJvb2wgdHlwZUlzT2ZUeXBlZFRhYmxlKE9pZCByZWx0eXBlSWQsIE9pZCBy ZWxvZnR5cGVJZCk7CiAgKiB0YXJnZXR0eXBtb2QgLSBkZXNpcmVkIHJlc3VsdCB0eXBtb2QKICAq IGNjb250ZXh0LCBjZm9ybWF0IC0gY29udGV4dCBpbmRpY2F0b3JzIHRvIGNvbnRyb2wgY29lcmNp b25zCiAgKiBsb2NhdGlvbiAtIHBhcnNlIGxvY2F0aW9uIG9mIHRoZSBjb2VyY2lvbiByZXF1ZXN0 LCBvciAtMSBpZiB1bmtub3duL2ltcGxpY2l0CisgKiBmb3JtYXQgLSBjYXN0IGZvcm1hdCB0ZW1w bGF0ZSBub2RlIGV4cHJlc3Npb24gaW4gQ0FTVChleHByIGFzIHR5cGUgRk9STUFUICdmb3JtYXRf ZXhwcicpIGNvbnN0cnVjdC4KICAqLwogTm9kZSAqCiBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCkBAIC04MSw2ICs4Mywy MiBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy LCBPaWQgZXhwcnR5cGUsCiAJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkg IENvZXJjaW9uRm9ybSBjZm9ybWF0LAogCQkJCQkgIGludCBsb2NhdGlvbikKK3sKKwlyZXR1cm4g Y29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUsCisJ CQkJCQkJCQkJICB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCisJCQkJCQkJCQkJICBjY29udGV4 dCwKKwkJCQkJCQkJCQkgIGNmb3JtYXQsCisJCQkJCQkJCQkJICBsb2NhdGlvbiwKKwkJCQkJCQkJ CQkgIE5VTEwpOworfQorCitOb2RlICoKK2NvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKKwkJCQkJCQkgICBP aWQgdGFyZ2V0dHlwZSwgaW50MzIgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCSAgIENvZXJjaW9uQ29u dGV4dCBjY29udGV4dCwKKwkJCQkJCQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJCQkJCQkg ICBpbnQgbG9jYXRpb24sCisJCQkJCQkJICAgTm9kZSAqZm9ybWF0KQogewogCU5vZGUJICAgKnJl c3VsdDsKIAlOb2RlCSAgICpvcmlnZXhwcjsKQEAgLTEwMiw5ICsxMjAsMTAgQEAgY29lcmNlX3Rv X3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBl LAogCXdoaWxlIChleHByICYmIElzQShleHByLCBDb2xsYXRlRXhwcikpCiAJCWV4cHIgPSAoTm9k ZSAqKSAoKENvbGxhdGVFeHByICopIGV4cHIpLT5hcmc7CiAKLQlyZXN1bHQgPSBjb2VyY2VfdHlw ZShwc3RhdGUsIGV4cHIsIGV4cHJ0eXBlLAotCQkJCQkJIHRhcmdldHR5cGUsIHRhcmdldHR5cG1v ZCwKLQkJCQkJCSBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24pOworCXJlc3VsdCA9IGNvZXJj ZV90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUsCisJCQkJCQkJCSAgdGFyZ2V0 dHlwZSwgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlv biwKKwkJCQkJCQkJICBmb3JtYXQpOwogCiAJLyoKIAkgKiBJZiB0aGUgdGFyZ2V0IGlzIGEgZml4 ZWQtbGVuZ3RoIHR5cGUsIGl0IG1heSBuZWVkIGEgbGVuZ3RoIGNvZXJjaW9uIGFzCkBAIC0xMzEs NiArMTUwLDE3NyBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorIC8qCisgICog Y29lcmNlX3R5cGVfd2l0aF9mb3JtYXQoKQorICAqCisgICogQ29jZXJjZSB0aGUgQ0FTVChleHBy IEFTIHR5cGUgRk9STUFUICdmbXQnKSBjb25zdHJ1Y3QgdG8gdGhlIHRhcmdldCB0eXBlLgorICAq CisgICogVGhpcyBpcyBhIHN1YnJvdXRpbmUgb2YgY29lcmNlX3R5cGVfZXh0ZW5kZWQuIFRoZSBj YWxsZXIgbXVzdCBlbnN1cmUgdGhhdAorICAqIHRoZSBjb2VyY2lvbiBpcyBwb3NzaWJsZSB2aWEg Y2FuX2NvZXJjZV90eXBlLgorICAqCisgICogV2UgY2Fubm90IHNpbXBseSBjb25zdHJ1Y3QgYSBG dW5jQ2FsbCBub2RlIGFuZCByZWx5IG9uIHRyYW5zZm9ybUZ1bmNDYWxsLAorICAqIGJlY2F1c2Ug dGhlIHNvdXJjZSBleHByZXNzaW9uIGFuZCBmb3JtYXQgdGVtcGxhdGUgaGF2ZSBhbHJlYWR5IGJl ZW4KKyAgKiB0cmFuc2Zvcm1lZC4gSW52b2tpbmcgdHJhbnNmb3JtRXhwclJlY3Vyc2UgYWdhaW4g d291bGQgYmUgaW5jb3JyZWN0LgorICAqIEluc3RlYWQsIHdlIGNvbnN0cnVjdCBhIEZ1bmNDYWxs IG5vZGUgYW5kIGxldCBQYXJzZUZ1bmNPckNvbHVtbiBwcm9kdWNlCisgICogdGhlIGZpbmFsIEZ1 bmNFeHByIG5vZGUuCisgICovCitzdGF0aWMgTm9kZSAqCitjb2VyY2VfdHlwZV93aXRoX2Zvcm1h dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsIE5vZGUgKmZtdCwKKwkJCQkJCU9pZCBp bnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJ CUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2Nh dGlvbikKK3sKKwlOb2RlCSAgICpmb3JtYXQ7CisJTm9kZQkgICAqZnVuY2V4cHI7CisJRnVuY0Nh bGwgICAqZm47CisJTGlzdAkgICAqZnVuY25hbWUgPSBOSUw7CisJTGlzdAkgICAqYXJncyA9IE5J TDsKKwlUWVBDQVRFR09SWSBzX3R5cGNhdGVnb3J5OworCVRZUENBVEVHT1JZIHRfdHlwY2F0ZWdv cnk7CisJVFlQQ0FURUdPUlkgZm10Y2F0ZWdvcnk7CisJaW50MzIJCXRhcmdldEJhc2VUeXBlTW9k ID0gdGFyZ2V0VHlwZU1vZDsKKwlPaWQJCQl0YXJnZXRCYXNlVHlwZUlkID0gZ2V0QmFzZVR5cGVB bmRUeXBtb2QodGFyZ2V0VHlwZUlkLAorCQkJCQkJCQkJCQkJCQkmdGFyZ2V0QmFzZVR5cGVNb2Qp OworCU9pZAkJCWlucHV0QmFzZVR5cGVJZCA9IGdldEJhc2VUeXBlKGlucHV0VHlwZUlkKTsKKwlP aWQJCQlmb3JtYXRCYXNlVHlwZUlkID0gZ2V0QmFzZVR5cGUoZXhwclR5cGUoZm10KSk7CisKKwlz X3R5cGNhdGVnb3J5ID0gVHlwZUNhdGVnb3J5KGlucHV0QmFzZVR5cGVJZCk7CisJdF90eXBjYXRl Z29yeSA9IFR5cGVDYXRlZ29yeSh0YXJnZXRCYXNlVHlwZUlkKTsKKwlmbXRjYXRlZ29yeSA9IFR5 cGVDYXRlZ29yeShmb3JtYXRCYXNlVHlwZUlkKTsKKworCS8qCisJICogU2luY2UgdGhlIGNhbGxl ciAoY29lcmNlX3R5cGVfZXh0ZW5kZWQpIGRvZXMgbm90IGhhbmRsZSAnVW5rbm93bicKKwkgKiBj b25zdGFudHMsIHdlIG11c3QgZXhwbGljaXRseSBjb2VyY2UgdGhlbSB0byBURVhUIGluIHRoZSBz b3VyY2UKKwkgKiBleHByZXNzaW9uLgorCSAqLworCWlmIChJc0Eobm9kZSwgQ29uc3QpICYmIGlu cHV0VHlwZUlkID09IFVOS05PV05PSUQpCisJeworCQlDb25zdAkgICAqY29uID0gKENvbnN0ICop IG5vZGU7CisJCUNvbnN0CSAgICpuZXdjb24gPSBtYWtlTm9kZShDb25zdCk7CisJCVR5cGUJCXRl eHRUeXBlID0gdHlwZWlkVHlwZShURVhUT0lEKTsKKworCQluZXdjb24tPmNvbnN0dHlwZSA9IFRF WFRPSUQ7CisJCW5ld2Nvbi0+Y29uc3R0eXBtb2QgPSAtMTsKKwkJbmV3Y29uLT5jb25zdGNvbGxp ZCA9IHR5cGVUeXBlQ29sbGF0aW9uKHRleHRUeXBlKTsKKwkJbmV3Y29uLT5jb25zdGxlbiA9IHR5 cGVMZW4odGV4dFR5cGUpOworCQluZXdjb24tPmNvbnN0Ynl2YWwgPSB0eXBlQnlWYWwodGV4dFR5 cGUpOworCQluZXdjb24tPmNvbnN0aXNudWxsID0gY29uLT5jb25zdGlzbnVsbDsKKwkJbmV3Y29u LT5sb2NhdGlvbiA9IGV4cHJMb2NhdGlvbihub2RlKTsKKwkJbmV3Y29uLT5jb25zdHZhbHVlID0g c3RyaW5nVHlwZURhdHVtKHRleHRUeXBlLAorCQkJCQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNv bi0+Y29uc3R2YWx1ZSksCisJCQkJCQkJCQkJCSAtMSk7CisJCWlmICghbmV3Y29uLT5jb25zdGlz bnVsbCAmJiBuZXdjb24tPmNvbnN0bGVuID09IC0xKQorCQkJbmV3Y29uLT5jb25zdHZhbHVlID0K KwkJCQlQb2ludGVyR2V0RGF0dW0oUEdfREVUT0FTVF9EQVRVTShuZXdjb24tPmNvbnN0dmFsdWUp KTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodGV4dFR5cGUpOworCisJCW5vZGUgPSAoTm9kZSAqKSBu ZXdjb247CisJCXNfdHlwY2F0ZWdvcnkgPSBUWVBDQVRFR09SWV9TVFJJTkc7CisJCWlucHV0QmFz ZVR5cGVJZCA9IFRFWFRPSUQ7CisJfQorCisJaWYgKGlucHV0QmFzZVR5cGVJZCA9PSB0YXJnZXRC YXNlVHlwZUlkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3 aGlsZSB1c2luZyBhIGZvcm1hdCB0ZW1wbGF0ZSIsCisJCQkJCSAgIGZvcm1hdF90eXBlX2JlKGlu cHV0QmFzZVR5cGVJZCksCisJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldEJhc2VUeXBlSWQp KSwKKwkJCQllcnJkZXRhaWwoImJpbmFyeSBjb2VyY2libGUgdHlwZSBjYXN0IGlzIG5vdCBzdXBw b3J0ZWQgd2hpbGUgdXNpbmcgYSBmb3JtYXQgdGVtcGxhdGUiKSwKKwkJCQlwYXJzZXJfY29lcmNp b25fZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbiwgbm9kZSkpOworCisJaWYgKHNfdHlwY2F0 ZWdvcnkgIT0gVFlQQ0FURUdPUllfTlVNRVJJQyAmJgorCQlzX3R5cGNhdGVnb3J5ICE9IFRZUENB VEVHT1JZX1NUUklORyAmJgorCQlzX3R5cGNhdGVnb3J5ICE9IFRZUENBVEVHT1JZX0RBVEVUSU1F ICYmCisJCXNfdHlwY2F0ZWdvcnkgIT0gVFlQQ0FURUdPUllfVElNRVNQQU4pCisJeworCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGlsZSB1c2luZyBhIGZvcm1h dCB0ZW1wbGF0ZSIsCisJCQkJCSAgIGZvcm1hdF90eXBlX2JlKGlucHV0QmFzZVR5cGVJZCksCisJ CQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldEJhc2VUeXBlSWQpKSwKKwkJCQllcnJkZXRhaWwo Ik9ubHkgY2F0ZWdvcmllcyBvZiBudW1lcmljLCBzdHJpbmcsIGRhdGV0aW1lLCBhbmQgdGltZXNw YW4gc291cmNlIGRhdGEgdHlwZXMgYXJlIHN1cHBvcnRlZCBmb3IgZm9ybWF0dGVkIHR5cGUgY2Fz dGluZyIpLAorCQkJCXBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9u LCBub2RlKSk7CisJfQorCisJaWYgKHRhcmdldEJhc2VUeXBlSWQgIT0gTlVNRVJJQ09JRCAmJgor CQl0YXJnZXRCYXNlVHlwZUlkICE9IFRJTUVTVEFNUFRaT0lEICYmCisJCXRhcmdldEJhc2VUeXBl SWQgIT0gREFURU9JRCAmJgorCQl0X3R5cGNhdGVnb3J5ICE9IFRZUENBVEVHT1JZX1NUUklORykK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMgdXNpbmcgZm9ybWF0 dGVkIHRlbXBsYXRlIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlSWQpLAorCQkJ CQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlSWQpKSwKKwkJCQllcnJoaW50KCJPbmx5IHRp bWVzdGFtcHR6LCB0ZXh0LCBudW1lcmljIGFuZCBkYXRlIGRhdGEgdHlwZSBhcmUgc3VwcG9ydGVk IGZvciBmb3JtYXR0ZWQgdHlwZSBjYXN0aW5nIiksCisJCQkJcGFyc2VyX2NvZXJjaW9uX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIG5vZGUpKTsKKworCWlmIChmbXRjYXRlZ29yeSAhPSBU WVBDQVRFR09SWV9TVFJJTkcgJiYgZm10Y2F0ZWdvcnkgIT0gVFlQQ0FURUdPUllfVU5LTk9XTikK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJ CQkJZXJybXNnKCJDQVNUIEZPUk1BVCBleHByZXNzaW9uIGlzIG5vdCBvZiB0eXBlIHRleHQiKSwK KwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZm10KSkpOworCisJ LyoKKwkgKiBJbnRlcm5hbGx5LCBDQVNUIEZPUk1BVCBkZWxlZ2F0ZXMgdG8gZnVuY3Rpb25zIChl LmcuLCB0b19jaGFyLCB0b19kYXRlKQorCSAqIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5nIHBhcmFt ZXRlciBpcyB0eXBlZCBhcyBURVhULiBDb25zZXF1ZW50bHksIHRoZQorCSAqIEZPUk1BVCBjbGF1 c2UgcmVxdWlyZXMgZXhwbGljaXQgY29lcmNpb24gdG8gVEVYVC4KKwkgKi8KKwlmb3JtYXQgPSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBmbXQsCisJCQkJCQkJCSAgIGV4cHJUeXBlKGZt dCksIFRFWFRPSUQsCisJCQkJCQkJCSAgIGV4cHJUeXBtb2QoZm10KSwKKwkJCQkJCQkJICAgY2Nv bnRleHQsIGNmb3JtYXQsCisJCQkJCQkJCSAgIGV4cHJMb2NhdGlvbihmbXQpKTsKKworCWlmIChl eHByZXNzaW9uX3JldHVybnNfc2V0KGZvcm1hdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJy Y29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQllcnJtc2coIkNBU1QgRk9STUFU IGV4cHJlc3Npb24gbXVzdCBub3QgcmV0dXJuIGEgc2V0IiksCisJCQkJcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGZvcm1hdCkpKTsKKworCWlmICh0X3R5cGNhdGVnb3J5 ID09IFRZUENBVEVHT1JZX1NUUklORykKKwkJZnVuY25hbWUgPSBsaXN0X21ha2UyKG1ha2VTdHJp bmcoInBnX2NhdGFsb2ciKSwKKwkJCQkJCQkgIG1ha2VTdHJpbmcoInRvX2NoYXIiKSk7CisJZWxz ZSBpZiAodF90eXBjYXRlZ29yeSA9PSBUWVBDQVRFR09SWV9OVU1FUklDKQorCQlmdW5jbmFtZSA9 IGxpc3RfbWFrZTIobWFrZVN0cmluZygicGdfY2F0YWxvZyIpLAorCQkJCQkJCSAgbWFrZVN0cmlu ZygidG9fbnVtYmVyIikpOworCWVsc2UgaWYgKHRhcmdldEJhc2VUeXBlSWQgPT0gREFURU9JRCkK KwkJZnVuY25hbWUgPSBsaXN0X21ha2UyKG1ha2VTdHJpbmcoInBnX2NhdGFsb2ciKSwKKwkJCQkJ CQkgIG1ha2VTdHJpbmcoInRvX2RhdGUiKSk7CisJZWxzZSBpZiAodF90eXBjYXRlZ29yeSA9PSBU WVBDQVRFR09SWV9EQVRFVElNRSkKKwkJZnVuY25hbWUgPSBsaXN0X21ha2UyKG1ha2VTdHJpbmco InBnX2NhdGFsb2ciKSwKKwkJCQkJCQkgIG1ha2VTdHJpbmcoInRvX3RpbWVzdGFtcCIpKTsKKwll bHNlCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZmluZCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZy b20gJXMgdG8gJXMgd2hpbGUgdXNpbmcgYSBmb3JtYXQgdGVtcGxhdGUiLAorCQkJIGZvcm1hdF90 eXBlX2JlKGlucHV0VHlwZUlkKSwgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSk7CisKKwlh cmdzID0gbGlzdF9tYWtlMShub2RlKTsKKwlhcmdzID0gbGFwcGVuZChhcmdzLCBmb3JtYXQpOwor CWZuID0gbWFrZUZ1bmNDYWxsKGZ1bmNuYW1lLCBhcmdzLAorCQkJCQkgIENPRVJDRV9TUUxfU1lO VEFYLAorCQkJCQkgIC0xKTsKKworCWZ1bmNleHByID0gUGFyc2VGdW5jT3JDb2x1bW4ocHN0YXRl LAorCQkJCQkJCQkgZm4tPmZ1bmNuYW1lLAorCQkJCQkJCQkgZm4tPmFyZ3MsCisJCQkJCQkJCSBO VUxMLAorCQkJCQkJCQkgZm4sCisJCQkJCQkJCSBmYWxzZSwKKwkJCQkJCQkJIGZuLT5sb2NhdGlv bik7CisKKwkvKgorCSAqIEZvciBDQVNUIEZPUk1BVCwgd2UgZG8gbm90IGVuZm9yY2UgdGhlIGV4 YWN0IHNvdXJjZSB0eXBlOyB3ZSBhbGxvdworCSAqIGNlcnRhaW4gY2F0ZWdvcmllcyBvZiB0eXBl cy4gVGhlcmVmb3JlLCBmb3IgdGhlIHByb2R1Y2VkIEZ1bmNFeHByIG5vZGUsCisJICogd2UgbmVl ZCB0byBjb2VyY2UgaXQgdG8gdGhlIGV4YWN0IHRhcmdldCB0eXBlLiBUaGlzIGlzIGFsc28gbmVj ZXNzYXJ5CisJICogc2luY2UgdGhlIHRhcmdldCB0eXBlIG1heSBiZSBhIGRvbWFpbiB0eXBlLgor CSAqLworCXJldHVybiBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkgZnVu Y2V4cHIsIGV4cHJUeXBlKGZ1bmNleHByKSwKKwkJCQkJCQkJIHRhcmdldFR5cGVJZCwgdGFyZ2V0 VHlwZU1vZCwKKwkJCQkJCQkJIGNjb250ZXh0LAorCQkJCQkJCQkgY2Zvcm1hdCwKKwkJCQkJCQkJ IGxvY2F0aW9uKTsKK30KKwogCiAvKgogICogY29lcmNlX3R5cGUoKQpAQCAtMTU4LDYgKzM0OCwx OCBAQCBOb2RlICoKIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwK IAkJCU9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1v ZCwKIAkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGlu dCBsb2NhdGlvbikKK3sKKwlyZXR1cm4gY29lcmNlX3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBub2Rl LAorCQkJCQkJCQlpbnB1dFR5cGVJZCwgdGFyZ2V0VHlwZUlkLCB0YXJnZXRUeXBlTW9kLAorCQkJ CQkJCQljY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJCU5VTEwpOworfQorCitO b2RlICoKK2NvZXJjZV90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9k ZSwKKwkJCQkJIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0 VHlwZU1vZCwKKwkJCQkJIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNm b3JtYXQsIGludCBsb2NhdGlvbiwKKwkJCQkJIE5vZGUgKmZtdCkKIHsKIAlOb2RlCSAgICpyZXN1 bHQ7CiAJQ29lcmNpb25QYXRoVHlwZSBwYXRodHlwZTsKQEAgLTE2Niw2ICszNjgsMTQgQEAgY29l cmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCWlmICh0YXJnZXRUeXBl SWQgPT0gaW5wdXRUeXBlSWQgfHwKIAkJbm9kZSA9PSBOVUxMKQogCXsKKwkJaWYgKGZtdCAhPSBO VUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VS Q0UpLAorCQkJCQllcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMgd2hpbGUgdXNpbmcg YSBmb3JtYXQgdGVtcGxhdGUiLAorCQkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlSWQp LAorCQkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCisJCQkJCWVycmRldGFp bCgiYmluYXJ5IGNvZXJjaWJsZSB0eXBlIGNhc3QgaXMgbm90IHN1cHBvcnRlZCB3aGlsZSB1c2lu ZyBhIGZvcm1hdCB0ZW1wbGF0ZSIpKTsKKwogCQkvKiBubyBjb252ZXJzaW9uIG5lZWRlZCAqLwog CQlyZXR1cm4gbm9kZTsKIAl9CkBAIC0xNzUsNiArMzg1LDEzIEBAIGNvZXJjZV90eXBlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJdGFyZ2V0VHlwZUlkID09IEFOWUNPTVBBVElC TEVPSUQgfHwKIAkJdGFyZ2V0VHlwZUlkID09IEFOWUNPTVBBVElCTEVOT05BUlJBWU9JRCkKIAl7 CisJCWlmIChmbXQgIT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRv ICVzIHdoaWxlIHVzaW5nIGEgZm9ybWF0IHRlbXBsYXRlIiwKKwkJCQkJCSAgIGZvcm1hdF90eXBl X2JlKGlucHV0VHlwZUlkKSwKKwkJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkp KTsKKwogCQkvKgogCQkgKiBBc3N1bWUgY2FuX2NvZXJjZV90eXBlIHZlcmlmaWVkIHRoYXQgaW1w bGljaXQgY29lcmNpb24gaXMgb2theS4KIAkJICoKQEAgLTE5Nyw2ICs0MTQsMTMgQEAgY29lcmNl X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQl0YXJnZXRUeXBlSWQgPT0g QU5ZQ09NUEFUSUJMRVJBTkdFT0lEIHx8CiAJCXRhcmdldFR5cGVJZCA9PSBBTllDT01QQVRJQkxF TVVMVElSQU5HRU9JRCkKIAl7CisJCWlmIChmbXQgIT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCWVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJZXJybXNnKCJjYW5u b3QgY2FzdCB0eXBlICVzIHRvICVzIHdoaWxlIHVzaW5nIGEgZm9ybWF0IHRlbXBsYXRlIiwKKwkJ CQkJCSAgIGZvcm1hdF90eXBlX2JlKGlucHV0VHlwZUlkKSwKKwkJCQkJCSAgIGZvcm1hdF90eXBl X2JlKHRhcmdldFR5cGVJZCkpKTsKKwogCQkvKgogCQkgKiBBc3N1bWUgY2FuX2NvZXJjZV90eXBl IHZlcmlmaWVkIHRoYXQgaW1wbGljaXQgY29lcmNpb24gaXMgb2theS4KIAkJICoKQEAgLTIzMCw2 ICs0NTQsMTcgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAog CQkJcmV0dXJuIG5vZGU7CiAJCX0KIAl9CisKKwlpZiAoZm10ICE9IE5VTEwpCisJeworCQlyZXN1 bHQgPSBjb2VyY2VfdHlwZV93aXRoX2Zvcm1hdChwc3RhdGUsIG5vZGUsIGZtdCwKKwkJCQkJCQkJ CQkgaW5wdXRUeXBlSWQsCisJCQkJCQkJCQkJIHRhcmdldFR5cGVJZCwgdGFyZ2V0VHlwZU1vZCwK KwkJCQkJCQkJCQkgY2NvbnRleHQsIGNmb3JtYXQsCisJCQkJCQkJCQkJIGxvY2F0aW9uKTsKKwkJ cmV0dXJuIHJlc3VsdDsKKwl9CisKIAlpZiAoaW5wdXRUeXBlSWQgPT0gVU5LTk9XTk9JRCAmJiBJ c0Eobm9kZSwgQ29uc3QpKQogCXsKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGRj ZmUxYWNjNGMzLi5kMTk2MDc5OWVlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0yNzE3 LDYgKzI3MTcsNyBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVD YXN0ICp0YykKIAlOb2RlCSAgICpyZXN1bHQ7CiAJTm9kZQkgICAqYXJnID0gdGMtPmFyZzsKIAlO b2RlCSAgICpleHByOworCU5vZGUJICAgKmZvcm1hdCA9IE5VTEw7CiAJT2lkCQkJaW5wdXRUeXBl OwogCU9pZAkJCXRhcmdldFR5cGU7CiAJaW50MzIJCXRhcmdldFR5cG1vZDsKQEAgLTI3MzgsNiAr MjczOSwxMiBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0 ICp0YykKIAkJaW50MzIJCXRhcmdldEJhc2VUeXBtb2Q7CiAJCU9pZAkJCWVsZW1lbnRUeXBlOwog CisJCWlmICh0Yy0+Zm9ybWF0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJD T0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCQllcnJtc2coImZvcm1tYXR0ZWQgdHlwZSBjYXN0IGlz IG5vdCBzdXBwb3J0ZWQgZm9yIGFycmF5IHR5cGUiKSwKKwkJCQkJcGFyc2VyX2NvZXJjaW9uX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGFyZyksIGFyZykpOworCiAJCS8qCiAJCSAq IElmIHRhcmdldCBpcyBhIGRvbWFpbiBvdmVyIGFycmF5LCB3b3JrIHdpdGggdGhlIGJhc2UgYXJy YXkgdHlwZQogCQkgKiBoZXJlLiAgQmVsb3csIHdlJ2xsIGNhc3QgdGhlIGFycmF5IHR5cGUgdG8g dGhlIGRvbWFpbi4gIEluIHRoZQpAQCAtMjc2NSw2ICsyNzcyLDkgQEAgdHJhbnNmb3JtVHlwZUNh c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJaWYgKGlucHV0VHlwZSA9PSBJ bnZhbGlkT2lkKQogCQlyZXR1cm4gZXhwcjsJCQkvKiBkbyBub3RoaW5nIGlmIE5VTEwgaW5wdXQg Ki8KIAorCWlmICh0Yy0+Zm9ybWF0KQorCQlmb3JtYXQgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShw c3RhdGUsIHRjLT5mb3JtYXQpOworCiAJLyoKIAkgKiBMb2NhdGlvbiBvZiB0aGUgY29lcmNpb24g aXMgcHJlZmVyZW50aWFsbHkgdGhlIGxvY2F0aW9uIG9mIHRoZSA6OiBvcgogCSAqIENBU1Qgc3lt Ym9sLCBidXQgaWYgdGhlcmUgaXMgbm9uZSB0aGVuIHVzZSB0aGUgbG9jYXRpb24gb2YgdGhlIHR5 cGUKQEAgLTI3NzQsMTEgKzI3ODQsMTIgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAq cHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJaWYgKGxvY2F0aW9uIDwgMCkKIAkJbG9jYXRpb24gPSB0 Yy0+dHlwZU5hbWUtPmxvY2F0aW9uOwogCi0JcmVzdWx0ID0gY29lcmNlX3RvX3RhcmdldF90eXBl KHBzdGF0ZSwgZXhwciwgaW5wdXRUeXBlLAotCQkJCQkJCQkgICB0YXJnZXRUeXBlLCB0YXJnZXRU eXBtb2QsCi0JCQkJCQkJCSAgIENPRVJDSU9OX0VYUExJQ0lULAotCQkJCQkJCQkgICBDT0VSQ0Vf RVhQTElDSVRfQ0FTVCwKLQkJCQkJCQkJICAgbG9jYXRpb24pOworCXJlc3VsdCA9IGNvZXJjZV90 b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGlucHV0VHlwZSwKKwkJCQkJCQkJ CQkJdGFyZ2V0VHlwZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJ VCwKKwkJCQkJCQkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkJCWxvY2F0aW9u LAorCQkJCQkJCQkJCQlmb3JtYXQpOwogCWlmIChyZXN1bHQgPT0gTlVMTCkKIAkJZXJlcG9ydChF UlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKaW5kZXggYjVmNGM3MjQ1OWQuLmUyZGEzNjY3MzNmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTY4NSw2ICs2ODUsNyBAQCB0cmFuc2Zvcm1Db2x1bW5E ZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCQlj YXN0bm9kZSA9IG1ha2VOb2RlKFR5cGVDYXN0KTsKIAkJY2FzdG5vZGUtPnR5cGVOYW1lID0gU3lz dGVtVHlwZU5hbWUoInJlZ2NsYXNzIik7CiAJCWNhc3Rub2RlLT5hcmcgPSAoTm9kZSAqKSBzbmFt ZW5vZGU7CisJCWNhc3Rub2RlLT5mb3JtYXQgPSBOVUxMOwogCQljYXN0bm9kZS0+bG9jYXRpb24g PSAtMTsKIAkJZnVuY2NhbGxub2RlID0gbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1lKCJuZXh0 dmFsIiksCiAJCQkJCQkJCQlsaXN0X21ha2UxKGNhc3Rub2RlKSwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwppbmRleCBiNWE3YWQ5MDY2ZS4uNTdiMTU3NmVmYjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMKQEAgLTExNDIwLDYgKzExNDIwLDI1IEBAIGdldF9mdW5jX3NxbF9zeW50YXgo RnVuY0V4cHIgKmV4cHIsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCWdldF9ydWxlX2V4 cHIoKE5vZGUgKikgbHNlY29uZChleHByLT5hcmdzKSwgY29udGV4dCwgZmFsc2UpOwogCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpKSIpOwogCQkJcmV0dXJuIHRydWU7CisJCWNhc2Ug Rl9UT19DSEFSX1RJTUVTVEFNUFRaX1RFWFQ6CisJCWNhc2UgRl9UT19DSEFSX05VTUVSSUNfVEVY VDoKKwkJY2FzZSBGX1RPX0NIQVJfSU5UNF9URVhUOgorCQljYXNlIEZfVE9fQ0hBUl9JTlQ4X1RF WFQ6CisJCWNhc2UgRl9UT19DSEFSX0ZMT0FUNF9URVhUOgorCQljYXNlIEZfVE9fQ0hBUl9GTE9B VDhfVEVYVDoKKwkJY2FzZSBGX1RPX05VTUJFUjoKKwkJY2FzZSBGX1RPX1RJTUVTVEFNUF9URVhU X1RFWFQ6CisJCWNhc2UgRl9UT19EQVRFOgorCQljYXNlIEZfVE9fQ0hBUl9USU1FU1RBTVBfVEVY VDoKKwkJCS8qIENBU1QgRk9STUFUICovCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg IkNBU1QoICIpOworCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBsaW5pdGlhbChleHByLT5hcmdz KSwgY29udGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgQVMg Iik7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgZm9ybWF0X3R5cGVfYmUoZXhwci0+ ZnVuY3Jlc3VsdHR5cGUpKTsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEZPUk1B VCAiKTsKKwkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbHNlY29uZChleHByLT5hcmdzKSwgY29u dGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCQkJcmV0 dXJuIHRydWU7CiAJfQogCXJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCA2NDZkNmNlZDc2My4uOGQwYWQ4NjdjZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM5 Nyw2ICszOTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBUeXBlQ2FzdAogCU5vZGVUYWcJCXR5cGU7CiAJ Tm9kZQkgICAqYXJnOwkJCS8qIHRoZSBleHByZXNzaW9uIGJlaW5nIGNhc3RlZCAqLwogCVR5cGVO YW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHRhcmdldCB0eXBlICovCisJTm9kZQkgICAqZm9ybWF0 OwkJCS8qIHRoZSBjYXN0IGZvcm1hdCB0ZW1wbGF0ZSBDb25zdCAqLwogCVBhcnNlTG9jCWxvY2F0 aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAppbmRleCBhYWJhY2Q0OWI2NS4uMTQ3YzE1Yzhl NWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgKQEAgLTQzLDExICs0MywyMiBAQCBleHRl cm4gTm9kZSAqY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkJCQkgICBDb2VyY2lvbkZvcm0g Y2Zvcm1hdCwKIAkJCQkJCQkJICAgaW50IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2Vf dG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQlO b2RlICpleHByLCBPaWQgZXhwcnR5cGUsCisJCQkJCQkJCQkJCU9pZCB0YXJnZXR0eXBlLCBpbnQz MiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKKwkJ CQkJCQkJCQkJQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCQkJCWludCBsb2NhdGlvbiwK KwkJCQkJCQkJCQkJTm9kZSAqZm9ybWF0KTsKIGV4dGVybiBib29sIGNhbl9jb2VyY2VfdHlwZShp bnQgbmFyZ3MsIGNvbnN0IE9pZCAqaW5wdXRfdHlwZWlkcywgY29uc3QgT2lkICp0YXJnZXRfdHlw ZWlkcywKIAkJCQkJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQpOwogZXh0ZXJuIE5vZGUgKmNv ZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBPaWQgaW5w dXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJCQkg Q29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0 aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKm5vZGUsCisJCQkJCQkJCSAgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlw ZUlkLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29u dGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbiwKKwkJCQkJCQkJICBOb2Rl ICpmb3JtYXQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90b19kb21haW4oTm9kZSAqYXJnLCBPaWQg YmFzZVR5cGVJZCwgaW50MzIgYmFzZVR5cGVNb2QsCiAJCQkJCQkJICBPaWQgdHlwZUlkLAogCQkJ CQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50 IGxvY2F0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRl LmxpbnV4LnV0Zjgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmxpbnV4 LnV0Zjgub3V0CmluZGV4IGM2ZTg0YzI3YjY5Li5lNDE2ZmIxYTg0YyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmxpbnV4LnV0Zjgub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91dApAQCAtNDYzLDYgKzQ2 MywzMCBAQCBTRUxFQ1QgdG9fY2hhcihkYXRlICcyMDEwLTA0LTAxJywgJ0REIFRNTU9OIFlZWVkn IENPTExBVEUgInRyX1RSIik7CiAgMDEgTsSwUyAyMDEwCiAoMSByb3cpCiAKK1NFTEVDVCBDQVNU KGRhdGUgJzIwMTAtMDItMDEnIGFzIHRleHQgZm9ybWF0ICdERCBUTU1PTiBZWVlZJyk7CisgICAg dGV4dCAgICAgCistLS0tLS0tLS0tLS0tCisgMDEgxZ5VQiAyMDEwCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKGRhdGUgJzIwMTAtMDItMDEnIGFzIHRleHQgZm9ybWF0ICdERCBUTU1PTiBZWVlZJyBD T0xMQVRFICJ0cl9UUiIpOworICAgIHRleHQgICAgIAorLS0tLS0tLS0tLS0tLQorIDAxIMWeVUIg MjAxMAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChkYXRlICcyMDEwLTA0LTAxJyBhcyB0ZXh0IGZv cm1hdCAnREQgVE1NT04gWVlZWScpOworICAgIHRleHQgICAgIAorLS0tLS0tLS0tLS0tLQorIDAx IE5JUyAyMDEwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGRhdGUgJzIwMTAtMDQtMDEnIGFzIHRl eHQgZm9ybWF0ICAnREQgVE1NT04gWVlZWScgQ09MTEFURSAidHJfVFIiKTsKKyAgICB0ZXh0ICAg ICAKKy0tLS0tLS0tLS0tLS0KKyAwMSBOxLBTIDIwMTAKKygxIHJvdykKKwogLS0gdG9fZGF0ZQog U0VMRUNUIHRvX2RhdGUoJzAxIMWeVUIgMjAxMCcsICdERCBUTU1PTiBZWVlZJyk7CiAgIHRvX2Rh dGUgICAKQEAgLTQ3OSw2ICs1MDMsMTUgQEAgU0VMRUNUIHRvX2RhdGUoJzAxIMWedWIgMjAxMCcs ICdERCBUTU1PTiBZWVlZJyk7CiBTRUxFQ1QgdG9fZGF0ZSgnMTIzNDU2Nzg5MGFiIDIwMTAnLCAn VE1NT05USCBZWVlZJyk7IC0tIGZhaWwKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSAiMTIzNDU2Nzg5 MGFiIiBmb3IgIk1PTlRIIgogREVUQUlMOiAgVGhlIGdpdmVuIHZhbHVlIGRpZCBub3QgbWF0Y2gg YW55IG9mIHRoZSBhbGxvd2VkIHZhbHVlcyBmb3IgdGhpcyBmaWVsZC4KK1NFTEVDVCBDQVNUKCcw MSDFnlVCIDIwMTAnIGFzIGRhdGUgZm9ybWF0ICdERCBUTU1PTiBZWVlZJyk7IC0tb2sKKyAgICBk YXRlICAgIAorLS0tLS0tLS0tLS0tCisgMDItMDEtMjAxMAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnMTIzNDU2Nzg5MGFiIDIwMTAnIGFzIGRhdGUgZm9ybWF0ICdUTU1PTlRIIFlZWVknKTsgLS0g ZmFpbAorRVJST1I6ICBpbnZhbGlkIHZhbHVlICIxMjM0NTY3ODkwYWIiIGZvciAiTU9OVEgiCitE RVRBSUw6ICBUaGUgZ2l2ZW4gdmFsdWUgZGlkIG5vdCBtYXRjaCBhbnkgb2YgdGhlIGFsbG93ZWQg dmFsdWVzIGZvciB0aGlzIGZpZWxkLgogLS0gYmFja3dhcmRzIHBhcnNpbmcKIENSRUFURSBWSUVX IGNvbGx2aWV3MSBBUyBTRUxFQ1QgKiBGUk9NIGNvbGxhdGVfdGVzdDEgV0hFUkUgYiBDT0xMQVRF ICJDIiA+PSAnYmJjJzsKIENSRUFURSBWSUVXIGNvbGx2aWV3MiBBUyBTRUxFQ1QgYSwgYiBGUk9N IGNvbGxhdGVfdGVzdDEgT1JERVIgQlkgYiBDT0xMQVRFICJDIjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaG9yb2xvZ3kub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ob3JvbG9neS5vdXQKaW5kZXggMzJjZjYyYjY3NDEuLjFkZjQwMWY0MDI3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2hvcm9sb2d5Lm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2hvcm9sb2d5Lm91dApAQCAtMzMyNCw3MiArMzMyNCwxNDQgQEAg U0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCBFU1QnLCAnWVlZWS1NTS1ERCBI SDEyOk1JIFRaJyk7CiAgU3VuIERlYyAxOCAwODozODowMCAyMDExIFBTVAogKDEgcm93KQogCitT RUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAxMTozOCBFU1QnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAn WVlZWS1NTS1ERCBISDEyOk1JIFRaJyk7CisgICAgICAgICB0aW1lc3RhbXB0eiAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1biBEZWMgMTggMDg6Mzg6MDAgMjAx MSBQU1QKKygxIHJvdykKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCAt MDUnLCAnWVlZWS1NTS1ERCBISDEyOk1JIFRaJyk7CiAgICAgICAgICB0b190aW1lc3RhbXAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFN1biBEZWMgMTggMDg6Mzg6 MDAgMjAxMSBQU1QKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzIwMTEtMTItMTggMTE6MzggLTA1 JyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOworICAgICAg ICAgdGltZXN0YW1wdHogICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTdW4gRGVjIDE4IDA4OjM4OjAwIDIwMTEgUFNUCisoMSByb3cpCisKIFNFTEVDVCB0b190aW1l c3RhbXAoJzIwMTEtMTItMTggMTE6MzggKzAxOjMwJywgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicp OwogICAgICAgICAgdG9fdGltZXN0YW1wICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBTdW4gRGVjIDE4IDAyOjA4OjAwIDIwMTEgUFNUCiAoMSByb3cpCiAKK1NFTEVD VCBjYXN0KCcyMDExLTEyLTE4IDExOjM4ICswMTozMCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZ WVlZLU1NLUREIEhIMTI6TUkgVFonKTsKKyAgICAgICAgIHRpbWVzdGFtcHR6ICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VuIERlYyAxOCAwMjowODowMCAyMDEx IFBTVAorKDEgcm93KQorCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4IE1T SycsICdZWVlZLU1NLUREIEhIMTI6TUkgVFonKTsgIC0tIGR5bnR6CiAgICAgICAgICB0b190aW1l c3RhbXAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNhdCBEZWMg MTcgMjM6Mzg6MDAgMjAxMSBQU1QKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzIwMTEtMTItMTgg MTE6MzggTVNLJyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicp OyAgLS0gZHludHoKKyAgICAgICAgIHRpbWVzdGFtcHR6ICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU2F0IERlYyAxNyAyMzozODowMCAyMDExIFBTVAorKDEgcm93 KQorCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDAwOjAwIExNVCcsICdZWVlZLU1N LUREIEhIMjQ6TUkgVFonKTsgIC0tIGR5bnR6CiAgICAgICAgICB0b190aW1lc3RhbXAgICAgICAg ICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNhdCBEZWMgMTcgMjM6NTI6NTgg MjAxMSBQU1QKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzIwMTEtMTItMTggMDA6MDAgTE1UJyBh cyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgyNDpNSSBUWicpOyAgLS0gZHludHoK KyAgICAgICAgIHRpbWVzdGFtcHR6ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2F0IERlYyAxNyAyMzo1Mjo1OCAyMDExIFBTVAorKDEgcm93KQorCiBTRUxFQ1Qg dG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4RVNURk9PMjQnLCAnWVlZWS1NTS1ERCBISDEy Ok1JVFpGT09TUycpOwogICAgICAgICAgdG9fdGltZXN0YW1wICAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBTdW4gRGVjIDE4IDA4OjM4OjI0IDIwMTEgUFNUCiAoMSBy b3cpCiAKK1NFTEVDVCBjYXN0KCcyMDExLTEyLTE4IDExOjM4RVNURk9PMjQnIGFzIHRpbWVzdGFt cHR6IGZvcm1hdCAnWVlZWS1NTS1ERCBISDEyOk1JVFpGT09TUycpOworICAgICAgICAgdGltZXN0 YW1wdHogICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdW4gRGVj IDE4IDA4OjM4OjI0IDIwMTEgUFNUCisoMSByb3cpCisKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIw MTEtMTItMTggMTE6MzgtMDVGT08yNCcsICdZWVlZLU1NLUREIEhIMTI6TUlUWkZPT1NTJyk7CiAg ICAgICAgICB0b190aW1lc3RhbXAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIFN1biBEZWMgMTggMDg6Mzg6MjQgMjAxMSBQU1QKICgxIHJvdykKIAorU0VMRUNUIGNh c3QoJzIwMTEtMTItMTggMTE6MzgtMDVGT08yNCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZ LU1NLUREIEhIMTI6TUlUWkZPT1NTJyk7CisgICAgICAgICB0aW1lc3RhbXB0eiAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1biBEZWMgMTggMDg6Mzg6MjQgMjAx MSBQU1QKKygxIHJvdykKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCBK VU5LJywgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52YWxp ZCB2YWx1ZSAiSlVOSyIgZm9yICJUWiIKIERFVEFJTDogIFRpbWUgem9uZSBhYmJyZXZpYXRpb24g aXMgbm90IHJlY29nbml6ZWQuCitTRUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAxMTozOCBKVU5LJyBh cyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOyAgLS0gZXJyb3IK K0VSUk9SOiAgaW52YWxpZCB2YWx1ZSAiSlVOSyIgZm9yICJUWiIKK0RFVEFJTDogIFRpbWUgem9u ZSBhYmJyZXZpYXRpb24gaXMgbm90IHJlY29nbml6ZWQuCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcy MDExLTEyLTE4IDExOjM4IC4uLicsICdZWVlZLU1NLUREIEhIMTI6TUkgVFonKTsgIC0tIGVycm9y CiBFUlJPUjogIGludmFsaWQgdmFsdWUgIi4uIiBmb3IgIlRaIgogREVUQUlMOiAgVmFsdWUgbXVz dCBiZSBhbiBpbnRlZ2VyLgorU0VMRUNUIGNhc3QoJzIwMTEtMTItMTggMTE6MzggLi4uJyBhcyB0 aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOyAgLS0gZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCB2YWx1ZSAiLi4iIGZvciAiVFoiCitERVRBSUw6ICBWYWx1ZSBtdXN0IGJl IGFuIGludGVnZXIuCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4IC0wNScs ICdZWVlZLU1NLUREIEhIMTI6TUkgT0YnKTsKICAgICAgICAgIHRvX3RpbWVzdGFtcCAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU3VuIERlYyAxOCAwODozODowMCAy MDExIFBTVAogKDEgcm93KQogCitTRUxFQ1QgY2FzdCAoJzIwMTEtMTItMTggMTE6MzggLTA1JyBh cyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBPRicpOworICAgICAgICAg dGltZXN0YW1wdHogICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT dW4gRGVjIDE4IDA4OjM4OjAwIDIwMTEgUFNUCisoMSByb3cpCisKIFNFTEVDVCB0b190aW1lc3Rh bXAoJzIwMTEtMTItMTggMTE6MzggKzAxOjMwJywgJ1lZWVktTU0tREQgSEgxMjpNSSBPRicpOwog ICAgICAgICAgdG9fdGltZXN0YW1wICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBTdW4gRGVjIDE4IDAyOjA4OjAwIDIwMTEgUFNUCiAoMSByb3cpCiAKK1NFTEVDVCBj YXN0KCcyMDExLTEyLTE4IDExOjM4ICswMTozMCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZ LU1NLUREIEhIMTI6TUkgT0YnKTsKKyAgICAgICAgIHRpbWVzdGFtcHR6ICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VuIERlYyAxOCAwMjowODowMCAyMDExIFBT VAorKDEgcm93KQorCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4ICt4eXon LCAnWVlZWS1NTS1ERCBISDEyOk1JIE9GJyk7ICAtLSBlcnJvcgogRVJST1I6ICBpbnZhbGlkIHZh bHVlICJ4eSIgZm9yICJPRiIKIERFVEFJTDogIFZhbHVlIG11c3QgYmUgYW4gaW50ZWdlci4KK1NF TEVDVCBjYXN0KCcyMDExLTEyLTE4IDExOjM4ICt4eXonIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAn WVlZWS1NTS1ERCBISDEyOk1JIE9GJyk7ICAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIHZhbHVl ICJ4eSIgZm9yICJPRiIKK0RFVEFJTDogIFZhbHVlIG11c3QgYmUgYW4gaW50ZWdlci4KIFNFTEVD VCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6MzggKzAxOnh5eicsICdZWVlZLU1NLUREIEhI MTI6TUkgT0YnKTsgIC0tIGVycm9yCiBFUlJPUjogIGludmFsaWQgdmFsdWUgInh5IiBmb3IgIk9G IgogREVUQUlMOiAgVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyLgorU0VMRUNUIGNhc3QoJzIwMTEt MTItMTggMTE6MzggKzAxOnh5eicgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhI MTI6TUkgT0YnKTsgIC0tIGVycm9yCitFUlJPUjogIGludmFsaWQgdmFsdWUgInh5IiBmb3IgIk9G IgorREVUQUlMOiAgVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyLgogU0VMRUNUIHRvX3RpbWVzdGFt cCgnMjAxOC0xMS0wMiAxMjozNDo1Ni4wMjUnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLk1TJyk7 CiAgICAgICAgICAgIHRvX3RpbWVzdGFtcCAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgRnJpIE5vdiAwMiAxMjozNDo1Ni4wMjUgMjAxOCBQRFQKICgxIHJv dykKIAorU0VMRUNUIGNhc3QoJzIwMTgtMTEtMDIgMTI6MzQ6NTYuMDI1JyBhcyB0aW1lc3RhbXB0 eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUy5NUycpOworICAgICAgICAgICB0aW1lc3Rh bXB0eiAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZy aSBOb3YgMDIgMTI6MzQ6NTYuMDI1IDIwMTggUERUCisoMSByb3cpCisKIFNFTEVDVCBpLCB0b190 aW1lc3RhbXAoJzIwMTgtMTEtMDIgMTI6MzQ6NTYnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZG JyB8fCBpKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2KSBpOwogIGkgfCAgICAgICAgIHRvX3Rp bWVzdGFtcCAgICAgICAgIAogLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt MzQ2OSw2ICszNTQxLDggQEAgU0VMRUNUIGksIHRvX3RpbWVzdGFtcCgnMjAxOC0xMS0wMiAxMjoz NDo1Ni4xMjM0NTYnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZGJwogCiBTRUxFQ1QgaSwgdG9f dGltZXN0YW1wKCcyMDE4LTExLTAyIDEyOjM0OjU2LjEyMzQ1Njc4OScsICdZWVlZLU1NLUREIEhI MjQ6TUk6U1MuRkYnIHx8IGkpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYpIGk7CiBFUlJPUjog IGRhdGUvdGltZSBmaWVsZCB2YWx1ZSBvdXQgb2YgcmFuZ2U6ICIyMDE4LTExLTAyIDEyOjM0OjU2 LjEyMzQ1Njc4OSIKK1NFTEVDVCBpLCBjYXN0KCcyMDE4LTExLTAyIDEyOjM0OjU2LjEyMzQ1Njc4 OScgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhIMjQ6TUk6U1MuRkYnIHx8IGkp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYpIGk7CitFUlJPUjogIGRhdGUvdGltZSBmaWVsZCB2 YWx1ZSBvdXQgb2YgcmFuZ2U6ICIyMDE4LTExLTAyIDEyOjM0OjU2LjEyMzQ1Njc4OSIKIFNFTEVD VCBpLCB0b190aW1lc3RhbXAoJzIwMTgxMTAyMTIzNDU2MTIzNDU2JywgJ1lZWVlNTURESEgyNE1J U1NGRicgfHwgaSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNikgaTsKICBpIHwgICAgICAgICAg ICB0b190aW1lc3RhbXAgICAgICAgICAgICAgCiAtLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpAQCAtMzQ4NiwxOCArMzU2MCwzNiBAQCBTRUxFQ1QgdG9fZGF0ZSgnMSA0 IDE5MDInLCAnUSBNTSBZWVlZJyk7ICAtLSBRIGlzIGlnbm9yZWQKICAwNC0wMS0xOTAyCiAoMSBy b3cpCiAKK1NFTEVDVCBjYXN0KCcxIDQgMTkwMicgYXMgZGF0ZSBmb3JtYXQgJ1EgTU0gWVlZWScp OyAgLS0gUSBpcyBpZ25vcmVkCisgICAgZGF0ZSAgICAKKy0tLS0tLS0tLS0tLQorIDA0LTAxLTE5 MDIKKygxIHJvdykKKwogU0VMRUNUIHRvX2RhdGUoJzMgNCAyMSAwMScsICdXIE1NIENDIFlZJyk7 CiAgIHRvX2RhdGUgICAKIC0tLS0tLS0tLS0tLQogIDA0LTE1LTIwMDEKICgxIHJvdykKIAorU0VM RUNUIGNhc3QoJzMgNCAyMSAwMScgYXMgZGF0ZSBmb3JtYXQgJ1cgTU0gQ0MgWVknKTsKKyAgICBk YXRlICAgIAorLS0tLS0tLS0tLS0tCisgMDQtMTUtMjAwMQorKDEgcm93KQorCiBTRUxFQ1QgdG9f ZGF0ZSgnMjQ1ODg3MicsICdKJyk7CiAgIHRvX2RhdGUgICAKIC0tLS0tLS0tLS0tLQogIDAxLTIz LTIwMjAKICgxIHJvdykKIAorU0VMRUNUIGNhc3QoJzI0NTg4NzInIGFzIGRhdGUgZm9ybWF0ICdK Jyk7CisgICAgZGF0ZSAgICAKKy0tLS0tLS0tLS0tLQorIDAxLTIzLTIwMjAKKygxIHJvdykKKwog LS0KIC0tIENoZWNrIGhhbmRsaW5nIG9mIEJDIGRhdGVzCiAtLQpAQCAtMzgzMywxMiArMzkyNSwy NCBAQCBTRUxFQ1QgdG9fY2hhcignMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVzdGFtcHR6LCAnWVlZ WS1NTS1ERCBISDpNSTpTUyBUWicpOwogIDIwMTItMTItMTIgMTI6MDA6MDAgUFNUCiAoMSByb3cp CiAKK1NFTEVDVCBjYXN0KCcyMDEyLTEyLTEyIDEyOjAwJzo6dGltZXN0YW1wdHogYXMgdGV4dCBm b3JtYXQgJ1lZWVktTU0tREQgSEg6TUk6U1MgVFonKTsKKyAgICAgICAgICB0ZXh0ICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMDEyLTEyLTEyIDEyOjAwOjAwIFBTVAor KDEgcm93KQorCiBTRUxFQ1QgdG9fY2hhcignMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVzdGFtcHR6 LCAnWVlZWS1NTS1ERCBISDpNSTpTUyB0eicpOwogICAgICAgICAgdG9fY2hhciAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDIwMTItMTItMTIgMTI6MDA6MDAgcHN0CiAoMSBy b3cpCiAKK1NFTEVDVCBjYXN0KCcyMDEyLTEyLTEyIDEyOjAwJzo6dGltZXN0YW1wdHogYXMgdGV4 dCBmb3JtYXQgJ1lZWVktTU0tREQgSEg6TUk6U1MgdHonKTsKKyAgICAgICAgICB0ZXh0ICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMDEyLTEyLTEyIDEyOjAwOjAwIHBz dAorKDEgcm93KQorCiAtLQogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBTUUwtc3R5bGUgZml4ZWQt R01ULW9mZnNldCB0aW1lIHpvbmUgKGNmIGJ1ZyAjODU3MikKIC0tCkBAIC0zODY4LDYgKzM5NzIs MzEgQEAgU0VMRUNUIHRvX2NoYXIoJzIwMTItMTItMTIgMTI6MDAnOjp0aW1lc3RhbXB0eiwgJ1lZ WVktTU0tREQgSEg6TUk6U1MgVFonKTsKICAyMDEyLTEyLTEyIDEyOjAwOjAwIC0wMTozMAogKDEg cm93KQogCitTRUxFQ1QgY2FzdCgnMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVzdGFtcHR6IGFzIHRl eHQgZm9ybWF0ICdZWVlZLU1NLUREIEhIOk1JOlNTIFRaJyksCisgICAgICAgIHRvX2NoYXIoJzIw MTItMTItMTIgMTI6MDAnOjp0aW1lc3RhbXB0eiwgJ1lZWVktTU0tREQgSEg6TUk6U1MgVFonKTsK KyAgICAgICAgICAgIHRleHQgICAgICAgICAgICB8ICAgICAgICAgIHRvX2NoYXIgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgMjAxMi0xMi0xMiAxMjowMDowMCAtMDE6MzAgfCAyMDEyLTEyLTEyIDEyOjAwOjAwIC0w MTozMAorKDEgcm93KQorCitTRUxFQ1QgY2FzdCgnMjAxMi0xMi0xMiAxMjowMCc6OmRhdGUgYXMg dGV4dCBmb3JtYXQgJ1lZWVktTU0tREQgSEg6TUk6U1MgVFonKSwKKyAgICAgICAgdG9fY2hhcign MjAxMi0xMi0xMiAxMjowMCc6OmRhdGUsICdZWVlZLU1NLUREIEhIOk1JOlNTIFRaJyk7CisgICAg ICAgICAgICB0ZXh0ICAgICAgICAgICAgfCAgICAgICAgICB0b19jaGFyICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IDIwMTItMTItMTIgMTI6MDA6MDAgLTAxOjMwIHwgMjAxMi0xMi0xMiAxMjowMDowMCAtMDE6MzAK KygxIHJvdykKKworU0VMRUNUIGNhc3QoJzEyOjAwJzo6dGltZSBhcyB0ZXh0IGZvcm1hdCAnSEg6 TUk6U1MnKSwKKyAgICAgICAgdG9fY2hhcignMTI6MDAnOjp0aW1lLCAnSEg6TUk6U1MnKTsKKyAg IHRleHQgICB8IHRvX2NoYXIgIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgMTI6MDA6MDAgfCAx MjowMDowMAorKDEgcm93KQorCitTRUxFQ1QgY2FzdCgnMjAxMi0xMi0xMiAxMjowMCc6OnRpbWV0 eiBhcyB0ZXh0IGZvcm1hdCAnWVlZWS1NTS1ERCBISDpNSTpTUyBUWicpOworRVJST1I6ICBmdW5j dGlvbiBwZ19jYXRhbG9nLnRvX2NoYXIodGltZSB3aXRoIHRpbWUgem9uZSwgdGV4dCkgZG9lcyBu b3QgZXhpc3QKK0RFVEFJTDogIE5vIGZ1bmN0aW9uIG9mIHRoYXQgbmFtZSBhY2NlcHRzIHRoZSBn aXZlbiBhcmd1bWVudCB0eXBlcy4KK0hJTlQ6ICBZb3UgbWlnaHQgbmVlZCB0byBhZGQgZXhwbGlj aXQgdHlwZSBjYXN0cy4KIFNFTEVDVCB0b19jaGFyKCcyMDEyLTEyLTEyIDEyOjAwJzo6dGltZXN0 YW1wdHosICdZWVlZLU1NLUREIFNTU1MnKTsKICAgICAgdG9fY2hhciAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludGVydmFs Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50ZXJ2YWwub3V0CmluZGV4IGExNmUz Y2NkYjJlLi40YmNhYWFmMDRhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbnRlcnZhbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnRlcnZhbC5v dXQKQEAgLTIyNjMsMTIgKzIyNjMsMjQgQEAgU0VMRUNUIHRvX2NoYXIoJ2luZmluaXR5Jzo6aW50 ZXJ2YWwsICdZWVlZJyk7CiAgCiAoMSByb3cpCiAKK1NFTEVDVCBjYXN0KCdpbmZpbml0eSc6Omlu dGVydmFsIGFzIHRleHQgZm9ybWF0ICdZWVlZJyk7CisgdGV4dCAKKy0tLS0tLQorIAorKDEgcm93 KQorCiBTRUxFQ1QgdG9fY2hhcignLWluZmluaXR5Jzo6aW50ZXJ2YWwsICdZWVlZJyk7CiAgdG9f Y2hhciAKIC0tLS0tLS0tLQogIAogKDEgcm93KQogCitTRUxFQ1QgY2FzdCgnLWluZmluaXR5Jzo6 aW50ZXJ2YWwgYXMgdGV4dCBmb3JtYXQgJ1lZWVknKTsKKyB0ZXh0IAorLS0tLS0tCisgCisoMSBy b3cpCisKIC0tICJhZ28iIGNhbiBvbmx5IGFwcGVhciBvbmNlIGF0IHRoZSBlbmQgb2YgYW4gaW50 ZXJ2YWwuCiBTRUxFQ1QgSU5URVJWQUwgJzQyIGRheXMgMiBzZWNvbmRzIGFnbyBhZ28nOwogRVJS T1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlcnZhbDogIjQyIGRheXMgMiBz ZWNvbmRzIGFnbyBhZ28iCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21p c2Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjLm91dAppbmRleCA2ZTgxNmM1 N2YxZi4uNGFlZDdlOGE0OTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bWlzYy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjLm91dApAQCAtMzk2 LDMgKzM5NiwyMTkgQEAgU0VMRUNUICosIChlcXVpcG1lbnQoQ0FTVCgoaC4qKSBBUyBob2JiaWVz X3IpKSkubmFtZSBGUk9NIGhvYmJpZXNfciBoOwogLS0KIC0tIHJld3JpdGUgcnVsZXMKIC0tCitz ZWxlY3QgY2FzdCgnMjAxMi0xMy0xMicgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKTsgLS1l cnJvcgorRVJST1I6ICBkYXRlL3RpbWUgZmllbGQgdmFsdWUgb3V0IG9mIHJhbmdlOiAiMjAxMi0x My0xMiIKK3NlbGVjdCBjYXN0KCcxJyBhcyBkYXRlIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworICAg IGRhdGUgICAgCistLS0tLS0tLS0tLS0KKyAwMS0wMS0wMDAxCisoMSByb3cpCisKK3NlbGVjdCBj YXN0KCcxJyBjb2xsYXRlICJDIiBhcyBkYXRlIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworICAgIGRh dGUgICAgCistLS0tLS0tLS0tLS0KKyAwMS0wMS0wMDAxCisoMSByb3cpCisKK3NlbGVjdCBjYXN0 KCcyMDEyLTEzLTEyJyBhcyBkYXRlIGZvcm1hdCAnWVlZWS1ERC1NTScpIGFzIGRhdGU7CisgICAg ZGF0ZSAgICAKKy0tLS0tLS0tLS0tLQorIDEyLTEzLTIwMTIKKygxIHJvdykKKworc2VsZWN0IGNh c3QoJzIwMTItMTMtMTInIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1ERC1NTScpIGFzIGRh dGU7CisgICAgICAgICAgICAgZGF0ZSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFRodSBEZWMgMTMgMDA6MDA6MDAgMjAxMiBQU1QKKygxIHJvdykKKworc2Vs ZWN0IGNhc3QoJzEnIGFzIHRpbWVzdGFtcCBmb3JtYXQgJ1lZWVktTU0tREQnKSA9IHRvX3RpbWVz dGFtcCgnMScsICdZWVlZLU1NLUREJyk7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgdW5rbm93 biB0byB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgdXNpbmcgZm9ybWF0dGVkIHRlbXBsYXRl CitMSU5FIDE6IHNlbGVjdCBjYXN0KCcxJyBhcyB0aW1lc3RhbXAgZm9ybWF0ICdZWVlZLU1NLURE JykgPSB0b190aW1lcy4uLgorICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgdGltZXN0YW1w dHosIHRleHQsIG51bWVyaWMgYW5kIGRhdGUgZGF0YSB0eXBlIGFyZSBzdXBwb3J0ZWQgZm9yIGZv cm1hdHRlZCB0eXBlIGNhc3RpbmcKK3NlbGVjdCBjYXN0KCcyMDI2LTAxLTI4IDEzOjI5OjEyLjMy NDYwNiswMSc6OnRleHQgYXMgdGltZXN0YW1wIGZvcm1hdCAnWVlZWS1NTS1ERCcpID0KKyAgICAg ICAgICAgIHRvX3RpbWVzdGFtcCgnMjAyNi0wMS0yOCAxMzoyOToxMi4zMjQ2MDYrMDEnOjp0ZXh0 LCAnWVlZWS1NTS1ERCcpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIHRleHQgdG8gdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHVzaW5nIGZvcm1hdHRlZCB0ZW1wbGF0ZQorTElORSAxOiBz ZWxlY3QgY2FzdCgnMjAyNi0wMS0yOCAxMzoyOToxMi4zMjQ2MDYrMDEnOjp0ZXh0IGFzIHRpbWVz dGEuLi4KKyAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IHRpbWVzdGFtcHR6LCB0ZXh0LCBu dW1lcmljIGFuZCBkYXRlIGRhdGEgdHlwZSBhcmUgc3VwcG9ydGVkIGZvciBmb3JtYXR0ZWQgdHlw ZSBjYXN0aW5nCitzZWxlY3QgY2FzdCgnMScgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKSA9 IHRvX2RhdGUoJzEnLCAnWVlZWS1NTS1ERCcpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworLS1DQVNUIEZPUk1BVCBpcyBub3Qgc3VwcG9ydGVkIGZvciBiaW5hcnkgY29l cmNpYmxlIHR5cGUgY2FzdCwgYmVsb3cgYWxsIHNob3VsZCBmYWlsCitzZWxlY3QgY2FzdCgnMjAy Mi0wMS0wMScgYXMgdW5rbm93biBmb3JtYXQgbnVsbCk7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5 cGUgdW5rbm93biB0byB1bmtub3duIHdoaWxlIHVzaW5nIGEgZm9ybWF0IHRlbXBsYXRlCitERVRB SUw6ICBiaW5hcnkgY29lcmNpYmxlIHR5cGUgY2FzdCBpcyBub3Qgc3VwcG9ydGVkIHdoaWxlIHVz aW5nIGEgZm9ybWF0IHRlbXBsYXRlCitzZWxlY3QgY2FzdCgnMScgYXMgdGV4dCBmb3JtYXQgJzEn Ojp0ZXh0KTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSB0ZXh0IHRvIHRleHQgd2hpbGUgdXNp bmcgYSBmb3JtYXQgdGVtcGxhdGUKK0xJTkUgMTogc2VsZWN0IGNhc3QoJzEnIGFzIHRleHQgZm9y bWF0ICcxJzo6dGV4dCk7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBiaW5hcnkgY29lcmNp YmxlIHR5cGUgY2FzdCBpcyBub3Qgc3VwcG9ydGVkIHdoaWxlIHVzaW5nIGEgZm9ybWF0IHRlbXBs YXRlCitzZWxlY3QgY2FzdCgnMSc6OnRleHQgYXMgdGV4dCBmb3JtYXQgJzEnOjp0ZXh0KTsKK0VS Uk9SOiAgY2Fubm90IGNhc3QgdHlwZSB0ZXh0IHRvIHRleHQgd2hpbGUgdXNpbmcgYSBmb3JtYXQg dGVtcGxhdGUKK0RFVEFJTDogIGJpbmFyeSBjb2VyY2libGUgdHlwZSBjYXN0IGlzIG5vdCBzdXBw b3J0ZWQgd2hpbGUgdXNpbmcgYSBmb3JtYXQgdGVtcGxhdGUKKy0tQ0FTVCBGT1JNQVQgY2FuIG9u bHkgYmUgdXNlZCBpbiBsaW1pdGVkIHR5cGVzLCBiZWxvdyBjYXNlIHNob3VsZCBhbGwgZmFpbAor c2VsZWN0IGNhc3QoJy0zNCwzMzgsNDkyJyBhcyBiaWdpbnQgZm9ybWF0ICc5OUc5OTlHOTk5Jyk7 CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgdW5rbm93biB0byBiaWdpbnQgdXNpbmcgZm9ybWF0 dGVkIHRlbXBsYXRlCitMSU5FIDE6IHNlbGVjdCBjYXN0KCctMzQsMzM4LDQ5MicgYXMgYmlnaW50 IGZvcm1hdCAnOTlHOTk5Rzk5OScpOworICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgdGlt ZXN0YW1wdHosIHRleHQsIG51bWVyaWMgYW5kIGRhdGUgZGF0YSB0eXBlIGFyZSBzdXBwb3J0ZWQg Zm9yIGZvcm1hdHRlZCB0eXBlIGNhc3RpbmcKK3NlbGVjdCBjYXN0KGFycmF5WzFdIGFzIHRleHQg Zm9ybWF0ICdZWVlZJyk7CitFUlJPUjogIGZvcm1tYXR0ZWQgdHlwZSBjYXN0IGlzIG5vdCBzdXBw b3J0ZWQgZm9yIGFycmF5IHR5cGUKK0xJTkUgMTogc2VsZWN0IGNhc3QoYXJyYXlbMV0gYXMgdGV4 dCBmb3JtYXQgJ1lZWVknKTsKKyAgICAgICAgICAgICAgICAgICAgXgorc2VsZWN0IGNhc3QoJzEn IGFzIHRpbWVzdGFtcFtdIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworRVJST1I6ICBjYW5ub3QgY2Fz dCB0eXBlIHVua25vd24gdG8gdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lW10gdXNpbmcgZm9y bWF0dGVkIHRlbXBsYXRlCitMSU5FIDE6IHNlbGVjdCBjYXN0KCcxJyBhcyB0aW1lc3RhbXBbXSBm b3JtYXQgJ1lZWVktTU0tREQnKTsKKyAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IHRpbWVz dGFtcHR6LCB0ZXh0LCBudW1lcmljIGFuZCBkYXRlIGRhdGEgdHlwZSBhcmUgc3VwcG9ydGVkIGZv ciBmb3JtYXR0ZWQgdHlwZSBjYXN0aW5nCitzZWxlY3QgY2FzdCgnMSc6OnRleHQgYXMgdW5rbm93 biBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSB0ZXh0IHRv IHVua25vd24gdXNpbmcgZm9ybWF0dGVkIHRlbXBsYXRlCitMSU5FIDE6IHNlbGVjdCBjYXN0KCcx Jzo6dGV4dCBhcyB1bmtub3duIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworICAgICAgICAgICAgICAg XgorSElOVDogIE9ubHkgdGltZXN0YW1wdHosIHRleHQsIG51bWVyaWMgYW5kIGRhdGUgZGF0YSB0 eXBlIGFyZSBzdXBwb3J0ZWQgZm9yIGZvcm1hdHRlZCB0eXBlIGNhc3RpbmcKK3NlbGVjdCBjYXN0 KCcxJyBhcyBib29sIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIHVua25vd24gdG8gYm9vbGVhbiB1c2luZyBmb3JtYXR0ZWQgdGVtcGxhdGUKK0xJTkUgMTog c2VsZWN0IGNhc3QoJzEnIGFzIGJvb2wgZm9ybWF0ICdZWVlZLU1NLUREJyk7CisgICAgICAgICAg ICAgICBeCitISU5UOiAgT25seSB0aW1lc3RhbXB0eiwgdGV4dCwgbnVtZXJpYyBhbmQgZGF0ZSBk YXRhIHR5cGUgYXJlIHN1cHBvcnRlZCBmb3IgZm9ybWF0dGVkIHR5cGUgY2FzdGluZworc2VsZWN0 IGNhc3QoJzEnIGFzIGpzb24gZm9ybWF0ICdZWVlZLU1NLUREJyk7CitFUlJPUjogIGNhbm5vdCBj YXN0IHR5cGUgdW5rbm93biB0byBqc29uIHVzaW5nIGZvcm1hdHRlZCB0ZW1wbGF0ZQorTElORSAx OiBzZWxlY3QgY2FzdCgnMScgYXMganNvbiBmb3JtYXQgJ1lZWVktTU0tREQnKTsKKyAgICAgICAg ICAgICAgIF4KK0hJTlQ6ICBPbmx5IHRpbWVzdGFtcHR6LCB0ZXh0LCBudW1lcmljIGFuZCBkYXRl IGRhdGEgdHlwZSBhcmUgc3VwcG9ydGVkIGZvciBmb3JtYXR0ZWQgdHlwZSBjYXN0aW5nCitzZWxl Y3QgY2FzdCgnMSc6Ompzb24gYXMgdGV4dCBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK0VSUk9SOiAg Y2Fubm90IGNhc3QgdHlwZSBqc29uIHRvIHRleHQgd2hpbGUgdXNpbmcgYSBmb3JtYXQgdGVtcGxh dGUKK0xJTkUgMTogc2VsZWN0IGNhc3QoJzEnOjpqc29uIGFzIHRleHQgZm9ybWF0ICdZWVlZLU1N LUREJyk7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBPbmx5IGNhdGVnb3JpZXMgb2YgbnVt ZXJpYywgc3RyaW5nLCBkYXRldGltZSwgYW5kIHRpbWVzcGFuIHNvdXJjZSBkYXRhIHR5cGVzIGFy ZSBzdXBwb3J0ZWQgZm9yIGZvcm1hdHRlZCB0eXBlIGNhc3RpbmcKK3NlbGVjdCBjYXN0KCcxJyBh cyBhbnllbGVtZW50IGZvcm1hdCAnWVlZWS1NTS1ERCcpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIHVua25vd24gdG8gYW55ZWxlbWVudCB3aGlsZSB1c2luZyBhIGZvcm1hdCB0ZW1wbGF0ZQor c2VsZWN0IGNhc3QoJzEnIGFzIGFueWVudW0gZm9ybWF0ICdZWVlZLU1NLUREJyk7CitFUlJPUjog IGNhbm5vdCBjYXN0IHR5cGUgdW5rbm93biB0byBhbnllbnVtCitMSU5FIDE6IHNlbGVjdCBjYXN0 KCcxJyBhcyBhbnllbnVtIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworICAgICAgICAgICAgICAgXgor c2VsZWN0IGNhc3QobnVsbDo6YW55ZWxlbWVudCBhcyBhbnllbGVtZW50IGZvcm1hdCAnWVlZWS1N TS1ERCcpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIHVua25vd24gdG8gYW55ZWxlbWVudCB3 aGlsZSB1c2luZyBhIGZvcm1hdCB0ZW1wbGF0ZQorc2VsZWN0IGNhc3QoJzEnIGFzIGRhdGUgZm9y bWF0IDEpOworRVJST1I6ICBDQVNUIEZPUk1BVCBleHByZXNzaW9uIGlzIG5vdCBvZiB0eXBlIHRl eHQKK0xJTkUgMTogc2VsZWN0IGNhc3QoJzEnIGFzIGRhdGUgZm9ybWF0IDEpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorc2VsZWN0IGNhc3QoJzEnOjp0ZXh0IGNv bGxhdGUgIkMiIGFzIGRhdGUgZm9ybWF0ICdZWVlZLU1NLUREJyk7CisgICAgZGF0ZSAgICAKKy0t LS0tLS0tLS0tLQorIDAxLTAxLTAwMDEKKygxIHJvdykKKworc2VsZWN0IGNhc3QoJzEnIGFzIGRh dGUgZm9ybWF0ICdZWVlZLU1NLUREJykgPSB0b19kYXRlKCcxJywgJ1lZWVktTU0tREQnKSBhcyBl eHBlY3RfdHJ1ZTsKKyBleHBlY3RfdHJ1ZSAKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK Ky0tZG9tYWluIGNoZWNrCitjcmVhdGUgZG9tYWluIGQxIGFzIGRhdGUgY2hlY2sgKHZhbHVlIDw+ ICcwMDAxLTAxLTAxJyk7CitzZWxlY3QgY2FzdCgnMScgYXMgZDEgZm9ybWF0ICdZWVlZLU1NLURE Jyk7IC0tZXJyb3IKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkMSB2aW9sYXRlcyBjaGVjayBj b25zdHJhaW50ICJkMV9jaGVjayIKK3NlbGVjdCBjYXN0KCcxJyBhcyBkMSBmb3JtYXQgJ01NLURE Jyk7IC0tb2sKKyAgICAgIGQxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgMDEtMDEtMDAwMSBC QworKDEgcm93KQorCitjcmVhdGUgZnVuY3Rpb24gcmV0X3NldHR4dCgpIHJldHVybnMgc2V0b2Yg dGV4dCBhcworJCQKK2JlZ2luCisgICAgcmV0dXJuIHF1ZXJ5IGV4ZWN1dGUgJ3NlbGVjdCAxIHVu aW9uIGFsbCBzZWxlY3QgMSc7CitlbmQ7CiskJAorbGFuZ3VhZ2UgcGxwZ3NxbCBpbW11dGFibGU7 CistLWZvcm1hdCBleHByZXNzaW9uIGNhbm5vdCByZXR1cm4gYSBzZXQKK3NlbGVjdCBjYXN0KE5V TEwgYXMgZGF0ZSBmb3JtYXQgcmV0X3NldHR4dCgpKTsKK0VSUk9SOiAgQ0FTVCBGT1JNQVQgZXhw cmVzc2lvbiBtdXN0IG5vdCByZXR1cm4gYSBzZXQKK0xJTkUgMTogc2VsZWN0IGNhc3QoTlVMTCBh cyBkYXRlIGZvcm1hdCByZXRfc2V0dHh0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KK2Ryb3AgZnVuY3Rpb24gcmV0X3NldHR4dDsKK2NyZWF0ZSB0YWJsZSB0 Y2FzdChjb2wxIHRleHQsIGNvbDIgdGV4dCwgY29sMyBkYXRlLCBjb2w0IHRpbWVzdGFtcHR6LCBj b2w1IGludDgpOworaW5zZXJ0IGludG8gdGNhc3QoY29sMSwgY29sMiwgY29sNSkgdmFsdWVzKCcy MDIyLTEyLTEzJywgJ1lZWVktTU0tREQnLCAxMjM0KSwgKCcyMDIyLTEyLTAxJywgJ1lZWVktREQt TU0nLCAtMTIzNCk7CitzZWxlY3QgY2FzdChjb2wxIGFzIGRhdGUgZm9ybWF0IGNvbDIpIGZyb20g dGNhc3Q7CisgICAgY29sMSAgICAKKy0tLS0tLS0tLS0tLQorIDEyLTEzLTIwMjIKKyAwMS0xMi0y MDIyCisoMiByb3dzKQorCitzZWxlY3QgY2FzdChjb2wxIGFzIGRhdGUgZm9ybWF0IGNvbDMpIGZy b20gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgQ0FTVCBGT1JNQVQgZXhwcmVzc2lvbiBpcyBub3Qg b2YgdHlwZSB0ZXh0CitMSU5FIDE6IHNlbGVjdCBjYXN0KGNvbDEgYXMgZGF0ZSBmb3JtYXQgY29s MykgZnJvbSB0Y2FzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CitzZWxlY3QgY2FzdChjb2wxIGFzIGRhdGUgZm9ybWF0IGNvbDM6OnRleHQpIGZyb20gdGNhc3Q7 IC0tb2sKKyBjb2wxIAorLS0tLS0tCisgCisgCisoMiByb3dzKQorCitjcmVhdGUgZnVuY3Rpb24g aW1tX2NvbnN0KCkgcmV0dXJucyB0ZXh0IGFzICQkIGJlZ2luIHJldHVybiAnWVlZWS1NTS1ERCc7 IGVuZDsgJCQgbGFuZ3VhZ2UgcGxwZ3NxbCBpbW11dGFibGU7Oworc2VsZWN0IGNhc3QoY29sMSBh cyBkYXRlIGZvcm1hdCBpbW1fY29uc3QoKSkgZnJvbSB0Y2FzdDsKKyAgICBjb2wxICAgIAorLS0t LS0tLS0tLS0tCisgMTItMTMtMjAyMgorIDEyLTAxLTIwMjIKKygyIHJvd3MpCisKK2NyZWF0ZSBp bmRleCBzMSBvbiB0Y2FzdChjYXN0KGNvbDEgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKSk7 IC0tZXJyb3IKK0VSUk9SOiAgZnVuY3Rpb25zIGluIGluZGV4IGV4cHJlc3Npb24gbXVzdCBiZSBt YXJrZWQgSU1NVVRBQkxFCitMSU5FIDE6IGNyZWF0ZSBpbmRleCBzMSBvbiB0Y2FzdChjYXN0KGNv bDEgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tRC4uLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorY3JlYXRlIHZpZXcgdGNhc3RfdjEgYXMKKyAgIHNlbGVjdCBjYXN0KGNvbDEg YXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKSBhcyB0b19kYXRlLAorICAgICAgICAgY2FzdChj b2wxIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1NTS1ERCcpIGFzIHRvX3RpbWVzdGFtcHR6 LAorICAgICAgICAgY2FzdChOVUxMOjppbnRlcnZhbCBhcyB0ZXh0IGZvcm1hdCAnWVlZWS1NTS1E RCcpIGFzIHRvX3R4dDAsCisgICAgICAgICBjYXN0KGNvbDMgYXMgdGV4dCBmb3JtYXQgJ1lZWVkt TU0tREQnKSBhcyB0b190eHQsCisgICAgICAgICBjYXN0KGNvbDQgYXMgdGV4dCBmb3JtYXQgJ1lZ WVktTU0tREQnKSBhcyB0b190eHQxLAorICAgICAgICAgY2FzdChudW1lcmljICdpbmYnIGFzIHRl eHQgZm9ybWF0ICdZWVlZLU1NLUREJykgYXMgdG9fdHh0MiwKKyAgICAgICAgIGNhc3QoYmlnaW50 ICcxMjMyNCcgYXMgdGV4dCBmb3JtYXQgJ1lZWVktTU0tREQnKSBhcyB0b190eHQzCisgICBmcm9t IHRjYXN0Oworc2VsZWN0IHBnX2dldF92aWV3ZGVmKCd0Y2FzdF92MScsIHRydWUpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgU0VMRUNUIENBU1QoIGNvbDEgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnOjp0 ZXh0KSBBUyB0b19kYXRlLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBDQVNUKCBjb2wx IEFTIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSBGT1JNQVQgJ1lZWVktTU0tREQnOjp0ZXh0KSBB UyB0b190aW1lc3RhbXB0eiwrCisgICAgIHRvX2NoYXIoTlVMTDo6aW50ZXJ2YWwsICdZWVlZLU1N LUREJzo6dGV4dCkgQVMgdG9fdHh0MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgQ0FTVCggY29sMyBBUyB0ZXh0IEZPUk1BVCAnWVlZWS1NTS1ERCc6OnRleHQpIEFTIHRvX3R4 dCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBDQVNUKCBjb2w0IEFTIHRleHQg Rk9STUFUICdZWVlZLU1NLUREJzo6dGV4dCkgQVMgdG9fdHh0MSwgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgIENBU1QoICdJbmZpbml0eSc6Om51bWVyaWMgQVMgdGV4dCBGT1JNQVQg J1lZWVktTU0tREQnOjp0ZXh0KSBBUyB0b190eHQyLCAgICAgICAgICAgICsKKyAgICAgQ0FTVCgg JzEyMzI0Jzo6YmlnaW50IEFTIHRleHQgRk9STUFUICdZWVlZLU1NLUREJzo6dGV4dCkgQVMgdG9f dHh0MyAgICAgICAgICAgICAgICAgKworICAgIEZST00gdGNhc3Q7CisoMSByb3cpCisKK2NyZWF0 ZSB2aWV3IHRjYXN0X3YyIGFzCisgICBzZWxlY3QgY2FzdChjb2w1IGFzIHRleHQgZm9ybWF0ICc5 Ljk5RUVFRScpIGFzIHRvX3R4dDAsCisgICAgICAgICBjYXN0KGNvbDU6OmZsb2F0OCBhcyB0ZXh0 IGZvcm1hdCAnOS45OUVFRUUnKSBhcyB0b190eHQxLAorICAgICAgICAgY2FzdChjb2w1OjpmbG9h dDQgYXMgdGV4dCBmb3JtYXQgJzkuOTlFRUVFJykgYXMgdG9fdHh0MiwKKyAgICAgICAgIGNhc3Qo Y29sNTo6bnVtZXJpYyBhcyB0ZXh0IGZvcm1hdCAnOS45OUVFRUUnKSBhcyB0b190eHQzLAorICAg ICAgICAgY2FzdChjb2w1OjppbnQyIGFzIHRleHQgZm9ybWF0ICc5Ljk5RUVFRScpIGFzIHRvX3R4 dDQKKyAgIGZyb20gdGNhc3Q7CitzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ3RjYXN0X3YyJywgdHJ1 ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNF TEVDVCBDQVNUKCBjb2w1IEFTIHRleHQgRk9STUFUICc5Ljk5RUVFRSc6OnRleHQpIEFTIHRvX3R4 dDAsICAgICAgICAgICAgICArCisgICAgIENBU1QoIGNvbDU6OmRvdWJsZSBwcmVjaXNpb24gQVMg dGV4dCBGT1JNQVQgJzkuOTlFRUVFJzo6dGV4dCkgQVMgdG9fdHh0MSwrCisgICAgIENBU1QoIGNv bDU6OnJlYWwgQVMgdGV4dCBGT1JNQVQgJzkuOTlFRUVFJzo6dGV4dCkgQVMgdG9fdHh0MiwgICAg ICAgICAgICArCisgICAgIENBU1QoIGNvbDU6Om51bWVyaWMgQVMgdGV4dCBGT1JNQVQgJzkuOTlF RUVFJzo6dGV4dCkgQVMgdG9fdHh0MywgICAgICAgICArCisgICAgIENBU1QoIGNvbDU6OnNtYWxs aW50IEFTIHRleHQgRk9STUFUICc5Ljk5RUVFRSc6OnRleHQpIEFTIHRvX3R4dDQgICAgICAgICAr CisgICAgRlJPTSB0Y2FzdDsKKygxIHJvdykKKworc2VsZWN0ICogZnJvbSB0Y2FzdF92MjsKKyAg dG9fdHh0MCAgfCAgdG9fdHh0MSAgfCAgdG9fdHh0MiAgfCAgdG9fdHh0MyAgfCAgdG9fdHh0NCAg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorICAxLjIzZSswMyB8ICAxLjIzZSswMyB8ICAxLjIzZSswMyB8ICAxLjIzZSswMyB8ICAx LjIzZSswMworIC0xLjIzZSswMyB8IC0xLjIzZSswMyB8IC0xLjIzZSswMyB8IC0xLjIzZSswMyB8 IC0xLjIzZSswMworKDIgcm93cykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9udW1lcmljLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJpYy5vdXQK aW5kZXggYzU4ZTIzMmEyNjMuLjA5MjY0Yjk4YmZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL251bWVyaWMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bnVtZXJpYy5vdXQKQEAgLTIyNjQsMTQ3ICsyMjY0LDI4NiBAQCBTRUxFQ1QgdG9fbnVtYmVyKCct MzQsMzM4LDQ5MicsICc5OUc5OTlHOTk5Jyk7CiAgLTM0MzM4NDkyCiAoMSByb3cpCiAKK1NFTEVD VCBDQVNUKCctMzQsMzM4LDQ5MicgYXMgbnVtZXJpYyBGT1JNQVQgICc5OUc5OTlHOTk5Jyk7Cisg IG51bWVyaWMgIAorLS0tLS0tLS0tLS0KKyAtMzQzMzg0OTIKKygxIHJvdykKKwogU0VMRUNUIHRv X251bWJlcignLTM0LDMzOCw0OTIuNjU0LDg3OCcsICc5OUc5OTlHOTk5RDk5OUc5OTknKTsKICAg ICB0b19udW1iZXIgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgLTM0MzM4NDkyLjY1NDg3OAog KDEgcm93KQogCitTRUxFQ1QgQ0FTVCgnLTM0LDMzOCw0OTIuNjU0LDg3OCcgYXMgbnVtZXJpYyBG T1JNQVQgJzk5Rzk5OUc5OTlEOTk5Rzk5OScpOworICAgICBudW1lcmljICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0KKyAtMzQzMzg0OTIuNjU0ODc4CisoMSByb3cpCisKIFNFTEVDVCB0b19udW1i ZXIoJzw1NjQ2NDYuNjU0NTY0PicsICc5OTk5OTkuOTk5OTk5UFInKTsKICAgIHRvX251bWJlciAg ICAKIC0tLS0tLS0tLS0tLS0tLS0KICAtNTY0NjQ2LjY1NDU2NAogKDEgcm93KQogCitTRUxFQ1Qg Q0FTVCgnPDU2NDY0Ni42NTQ1NjQ+JyBhcyBudW1lcmljIEZPUk1BVCAnOTk5OTk5Ljk5OTk5OVBS Jyk7CisgICAgbnVtZXJpYyAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgLTU2NDY0Ni42NTQ1NjQK KygxIHJvdykKKwogU0VMRUNUIHRvX251bWJlcignMC4wMDAwMS0nLCAnOS45OTk5OTlTJyk7CiAg dG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICAgLTAuMDAwMDEKICgxIHJvdykKIAorU0VMRUNUIENB U1QoJzAuMDAwMDEtJyBhcyBudW1lcmljIEZPUk1BVCAnOS45OTk5OTlTJyk7CisgbnVtZXJpYyAg CistLS0tLS0tLS0tCisgLTAuMDAwMDEKKygxIHJvdykKKwogU0VMRUNUIHRvX251bWJlcignNS4w MS0nLCAnRk05Ljk5OTk5OVMnKTsKICB0b19udW1iZXIgCiAtLS0tLS0tLS0tLQogICAgICAtNS4w MQogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgnNS4wMS0nIGFzIG51bWVyaWMgRk9STUFUICdGTTku OTk5OTk5UycpOworIG51bWVyaWMgCistLS0tLS0tLS0KKyAgIC01LjAxCisoMSByb3cpCisKIFNF TEVDVCB0b19udW1iZXIoJzUuMDEtJywgJ0ZNOS45OTk5OTlNSScpOwogIHRvX251bWJlciAKIC0t LS0tLS0tLS0tCiAgICAgIC01LjAxCiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKCc1LjAxLScgYXMg bnVtZXJpYyBGT1JNQVQgJ0ZNOS45OTk5OTlNSScpOworIG51bWVyaWMgCistLS0tLS0tLS0KKyAg IC01LjAxCisoMSByb3cpCisKIFNFTEVDVCB0b19udW1iZXIoJzUgNCA0IDQgNCA4IC4gNyA4Jywg JzkgOSA5IDkgOSA5IC4gOSA5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICA1NDQ0NDgu NzgKICgxIHJvdykKIAorU0VMRUNUIENBU1QoJzUgNCA0IDQgNCA4IC4gNyA4JyBhcyBudW1lcmlj IEZPUk1BVCAnOSA5IDkgOSA5IDkgLiA5IDknKTsKKyAgbnVtZXJpYyAgCistLS0tLS0tLS0tLQor IDU0NDQ0OC43OAorKDEgcm93KQorCiBTRUxFQ1QgdG9fbnVtYmVyKCcuMDEnLCAnRk05Ljk5Jyk7 CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICAgICAgIDAuMDEKICgxIHJvdykKIAorU0VMRUNU IENBU1QoJy4wMScgYXMgbnVtZXJpYyBGT1JNQVQgJ0ZNOS45OScpOworIG51bWVyaWMgCistLS0t LS0tLS0KKyAgICAwLjAxCisoMSByb3cpCisKIFNFTEVDVCB0b19udW1iZXIoJy4wJywgJzk5OTk5 OTk5Ljk5OTk5OTk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICAgICAgICAwLjAKICgx IHJvdykKIAorU0VMRUNUIENBU1QoJy4wJyBhcyBudW1lcmljIEZPUk1BVCAnOTk5OTk5OTkuOTk5 OTk5OTknKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgIDAuMAorKDEgcm93KQorCiBTRUxF Q1QgdG9fbnVtYmVyKCcwJywgJzk5Ljk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICAg ICAgICAgIDAKICgxIHJvdykKIAorU0VMRUNUIENBU1QoJzAnIGFzIG51bWVyaWMgRk9STUFUICc5 OS45OScpOworIG51bWVyaWMgCistLS0tLS0tLS0KKyAgICAgICAwCisoMSByb3cpCisKIFNFTEVD VCB0b19udW1iZXIoJy4tMDEnLCAnUzk5Ljk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0K ICAgICAgLTAuMDEKICgxIHJvdykKIAorU0VMRUNUIENBU1QoJy4tMDEnIGFzIG51bWVyaWMgRk9S TUFUICdTOTkuOTknKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAtMC4wMQorKDEgcm93KQor CiBTRUxFQ1QgdG9fbnVtYmVyKCcuMDEtJywgJzk5Ljk5UycpOwogIHRvX251bWJlciAKIC0tLS0t LS0tLS0tCiAgICAgIC0wLjAxCiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKCcuMDEtJyBhcyBudW1l cmljIEZPUk1BVCAnOTkuOTlTJyk7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgLTAuMDEKKygx IHJvdykKKwogU0VMRUNUIHRvX251bWJlcignIC4gMCAxLScsICcgOSA5IC4gOSA5IFMnKTsKICB0 b19udW1iZXIgCiAtLS0tLS0tLS0tLQogICAgICAtMC4wMQogKDEgcm93KQogCitTRUxFQ1QgQ0FT VCgnIC4gMCAxLScgYXMgbnVtZXJpYyBGT1JNQVQgJyA5IDkgLiA5IDkgUycpOworIG51bWVyaWMg CistLS0tLS0tLS0KKyAgIC0wLjAxCisoMSByb3cpCisKIFNFTEVDVCB0b19udW1iZXIoJzM0LDUw JywnOTk5LDk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0KICAgICAgIDM0NTAKICgxIHJv dykKIAorU0VMRUNUIENBU1QoJzM0LDUwJyBhcyBudW1lcmljIEZPUk1BVCAnOTk5LDk5Jyk7Cisg bnVtZXJpYyAKKy0tLS0tLS0tLQorICAgIDM0NTAKKygxIHJvdykKKwogU0VMRUNUIHRvX251bWJl cignMTIzLDAwMCcsJzk5OUcnKTsKICB0b19udW1iZXIgCiAtLS0tLS0tLS0tLQogICAgICAgIDEy MwogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgnMTIzLDAwMCcgYXMgbnVtZXJpYyBGT1JNQVQgJzk5 OUcnKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgIDEyMworKDEgcm93KQorCiBTRUxFQ1Qg dG9fbnVtYmVyKCcxMjM0NTYnLCc5OTlHOTk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0tLS0K ICAgICAxMjM0NTYKICgxIHJvdykKIAorU0VMRUNUIENBU1QoJzEyMzQ1NicgYXMgbnVtZXJpYyBG T1JNQVQgJzk5OUc5OTknKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgIDEyMzQ1NgorKDEgcm93 KQorCiBTRUxFQ1QgdG9fbnVtYmVyKCckMTIzNC41NicsJ0w5LDk5OS45OScpOwogIHRvX251bWJl ciAKIC0tLS0tLS0tLS0tCiAgICAxMjM0LjU2CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKCckMTIz NC41NicgYXMgbnVtZXJpYyBGT1JNQVQgJ0w5LDk5OS45OScpOworIG51bWVyaWMgCistLS0tLS0t LS0KKyAxMjM0LjU2CisoMSByb3cpCisKIFNFTEVDVCB0b19udW1iZXIoJyQxMjM0LjU2JywnTDk5 LDk5OS45OScpOwogIHRvX251bWJlciAKIC0tLS0tLS0tLS0tCiAgICAxMjM0LjU2CiAoMSByb3cp CiAKK1NFTEVDVCBDQVNUKCckMTIzNC41NicgYXMgbnVtZXJpYyBGT1JNQVQgJ0w5OSw5OTkuOTkn KTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgMTIzNC41NgorKDEgcm93KQorCiBTRUxFQ1QgdG9f bnVtYmVyKCckMSwyMzQuNTYnLCdMOTksOTk5Ljk5Jyk7CiAgdG9fbnVtYmVyIAogLS0tLS0tLS0t LS0KICAgIDEyMzQuNTYKICgxIHJvdykKIAorU0VMRUNUIENBU1QoJyQxLDIzNC41NicgYXMgbnVt ZXJpYyBGT1JNQVQgJ0w5OSw5OTkuOTknKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgMTIzNC41 NgorKDEgcm93KQorCiBTRUxFQ1QgdG9fbnVtYmVyKCcxMjM0LjU2JywnTDk5LDk5OS45OScpOwog IHRvX251bWJlciAKIC0tLS0tLS0tLS0tCiAgICAxMjM0LjU2CiAoMSByb3cpCiAKK1NFTEVDVCBD QVNUKCcxMjM0LjU2JyBhcyBudW1lcmljIEZPUk1BVCAnTDk5LDk5OS45OScpOworIG51bWVyaWMg CistLS0tLS0tLS0KKyAxMjM0LjU2CisoMSByb3cpCisKIFNFTEVDVCB0b19udW1iZXIoJzEsMjM0 LjU2JywnTDk5LDk5OS45OScpOwogIHRvX251bWJlciAKIC0tLS0tLS0tLS0tCiAgICAxMjM0LjU2 CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKCcxLDIzNC41NicgYXMgbnVtZXJpYyBGT1JNQVQgJ0w5 OSw5OTkuOTknKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgMTIzNC41NgorKDEgcm93KQorCiBT RUxFQ1QgdG9fbnVtYmVyKCc0Mm5kJywgJzk5dGgnKTsKICB0b19udW1iZXIgCiAtLS0tLS0tLS0t LQogICAgICAgICA0MgogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgnNDJuZCcgYXMgbnVtZXJpYyBG T1JNQVQgJzk5dGgnKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQor CiBTRUxFQ1QgdG9fbnVtYmVyKCcxMjM0NTYnLCAnOTk5OTlWOTknKTsKICAgICAgICAgdG9fbnVt YmVyICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxMjM0LjU2MDAwMDAwMDAw MDAwMDAwMAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgnMTIzNDU2JyBhcyBudW1lcmljIEZPUk1B VCAnOTk5OTlWOTknKTsKKyAgICAgICAgIG51bWVyaWMgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAxMjM0LjU2MDAwMDAwMDAwMDAwMDAwMAorKDEgcm93KQorCiAtLSBUZXN0 IGZvciBjb3JyZWN0IGNvbnZlcnNpb24gYmV0d2VlbiBudW1iZXJzIGFuZCBSb21hbiBudW1lcmFs cwogV0lUSCByb3dzIEFTCiAgIChTRUxFQ1QgaSwgdG9fY2hhcihpLCAnUk4nKSBBUyByb21hbiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAzOTk5KSBBUyBpKQogU0VMRUNUCi0gIGJvb2xfYW5kKHRv X251bWJlcihyb21hbiwgJ1JOJykgPSBpKSBhcyB2YWxpZAorICBib29sX2FuZCh0b19udW1iZXIo cm9tYW4sICdSTicpID0gaSkgYXMgdmFsaWQsCisgIGJvb2xfYW5kKGNhc3Qocm9tYW4gYXMgbnVt ZXJpYyBmb3JtYXQgJ1JOJykgPSBpKSBhcyB2YWxpZAogRlJPTSByb3dzOwotIHZhbGlkIAotLS0t LS0tLQotIHQKKyB2YWxpZCB8IHZhbGlkIAorLS0tLS0tLSstLS0tLS0tCisgdCAgICAgfCB0CiAo MSByb3cpCiAKIC0tIFNvbWUgYWRkaXRpb25hbCB0ZXN0cyBmb3IgUk4gaW5wdXQKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUubGludXgudXRmOC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2xsYXRlLmxpbnV4LnV0Zjguc3FsCmluZGV4IDEzMmQxM2FmMGE4Li44 NDBhMzM1MGEwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5saW51 eC51dGY4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmxpbnV4LnV0Zjgu c3FsCkBAIC0xODIsMTIgKzE4MiwxOSBAQCBTRUxFQ1QgdG9fY2hhcihkYXRlICcyMDEwLTAyLTAx JywgJ0REIFRNTU9OIFlZWVknIENPTExBVEUgInRyX1RSIik7CiBTRUxFQ1QgdG9fY2hhcihkYXRl ICcyMDEwLTA0LTAxJywgJ0REIFRNTU9OIFlZWVknKTsKIFNFTEVDVCB0b19jaGFyKGRhdGUgJzIw MTAtMDQtMDEnLCAnREQgVE1NT04gWVlZWScgQ09MTEFURSAidHJfVFIiKTsKIAorU0VMRUNUIENB U1QoZGF0ZSAnMjAxMC0wMi0wMScgYXMgdGV4dCBmb3JtYXQgJ0REIFRNTU9OIFlZWVknKTsKK1NF TEVDVCBDQVNUKGRhdGUgJzIwMTAtMDItMDEnIGFzIHRleHQgZm9ybWF0ICdERCBUTU1PTiBZWVlZ JyBDT0xMQVRFICJ0cl9UUiIpOworU0VMRUNUIENBU1QoZGF0ZSAnMjAxMC0wNC0wMScgYXMgdGV4 dCBmb3JtYXQgJ0REIFRNTU9OIFlZWVknKTsKK1NFTEVDVCBDQVNUKGRhdGUgJzIwMTAtMDQtMDEn IGFzIHRleHQgZm9ybWF0ICAnREQgVE1NT04gWVlZWScgQ09MTEFURSAidHJfVFIiKTsKKwogLS0g dG9fZGF0ZQogCiBTRUxFQ1QgdG9fZGF0ZSgnMDEgxZ5VQiAyMDEwJywgJ0REIFRNTU9OIFlZWVkn KTsKIFNFTEVDVCB0b19kYXRlKCcwMSDFnnViIDIwMTAnLCAnREQgVE1NT04gWVlZWScpOwogU0VM RUNUIHRvX2RhdGUoJzEyMzQ1Njc4OTBhYiAyMDEwJywgJ1RNTU9OVEggWVlZWScpOyAtLSBmYWls CiAKK1NFTEVDVCBDQVNUKCcwMSDFnlVCIDIwMTAnIGFzIGRhdGUgZm9ybWF0ICdERCBUTU1PTiBZ WVlZJyk7IC0tb2sKK1NFTEVDVCBDQVNUKCcxMjM0NTY3ODkwYWIgMjAxMCcgYXMgZGF0ZSBmb3Jt YXQgJ1RNTU9OVEggWVlZWScpOyAtLSBmYWlsCiAKIC0tIGJhY2t3YXJkcyBwYXJzaW5nCiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2hvcm9sb2d5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2hvcm9sb2d5LnNxbAppbmRleCA4OTc4MjQ5YTVkYy4uNzE0ZTM3NWIwODggMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2hvcm9sb2d5LnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9ob3JvbG9neS5zcWwKQEAgLTUzOSwyMSArNTM5LDQ2IEBAIFNFTEVDVCB0 b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6MzggLTA1OjIwJywgJ1lZWVktTU0tREQgSEgxMjpN SSBUWkg6VFpNJyk7CiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4IDIwJywg ICAgICdZWVlZLU1NLUREIEhIMTI6TUkgVFpNJyk7CiAKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIw MTEtMTItMTggMTE6MzggRVNUJywgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOworU0VMRUNUIGNh c3QoJzIwMTEtMTItMTggMTE6MzggRVNUJyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0t REQgSEgxMjpNSSBUWicpOworCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4 IC0wNScsICdZWVlZLU1NLUREIEhIMTI6TUkgVFonKTsKK1NFTEVDVCBjYXN0KCcyMDExLTEyLTE4 IDExOjM4IC0wNScgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhIMTI6TUkgVFon KTsKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCArMDE6MzAnLCAnWVlZ WS1NTS1ERCBISDEyOk1JIFRaJyk7CitTRUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAxMTozOCArMDE6 MzAnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1NTS1ERCBISDEyOk1JIFRaJyk7CisKIFNF TEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6MzggTVNLJywgJ1lZWVktTU0tREQgSEgx MjpNSSBUWicpOyAgLS0gZHludHoKK1NFTEVDVCBjYXN0KCcyMDExLTEyLTE4IDExOjM4IE1TSycg YXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhIMTI6TUkgVFonKTsgIC0tIGR5bnR6 CisKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMDA6MDAgTE1UJywgJ1lZWVktTU0t REQgSEgyNDpNSSBUWicpOyAgLS0gZHludHoKK1NFTEVDVCBjYXN0KCcyMDExLTEyLTE4IDAwOjAw IExNVCcgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhIMjQ6TUkgVFonKTsgIC0t IGR5bnR6CisKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6MzhFU1RGT08yNCcs ICdZWVlZLU1NLUREIEhIMTI6TUlUWkZPT1NTJyk7CitTRUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAx MTozOEVTVEZPTzI0JyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSVRa Rk9PU1MnKTsKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOC0wNUZPTzI0 JywgJ1lZWVktTU0tREQgSEgxMjpNSVRaRk9PU1MnKTsKK1NFTEVDVCBjYXN0KCcyMDExLTEyLTE4 IDExOjM4LTA1Rk9PMjQnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1NTS1ERCBISDEyOk1J VFpGT09TUycpOworCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDExLTEyLTE4IDExOjM4IEpVTksn LCAnWVlZWS1NTS1ERCBISDEyOk1JIFRaJyk7ICAtLSBlcnJvcgorU0VMRUNUIGNhc3QoJzIwMTEt MTItMTggMTE6MzggSlVOSycgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhIMTI6 TUkgVFonKTsgIC0tIGVycm9yCisKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6 MzggLi4uJywgJ1lZWVktTU0tREQgSEgxMjpNSSBUWicpOyAgLS0gZXJyb3IKK1NFTEVDVCBjYXN0 KCcyMDExLTEyLTE4IDExOjM4IC4uLicgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLURE IEhIMTI6TUkgVFonKTsgIC0tIGVycm9yCiAKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTIt MTggMTE6MzggLTA1JywgJ1lZWVktTU0tREQgSEgxMjpNSSBPRicpOworU0VMRUNUIGNhc3QgKCcy MDExLTEyLTE4IDExOjM4IC0wNScgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLU1NLUREIEhI MTI6TUkgT0YnKTsKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCArMDE6 MzAnLCAnWVlZWS1NTS1ERCBISDEyOk1JIE9GJyk7CitTRUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAx MTozOCArMDE6MzAnIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1NTS1ERCBISDEyOk1JIE9G Jyk7CisKIFNFTEVDVCB0b190aW1lc3RhbXAoJzIwMTEtMTItMTggMTE6MzggK3h5eicsICdZWVlZ LU1NLUREIEhIMTI6TUkgT0YnKTsgIC0tIGVycm9yCitTRUxFQ1QgY2FzdCgnMjAxMS0xMi0xOCAx MTozOCAreHl6JyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgxMjpNSSBPRicp OyAgLS0gZXJyb3IKKwogU0VMRUNUIHRvX3RpbWVzdGFtcCgnMjAxMS0xMi0xOCAxMTozOCArMDE6 eHl6JywgJ1lZWVktTU0tREQgSEgxMjpNSSBPRicpOyAgLS0gZXJyb3IKK1NFTEVDVCBjYXN0KCcy MDExLTEyLTE4IDExOjM4ICswMTp4eXonIGFzIHRpbWVzdGFtcHR6IGZvcm1hdCAnWVlZWS1NTS1E RCBISDEyOk1JIE9GJyk7ICAtLSBlcnJvcgogCiBTRUxFQ1QgdG9fdGltZXN0YW1wKCcyMDE4LTEx LTAyIDEyOjM0OjU2LjAyNScsICdZWVlZLU1NLUREIEhIMjQ6TUk6U1MuTVMnKTsKK1NFTEVDVCBj YXN0KCcyMDE4LTExLTAyIDEyOjM0OjU2LjAyNScgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZ LU1NLUREIEhIMjQ6TUk6U1MuTVMnKTsKIAogU0VMRUNUIGksIHRvX3RpbWVzdGFtcCgnMjAxOC0x MS0wMiAxMjozNDo1NicsICdZWVlZLU1NLUREIEhIMjQ6TUk6U1MuRkYnIHx8IGkpIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDYpIGk7CiBTRUxFQ1QgaSwgdG9fdGltZXN0YW1wKCcyMDE4LTExLTAy IDEyOjM0OjU2LjEnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZGJyB8fCBpKSBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2KSBpOwpAQCAtNTYzLDExICs1ODgsMTUgQEAgU0VMRUNUIGksIHRvX3Rp bWVzdGFtcCgnMjAxOC0xMS0wMiAxMjozNDo1Ni4xMjM0JywgJ1lZWVktTU0tREQgSEgyNDpNSTpT Uy5GRicgfHwKIFNFTEVDVCBpLCB0b190aW1lc3RhbXAoJzIwMTgtMTEtMDIgMTI6MzQ6NTYuMTIz NDUnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZGJyB8fCBpKSBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA2KSBpOwogU0VMRUNUIGksIHRvX3RpbWVzdGFtcCgnMjAxOC0xMS0wMiAxMjozNDo1Ni4x MjM0NTYnLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZGJyB8fCBpKSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA2KSBpOwogU0VMRUNUIGksIHRvX3RpbWVzdGFtcCgnMjAxOC0xMS0wMiAxMjozNDo1 Ni4xMjM0NTY3ODknLCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTLkZGJyB8fCBpKSBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2KSBpOworU0VMRUNUIGksIGNhc3QoJzIwMTgtMTEtMDIgMTI6MzQ6NTYu MTIzNDU2Nzg5JyBhcyB0aW1lc3RhbXB0eiBmb3JtYXQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUy5G RicgfHwgaSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNikgaTsKIFNFTEVDVCBpLCB0b190aW1l c3RhbXAoJzIwMTgxMTAyMTIzNDU2MTIzNDU2JywgJ1lZWVlNTURESEgyNE1JU1NGRicgfHwgaSkg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNikgaTsKIAogU0VMRUNUIHRvX2RhdGUoJzEgNCAxOTAy JywgJ1EgTU0gWVlZWScpOyAgLS0gUSBpcyBpZ25vcmVkCitTRUxFQ1QgY2FzdCgnMSA0IDE5MDIn IGFzIGRhdGUgZm9ybWF0ICdRIE1NIFlZWVknKTsgIC0tIFEgaXMgaWdub3JlZAogU0VMRUNUIHRv X2RhdGUoJzMgNCAyMSAwMScsICdXIE1NIENDIFlZJyk7CitTRUxFQ1QgY2FzdCgnMyA0IDIxIDAx JyBhcyBkYXRlIGZvcm1hdCAnVyBNTSBDQyBZWScpOwogU0VMRUNUIHRvX2RhdGUoJzI0NTg4NzIn LCAnSicpOworU0VMRUNUIGNhc3QoJzI0NTg4NzInIGFzIGRhdGUgZm9ybWF0ICdKJyk7CiAKIC0t CiAtLSBDaGVjayBoYW5kbGluZyBvZiBCQyBkYXRlcwpAQCAtNjc3LDcgKzcwNiw5IEBAIFNFTEVD VCB0b19kYXRlKCcyMTQ3NDgzNjQ3IDAxJywgJ0NDIFlZJyk7CiAKIC0tIHRvX2NoYXIncyBUWiBm b3JtYXQgY29kZSBwcm9kdWNlcyB6b25lIGFiYnJldiBpZiBrbm93bgogU0VMRUNUIHRvX2NoYXIo JzIwMTItMTItMTIgMTI6MDAnOjp0aW1lc3RhbXB0eiwgJ1lZWVktTU0tREQgSEg6TUk6U1MgVFon KTsKK1NFTEVDVCBjYXN0KCcyMDEyLTEyLTEyIDEyOjAwJzo6dGltZXN0YW1wdHogYXMgdGV4dCBm b3JtYXQgJ1lZWVktTU0tREQgSEg6TUk6U1MgVFonKTsKIFNFTEVDVCB0b19jaGFyKCcyMDEyLTEy LTEyIDEyOjAwJzo6dGltZXN0YW1wdHosICdZWVlZLU1NLUREIEhIOk1JOlNTIHR6Jyk7CitTRUxF Q1QgY2FzdCgnMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVzdGFtcHR6IGFzIHRleHQgZm9ybWF0ICdZ WVlZLU1NLUREIEhIOk1JOlNTIHR6Jyk7CiAKIC0tCiAtLSBDaGVjayBiZWhhdmlvciB3aXRoIFNR TC1zdHlsZSBmaXhlZC1HTVQtb2Zmc2V0IHRpbWUgem9uZSAoY2YgYnVnICM4NTcyKQpAQCAtNjky LDYgKzcyMywxNyBAQCBTRUxFQ1QgJzIwMTItMTItMTIgMTI6MDAnOjp0aW1lc3RhbXB0ejsKIFNF TEVDVCAnMjAxMi0xMi0xMiAxMjowMCBBbWVyaWNhL05ld19Zb3JrJzo6dGltZXN0YW1wdHo7CiAK IFNFTEVDVCB0b19jaGFyKCcyMDEyLTEyLTEyIDEyOjAwJzo6dGltZXN0YW1wdHosICdZWVlZLU1N LUREIEhIOk1JOlNTIFRaJyk7CitTRUxFQ1QgY2FzdCgnMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVz dGFtcHR6IGFzIHRleHQgZm9ybWF0ICdZWVlZLU1NLUREIEhIOk1JOlNTIFRaJyksCisgICAgICAg IHRvX2NoYXIoJzIwMTItMTItMTIgMTI6MDAnOjp0aW1lc3RhbXB0eiwgJ1lZWVktTU0tREQgSEg6 TUk6U1MgVFonKTsKKworU0VMRUNUIGNhc3QoJzIwMTItMTItMTIgMTI6MDAnOjpkYXRlIGFzIHRl eHQgZm9ybWF0ICdZWVlZLU1NLUREIEhIOk1JOlNTIFRaJyksCisgICAgICAgIHRvX2NoYXIoJzIw MTItMTItMTIgMTI6MDAnOjpkYXRlLCAnWVlZWS1NTS1ERCBISDpNSTpTUyBUWicpOworCitTRUxF Q1QgY2FzdCgnMTI6MDAnOjp0aW1lIGFzIHRleHQgZm9ybWF0ICdISDpNSTpTUycpLAorICAgICAg ICB0b19jaGFyKCcxMjowMCc6OnRpbWUsICdISDpNSTpTUycpOworCitTRUxFQ1QgY2FzdCgnMjAx Mi0xMi0xMiAxMjowMCc6OnRpbWV0eiBhcyB0ZXh0IGZvcm1hdCAnWVlZWS1NTS1ERCBISDpNSTpT UyBUWicpOworCiBTRUxFQ1QgdG9fY2hhcignMjAxMi0xMi0xMiAxMjowMCc6OnRpbWVzdGFtcHR6 LCAnWVlZWS1NTS1ERCBTU1NTJyk7CiBTRUxFQ1QgdG9fY2hhcignMjAxMi0xMi0xMiAxMjowMCc6 OnRpbWVzdGFtcHR6LCAnWVlZWS1NTS1ERCBTU1NTUycpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9pbnRlcnZhbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnRlcnZh bC5zcWwKaW5kZXggNDNiYzc5MzkyNWUuLmE1YjRkNjNlOWE0IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9pbnRlcnZhbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50 ZXJ2YWwuc3FsCkBAIC04MDEsNyArODAxLDkgQEAgU0VMRUNUICdpbmZpbml0eSc6OmludGVydmFs Ojp0aW1lOwogU0VMRUNUICctaW5maW5pdHknOjppbnRlcnZhbDo6dGltZTsKIAogU0VMRUNUIHRv X2NoYXIoJ2luZmluaXR5Jzo6aW50ZXJ2YWwsICdZWVlZJyk7CitTRUxFQ1QgY2FzdCgnaW5maW5p dHknOjppbnRlcnZhbCBhcyB0ZXh0IGZvcm1hdCAnWVlZWScpOwogU0VMRUNUIHRvX2NoYXIoJy1p bmZpbml0eSc6OmludGVydmFsLCAnWVlZWScpOworU0VMRUNUIGNhc3QoJy1pbmZpbml0eSc6Omlu dGVydmFsIGFzIHRleHQgZm9ybWF0ICdZWVlZJyk7CiAKIC0tICJhZ28iIGNhbiBvbmx5IGFwcGVh ciBvbmNlIGF0IHRoZSBlbmQgb2YgYW4gaW50ZXJ2YWwuCiBTRUxFQ1QgSU5URVJWQUwgJzQyIGRh eXMgMiBzZWNvbmRzIGFnbyBhZ28nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv bWlzYy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjLnNxbAppbmRleCAxNjVhMmUxNzVm Yi4uZWE1NzhkYjIyZDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2Muc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2Muc3FsCkBAIC0yNzMsMyArMjczLDgzIEBA IFNFTEVDVCAqLCAoZXF1aXBtZW50KENBU1QoKGguKikgQVMgaG9iYmllc19yKSkpLm5hbWUgRlJP TSBob2JiaWVzX3IgaDsKIC0tCiAtLSByZXdyaXRlIHJ1bGVzCiAtLQorCitzZWxlY3QgY2FzdCgn MjAxMi0xMy0xMicgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKTsgLS1lcnJvcgorc2VsZWN0 IGNhc3QoJzEnIGFzIGRhdGUgZm9ybWF0ICdZWVlZLU1NLUREJyk7CitzZWxlY3QgY2FzdCgnMScg Y29sbGF0ZSAiQyIgYXMgZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK3NlbGVjdCBjYXN0KCcy MDEyLTEzLTEyJyBhcyBkYXRlIGZvcm1hdCAnWVlZWS1ERC1NTScpIGFzIGRhdGU7CitzZWxlY3Qg Y2FzdCgnMjAxMi0xMy0xMicgYXMgdGltZXN0YW1wdHogZm9ybWF0ICdZWVlZLURELU1NJykgYXMg ZGF0ZTsKK3NlbGVjdCBjYXN0KCcxJyBhcyB0aW1lc3RhbXAgZm9ybWF0ICdZWVlZLU1NLUREJykg PSB0b190aW1lc3RhbXAoJzEnLCAnWVlZWS1NTS1ERCcpOworc2VsZWN0IGNhc3QoJzIwMjYtMDEt MjggMTM6Mjk6MTIuMzI0NjA2KzAxJzo6dGV4dCBhcyB0aW1lc3RhbXAgZm9ybWF0ICdZWVlZLU1N LUREJykgPQorICAgICAgICAgICAgdG9fdGltZXN0YW1wKCcyMDI2LTAxLTI4IDEzOjI5OjEyLjMy NDYwNiswMSc6OnRleHQsICdZWVlZLU1NLUREJyk7CitzZWxlY3QgY2FzdCgnMScgYXMgZGF0ZSBm b3JtYXQgJ1lZWVktTU0tREQnKSA9IHRvX2RhdGUoJzEnLCAnWVlZWS1NTS1ERCcpOworCistLUNB U1QgRk9STUFUIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGJpbmFyeSBjb2VyY2libGUgdHlwZSBjYXN0 LCBiZWxvdyBhbGwgc2hvdWxkIGZhaWwKK3NlbGVjdCBjYXN0KCcyMDIyLTAxLTAxJyBhcyB1bmtu b3duIGZvcm1hdCBudWxsKTsKK3NlbGVjdCBjYXN0KCcxJyBhcyB0ZXh0IGZvcm1hdCAnMSc6OnRl eHQpOworc2VsZWN0IGNhc3QoJzEnOjp0ZXh0IGFzIHRleHQgZm9ybWF0ICcxJzo6dGV4dCk7CisK Ky0tQ0FTVCBGT1JNQVQgY2FuIG9ubHkgYmUgdXNlZCBpbiBsaW1pdGVkIHR5cGVzLCBiZWxvdyBj YXNlIHNob3VsZCBhbGwgZmFpbAorc2VsZWN0IGNhc3QoJy0zNCwzMzgsNDkyJyBhcyBiaWdpbnQg Zm9ybWF0ICc5OUc5OTlHOTk5Jyk7CitzZWxlY3QgY2FzdChhcnJheVsxXSBhcyB0ZXh0IGZvcm1h dCAnWVlZWScpOworc2VsZWN0IGNhc3QoJzEnIGFzIHRpbWVzdGFtcFtdIGZvcm1hdCAnWVlZWS1N TS1ERCcpOworc2VsZWN0IGNhc3QoJzEnOjp0ZXh0IGFzIHVua25vd24gZm9ybWF0ICdZWVlZLU1N LUREJyk7CitzZWxlY3QgY2FzdCgnMScgYXMgYm9vbCBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK3Nl bGVjdCBjYXN0KCcxJyBhcyBqc29uIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworc2VsZWN0IGNhc3Qo JzEnOjpqc29uIGFzIHRleHQgZm9ybWF0ICdZWVlZLU1NLUREJyk7CitzZWxlY3QgY2FzdCgnMScg YXMgYW55ZWxlbWVudCBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK3NlbGVjdCBjYXN0KCcxJyBhcyBh bnllbnVtIGZvcm1hdCAnWVlZWS1NTS1ERCcpOworc2VsZWN0IGNhc3QobnVsbDo6YW55ZWxlbWVu dCBhcyBhbnllbGVtZW50IGZvcm1hdCAnWVlZWS1NTS1ERCcpOworc2VsZWN0IGNhc3QoJzEnIGFz IGRhdGUgZm9ybWF0IDEpOworCitzZWxlY3QgY2FzdCgnMSc6OnRleHQgY29sbGF0ZSAiQyIgYXMg ZGF0ZSBmb3JtYXQgJ1lZWVktTU0tREQnKTsKK3NlbGVjdCBjYXN0KCcxJyBhcyBkYXRlIGZvcm1h dCAnWVlZWS1NTS1ERCcpID0gdG9fZGF0ZSgnMScsICdZWVlZLU1NLUREJykgYXMgZXhwZWN0X3Ry dWU7CisKKy0tZG9tYWluIGNoZWNrCitjcmVhdGUgZG9tYWluIGQxIGFzIGRhdGUgY2hlY2sgKHZh bHVlIDw+ICcwMDAxLTAxLTAxJyk7CitzZWxlY3QgY2FzdCgnMScgYXMgZDEgZm9ybWF0ICdZWVlZ LU1NLUREJyk7IC0tZXJyb3IKK3NlbGVjdCBjYXN0KCcxJyBhcyBkMSBmb3JtYXQgJ01NLUREJyk7 IC0tb2sKKworY3JlYXRlIGZ1bmN0aW9uIHJldF9zZXR0eHQoKSByZXR1cm5zIHNldG9mIHRleHQg YXMKKyQkCitiZWdpbgorICAgIHJldHVybiBxdWVyeSBleGVjdXRlICdzZWxlY3QgMSB1bmlvbiBh bGwgc2VsZWN0IDEnOworZW5kOworJCQKK2xhbmd1YWdlIHBscGdzcWwgaW1tdXRhYmxlOworLS1m b3JtYXQgZXhwcmVzc2lvbiBjYW5ub3QgcmV0dXJuIGEgc2V0CitzZWxlY3QgY2FzdChOVUxMIGFz IGRhdGUgZm9ybWF0IHJldF9zZXR0eHQoKSk7Citkcm9wIGZ1bmN0aW9uIHJldF9zZXR0eHQ7CisK K2NyZWF0ZSB0YWJsZSB0Y2FzdChjb2wxIHRleHQsIGNvbDIgdGV4dCwgY29sMyBkYXRlLCBjb2w0 IHRpbWVzdGFtcHR6LCBjb2w1IGludDgpOworaW5zZXJ0IGludG8gdGNhc3QoY29sMSwgY29sMiwg Y29sNSkgdmFsdWVzKCcyMDIyLTEyLTEzJywgJ1lZWVktTU0tREQnLCAxMjM0KSwgKCcyMDIyLTEy LTAxJywgJ1lZWVktREQtTU0nLCAtMTIzNCk7CisKK3NlbGVjdCBjYXN0KGNvbDEgYXMgZGF0ZSBm b3JtYXQgY29sMikgZnJvbSB0Y2FzdDsKK3NlbGVjdCBjYXN0KGNvbDEgYXMgZGF0ZSBmb3JtYXQg Y29sMykgZnJvbSB0Y2FzdDsgLS1lcnJvcgorc2VsZWN0IGNhc3QoY29sMSBhcyBkYXRlIGZvcm1h dCBjb2wzOjp0ZXh0KSBmcm9tIHRjYXN0OyAtLW9rCisKK2NyZWF0ZSBmdW5jdGlvbiBpbW1fY29u c3QoKSByZXR1cm5zIHRleHQgYXMgJCQgYmVnaW4gcmV0dXJuICdZWVlZLU1NLUREJzsgZW5kOyAk JCBsYW5ndWFnZSBwbHBnc3FsIGltbXV0YWJsZTs7CitzZWxlY3QgY2FzdChjb2wxIGFzIGRhdGUg Zm9ybWF0IGltbV9jb25zdCgpKSBmcm9tIHRjYXN0OworY3JlYXRlIGluZGV4IHMxIG9uIHRjYXN0 KGNhc3QoY29sMSBhcyBkYXRlIGZvcm1hdCAnWVlZWS1NTS1ERCcpKTsgLS1lcnJvcgorCitjcmVh dGUgdmlldyB0Y2FzdF92MSBhcworICAgc2VsZWN0IGNhc3QoY29sMSBhcyBkYXRlIGZvcm1hdCAn WVlZWS1NTS1ERCcpIGFzIHRvX2RhdGUsCisgICAgICAgICBjYXN0KGNvbDEgYXMgdGltZXN0YW1w dHogZm9ybWF0ICdZWVlZLU1NLUREJykgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgICBjYXN0 KE5VTEw6OmludGVydmFsIGFzIHRleHQgZm9ybWF0ICdZWVlZLU1NLUREJykgYXMgdG9fdHh0MCwK KyAgICAgICAgIGNhc3QoY29sMyBhcyB0ZXh0IGZvcm1hdCAnWVlZWS1NTS1ERCcpIGFzIHRvX3R4 dCwKKyAgICAgICAgIGNhc3QoY29sNCBhcyB0ZXh0IGZvcm1hdCAnWVlZWS1NTS1ERCcpIGFzIHRv X3R4dDEsCisgICAgICAgICBjYXN0KG51bWVyaWMgJ2luZicgYXMgdGV4dCBmb3JtYXQgJ1lZWVkt TU0tREQnKSBhcyB0b190eHQyLAorICAgICAgICAgY2FzdChiaWdpbnQgJzEyMzI0JyBhcyB0ZXh0 IGZvcm1hdCAnWVlZWS1NTS1ERCcpIGFzIHRvX3R4dDMKKyAgIGZyb20gdGNhc3Q7CisKK3NlbGVj dCBwZ19nZXRfdmlld2RlZigndGNhc3RfdjEnLCB0cnVlKTsKKworY3JlYXRlIHZpZXcgdGNhc3Rf djIgYXMKKyAgIHNlbGVjdCBjYXN0KGNvbDUgYXMgdGV4dCBmb3JtYXQgJzkuOTlFRUVFJykgYXMg dG9fdHh0MCwKKyAgICAgICAgIGNhc3QoY29sNTo6ZmxvYXQ4IGFzIHRleHQgZm9ybWF0ICc5Ljk5 RUVFRScpIGFzIHRvX3R4dDEsCisgICAgICAgICBjYXN0KGNvbDU6OmZsb2F0NCBhcyB0ZXh0IGZv cm1hdCAnOS45OUVFRUUnKSBhcyB0b190eHQyLAorICAgICAgICAgY2FzdChjb2w1OjpudW1lcmlj IGFzIHRleHQgZm9ybWF0ICc5Ljk5RUVFRScpIGFzIHRvX3R4dDMsCisgICAgICAgICBjYXN0KGNv bDU6OmludDIgYXMgdGV4dCBmb3JtYXQgJzkuOTlFRUVFJykgYXMgdG9fdHh0NAorICAgZnJvbSB0 Y2FzdDsKK3NlbGVjdCBwZ19nZXRfdmlld2RlZigndGNhc3RfdjInLCB0cnVlKTsKK3NlbGVjdCAq IGZyb20gdGNhc3RfdjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9udW1lcmlj LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyaWMuc3FsCmluZGV4IDY0MGM2ZDkyZjRj Li5mZDdiYzI2ODg3ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJpYy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJpYy5zcWwKQEAgLTEwNjUsMzQgKzEw NjUsNTggQEAgU0VMRUNUIHRvX2NoYXIoJzEwMCc6Om51bWVyaWMsICdmIm9vbFxcIjk5OScpOwog LS0KIFNFVCBsY19udW1lcmljID0gJ0MnOwogU0VMRUNUIHRvX251bWJlcignLTM0LDMzOCw0OTIn LCAnOTlHOTk5Rzk5OScpOworU0VMRUNUIENBU1QoJy0zNCwzMzgsNDkyJyBhcyBudW1lcmljIEZP Uk1BVCAgJzk5Rzk5OUc5OTknKTsKIFNFTEVDVCB0b19udW1iZXIoJy0zNCwzMzgsNDkyLjY1NCw4 NzgnLCAnOTlHOTk5Rzk5OUQ5OTlHOTk5Jyk7CitTRUxFQ1QgQ0FTVCgnLTM0LDMzOCw0OTIuNjU0 LDg3OCcgYXMgbnVtZXJpYyBGT1JNQVQgJzk5Rzk5OUc5OTlEOTk5Rzk5OScpOwogU0VMRUNUIHRv X251bWJlcignPDU2NDY0Ni42NTQ1NjQ+JywgJzk5OTk5OS45OTk5OTlQUicpOworU0VMRUNUIENB U1QoJzw1NjQ2NDYuNjU0NTY0PicgYXMgbnVtZXJpYyBGT1JNQVQgJzk5OTk5OS45OTk5OTlQUicp OwogU0VMRUNUIHRvX251bWJlcignMC4wMDAwMS0nLCAnOS45OTk5OTlTJyk7CitTRUxFQ1QgQ0FT VCgnMC4wMDAwMS0nIGFzIG51bWVyaWMgRk9STUFUICc5Ljk5OTk5OVMnKTsKIFNFTEVDVCB0b19u dW1iZXIoJzUuMDEtJywgJ0ZNOS45OTk5OTlTJyk7CitTRUxFQ1QgQ0FTVCgnNS4wMS0nIGFzIG51 bWVyaWMgRk9STUFUICdGTTkuOTk5OTk5UycpOwogU0VMRUNUIHRvX251bWJlcignNS4wMS0nLCAn Rk05Ljk5OTk5OU1JJyk7CitTRUxFQ1QgQ0FTVCgnNS4wMS0nIGFzIG51bWVyaWMgRk9STUFUICdG TTkuOTk5OTk5TUknKTsKIFNFTEVDVCB0b19udW1iZXIoJzUgNCA0IDQgNCA4IC4gNyA4JywgJzkg OSA5IDkgOSA5IC4gOSA5Jyk7CitTRUxFQ1QgQ0FTVCgnNSA0IDQgNCA0IDggLiA3IDgnIGFzIG51 bWVyaWMgRk9STUFUICc5IDkgOSA5IDkgOSAuIDkgOScpOwogU0VMRUNUIHRvX251bWJlcignLjAx JywgJ0ZNOS45OScpOworU0VMRUNUIENBU1QoJy4wMScgYXMgbnVtZXJpYyBGT1JNQVQgJ0ZNOS45 OScpOwogU0VMRUNUIHRvX251bWJlcignLjAnLCAnOTk5OTk5OTkuOTk5OTk5OTknKTsKK1NFTEVD VCBDQVNUKCcuMCcgYXMgbnVtZXJpYyBGT1JNQVQgJzk5OTk5OTk5Ljk5OTk5OTk5Jyk7CiBTRUxF Q1QgdG9fbnVtYmVyKCcwJywgJzk5Ljk5Jyk7CitTRUxFQ1QgQ0FTVCgnMCcgYXMgbnVtZXJpYyBG T1JNQVQgJzk5Ljk5Jyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCcuLTAxJywgJ1M5OS45OScpOworU0VM RUNUIENBU1QoJy4tMDEnIGFzIG51bWVyaWMgRk9STUFUICdTOTkuOTknKTsKIFNFTEVDVCB0b19u dW1iZXIoJy4wMS0nLCAnOTkuOTlTJyk7CitTRUxFQ1QgQ0FTVCgnLjAxLScgYXMgbnVtZXJpYyBG T1JNQVQgJzk5Ljk5UycpOwogU0VMRUNUIHRvX251bWJlcignIC4gMCAxLScsICcgOSA5IC4gOSA5 IFMnKTsKK1NFTEVDVCBDQVNUKCcgLiAwIDEtJyBhcyBudW1lcmljIEZPUk1BVCAnIDkgOSAuIDkg OSBTJyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCczNCw1MCcsJzk5OSw5OScpOworU0VMRUNUIENBU1Qo JzM0LDUwJyBhcyBudW1lcmljIEZPUk1BVCAnOTk5LDk5Jyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCcx MjMsMDAwJywnOTk5RycpOworU0VMRUNUIENBU1QoJzEyMywwMDAnIGFzIG51bWVyaWMgRk9STUFU ICc5OTlHJyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCcxMjM0NTYnLCc5OTlHOTk5Jyk7CitTRUxFQ1Qg Q0FTVCgnMTIzNDU2JyBhcyBudW1lcmljIEZPUk1BVCAnOTk5Rzk5OScpOwogU0VMRUNUIHRvX251 bWJlcignJDEyMzQuNTYnLCdMOSw5OTkuOTknKTsKK1NFTEVDVCBDQVNUKCckMTIzNC41NicgYXMg bnVtZXJpYyBGT1JNQVQgJ0w5LDk5OS45OScpOwogU0VMRUNUIHRvX251bWJlcignJDEyMzQuNTYn LCdMOTksOTk5Ljk5Jyk7CitTRUxFQ1QgQ0FTVCgnJDEyMzQuNTYnIGFzIG51bWVyaWMgRk9STUFU ICdMOTksOTk5Ljk5Jyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCckMSwyMzQuNTYnLCdMOTksOTk5Ljk5 Jyk7CitTRUxFQ1QgQ0FTVCgnJDEsMjM0LjU2JyBhcyBudW1lcmljIEZPUk1BVCAnTDk5LDk5OS45 OScpOwogU0VMRUNUIHRvX251bWJlcignMTIzNC41NicsJ0w5OSw5OTkuOTknKTsKK1NFTEVDVCBD QVNUKCcxMjM0LjU2JyBhcyBudW1lcmljIEZPUk1BVCAnTDk5LDk5OS45OScpOwogU0VMRUNUIHRv X251bWJlcignMSwyMzQuNTYnLCdMOTksOTk5Ljk5Jyk7CitTRUxFQ1QgQ0FTVCgnMSwyMzQuNTYn IGFzIG51bWVyaWMgRk9STUFUICdMOTksOTk5Ljk5Jyk7CiBTRUxFQ1QgdG9fbnVtYmVyKCc0Mm5k JywgJzk5dGgnKTsKK1NFTEVDVCBDQVNUKCc0Mm5kJyBhcyBudW1lcmljIEZPUk1BVCAnOTl0aCcp OwogU0VMRUNUIHRvX251bWJlcignMTIzNDU2JywgJzk5OTk5Vjk5Jyk7CitTRUxFQ1QgQ0FTVCgn MTIzNDU2JyBhcyBudW1lcmljIEZPUk1BVCAnOTk5OTlWOTknKTsKIAogLS0gVGVzdCBmb3IgY29y cmVjdCBjb252ZXJzaW9uIGJldHdlZW4gbnVtYmVycyBhbmQgUm9tYW4gbnVtZXJhbHMKIFdJVEgg cm93cyBBUwogICAoU0VMRUNUIGksIHRvX2NoYXIoaSwgJ1JOJykgQVMgcm9tYW4gRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMzk5OSkgQVMgaSkKIFNFTEVDVAotICBib29sX2FuZCh0b19udW1iZXIo cm9tYW4sICdSTicpID0gaSkgYXMgdmFsaWQKKyAgYm9vbF9hbmQodG9fbnVtYmVyKHJvbWFuLCAn Uk4nKSA9IGkpIGFzIHZhbGlkLAorICBib29sX2FuZChjYXN0KHJvbWFuIGFzIG51bWVyaWMgZm9y bWF0ICdSTicpID0gaSkgYXMgdmFsaWQKIEZST00gcm93czsKIAogLS0gU29tZSBhZGRpdGlvbmFs IHRlc3RzIGZvciBSTiBpbnB1dAotLSAKMi4zNC4xCgo= --000000000000708dcb0649820ee9--