Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1erngZ-00062C-CI for pgadmin-hackers@arkaria.postgresql.org; Fri, 02 Mar 2018 16:37:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1erngY-0003Jd-1v for pgadmin-hackers@arkaria.postgresql.org; Fri, 02 Mar 2018 16:37:30 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1erngX-0003JT-7s for pgadmin-hackers@lists.postgresql.org; Fri, 02 Mar 2018 16:37:29 +0000 Received: from mail-io0-x22b.google.com ([2607:f8b0:4001:c06::22b]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1erngR-0005mU-4d for pgadmin-hackers@postgresql.org; Fri, 02 Mar 2018 16:37:28 +0000 Received: by mail-io0-x22b.google.com with SMTP id m22so11169895iob.12 for ; Fri, 02 Mar 2018 08:37:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=KN1/yQ567/T/uGQSFKKohdEyzcQZVctwOTB6ESX1Uvs=; b=s5AOXMcDoHbpuZhjnZkNWoEUubevxGqTokDMHES9nbtX1gn6nLEc7rgVQtfYY1Nal8 4uv6MBw2LCdN+1gfuahsEO/N5ceq0lp1oU4bUiQAQdc9+wq8NgC6bhW2b7tqELucThKE LDzW8SW0FQ2xhDztqIHzbSPOpDkHwyAWOV0aL8KhJCFRwaZjsCugVImujqPjbOtzHbmS qu4vKAZKd5t0MRj6a4pk48fCLs/O6Y1HCePh/dioZbpnrnZ0FVDyzPAULmfN6j5xRkIG 1A3eh/+++JXYR+HE+LBshDommoytNtpDHLKSstY6KQTxQuLiSNzOs7yhvA3wB3pLtzcr 9PLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=KN1/yQ567/T/uGQSFKKohdEyzcQZVctwOTB6ESX1Uvs=; b=LOl8YfgYncBs4CSnet4ZTULDFQ9SSwPWwEB3bwr95omvHFSWu2pDxV9Xxq0IIrKgmM d+dNCiP8e27/7by1OnO8XcO5IV/2yPWkr9ENsHM2dl7rU7v+JKlOvpF3s4UOlKexYMqO XfCg6OY8ujsmPk6KrldqZqhQKq9yD9vwNxs//C+J4PHbOh4Im3MGKWfsI7fXwYQpmU0N aiw0ADLfgRd8d8ecKNtkBHw5FtrU19k7AEAGFP6PvPWPlaQ2z39jyv/c9n+3aSm6JomG LBADq2ZjBu0khMS4t38YVyqHGIxeNssPkqKKPCBzz8qeClxmvcz5GIEgYKyUrMrMpSa+ M2qg== X-Gm-Message-State: AElRT7HXnRZuBN12u/qK5jtGYEmRlTdySG8XhH43LJJFJqMHe1czaZaN DAD2HFUELiXhdwwPUGJg6oehmr4vP3Lsg7bGZtaU9g== X-Google-Smtp-Source: AG47ELuXqxA3baTrUSwHGolUnDVFWMNzzOV65r7+h31mVu65voThkcOznmzDQz8sKKdMHWED0MRdvN1VI4Yi0qp7s4k= X-Received: by 10.107.200.69 with SMTP id y66mr7218032iof.116.1520008641388; Fri, 02 Mar 2018 08:37:21 -0800 (PST) MIME-Version: 1.0 From: Joao De Almeida Pereira Date: Fri, 02 Mar 2018 16:37:10 +0000 Message-ID: Subject: [pgadmin4][patch] External Tables for GreenPlum #3168 To: pgadmin-hackers Content-Type: multipart/mixed; boundary="94eb2c0b9ace21dace05667097c8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --94eb2c0b9ace21dace05667097c8 Content-Type: multipart/alternative; boundary="94eb2c0b9ace21dacb05667097c6" --94eb2c0b9ace21dacb05667097c6 Content-Type: text/plain; charset="UTF-8" Hello Hackers, Attached you can find the patch that remove the External Tables from the Tables node and create a new node at the database level for GreenPlum. - Do not display External Tables in the Tables node - Create a new node under databases for External Tables - Generate DDL for external tables - Generate properties for external tables All these changes can only be seen when accessing a GreenPlum database. Thanks Joao --94eb2c0b9ace21dacb05667097c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Hackers,

Attached you can find th= e patch that remove the External Tables from the Tables node and create a n= ew node at the database level for GreenPlum.
=C2=A0- Do not displ= ay External Tables in the Tables node
=C2=A0- Create a new node u= nder databases for External Tables
=C2=A0- Generate DDL for exter= nal tables
=C2=A0- Generate properties for external tables
<= div>
All these changes can only be seen when accessing a Gree= nPlum database.

Thanks
Joao
--94eb2c0b9ace21dacb05667097c6-- --94eb2c0b9ace21dace05667097c8 Content-Type: text/x-patch; charset="US-ASCII"; name="external-tables.patch" Content-Disposition: attachment; filename="external-tables.patch" Content-Transfer-Encoding: base64 Content-ID: <161e792c05a7243ae411> X-Attachment-Id: 161e792c05a7243ae411 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlcm5hbF90YWJsZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL19faW5pdF9f LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4xMzdjNmM0NAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlcm5hbF90YWJsZXMvX19pbml0X18ucHkKQEAgLTAsMCArMSwyNzUgQEAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkltcGxlbWVudHMgRXh0ZXJuYWwgVGFibGVzIE5v ZGUiIiIKK2ltcG9ydCBvcworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCitmcm9tIGdldHRl eHQgaW1wb3J0IGdldHRleHQKKworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlCisK K2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLmJyb3dz ZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycyBpbXBvcnQgZGF0YWJhc2VzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIFwKKyAgICAuZXh0ZXJu YWxfdGFibGVzLm1hcHBpbmdfdXRpbHMgaW1wb3J0IG1hcF9leGVjdXRpb25fbG9jYXRpb24KK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgXAorICAg IC5leHRlcm5hbF90YWJsZXMucHJvcGVydGllcyBpbXBvcnQgUHJvcGVydGllcywgXAorICAgIFBy b3BlcnRpZXNUYWJsZU5vdEZvdW5kRXhjZXB0aW9uLCBQcm9wZXJ0aWVzRXhjZXB0aW9uCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIFwKKyAgICAu ZXh0ZXJuYWxfdGFibGVzLnJldmVyc2VfZW5naW5lZXJfZGRsIGltcG9ydCBSZXZlcnNlRW5naW5l ZXJEREwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcK K2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIG1ha2Vf cmVzcG9uc2UsIFwKKyAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi51dGls cy5jb21waWxlX3RlbXBsYXRlX25hbWUgaW1wb3J0IGNvbXBpbGVfdGVtcGxhdGVfcGF0aAorZnJv bSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorCisKK2NsYXNzIEV4dGVy bmFsVGFibGVzTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAgICBjbGFz cyBFeHRlcm5hbFRhYmxlc01vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKKworICAgICAgICBB IG1vZHVsZSBjbGFzcyBmb3IgRXh0ZXJuYWwgVGFibGVzIG5vZGUgZGVyaXZlZCBmcm9tCisgICAg ICAgIENvbGxlY3Rpb25Ob2RlTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisg ICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIEV4dGVybmFsIFRhYmxlcyBtb2R1bGUKKyAgICAgICAgYW5kIGl0J3Mg YmFzZSBtb2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBN ZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUuCisK KyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3Ig RXh0ZXJuYWwgVGFibGVzLCB3aGVuIGFueSBvZgorICAgICAgICB0aGUgZGF0YWJhc2Ugbm9kZSBp cyBpbml0aWFsaXplZC4KKyAgICAiIiIKKworICAgIE5PREVfVFlQRSA9ICdleHRlcm5hbF90YWJs ZScKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiRXh0ZXJuYWwgVGFibGVzIikKKwor ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAg ICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRXh0ZXJuYWwgdGFibGVzIG1v ZHVsZSBhbmQKKyAgICAgICAgaXQncyBiYXNlIG1vZHVsZS4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisKKyAg ICAgICAgc3VwZXIoRXh0ZXJuYWxUYWJsZXNNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAq Kmt3YXJncykKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gMAorCisgICAgZGVmIGdldF9ub2Rlcyhz ZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2Vy X2NvbGxlY3Rpb25fbm9kZShkaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xv YWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZv ciBFeHRlcm5hbCB0YWJsZXMsCisgICAgICAgIHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2Rl IGlzIGluaXRpYWxpemVkLgorCisgICAgICAgIFJldHVybnM6IG5vZGUgdHlwZSBvZiB0aGUgZGF0 YWJhc2UgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlcy5EYXRh YmFzZU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb2R1bGVfdXNl X3RlbXBsYXRlX2phdmFzY3JpcHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5z IHdoZXRoZXIgSmluamEyIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGphdmFz Y3JpcHQKKyAgICAgICAgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNl CisKKworYmx1ZXByaW50ID0gRXh0ZXJuYWxUYWJsZXNNb2R1bGUoX19uYW1lX18pCisKKworY2xh c3MgRXh0ZXJuYWxUYWJsZXNWaWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0g Ymx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdzZXJ2ZXJfZ3JvdXBfaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICdzZXJ2ZXJfaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdk YXRhYmFzZV9pZCd9CisgICAgXQorCisgICAgaWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50 JywgJ2lkJzogJ2V4dGVybmFsX3RhYmxlX2lkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0g ZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVz J30KKyAgICAgICAgXSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQn OiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0KKyAgICB9KQorCisgICAgZGVmIGNoZWNr X3ByZWNvbmRpdGlvbihmdW5jdGlvbl93cmFwcGVkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MK KyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxs IGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9w ZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGZ1bmN0aW9uX3dy YXBwZWQpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAj IEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxk aWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIg PSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAg ICAgICAgICAgICAga3dhcmdzWydzZXJ2ZXJfaWQnXQorICAgICAgICAgICAgKQorICAgICAgICAg ICAgc2VsZi5jb25uZWN0aW9uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oCisgICAgICAgICAg ICAgICAgZGlkPWt3YXJnc1snZGF0YWJhc2VfaWQnXQorICAgICAgICAgICAgKQorICAgICAgICAg ICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCA9IGNvbXBpbGVfdGVtcGxhdGVfcGF0aCgKKyAgICAg ICAgICAgICAgICAnc3FsLycsCisgICAgICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90 eXBlLAorICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zdmVyc2lvbgorICAgICAgICAgICAg KQorCisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25fd3JhcHBlZCgqYXJncywgKiprd2FyZ3Mp CisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg Kiprd2FyZ3MpOgorICAgICAgICBzdXBlcihFeHRlcm5hbFRhYmxlc1ZpZXcsIHNlbGYpLl9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gTm9uZQorICAg ICAgICBzZWxmLm1hbmFnZXIgPSBOb25lCisgICAgICAgIHNlbGYuc3FsX3RlbXBsYXRlX3BhdGgg PSBOb25lCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIHNl cnZlcl9ncm91cF9pZCwgc2VydmVyX2lkLCBkYXRhYmFzZV9pZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXNlZCB0byBjcmVhdGUgYWxsIHRoZSBjaGlsZCBub2Rl IHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisgICAgICAgIEhlcmUgaXQgd2lsbCBj cmVhdGUgYWxsIHRoZSBmb3JlaWduIGRhdGEgd3JhcHBlciBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2VydmVyX2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRhdGFiYXNlX2lkOiBEYXRhYmFz ZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgc3FsX3N0YXRlbWVudCA9IHJlbmRlcl90ZW1wbGF0 ZSgKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLCAnbGlz dC5zcWwnKQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRfZXh0ZXJuYWxf dGFibGVzKGRhdGFiYXNlX2lkLCBzcWxfc3RhdGVtZW50KQorCisgICAgICAgIGlmIHR5cGUocmVz dWx0KSBpcyBub3QgbGlzdDoKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXN1bHQsCisgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgbm9kZShzZWxmLCBzZXJ2ZXJfZ3JvdXBfaWQsIHNlcnZlcl9pZCwgZGF0YWJhc2Vf aWQsIGV4dGVybmFsX3RhYmxlX2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAg ICAgICAgY29sbGVjdGlvbi4KKyAgICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIGZv cmVpZ24gZGF0YSB3cmFwcGVyIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNl cnZlcl9ncm91cF9pZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzZXJ2ZXJfaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGF0YWJhc2VfaWQ6IERhdGFiYXNlIElECisgICAgICAgICAg ICBleHRlcm5hbF90YWJsZV9pZDogRXh0ZXJuYWwgVGFibGUgSUQKKyAgICAgICAgIiIiCisgICAg ICAgIHNxbF9zdGF0ZW1lbnQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICB0ZW1wbGF0 ZV9uYW1lX29yX2xpc3Q9b3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIHNlbGYuc3FsX3Rl bXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgJ25vZGUuc3FsJworICAgICAgICAgICAgKSwK KyAgICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPWV4dGVybmFsX3RhYmxlX2lkCisgICAgICAg ICkKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5nZXRfZXh0ZXJuYWxfdGFibGVzKGRhdGFiYXNlX2lk LCBzcWxfc3RhdGVtZW50KQorCisgICAgICAgIGlmIHR5cGUocmVzdWx0KSBpcyBub3QgbGlzdDoK KyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICBpZiBsZW4ocmVzdWx0KSA9PSAw OgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICBkYXRhPWdldHRleHQoJ0NvdWxkIG5vdCBmaW5kIHRoZSBleHRlcm5hbCB0YWJsZS4nKSwKKyAg ICAgICAgICAgICAgICBzdGF0dXM9NDA0CisgICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzdWx0WzBdLAorICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIHNxbChzZWxmLCBzZXJ2ZXJfZ3JvdXBfaWQsIHNlcnZlcl9pZCwgZGF0YWJhc2VfaWQs IGV4dGVybmFsX3RhYmxlX2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAgICAg ICAgY29sbGVjdGlvbi4KKyAgICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIGZvcmVp Z24gZGF0YSB3cmFwcGVyIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNlcnZl cl9ncm91cF9pZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzZXJ2ZXJfaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGF0YWJhc2VfaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBl eHRlcm5hbF90YWJsZV9pZDogRXh0ZXJuYWwgVGFibGUgSUQKKyAgICAgICAgIiIiCisgICAgICAg IHNxbCA9IFJldmVyc2VFbmdpbmVlckRETChzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLCBzZXJ2ZXJfZ3JvdXBfaWQsIHNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkKS5l eGVjdXRlKGV4dGVybmFsX3RhYmxlX2lkKQorCisgICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNl KAorICAgICAgICAgICAgc3FsLnN0cmlwKCdcbicpCisgICAgICAgICkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBzZXJ2ZXJfZ3JvdXBfaWQsIHNl cnZlcl9pZCwgZGF0YWJhc2VfaWQsCisgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVf aWQpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwb25zZSA9IFByb3BlcnRpZXMocmVu ZGVyX3RlbXBsYXRlLCBzZWxmLmNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCkucmV0cmlldmUoCisgICAgICAgICAgICAg ICAgZXh0ZXJuYWxfdGFibGVfaWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgK KyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNwb25zZSwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwKQorICAgICAgICBleGNlcHQgUHJvcGVydGllc1RhYmxlTm90Rm91bmRFeGNlcHRpb246 CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IGRhdGE9Z2V0dGV4dCgnQ291bGQgbm90IGZpbmQgdGhlIGV4dGVybmFsIHRhYmxlLicpLAorICAg ICAgICAgICAgICAgIHN0YXR1cz00MDQKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IFBy b3BlcnRpZXNFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIGV4Y2Vw dGlvbi5yZXNwb25zZV9vYmplY3QKKworICAgIGRlZiBjaGlsZHJlbihzZWxmLCAqKmt3YXJncyk6 CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT1bXSkKKworICAgIGRlZiBn ZXRfZXh0ZXJuYWxfdGFibGVzKHNlbGYsIGRhdGFiYXNlX2lkLCBzcWxfc3RhdGVtZW50KToKKyAg ICAgICAgc3RhdHVzLCBleHRlcm5hbF90YWJsZXMgPSBzZWxmLmNvbm5lY3Rpb24gXAorICAgICAg ICAgICAgLmV4ZWN1dGVfMmRhcnJheShzcWxfc3RhdGVtZW50KQorICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1l eHRlcm5hbF90YWJsZXMpCisKKyAgICAgICAgaWNvbl9jc3NfY2xhc3MgPSAnaWNvbi1leHRlcm5h bF90YWJsZScKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgZm9yIGV4dGVybmFsX3RhYmxl IGluIGV4dGVybmFsX3RhYmxlc1sncm93cyddOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChz ZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgZXh0 ZXJuYWxfdGFibGVbJ29pZCddLAorICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkLAorICAgICAg ICAgICAgICAgIGV4dGVybmFsX3RhYmxlWyduYW1lJ10sCisgICAgICAgICAgICAgICAgaW5vZGU9 RmFsc2UsCisgICAgICAgICAgICAgICAgaWNvbj1pY29uX2Nzc19jbGFzcworICAgICAgICAgICAg KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisKK0V4dGVybmFsVGFibGVzVmlldy5yZWdpc3Rl cl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9hY3Rpb25zL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9hY3Rpb25zL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5lNjlkZTI5YgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9h Y3Rpb25zL2dldF9hbGxfbm9kZXMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL2FjdGlvbnMvZ2V0X2FsbF9ub2Rl cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYTA2YmMwYjMKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL2FjdGlvbnMvZ2V0X2FsbF9ub2Rlcy5weQpAQCAtMCww ICsxLDQgQEAKKworY2xhc3MgR2V0QWxsTm9kZXM6CisgICAgZGVmIGV4ZWN1dGUoc2VsZik6Cisg ICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvbWFwcGluZ191dGlscy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5h bF90YWJsZXMvbWFwcGluZ191dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uYjRmZTg5YTQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL21hcHBpbmdfdXRp bHMucHkKQEAgLTAsMCArMSwxNjUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQg cmUKKworCitkZWYgbWFwX2NvbHVtbl9mcm9tX2RhdGFiYXNlKGNvbHVtbl9pbmZvcm1hdGlvbik6 CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ25hbWUnOiBjb2x1bW5faW5mb3JtYXRpb25bJ25hbWUn XSwKKyAgICAgICAgJ3R5cGUnOiBjb2x1bW5faW5mb3JtYXRpb25bJ2NsdHlwZSddCisgICAgfQor CisKK2RlZiBtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZSh0YWJsZV9pbmZvcm1h dGlvbik6CisgICAgZm9ybWF0X3R5cGUgPSBtYXBfZm9ybWF0X3R5cGUodGFibGVfaW5mb3JtYXRp b25bJ2ZtdHR5cGUnXSkKKyAgICByZXR1cm4geworICAgICAgICAndXJpcyc6IHNxbF9hcnJheV9u b3RhdGlvbl90b19hcnJheSh0YWJsZV9pbmZvcm1hdGlvblsndXJpbG9jYXRpb24nXSksCisgICAg ICAgICdpc1dlYic6IGlzX3dlYl90YWJsZSgKKyAgICAgICAgICAgIHRhYmxlX2luZm9ybWF0aW9u Wyd1cmlsb2NhdGlvbiddLAorICAgICAgICAgICAgdGFibGVfaW5mb3JtYXRpb25bJ2NvbW1hbmQn XQorICAgICAgICApLAorICAgICAgICAnZXhlY3V0aW9uTG9jYXRpb24nOiBtYXBfZXhlY3V0aW9u X2xvY2F0aW9uKAorICAgICAgICAgICAgdGFibGVfaW5mb3JtYXRpb25bJ2V4ZWNsb2NhdGlvbidd KSwKKyAgICAgICAgJ2Zvcm1hdFR5cGUnOiBmb3JtYXRfdHlwZSwKKyAgICAgICAgJ2Zvcm1hdE9w dGlvbnMnOiBmb3JtYXRfb3B0aW9ucyhmb3JtYXRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YWJsZV9pbmZvcm1hdGlvblsnZm10b3B0cyddKSwKKyAgICAg ICAgJ2NvbW1hbmQnOiB0YWJsZV9pbmZvcm1hdGlvblsnY29tbWFuZCddLAorICAgICAgICAncmVq ZWN0TGltaXQnOiB0YWJsZV9pbmZvcm1hdGlvblsncmVqZWN0bGltaXQnXSwKKyAgICAgICAgJ3Jl amVjdExpbWl0VHlwZSc6IHRhYmxlX2luZm9ybWF0aW9uWydyZWplY3RsaW1pdHR5cGUnXSwKKyAg ICAgICAgJ2Vycm9yVGFibGVOYW1lJzogdGFibGVfaW5mb3JtYXRpb25bJ2VycnRibG5hbWUnXSwK KyAgICAgICAgJ2Vycm9Ub0ZpbGUnOiB0YWJsZV9pbmZvcm1hdGlvblsnZXJyb3J0b2ZpbGUnXSwK KyAgICAgICAgJ3BnRW5jb2RpbmdUb0NoYXInOiB0YWJsZV9pbmZvcm1hdGlvblsncGdfZW5jb2Rp bmdfdG9fY2hhciddLAorICAgICAgICAnd3JpdGFibGUnOiB0YWJsZV9pbmZvcm1hdGlvblsnd3Jp dGFibGUnXSwKKyAgICAgICAgJ29wdGlvbnMnOiB0YWJsZV9pbmZvcm1hdGlvblsnb3B0aW9ucydd LAorICAgICAgICAnZGlzdHJpYnV0aW9uJzogdGFibGVfaW5mb3JtYXRpb25bJ2Rpc3RyaWJ1dGlv biddLAorICAgICAgICAnbmFtZSc6IHRhYmxlX2luZm9ybWF0aW9uWyduYW1lJ10sCisgICAgICAg ICduYW1lc3BhY2UnOiB0YWJsZV9pbmZvcm1hdGlvblsnbmFtZXNwYWNlJ10KKyAgICB9CisKKwor ZGVmIG1hcF9leGVjdXRpb25fbG9jYXRpb24oZXhlY3V0aW9uX2xvY2F0aW9uKToKKyAgICBzdHJp cHBlZF9leGVjdXRpb25fbG9jYXRpb24gPSBleGVjdXRpb25fbG9jYXRpb25bMF0ubHN0cmlwKCd7 JykucnN0cmlwKCd9JykKKyAgICBpZiBzdHJpcHBlZF9leGVjdXRpb25fbG9jYXRpb24uc3RhcnRz d2l0aCgnSE9TVDonKToKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICd0eXBlJzogJ2hv c3QnLAorICAgICAgICAgICAgJ3ZhbHVlJzogc3RyaXBwZWRfZXhlY3V0aW9uX2xvY2F0aW9uLnJl cGxhY2UoJ0hPU1Q6JywgJycpLnN0cmlwKCkKKyAgICAgICAgfQorICAgIGVsaWYgc3RyaXBwZWRf ZXhlY3V0aW9uX2xvY2F0aW9uID09ICdQRVJfSE9TVCc6CisgICAgICAgIHJldHVybiB7J3R5cGUn OiAncGVyX2hvc3QnLCAndmFsdWUnOiBOb25lfQorICAgIGVsaWYgc3RyaXBwZWRfZXhlY3V0aW9u X2xvY2F0aW9uID09ICJNQVNURVJfT05MWSI6CisgICAgICAgIHJldHVybiB7J3R5cGUnOiAnbWFz dGVyX29ubHknLCAndmFsdWUnOiBOb25lfQorICAgIGVsaWYgc3RyaXBwZWRfZXhlY3V0aW9uX2xv Y2F0aW9uID09ICJBTExfU0VHTUVOVFMiOgorICAgICAgICByZXR1cm4geyd0eXBlJzogJ2FsbF9z ZWdtZW50cycsICd2YWx1ZSc6IE5vbmV9CisgICAgZWxpZiBzdHJpcHBlZF9leGVjdXRpb25fbG9j YXRpb24uc3RhcnRzd2l0aCgiU0VHTUVOVF9JRDoiKToKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg ICAgICAgICd0eXBlJzogJ3NlZ21lbnQnLAorICAgICAgICAgICAgJ3ZhbHVlJzogc3RyaXBwZWRf ZXhlY3V0aW9uX2xvY2F0aW9uLnJlcGxhY2UoJ1NFR01FTlRfSUQ6JywgJycpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RyaXAoKQorICAgICAgICB9 CisgICAgZWxpZiBzdHJpcHBlZF9leGVjdXRpb25fbG9jYXRpb24uc3RhcnRzd2l0aCgiVE9UQUxf U0VHUzoiKToKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICd0eXBlJzogJ3NlZ21lbnRz JywKKyAgICAgICAgICAgICd2YWx1ZSc6IHN0cmlwcGVkX2V4ZWN1dGlvbl9sb2NhdGlvbi5yZXBs YWNlKCdUT1RBTF9TRUdTOicsICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLnN0cmlwKCkKKyAgICAgICAgfQorCisKK2RlZiBtYXBfZm9ybWF0X3R5 cGUoZm9ybWF0X3R5cGUpOgorICAgIGlmIGZvcm1hdF90eXBlID09ICdiJzoKKyAgICAgICAgcmV0 dXJuICdjdXN0b20nCisgICAgZWxpZiBmb3JtYXRfdHlwZSA9PSAnYSc6CisgICAgICAgIHJldHVy biAnYXZybycKKyAgICBlbGlmIGZvcm1hdF90eXBlID09ICd0JzoKKyAgICAgICAgcmV0dXJuICd0 ZXh0JworICAgIGVsaWYgZm9ybWF0X3R5cGUgPT0gJ3AnOgorICAgICAgICByZXR1cm4gJ3BhcnF1 ZXQnCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICdjc3YnCisKKworZGVmIGlzX3dlYl90YWJs ZSh1cmlzLCBjb21tYW5kKToKKyAgICBpZiB1cmlzIGlzIE5vbmUgYW5kIGNvbW1hbmQgaXMgTm9u ZToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgaWYgY29tbWFuZCBpcyBub3QgTm9uZToKKyAg ICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gcmUuc2VhcmNoKCdeaHR0cHM/OlxcL1xcLycs CisgICAgICAgICAgICAgICAgICAgICBzcWxfYXJyYXlfbm90YXRpb25fdG9fYXJyYXkodXJpcylb MF0pIGlzIG5vdCBOb25lCisKKworZGVmIGZvcm1hdF9vcHRpb25zKGZvcm1hdF90eXBlLCBvcHRp b25zKToKKyAgICBpZiBvcHRpb25zIGlzIE5vbmU6CisgICAgICAgIHJldHVybiBOb25lCisgICAg aWYgbGVuKG9wdGlvbnMpID09IDA6CisgICAgICAgIHJldHVybiBvcHRpb25zCisKKyAgICByZXN1 bHRfb3B0aW9ucyA9IHRva2VuaXplX29wdGlvbnMob3B0aW9ucykKKyAgICBhbGxfa2V5cyA9IGxp c3QocmVzdWx0X29wdGlvbnMua2V5cygpKQorICAgIGFsbF9rZXlzLnNvcnQoKQorICAgIGlmIGZv cm1hdF90eXBlIG5vdCBpbiBbJ2NzdicsICd0ZXh0J106CisgICAgICAgIHJldHVybiAnLCcuam9p bihbCisgICAgICAgICAgICAnJXMgPSAlcycgJSAoa2V5LCByZXN1bHRfb3B0aW9uc1trZXldKSBm b3Iga2V5IGluIGFsbF9rZXlzCisgICAgICAgIF0pCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJu ICcgJy5qb2luKFsKKyAgICAgICAgICAgICclcyAlcycgJSAoa2V5LCByZXN1bHRfb3B0aW9uc1tr ZXldKSBmb3Iga2V5IGluIGFsbF9rZXlzCisgICAgICAgIF0pCisKKworZGVmIHNxbF9hcnJheV9u b3RhdGlvbl90b19hcnJheShzcWxfcmVzdWx0KToKKyAgICBpZiBzcWxfcmVzdWx0IGlzIE5vbmU6 CisgICAgICAgIHJldHVybiBOb25lCisgICAgaWYgc3FsX3Jlc3VsdFswXSA9PSAneyc6CisgICAg ICAgIHJldHVybiBzcWxfcmVzdWx0WzE6LTFdLnNwbGl0KCcsJykKKyAgICByZXR1cm4gc3FsX3Jl c3VsdAorCisKK2RlZiB0b2tlbml6ZV9vcHRpb25zKG9wdGlvbnMpOgorICAgIGluX2tleSA9IFRy dWUKKyAgICBpbl92YWx1ZSA9IEZhbHNlCisgICAgY3VycmVudF9rZXkgPSAnJworICAgIGN1cnJl bnRfdmFsdWUgPSAnJworICAgIHRva2VucyA9IHt9CisgICAgZm9yIGluZGV4IGluIHJhbmdlKDAs IGxlbihvcHRpb25zKSk6CisgICAgICAgIGlmIGlzX2VuZF9vZl9rZXkoaW5fa2V5LCBvcHRpb25z LCBpbmRleCwgY3VycmVudF9rZXkpOgorICAgICAgICAgICAgaW5fa2V5ID0gRmFsc2UKKyAgICAg ICAgZWxpZiBpc19ub3RfZW5kX29mX2tleShpbl9rZXksIGluZGV4LCBvcHRpb25zKToKKyAgICAg ICAgICAgIGN1cnJlbnRfa2V5ICs9IG9wdGlvbnNbaW5kZXhdCisgICAgICAgIGVsaWYgaXNfc3Rh cnRfb2ZfdmFsdWUoaW5fdmFsdWUsIGluZGV4LCBvcHRpb25zKToKKyAgICAgICAgICAgIGluX3Zh bHVlID0gVHJ1ZQorICAgICAgICAgICAgY3VycmVudF92YWx1ZSA9ICcnCisgICAgICAgIGVsaWYg aXNfZW5kX29mX3ZhbHVlKGluX3ZhbHVlLCBpbmRleCwgb3B0aW9ucyk6CisgICAgICAgICAgICBp bl92YWx1ZSA9IEZhbHNlCisgICAgICAgICAgICBpbl9rZXkgPSBUcnVlCisgICAgICAgICAgICB0 b2tlbnNbY3VycmVudF9rZXldID0gJyQkJyArIGN1cnJlbnRfdmFsdWUgKyAnJCQnCisgICAgICAg ICAgICBjdXJyZW50X2tleSA9ICcnCisgICAgICAgICAgICBjdXJyZW50X3ZhbHVlID0gJycKKyAg ICAgICAgZWxpZiBpbl92YWx1ZToKKyAgICAgICAgICAgIGN1cnJlbnRfdmFsdWUgKz0gb3B0aW9u c1tpbmRleF0KKyAgICByZXR1cm4gdG9rZW5zCisKKworZGVmIGZvdW5kX2Fwb3N0cm9waGVfaW5z aWRlX3ZhbHVlKGluX3ZhbHVlLCBpbmRleCwgb3B0aW9ucyk6CisgICAgcmV0dXJuIGluX3ZhbHVl IGFuZCBvcHRpb25zW2luZGV4XSA9PSAnXCcnCisKKworZGVmIGlzX2VuZF9vZl92YWx1ZShpbl92 YWx1ZSwgaW5kZXgsIG9wdGlvbnMpOgorICAgIHJldHVybiBpbl92YWx1ZSBhbmQgb3B0aW9uc1tp bmRleF0gPT0gJ1wnJyBhbmQgKAorICAgICAgICBpbmRleCA9PSAobGVuKG9wdGlvbnMpIC0gMSkg b3Igb3B0aW9uc1tpbmRleCArIDFdID09ICcgJykKKworCitkZWYgaXNfc3RhcnRfb2ZfdmFsdWUo aW5fdmFsdWUsIGluZGV4LCBvcHRpb25zKToKKyAgICByZXR1cm4gbm90IGluX3ZhbHVlIGFuZCBv cHRpb25zW2luZGV4XSA9PSAnXCcnCisKKworZGVmIGlzX25vdF9lbmRfb2Zfa2V5KGluX2tleSwg aW5kZXgsIG9wdGlvbnMpOgorICAgIHJldHVybiBpbl9rZXkgYW5kIG9wdGlvbnNbaW5kZXhdICE9 ICcgJworCisKK2RlZiBpc19lbmRfb2Zfa2V5KGluX2tleSwgb3B0aW9ucywgaW5kZXgsIGN1cnJl bnRfa2V5KToKKyAgICByZXR1cm4gaW5fa2V5IGFuZCBvcHRpb25zW2luZGV4XSA9PSAnICcgYW5k IGxlbihjdXJyZW50X2tleSkgPiAwCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Byb3BlcnRpZXMu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZXJuYWxfdGFibGVzL3Byb3BlcnRpZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAuLmYwYjZmMjI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9wcm9wZXJ0 aWVzLnB5CkBAIC0wLDAgKzEsNzggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitmcm9tIGdl dHRleHQgaW1wb3J0IGdldHRleHQKK2Zyb20gb3MgaW1wb3J0IHBhdGgKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMg aW1wb3J0IFwKKyAgICBtYXBfZXhlY3V0aW9uX2xvY2F0aW9uCitmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgaW50ZXJuYWxfc2VydmVyX2Vycm9yCisKKworY2xhc3MgUHJvcGVydGllc0V4 Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNwb25zZV9vYmpl Y3QsICphcmdzKToKKyAgICAgICAgc3VwZXIoUHJvcGVydGllc0V4Y2VwdGlvbiwgc2VsZikuX19p bml0X18oKmFyZ3MpCisgICAgICAgIHNlbGYucmVzcG9uc2Vfb2JqZWN0ID0gcmVzcG9uc2Vfb2Jq ZWN0CisKKworY2xhc3MgUHJvcGVydGllc1RhYmxlTm90Rm91bmRFeGNlcHRpb24oUHJvcGVydGll c0V4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc3Vw ZXIoUHJvcGVydGllc0V4Y2VwdGlvbiwgc2VsZikuX19pbml0X18oTm9uZSwgKmFyZ3MpCisKKwor Y2xhc3MgUHJvcGVydGllczoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVuZGVyX3RlbXBsYXRl LCBkYl9jb25uZWN0aW9uLCBzcWxfdGVtcGxhdGVfcGF0aCk6CisgICAgICAgIHNlbGYucmVuZGVy X3RlbXBsYXRlID0gcmVuZGVyX3RlbXBsYXRlCisgICAgICAgIHNlbGYuZGJfY29ubmVjdGlvbiA9 IGRiX2Nvbm5lY3Rpb24KKyAgICAgICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCA9IHNxbF90ZW1w bGF0ZV9wYXRoCisKKyAgICBkZWYgcmV0cmlldmUoc2VsZiwgdGFibGVfb2lkKToKKyAgICAgICAg dGFibGVfaW5mb3JtYXRpb25fc3FsID0gc2VsZi5yZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9cGF0aC5qb2luKHNlbGYuc3FsX3RlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFibGVf aW5mb3JtYXRpb24uc3FsJyksCisgICAgICAgICAgICB0YWJsZV9vaWQ9dGFibGVfb2lkCisgICAg ICAgICkKKworICAgICAgICAoc3RhdHVzLCB0YWJsZV9pbmZvcm1hdGlvbl9yZXN1bHRzKSA9IFwK KyAgICAgICAgICAgIHNlbGYuZGJfY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkodGFibGVfaW5m b3JtYXRpb25fc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmFpc2Ug UHJvcGVydGllc0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IodGFibGVfaW5mb3JtYXRpb25fcmVzdWx0cykpCisgICAgICAgIGlmIGxlbih0YWJsZV9pbmZv cm1hdGlvbl9yZXN1bHRzWydyb3dzJ10pICE9IDE6CisgICAgICAgICAgICByYWlzZSBQcm9wZXJ0 aWVzVGFibGVOb3RGb3VuZEV4Y2VwdGlvbigpCisKKyAgICAgICAgdGFibGVfaW5mb3JtYXRpb25f cmVzdWx0ID0gdGFibGVfaW5mb3JtYXRpb25fcmVzdWx0c1sncm93cyddWzBdCisgICAgICAgIGV4 ZWN1dGVfb24gPSBtYXBfZXhlY3V0aW9uX2xvY2F0aW9uKAorICAgICAgICAgICAgdGFibGVfaW5m b3JtYXRpb25fcmVzdWx0WydleGVjbG9jYXRpb24nXSkKKyAgICAgICAgZXhlY3V0ZV9vbl90ZXh0 ID0gc2VsZi50cmFuc2xhdGVfZXhlY3V0ZV9vbl90ZXh0KGV4ZWN1dGVfb24pCisgICAgICAgIHJl c3BvbnNlID0gZGljdCgKKyAgICAgICAgICAgIG5hbWU9dGFibGVfaW5mb3JtYXRpb25fcmVzdWx0 WyduYW1lJ10sCisgICAgICAgICAgICB0eXBlPWdldHRleHQoJ3JlYWRhYmxlJyBpZiBub3QgdGFi bGVfaW5mb3JtYXRpb25fcmVzdWx0WworICAgICAgICAgICAgICAgICd3cml0YWJsZSddIGVsc2Ug J3dyaXRhYmxlJyksCisgICAgICAgICAgICBmb3JtYXRfdHlwZT10YWJsZV9pbmZvcm1hdGlvbl9y ZXN1bHRbJ3BnX2VuY29kaW5nX3RvX2NoYXInXSwKKyAgICAgICAgICAgIGZvcm1hdF9vcHRpb25z PXRhYmxlX2luZm9ybWF0aW9uX3Jlc3VsdFsnZm10b3B0cyddLAorICAgICAgICAgICAgZXh0ZXJu YWxfb3B0aW9ucz10YWJsZV9pbmZvcm1hdGlvbl9yZXN1bHRbJ29wdGlvbnMnXSwKKyAgICAgICAg ICAgIGNvbW1hbmQ9dGFibGVfaW5mb3JtYXRpb25fcmVzdWx0Wydjb21tYW5kJ10sCisgICAgICAg ICAgICBleGVjdXRlX29uPWV4ZWN1dGVfb25fdGV4dCwKKyAgICAgICAgKQorICAgICAgICByZXR1 cm4gcmVzcG9uc2UKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgdHJhbnNsYXRlX2V4ZWN1 dGVfb25fdGV4dChleGVjdXRlX29uKToKKyAgICAgICAgaWYgZXhlY3V0ZV9vblsndHlwZSddID09 ICdob3N0JzoKKyAgICAgICAgICAgIHJldHVybiAnaG9zdCAlcycgJSBleGVjdXRlX29uWyd2YWx1 ZSddCisgICAgICAgIGVsaWYgZXhlY3V0ZV9vblsndHlwZSddID09ICdwZXJfaG9zdCc6CisgICAg ICAgICAgICByZXR1cm4gJ3BlciBob3N0JworICAgICAgICBlbGlmIGV4ZWN1dGVfb25bJ3R5cGUn XSA9PSAnbWFzdGVyX29ubHknOgorICAgICAgICAgICAgcmV0dXJuICdtYXN0ZXIgc2VnbWVudCcK KyAgICAgICAgZWxpZiBleGVjdXRlX29uWyd0eXBlJ10gPT0gJ2FsbF9zZWdtZW50cyc6CisgICAg ICAgICAgICByZXR1cm4gJ2FsbCBzZWdtZW50cycKKyAgICAgICAgZWxpZiBleGVjdXRlX29uWyd0 eXBlJ10gPT0gJ3NlZ21lbnQnOgorICAgICAgICAgICAgcmV0dXJuICclcyBzZWdtZW50JyAlIGV4 ZWN1dGVfb25bJ3ZhbHVlJ10KKyAgICAgICAgZWxpZiBleGVjdXRlX29uWyd0eXBlJ10gPT0gJ3Nl Z21lbnRzJzoKKyAgICAgICAgICAgIHJldHVybiAnJWQgc2VnbWVudHMnICUgZXhlY3V0ZV9vblsn dmFsdWUnXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9yZXZlcnNlX2VuZ2luZWVyX2RkbC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvcmV2ZXJzZV9lbmdpbmVlcl9kZGwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAuLmNmODY1MDg5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9y ZXZlcnNlX2VuZ2luZWVyX2RkbC5weQpAQCAtMCwwICsxLDY5IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworZnJvbSBvcyBpbXBvcnQgcGF0aAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzXAorICAgIC5leHRlcm5hbF90YWJsZXMubWFwcGlu Z191dGlscyBpbXBvcnQgXAorICAgIG1hcF9jb2x1bW5fZnJvbV9kYXRhYmFzZSwgbWFwX3RhYmxl X2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UKKworCitjbGFzcyBSZXZlcnNlRW5naW5lZXJERExF eGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgUmV2ZXJzZUVuZ2luZWVy RERMOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcWxfdGVtcGxhdGVfcGF0aHMsCisgICAgICAg ICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2VfY29u bmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lkLCBzZXJ2ZXJfaWQsIGRh dGFiYXNlX2lkKToKKyAgICAgICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCA9IHNxbF90ZW1wbGF0 ZV9wYXRocworICAgICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZSA9IHJlbmRlcl90ZW1wbGF0ZQor ICAgICAgICBzZWxmLmRhdGFiYXNlX2Nvbm5lY3Rpb24gPSBkYXRhYmFzZV9jb25uZWN0aW9uCisK KyAgICBkZWYgZXhlY3V0ZShzZWxmLCB0YWJsZV9vaWQpOgorICAgICAgICByZXZlcnNlX2VuZ2lu ZWVyX2RhdGEgPSBzZWxmLnRhYmxlX2luZm9ybWF0aW9uKHRhYmxlX29pZCkKKyAgICAgICAgcmV2 ZXJzZV9lbmdpbmVlcl9kYXRhWydjb2x1bW5zJ10gPSBzZWxmLmZpbmRfY29sdW1ucyh0YWJsZV9v aWQpCisgICAgICAgIHJldHVybiBzZWxmLnJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgIHRl bXBsYXRlX25hbWVfb3JfbGlzdD1wYXRoLmpvaW4oc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZS5zcWwnKSwK KyAgICAgICAgICAgIHRhYmxlPXJldmVyc2VfZW5naW5lZXJfZGF0YQorICAgICAgICApCisKKyAg ICBkZWYgZmluZF9jb2x1bW5zKHNlbGYsIHRhYmxlX29pZCk6CisgICAgICAgIGNvbHVtbnNfc3Fs ID0gc2VsZi5yZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xp c3Q9cGF0aC5qb2luKHNlbGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfY29sdW1ucy5zcWwnKSwKKyAgICAgICAgICAg IHRhYmxlX29pZD10YWJsZV9vaWQKKyAgICAgICAgKQorCisgICAgICAgIChzdGF0dXMsIGNvbHVt bl9yZXN1bHQpID0gXAorICAgICAgICAgICAgc2VsZi5kYXRhYmFzZV9jb25uZWN0aW9uLmV4ZWN1 dGVfMmRhcnJheShjb2x1bW5zX3NxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJhaXNlIFJldmVyc2VFbmdpbmVlckRETEV4Y2VwdGlvbihjb2x1bW5fcmVzdWx0KQorCisg ICAgICAgIHJldHVybiBsaXN0KG1hcChtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UsIGNvbHVtbl9y ZXN1bHRbJ3Jvd3MnXSkpCisKKyAgICBkZWYgdGFibGVfaW5mb3JtYXRpb24oc2VsZiwgdGFibGVf b2lkKToKKyAgICAgICAgdGFibGVfaW5mb3JtYXRpb25fc3FsID0gc2VsZi5yZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9cGF0aC5qb2luKHNlbGYuc3Fs X3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJyksCisgICAgICAgICAgICB0YWJsZV9vaWQ9 dGFibGVfb2lkCisgICAgICAgICkKKworICAgICAgICAoc3RhdHVzLCB0YWJsZV9pbmZvcm1hdGlv bl9yZXN1bHQpID0gXAorICAgICAgICAgICAgc2VsZi5kYXRhYmFzZV9jb25uZWN0aW9uLmV4ZWN1 dGVfMmRhcnJheSh0YWJsZV9pbmZvcm1hdGlvbl9zcWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByYWlzZSBSZXZlcnNlRW5naW5lZXJERExFeGNlcHRpb24odGFibGVfaW5m b3JtYXRpb25fcmVzdWx0KQorICAgICAgICBlbGlmICdyb3dzJyBub3QgaW4gdGFibGVfaW5mb3Jt YXRpb25fcmVzdWx0LmtleXMoKSBvciBsZW4oCisgICAgICAgICAgICB0YWJsZV9pbmZvcm1hdGlv bl9yZXN1bHRbJ3Jvd3MnXQorICAgICAgICApID09IDA6CisgICAgICAgICAgICByYWlzZSBSZXZl cnNlRW5naW5lZXJERExFeGNlcHRpb24oJ1RhYmxlIG5vdCBmb3VuZCcpCisKKyAgICAgICAgcmV0 dXJuIG1hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlKAorICAgICAgICAgICAgdGFi bGVfaW5mb3JtYXRpb25fcmVzdWx0Wydyb3dzJ11bMF0pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVz L3N0YXRpYy9pbWcvY29sbC1leHRlcm5hbF90YWJsZS5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3N0YXRpYy9p bWcvY29sbC1leHRlcm5hbF90YWJsZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAuLmJjY2UzMmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9zdGF0aWMvaW1n L2NvbGwtZXh0ZXJuYWxfdGFibGUuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgeG1sbnM9Imh0dHA6 Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxkZWZzPjxzdHlsZT4u Y2xzLTF7ZmlsbDojMzQ0OTVlO3N0cm9rZTojYWM5MjMwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0 cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy0ye2ZpbGw6I2YyZjJmMjt9LmNscy0ze2ZpbGw6I2Fj OTIzMDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmNvbGwtZm9yZWlnbl9kYXRhX3dyYXBwZXI8L3Rp dGxlPjxnIGlkPSJfMiIgZGF0YS1uYW1lPSIyIj48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIxMS41 IiB5MT0iNC4yNSIgeDI9IjEzLjUiIHkyPSIyLjI1Ii8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0i MTEuNSIgeTE9IjIuMjUiIHgyPSIxMy41IiB5Mj0iMi4yNSIvPjxsaW5lIGNsYXNzPSJjbHMtMSIg eDE9IjEzLjUiIHkxPSI0LjI1IiB4Mj0iMTMuNSIgeTI9IjIuMjUiLz48L2c+PGcgaWQ9Il8zIiBk YXRhLW5hbWU9IjMiPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEyLjgyLDYuMjVhLjg3Ljg3LDAs MCwwLC4xOC0uNWMwLTEuMS0yLjQ2LTItNS41LTJzLTUuNS45LTUuNSwyYS44Ny44NywwLDAsMCwu MTguNS43OC43OCwwLDAsMCwwLDEsLjc4Ljc4LDAsMCwwLDAsMSwuNzguNzgsMCwwLDAsMCwxLC43 OC43OCwwLDAsMCwwLDEsLjc4Ljc4LDAsMCwwLDAsMSwuODcuODcsMCwwLDAtLjE4LjVjMCwxLjEs Mi40NiwyLDUuNSwyczUuNS0uOSw1LjUtMmEuODcuODcsMCwwLDAtLjE4LS41Ljc4Ljc4LDAsMCww LDAtMSwuNzguNzgsMCwwLDAsMC0xLC43OC43OCwwLDAsMCwwLTEsLjc4Ljc4LDAsMCwwLDAtMSwu NzguNzgsMCwwLDAsMC0xWiIvPjxlbGxpcHNlIGNsYXNzPSJjbHMtMyIgY3g9IjcuNSIgY3k9IjUu NzUiIHJ4PSI1LjUiIHJ5PSIyIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNy41LDEyLjc1Yy0y LjU2LDAtNC43MS0uNjQtNS4zMi0xLjVhLjg3Ljg3LDAsMCwwLS4xOC41YzAsMS4xLDIuNDYsMiw1 LjUsMnM1LjUtLjksNS41LTJhLjg3Ljg3LDAsMCwwLS4xOC0uNUMxMi4yMSwxMi4xMSwxMC4wNywx Mi43NSw3LjUsMTIuNzVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNy41LDguNzVjLTIuNTYs MC00LjcxLS42NC01LjMyLTEuNWEuODcuODcsMCwwLDAtLjE4LjVjMCwxLjEsMi40NiwyLDUuNSwy czUuNS0uOSw1LjUtMmEuODcuODcsMCwwLDAtLjE4LS41QzEyLjIxLDguMTEsMTAuMDcsOC43NSw3 LjUsOC43NVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik03LjUsMTAuNzVjLTIuNTYsMC00Ljcx LS42NC01LjMyLTEuNWEuODcuODcsMCwwLDAtLjE4LjVjMCwxLjEsMi40NiwyLDUuNSwyczUuNS0u OSw1LjUtMmEuODcuODcsMCwwLDAtLjE4LS41QzEyLjIxLDEwLjExLDEwLjA3LDEwLjc1LDcuNSwx MC43NVoiLz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4 dGVybmFsX3RhYmxlcy9zdGF0aWMvaW1nL2V4dGVybmFsX3RhYmxlLnN2ZyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMv c3RhdGljL2ltZy9leHRlcm5hbF90YWJsZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAuLjkwMjI4Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9zdGF0aWMv aW1nL2V4dGVybmFsX3RhYmxlLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIHhtbG5zPSJodHRwOi8v d3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNs cy0xe2ZpbGw6I2YyZjJmMjt9LmNscy0ye2ZpbGw6IzIxOTVlNzt9LmNscy0ze2ZpbGw6bm9uZTtz dHJva2U6I2MxY2JkNTtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMtMywuY2xzLTR7c3Ryb2tl LXdpZHRoOjAuNzVweDt9LmNscy00e2ZpbGw6I2RlZjRmZDtzdHJva2U6IzIxOTVlNztzdHJva2Ut bWl0ZXJsaW1pdDoxO308L3N0eWxlPjwvZGVmcz48dGl0bGU+Y29sbC10YWJsZTwvdGl0bGU+PGcg aWQ9Il8yIiBkYXRhLW5hbWU9IjIiPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMi40MiIgeT0iMi42 NiIgd2lkdGg9IjguODgiIGhlaWdodD0iOC4yNSIgcng9IjAuNTIiIHJ5PSIwLjUyIi8+PHBhdGgg Y2xhc3M9ImNscy0yIiBkPSJNMTAuNzcsM2EuMTUuMTUsMCwwLDEsLjE1LjE1djcuMmEuMTUuMTUs MCwwLDEtLjE1LjE1SDIuOTRhLjE1LjE1LDAsMCwxLS4xNS0uMTVWMy4xOUEuMTUuMTUsMCwwLDEs Mi45NCwzaDcuODNtMC0uNzVIMi45NGEuOS45LDAsMCwwLS45Ljl2Ny4yYS45LjksMCwwLDAsLjku OWg3LjgzYS45LjksMCwwLDAsLjktLjlWMy4xOWEuOS45LDAsMCwwLS45LS45WiIvPjxwYXRoIGNs YXNzPSJjbHMtMSIgZD0iTTQuOSw0LjYzaDguMTZhLjUzLjUzLDAsMCwxLC41My41M3Y3LjY2YS41 Mi41MiwwLDAsMS0uNTIuNTJINC45YS41Mi41MiwwLDAsMS0uNTItLjUyVjUuMTZBLjUyLjUyLDAs MCwxLDQuOSw0LjYzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjA2LDVhLjE1LjE1LDAs MCwxLC4xNS4xNXY3LjY2YS4xNS4xNSwwLDAsMS0uMTUuMTVINC45YS4xNS4xNSwwLDAsMS0uMTUt LjE1VjUuMTZBLjE1LjE1LDAsMCwxLDQuOSw1aDguMTZtMC0uNzVINC45YS45LjksMCwwLDAtLjku OXY3LjY2YS45LjksMCwwLDAsLjkuOWg4LjE2YS45LjksMCwwLDAsLjktLjlWNS4xNmEuOS45LDAs MCwwLS45LS45WiIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjQuNzYiIHkxPSIxMC40MiIgeDI9 IjEzLjE5IiB5Mj0iMTAuNDIiLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSI4LjkiIHkxPSI4LjA4 IiB4Mj0iOC44OSIgeTI9IjEyLjk1Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iOC45IiB5MT0i NS4wMSIgeDI9IjguODkiIHkyPSI3LjU2Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMTMuMTki IHkxPSI3LjczIiB4Mj0iNC43NiIgeTI9IjcuNzMiLz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZW1wbGF0ZXMvc3FsL2dwZGJf NS4wX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9w bHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmE3ZjY0 YTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZW1wbGF0ZXMvc3FsL2dwZGJfNS4w X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDYwIEBACit7JSBpZiB0YWJsZS5yZWplY3RMaW1p dFR5cGUgPT0gJ3InICV9Cit7JSBzZXQgcmVqZWN0aW9uTGltaXQgPSAnUk9XUycgJX0KK3slIGVs c2UgJX0KK3slIHNldCByZWplY3Rpb25MaW1pdCA9ICdQRVJDRU5UJyAlfQoreyUgZW5kaWYgJX0K K0NSRUFURSB7JSBpZiB0YWJsZS53cml0YWJsZSAlfVdSSVRBQkxFIHslIGVuZGlmICV9RVhURVJO QUwgeyUgaWYgdGFibGUuaXNXZWIgJX1XRUIgeyUgZW5kaWYgJX1UQUJMRSB7e2Nvbm58cXRJZGVu dCh0YWJsZS5uYW1lc3BhY2UsIHRhYmxlLm5hbWUpfX17JSBpZiB0YWJsZS5jb2x1bW5zIGFuZCB0 YWJsZS5jb2x1bW5zfGxlbmd0aCA+IDAgJX0oCit7JSBmb3IgYyBpbiB0YWJsZS5jb2x1bW5zICV9 Cit7JSAgaWYgYy5uYW1lIGFuZCBjLnR5cGUgLSV9Cit7JSAgICBpZiBsb29wLmluZGV4ICE9IDEg JX0sCit7JSAgICBlbmRpZiAlfQorICAgIHt7Y29ubnxxdElkZW50KGMubmFtZSl9fSB7e2MudHlw ZX19Cit7JS0gIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKykKK3slIGVsc2UgJX0KKygpCit7JSBl bmRpZiAlfQoreyUgaWYgdGFibGUuY29tbWFuZCBhbmQgdGFibGUuY29tbWFuZHxsZW5ndGggPiAw ICV9CitFWEVDVVRFICRwZ0FkbWluJHt7IHRhYmxlLmNvbW1hbmQgfX0nJHBnQWRtaW4kCit7JSBl bHNlICV9CitMT0NBVElPTiAoCit7JSBmb3IgdXJpIGluIHRhYmxlLnVyaXMgJX0KK3slICBpZiBs b29wLmluZGV4ICE9IDEgLSV9LAoreyUgIGVuZGlmICV9CisgICAgJ3t7dXJpfX0nCit7JS0gZW5k Zm9yICV9CispCit7JSBlbmRpZiAlfQoreyUgaWYgbm90IHRhYmxlLndyaXRhYmxlIGFuZCB0YWJs ZS5leGVjdXRpb25Mb2NhdGlvbiAlfQoreyUgaWYgdGFibGUuZXhlY3V0aW9uTG9jYXRpb24udHlw ZSA9PSAnaG9zdCcgJX0KK09OIEhPU1Qge3sgdGFibGUuZXhlY3V0aW9uTG9jYXRpb24udmFsdWUg fX0KK3slIGVsaWYgdGFibGUuZXhlY3V0aW9uTG9jYXRpb24udHlwZSA9PSAncGVyX2hvc3QnICV9 CitPTiBIT1NUCit7JSBlbGlmIHRhYmxlLmV4ZWN1dGlvbkxvY2F0aW9uLnR5cGUgPT0gJ21hc3Rl cl9vbmx5JyAlfQorT04gTUFTVEVSCit7JSBlbGlmIHRhYmxlLmV4ZWN1dGlvbkxvY2F0aW9uLnR5 cGUgPT0gJ2FsbF9zZWdtZW50cycgJX0KK09OIEFMTAoreyUgZWxpZiB0YWJsZS5leGVjdXRpb25M b2NhdGlvbi50eXBlID09ICdzZWdtZW50JyAlfQorT04gU0VHTUVOVCB7eyB0YWJsZS5leGVjdXRp b25Mb2NhdGlvbi52YWx1ZSB9fQoreyUgZWxpZiB0YWJsZS5leGVjdXRpb25Mb2NhdGlvbi50eXBl ID09ICdzZWdtZW50cycgJX0KK09OIHt7IHRhYmxlLmV4ZWN1dGlvbkxvY2F0aW9uLnZhbHVlIH19 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK0ZPUk1BVCAne3sgdGFibGUuZm9ybWF0VHlwZSB9 fScgKHt7IHRhYmxlLmZvcm1hdE9wdGlvbnMgfX0pCit7JSBpZiB0YWJsZS5vcHRpb25zIGFuZCB0 YWJsZS5vcHRpb25zfGxlbmd0aCA+IDAgJX0KK09QVElPTlMgKAore3sgdGFibGUub3B0aW9ucyB9 fQorKQoreyUgZW5kaWYgJX0KK0VOQ09ESU5HICd7eyB0YWJsZS5wZ0VuY29kaW5nVG9DaGFyIH19 JworeyUgaWYgdGFibGUucmVqZWN0TGltaXQgYW5kIHRhYmxlLnJlamVjdExpbWl0fGxlbmd0aCA+ IDAgJX0KK3slICAgaWYgdGFibGUuZXJyb3JUYWJsZU5hbWUgYW5kIHRhYmxlLmVycm9yVGFibGVO YW1lfGxlbmd0aCA+IDAgJX0KK0xPRyBFUlJPUlMgeyUgZW5kaWYgJX1TRUdNRU5UIFJFSkVDVCBM SU1JVCB7eyB0YWJsZS5yZWplY3RMaW1pdCB9fSB7eyByZWplY3Rpb25MaW1pdCB9fQoreyUgZW5k aWYgJX0KK3slIGlmIHRhYmxlLndyaXRhYmxlIGFuZCB0YWJsZS5kaXN0cmlidXRpb24gJX0KK0RJ U1RSSUJVVEVEIEJZICh7JSBmb3IgYXR0cm51bSBpbiB0YWJsZS5kaXN0cmlidXRpb24gJX17JSBp ZiBsb29wLmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3sgdGFibGUuY29sdW1uc1thdHRybnVt LTFdLm5hbWUgfX17JSBlbmRmb3IgJX0pOworeyUgZWxpZiB0YWJsZS53cml0YWJsZSAlfQorRElT VFJJQlVURUQgUkFORE9NTFk7Cit7JSBlbHNlICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL2dldF9jb2x1bW5zLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL2dldF9jb2x1bW5zLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOWI4NTg5YWQKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZXJuYWxfdGFibGVzL3RlbXBsYXRlcy9zcWwvZ3BkYl81LjBfcGx1cy9nZXRfY29sdW1u cy5zcWwKQEAgLTAsMCArMSwxMiBAQAorU0VMRUNUCisgICAgYS5hdHRuYW1lIEFTIG5hbWUsIGZv cm1hdF90eXBlKGEuYXR0dHlwaWQsIE5VTEwpIEFTIGNsdHlwZSwKKyAgICBxdW90ZV9pZGVudChu Lm5zcG5hbWUpfHwnLid8fHF1b3RlX2lkZW50KGMucmVsbmFtZSkgYXMgaW5oZXJpdGVkZnJvbSwK KyAgICBjLm9pZCBhcyBpbmhlcml0ZWRpZAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZT1uLm9pZAorSk9JTgorICAgIHBnX2F0 dHJpYnV0ZSBhIE9OIGEuYXR0cmVsaWQgPSBjLm9pZCBBTkQgTk9UIGEuYXR0aXNkcm9wcGVkIEFO RCBhLmF0dG51bSA+IDAKK1dIRVJFCisgIGMub2lkID0ge3sgdGFibGVfb2lkIH19OjpPSUQKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9leHRlcm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL2dldF90YWJs ZV9pbmZvcm1hdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3RlbXBsYXRlcy9zcWwvZ3BkYl81LjBfcGx1 cy9nZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwLi41MDQyMGVhMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVtcGxhdGVz L3NxbC9ncGRiXzUuMF9wbHVzL2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwKQEAgLTAsMCArMSwy MiBAQAorU0VMRUNUIHgudXJpbG9jYXRpb24sIHguZXhlY2xvY2F0aW9uLCB4LmZtdHR5cGUsIHgu Zm10b3B0cywgeC5jb21tYW5kLAorICAgIHgucmVqZWN0bGltaXQsIHgucmVqZWN0bGltaXR0eXBl LAorICAgIChTRUxFQ1QgcmVsbmFtZQorICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MK KyAgICAgIFdIRVJFIE9pZD14LmZtdGVycnRibCkgQVMgZXJydGJsbmFtZSwKKyAgICB4LmZtdGVy cnRibCA9IHgucmVsb2lkIEFTIGVycm9ydG9maWxlICwKKyAgICBwZ19jYXRhbG9nLnBnX2VuY29k aW5nX3RvX2NoYXIoeC5lbmNvZGluZyksCisgICAgeC53cml0YWJsZSwKKyAgICBhcnJheV90b19z dHJpbmcoQVJSQVkoCisgICAgICBTRUxFQ1QgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChvcHRpb25f bmFtZSkgfHwgJyAnIHx8CisgICAgICBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwob3B0aW9uX3Zh bHVlKQorICAgICAgRlJPTSBwZ19vcHRpb25zX3RvX3RhYmxlKHgub3B0aW9ucykKKyAgICAgIE9S REVSIEJZIG9wdGlvbl9uYW1lCisgICAgICApLCBFJyxcbiAgICAnKSBBUyBvcHRpb25zLAorICAg IGdkcC5hdHRybnVtcyBBUyBkaXN0cmlidXRpb24sCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisg ICAgbnNwLm5zcG5hbWUgQVMgbmFtZXNwYWNlCitGUk9NIHBnX2NhdGFsb2cucGdfZXh0dGFibGUg eCwKKyAgcGdfY2F0YWxvZy5wZ19jbGFzcyBjCisgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25h bWVzcGFjZSBuc3AgT04gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgIExFRlQgSk9JTiBncF9k aXN0cmlidXRpb25fcG9saWN5IGdkcCBPTiBnZHAubG9jYWxvaWQgPSBjLm9pZAorV0hFUkUgeC5y ZWxvaWQgPSBjLm9pZCBBTkQgYy5vaWQgPSB7eyB0YWJsZV9vaWQgfX06Om9pZDsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlcm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL2xpc3Quc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZW1wbGF0ZXMvc3FsL2dwZGJfNS4wX3BsdXMvbGlzdC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjc0OTA1ODNmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZW1wbGF0ZXMvc3FsL2dwZGJfNS4wX3BsdXMvbGlzdC5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QgcGdfY2xhc3Mub2lkLCByZWxuYW1lIGFzIG5hbWUKK0ZST00gcGdfY2xhc3MK K0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgT04gcGdfbmFtZXNwYWNlLm9pZD1wZ19jbGFzcy5yZWxu YW1lc3BhY2U6Om9pZAorV0hFUkUgcmVsa2luZCA9ICdyJworIEFORCAgcmVsc3RvcmFnZSA9ICd4 JworIEFORCBwZ19uYW1lc3BhY2UubnNwbmFtZSBub3QgbGlrZSAnZ3BfdG9vbGtpdCc7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZXJuYWxfdGFibGVzL3RlbXBsYXRlcy9zcWwvZ3BkYl81LjBfcGx1cy9ub2RlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL25vZGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi44N2NiODZmOQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVtcGxhdGVzL3NxbC9ncGRiXzUuMF9wbHVzL25vZGUuc3FsCkBAIC0wLDAg KzEsNSBAQAorU0VMRUNUIHBnX2NsYXNzLm9pZCwgcmVsbmFtZSBhcyBuYW1lCitGUk9NIHBnX2Ns YXNzCitXSEVSRSByZWxraW5kID0gJ3InCisgQU5EICByZWxzdG9yYWdlID0gJ3gnCisgQU5EIHBn X2NsYXNzLm9pZCA9IHt7IGV4dGVybmFsX3RhYmxlX2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJu YWxfdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy9fX2luaXRfXy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZTY5ZGUyOWIKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9leHRlcm5hbF90YWJsZXNfbW9kdWxlLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxlc19tb2R1bGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmY4YzQ3YWIzCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxlc19tb2R1bGUucHkKQEAgLTAsMCArMSw5 OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHN5cworCitpbXBvcnQgc2l4 CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVyc1wKKyAgICAuZGF0 YWJhc2VzLmV4dGVybmFsX3RhYmxlcyBpbXBvcnQgRXh0ZXJuYWxUYWJsZXNNb2R1bGUKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworaWYgc3lzLnZl cnNpb25faW5mbyA8ICgzLCAzKToKKyAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgTW9j aworZWxzZToKKyAgICBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgTW9jawor CisKK2NsYXNzIFRlc3RFeHRlcm5hbFRhYmxlc01vZHVsZShCYXNlVGVzdEdlbmVyYXRvcik6Cisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJyNCYWNrZW5kU3VwcG9ydGVkIFdoZW4gYWNjZXNz IHRoZSBvbiBhIFBvc3RncmVzcWwgRGF0YWJhc2UsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGZh bHNlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdiYWNrZW5kLXN1 cHBvcnQnLAorICAgICAgICAgICAgIG1hbmFnZXI9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2Vy dmVyX3R5cGU9J3BnJywKKyAgICAgICAgICAgICAgICAgc3ZlcnNpb249OTAxMDAKKyAgICAgICAg ICAgICApLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1GYWxzZSwKKyAgICAgICAgICkp LAorICAgICAgICAoJyNCYWNrZW5kU3VwcG9ydGVkIFdoZW4gYWNjZXNzIHRoZSBvbiBhIEdyZWVu UGx1bSBEYXRhYmFzZSwgJworICAgICAgICAgJ2l0IHJldHVybnMgdHJ1ZScsCisgICAgICAgICBk aWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nYmFja2VuZC1zdXBwb3J0JywKKyAgICAgICAg ICAgICBtYW5hZ2VyPWRpY3QoCisgICAgICAgICAgICAgICAgIHNlcnZlcl90eXBlPSdncGRiJywK KyAgICAgICAgICAgICAgICAgc3ZlcnNpb249ODIzMDMKKyAgICAgICAgICAgICApLAorICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1UcnVlCisgICAgICAgICApKSwKKyAgICAgICAgKCcjZ2V0 X25vZGVzIHdoZW4gdHJ5aW5nIHRvIHJldHJpZXZlIHRoZSBub2RlLCAnCisgICAgICAgICAnaXQg c2hvdWxkIHJldHVybiB0cnVlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90 eXBlPSdnZXQtbm9kZXMnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgK KyAgICAgICAgICAgICAgICAgZ2lkPTEwLAorICAgICAgICAgICAgICAgICBzaWQ9MTEsCisgICAg ICAgICAgICAgICAgIGRpZD0xMiwKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIGV4cGVj dGVkX2dlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlX2NhbGxlZF93aXRoPTEyCisgICAg ICAgICApKSwKKyAgICAgICAgKCcjZ2V0X21vZHVsZV91c2VfdGVtcGxhdGVfamF2YXNjcmlwdCB3 aGVuIGNoZWNraW5nIGlmIG5lZWQgdG8gJworICAgICAgICAgJ2dlbmVyYXRlIGphdmFzY3JpcHQg ZnJvbSB0ZW1wbGF0ZSwgJworICAgICAgICAgJ2l0IHNob3VsZCByZXR1cm4gZmFsc2UnLAorICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J3RlbXBsYXRlLWphdmFzY3JpcHQn LAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1GYWxzZQorICAgICAgICAgKSkKKyAgICBd CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgaWYgc2VsZi50ZXN0X3R5cGUgPT0g J2JhY2tlbmQtc3VwcG9ydCc6CisgICAgICAgICAgICBzZWxmLl9fdGVzdF9iYWNrZW5kX3N1cHBv cnQoKQorICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICdnZXQtbm9kZXMnOgorICAgICAg ICAgICAgc2VsZi5fX3Rlc3RfZ2V0X25vZGVzKCkKKyAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlw ZSA9PSAndGVtcGxhdGUtamF2YXNjcmlwdCc6CisgICAgICAgICAgICBzZWxmLl9fdGVzdF90ZW1w bGF0ZV9qYXZhc2NyaXB0KCkKKworICAgIGRlZiBfX3Rlc3RfYmFja2VuZF9zdXBwb3J0KHNlbGYp OgorICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2NrKCkKKyAgICAgICAgbWFuYWdlci5zdmVyc2lv biA9IHNlbGYubWFuYWdlclsnc3ZlcnNpb24nXQorICAgICAgICBtYW5hZ2VyLnNlcnZlcl90eXBl ID0gc2VsZi5tYW5hZ2VyWydzZXJ2ZXJfdHlwZSddCisgICAgICAgIG1vZHVsZSA9IEV4dGVybmFs VGFibGVzTW9kdWxlKCdzb21ldGhpbmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKKyAg ICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfcmVzdWx0LAorICAgICAgICAgICAgbW9kdWxlLkJhY2tl bmRTdXBwb3J0ZWQobWFuYWdlcikKKyAgICAgICAgKQorCisgICAgZGVmIF9fdGVzdF9nZXRfbm9k ZXMoc2VsZik6CisgICAgICAgIG1vZHVsZSA9IEV4dGVybmFsVGFibGVzTW9kdWxlKCdzb21ldGhp bmcnKQorICAgICAgICBtb2R1bGUuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUgPSBN b2NrKCkKKworICAgICAgICByZXN1bHQgPSBtb2R1bGUuZ2V0X25vZGVzKCoqc2VsZi5mdW5jdGlv bl9wYXJhbWV0ZXJzKQorICAgICAgICBzaXgubmV4dChyZXN1bHQpCisKKyAgICAgICAgbW9kdWxl LmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAg ICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGVf Y2FsbGVkX3dpdGgKKyAgICAgICAgKQorCisgICAgZGVmIF9fdGVzdF90ZW1wbGF0ZV9qYXZhc2Ny aXB0KHNlbGYpOgorICAgICAgICBtb2R1bGUgPSBFeHRlcm5hbFRhYmxlc01vZHVsZSgnc29tZXRo aW5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICAgICBzZWxmLmV4cGVj dGVkX3Jlc3VsdCwKKyAgICAgICAgICAgIG1vZHVsZS5tb2R1bGVfdXNlX3RlbXBsYXRlX2phdmFz Y3JpcHQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVz X3ZpZXcucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX3ZpZXcucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmFjZWRjNjFiCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxlc192aWV3LnB5CkBA IC0wLDAgKzEsNDI4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgc3lzCisK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0 ZXJuYWxfdGFibGVzIGltcG9ydCBcCisgICAgRXh0ZXJuYWxUYWJsZXNWaWV3Citmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKK2lmIHN5cy52ZXJzaW9u X2luZm8gPCAoMywgMyk6CisgICAgZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2ssIHBhdGNoCitl bHNlOgorICAgIGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrLCBwYXRjaAorCisK K2NsYXNzIFRlc3RFeHRlcm5hbFRhYmxlc1ZpZXcoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgKCcjY2hlY2tfcHJlY29uZGl0aW9uIFdoZW4gZXhlY3V0aW5n IGFueSBodHRwIGNhbGwsICcKKyAgICAgICAgICdpdCBzYXZlcyBzdG9yZXMgdGhlIGNvbm5lY3Rp b24gYW5kIHRoZSBtYW5hZ2VyIGluIHRoZSBjbGFzcyBvYmplY3QnLAorICAgICAgICAgZGljdCgK KyAgICAgICAgICAgICB0ZXN0X3R5cGU9J2NoZWNrLXByZWNvbmRpdGlvbicsCisgICAgICAgICAg ICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAorICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3Jv dXBfaWQ9MCwKKyAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCisgICAgICAgICAgICAgICAg IGRhdGFiYXNlX2lkPTIsCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBtYW5hZ2VyPU1h Z2ljTW9jaygpLAorICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRh cnJheT1NYWdpY01vY2soKSksCisgICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92 YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSksCisgICAgICAgICAgICAgZXhwZWN0ZWRfbWFuYWdl cl9jb25uZWN0aW9uX3RvX2JlX2NhbGxlZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIGRp ZD0yCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICkpLAorICAgICAgICAoJyNub2RlcyBXaGVu IHJldHJpZXZpbmcgdGhlIGNoaWxkcmVuIG9mIGV4dGVybmFsIHRhYmxlcywgJworICAgICAgICAg J2l0IHJldHVybiBubyBjaGlsZCAnCisgICAgICAgICAnYW5kIHN0YXR1cyAyMDAnLAorICAgICAg ICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J2NoaWxkcmVuJywKKyAgICAgICAgICAg ICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91 cF9pZD0wLAorICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAgICAg ZGF0YWJhc2VfaWQ9MiwKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIG1hbmFnZXI9TWFn aWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAzMjMpLAorICAgICAgICAgICAg IGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCisgICAg ICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtd KSksCisKKyAgICAgICAgICAgICBleHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2VfY2FsbGVkX3dp dGg9ZGljdChkYXRhPVtdKSwKKyAgICAgICAgICkpLAorICAgICAgICAoJyNub2RlcyBXaGVuIHJl dHJpZXZpbmcgdGhlIG5vZGVzICcKKyAgICAgICAgICdhbmQgdGhlIGRhdGFiYXNlIGRvZXMgbm90 IGhhdmUgZXh0ZXJuYWwgdGFibGVzLCAnCisgICAgICAgICAnaXQgcmV0dXJuIG5vIGNoaWxkIG5v ZGVzICcKKyAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcsCisgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgIHRlc3RfdHlwZT0nbm9kZXMnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRl cnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lkPTAsCisgICAgICAgICAg ICAgICAgIHNlcnZlcl9pZD0xLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAorICAg ICAgICAgICAgICksCisgICAgICAgICAgICAgbWFuYWdlcj1NYWdpY01vY2soc2VydmVyX3R5cGU9 J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCisgICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01v Y2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKKyAgICAgICAgICAgICBleGVjdXRlXzJk YXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9W10pKSwKKworICAgICAgICAgICAg IGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9J3NxbC8jZ3BkYiM4MDMyMyMvbGlz dC5zcWwnLAorICAgICAgICAgICAgIGV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRf d2l0aD1kaWN0KAorICAgICAgICAgICAgICAgICBkYXRhPVtdLAorICAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICkpLAorICAgICAgICAoJyNub2Rl cyBXaGVuIHJldHJpZXZpbmcgdGhlIG5vZGVzICcKKyAgICAgICAgICdhbmQgYW4gZXJyb3IgaGFw cGVucyB3aGlsZSBleGVjdXRpbmcgdGhlIHF1ZXJ5LCAnCisgICAgICAgICAnaXQgcmV0dXJuIGFu IGludGVybmFsIHNlcnZlciBlcnJvciAnCisgICAgICAgICAnYW5kIHN0YXR1cyA1MDAnLAorICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J25vZGVzJywKKyAgICAgICAgICAg ICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91 cF9pZD0wLAorICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAgICAg ZGF0YWJhc2VfaWQ9MiwKKyAgICAgICAgICAgICApLAorCisgICAgICAgICAgICAgbWFuYWdlcj1N YWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCisgICAgICAgICAg ICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKKyAg ICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShGYWxzZSwgJ1NvbWUgZXJy b3IgbWVzc2FnZScpLAorCisgICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxs ZWRfd2l0aD0nc3FsLyNncGRiIzgwMzIzIy9saXN0LnNxbCcsCisgICAgICAgICAgICAgZXhwZWN0 ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoPWRpY3QoCisgICAgICAgICAgICAg ICAgIGVycm9ybXNnPSdTb21lIGVycm9yIG1lc3NhZ2UnCisgICAgICAgICAgICAgKSwKKyAgICAg ICAgICkpLAorICAgICAgICAoJyNub2RlcyBXaGVuIHJldHJpZXZpbmcgdGhlIG5vZGVzICcKKyAg ICAgICAgICdhbmQgdGhlIGRhdGFiYXNlIGhhcyAyIGV4dGVybmFsIHRhYmxlcywgJworICAgICAg ICAgJ2l0IHJldHVybiAyIGNoaWxkIG5vZGVzICcKKyAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcs CisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nbm9kZXMnLAorICAgICAg ICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2VydmVy X2dyb3VwX2lkPTAsCisgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAorICAgICAgICAgICAg ICAgICBkYXRhYmFzZV9pZD0yLAorICAgICAgICAgICAgICksCisKKyAgICAgICAgICAgICBtYW5h Z2VyPU1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKKyAgICAg ICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkp LAorICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qo CisgICAgICAgICAgICAgICAgIHJvd3M9WworICAgICAgICAgICAgICAgICAgICAgZGljdCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICBvaWQ9J29pZDEnLAorICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWU9J3RhYmxlX29uZScKKyAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAg ICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMicsCisg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ndGFibGVfdHdvJworICAgICAgICAgICAgICAg ICAgICAgKSwKKyAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICkpLAorCisgICAgICAg ICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD0nc3FsLyNncGRiIzgwMzIz Iy9saXN0LnNxbCcsCisgICAgICAgICAgICAgZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2Nh bGxlZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIGRhdGE9WworICAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6ICJleHRlcm5hbF90YWJsZS9v aWQxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiAndGFibGVfb25lJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdpY29uLWV4dGVybmFsX3RhYmxlJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAnaW5vZGUnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAnX3R5cGUnOiAnZXh0ZXJuYWxfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICdfaWQnOiAnb2lkMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ19waWQnOiAyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICdtb2R1bGUnOiAncGdhZG1pbi5ub2RlLmV4dGVybmFs X3RhYmxlJworICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiAiZXh0ZXJuYWxfdGFibGUvb2lkMiIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX3R3bycsCisgICAgICAgICAg ICAgICAgICAgICAgICAgJ2ljb24nOiAnaWNvbi1leHRlcm5hbF90YWJsZScsCisgICAgICAgICAg ICAgICAgICAgICAgICAgJ2lub2RlJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg J190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnX2lk JzogJ29pZDInLAorICAgICAgICAgICAgICAgICAgICAgICAgICdfcGlkJzogMiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5leHRlcm5hbF90YWJsZScK KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICksCisgICAgICAgICApKSwKKyAgICAgICAg KCcjbm9kZSBXaGVuIHJldHJpZXZpbmcgdGhlIGluZm9ybWF0aW9uIGFib3V0IDEgZXh0ZXJuYWwg dGFibGUgJworICAgICAgICAgJ2FuZCBhbiBlcnJvciBoYXBwZW5zIHdoaWxlIGV4ZWN1dGluZyB0 aGUgcXVlcnksICcKKyAgICAgICAgICdpdCByZXR1cm4gYW4gaW50ZXJuYWwgc2VydmVyIGVycm9y ICcKKyAgICAgICAgICdhbmQgc3RhdHVzIDUwMCcsCisgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgIHRlc3RfdHlwZT0nbm9kZScsCisgICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1k aWN0KAorICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAg ICAgc2VydmVyX2lkPTEsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCisgICAgICAg ICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTExCisgICAgICAgICAgICAgKSwKKworICAgICAg ICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAz MjMpLAorICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1N YWdpY01vY2soKSksCisgICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0o RmFsc2UsICdTb21lIGVycm9yIG1lc3NhZ2UnKSwKKworICAgICAgICAgICAgIGV4cGVjdF9yZW5k ZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAgdGVtcGxhdGVf bmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjL25vZGUuc3FsJywKKyAgICAgICAgICAgICAg ICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIGV4 cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1kaWN0KAorICAgICAgICAg ICAgICAgICBlcnJvcm1zZz0nU29tZSBlcnJvciBtZXNzYWdlJworICAgICAgICAgICAgICksCisg ICAgICAgICApKSwKKyAgICAgICAgKCcjbm9kZSBXaGVuIHJldHJpZXZpbmcgdGhlIGluZm9ybWF0 aW9uIGFib3V0IDEgZXh0ZXJuYWwgdGFibGUgJworICAgICAgICAgJ2FuZCB0YWJsZSBkb2VzIG5v dCBleGlzdCwgJworICAgICAgICAgJ2l0IHJldHVybiBhbiBlcnJvciBtZXNzYWdlICcKKyAgICAg ICAgICdhbmQgc3RhdHVzIDQwNCcsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3Rf dHlwZT0nbm9kZScsCisgICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAorICAg ICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAgICAgc2VydmVy X2lkPTEsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCisgICAgICAgICAgICAgICAg IGV4dGVybmFsX3RhYmxlX2lkPTExCisgICAgICAgICAgICAgKSwKKworICAgICAgICAgICAgIG1h bmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAzMjMpLAorICAg ICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2so KSksCisgICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGlj dChyb3dzPVtdKSksCisKKyAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxl ZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3Fs LyNncGRiIzgwMzIzIy9ub2RlLnNxbCcsCisgICAgICAgICAgICAgICAgIGV4dGVybmFsX3RhYmxl X2lkPTExCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBleHBlY3RlZF9tYWtlX2pzb25f cmVzcG9uc2VfY2FsbGVkX3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAgZGF0YT0nQ291bGQg bm90IGZpbmQgdGhlIGV4dGVybmFsIHRhYmxlLicsCisgICAgICAgICAgICAgICAgIHN0YXR1cz00 MDQKKyAgICAgICAgICAgICApLAorICAgICAgICAgKSksCisgICAgICAgICgnI25vZGVzIFdoZW4g cmV0cmlldmluZyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgMSBleHRlcm5hbCB0YWJsZSAnCisgICAg ICAgICAnYW5kIHRoZSB0YWJsZSBleGlzdHMsICcKKyAgICAgICAgICdpdCByZXR1cm4gZXh0ZXJu YWwgbm9kZSBpbmZvcm1hdGlvbiAnCisgICAgICAgICAnYW5kIHN0YXR1cyAyMDAnLAorICAgICAg ICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J25vZGUnLAorICAgICAgICAgICAgIGZ1 bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lk PTAsCisgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAorICAgICAgICAgICAgICAgICBkYXRh YmFzZV9pZD0yLAorICAgICAgICAgICAgICAgICBleHRlcm5hbF90YWJsZV9pZD0xMQorICAgICAg ICAgICAgICksCisKKyAgICAgICAgICAgICBtYW5hZ2VyPU1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0n Z3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKKyAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9j ayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAorICAgICAgICAgICAgIGV4ZWN1dGVfMmRh cnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3QoCisgICAgICAgICAgICAgICAgIHJvd3M9Wwor ICAgICAgICAgICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICBvaWQ9 J29pZDEnLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3RhYmxlX29uZScKKyAgICAg ICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgICAgICAgICAgICAgIG9pZD0nb2lkMicsCisgICAgICAgICAgICAgICAgICAgICAgICAgbmFt ZT0ndGFibGVfdHdvJworICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAg XQorICAgICAgICAgICAgICkpLAorCisgICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0 ZV9jYWxsZWRfd2l0aD1kaWN0KAorICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xp c3Q9J3NxbC8jZ3BkYiM4MDMyMyMvbm9kZS5zcWwnLAorICAgICAgICAgICAgICAgICBleHRlcm5h bF90YWJsZV9pZD0xMQorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgZXhwZWN0ZWRfbWFr ZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIGRhdGE9 eworICAgICAgICAgICAgICAgICAgICAgJ2lkJzogImV4dGVybmFsX3RhYmxlL29pZDEiLAorICAg ICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX29uZScsCisgICAgICAgICAgICAgICAg ICAgICAnaWNvbic6ICdpY29uLWV4dGVybmFsX3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAg ICdpbm9kZSc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgJ190eXBlJzogJ2V4dGVybmFs X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICdfaWQnOiAnb2lkMScsCisgICAgICAgICAg ICAgICAgICAgICAnX3BpZCc6IDIsCisgICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3Bn YWRtaW4ubm9kZS5leHRlcm5hbF90YWJsZScKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICksCisgICAgICAgICApKSwKKyAgICAg ICAgKCcjcHJvcGVydGllcyBXaGVuIHJldHJpZXZpbmcgdGhlIHByb3BlcnRpZXMgb2YgYSBleHRl cm5hbCB0YWJsZSAnCisgICAgICAgICAnYW5kIHRoZSB0YWJsZSBleGlzdHMsICcKKyAgICAgICAg ICdpdCByZXR1cm4gdGhlIHByb3BlcnRpZXMgJworICAgICAgICAgJ2FuZCBzdGF0dXMgMjAwJywK KyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdwcm9wZXJ0aWVzJywKKyAg ICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgIHNl cnZlcl9ncm91cF9pZD0wLAorICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAg ICAgICAgICAgZGF0YWJhc2VfaWQ9MiwKKyAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVf aWQ9MTEKKyAgICAgICAgICAgICApLAorCisgICAgICAgICAgICAgbWFuYWdlcj1NYWdpY01vY2so c2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCisgICAgICAgICAgICAgY29ubmVj dGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKKyAgICAgICAgICAg ICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KAorICAgICAgICAgICAg ICAgICByb3dzPVtkaWN0KAorICAgICAgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3todHRw Oi8vc29tZXVybC5jb219JywKKyAgICAgICAgICAgICAgICAgICAgIGV4ZWNsb2NhdGlvbj1bJ0FM TF9TRUdNRU5UUyddLAorICAgICAgICAgICAgICAgICAgICAgZm10dHlwZT0nYScsCisgICAgICAg ICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnICcKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAg ICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICByZWpl Y3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUs CisgICAgICAgICAgICAgICAgICAgICBlcnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAg ICAgICBlcnJvcnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcGdfZW5jb2Rpbmdf dG9fY2hhcj0nVVRGOCcsCisgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAg ICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGRp c3RyaWJ1dGlvbj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZScs CisgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3B1YmxpYycKKyAgICAgICAgICAgICAg ICAgKV0KKyAgICAgICAgICAgICApKSwKKworICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVt cGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9v cl9saXN0PSdzcWwvI2dwZGIjODAzMjMjLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJywKKyAgICAgICAgICAgICAgICAg dGFibGVfb2lkPTExCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBleHBlY3RlZF9tYWtl X3Jlc3BvbnNlX2NhbGxlZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIHJlc3BvbnNlPWRp Y3QoCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzb21lX3RhYmxlIiwKKyAgICAgICAgICAg ICAgICAgICAgIHR5cGU9J3JlYWRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF90 eXBlPSdVVEY4JywKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9vcHRpb25zPSdkZWxpbWl0 ZXIgXCcsXCcgbnVsbCBcJ1wnICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgICAgICAgZXh0ZXJu YWxfb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAorICAg ICAgICAgICAgICAgICAgICAgZXhlY3V0ZV9vbj0nYWxsIHNlZ21lbnRzJywKKyAgICAgICAgICAg ICAgICAgKSwKKyAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICksCisg ICAgICAgICApKSwKKyAgICBdCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5n ZXRfZHJpdmVyJykKKyAgICBkZWYgcnVuVGVzdChzZWxmLCBnZXRfZHJpdmVyX21vY2spOgorICAg ICAgICBzZWxmLl9fYmVmb3JlX2FsbChnZXRfZHJpdmVyX21vY2spCisKKyAgICAgICAgaWYgc2Vs Zi50ZXN0X3R5cGUgPT0gJ2NoZWNrLXByZWNvbmRpdGlvbic6CisgICAgICAgICAgICBzZWxmLl9f dGVzdF9iYWNrZW5kX3N1cHBvcnQoKQorICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICdu b2Rlcyc6CisgICAgICAgICAgICBzZWxmLl9fdGVzdF9ub2RlcygpCisgICAgICAgIGVsaWYgc2Vs Zi50ZXN0X3R5cGUgPT0gJ25vZGUnOgorICAgICAgICAgICAgc2VsZi5fX3Rlc3Rfbm9kZSgpCisg ICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2NoaWxkcmVuJzoKKyAgICAgICAgICAgIHNl bGYuX190ZXN0X2NoaWxkcmVuKCkKKyAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAncHJv cGVydGllcyc6CisgICAgICAgICAgICBzZWxmLl9fdGVzdF9wcm9wZXJ0aWVzKCkKKworICAgIEBw YXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0 ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCisgICAgZGVm IF9fdGVzdF9jaGlsZHJlbihzZWxmLCBtYWtlX2pzb25fcmVzcG9uc2VfbW9jayk6CisgICAgICAg IHNlbGYubWFuYWdlci5jb25uZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1zZWxmLmNv bm5lY3Rpb24pCisgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJsZXNW aWV3KGNtZD0nJykKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcuY2hpbGRyZW4oKipzZWxm LmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFz c2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgICoqc2VsZi5leHBlY3RlZF9tYWtlX2pzb25f cmVzcG9uc2VfY2FsbGVkX3dpdGgKKyAgICAgICAgKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCisg ICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgX190ZXN0X2JhY2tlbmRfc3Vw cG9ydChzZWxmLCBfKToKKyAgICAgICAgc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01v Y2socmV0dXJuX3ZhbHVlPXNlbGYuY29ubmVjdGlvbikKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVz X3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQorICAgICAgICBleHRlcm5hbF90YWJs ZXNfdmlldy5ub2RlcygqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykKKyAgICAgICAgc2VsZi5t YW5hZ2VyLmNvbm5lY3Rpb24uYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgKipzZWxm LmV4cGVjdGVkX21hbmFnZXJfY29ubmVjdGlvbl90b19iZV9jYWxsZWRfd2l0aAorICAgICAgICAp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFuYWdlciwgZXh0ZXJuYWxfdGFibGVz X3ZpZXcubWFuYWdlcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5jb25uZWN0aW9u LCBleHRlcm5hbF90YWJsZXNfdmlldy5jb25uZWN0aW9uKQorCisgICAgQHBhdGNoKCdwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMn CisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAg ICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAg ICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAgZGVmIF9fdGVzdF9ub2Rlcyhz ZWxmLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgICAgICAgICAgICAgIG1h a2VfanNvbl9yZXNwb25zZV9tb2NrLCByZW5kZXJfdGVtcGxhdGVfbW9jayk6CisgICAgICAgIGV4 dGVybmFsX3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJsZXNWaWV3KGNtZD0nJykKKyAgICAgICAg ZXh0ZXJuYWxfdGFibGVzX3ZpZXcubm9kZXMoKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisg ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9j YWxsZWRfd2l0aCcpOgorICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgICAgICoqc2VsZi5leHBlY3RlZF9pbnRlcm5h bF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVk KCkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNl X2NhbGxlZF93aXRoJyk6CisgICAgICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3Nl cnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAgICAgKipzZWxmLmV4cGVjdGVkX21ha2VfanNv bl9yZXNwb25zZV9jYWxsZWRfd2l0aAorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAg ICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAg ICBzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGgKKyAgICAgICAgKQorCisg ICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5leHRlcm5hbF90YWJsZXMnCisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBA cGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4 dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQorICAgIEBw YXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0 ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAg ZGVmIF9fdGVzdF9ub2RlKHNlbGYsIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAg ICAgICAgICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywgcmVuZGVyX3RlbXBsYXRlX21v Y2spOgorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9IEV4dGVybmFsVGFibGVzVmlldyhj bWQ9JycpCisgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3Lm5vZGUoKipzZWxmLmZ1bmN0aW9u X3BhcmFtZXRlcnMpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX2ludGVybmFs X3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aCcpOgorICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgICAgICoqc2VsZi5l eHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgKKyAgICAgICAgICAgICkK KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFz c2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhwZWN0ZWRfbWFr ZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoJyk6CisgICAgICAgICAgICBtYWtlX2pzb25fcmVz cG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAgICAgKipzZWxmLmV4 cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0aAorICAgICAgICAgICAgKQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X25v dF9jYWxsZWQoKQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dp dGgoCisgICAgICAgICAgICAqKnNlbGYuZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0 aAorICAgICAgICApCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5yZW5kZXJf dGVtcGxhdGUnKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLm1ha2VfcmVzcG9u c2UnKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9l cnJvcicpCisgICAgZGVmIF9fdGVzdF9wcm9wZXJ0aWVzKHNlbGYsIGludGVybmFsX3NlcnZlcl9l cnJvcl9tb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYWtlX3Jlc3BvbnNlX21vY2ss IHJlbmRlcl90ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBF eHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5w cm9wZXJ0aWVzKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQorICAgICAgICBpZiBoYXNhdHRy KHNlbGYsICdleHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgnKToKKyAg ICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgICAgICAqKnNlbGYuZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2Nh bGxlZF93aXRoCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGlmIGhh c2F0dHIoc2VsZiwgJ2V4cGVjdGVkX21ha2VfcmVzcG9uc2VfY2FsbGVkX3dpdGgnKToKKyAgICAg ICAgICAgIG1ha2VfcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAg ICAgICAgKipzZWxmLmV4cGVjdGVkX21ha2VfcmVzcG9uc2VfY2FsbGVkX3dpdGgKKyAgICAgICAg ICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1ha2VfcmVzcG9uc2VfbW9jay5hc3Nl cnRfbm90X2NhbGxlZCgpCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxs ZWRfd2l0aCgKKyAgICAgICAgICAgICoqc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxl ZF93aXRoCisgICAgICAgICkKKworICAgIGRlZiBfX2JlZm9yZV9hbGwoc2VsZiwgZ2V0X2RyaXZl cl9tb2NrKToKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5f dmFsdWUgPSBcCisgICAgICAgICAgICBzZWxmLmV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWUK KyAgICAgICAgc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVl PXNlbGYuY29ubmVjdGlvbikKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9 IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1NYWdpY01vY2socmV0 dXJuX3ZhbHVlPXNlbGYubWFuYWdlcikKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxl cy90ZXN0cy90ZXN0X21hcHBpbmdfdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfbWFw cGluZ191dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZjA5YjNm ZjAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfbWFwcGluZ191dGls cy5weQpAQCAtMCwwICsxLDM3NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgXAorICAgIC5leHRl cm5hbF90YWJsZXMubWFwcGluZ191dGlscyBpbXBvcnQgXAorICAgIG1hcF9jb2x1bW5fZnJvbV9k YXRhYmFzZSwgbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UsIFwKKyAgICBpc193 ZWJfdGFibGUsIGZvcm1hdF9vcHRpb25zLCBtYXBfZXhlY3V0aW9uX2xvY2F0aW9uLCBtYXBfZm9y bWF0X3R5cGUKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKKworCitjbGFzcyBUZXN0TWFwcGluZ1V0aWxzKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICgnI21hcF9jb2x1bW5fZnJvbV9kYXRhYmFzZSBXaGVuIHJl dHJpZXZpbmcgY29sdW1ucyBmcm9tIHRhYmxlLCAnCisgICAgICAgICAnaXQgcmV0dXJucyBvbmx5 IHRoZSBuYW1lIGFuZCB0eXBlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90 eXBlPSdtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX2Fy Z3VtZW50cz1kaWN0KGNvbHVtbl9pbmZvcm1hdGlvbj1kaWN0KAorICAgICAgICAgICAgICAgICBu YW1lPSdzb21lIG5hbWUnLAorICAgICAgICAgICAgICAgICBjbHR5cGU9J3NvbWUgdHlwZScsCisg ICAgICAgICAgICAgICAgIG90aGVyX2NvbHVtbj0nc29tZSBvdGhlciBjb2x1bW4nCisgICAgICAg ICAgICAgKSksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QobmFtZT0nc29tZSBu YW1lJywgdHlwZT0nc29tZSB0eXBlJykKKyAgICAgICAgICkpLAorCisgICAgICAgICgnI21hcF90 YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlIFdoZW4gcmV0cmlldmluZyBpbmZvcm1hdGlv biAnCisgICAgICAgICAnZnJvbSB3ZWIgdGFibGUsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGFs bCBmaWVsZHMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF90 YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9h cmd1bWVudHM9ZGljdCh0YWJsZV9pbmZvcm1hdGlvbj1kaWN0KAorICAgICAgICAgICAgICAgICB1 cmlsb2NhdGlvbj0ne2h0dHA6Ly9zb21ldXJsLmNvbX0nLAorICAgICAgICAgICAgICAgICBleGVj bG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKKyAgICAgICAgICAgICAgICAgZm10dHlwZT0nYics CisgICAgICAgICAgICAgICAgIGZtdG9wdHM9J2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgZXNj YXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKKyAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAor ICAgICAgICAgICAgICAgICByZWplY3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgICByZWpl Y3RsaW1pdHR5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25lLAorICAg ICAgICAgICAgICAgICBlcnJvcnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgICBwZ19lbmNv ZGluZ190b19jaGFyPSdVVEY4JywKKyAgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCisg ICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZGlzdHJpYnV0 aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCisgICAg ICAgICAgICAgICAgIG5hbWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJworICAgICAgICAgICAgICkp LAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KAorICAgICAgICAgICAgICAgICB1 cmlzPVsnaHR0cDovL3NvbWV1cmwuY29tJ10sCisgICAgICAgICAgICAgICAgIGlzV2ViPVRydWUs CisgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbkxvY2F0aW9uPWRpY3QodHlwZT0nYWxsX3NlZ21l bnRzJywgdmFsdWU9Tm9uZSksCisgICAgICAgICAgICAgICAgIGZvcm1hdFR5cGU9J2N1c3RvbScs CisgICAgICAgICAgICAgICAgIGZvcm1hdE9wdGlvbnM9J2RlbGltaXRlciA9ICQkLCQkLGVzY2Fw ZSA9ICQkIiQkLCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkJCQs cXVvdGUgPSAkJCIkJCcsCisgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAg ICAgICAgICAgcmVqZWN0TGltaXQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgcmVqZWN0TGltaXRU eXBlPU5vbmUsCisgICAgICAgICAgICAgICAgIGVycm9yVGFibGVOYW1lPU5vbmUsCisgICAgICAg ICAgICAgICAgIGVycm9Ub0ZpbGU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgcGdFbmNvZGluZ1Rv Q2hhcj0nVVRGOCcsCisgICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAg ICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25l LAorICAgICAgICAgICAgICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAorICAgICAgICAgICAg ICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9zcGFjZScKKyAgICAgICAgICAgICApCisgICAgICAg ICApKSwKKyAgICAgICAgKCcjbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UgV2hl biByZXRyaWV2aW5nIGluZm9ybWF0aW9uICcKKyAgICAgICAgICdmcm9tIGEgd2ViIHRhYmxlIHVz aW5nIGNvbW1hbmQgaW5zdGVhZCBvZiBVUklzLCAnCisgICAgICAgICAnaXQgcmV0dXJucyBhbGwg ZmllbGRzJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfdGFi bGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZScsCisgICAgICAgICAgICAgZnVuY3Rpb25fYXJn dW1lbnRzPWRpY3QodGFibGVfaW5mb3JtYXRpb249ZGljdCgKKyAgICAgICAgICAgICAgICAgdXJp bG9jYXRpb249Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsnQUxMX1NFR01F TlRTJ10sCisgICAgICAgICAgICAgICAgIGZtdHR5cGU9J2InLAorICAgICAgICAgICAgICAgICBm bXRvcHRzPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnIGVzY2FwZSBcJyJcJyBxdW90ZSBcJyJc JycsCisgICAgICAgICAgICAgICAgIGNvbW1hbmQ9J2NhdCAvdG1wL3BsYWNlcyB8fCBlY2hvIFwn ZXJyb3JcJycsCisgICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0PU5vbmUsCisgICAgICAgICAg ICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25lLAorICAgICAgICAgICAgICAgICBlcnJ0YmxuYW1l PU5vbmUsCisgICAgICAgICAgICAgICAgIGVycm9ydG9maWxlPU5vbmUsCisgICAgICAgICAgICAg ICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgnLAorICAgICAgICAgICAgICAgICB3cml0YWJs ZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAg ICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZV9u YW1lJywKKyAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCisgICAg ICAgICAgICAgKSksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QoCisgICAgICAg ICAgICAgICAgIHVyaXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgaXNXZWI9VHJ1ZSwKKyAgICAg ICAgICAgICAgICAgZXhlY3V0aW9uTG9jYXRpb249ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2 YWx1ZT1Ob25lKSwKKyAgICAgICAgICAgICAgICAgZm9ybWF0VHlwZT0nY3VzdG9tJywKKyAgICAg ICAgICAgICAgICAgZm9ybWF0T3B0aW9ucz0nZGVsaW1pdGVyID0gJCQsJCQsZXNjYXBlID0gJCQi JCQsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsID0gJCQkJCxxdW90ZSA9 ICQkIiQkJywKKyAgICAgICAgICAgICAgICAgY29tbWFuZD0nY2F0IC90bXAvcGxhY2VzIHx8IGVj aG8gXCdlcnJvclwnJywKKyAgICAgICAgICAgICAgICAgcmVqZWN0TGltaXQ9Tm9uZSwKKyAgICAg ICAgICAgICAgICAgcmVqZWN0TGltaXRUeXBlPU5vbmUsCisgICAgICAgICAgICAgICAgIGVycm9y VGFibGVOYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgIGVycm9Ub0ZpbGU9Tm9uZSwKKyAgICAg ICAgICAgICAgICAgcGdFbmNvZGluZ1RvQ2hhcj0nVVRGOCcsCisgICAgICAgICAgICAgICAgIHdy aXRhYmxlPUZhbHNlLAorICAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAg ICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAorICAgICAgICAgICAgICAgICBuYW1lPSdzb21lX3Rh YmxlX25hbWUnLAorICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9zcGFjZScK KyAgICAgICAgICAgICApCisgICAgICAgICApKSwKKyAgICAgICAgKCcjbWFwX3RhYmxlX2luZm9y bWF0aW9uX2Zyb21fZGF0YWJhc2UgV2hlbiByZXRyaWV2aW5nIGluZm9ybWF0aW9uICcKKyAgICAg ICAgICdmcm9tIGEgbm9uZSB3ZWIgdGFibGUsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGFsbCBm aWVsZHMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF90YWJs ZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1 bWVudHM9ZGljdCh0YWJsZV9pbmZvcm1hdGlvbj1kaWN0KAorICAgICAgICAgICAgICAgICB1cmls b2NhdGlvbj0ne2dwZmRpc3Q6Ly9maWxlaG9zdDo4MDgxLyouY3N2fScsCisgICAgICAgICAgICAg ICAgIGV4ZWNsb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddLAorICAgICAgICAgICAgICAgICBmbXR0 eXBlPSdiJywKKyAgICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwg XCdcJyBlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgICBjb21tYW5k PU5vbmUsCisgICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0PU5vbmUsCisgICAgICAgICAgICAg ICAgIHJlamVjdGxpbWl0dHlwZT1Ob25lLAorICAgICAgICAgICAgICAgICBlcnJ0YmxuYW1lPU5v bmUsCisgICAgICAgICAgICAgICAgIGVycm9ydG9maWxlPU5vbmUsCisgICAgICAgICAgICAgICAg IHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgnLAorICAgICAgICAgICAgICAgICB3cml0YWJsZT1G YWxzZSwKKyAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgICBk aXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZV9uYW1l JywKKyAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCisgICAgICAg ICAgICAgKSksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QoCisgICAgICAgICAg ICAgICAgIHVyaXM9WydncGZkaXN0Oi8vZmlsZWhvc3Q6ODA4MS8qLmNzdiddLAorICAgICAgICAg ICAgICAgICBpc1dlYj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZXhlY3V0aW9uTG9jYXRpb249 ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKKyAgICAgICAgICAgICAgICAg Zm9ybWF0VHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0T3B0aW9ucz0nZGVs aW1pdGVyID0gJCQsJCQsZXNjYXBlID0gJCQiJCQsJworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdudWxsID0gJCQkJCxxdW90ZSA9ICQkIiQkJywKKyAgICAgICAgICAgICAgICAgY29t bWFuZD1Ob25lLAorICAgICAgICAgICAgICAgICByZWplY3RMaW1pdD1Ob25lLAorICAgICAgICAg ICAgICAgICByZWplY3RMaW1pdFR5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXJyb3JUYWJs ZU5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXJyb1RvRmlsZT1Ob25lLAorICAgICAgICAg ICAgICAgICBwZ0VuY29kaW5nVG9DaGFyPSdVVEY4JywKKyAgICAgICAgICAgICAgICAgd3JpdGFi bGU9RmFsc2UsCisgICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAg ICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVf bmFtZScsCisgICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJworICAg ICAgICAgICAgICkKKyAgICAgICAgICkpLAorCisKKyAgICAgICAgKCcjaXNfd2ViX3RhYmxlIFdo ZW4gdXJsIHN0YXJ0cyB3aXRoIGh0dHAgJworICAgICAgICAgJ2FuZCBjb21tYW5kIGlzIE5vbmUg JworICAgICAgICAgJ2l0IHJldHVybnMgdHJ1ZScsCisgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgIHRlc3RfdHlwZT0naXNfd2ViX3RhYmxlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1 bWVudHM9ZGljdCgKKyAgICAgICAgICAgICAgICAgdXJpcz0ne2h0dHA6Ly9zb21ldXJsLmNvbX0n LAorICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUKKyAgICAgICAgICAgICApLAorICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1UcnVlCisgICAgICAgICApKSwKKyAgICAgICAgKCcjaXNf d2ViX3RhYmxlIFdoZW4gdXJsIHN0YXJ0cyB3aXRoIGh0dHBzICcKKyAgICAgICAgICdhbmQgY29t bWFuZCBpcyBOb25lLCAnCisgICAgICAgICAnaXQgcmV0dXJucyB0cnVlJywKKyAgICAgICAgIGRp Y3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdpc193ZWJfdGFibGUnLAorICAgICAgICAgICAg IGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KAorICAgICAgICAgICAgICAgICB1cmlzPSd7aHR0cHM6 Ly9zb21ldXJsLmNvbX0nLAorICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUKKyAgICAgICAg ICAgICApLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1UcnVlCisgICAgICAgICApKSwK KyAgICAgICAgKCcjaXNfd2ViX3RhYmxlIFdoZW4gdXJsIHN0YXJ0cyB3aXRoIHMzICcKKyAgICAg ICAgICdhbmQgY29tbWFuZCBpcyBOb25lJworICAgICAgICAgJ2l0IHJldHVybnMgZmFsc2UnLAor ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J2lzX3dlYl90YWJsZScsCisg ICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QodXJpcz0ne3MzOi8vc29tZXVybC5j b219JywgY29tbWFuZD1Ob25lKSwKKyAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9RmFsc2UK KyAgICAgICAgICkpLAorICAgICAgICAoJyNpc193ZWJfdGFibGUgV2hlbiB1cmwgaXMgTm9uZSAn CisgICAgICAgICAnYW5kIGNvbW1hbmQgaXMgbm90IE5vbmUnCisgICAgICAgICAnaXQgcmV0dXJu cyBmYWxzZScsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0naXNfd2Vi X3RhYmxlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdCh1cmlzPU5vbmUs IGNvbW1hbmQ9J1NvbWUgY29tbWFuZCcpLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1U cnVlCisgICAgICAgICApKSwKKworCisgICAgICAgICgnI21hcF9leGVjdXRpb25fbG9jYXRpb24g V2hlbiB2YWx1ZSBpcyAiSE9TVDogMS4xLjEuMSIsICcKKyAgICAgICAgICdpdCByZXR1cm5zIHt0 eXBlOiAiaG9zdCIsIHZhbHVlOiAiMS4xLjEuMSJ9JywKKyAgICAgICAgIGRpY3QoCisgICAgICAg ICAgICAgdGVzdF90eXBlPSdtYXBfZXhlY3V0aW9uX2xvY2F0aW9uJywKKyAgICAgICAgICAgICBm dW5jdGlvbl9hcmd1bWVudHM9ZGljdChleGVjdXRpb25fbG9jYXRpb249WydIT1NUOiAxLjEuMS4x J10pLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KHR5cGU9J2hvc3QnLCB2YWx1 ZT0nMS4xLjEuMScpCisgICAgICAgICApKSwKKyAgICAgICAgKCcjbWFwX2V4ZWN1dGlvbl9sb2Nh dGlvbiBXaGVuIHZhbHVlIGlzICJQRVJfSE9TVCIsICcKKyAgICAgICAgICdpdCByZXR1cm5zIHt0 eXBlOiAicGVyX2hvc3QiLCB2YWx1ZTogTm9uZX0nLAorICAgICAgICAgZGljdCgKKyAgICAgICAg ICAgICB0ZXN0X3R5cGU9J21hcF9leGVjdXRpb25fbG9jYXRpb24nLAorICAgICAgICAgICAgIGZ1 bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGV4ZWN1dGlvbl9sb2NhdGlvbj1bJ1BFUl9IT1NUJ10pLAor ICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KHR5cGU9J3Blcl9ob3N0JywgdmFsdWU9 Tm9uZSkKKyAgICAgICAgICkpLAorICAgICAgICAoJyNtYXBfZXhlY3V0aW9uX2xvY2F0aW9uIFdo ZW4gdmFsdWUgaXMgIk1BU1RFUl9PTkxZIiwgJworICAgICAgICAgJ2l0IHJldHVybnMge3R5cGU6 ICJtYXN0ZXJfb25seSIsIHZhbHVlOiBOb25lfScsCisgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgIHRlc3RfdHlwZT0nbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbicsCisgICAgICAgICAgICAgZnVu Y3Rpb25fYXJndW1lbnRzPWRpY3QoZXhlY3V0aW9uX2xvY2F0aW9uPVsnTUFTVEVSX09OTFknXSks CisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QodHlwZT0nbWFzdGVyX29ubHknLCB2 YWx1ZT1Ob25lKQorICAgICAgICAgKSksCisgICAgICAgICgnI21hcF9leGVjdXRpb25fbG9jYXRp b24gV2hlbiB2YWx1ZSBpcyAiU0VHTUVOVF9JRDogMTIzNCIsICcKKyAgICAgICAgICdpdCByZXR1 cm5zIHt0eXBlOiAic2VnbWVudCIsIHZhbHVlOiAiMTIzNCJ9JywKKyAgICAgICAgIGRpY3QoCisg ICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZXhlY3V0aW9uX2xvY2F0aW9uJywKKyAgICAgICAg ICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChleGVjdXRpb25fbG9jYXRpb249WydTRUdNRU5U X0lEOiAxMjM0J10pLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KHR5cGU9J3Nl Z21lbnQnLCB2YWx1ZT0nMTIzNCcpCisgICAgICAgICApKSwKKyAgICAgICAgKCcjbWFwX2V4ZWN1 dGlvbl9sb2NhdGlvbiBXaGVuIHZhbHVlIGlzICJUT1RBTF9TRUdTOiA0IiwgJworICAgICAgICAg J2l0IHJldHVybnMge3R5cGU6ICJzZWdtZW50cyIsIHZhbHVlOiAiNCJ9JywKKyAgICAgICAgIGRp Y3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZXhlY3V0aW9uX2xvY2F0aW9uJywKKyAg ICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChleGVjdXRpb25fbG9jYXRpb249WydU T1RBTF9TRUdTOiA0J10pLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KHR5cGU9 J3NlZ21lbnRzJywgdmFsdWU9JzQnKQorICAgICAgICAgKSksCisgICAgICAgICgnI21hcF9leGVj dXRpb25fbG9jYXRpb24gV2hlbiB2YWx1ZSBpcyAie0FMTF9TRUdNRU5UU30iLCAnCisgICAgICAg ICAnaXQgcmV0dXJucyB7dHlwZTogImFsbF9zZWdtZW50cyIsIHZhbHVlOiBOb25lfScsCisgICAg ICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2V4ZWN1dGlvbl9sb2NhdGlv bicsCisgICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZXhlY3V0aW9uX2xvY2F0 aW9uPVsnQUxMX1NFR01FTlRTJ10pLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0 KHR5cGU9J2FsbF9zZWdtZW50cycsIHZhbHVlPU5vbmUpCisgICAgICAgICApKSwKKworICAgICAg ICAoJyNtYXBfZm9ybWF0X3R5cGUgV2hlbiB2YWx1ZSBpcyAiYyIsICcKKyAgICAgICAgICdpdCBy ZXR1cm5zIGNzdicsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFw X2Zvcm1hdF90eXBlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3Jt YXRfdHlwZT0nYycpLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nY3N2JworICAgICAg ICAgKSksCisgICAgICAgICgnI21hcF9mb3JtYXRfdHlwZSBXaGVuIHZhbHVlIGlzICJzb21ldGhp bmcgc3RyYW5nZSIsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGNzdicsCisgICAgICAgICBkaWN0 KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2Zvcm1hdF90eXBlJywKKyAgICAgICAgICAg ICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0nc29tZXRoaW5nIHN0cmFuZ2Un KSwKKyAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2NzdicKKyAgICAgICAgICkpLAorICAg ICAgICAoJyNtYXBfZm9ybWF0X3R5cGUgV2hlbiB2YWx1ZSBpcyAiYiIsICcKKyAgICAgICAgICdp dCByZXR1cm5zIGN1c3RvbScsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlw ZT0nbWFwX2Zvcm1hdF90eXBlJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGlj dChmb3JtYXRfdHlwZT0nYicpLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nY3VzdG9t JworICAgICAgICAgKSksCisgICAgICAgICgnI21hcF9mb3JtYXRfdHlwZSBXaGVuIHZhbHVlIGlz ICJ0IiwgJworICAgICAgICAgJ2l0IHJldHVybnMgdGV4dCcsCisgICAgICAgICBkaWN0KAorICAg ICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2Zvcm1hdF90eXBlJywKKyAgICAgICAgICAgICBmdW5j dGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0ndCcpLAorICAgICAgICAgICAgIGV4cGVj dGVkX3Jlc3VsdD0ndGV4dCcKKyAgICAgICAgICkpLAorICAgICAgICAoJyNtYXBfZm9ybWF0X3R5 cGUgV2hlbiB2YWx1ZSBpcyAiYSIsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGF2cm8nLAorICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9mb3JtYXRfdHlwZScsCisg ICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J2EnKSwKKyAg ICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2F2cm8nCisgICAgICAgICApKSwKKyAgICAgICAg KCcjbWFwX2Zvcm1hdF90eXBlIFdoZW4gdmFsdWUgaXMgInAiLCAnCisgICAgICAgICAnaXQgcmV0 dXJucyBwYXJxdWV0JywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdt YXBfZm9ybWF0X3R5cGUnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZv cm1hdF90eXBlPSdwJyksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdwYXJxdWV0Jwor ICAgICAgICAgKSksCisKKyAgICAgICAgKCcjZm9ybWF0X29wdGlvbnMgcGFzc2luZyBOb25lLCAn CisgICAgICAgICAnaXQgcmV0dXJucyBOb25lJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgdGVzdF90eXBlPSdmb3JtYXRfb3B0aW9ucycsCisgICAgICAgICAgICAgZnVuY3Rpb25fYXJn dW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J2F2cm8nLCBvcHRpb25zPU5vbmUpLAorICAgICAgICAg ICAgIGV4cGVjdGVkX3Jlc3VsdD1Ob25lCisgICAgICAgICApKSwKKyAgICAgICAgKCcjZm9ybWF0 X29wdGlvbnMgcGFzc2luZyBlbXB0eSBzdHJpbmcsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGVt cHR5IHN0cmluZycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9y bWF0X29wdGlvbnMnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1h dF90eXBlPSdwYXJxdWV0Jywgb3B0aW9ucz0nJyksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVz dWx0PScnCisgICAgICAgICApKSwKKyAgICAgICAgKCcjZm9ybWF0X29wdGlvbnMgcGFzc2luZyAi Zm9ybWF0dGVyIFwnZml4ZWR3aWR0aF9pblwnIG51bGwgXCcgXCciLCAnCisgICAgICAgICAnaXQg cmV0dXJucyAiZm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsbnVsbCA9ICQkICQkIicsCisg ICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9ybWF0X29wdGlvbnMnLAor ICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdjdXN0b20n LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9J2Zvcm1hdHRl ciBcJ2ZpeGVkd2lkdGhfaW5cJyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnbnVsbCBcJyBcJycpLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0n Zm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsbnVsbCA9ICQkICQkJworICAgICAgICAgKSks CisgICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIHBhc3NpbmcgJworICAgICAgICAgJyJmb3JtYXR0 ZXIgXCdmaXhlZHdpZHRoX2luXCcgY29tbWEgXCdcJ1wnIG51bGwgXCcgXCciLCAnCisgICAgICAg ICAnaXQgcmV0dXJucyAnCisgICAgICAgICAnImZvcm1hdHRlciA9ICQkZml4ZWR3aWR0aF9pbiQk LGNvbW1hID0gJCRcJyQkLG51bGwgPSAkJCAkJCInLAorICAgICAgICAgZGljdCgKKyAgICAgICAg ICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9h cmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcHRpb25zPSdmb3JtYXR0ZXIgXCdmaXhlZHdpZHRoX2luXCcgJwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1hIFwnXCdc JyBudWxsIFwnIFwnJyksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdjb21tYSA9ICQk XCckJCxmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCwnCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdudWxsID0gJCQgJCQnCisgICAgICAgICApKSwKKyAgICAgICAgKCcjZm9ybWF0 X29wdGlvbnMgcGFzc2luZyAnCisgICAgICAgICAnImZvcm1hdHRlciBcJ2ZpeGVkd2lkdGhfaW5c JyBudWxsIFwnIFwnIHByZXNlcnZlX2JsYW5rcyAnCisgICAgICAgICAnXCdvblwnIGNvbW1hIFwn XFxcJ1wnIiwgJworICAgICAgICAgJ2l0IHJldHVybnMgJworICAgICAgICAgJyJmb3JtYXR0ZXIg PSAkJGZpeGVkd2lkdGhfaW4kJCxudWxsID0gJCQgJCQscHJlc2VydmVfYmxhbmtzID0gJworICAg ICAgICAgJyQkb24kJCxjb21tYSA9ICQkXCckJCInLAorICAgICAgICAgZGljdCgKKyAgICAgICAg ICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9h cmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcHRpb25zPSdmb3JtYXR0ZXIgXCdmaXhlZHdpZHRoX2luXCcgJwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgXCcgXCcg JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByZXNlcnZl X2JsYW5rcyBcJ29uXCcgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2NvbW1hIFwnXCdcJycpLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nY29t bWEgPSAkJFwnJCQsZm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsJworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkICQkLCcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3ByZXNlcnZlX2JsYW5rcyA9ICQkb24kJCcKKyAgICAgICAgICkpLAorICAgICAgICAo JyNmb3JtYXRfb3B0aW9ucyBXaGVuIGZvcm1hdCB0eXBlIGlzIHRleHQgJworICAgICAgICAgJ2l0 IHJldHVybnMgZXNjYXBlZCBzdHJpbmcnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB0 ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVu dHM9ZGljdChmb3JtYXRfdHlwZT0ndGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3B0aW9ucz0nc29tZXRoaW5nIFwnc3RyYW5nZVwnICcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlciBcJ1wnXCcnKSwKKyAgICAgICAg ICAgICBleHBlY3RlZF9yZXN1bHQ9J290aGVyICQkXCckJCAnCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdzb21ldGhpbmcgJCRzdHJhbmdlJCQnCisKKyAgICAgICAgICkpLAorICAgICAg ICAoJyNmb3JtYXRfb3B0aW9ucyBXaGVuIGZvcm1hdCB0eXBlIGlzIGNzdiAnCisgICAgICAgICAn aXQgcmV0dXJucyBlc2NhcGVkIHN0cmluZycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAg IHRlc3RfdHlwZT0nZm9ybWF0X29wdGlvbnMnLAorICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3Vt ZW50cz1kaWN0KGZvcm1hdF90eXBlPSdjc3YnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9wdGlvbnM9J3NvbWV0aGluZyBcJ3N0cmFuZ2VcJyAnCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXIgXCdcJ1wnJyksCisgICAgICAg ICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdvdGhlciAkJFwnJCQgJworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnc29tZXRoaW5nICQkc3RyYW5nZSQkJworCisgICAgICAgICApKQorICAgIF0K KworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICByZXN1bHQgPSBOb25lCisgICAgICAg IGlmIHNlbGYudGVzdF90eXBlID09ICdtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UnOgorICAgICAg ICAgICAgcmVzdWx0ID0gbWFwX2NvbHVtbl9mcm9tX2RhdGFiYXNlKCoqc2VsZi5mdW5jdGlvbl9h cmd1bWVudHMpCisgICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ21hcF90YWJsZV9pbmZv cm1hdGlvbl9mcm9tX2RhdGFiYXNlJzoKKyAgICAgICAgICAgIHJlc3VsdCA9IG1hcF90YWJsZV9p bmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlKAorICAgICAgICAgICAgICAgICoqc2VsZi5mdW5jdGlv bl9hcmd1bWVudHMpCisgICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ21hcF9leGVjdXRp b25fbG9jYXRpb24nOgorICAgICAgICAgICAgcmVzdWx0ID0gbWFwX2V4ZWN1dGlvbl9sb2NhdGlv bigqKnNlbGYuZnVuY3Rpb25fYXJndW1lbnRzKQorICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBl ID09ICdtYXBfZm9ybWF0X3R5cGUnOgorICAgICAgICAgICAgcmVzdWx0ID0gbWFwX2Zvcm1hdF90 eXBlKCoqc2VsZi5mdW5jdGlvbl9hcmd1bWVudHMpCisgICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5 cGUgPT0gJ2lzX3dlYl90YWJsZSc6CisgICAgICAgICAgICByZXN1bHQgPSBpc193ZWJfdGFibGUo KipzZWxmLmZ1bmN0aW9uX2FyZ3VtZW50cykKKyAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9 PSAnZm9ybWF0X29wdGlvbnMnOgorICAgICAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29wdGlvbnMo KipzZWxmLmZ1bmN0aW9uX2FyZ3VtZW50cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1 bHQsIHNlbGYuZXhwZWN0ZWRfcmVzdWx0KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90 ZXN0X3Byb3BlcnRpZXMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfcHJvcGVydGllcy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNzE4MTUxYjUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfcHJvcGVydGllcy5weQpAQCAtMCwwICsxLDE1 NiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBzeXMKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyBcCisgICAgLmV4dGVybmFs X3RhYmxlcyBpbXBvcnQgUHJvcGVydGllcworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMgXAorICAgIC5wcm9wZXJ0aWVz IGltcG9ydCBQcm9wZXJ0aWVzRXhjZXB0aW9uLCBQcm9wZXJ0aWVzVGFibGVOb3RGb3VuZEV4Y2Vw dGlvbgorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor CitpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgorICAgIGZyb20gbW9jayBpbXBvcnQgTWFn aWNNb2NrLCBwYXRjaAorZWxzZToKKyAgICBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2lj TW9jaywgcGF0Y2gKKworCitjbGFzcyBUZXN0RXh0ZXJuYWxUYWJsZXNWaWV3KEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnI3Byb3BlcnRpZXMgV2hlbiBy ZXRyaWV2aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZXh0ZXJuYWwgdGFibGUgJworICAgICAgICAg J2FuZCB0aGUgdGFibGUgZXhpc3RzLCAnCisgICAgICAgICAnaXQgcmV0dXJuIHRoZSBwcm9wZXJ0 aWVzICcsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0ncHJvcGVydGll cycsCisgICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAorICAgICAgICAgICAg ICAgICB0YWJsZV9vaWQ9MTEKKyAgICAgICAgICAgICApLAorCisgICAgICAgICAgICAgY29ubmVj dGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKKyAgICAgICAgICAg ICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KAorICAgICAgICAgICAg ICAgICByb3dzPVtkaWN0KAorICAgICAgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3todHRw Oi8vc29tZXVybC5jb219JywKKyAgICAgICAgICAgICAgICAgICAgIGV4ZWNsb2NhdGlvbj1bJ0FM TF9TRUdNRU5UUyddLAorICAgICAgICAgICAgICAgICAgICAgZm10dHlwZT0nYScsCisgICAgICAg ICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnICcKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAg ICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICByZWpl Y3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUs CisgICAgICAgICAgICAgICAgICAgICBlcnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAg ICAgICBlcnJvcnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcGdfZW5jb2Rpbmdf dG9fY2hhcj0nVVRGOCcsCisgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAg ICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGRp c3RyaWJ1dGlvbj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZScs CisgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3B1YmxpYycKKyAgICAgICAgICAgICAg ICAgKV0KKyAgICAgICAgICAgICApKSwKKworICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVt cGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9v cl9saXN0PSdzb21lL3NxbC9sb2NhdGlvbi8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisgICAgICAgICAgICAgICAg IHRhYmxlX29pZD0xMQorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgZXhwZWN0ZWRfcmVz dWx0PWRpY3QoCisgICAgICAgICAgICAgICAgIG5hbWU9InNvbWVfdGFibGUiLAorICAgICAgICAg ICAgICAgICB0eXBlPSdyZWFkYWJsZScsCisgICAgICAgICAgICAgICAgIGZvcm1hdF90eXBlPSdV VEY4JywKKyAgICAgICAgICAgICAgICAgZm9ybWF0X29wdGlvbnM9J2RlbGltaXRlciBcJyxcJyBu dWxsIFwnXCcgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXNjYXBlIFwnIlwn IHF1b3RlIFwnIlwnJywKKyAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfb3B0aW9ucz1Ob25lLAor ICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgIGV4ZWN1dGVf b249J2FsbCBzZWdtZW50cycsCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICkpLAorICAgICAg ICAoJyNwcm9wZXJ0aWVzIFdoZW4gcmV0cmlldmluZyB0aGUgcHJvcGVydGllcyBvZiBhIGV4dGVy bmFsIHRhYmxlICcKKyAgICAgICAgICdhbmQgYSBTUUwgZXJyb3IgaGFwcGVucywgJworICAgICAg ICAgJ2l0IHJhaXNlcyBleGNlcHRpb24gd2l0aCB0aGUgZXJyb3IgbWVzc2FnZScsCisgICAgICAg ICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0ncHJvcGVydGllcycsCisgICAgICAgICAg ICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAorICAgICAgICAgICAgICAgICB0YWJsZV9vaWQ9 MTEKKyAgICAgICAgICAgICApLAorCisgICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01vY2so ZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKKyAgICAgICAgICAgICBleGVjdXRlXzJkYXJy YXlfcmV0dXJuX3ZhbHVlPShGYWxzZSwgJ1NvbWUgZXJyb3InKSwKKworICAgICAgICAgICAgIGV4 cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAg dGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzb21lL3NxbC9sb2NhdGlvbi8nCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisg ICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMQorICAgICAgICAgICAgICksCisgICAgICAgICAg ICAgZXhwZWN0ZWRfcmFpc2VfZXhjZXB0aW9uPVByb3BlcnRpZXNFeGNlcHRpb24sCisgICAgICAg ICAgICAgZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoPVsnU29tZSBl cnJvciddCisgICAgICAgICApKSwKKyAgICAgICAgKCcjcHJvcGVydGllcyBXaGVuIHJldHJpZXZp bmcgdGhlIHByb3BlcnRpZXMgb2YgYSBleHRlcm5hbCB0YWJsZSAnCisgICAgICAgICAnYW5kIHRh YmxlIGlzIG5vdCBmb3VuZCwgJworICAgICAgICAgJ2l0IHJhaXNlcyBleGNlcHRpb24gJywKKyAg ICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdGVzdF90eXBlPSdwcm9wZXJ0aWVzJywKKyAgICAg ICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgIHRhYmxl X29pZD0xMQorICAgICAgICAgICAgICksCisKKyAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2lj TW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAorICAgICAgICAgICAgIGV4ZWN1dGVf MmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qocm93cz1bXSkpLAorCisgICAgICAgICAg ICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAorICAgICAgICAgICAg ICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9uLycKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3Fs JywKKyAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTExCisgICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgICBleHBlY3RlZF9yYWlzZV9leGNlcHRpb249UHJvcGVydGllc1RhYmxlTm90Rm91bmRF eGNlcHRpb24KKyAgICAgICAgICkpLAorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5LnJldHVybl92YWx1ZSA9IFwK KyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZQorICAgICAgICBz ZWxmLl9fdGVzdF9wcm9wZXJ0aWVzKCkKKworICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMnCisgICAgICAgICAgICcuZXh0ZXJuYWxfdGFi bGVzLnByb3BlcnRpZXMuaW50ZXJuYWxfc2VydmVyX2Vycm9yJykKKyAgICBkZWYgX190ZXN0X3By b3BlcnRpZXMoc2VsZiwgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2spOgorICAgICAgICBzZWxm Lm1heERpZmYgPSBOb25lCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2Nr KCkKKworICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9IFByb3BlcnRpZXMoCisgICAgICAg ICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbiwK KyAgICAgICAgICAgICdzb21lL3NxbC9sb2NhdGlvbi8nCisgICAgICAgICkKKworICAgICAgICBy ZXN1bHQgPSBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZXh0ZXJu YWxfdGFibGVzX3ZpZXcucmV0cmlldmUoKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisgICAg ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9yYWlzZV9leGNlcHRpb24nKToKKyAg ICAgICAgICAgICAgICBzZWxmLmZhaWwoJ05vIGV4Y2VwdGlvbiB3YXMgcmFpc2VkJykKKyAgICAg ICAgZXhjZXB0IFByb3BlcnRpZXNFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICAgICAg aWYgaGFzYXR0cihzZWxmLCAnZXhwZWN0ZWRfcmFpc2VfZXhjZXB0aW9uJyk6CisgICAgICAgICAg ICAgICAgaWYgdHlwZShleGNlcHRpb24pIGlzIHNlbGYuZXhwZWN0ZWRfcmFpc2VfZXhjZXB0aW9u OgorICAgICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0 aCcpOgorICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2su YXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpzZWxmLmV4 cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aAorICAgICAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg ICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnV3Jvbmcg ZXhjZXB0aW9uIHR5cGU6ICcgKyBzdHIoZXhjZXB0aW9uKSkKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxm LCAnZXhwZWN0ZWRfcmVzdWx0Jyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Vs dCwgc2VsZi5leHBlY3RlZF9yZXN1bHQpCisKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2su YXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJfdGVt cGxhdGVfY2FsbGVkX3dpdGgKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0 cy90ZXN0X3JldmVyc2VfZW5naW5lZXJfZGRsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X3Jl dmVyc2VfZW5naW5lZXJfZGRsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw Li5iMDkwNDBmNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9yZXZl cnNlX2VuZ2luZWVyX2RkbC5weQpAQCAtMCwwICsxLDI2MSBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaW1wb3J0IHN5cworCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzIFwKKyAgICAuZXh0ZXJuYWxfdGFibGVzLnJldmVyc2VfZW5naW5l ZXJfZGRsIGltcG9ydCBcCisgICAgUmV2ZXJzZUVuZ2luZWVyRERMLCBSZXZlcnNlRW5naW5lZXJE RExFeGNlcHRpb24KK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKKworaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAzKToKKyAgICBmcm9tIG1vY2sgaW1w b3J0IE1hZ2ljTW9jaworZWxzZToKKyAgICBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2lj TW9jaworCisKK2NsYXNzIFRlc3RSZXZlcnNlRW5naW5lZXJEREwoQmFzZVRlc3RHZW5lcmF0b3Ip OgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCcjZXhlY3V0ZSBXaGVuIHJldHJpdmluZyB0 aGUgRERMIGZvciB0aGUgY3JlYXRpb24gb2YgZXh0ZXJuYWwgJworICAgICAgICAgJ3RhYmxlcywg JworICAgICAgICAgJ2l0IHJldHJpZXZlcyBpbmZvcm1hdGlvbiBvZiB0aGUgY29sdW1ucyBhbmQg dGhlIHRhYmxlcyAnCisgICAgICAgICAnYW5kIGdlbmVyYXRlIHRoZSBTUUwgdG8gY3JlYXRlIHRo ZSB0YWJsZScsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nZXhlY3V0 ZScsCisgICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KHRhYmxlX29pZD0xNCks CisgICAgICAgICAgICAgZmluZF9jb2x1bW5zX3JldHVybl92YWx1ZT1kaWN0KHNvbWV2YWx1ZT0n dmFsdWUnKSwKKyAgICAgICAgICAgICB0YWJsZV9pbmZvcm1hdGlvbl9yZXR1cm5fdmFsdWU9ZGlj dChzb21lb3RoZXI9J2JhbW0nKSwKKworICAgICAgICAgICAgIGV4cGVjdF9maW5kX2NvbHVtbnNf Y2FsbGVkX3dpdGg9MTQsCisgICAgICAgICAgICAgZXhwZWN0X3RhYmxlX2luZm9ybWF0aW9uX2Nh bGxlZF93aXRoPTE0LAorICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVk X3dpdGg9ZGljdCgKKyAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwv I2dwZGIjODAzMjMjL2NyZWF0ZS5zcWwnLAorICAgICAgICAgICAgICAgICB0YWJsZT1kaWN0KAor ICAgICAgICAgICAgICAgICAgICAgc29tZW90aGVyPSdiYW1tJywKKyAgICAgICAgICAgICAgICAg ICAgIGNvbHVtbnM9ZGljdChzb21ldmFsdWU9J3ZhbHVlJykKKyAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICkKKyAgICAgICAgICkpLAorICAgICAgICAoJyNmaW5kX2NvbHVtbnMgV2hl biBhbiBleHRlcm5hbCB0YWJsZSBleGlzdHMsICcKKyAgICAgICAgICdhbmQgaGF2ZSAzIGNvbHVt bnMsICcKKyAgICAgICAgICdpdCByZXR1cm5zIGEgbGlzdCB3aXRoIDEgb2JqZWN0IHRoYXQgYXMg dGhlIHRhYmxlIG5hbWUgdG8gaW5oZXJpdCAnCisgICAgICAgICAnZnJvbScsCisgICAgICAgICBk aWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nZmluZF9jb2x1bW5zJywKKyAgICAgICAgICAg ICBmdW5jdGlvbl9wYXJhbWV0ZXJzPXsndGFibGVfb2lkJzogMTIzfSwKKyAgICAgICAgICAgICBl eGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9WworICAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb2x1bW5fMScsCisgICAg ICAgICAgICAgICAgICAgICAnY2x0eXBlJzogJ3RleHQnLAorICAgICAgICAgICAgICAgICAgICAg J2luaGVyaXRlZEZyb20nOiAnb3RoZXJfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgJ2lu aGVyaXRlZGlkJzogJzEyMzQnLAorICAgICAgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAg ICAgICAgICAnbmFtZSc6ICdjb2x1bW5fMicsCisgICAgICAgICAgICAgICAgICAgICAnY2x0eXBl JzogJ2ludCcsCisgICAgICAgICAgICAgICAgICAgICAnaW5oZXJpdGVkRnJvbSc6ICdvdGhlcl90 YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAnaW5oZXJpdGVkaWQnOiAnMTIzNCcsCisgICAg ICAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2NvbHVtbl8z JywKKyAgICAgICAgICAgICAgICAgICAgICdjbHR5cGUnOiAnbnVtZXJpYycsCisgICAgICAgICAg ICAgICAgICAgICAnaW5oZXJpdGVkRnJvbSc6ICdvdGhlcl90YWJsZScsCisgICAgICAgICAgICAg ICAgICAgICAnaW5oZXJpdGVkaWQnOiAnMTIzNCcsCisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICBdKSksCisKKyAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxl ZF93aXRoPWRpY3QoCisgICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3Fs LyNncGRiIzgwMzIzIy9nZXRfY29sdW1ucy5zcWwnLAorICAgICAgICAgICAgICAgICB0YWJsZV9v aWQ9MTIzCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9Wwor ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb2x1bW5f MScsCisgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICd0ZXh0JworICAgICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdj b2x1bW5fMicsCisgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdpbnQnCisgICAgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICduYW1l JzogJ2NvbHVtbl8zJywKKyAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ251bWVyaWMnCisg ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgXSwKKyAgICAgICAgICkpLAorICAgICAg ICAoJyNmaW5kX2NvbHVtbnMgV2hlbiBlcnJvciBoYXBwZW5zIHdoaWxlIHJldHJpZXZpbmcgJwor ICAgICAgICAgJ2NvbHVtbiBpbmZvcm1hdGlvbiwgJworICAgICAgICAgJ2l0IHJhaXNlIGFuIGV4 Y2VwdGlvbicsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHRlc3RfdHlwZT0nZmluZF9j b2x1bW5zJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPXsndGFibGVfb2lkJzog MTIzfSwKKyAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShGYWxzZSwg J1NvbWUgZXJyb3IgbWVzc2FnZScpLAorCisgICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1w bGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAorICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29y X2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvZ2V0X2NvbHVtbnMuc3FsJywKKyAgICAgICAgICAgICAg ICAgdGFibGVfb2lkPTEyMworICAgICAgICAgICAgICksCisgICAgICAgICAgICAgZXhwZWN0ZWRf ZXhjZXB0aW9uPVJldmVyc2VFbmdpbmVlckRETEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAg J1NvbWUgZXJyb3IgbWVzc2FnZScpLAorICAgICAgICAgKQorICAgICAgICAgKSwKKyAgICAgICAg KCcjdGFibGVfaW5mb3JtYXRpb24gV2hlbiBlcnJvciBoYXBwZW5zIHdoaWxlIHJldHJpZXZpbmcg JworICAgICAgICAgJ3RhYmxlIGdlbmVyaWMgaW5mb3JtYXRpb24sICcKKyAgICAgICAgICdpdCBy YWlzZSBhbiBleGNlcHRpb24nLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB0ZXN0X3R5 cGU9J3RhYmxlX2luZm9ybWF0aW9uJywKKyAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJz PXsndGFibGVfb2lkJzogMTIzfSwKKyAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJu X3ZhbHVlPShGYWxzZSwgJ1NvbWUgZXJyb3IgbWVzc2FnZScpLAorCisgICAgICAgICAgICAgZXhw ZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAorICAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvJworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwnLAorICAg ICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg ICBleHBlY3RlZF9leGNlcHRpb249UmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9uKAorICAgICAg ICAgICAgICAgICAnU29tZSBlcnJvciBtZXNzYWdlJyksCisgICAgICAgICApCisgICAgICAgICAp LAorICAgICAgICAoJyN0YWJsZV9pbmZvcm1hdGlvbiBXaGVuIGNhbm5vdCBmaW5kIHRoZSB0YWJs ZSwgJworICAgICAgICAgJ2l0IHJhaXNlIGFuIGV4Y2VwdGlvbicsCisgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgIHRlc3RfdHlwZT0ndGFibGVfaW5mb3JtYXRpb24nLAorICAgICAgICAgICAg IGZ1bmN0aW9uX3BhcmFtZXRlcnM9eyd0YWJsZV9vaWQnOiAxMjN9LAorICAgICAgICAgICAgIGV4 ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIHsncm93cyc6IFtdfSksCisKKyAgICAg ICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCisgICAgICAg ICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy8nCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9u LnNxbCcsCisgICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKKyAgICAgICAgICAgICApLAor ICAgICAgICAgICAgIGV4cGVjdGVkX2V4Y2VwdGlvbj1SZXZlcnNlRW5naW5lZXJERExFeGNlcHRp b24oCisgICAgICAgICAgICAgICAgICdUYWJsZSBub3QgZm91bmQnKSwKKyAgICAgICAgICkpLAor ICAgICAgICAoJyN0YWJsZV9pbmZvcm1hdGlvbiBXaGVuIHJldHJpZXZpbmcgZ2VuZXJpYyBpbmZv cm1hdGlvbiAnCisgICAgICAgICAnYWJvdXQgYSBXZWIgdGFibGUsICcKKyAgICAgICAgICdpdCBy ZXR1cm5zIHRoZSB0YWJsZSBpbmZvcm1hdGlvbicsCisgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgIHRlc3RfdHlwZT0ndGFibGVfaW5mb3JtYXRpb24nLAorICAgICAgICAgICAgIGZ1bmN0aW9u X3BhcmFtZXRlcnM9eyd0YWJsZV9vaWQnOiAxMjN9LAorICAgICAgICAgICAgIGV4ZWN1dGVfMmRh cnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qocm93cz1bCisgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgICd1cmlsb2NhdGlvbic6ICd7aHR0cDovL3NvbWV1cmwuY29t fScsCisgICAgICAgICAgICAgICAgICAgICAnZXhlY2xvY2F0aW9uJzogWydBTExfU0VHTUVOVFMn XSwKKyAgICAgICAgICAgICAgICAgICAgICdmbXR0eXBlJzogJ2EnLAorICAgICAgICAgICAgICAg ICAgICAgJ2ZtdG9wdHMnOiAnZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAg ICAgICAgICAgICAgICAgJ2NvbW1hbmQnOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgJ3Jl amVjdGxpbWl0JzogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICdyZWplY3RsaW1pdHR5cGUn OiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgJ2VycnRibG5hbWUnOiBOb25lLAorICAgICAg ICAgICAgICAgICAgICAgJ2Vycm9ydG9maWxlJzogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAg ICdwZ19lbmNvZGluZ190b19jaGFyJzogJ1VURjgnLAorICAgICAgICAgICAgICAgICAgICAgJ3dy aXRhYmxlJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAnb3B0aW9ucyc6IE5vbmUsCisg ICAgICAgICAgICAgICAgICAgICAnZGlzdHJpYnV0aW9uJzogTm9uZSwKKyAgICAgICAgICAgICAg ICAgICAgICduYW1lJzogJ3NvbWVfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgJ25hbWVz cGFjZSc6ICdwdWJsaWMnCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBdKSksCisK KyAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCisg ICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy8n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9y bWF0aW9uLnNxbCcsCisgICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKKyAgICAgICAgICAg ICApLAorICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD17CisgICAgICAgICAgICAgICAgICd1 cmlzJzogWydodHRwOi8vc29tZXVybC5jb20nXSwKKyAgICAgICAgICAgICAgICAgJ2lzV2ViJzog VHJ1ZSwKKyAgICAgICAgICAgICAgICAgJ2V4ZWN1dGlvbkxvY2F0aW9uJzogZGljdCh0eXBlPSdh bGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKKyAgICAgICAgICAgICAgICAgJ2Zvcm1hdFR5cGUn OiAnYXZybycsCisgICAgICAgICAgICAgICAgICdmb3JtYXRPcHRpb25zJzogJ2RlbGltaXRlciA9 ICQkLCQkLGVzY2FwZSA9ICQkIiQkLCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbnVsbCA9ICQkJCQscXVvdGUgPSAkJCIkJCcsCisgICAgICAgICAgICAgICAgICdjb21tYW5k JzogTm9uZSwKKyAgICAgICAgICAgICAgICAgJ3JlamVjdExpbWl0JzogTm9uZSwKKyAgICAgICAg ICAgICAgICAgJ3JlamVjdExpbWl0VHlwZSc6IE5vbmUsCisgICAgICAgICAgICAgICAgICdlcnJv clRhYmxlTmFtZSc6IE5vbmUsCisgICAgICAgICAgICAgICAgICdlcnJvVG9GaWxlJzogTm9uZSwK KyAgICAgICAgICAgICAgICAgJ3BnRW5jb2RpbmdUb0NoYXInOiAnVVRGOCcsCisgICAgICAgICAg ICAgICAgICd3cml0YWJsZSc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAnb3B0aW9ucyc6IE5v bmUsCisgICAgICAgICAgICAgICAgICdkaXN0cmlidXRpb24nOiBOb25lLAorICAgICAgICAgICAg ICAgICAnbmFtZSc6ICdzb21lX3RhYmxlJywKKyAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZSc6 ICdwdWJsaWMnCisgICAgICAgICAgICAgfSwKKyAgICAgICAgICkpLAorICAgIF0KKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihUZXN0UmV2 ZXJzZUVuZ2luZWVyRERMLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAg IHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKKyAgICAgICAgc2VsZi5zdWJqZWN0ID0gTm9uZQorICAg ICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTm9uZQorCisgICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2soKQor ICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2lj TW9jaygpKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleGVjdXRlXzJkYXJyYXlfcmV0dXJu X3ZhbHVlJyk6CisgICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5LnJl dHVybl92YWx1ZSA9IFwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGVfMmRhcnJheV9yZXR1 cm5fdmFsdWUKKyAgICAgICAgc2VsZi5zdWJqZWN0ID0gUmV2ZXJzZUVuZ2luZWVyRERMKAorICAg ICAgICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMvJywKKyAgICAgICAgICAgIHNlbGYucmVuZGVyX3Rl bXBsYXRlX21vY2ssCisgICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24sCisgICAgICAgICAgICAx LCAyLCAzKQorICAgICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAnZmluZF9jb2x1bW5zJzoKKyAg ICAgICAgICAgIHNlbGYuX190ZXN0X2ZpbmRfY29sdW1ucygpCisgICAgICAgIGVsaWYgc2VsZi50 ZXN0X3R5cGUgPT0gJ3RhYmxlX2luZm9ybWF0aW9uJzoKKyAgICAgICAgICAgIHNlbGYuX190ZXN0 X3RhYmxlX2luZm9ybWF0aW9uKCkKKyAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAnZXhl Y3V0ZSc6CisgICAgICAgICAgICBzZWxmLl9fdGVzdF9leGVjdXRlKCkKKworICAgIGRlZiBfX3Rl c3RfZmluZF9jb2x1bW5zKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3Rl ZF9leGNlcHRpb24nKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLnN1 YmplY3QuZmluZF9jb2x1bW5zKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQorICAgICAgICAg ICAgICAgIHNlbGYuZmFpbCgnRXhjZXB0aW9uIG5vdCByYWlzZScpCisgICAgICAgICAgICBleGNl cHQgUmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihleGNlcHRpb24pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlbGYuZXhwZWN0ZWRfZXhjZXB0aW9uKSkKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc3ViamVjdC5maW5kX2NvbHVtbnMoKipzZWxm LmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu ZXhwZWN0ZWRfcmVzdWx0LCByZXN1bHQpCisKKyAgICAgICAgc2VsZi5yZW5kZXJfdGVtcGxhdGVf bW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAqKnNlbGYuZXhwZWN0X3JlbmRl cl90ZW1wbGF0ZV9jYWxsZWRfd2l0aAorICAgICAgICApCisKKyAgICBkZWYgX190ZXN0X3RhYmxl X2luZm9ybWF0aW9uKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9l eGNlcHRpb24nKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLnN1Ympl Y3QudGFibGVfaW5mb3JtYXRpb24oKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisgICAgICAg ICAgICAgICAgc2VsZi5mYWlsKCdFeGNlcHRpb24gbm90IHJhaXNlJykKKyAgICAgICAgICAgIGV4 Y2VwdCBSZXZlcnNlRW5naW5lZXJERExFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGV4Y2VwdGlvbiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2VsZi5leHBlY3RlZF9leGNlcHRpb24pKQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5zdWJqZWN0LnRhYmxlX2luZm9ybWF0aW9u KCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChzZWxmLmV4cGVjdGVkX3Jlc3VsdCwgcmVzdWx0KQorCisgICAgICAgIHNlbGYucmVuZGVyX3Rl bXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgKipzZWxmLmV4cGVj dF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGgKKyAgICAgICAgKQorCisgICAgZGVmIF9fdGVz dF9leGVjdXRlKHNlbGYpOgorICAgICAgICBzZWxmLnN1YmplY3QuZmluZF9jb2x1bW5zID0gTWFn aWNNb2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPXNlbGYuZmluZF9jb2x1bW5zX3JldHVy bl92YWx1ZSkKKyAgICAgICAgc2VsZi5zdWJqZWN0LnRhYmxlX2luZm9ybWF0aW9uID0gTWFnaWNN b2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPXNlbGYudGFibGVfaW5mb3JtYXRpb25fcmV0 dXJuX3ZhbHVlKQorCisgICAgICAgIHNlbGYuc3ViamVjdC5leGVjdXRlKCoqc2VsZi5mdW5jdGlv bl9wYXJhbWV0ZXJzKQorCisgICAgICAgIHNlbGYuc3ViamVjdC5maW5kX2NvbHVtbnMuYXNzZXJ0 X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgc2VsZi5leHBlY3RfZmluZF9jb2x1bW5zX2NhbGxl ZF93aXRoKQorICAgICAgICBzZWxmLnN1YmplY3QudGFibGVfaW5mb3JtYXRpb24uYXNzZXJ0X2Nh bGxlZF93aXRoKAorICAgICAgICAgICAgc2VsZi5leHBlY3RfdGFibGVfaW5mb3JtYXRpb25fY2Fs bGVkX3dpdGgpCisgICAgICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxl ZF93aXRoKAorICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVk X3dpdGgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3Rfc3FsX3RlbXBsYXRlX2Ny ZWF0ZV9pbnRlZ3JhdGlvbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9zcWxfdGVtcGxhdGVf Y3JlYXRlX2ludGVncmF0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw Li5lNjlkZTI5YgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvZ3Bk Yl81LjBfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC9ncGRi XzUuMF9wbHVzL25vZGVzLnNxbAppbmRleCBiMGJjODQyMy4uM2U4NzdiZmMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL2dwZGJfNS4wX3BsdXMvbm9kZXMuc3FsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL2dwZGJfNS4wX3BsdXMvbm9kZXMuc3Fs CkBAIC00LDYgKzQsNyBAQCBTRUxFQ1QgcmVsLm9pZCwgcmVsLnJlbG5hbWUgQVMgbmFtZSwKIEZS T00gcGdfY2xhc3MgcmVsCiAgICAgV0hFUkUgcmVsLnJlbGtpbmQgSU4gKCdyJywncycsJ3QnKSBB TkQgcmVsLnJlbG5hbWVzcGFjZSA9IHt7IHNjaWQgfX06Om9pZAogICAgICAgQU5EIHJlbC5yZWxu YW1lIE5PVCBJTiAoU0VMRUNUIHBhcnRpdGlvbnRhYmxlbmFtZSBGUk9NIHBnX3BhcnRpdGlvbnMp CisgICAgICBBTkQgcmVsLm9pZCBOT1QgSU4gKFNFTEVDVCByZWxvaWQgZnJvbSBwZ19leHR0YWJs ZSkKICAgICB7JSBpZiB0aWQgJX0KICAgICAgIEFORCByZWwub2lkID0ge3t0aWR9fTo6T0lECiAg ICAgeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvYnJv d3Nlci5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvYnJvd3Nlci5qcwppbmRleCBkMzlj ZTIyYi4uM2ZjYzY5ZDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvYnJv d3Nlci5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvYnVuZGxlL2Jyb3dzZXIuanMKQEAgLTEs NSArMSw2IEBACiBkZWZpbmUoJ2J1bmRsZWRfYnJvd3NlcicsWwogICAncGdhZG1pbi5icm93c2Vy JywKKyAgJ3NvdXJjZXMvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4 dGVybmFsX3RhYmxlcy9pbmRleCcsCiBdLCBmdW5jdGlvbihwZ0Jyb3dzZXIpIHsKICAgcGdCcm93 c2VyLmluaXQoKTsKIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvZXh0ZXJu YWxfdGFibGVzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvZXh0ZXJuYWxfdGFibGVzLmpzCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5mNTY0ZTE2OQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL2V4dGVybmFsX3RhYmxlcy5qcwpAQCAtMCwwICsx LDg4IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8v IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K Ky8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCisKK2V4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplKHBnQnJvd3NlciwgZ2V0 dGV4dCkgeworICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1leHRlcm5hbF90YWJsZSddKSB7 CisgICAgcGdCcm93c2VyLk5vZGVzWydjb2xsLWV4dGVybmFsX3RhYmxlJ10gPQorICAgICAgcGdC cm93c2VyLkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ2V4dGVybmFsX3RhYmxl JywKKyAgICAgICAgbGFiZWw6IGdldHRleHQoJ0V4dGVybmFsIFRhYmxlcycpLAorICAgICAgICB0 eXBlOiAnY29sbC1leHRlcm5hbF90YWJsZXMnLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAn ZmR3b3duZXInLCAnZGVzY3JpcHRpb24nXSwKKyAgICAgIH0pOworICB9CisKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2V4dGVybmFsX3RhYmxlJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ2V4 dGVybmFsX3RhYmxlJ10gPSBwZ0Jyb3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5 cGU6ICdkYXRhYmFzZScsCisgICAgICB0eXBlOiAnZXh0ZXJuYWxfdGFibGUnLAorICAgICAgbGFi ZWw6IGdldHRleHQoJ0V4dGVybmFsIFRhYmxlJyksCisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdj b2xsLWV4dGVybmFsX3RhYmxlJywKKyAgICAgIGhhc1NRTDogdHJ1ZSwKKyAgICAgIG1vZGVsOiBw Z0Jyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogeworICAgICAg ICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICB0eXBlOiB1bmRlZmluZWQsCisgICAgICAg ICAgZW5jb2Rpbmc6IHVuZGVmaW5lZCwKKyAgICAgICAgICBmb3JtYXRfdHlwZTogdW5kZWZpbmVk LAorICAgICAgICAgIGZvcm1hdF9vcHRpb246IHVuZGVmaW5lZCwKKyAgICAgICAgICBleHRlcm5h bF9vcHRpb25zOiB1bmRlZmluZWQsCisgICAgICAgICAgY29tbWFuZDogdW5kZWZpbmVkLAorICAg ICAgICAgIGV4ZWN1dGVfb246IHVuZGVmaW5lZCwKKyAgICAgICAgfSwKKyAgICAgICAgc2NoZW1h OiBbCisgICAgICAgICAgeworICAgICAgICAgICAgaWQ6ICduYW1lJywKKyAgICAgICAgICAgIGxh YmVsOiBnZXR0ZXh0KCdOYW1lJyksCisgICAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAgICAg ICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICB9LCB7CisgICAgICAgICAgICBp ZDogJ3R5cGUnLAorICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1R5cGUnKSwKKyAgICAgICAg ICAgIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddLAorICAg ICAgICAgIH0sIHsKKyAgICAgICAgICAgIGlkOiAnZW5jb2RpbmcnLAorICAgICAgICAgICAgbGFi ZWw6IGdldHRleHQoJ0VuY29kaW5nJyksCisgICAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAg ICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICB9LCB7CisgICAgICAgICAg ICBpZDogJ2Zvcm1hdF90eXBlJywKKyAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGb3JtYXQg VHlwZScpLAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgICAgICAgbW9kZTogWydw cm9wZXJ0aWVzJ10sCisgICAgICAgICAgfSwgeworICAgICAgICAgICAgaWQ6ICdmb3JtYXRfb3B0 aW9uJywKKyAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGb3JtYXQgT3B0aW9ub3MnKSwKKyAg ICAgICAgICAgIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcydd LAorICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgIGlkOiAnZXh0ZXJuYWxfb3B0aW9ucycsCisg ICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRXh0ZXJuYWwgT3B0aW9ucycpLAorICAgICAgICAg ICAgdHlwZTogJ3RleHQnLAorICAgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAg ICAgICAgfSwgeworICAgICAgICAgICAgaWQ6ICdjb21tYW5kJywKKyAgICAgICAgICAgIGxhYmVs OiBnZXR0ZXh0KCdDb21tYW5kJyksCisgICAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAgICAg ICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICB9LCB7CisgICAgICAgICAgICBp ZDogJ2V4ZWN1dGVfb24nLAorICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0V4ZWN1dGUgb24n KSwKKyAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICAgIG1vZGU6IFsncHJvcGVy dGllcyddLAorICAgICAgICAgIH0sCisgICAgICAgIF0sCisgICAgICB9KSwKKyAgICB9KTsKKyAg fQorCisgIHJldHVybiBwZ0Jyb3dzZXI7Cit9CisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxf dGFibGVzL2luZGV4LmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvaW5kZXguanMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjU0Y2QxNGJjCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9leHRlcm5hbF90YWJsZXMvaW5kZXguanMKQEAgLTAsMCArMSwxOCBAQAorLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8K Ky8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitp bXBvcnQgcGdCcm93c2VyIGZyb20gJ3RvcC9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyJzsKK2lt cG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQge2luaXRpYWxpemV9 IGZyb20gJy4vZXh0ZXJuYWxfdGFibGVzJzsKKworbGV0IHBnQnJvd3Nlck91dCA9IGluaXRpYWxp emUocGdCcm93c2VyLCBnZXR0ZXh0KTsKKworbW9kdWxlLmV4cG9ydHMgPSB7CisgIHBnQnJvd3Nl cjogcGdCcm93c2VyT3V0LAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5w eQppbmRleCAwZjNjOTA5OS4uY2MwYWE0Y2YgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv X19pbml0X18ucHkKQEAgLTQzOCw2ICs0MzgsNyBAQCBkZWYgcG9sbCh0cmFuc19pZCk6CiAgICAg ICAgICAgICAgICAgICAgIGNvbm4uZXhlY3V0ZV92b2lkKCJST0xMQkFDSzsiKQogCiAgICAgICAg ICAgICBzdCwgcmVzdWx0ID0gY29ubi5hc3luY19mZXRjaG1hbnlfMmRhcnJheShPTl9ERU1BTkRf UkVDT1JEX0NPVU5UKQorCiAgICAgICAgICAgICBpZiBzdDoKICAgICAgICAgICAgICAgICBpZiAn cHJpbWFyeV9rZXlzJyBpbiBzZXNzaW9uX29iajoKICAgICAgICAgICAgICAgICAgICAgcHJpbWFy eV9rZXlzID0gc2Vzc2lvbl9vYmpbJ3ByaW1hcnlfa2V5cyddCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9leHRlcm5hbF90YWJsZXMvZXh0ZXJuYWxfdGFibGVzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lv bi9qYXZhc2NyaXB0L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvZXh0ZXJuYWxfdGFibGVzX3NwZWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAuLmQ5NWU1MWE1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0 ZXJuYWxfdGFibGVzL2V4dGVybmFsX3RhYmxlc19zcGVjLmpzCkBAIC0wLDAgKzEsNTYgQEAKKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KKworaW1wb3J0IHtpbml0aWFsaXplfSBmcm9tICdzb3VyY2VzL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvZXh0ZXJuYWxfdGFibGVzJzsK KworZGVzY3JpYmUoJ3doZW4gZXh0ZXJuYWwgdGFibGVzIGlzIGxvYWRlZCcsICgpID0+IHsKKyAg bGV0IHBnQnJvd3NlcjsKKyAgbGV0IGdldHRleHQ7CisgIGxldCByZXN1bHQ7CisgIGJlZm9yZUVh Y2goKCkgPT4geworICAgIHBnQnJvd3NlciA9IHsKKyAgICAgIE5vZGVzOiB7fSwKKyAgICB9Owor ICAgIHBnQnJvd3Nlci5Db2xsZWN0aW9uID0gamFzbWluZS5jcmVhdGVTcHlPYmooJ0NvbGxlY3Rp b24nLCBbJ2V4dGVuZCddKTsKKyAgICBwZ0Jyb3dzZXIuTm9kZSA9IGphc21pbmUuY3JlYXRlU3B5 T2JqKCdOb2RlJywgWydleHRlbmQnLCAnTW9kZWwnXSk7CisgICAgcGdCcm93c2VyLk5vZGUuTW9k ZWwgPSBqYXNtaW5lLmNyZWF0ZVNweU9iaignTW9kZWwnLCBbJ2V4dGVuZCddKTsKKyAgICBwZ0Jy b3dzZXIuQ29sbGVjdGlvbi5leHRlbmQuYW5kLnJldHVyblZhbHVlKCdleHRlbmRlZCBvYmplY3Qn KTsKKyAgICBwZ0Jyb3dzZXIuTm9kZS5leHRlbmQuYW5kLnJldHVyblZhbHVlKCdleHRlbmRlZCBu b2RlIG9iamVjdCcpOworICAgIGdldHRleHQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0dGV4dCcp LmFuZC5jYWxsRmFrZSgodGV4dCkgPT4gdGV4dCk7CisgIH0pOworCisgIGRlc2NyaWJlKCd3aGVu IGV4dGVybmFsIHRhYmxlcyBpcyBhbHJlYWR5IGRlZmluZWQnLCAoKSA9PiB7CisgICAgYmVmb3Jl RWFjaCgoKSA9PiB7CisgICAgICBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtZXh0ZXJuYWxfdGFibGUn XSA9IHt9OworICAgICAgcmVzdWx0ID0gaW5pdGlhbGl6ZShwZ0Jyb3dzZXIsIGdldHRleHQpOwor ICAgIH0pOworCisgICAgaXQoJ2RvZXMgbm90IHJlaW5pdGlhbGl6ZSBpdCcsICgpID0+IHsKKyAg ICAgIGV4cGVjdChwZ0Jyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQpLm5vdC50b0hhdmVCZWVuQ2Fs bGVkKCk7CisgICAgfSk7CisKKyAgICBpdCgncmV0dXJucyB0aGUgbm90IHVwZGF0ZWQgdmVyc2lv biBvZiBwZ0Jyb3dzZXInLCAoKSA9PiB7CisgICAgICBleHBlY3QocmVzdWx0KS50b0JlKHBnQnJv d3Nlcik7CisgICAgfSk7CisgIH0pOworCisgIGRlc2NyaWJlKCd3aGVuIGV4dGVybmFsIHRhYmxl cyBpcyBub3QgZGVmaW5lZCcsICgpID0+IHsKKyAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAg IHJlc3VsdCA9IGluaXRpYWxpemUocGdCcm93c2VyLCBnZXR0ZXh0KTsKKyAgICB9KTsKKworICAg IGl0KCdpbml0aWFsaXplcyAiY29sbC1leHRlcm5hbF90YWJsZXMiJywgKCkgPT4geworICAgICAg ZXhwZWN0KHBnQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCkudG9IYXZlQmVlbkNhbGxlZCgpOwor ICAgIH0pOworCisgICAgaXQoJ3JldHVybnMgdGhlIHVwZGF0ZWQgdmVyc2lvbiBvZiBwZ0Jyb3dz ZXInLCAoKSA9PiB7CisgICAgICBleHBlY3QocmVzdWx0Lk5vZGVzWydjb2xsLWV4dGVybmFsX3Rh YmxlJ10pLm5vdC50b0JlVW5kZWZpbmVkKCk7CisgICAgfSk7CisgIH0pOworfSk7CmRpZmYgLS1n aXQgYS93ZWIvd2VicGFjay5jb25maWcuanMgYi93ZWIvd2VicGFjay5jb25maWcuanMKaW5kZXgg ODRmODQ2NmUuLjRkYmYxMzU3IDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay5jb25maWcuanMKKysr IGIvd2ViL3dlYnBhY2suY29uZmlnLmpzCkBAIC0xNDYsMTIgKzE0NiwyMSBAQCBtb2R1bGUuZXhw b3J0cyA9IHsKICAgICAgICAgICBwcmVzZXRzOiBbJ2VzMjAxNScsICdyZWFjdCddLAogICAgICAg ICB9LAogICAgICAgfSwKKyAgICB9LCB7CisgICAgICB0ZXN0OiAvZXh0ZXJuYWxfdGFibGUuKlwu anMvLAorICAgICAgdXNlOiB7CisgICAgICAgIGxvYWRlcjogJ2JhYmVsLWxvYWRlcicsCisgICAg ICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICBwcmVzZXRzOiBbJ2VzMjAxNSddLAorICAgICAgICB9 LAorICAgICAgfSwKICAgICB9LCB7CiAgICAgICAvLyBUcmFuc2Zvcm1zIHRoZSBjb2RlIGluIGEg d2F5IHRoYXQgaXQgd29ya3MgaW4gdGhlIHdlYnBhY2sgZW52aXJvbm1lbnQuCiAgICAgICAvLyBJ dCB1c2VzIGltcG9ydHMtbG9hZGVyIGludGVybmFsbHkgdG8gbG9hZCBkZXBlbmRlbmN5LiBJdHMK ICAgICAgIC8vIGNvbmZpZ3VyYXRpb24gaXMgc3BlY2lmaWVkIGluIHdlYnBhY2suc2hpbS5qcwog ICAgICAgLy8gUmVmOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zaGltLWxvYWRlcgog ICAgICAgdGVzdDogL1wuanMvLAorICAgICAgZXhjbHVkZTogWy9leHRlcm5hbF90YWJsZS9dLAog ICAgICAgbG9hZGVyOiAnc2hpbS1sb2FkZXInLAogICAgICAgcXVlcnk6IHdlYnBhY2tTaGltQ29u ZmlnLAogICAgICAgaW5jbHVkZTogcGF0aC5qb2luKF9fZGlybmFtZSwgJy9wZ2FkbWluL2Jyb3dz ZXInKSwKZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNrLnNoaW0uanMgYi93ZWIvd2VicGFjay5zaGlt LmpzCmluZGV4IDU4YjI2MDQyLi4xYjY0NDJhNiAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suc2hp bS5qcworKysgYi93ZWIvd2VicGFjay5zaGltLmpzCkBAIC0xMjAsNiArMTIwLDcgQEAgdmFyIHdl YnBhY2tTaGltQ29uZmlnID0gewogICAvLyBNYXAgbW9kdWxlIGlkIHRvIGZpbGUgcGF0aCB1c2Vk IGluICdkZWZpbmUoWydiYXNldXJsJywgJ21pc2MnXSkuIEl0IGlzCiAgIC8vIHVzZWQgYnkgd2Vi cGFjayB3aGlsZSBjcmVhdGluZyBidW5kbGUKICAgcmVzb2x2ZUFsaWFzOiB7CisgICAgJ3RvcCc6 IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4nKSwKICAgICAnYnVuZGxlZF9jb2RlbWly cm9yJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMvYnVuZGxlL2NvZGVt aXJyb3InKSwKICAgICAnYnVuZGxlZF9icm93c2VyJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9zdGF0aWMvYnVuZGxlL2Jyb3dzZXInKSwKICAgICAnc291cmNlcyc6IHBhdGguam9p bihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vc3RhdGljL2pzJyksCkBAIC0yMTMsNiArMjE0LDggQEAg dmFyIHdlYnBhY2tTaGltQ29uZmlnID0gewogICAgICdwZ2FkbWluLm5vZGUuY2F0YWxvZ19vYmpl Y3QnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0cy9zdGF0aWMvanMvY2F0 YWxvZ19vYmplY3QnKSwKICAgICAncGdhZG1pbi5kYXNoYm9hcmQnOiBwYXRoLmpvaW4oX19kaXJu YW1lLCAnLi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMvanMvZGFzaGJvYXJkJyksCiAgICAgJ3Bn YWRtaW4ubm9kZS5mb3JlaWduX2RhdGFfd3JhcHBlcic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcu L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25f ZGF0YV93cmFwcGVycy9zdGF0aWMvanMvZm9yZWlnbl9kYXRhX3dyYXBwZXInKSwKKyAgICAncGdh ZG1pbi5ub2RlLmV4dGVybmFsX3RhYmxlJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1p bi9zdGF0aWMvanMvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVy bmFsX3RhYmxlcy9pbmRleCcpLAorICAgICdwZ2FkbWluLm5vZGUuZXh0ZXJuYWxfdGFibGVzJzog cGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMvanMvYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy9pbmRleCcpLAogICAgICdw Z2FkbWluLm5vZGUuZm9yZWlnbl9rZXknOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9mb3JlaWduX2tleS9zdGF0aWMvanMvZm9yZWlnbl9rZXknKSwKICAgICAncGdh ZG1pbi5icm93c2VyLnNlcnZlci52YXJpYWJsZSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3ZhcmlhYmxlJyks CiAgICAgJ3BnYWRtaW4udG9vbHMuZ3JhbnRfd2l6YXJkJzogcGF0aC5qb2luKF9fZGlybmFtZSwg Jy4vcGdhZG1pbi90b29scy9ncmFudF93aXphcmQvc3RhdGljL2pzL2dyYW50X3dpemFyZCcpLAo= --94eb2c0b9ace21dace05667097c8--