Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apYV6-0008Uu-8s for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 09:51:20 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1apYV5-0000pL-Re for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 09:51:19 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1apYUn-0000aU-V4 for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 09:51:02 +0000 Received: from mail-oi0-x235.google.com ([2607:f8b0:4003:c06::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1apYUh-0000ac-NH for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 09:51:01 +0000 Received: by mail-oi0-x235.google.com with SMTP id s79so201095953oie.1 for ; Mon, 11 Apr 2016 02:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=rrUoToE6r4wPpfNhxlMwHTr4Ely3zC+i5uduQOVG+do=; b=ERbUMyjaQPR0yEilRcB/OVtiGL2JIq3vj2c0zUPpIcrPM53mm0Obbw6DEQ9lxEZcHu rinS48202mAgwlkCMxEeFw9pBLxT6z9B0rG+tSwV88sAK9cqxsqhmTZ5S9REi5Wo/0VG eQPrv1zuxCl+XdOfkKofZ0mpYyzPFPxE+rDG/8yD8hfqsvhFBJGE9w4weZPkK7Pt5CaQ JtGAl9XNb3JPbQrsyeq6gXYvJ6kbjSUJya+fPrTBt1mKyfANhus/MBYQeeSwPJrYiH+s rntYv1HVYcOMY9uKVMXy+wA2l10n1Lz+3vFiZUb/+nCWmOIwHWpgxUj421EZsRWlzONS 6KzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=rrUoToE6r4wPpfNhxlMwHTr4Ely3zC+i5uduQOVG+do=; b=BRqJHeIUImopZZKCIpCCFgcR3goPFPJf++9oLk/b21tUVLqL+RiU+zsbUzr75tNI/K SFPEGQEPecPkWgxXRz8pHxZ+5Tdba4rXFPAI4DmaAchgzTyxP5wJUFcYTQPpdWPHNzcX PbaeXT3ZA75scbXpsxTMG2Z6FhtMgHHfa5B8wiynnQH4KPxRDCMlM/+rKw495B/TcaHt ae94/ld9k3FUEg/ZsFE4gdf9bKU25EaqxqNEFwV9e1c833N71CPuOU3qqaTb+w9R3d3q w/5uR7esE0SAfls/XmJVBuHFaV82lvIkZ414tLSS5CDPawAXa4lL0yKGRv2T8jzrasdd hocw== X-Gm-Message-State: AOPr4FU9hmoV8jnL2qLao6yVvONgEo/E3uw51/HoiTbFxvUWw01ubeSiBBISv5JkFxzHjnFUybPAqwj5xEP8Vo7W MIME-Version: 1.0 X-Received: by 10.157.52.70 with SMTP id v64mr102043otb.72.1460368253467; Mon, 11 Apr 2016 02:50:53 -0700 (PDT) Received: by 10.157.54.216 with HTTP; Mon, 11 Apr 2016 02:50:53 -0700 (PDT) Date: Mon, 11 Apr 2016 15:20:53 +0530 Message-ID: Subject: Patch for exclusion constraint [pgadmin4] From: Harshal Dhumal To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114153d6fd95d50530327a8b X-Pg-Spam-Score: -0.9 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114153d6fd95d50530327a8b Content-Type: multipart/alternative; boundary=001a114153d6fd95d00530327a89 --001a114153d6fd95d00530327a89 Content-Type: text/plain; charset=UTF-8 Hi, PAF patch for exclusion constraint. Note: This patch has dependency on Table, Column node and Index constraint (I'll be sending patch for index constraint immediately after this). -- *Harshal Dhumal* *Software Engineer * EenterpriseDB --001a114153d6fd95d00530327a89 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PAF patch for exclusion constraint.<= br>

Note: This patch has dependency on Table, Column node and = Index constraint (I'll be sending patch for index constraint immediatel= y after this).

--=C2=A0
Harshal Dhum= al
Software Engineer=C2=A0


=

--001a114153d6fd95d00530327a89-- --001a114153d6fd95d50530327a8b Content-Type: text/x-patch; charset=US-ASCII; name="exclusion_constraint_11_April_V1.patch" Content-Disposition: attachment; filename="exclusion_constraint_11_April_V1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imvtdrnr0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9leGNsdXNpb25fY29uc3RyYWludC9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWlu dC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5kNmExNzRmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsOTE4IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIEV4Y2x1 c2lvbiBjb25zdHJhaW50IE5vZGUiIiIKKworaW1wb3J0IGpzb24KK2Zyb20g Zmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwg cmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0 IGdldHRleHQgYXMgXworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0 IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMg YWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBn YWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citm cm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3Jl cXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIK K2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcyBhcyB0YWJsZQorZnJvbSBmdW5j dG9vbHMgaW1wb3J0IHdyYXBzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLmNv bnN0cmFpbnRzLnR5cGUgXAorICAgIGltcG9ydCBDb25zdHJhaW50UmVnaXN0 cnksIENvbnN0cmFpbnRUeXBlTW9kdWxlCisKKworY2xhc3MgRXhjbHVzaW9u Q29uc3RyYWludE1vZHVsZShDb25zdHJhaW50VHlwZU1vZHVsZSk6CisgICAg IiIiCisgICAgY2xhc3MgRm9yZWlnbktleUNvbnN0cmFpbnRNb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAgICAgQSBtb2R1bGUgY2xhc3Mg Zm9yIEV4Y2x1c2lvbiBjb25zdHJhaW50IG5vZGUgZGVyaXZlZCBmcm9tIENv bnN0cmFpbnRUeXBlTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0t LS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAt IE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIEZvcmVpZ25LZXlD b25zdHJhaW50TW9kdWxlIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAg KiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0gTWV0aG9kIGlz IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2Rl LgorCisgICAgKiBub2RlX2lub2RlKCkKKyAgICAgIC0gTWV0aG9kIGlzIG92 ZXJyaWRkZW4gZnJvbSBpdHMgYmFzZSBjbGFzcyB0byBtYWtlIHRoZSBub2Rl IGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAgICAg LSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBsYW5ndWFnZSwgd2hlbiBh bnkgb2YgdGhlIGRhdGFiYXNlIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6 ZWQuCisgICAgIiIiCisKKyAgICBOT0RFX1RZUEUgPSAnZXhjbHVzaW9uX2Nv bnN0cmFpbnQnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IF8oIkZvcmVpZ24g S2V5cyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIEZvcmVpZ25LZXlDb25zdHJhaW50TW9kdWxlIGFu ZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAg ICAgKmFyZ3M6CisgICAgICAgICAgKiprd2FyZ3M6CisKKyAgICAgICAgUmV0 dXJuczoKKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5taW5fdmVyID0g Tm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHN1 cGVyKEV4Y2x1c2lvbkNvbnN0cmFpbnRNb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKKyAgICAgICAgIiIi CisgICAgICAgIHBhc3MKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2Rl X2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgT3ZlcnJpZGUg dGhpcyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBub2RlIGEgbGVhZiBub2RlLgor CisgICAgICAgIFJldHVybnM6IEZhbHNlIGFzIHRoaXMgaXMgdGhlIGxlYWYg bm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBl eGNsdXNpb25fY29uc3RyYWludCwgd2hlbiBhbnkgb2YgdGhlIHRhYmxlIG5v ZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisKKyAgICAgICAgUmV0dXJu czogbm9kZSB0eXBlIG9mIHRoZSBzZXJ2ZXIgbW9kdWxlLgorICAgICAgICAi IiIKKyAgICAgICAgcmV0dXJuIHRhYmxlLlRhYmxlTW9kdWxlLk5PREVfVFlQ RQorCitibHVlcHJpbnQgPSBFeGNsdXNpb25Db25zdHJhaW50TW9kdWxlKF9f bmFtZV9fKQorCisKK2NsYXNzIEV4Y2x1c2lvbkNvbnN0cmFpbnRWaWV3KFBH Q2hpbGROb2RlVmlldyk6CisgICAgIiIiCisgICAgY2xhc3MgRXhjbHVzaW9u Q29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEg dmlldyBjbGFzcyBmb3IgRXhjbHVzaW9uIGNvbnN0cmFpbnQgbm9kZSBkZXJp dmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LiBUaGlzIGNsYXNzIGlzCisgICAg ICAgIHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8g dmlldyBsaWtlIGNyZWF0aW5nLCB1cGRhdGluZyBFeGNsdXNpb24gY29uc3Ry YWludAorICAgICAgICBub2RlLCBzaG93aW5nIHByb3BlcnRpZXMsIHNob3dp bmcgc3FsIGluIHNxbCBwYW5lLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0t LS0tCisgICAgKiBfX2luaXRfXygqKmt3YXJncykKKyAgICAgIC0gTWV0aG9k IGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRm9yZWlnbktleUNvbnN0cmFp bnRWaWV3IGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9kdWxlX2pz KCkKKyAgICAgIC0gVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBqYXZhc2Ny aXB0KSBleGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3ZlcnJpZGUg dGhpcyBwcm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMKKworICAgICogY2hl Y2tfcHJlY29uZGl0aW9uKCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxs IGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAg ICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcs IGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4g JiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorCisgICAgKiBl bmRfdHJhbnNhY3Rpb24oKQorICAgICAgLSBUbyBlbmQgYW55IGV4aXN0aW5n IGRhdGFiYXNlIHRyYW5zYWN0aW9uLgorCisgICAgKiBsaXN0KCkKKyAgICAg IC0gVGhpcyBmdW5jdGlvbiByZXR1cm5zIEV4Y2x1c2lvbiBjb25zdHJhaW50 IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24gYXMgaHR0 cCByZXNwb25zZS4KKworICAgICogZ2V0X2xpc3QoKQorICAgICAgLSBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIGxhbmd1YWdlIG5v ZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24KKyAgICAgICAgYW5kIHJldHVy biBsaXN0IG9mIEV4Y2x1c2lvbiBjb25zdHJhaW50IG5vZGVzLgorCisgICAg KiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBjaGls ZCBub2RlIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24uCisgICAgICAgIEhlcmUg cmV0dXJuIGFsbCBFeGNsdXNpb24gY29uc3RyYWludCBub2RlIGFzIGh0dHAg cmVzcG9uc2UuCisKKyAgICAqIGdldF9ub2RlcygpCisgICAgICAtIHJldHVy bnMgYWxsIEV4Y2x1c2lvbiBjb25zdHJhaW50IG5vZGVzJyBsaXN0LgorCisg ICAgKiBwcm9wZXJ0aWVzKCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxs IHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIEV4Y2x1c2lv bi4KKworICAgICogdXBkYXRlKCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIEV4Y2x1c2lv bi4KKworICAgICogbXNxbCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2VsZWN0ZWQg RXhjbHVzaW9uLgorCisgICAgKiBnZXRfc3FsKCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEuCisK KyAgICAqIHNxbCgpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZSBzZWxl Y3RlZCBFeGNsdXNpb24uCisKKyAgICAqIGdldF9hY2Nlc3NfbWV0aG9kcygp OgorICAgICAgLSBSZXR1cm5zIGFjY2VzcyBtZXRob2RzIGZvciBleGNsdXNp b24gY29uc3RyYWludC4KKworICAgICogZ2V0X29wZXJfY2xhc3MoKToKKyAg ICAgIC0gUmV0dXJucyBvcGVyYXRvciBjbGFzc2VzIGZvciBzZWxlY3RlZCBh Y2Nlc3MgbWV0aG9kLgorCisgICAgKiBnZXRfb3BlcmF0b3IoKToKKyAgICAg IC0gUmV0dXJucyBvcGVyYXRvcnMgZm9yIHNlbGVjdGVkIGNvbHVtbi4KKwor ICAgICIiIgorCisgICAgbm9kZV90eXBlID0gJ2V4Y2x1c2lvbl9jb25zdHJh aW50JworCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAgICB7J3R5cGUn OiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnc2NpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICd0aWQnfQorICAgICAgICAgICAgXQorICAgIGlkcyA9IFt7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ2V4aWQnfQorICAgICAgICAgICAgXQor CisgICAgb3BlcmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWwor ICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAn ZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0 JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAg ICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAg ICAgJ2NoaWxkcmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAorICAgICAg ICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9 XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAg ICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwK KyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisg ICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVf anMnfV0sCisgICAgICAgICdnZXRfYWNjZXNzX21ldGhvZHMnOiBbe30sIHsn Z2V0JzogJ2dldF9hY2Nlc3NfbWV0aG9kcyd9XSwKKyAgICAgICAgJ2dldF9v cGVyX2NsYXNzJzogW3t9LCB7J2dldCc6ICdnZXRfb3Blcl9jbGFzcyd9XSwK KyAgICAgICAgJ2dldF9vcGVyYXRvcic6IFt7fSwgeydnZXQnOiAnZ2V0X29w ZXJhdG9yJ31dCisgICAgfSkKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmluZXMg KGlmIGphdmFzY3JpcHQpIGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAg ICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYy4K KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICAgICAgICAgImV4Y2x1c2lvbl9jb25zdHJhaW50L2pzL2V4Y2x1c2lvbl9j b25zdHJhaW50LmpzIiwKKyAgICAgICAgICAgICAgICAgICAgXz1fCisgICAg ICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgMjAwLCB7J0Nv bnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQorICAg ICAgICAgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24o Zik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg YmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAg ICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywg aXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29ubiAm IHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgICAgICIi IgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3Ms ICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwg aG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAg ICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIHNlbGYubWFu YWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rp b25fbWFuYWdlcigKKyAgICAgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisKKyAg ICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBl cnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25u LmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25k aXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNl cnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgc2VsZi50ZW1wbGF0 ZV9wYXRoID0gJ2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbCcKKyAgICAgICAg ICAgICMgV2UgbmVlZCBwYXJlbnQncyBuYW1lIGVnIHRhYmxlIG5hbWUgYW5k IHNjaGVtYSBuYW1lCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9wYXJlbnQu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp ZD1rd2FyZ3NbJ3RpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWEgPSByb3dbJ3NjaGVtYSddCisgICAgICAgICAgICAgICAgc2Vs Zi50YWJsZSA9IHJvd1sndGFibGUnXQorICAgICAgICAgICAgcmV0dXJuIGYo KmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisKKyAg ICBkZWYgZW5kX3RyYW5zYWN0aW9uKHNlbGYpOgorICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ2VuZC5zcWwnXSkpCisgICAgICAgICMgRW5k IHRyYW5zYWN0aW9uIGlmIGFueS4KKyAgICAgICAgc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKFNRTCkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQsIGV4aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIEV4Y2x1c2lvbiBjb25z dHJhaW50CisgICAgICAgIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24u CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAg ICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAgICBleGlkOiBFeGNsdXNp b24gY29uc3RyYWludCBJRAorCisgICAgICAgIFJldHVybnM6CisKKyAgICAg ICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJv cGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGlkPXRpZCwgZXhpZD1leGlkKQorCisgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAg ICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF9jb25zdHJhaW50X2Nv bHMuc3FsJ10pLAorICAgICAgICAgICAgICAgIGNpZD1leGlkLAorICAgICAg ICAgICAgICAgIGNvbGNudD1yZXN1bHRbJ2luZG5hdHRzJ10pCisgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3Fs KQorCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICBjb2x1bW5zID0gW10KKyAgICAgICAgICAgIGZv ciByb3cgaW4gcmVzWydyb3dzJ106CisgICAgICAgICAgICAgICAgaWYgcm93 WydvcHRpb25zJ10gJiAxOgorICAgICAgICAgICAgICAgICAgICBvcmRlciA9 IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIG51bGxzX29yZGVyID0gVHJ1 ZSBpZiAocm93WydvcHRpb25zJ10gJiAyKSBlbHNlIEZhbHNlCisgICAgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBU cnVlCisgICAgICAgICAgICAgICAgICAgIG51bGxzX29yZGVyID0gVHJ1ZSBp ZiAocm93WydvcHRpb25zJ10gJiAyKSBlbHNlIEZhbHNlCisKKyAgICAgICAg ICAgICAgICBjb2x1bW5zLmFwcGVuZCh7ImNvbHVtbiI6IHJvd1snY29sZGVm J10uc3RyaXAoJyInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm9wZXJfY2xhc3MiOiByb3dbJ29wY25hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIjogb3JkZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJudWxsc19vcmRlciI6IG51bGxz X29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Bl cmF0b3IiOiByb3dbJ29wcm5hbWUnXQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQorCisgICAgICAgICAgICByZXN1bHRbJ2NvbHVtbnMn XSA9IGNvbHVtbnMKKworICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc3VsdCwKKyAg ICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBs aXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgZXhpZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJu cyBhbGwgZXhjbHVzaW9uIGNvbnN0cmFpbnRzCisgICAgICAgIG5vZGVzIHdp dGhpbiB0aGF0IGNvbGxlY3Rpb24gYXMgYSBodHRwIHJlc3BvbnNlLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQK KyAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSUQKKyAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAg ICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgZXhpZDogRXhjbHVzaW9uIGNv bnN0cmFpbnQgSUQKKworICAgICAgICBSZXR1cm5zOgorCisgICAgICAgICIi IgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXMgPSBzZWxmLmdldF9u b2RlX2xpc3QoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBleGlkKQorICAg ICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfbm9kZV9saXN0KHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgZXhpZD1Ob25lKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbGwgZXhjbHVz aW9uIGNvbnN0cmFpbnRzCisgICAgICAgIG5vZGVzIHdpdGhpbiB0aGF0IGNv bGxlY3Rpb24gYXMgYSBsaXN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICBz Y2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAg ICAgICAgZXhpZDogRXhjbHVzaW9uIGNvbnN0cmFpbnQgSUQKKworICAgICAg ICBSZXR1cm5zOgorCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVy dGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPXRpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICByZXR1cm4gcmVz Wydyb3dzJ10KKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg bm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBleGlkPU5v bmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1 cm5zIGFsbCBFeGNsdXNpb24gY29uc3RyYWludCBub2RlcyBhcyBhCisgICAg ICAgIGh0dHAgcmVzcG9uc2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJRAorICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAg ICAgICBleGlkOiBFeGNsdXNpb24gY29uc3RyYWludCBJRAorCisgICAgICAg IFJldHVybnM6CisKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIHJlcyA9IHNlbGYuZ2V0X25vZGVzKGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZCwgZXhpZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAg ICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdl dF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGV4aWQ9 Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJl dHVybnMgYWxsIEV4Y2x1c2lvbiBjb25zdHJhaW50IG5vZGVzIGFzIGEgbGlz dC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElECisgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgc2NpZDogU2NoZW1hIElECisg ICAgICAgICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgIGV4aWQ6IEV4Y2x1 c2lvbiBjb25zdHJhaW50IElECisKKyAgICAgICAgUmV0dXJuczoKKworICAg ICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVz LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10 aWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRl XzJkYXJyYXkoU1FMKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93 cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAor ICAgICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg IHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj0i aWNvbi1leGNsdXNpb25fY29uc3RyYWludCIKKyAgICAgICAgICAgICAgICAg ICAgKSkKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkLCBleGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBhIEV4Y2x1c2lvbiBjb25zdHJh aW50LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAg IGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQK KyAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgZXhpZDogRXhj bHVzaW9uIGNvbnN0cmFpbnQgSUQKKworICAgICAgICBSZXR1cm5zOgorCisg ICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWydjb2x1bW5z J10KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3Qu Zm9ybSBlbHNlIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQor CisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAg ICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICAg IHN0YXR1cz00MDAsCisgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0w LAorICAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPV8oCisgICAgICAg ICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIHJlcXVpcmVkIHBh cmFtZXRlciAoJXMpLiIgJSBzdHIoYXJnKQorICAgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxp ZiBpc2luc3RhbmNlKGRhdGFbYXJnXSwgbGlzdCkgYW5kIGxlbihkYXRhW2Fy Z10pIDwgMToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDAsCisg ICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAg ICAgICAgICAgIGVycm9ybXNnPV8oCisgICAgICAgICAgICAgICAgICAgICAg ICAgICJDb3VsZG4ndCBmaW5kIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIg JSBzdHIoYXJnKQorICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2Vs Zi5zY2hlbWEKKyAgICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYudGFibGUK KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgJ25hbWUnIG5vdCBpbiBk YXRhIG9yIGRhdGFbJ25hbWUnXSA9PSAiIjoKKyAgICAgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdiZWdpbi5zcWwnXSkpCisg ICAgICAgICAgICAgICAgIyBTdGFydCB0cmFuc2FjdGlvbi4KKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5lbmRfdHJhbnNhY3Rpb24oKQorICAgICAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBUaGUgYmVsb3cgU1FMIHdp bGwgZXhlY3V0ZSBDUkVBVEUgRERMIG9ubHkKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uCisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICBzZWxmLmVuZF90cmFuc2FjdGlvbigpCisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlmICduYW1lJyBub3QgaW4g ZGF0YSBvciBkYXRhWyduYW1lJ10gPT0gIiI6CisgICAgICAgICAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2dldF9vaWRfd2l0aF90cmFuc2FjdGlvbi5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgIHRpZD10aWQpCisKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo c3FsKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICAgICAgICAgIHNlbGYuZW5kX3RyYW5zYWN0aW9uKCkKKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBzZWxmLmVuZF90cmFuc2Fj dGlvbigpCisKKyAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10gPSByZXNb J3Jvd3MnXVswXVsnbmFtZSddCisKKyAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfb2lkLnNxbCddKSwgbmFtZT1kYXRh WyduYW1lJ10pCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmVuZF90cmFu c2FjdGlvbigpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgaWYg J25hbWUnIGluIGRhdGEgYW5kIGRhdGFbJ25hbWUnXSAhPSAnJzoKKyAgICAg ICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ2dyYW50LnNxbCddKSwgZGF0YT1kYXRhLCBj b25uPXNlbGYuY29ubikKKyAgICAgICAgICAgICAgICBzcWwgPSBzcWwuc3Ry aXAoJ1xuJykuc3RyaXAoJyAnKQorCisgICAgICAgICAgICAgICAgaWYgc3Fs ICE9ICcnOgorICAgICAgICAgICAgICAgICAgICBzdGF0dXMsIHJlc3VsdCA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmVuZF90cmFuc2FjdGlvbigpCisgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl c3VsdCkKKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAg ICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2Vy X25vZGUoCisgICAgICAgICAgICAgICAgICAgIHJlc1sncm93cyddWzBdWydv aWQnXSwKKyAgICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAg ICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGlj b249Imljb24tZXhjbHVzaW9uX2NvbnN0cmFpbnQiCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgc2VsZi5lbmRfdHJhbnNh Y3Rpb24oKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgIHN0YXR1cz00MDAsCisgICAgICAgICAg ICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgIGVycm9ybXNnPWUK KyAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwg ZXhpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZAorICAg ICAgICBFeGNsdXNpb24gY29uc3RyYWludC4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgc2lk OiBTZXJ2ZXIgSUQKKyAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgdGlkOiBUYWJsZSBJ RAorICAgICAgICAgIGV4aWQ6IEV4Y2x1c2lvbiBjb25zdHJhaW50IElECisK KyAgICAgICAgUmV0dXJuczoKKworICAgICAgICAiIiIKKyAgICAgICAgZGF0 YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxv YWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICB0cnk6Cisg ICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAg ICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorICAgICAgICAg ICAgc3FsID0gc2VsZi5nZXRfc3FsKGRhdGEsIHRpZCwgZXhpZCkKKyAgICAg ICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAg ICAgICAgICBpZiBzcWwgIT0gIiI6CisgICAgICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfb2lkLnNxbCddKSwgbmFt ZT1kYXRhWyduYW1lJ10pCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAg aW5mbz0iRXhjbHVzaW9uIGNvbnN0cmFpbnQgdXBkYXRlZCIsCisgICAgICAg ICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAg J2lkJzogcmVzWydyb3dzJ11bMF1bJ29pZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ3RpZCc6IHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaWQn OiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZCwKKyAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAg ICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIsCisgICAg ICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAg ICAgJ2lkJzogZXhpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0aWQn OiB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHRpZCwgZXhpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgYW4gZXhpc3RpbmcgRXhjbHVzaW9uLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SUQKKyAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgIGRpZDog RGF0YWJhc2UgSUQKKyAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAg ICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgZXhpZDogRXhjbHVzaW9u IGNvbnN0cmFpbnQgSUQKKworICAgICAgICBSZXR1cm5zOgorCisgICAgICAg ICIiIgorICAgICAgICAjIEJlbG93IGNvZGUgd2lsbCBkZWNpZGUgaWYgaXQn cyBzaW1wbGUgZHJvcCBvciBkcm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAg ICAgIGlmIHNlbGYuY21kID09ICdkZWxldGUnOgorICAgICAgICAgICAgIyBU aGlzIGlzIGEgY2FzY2FkZSBvcGVyYXRpb24KKyAgICAgICAgICAgIGNhc2Nh ZGUgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXNjYWRl ID0gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdn ZXRfbmFtZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2lkPWV4aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZGF0YSA9 IHJlc1sncm93cyddWzBdCisgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9 IHNlbGYuc2NoZW1hCisgICAgICAgICAgICBkYXRhWyd0YWJsZSddID0gc2Vs Zi50YWJsZQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRh LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2NhZGU9 Y2FzY2FkZSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAor ICAgICAgICAgICAgICAgIGluZm89XygiRXhjbHVzaW9uIGNvbnN0cmFpbnQg ZHJvcHBlZC4iKSwKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgJ2lkJzogZXhpZCwKKyAgICAgICAgICAgICAgICAgICAg J3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwK KyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgbXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGV4aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHJldHVybnMgbW9kaWZpZWQgU1FMIGZvciB0aGUgc2VsZWN0 ZWQKKyAgICAgICAgRXhjbHVzaW9uIGNvbnN0cmFpbnQuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgIHRpZDog VGFibGUgSUQKKyAgICAgICAgICBleGlkOiBFeGNsdXNpb24gY29uc3RyYWlu dCBJRAorCisgICAgICAgIFJldHVybnM6CisKKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBpbiByZXF1ZXN0LmFy Z3MuaXRlbXMoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg ICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2KQorICAgICAgICAgICAgZXhjZXB0 IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKKwor ICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAg IGRhdGFbJ3RhYmxlJ10gPSBzZWxmLnRhYmxlCisgICAgICAgIHRyeToKKyAg ICAgICAgICAgIHNxbCA9IHNlbGYuZ2V0X3NxbChkYXRhLCB0aWQsIGV4aWQp CisgICAgICAgICAgICBzcWwgPSBzcWwuc3RyaXAoJ1xuJykuc3RyaXAoJyAn KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisK KyAgICBkZWYgZ2V0X3NxbChzZWxmLCBkYXRhLCB0aWQsIGV4aWQ9Tm9uZSk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0YS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgIGRhdGE6IENvbnRhaW5zIHRoZSBkYXRhIG9mIHRoZSBzZWxl Y3RlZCBFeGNsdXNpb24gY29uc3RyYWludC4KKyAgICAgICAgICB0aWQ6IFRh YmxlIElELgorICAgICAgICAgIGV4aWQ6IEV4Y2x1c2lvbiBjb25zdHJhaW50 IElECisKKyAgICAgICAgUmV0dXJuczoKKworICAgICAgICAiIiIKKyAgICAg ICAgaWYgZXhpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNxbCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn cHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBleGlkPWV4aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgb2xk X2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgcmVxdWlyZWRf YXJncyA9IFsnbmFtZSddCisgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVp cmVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRh OgorICAgICAgICAgICAgICAgICAgICBkYXRhW2FyZ10gPSBvbGRfZGF0YVth cmddCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIG9f ZGF0YT1vbGRfZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl cXVpcmVkX2FyZ3MgPSBbJ2NvbHVtbnMnXQorCisgICAgICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYgYXJn IG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gXygn LS0gZGVmaW5pdGlvbiBpbmNvbXBsZXRlJykKKyAgICAgICAgICAgICAgICBl bGlmIGlzaW5zdGFuY2UoZGF0YVthcmddLCBsaXN0KSBhbmQgbGVuKGRhdGFb YXJnXSkgPCAxOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gXygnLS0g ZGVmaW5pdGlvbiBpbmNvbXBsZXRlJykKKworICAgICAgICAgICAgc3FsID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAg ICBzcWwgKz0gIlxuIgorICAgICAgICAgICAgc3FsICs9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ3JhbnQuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh PWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgIHJldHVybiBzcWwK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgZXhpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIHNxbCB0 byBzaG93IGluIHRoZSBzcWwgcGFuZSBmb3IgdGhlIHNlbGVjdGVkCisgICAg ICAgIEV4Y2x1c2lvbiBjb25zdHJhaW50LgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAg ICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICB0aWQ6IFRhYmxlIElE CisgICAgICAgICAgZXhpZDogRXhjbHVzaW9uIGNvbnN0cmFpbnQgSUQKKwor ICAgICAgICBSZXR1cm5zOgorCisgICAgICAgICIiIgorICAgICAgICB0cnk6 CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3Bl cnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgIHRpZD10aWQsIGNvbm49 c2VsZi5jb25uLCBleGlkPWV4aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJl c3VsdCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAgICAg ICAgICAgZGF0YSA9IHJlc3VsdFsncm93cyddWzBdCisgICAgICAgICAgICBk YXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgICAgICBkYXRh Wyd0YWJsZSddID0gc2VsZi50YWJsZQorCisgICAgICAgICAgICBzcWwgPSBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ2dldF9jb25zdHJhaW50X2NvbHMuc3FsJ10p LAorICAgICAgICAgICAgICAgIGNpZD1leGlkLAorICAgICAgICAgICAgICAg IGNvbGNudD1kYXRhWydpbmRuYXR0cyddKQorICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKworICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICAgICAgY29sdW1ucyA9IFtdCisgICAgICAgICAgICBmb3Igcm93IGluIHJl c1sncm93cyddOgorICAgICAgICAgICAgICAgIGlmIHJvd1snb3B0aW9ucydd ICYgMToKKyAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBGYWxzZQorICAg ICAgICAgICAgICAgICAgICBudWxsc19vcmRlciA9IFRydWUgaWYgKHJvd1sn b3B0aW9ucyddICYgMikgZWxzZSBGYWxzZQorICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgIG9yZGVyID0gVHJ1ZQorICAgICAg ICAgICAgICAgICAgICBudWxsc19vcmRlciA9IFRydWUgaWYgKHJvd1snb3B0 aW9ucyddICYgMikgZWxzZSBGYWxzZQorCisgICAgICAgICAgICAgICAgY29s dW1ucy5hcHBlbmQoeyJjb2x1bW4iOiByb3dbJ2NvbGRlZiddLnN0cmlwKCci JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVyX2Ns YXNzIjogcm93WydvcGNuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJvcmRlciI6IG9yZGVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAibnVsbHNfb3JkZXIiOiBudWxsc19vcmRlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdG9yIjogcm93 WydvcHJuYW1lJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKKworICAgICAgICAgICAgZGF0YVsnY29sdW1ucyddID0gY29sdW1ucwor CisgICAgICAgICAgICBpZiBub3QgZGF0YVsnYW1uYW1lJ10gb3IgZGF0YVsn YW1uYW1lJ10gPT0gJyc6CisgICAgICAgICAgICAgICAgZGF0YVsnYW1uYW1l J10gPSAnYnRyZWUnCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAg ICAgU1FMICs9ICJcbiIKKyAgICAgICAgICAgIFNRTCArPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ2dyYW50LnNxbCddKSwKKyAgICAgICAgICAgICAgICBkYXRh PWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgICAgICBzcWxfaGVh ZGVyID0gIi0tIENvbnN0cmFpbnQ6IHswfVxuXG4tLSAiLmZvcm1hdChkYXRh WyduYW1lJ10pCisKKyAgICAgICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3FsX2hlYWRlciAr PSAiXG4iCisKKyAgICAgICAgICAgIFNRTCA9IHNxbF9oZWFkZXIgKyBTUUwK KworICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9 U1FMKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBn ZXRfYWNjZXNzX21ldGhvZHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg dGlkLCBleGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIGFjY2VzcyBtZXRob2RzLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICB0aWQ6IFRh YmxlIElECisgICAgICAgICAgZXhpZDogRXhjbHVzaW9uIGNvbnN0cmFpbnQg SUQKKworICAgICAgICBSZXR1cm5zOgorCisgICAgICAgICIiIgorICAgICAg ICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdnZXRfYWNjZXNzX21ldGhvZHMuc3FsJ10pKQorICAgICAgICBzdGF0 dXMsIHJlc3QgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXN0KQorCisgICAgICAg IGZvciByb3cgaW4gcmVzdFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFw cGVuZCgKKyAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93WydhbW5hbWUn XSwgJ3ZhbHVlJzogcm93WydhbW5hbWUnXX0KKyAgICAgICAgICAgICkKKyAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGdldF9vcGVyX2NsYXNzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIHRpZCwgZXhpZD1Ob25lKToKKyAgICAgICAgIiIiCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJRAorICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgIHRp ZDogVGFibGUgSUQKKyAgICAgICAgICBleGlkOiBFeGNsdXNpb24gY29uc3Ry YWludCBJRAorCisgICAgICAgIFJldHVybnM6CisKKyAgICAgICAgIiIiCisg ICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MgaWYgcmVxdWVzdC5hcmdzIGVs c2UgTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBkYXRhIGFu ZCAnaW5kZXh0eXBlJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2dldF9vcGVyX2NsYXNzLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXh0eXBlPWRhdGFbJ2luZGV4 dHlwZSddKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKworICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAg ICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgICAgICAgICAgZm9yIHJvdyBp biByZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFw cGVuZChbcm93WydvcGNuYW1lJ10sIHJvd1snb3BjbmFtZSddXSkKKyAgICAg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXJlc3VsdCwKKyAgICAgICAgICAgICAgICAg ICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9vcGVyYXRvcihz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGV4aWQ9Tm9uZSk6Cisg ICAgICAgICIiIgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICBzY2lkOiBTY2hl bWEgSUQKKyAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgZXhp ZDogRXhjbHVzaW9uIGNvbnN0cmFpbnQgSUQKKworICAgICAgICBSZXR1cm5z OgorCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdz IGlmIHJlcXVlc3QuYXJncyBlbHNlIE5vbmUKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgaWYgZGF0YSBhbmQgJ2NvbCcgaW4gZGF0YToKKyAgICAgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdnZXRfb3BlcmF0b3Iuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2w9ZGF0YVsn Y29sJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpZD10aWQpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorCisgICAgICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAg ICAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgICAgICAgICBmb3Igcm93 IGluIHJlc1sncm93cyddOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQu YXBwZW5kKFtyb3dbJ29wcm5hbWUnXSwgcm93WydvcHJuYW1lJ11dKQorICAg ICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKK2Nv bnN0cmFpbnQgPSBDb25zdHJhaW50UmVnaXN0cnkoCisgICAgJ2V4Y2x1c2lv bl9jb25zdHJhaW50JywgRXhjbHVzaW9uQ29uc3RyYWludE1vZHVsZSwgRXhj bHVzaW9uQ29uc3RyYWludFZpZXcKKyAgICApCitFeGNsdXNpb25Db25zdHJh aW50Vmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3N0YXRpYy9pbWcvZXhjbHVzaW9uX2NvbnN0cmFp bnQucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L3N0YXRpYy9pbWcvZXhjbHVzaW9uX2NvbnN0 cmFpbnQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkNjJlZWY2NDEw ZDkzMTU4NTdkMmU2ZDI0Njc3MGU4YjY1YjhmNDcKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDcyNQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2 Mz93eWxgR1hsNDd5fC0pTFJeOHx3aX08eW1UdlZ3X1FyWTEKekxDMz9kXipV RGhGV0xBMXw5YCl3TWBLUkVidlhRNUEtPSg2JTlmUjlaaFVfNl40XnB3UzI4 bExXTXdePUhTNT49CnpfaXNMWlAxPEAld1FgUWprPUslKm5OZ0cwOUpxQW5Z K35abSgkZCRkc1pUMl5FfktRfmUpP0xzZDZ7SjFMYGtvIwp6OFFZSF5YemhB WlNvclZQdVArLW1kfHRCVC1gfkhGWWlmPjZua0pQdU51cXA/WUlPRDU2SWJe OGByVjYrZF5LPDAKenprbVBVdFhRIXBHRnFaIWhHZzNzd2UqZzRYSyF3SWF6 NXFlX0hmRlNyd2JRdV5BQ2AwU3xLQFFrN1VrLSp+aFBNCnpFaHNxPDgyST0x PztCSTZVaFYxbV92Zz5TQGJJbSpqZ2t8ME5HPzJPZjlSIVReQDdDcHIlem5F d2M1flZtJXNseQp6VUVRNU5LQzVsKmMzcnFGeDhRezJucm43QDk/QTQ8dyU+ NSYmY2AzYFp7Rk9Pb1Y7OUhkeGZzPCFKTTRPeDk/Nm0KemVuV2ZCVyRBNFhZ P2h6WVVVSF48YEJ2NTRQWGhXRHFASF9jd2VneC1hbzZGN0EwNUNqV2hARXUz dWJWNWJ8VmVNCnpOJUQ0ZztiXi16d0Y9MUxFYnhkZDJHU20yPn49RVM0Iy0m Vj5FYWs3YVhDNVIwN0gqWTJHYmR4NDVsP1haK0xpUQp6V01tWX4pV3MofWM9 cXQ9VntyaXlBdSZOdztwcSZWOSR1Y09QbjxlPVFkPmh5diQmWmhCO0BLOVE8 SlMqTj12P2UKekltcEQ7PTV8Yk4qfE19XyYlfnhCRmx1S0BNX1VJNlM0WHFF dDhaeDcrYFc0Qz8pSyU9eEEoNz9fYyZtJFY0ens0CnpWcSY2V3FoIVJUQXxO WClFazF3M2o0NSpfJjY+dDFibUJ3YGkqLS00cVBEV00lN24/Pjx0MlZ7PUNq TntVMVYpdwp6VjMtanRVSFVhaXt4czAoc3dKKXdCYEp2fHNhREJGc1gmVXMk aVVFMCo4cXIyTGt1bWYzQG9qVGprRkVTdFBCaX0KaGNiSylJWHZvYl4keE4l bnR6cH5NSn1hT0cyMldRJW12djRGTyNxODlKdiNzWgoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9l eGNsdXNpb25fY29uc3RyYWludC9qcy9leGNsdXNpb25fY29uc3RyYWludC5q cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNp b25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQv anMvZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZmEyYWI5NgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25f Y29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvanMv ZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMKQEAgLTAsMCArMSw1ODAgQEAKK2Rl ZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRl cnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywKKyAgICAgICAgJ3BnYWRtaW4u YnJvd3NlcicsICdhbGVydGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbiddLAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2Vy LCBBbGVydGlmeSkgeworCisgIHZhciBFeGNsdXNpb25Db25zdHJhaW50Q29s dW1uTW9kZWwgPSBwZ0Jyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAg IGRlZmF1bHRzOiB7CisgICAgICBjb2x1bW46IHVuZGVmaW5lZCwKKyAgICAg IG9wZXJfY2xhc3M6IHVuZGVmaW5lZCwKKyAgICAgIG9yZGVyOiB1bmRlZmlu ZWQsCisgICAgICBudWxsc19vcmRlcjogdW5kZWZpbmVkLAorICAgICAgb3Bl cmF0b3I6dW5kZWZpbmVkCisgICAgfSwKKyAgICBzY2hlbWE6IFsKKyAgICAg IHsKKyAgICAgICAgaWQ6ICdjb2x1bW4nLCBsYWJlbDone3sgXygnQ29sdW1u JykgfX0nLCB0eXBlOid0ZXh0JywgZWRpdGFibGU6IGZhbHNlLAorICAgICAg ICBjZWxsOidzdHJpbmcnCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdvcGVy X2NsYXNzJywgbGFiZWw6J3t7IF8oJ09wZXJhdG9yIGNsYXNzJykgfX0nLCB0 eXBlOid0ZXh0JywKKyAgICAgICAgbm9kZTogJ2V4Y2x1c2lvbl9jb25zdHJh aW50JywgdXJsOiAnZ2V0X29wZXJfY2xhc3MnLCBmaXJzdF9lbXB0eTogdHJ1 ZSwKKyAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg ICBpZiAoIW0udG9wLmlzTmV3KCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChtLmNvbGxlY3Rp b24pIHsKKyAgICAgICAgICAgIHZhciBpbmRleFR5cGUgPSBtLmNvbGxlY3Rp b24udG9wLmdldCgnYW1uYW1lJykKKyAgICAgICAgICAgIHJldHVybiAhKGlu ZGV4VHlwZSA9PSAnYnRyZWUnIHx8IF8uaXNVbmRlZmluZWQoaW5kZXhUeXBl KSB8fAorICAgICAgICAgICAgXy5pc051bGwoaW5kZXhUeXBlKSB8fCBpbmRl eFR5cGUgPT0gJycpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9LAorICAg ICAgICBzZWxlY3QyOiB7CisgICAgICAgICAgYWxsb3dDbGVhcjogdHJ1ZSwg d2lkdGg6ICdzdHlsZScsCisgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTZWxl Y3Qgb3BlcmF0b3IgY2xhc3MnCisgICAgICAgIH0sIGNlbGw6IEJhY2tncmlk LkV4dGVuc2lvbi5TZWxlY3QyQ2VsbC5leHRlbmQoeworICAgICAgICAgIGlu aXRpYWxpemU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBCYWNrZ3JpZC5F eHRlbnNpb24uU2VsZWN0MkNlbGwucHJvdG90eXBlLmluaXRpYWxpemUuYXBw bHkodGhpcywgYXJndW1lbnRzKTsKKworICAgICAgICAgIHZhciBzZWxmID0g dGhpcywKKyAgICAgICAgICAgIHVybCA9IHNlbGYuY29sdW1uLmdldCgndXJs JykgfHwgc2VsZi5kZWZhdWx0cy51cmwsCisgICAgICAgICAgICBtID0gc2Vs Zi5tb2RlbCwKKyAgICAgICAgICAgIGluZGV4dHlwZSA9IHNlbGYubW9kZWwu Y29sbGVjdGlvbi5oYW5kbGVyLmdldCgnYW1uYW1lJyk7CisKKyAgICAgICAg ICAgIGlmICh1cmwgJiYgKGluZGV4dHlwZSA9PSAnYnRyZWUnIHx8IF8uaXNV bmRlZmluZWQoaW5kZXh0eXBlKSB8fAorICAgICAgICAgICAgICAgIF8uaXNO dWxsKGluZGV4dHlwZSkgfHwgaW5kZXh0eXBlID09ICcnKSkgeworICAgICAg ICAgICAgICB2YXIgbm9kZSA9IHRoaXMuY29sdW1uLmdldCgnc2NoZW1hX25v ZGUnKSwKKyAgICAgICAgICAgICAgICAgIGV2ZW50SGFuZGxlciA9IG0udG9w IHx8IG0sCisgICAgICAgICAgICAgICAgICBub2RlX2luZm8gPSB0aGlzLmNv bHVtbi5nZXQoJ25vZGVfaW5mbycpLAorICAgICAgICAgICAgICAgICAgZnVs bF91cmwgPSBub2RlLmdlbmVyYXRlX3VybC5hcHBseSgKKyAgICAgICAgICAg ICAgICAgICAgbm9kZSwgWworICAgICAgICAgICAgICAgICAgICAgIG51bGws IHVybCwgdGhpcy5jb2x1bW4uZ2V0KCdub2RlX2RhdGEnKSwKKyAgICAgICAg ICAgICAgICAgICAgICB0aGlzLmNvbHVtbi5nZXQoJ3VybF93aXRoX2lkJykg fHwgZmFsc2UsIG5vZGVfaW5mbworICAgICAgICAgICAgICAgICAgICBdKSwK KyAgICAgICAgICAgICAgICAgIGRhdGEgPSBbXTsKKworICAgICAgICAgICAg ICBpbmRleHR5cGUgPSAnYnRyZWUnOworCisgICAgICAgICAgICAgIGlmICh0 aGlzLmNvbHVtbi5nZXQoJ3ZlcnNpb25fY29tcGF0aWJsZScpKSB7CisgICAg ICAgICAgICAgICAgZXZlbnRIYW5kbGVyLnRyaWdnZXIoJ3BnYWRtaW46dmll dzpmZXRjaGluZycsIG0sIHNlbGYuY29sdW1uKTsKKyAgICAgICAgICAgICAg ICAkLmFqYXgoeworICAgICAgICAgICAgICAgICAgYXN5bmM6IGZhbHNlLAor ICAgICAgICAgICAgICAgICAgZGF0YSA6IHtpbmRleHR5cGU6aW5kZXh0eXBl fSwKKyAgICAgICAgICAgICAgICAgIHVybDogZnVsbF91cmwsCisgICAgICAg ICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAgICAgICAg ICAgICAgICAgICAgZGF0YSA9IHJlcy5kYXRhOworICAgICAgICAgICAgICAg ICAgfSwKKyAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbigpIHsK KyAgICAgICAgICAgICAgICAgICAgZXZlbnRIYW5kbGVyLnRyaWdnZXIoJ3Bn YWRtaW46dmlldzpmZXRjaDplcnJvcicsIG0sIHNlbGYuY29sdW1uKTsKKyAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg ICAgICAgICAgICBldmVudEhhbmRsZXIudHJpZ2dlcigncGdhZG1pbjp2aWV3 OmZldGNoZWQnLCBtLCBzZWxmLmNvbHVtbik7CisgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICogVHJhbnNmb3Jt IHRoZSBkYXRhCisgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICB0 cmFuc2Zvcm0gPSBzZWxmLmNvbHVtbi5nZXQoJ3RyYW5zZm9ybScpIHx8IHNl bGYuZGVmYXVsdHMudHJhbnNmb3JtOworICAgICAgICAgICAgICBpZiAodHJh bnNmb3JtICYmIF8uaXNGdW5jdGlvbih0cmFuc2Zvcm0pKSB7CisgICAgICAg ICAgICAgICAgLy8gV2Ugd2lsbCB0cmFuc2Zvcm0gdGhlIGRhdGEgbGF0ZXIs IHdoZW4gcmVuZGVyaW5nLgorICAgICAgICAgICAgICAgIC8vIEl0IHdpbGwg YWxsb3cgdXMgdG8gZ2VuZXJhdGUgZGlmZmVyZW50IGRhdGEgYmFzZWQgb24g dGhlCisgICAgICAgICAgICAgICAgLy8gZGVwZW5kZW5jaWVzLgorICAgICAg ICAgICAgICAgIHNlbGYuY29sdW1uLnNldCgnb3B0aW9ucycsIHRyYW5zZm9y bS5iaW5kKHNlbGYsIGRhdGEpKTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbi5zZXQoJ29wdGlvbnMnLCBk YXRhKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgc2VsZi5jb2x1bW4uc2V0KCdvcHRpb25zJywgW10p OworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAg ICAgIH0seworICAgICAgICBpZDogJ29yZGVyJywgbGFiZWw6J3t7IF8oJ0RF U0MnKSB9fScsIHR5cGU6ICdzd2l0Y2gnLAorICAgICAgICBvcHRpb25zOiB7 CisgICAgICAgICAgb25UZXh0OiAnQVNDJywKKyAgICAgICAgICBvZmZUZXh0 OiAnREVTQycsCisgICAgICAgIH0sZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsK KyAgICAgICAgICByZXR1cm4gIW0udG9wLmlzTmV3KCk7CisgICAgICAgIH0K KyAgICAgIH0seworICAgICAgICBpZDogJ251bGxzX29yZGVyJywgbGFiZWw6 J3t7IF8oJ05VTExzIG9yZGVyJykgfX0nLCB0eXBlOiJzd2l0Y2giLAorICAg ICAgICBvcHRpb25zOiB7CisgICAgICAgICAgb25UZXh0OiAnRklSU1QnLAor ICAgICAgICAgIG9mZlRleHQ6ICdMQVNUJywKKyAgICAgICAgfSxkaXNhYmxl ZDogZnVuY3Rpb24obSkgeworICAgICAgICAgIHJldHVybiAhbS50b3AuaXNO ZXcoKTsKKyAgICAgICAgfQorICAgICAgfSx7CisgICAgICAgIGlkOiAnb3Bl cmF0b3InLCBsYWJlbDone3sgXygnT3BlcmF0b3InKSB9fScsIHR5cGU6ICd0 ZXh0JywKKyAgICAgICAgbm9kZTogJ2V4Y2x1c2lvbl9jb25zdHJhaW50Jywg dXJsOiAnZ2V0X29wZXJhdG9yJywgZmlyc3RfZW1wdHk6IGZhbHNlLAorICAg ICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgIHJldHVy biAhbS50b3AuaXNOZXcoKTsKKyAgICAgICAgfSwKKyAgICAgICAgc2VsZWN0 MjogeworICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLCB3aWR0aDogJ3N0 eWxlJywKKyAgICAgICAgfSwgY2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLlNl bGVjdDJDZWxsLmV4dGVuZCh7CisgICAgICAgIGluaXRpYWxpemU6IGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICBCYWNrZ3JpZC5FeHRlbnNpb24uU2VsZWN0 MkNlbGwucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1l bnRzKTsKKworICAgICAgICAgIHZhciBzZWxmID0gdGhpcywKKyAgICAgICAg ICAgIHVybCA9IHNlbGYuY29sdW1uLmdldCgndXJsJykgfHwgc2VsZi5kZWZh dWx0cy51cmwsCisgICAgICAgICAgICBtID0gc2VsZi5tb2RlbCwKKyAgICAg ICAgICAgIGNvbCA9IHNlbGYubW9kZWwuZ2V0KCdjb2x1bW4nKTsKKworICAg ICAgICAgICAgaWYgKHVybCAmJiAhXy5pc1VuZGVmaW5lZChjb2wpICYmICFf LmlzTnVsbChjb2wpICYmIGNvbCAhPSAnJykgeworICAgICAgICAgICAgICB2 YXIgbm9kZSA9IHRoaXMuY29sdW1uLmdldCgnc2NoZW1hX25vZGUnKSwKKyAg ICAgICAgICAgICAgICAgIGV2ZW50SGFuZGxlciA9IG0udG9wIHx8IG0sCisg ICAgICAgICAgICAgICAgICBub2RlX2luZm8gPSB0aGlzLmNvbHVtbi5nZXQo J25vZGVfaW5mbycpLAorICAgICAgICAgICAgICAgICAgZnVsbF91cmwgPSBu b2RlLmdlbmVyYXRlX3VybC5hcHBseSgKKyAgICAgICAgICAgICAgICAgICAg bm9kZSwgWworICAgICAgICAgICAgICAgICAgICAgIG51bGwsIHVybCwgdGhp cy5jb2x1bW4uZ2V0KCdub2RlX2RhdGEnKSwKKyAgICAgICAgICAgICAgICAg ICAgICB0aGlzLmNvbHVtbi5nZXQoJ3VybF93aXRoX2lkJykgfHwgZmFsc2Us IG5vZGVfaW5mbworICAgICAgICAgICAgICAgICAgICBdKSwKKyAgICAgICAg ICAgICAgICAgIGRhdGEgPSBbXTsKKworICAgICAgICAgICAgICBpZiAodGhp cy5jb2x1bW4uZ2V0KCd2ZXJzaW9uX2NvbXBhdGlibGUnKSkgeworICAgICAg ICAgICAgICAgIGV2ZW50SGFuZGxlci50cmlnZ2VyKCdwZ2FkbWluOnZpZXc6 ZmV0Y2hpbmcnLCBtLCBzZWxmLmNvbHVtbik7CisgICAgICAgICAgICAgICAg JC5hamF4KHsKKyAgICAgICAgICAgICAgICAgIGFzeW5jOiBmYWxzZSwKKyAg ICAgICAgICAgICAgICAgIGRhdGEgOiB7Y29sOmNvbH0sCisgICAgICAgICAg ICAgICAgICB1cmw6IGZ1bGxfdXJsLAorICAgICAgICAgICAgICAgICAgc3Vj Y2VzczogZnVuY3Rpb24ocmVzKSB7CisgICAgICAgICAgICAgICAgICAgIGRh dGEgPSByZXMuZGF0YTsKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg ICAgICAgIGV2ZW50SGFuZGxlci50cmlnZ2VyKCdwZ2FkbWluOnZpZXc6ZmV0 Y2g6ZXJyb3InLCBtLCBzZWxmLmNvbHVtbik7CisgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgZXZl bnRIYW5kbGVyLnRyaWdnZXIoJ3BnYWRtaW46dmlldzpmZXRjaGVkJywgbSwg c2VsZi5jb2x1bW4pOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg IC8qCisgICAgICAgICAgICAgICAqIFRyYW5zZm9ybSB0aGUgZGF0YQorICAg ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdHJhbnNmb3JtID0gc2Vs Zi5jb2x1bW4uZ2V0KCd0cmFuc2Zvcm0nKSB8fCBzZWxmLmRlZmF1bHRzLnRy YW5zZm9ybTsKKyAgICAgICAgICAgICAgaWYgKHRyYW5zZm9ybSAmJiBfLmlz RnVuY3Rpb24odHJhbnNmb3JtKSkgeworICAgICAgICAgICAgICAgIC8vIFdl IHdpbGwgdHJhbnNmb3JtIHRoZSBkYXRhIGxhdGVyLCB3aGVuIHJlbmRlcmlu Zy4KKyAgICAgICAgICAgICAgICAvLyBJdCB3aWxsIGFsbG93IHVzIHRvIGdl bmVyYXRlIGRpZmZlcmVudCBkYXRhIGJhc2VkIG9uIHRoZQorICAgICAgICAg ICAgICAgIC8vIGRlcGVuZGVuY2llcy4KKyAgICAgICAgICAgICAgICBzZWxm LmNvbHVtbi5zZXQoJ29wdGlvbnMnLCB0cmFuc2Zvcm0uYmluZChzZWxmLCBk YXRhKSk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgc2VsZi5jb2x1bW4uc2V0KCdvcHRpb25zJywgZGF0YSk7CisgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg IHNlbGYuY29sdW1uLnNldCgnb3B0aW9ucycsIFtdKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICB9CisgICAgXSwK KyAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0g e30sCisgICAgICAgICAgZXJybXNnID0gbnVsbCwKKyAgICAgICAgICBkYXRh ID0gdGhpcy50b0pTT04oKTsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQo ZGF0YS5vcGVyYXRvcikgfHwKKyAgICAgICAgXy5pc051bGwoZGF0YS5vcGVy YXRvcikgfHwKKyAgICAgICAgU3RyaW5nKGRhdGEub3BlcmF0b3IpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgcmV0dXJu IF8oIlBsZWFzZSBzcGVjaWZ5IHZhbHVlIGZvciBvcGVyYXRvci4iKTsKKyAg ICAgIH0KKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKyAg dmFyIEV4Y2x1c2lvbkNvbnN0cmFpbnRDb2x1bW5Db250cm9sID0gIEJhY2tm b3JtLkV4Y2x1c2lvbkNvbnN0cmFpbnRDb2x1bW5Db250cm9sID0KKyAgICBC YWNrZm9ybS5VbmlxdWVDb2xDb2xsZWN0aW9uQ29udHJvbC5leHRlbmQoewor CisgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob3B0cykgeworICAgICAgQmFj a2Zvcm0uVW5pcXVlQ29sQ29sbGVjdGlvbkNvbnRyb2wucHJvdG90eXBlLmlu aXRpYWxpemUuYXBwbHkoCisgICAgICAgIHRoaXMsIGFyZ3VtZW50cworICAg ICAgICAgICk7CisKKyAgICAgIHZhciBzZWxmID0gdGhpcywKKyAgICAgICAg bm9kZSA9IHNlbGYuZmllbGQuZ2V0KCdub2RlJykudHlwZSwKKyAgICAgICAg aGVhZGVyU2NoZW1hID0gW3sKKyAgICAgICAgICBpZDogJ2NvbHVtbicsIGxh YmVsOicnLCB0eXBlOid0ZXh0JywKKyAgICAgICAgICBub2RlOiAnY29sdW1u JywgY29udHJvbDogQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLAor ICAgICAgICAgIGNhY2hlX2xldmVsOiAnc2VydmVyJywgY2FuQWRkOiBmdW5j dGlvbihtKSB7CisgICAgICAgICAgICByZXR1cm4gbS5pc05ldygpOworICAg ICAgICAgIH0sCisgICAgICAgICAgc2VsZWN0MjogeworICAgICAgICAgICAg YWxsb3dDbGVhcjogZmFsc2UsIHdpZHRoOiAnc3R5bGUnLAorICAgICAgICAg ICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgY29sdW1uJworICAgICAgICAgIH0s IGZpcnN0X2VtcHR5OiAhc2VsZi5tb2RlbC5pc05ldygpLAorICAgICAgICAg IGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICByZXR1cm4g IXNlbGYubW9kZWwuaXNOZXcoKTsKKyAgICAgICAgICB9CisgICAgICAgIH1d LAorICAgICAgICBoZWFkZXJEZWZhdWx0cyA9IHtjb2x1bW46IG51bGwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJfY2xhc3M6IG51bGwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOmZhbHNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICBudWxsc19vcmRlcjpmYWxzZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6bnVsbH0sCisKKyAgICAg ICAgZ3JpZENvbHMgPSBbJ2NvbHVtbicsICdvcGVyX2NsYXNzJywgJ29yZGVy JywgJ251bGxzX29yZGVyJywgJ29wZXJhdG9yJ107CisKKyAgICAgIHNlbGYu aGVhZGVyRGF0YSA9IG5ldyAoQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHsKKyAg ICAgICAgZGVmYXVsdHM6IGhlYWRlckRlZmF1bHRzLAorICAgICAgICBzY2hl bWE6IGhlYWRlclNjaGVtYQorICAgICAgfSkpKHt9KTsKKworICAgICAgdmFy IGhlYWRlckdyb3VwcyA9IEJhY2tmb3JtLmdlbmVyYXRlVmlld1NjaGVtYSgK KyAgICAgICAgICBzZWxmLmZpZWxkLmdldCgnbm9kZV9pbmZvJyksIHNlbGYu aGVhZGVyRGF0YSwgJ2NyZWF0ZScsCisgICAgICAgICAgbm9kZSwgc2VsZi5m aWVsZC5nZXQoJ25vZGVfZGF0YScpCisgICAgICAgICAgKSwKKyAgICAgICAg ICBmaWVsZHMgPSBbXTsKKworICAgICAgXy5lYWNoKGhlYWRlckdyb3Vwcywg ZnVuY3Rpb24obykgeworICAgICAgICBmaWVsZHMgPSBmaWVsZHMuY29uY2F0 KG8uZmllbGRzKTsKKyAgICAgIH0pOworCisgICAgICBzZWxmLmhlYWRlckZp ZWxkcyA9IG5ldyBCYWNrZm9ybS5GaWVsZHMoZmllbGRzKTsKKyAgICAgIHNl bGYuZ3JpZFNjaGVtYSA9IEJhY2tmb3JtLmdlbmVyYXRlR3JpZENvbHVtbnNG cm9tTW9kZWwoCisgICAgICAgICAgc2VsZi5maWVsZC5nZXQoJ25vZGVfaW5m bycpLCBzZWxmLmZpZWxkLmdldCgnbW9kZWwnKSwgJ2VkaXQnLCBncmlkQ29s cywgc2VsZi5maWVsZC5nZXQoJ3NjaGVtYV9ub2RlJykKKyAgICAgICAgICAp OworCisgICAgICBzZWxmLmNvbnRyb2xzID0gW107CisgICAgICBzZWxmLmxp c3RlblRvKHNlbGYuaGVhZGVyRGF0YSwgImNoYW5nZSIsIHNlbGYuaGVhZGVy RGF0YUNoYW5nZWQpOworICAgICAgc2VsZi5saXN0ZW5UbyhzZWxmLmhlYWRl ckRhdGEsICJzZWxlY3QyIiwgc2VsZi5oZWFkZXJEYXRhQ2hhbmdlZCk7Cisg ICAgICBzZWxmLmxpc3RlblRvKHNlbGYuY29sbGVjdGlvbiwgImFkZCIsIHNl bGYub25BZGRvclJlbW92ZUNvbHVtbnMpOworICAgICAgc2VsZi5saXN0ZW5U byhzZWxmLmNvbGxlY3Rpb24sICJyZW1vdmUiLCBzZWxmLm9uQWRkb3JSZW1v dmVDb2x1bW5zKTsKKyAgICB9LAorCisgICAgZ2VuZXJhdGVIZWFkZXI6IGZ1 bmN0aW9uKGRhdGEpIHsKKyAgICAgIHZhciBoZWFkZXIgPSBbCisgICAgICAg ICc8ZGl2IGNsYXNzPSJzdWJub2RlLWhlYWRlci1mb3JtIj4nLAorICAgICAg ICAnIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+JywKKyAgICAgICAg JyAgPGRpdiBjbGFzcz0icm93Ij4nLAorICAgICAgICAnICAgPGRpdiBjbGFz cz0iY29sLW1kLTQiPicsCisgICAgICAgICcgICAgPGxhYmVsIGNsYXNzPSJj b250cm9sLWxhYmVsIj48JS1jb2x1bW5fbGFiZWwlPjwvbGFiZWw+JywKKyAg ICAgICAgJyAgIDwvZGl2PicsCisgICAgICAgICcgICA8ZGl2IGNsYXNzPSJj b2wtbWQtNCIgaGVhZGVyPSJjb2x1bW4iPjwvZGl2PicsCisgICAgICAgICcg ICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+JywKKyAgICAgICAgJyAgICAgPGJ1 dHRvbiBjbGFzcz0iYnRuLXNtIGJ0bi1kZWZhdWx0IGFkZCIgPCU9Y2FuQWRk ID8gIiIgOiAiZGlzYWJsZWQ9XCdkaXNhYmxlZFwnIiU+ID48JS1hZGRfbGFi ZWwlPjwvYnV0dHRvbj4nLAorICAgICAgICAnICAgPC9kaXY+JywKKyAgICAg ICAgJyAgPC9kaXY+JywKKyAgICAgICAgJyA8L2Rpdj4nLAorICAgICAgICAn PC9kaXY+JyxdLmpvaW4oIlxuIikKKworICAgICAgXy5leHRlbmQoZGF0YSwg eworICAgICAgICBjb2x1bW5fbGFiZWw6ICd7eyBfKCdDb2x1bW4nKX19JywK KyAgICAgICAgYWRkX2xhYmVsOiAne3sgXygnQUREJyl9fScKKyAgICAgIH0p OworCisgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAgICAgaGVhZGVy VG1wbCA9IF8udGVtcGxhdGUoaGVhZGVyKSwKKyAgICAgICAgICAkaGVhZGVy ID0gJChoZWFkZXJUbXBsKGRhdGEpKSwKKyAgICAgICAgICBjb250cm9scyA9 IHRoaXMuY29udHJvbHM7CisKKyAgICAgIHRoaXMuaGVhZGVyRmllbGRzLmVh Y2goZnVuY3Rpb24oZmllbGQpIHsKKyAgICAgICAgdmFyIGNvbnRyb2wgPSBu ZXcgKGZpZWxkLmdldCgiY29udHJvbCIpKSh7CisgICAgICAgICAgZmllbGQ6 IGZpZWxkLAorICAgICAgICAgIG1vZGVsOiBzZWxmLmhlYWRlckRhdGEKKyAg ICAgICAgfSk7CisKKyAgICAgICAgJGhlYWRlci5maW5kKCdkaXZbaGVhZGVy PSInICsgZmllbGQuZ2V0KCduYW1lJykgKyAnIl0nKS5hcHBlbmQoCisgICAg ICAgICAgY29udHJvbC5yZW5kZXIoKS4kZWwKKyAgICAgICAgKTsKKworICAg ICAgICBjb250cm9scy5wdXNoKGNvbnRyb2wpOworICAgICAgfSk7CisKKyAg ICAgIC8vIFdlIHNob3VsZCBub3Qgc2hvdyBhZGQgYnV0IGluIHByb3BlcnRp ZXMgbW9kZQorICAgICAgaWYgKGRhdGEubW9kZSA9PSAncHJvcGVydGllcycp IHsKKyAgICAgICAgJGhlYWRlci5maW5kKCJidXR0b24uYWRkIikucmVtb3Zl KCk7CisgICAgICB9CisKKyAgICAgIHNlbGYuJGhlYWRlciA9ICRoZWFkZXI7 CisKKyAgICAgIHJldHVybiAkaGVhZGVyOworICAgIH0sCisKKyAgICBldmVu dHM6IF8uZXh0ZW5kKAorICAgICAgICAgICAgICAgICAge30sIEJhY2tmb3Jt LlVuaXF1ZUNvbENvbGxlY3Rpb25Db250cm9sLnByb3RvdHlwZS5ldmVudHMs CisgICAgICAgICAgICAgICAgeydjbGljayBidXR0b24uYWRkJzogJ2FkZENv bHVtbnMnfQorICAgICAgICAgICAgICAgICksCisKKyAgICBzaG93R3JpZENv bnRyb2w6IGZ1bmN0aW9uKGRhdGEpIHsKKworICAgICAgdmFyIHNlbGYgPSB0 aGlzLAorICAgICAgICAgIHRpdGxlVG1wbCA9IF8udGVtcGxhdGUoWworICAg ICAgICAgICAgIjxkaXYgY2xhc3M9J3N1Ym5vZGUtaGVhZGVyJz4iLAorICAg ICAgICAgICAgIjxsYWJlbCBjbGFzcz0nY29udHJvbC1sYWJlbCc+PCUtbGFi ZWwlPjwvbGFiZWw+IiwKKyAgICAgICAgICAgICI8L2Rpdj4iXS5qb2luKCJc biIpKSwKKyAgICAgICAgICAkZ3JpZEJvZHkgPQorICAgICAgICAgICAgJCgi PGRpdiBjbGFzcz0ncGdhZG1pbi1jb250cm9sLWdyb3VwIGJhY2tncmlkIGZv cm0tZ3JvdXAgY29sLXhzLTEyIG9iamVjdCBzdWJub2RlJz48L2Rpdj4iKS5h cHBlbmQoCisgICAgICAgICAgICAgIHRpdGxlVG1wbCh7bGFiZWw6IGRhdGEu bGFiZWx9KQorICAgICAgICAgICAgKTsKKyAgICAgIGlmIChzZWxmLm1vZGVs LmlzTmV3KCkpIHsKKyAgICAgICAgc2VsZi5jb2xsZWN0aW9uLnJlc2V0KCk7 CisgICAgICB9CisKKyAgICAgICRncmlkQm9keS5hcHBlbmQoc2VsZi5nZW5l cmF0ZUhlYWRlcihkYXRhKSk7CisKKyAgICAgIHZhciBncmlkQ29sdW1ucyA9 IF8uY2xvbmUodGhpcy5ncmlkU2NoZW1hLmNvbHVtbnMpOworCisgICAgICAv LyBJbnNlcnQgRGVsZXRlIENlbGwgaW50byBHcmlkCisgICAgICBpZiAoZGF0 YS5kaXNhYmxlZCA9PSBmYWxzZSAmJiBkYXRhLmNhbkRlbGV0ZSkgeworICAg ICAgICAgIGdyaWRDb2x1bW5zLnVuc2hpZnQoeworICAgICAgICAgICAgbmFt ZTogInBnLWJhY2tmb3JtLWRlbGV0ZSIsIGxhYmVsOiAiIiwKKyAgICAgICAg ICAgIGNlbGw6IEJhY2tncmlkLkV4dGVuc2lvbi5EZWxldGVDZWxsLAorICAg ICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCBjZWxsX3ByaW9yaXR5OiAtMQor ICAgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBpZiAoc2VsZi5ncmlk KSB7CisgICAgICAgIHNlbGYuZ3JpZC5yZW1vdmUoKTsKKyAgICAgICAgc2Vs Zi5ncmlkLm51bGw7CisgICAgICB9CisgICAgICAvLyBJbml0aWFsaXplIGEg bmV3IEdyaWQgaW5zdGFuY2UKKyAgICAgIHZhciBncmlkID0gc2VsZi5ncmlk ID0gbmV3IEJhY2tncmlkLkdyaWQoeworICAgICAgICBjb2x1bW5zOiBncmlk Q29sdW1ucywKKyAgICAgICAgY29sbGVjdGlvbjogc2VsZi5jb2xsZWN0aW9u LAorICAgICAgICBjbGFzc05hbWU6ICJiYWNrZ3JpZCB0YWJsZS1ib3JkZXJl ZCIKKyAgICAgIH0pOworICAgICAgc2VsZi4kZ3JpZCA9IGdyaWQucmVuZGVy KCkuJGVsOworCisgICAgICAkZ3JpZEJvZHkuYXBwZW5kKHNlbGYuJGdyaWQp OworCisgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBz ZWxmLmhlYWRlckRhdGEuc2V0KHsKKyAgICAgICAgICAnY29sdW1uJzogc2Vs Zi4kaGVhZGVyLmZpbmQoCisgICAgICAgICAgICAnZGl2W2hlYWRlcj0iY29s dW1uIl0gc2VsZWN0JworICAgICAgICAgICAgKS52YWwoKQorICAgICAgICAg ICAgfSwge3NpbGVudDp0cnVlfQorICAgICAgICAgICk7CisgICAgICB9LCAx MCk7CisKKyAgICAgIC8vIFJlbmRlciBub2RlIGdyaWQKKyAgICAgIHJldHVy biAkZ3JpZEJvZHk7CisgICAgfSwKKworICAgIGhlYWRlckRhdGFDaGFuZ2Vk OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpcywgdmFsLAor ICAgICAgICAgIGRhdGEgPSB0aGlzLmhlYWRlckRhdGEudG9KU09OKCksCisg ICAgICAgICAgaW5TZWxlY3RlZCA9IGZhbHNlLAorICAgICAgICAgIGNoZWNr VmFycyA9IFsnY29sdW1uJ107CisKKyAgICAgIGlmICghc2VsZi4kaGVhZGVy KSB7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKHNl bGYuY29udHJvbF9kYXRhLmNhbkFkZCkgeworICAgICAgICBzZWxmLmNvbGxl Y3Rpb24uZWFjaChmdW5jdGlvbihtKSB7CisgICAgICAgICAgaWYgKCFpblNl bGVjdGVkKSB7CisgICAgICAgICAgICBfLmVhY2goY2hlY2tWYXJzLCBmdW5j dGlvbih2KSB7CisgICAgICAgICAgICAgIGlmICghaW5TZWxlY3RlZCkgewor ICAgICAgICAgICAgICAgIHZhbCA9IG0uZ2V0KHYpOworICAgICAgICAgICAg ICAgIGluU2VsZWN0ZWQgPSAoKAorICAgICAgICAgICAgICAgICAgKF8uaXNV bmRlZmluZWQodmFsKSB8fCBfLmlzTnVsbCh2YWwpKSAmJgorICAgICAgICAg ICAgICAgICAgKF8uaXNVbmRlZmluZWQoZGF0YVt2XSkgfHwgXy5pc051bGwo ZGF0YVt2XSkpCisgICAgICAgICAgICAgICAgICApIHx8CisgICAgICAgICAg ICAgICAgICAodmFsID09IGRhdGFbdl0pKTsKKyAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfSk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg ICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBpblNlbGVjdGVkID0gdHJ1 ZTsKKyAgICAgIH0KKworICAgICAgc2VsZi4kaGVhZGVyLmZpbmQoJ2J1dHRv bi5hZGQnKS5wcm9wKCdkaXNhYmxlZCcsIGluU2VsZWN0ZWQpOworICAgIH0s CisKKyAgICBhZGRDb2x1bW5zOiBmdW5jdGlvbihldikgeworICAgICAgZXYu cHJldmVudERlZmF1bHQoKTsKKyAgICAgIHZhciBzZWxmID0gdGhpcywKKyAg ICAgICAgICBjb2x1bW4gPSBzZWxmLmhlYWRlckRhdGEuZ2V0KCdjb2x1bW4n KTsKKworICAgICAgaWYgKCFjb2x1bW4gfHwgY29sdW1uID09ICcnKSB7Cisg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgdmFyIG0g PSBuZXcgKHNlbGYuZmllbGQuZ2V0KCdtb2RlbCcpKSgKKyAgICAgICAgICAg ICAgICBzZWxmLmhlYWRlckRhdGEudG9KU09OKCkpLAorICAgICAgICAgIGNv bGwgPSBzZWxmLm1vZGVsLmdldChzZWxmLmZpZWxkLmdldCgnbmFtZScpKTsK KworICAgICAgY29sbC5hZGQobSk7CisKKyAgICAgIHZhciBpZHggPSBjb2xs LmluZGV4T2YobSk7CisKKyAgICAgIC8vIGlkeCBtYXkgbm90IGJlIGFsd2F5 cyA+IC0xIGJlY2F1c2Ugb3VyIFVuaXF1ZUNvbENvbGxlY3Rpb24gbWF5Cisg ICAgICAvLyByZW1vdmUgJ20nIGlmIGR1cGxpY2F0ZSB2YWx1ZSBmb3VuZC4K KyAgICAgIGlmIChpZHggPiAtMSkgeworICAgICAgICBzZWxmLiRncmlkLmZp bmQoJy5uZXcnKS5yZW1vdmVDbGFzcygnbmV3Jyk7CisKKyAgICAgICAgdmFy IG5ld1JvdyA9IHNlbGYuZ3JpZC5ib2R5LnJvd3NbaWR4XS4kZWw7CisKKyAg ICAgICAgbmV3Um93LmFkZENsYXNzKCJuZXciKTsKKyAgICAgICAgJChuZXdS b3cpLnBnTWFrZVZpc2libGUoJ2JhY2tmb3JtLXRhYicpOworICAgICAgfSBl bHNlIHsKKyAgICAgICAgZGVsZXRlIG07CisgICAgICB9CisKKyAgICAgIHJl dHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgb25BZGRvclJlbW92ZUNvbHVt bnM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGYgPSB0aGlzOworCisg ICAgICAvLyBXYWl0IGZvciBjb2xsZWN0aW9uIHRvIGJlIHVwZGF0ZWQgYmVm b3JlIGNoZWNraW5nIGZvciB0aGUgYnV0dG9uIHRvIGJlCisgICAgICAvLyBl bmFibGVkLCBvciBub3QuCisgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg eworICAgICAgICBzZWxmLmhlYWRlckRhdGFDaGFuZ2VkKCk7CisgICAgICB9 LCAxMCk7CisgICAgfSwKKworICAgIHJlbW92ZTogZnVuY3Rpb24oKSB7Cisg ICAgICAvKgorICAgICAgICogU3RvcCBsaXN0ZW5pbmcgdGhlIGV2ZW50cyBy ZWdpc3RlcmVkIGJ5IHRoaXMgY29udHJvbC4KKyAgICAgICAqLworICAgICAg dGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMuaGVhZGVyRGF0YSwgImNoYW5nZSIs IHRoaXMuaGVhZGVyRGF0YUNoYW5nZWQpOworICAgICAgdGhpcy5saXN0ZW5U byh0aGlzLmhlYWRlckRhdGEsICJzZWxlY3QyIiwgdGhpcy5oZWFkZXJEYXRh Q2hhbmdlZCk7CisgICAgICB0aGlzLmxpc3RlblRvKHRoaXMuY29sbGVjdGlv biwgInJlbW92ZSIsIHRoaXMub25BZGRvclJlbW92ZUNvbHVtbnMpOworCisg ICAgICBFeGNsdXNpb25Db25zdHJhaW50Q29sdW1uQ29udHJvbC5fX3N1cGVy X18ucmVtb3ZlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisKKyAgICAgIC8v IFJlbW92ZSB0aGUgaGVhZGVyIG1vZGVsCisgICAgICBkZWxldGUgKHRoaXMu aGVhZGVyRGF0YSk7CisKKyAgICB9CisgIH0pOworCisgIC8vIEV4dGVuZCB0 aGUgYnJvd3NlcidzIG5vZGUgY2xhc3MgZm9yIGV4Y2x1c2lvbiBjb25zdHJh aW50IG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2V4Y2x1c2lvbl9j b25zdHJhaW50J10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2V4 Y2x1c2lvbl9jb25zdHJhaW50J10gPSBwZ0Jyb3dzZXIuTm9kZS5leHRlbmQo eworICAgICAgdHlwZTogJ2V4Y2x1c2lvbl9jb25zdHJhaW50JywKKyAgICAg IGxhYmVsOiAne3sgXygnRXhjbHVzaW9uIGNvbnN0cmFpbnQnKSB9fScsCisg ICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLWNvbnN0cmFpbnRzJywKKyAg ICAgIGhhc1NRTDogdHJ1ZSwKKyAgICAgIHBhcmVudF90eXBlOiAndGFibGUn LAorICAgICAgY2FuRHJvcDogdHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRl OiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIEluaXQ6 IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9pZCBtdWx0aXBsZSByZWdp c3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRoaXMuaW5pdGlh bGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5p bml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93c2VyLmFkZF9t ZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZXhjbHVzaW9uX2Nv bnN0cmFpbnRfb25fY29sbCcsIG5vZGU6ICdjb2xsLWNvbnN0cmFpbnRzJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBs YWJlbDogJ3t7IF8oJ0V4Y2x1c2lvbiBjb25zdHJhaW50Li4uJykgfX0nLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1leGNsdXNpb25fY29u c3RyYWludCcsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1 ZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9 XSk7CisgICAgICB9LAorICAgICAgaXNfbm90X3ZhbGlkOiBmdW5jdGlvbihu b2RlKSB7CisgICAgICAgIHJldHVybiAobm9kZSAmJiAhbm9kZS52YWxpZCk7 CisgICAgICB9LAorICAgICAgLy8gRGVmaW5lIHRoZSBtb2RlbCBmb3IgZXhj bHVzaW9uIGNvbnN0cmFpbnQgbm9kZQorICAgICAgbW9kZWw6IHBnQWRtaW4u QnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRlZmF1bHRz OiB7CisgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIG9p ZDogdW5kZWZpbmVkLAorICAgICAgICAgIGNvbW1lbnQ6IHVuZGVmaW5lZCwK KyAgICAgICAgICBzcGNuYW1lOiAicGdfZGVmYXVsdCIsCisgICAgICAgICAg YW1uYW1lOiAiZ2lzdCIsCisgICAgICAgICAgZmlsbGZhY3RvcjogdW5kZWZp bmVkLAorICAgICAgICAgIGNvbmRlZmVycmFibGU6IHVuZGVmaW5lZCwKKyAg ICAgICAgICBjb25kZWZlcnJlZDogdW5kZWZpbmVkLAorICAgICAgICAgIGNv bHVtbnM6IFtdCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gRGVmaW5lIHRo ZSBzY2hlbWEgZm9yIHRoZSBleGNsdXNpb24gY29uc3RyYWludCBub2RlCisg ICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJl bDogJ3t7IF8oJ05hbWUnKSB9fScsIHR5cGU6ICd0ZXh0JywKKyAgICAgICAg ICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7eyBfKCdP SUQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0 ZXh0JyAsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnY29tbWVudCcsIGxhYmVsOid7eyBfKCdDb21tZW50Jykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGls aW5lJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10s CisgICAgICAgICAgZGVwczpbJ25hbWUnXSwgZGlzYWJsZWQ6ZnVuY3Rpb24o bSkgeworICAgICAgICAgICAgdmFyIG5hbWUgPSBtLmdldCgnbmFtZScpOwor ICAgICAgICAgICAgaWYgKCEobmFtZSAmJiBuYW1lICE9ICcnKSkgeworICAg ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CisgICAgICAgICAg ICAgICAgbS5zZXQoJ2NvbW1lbnQnLCBudWxsKTsKKyAgICAgICAgICAgICAg fSwxMCk7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdzcGNuYW1lJywgbGFiZWw6ICd7eyBfKCdUYWJsZXNwYWNlJykg fX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdE ZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxp c3QtYnktbmFtZScsIG5vZGU6ICd0YWJsZXNwYWNlJywKKyAgICAgICAgICBz ZWxlY3QyOnthbGxvd0NsZWFyOmZhbHNlfSwKKyAgICAgICAgICBmaWx0ZXI6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIC8vIERvbid0IHNob3cgcGdf Z2xvYmFsIHRhYmxlc3BhY2UgaW4gc2VsZWN0aW9uLgorICAgICAgICAgICAg aWYgKG0ubGFiZWwgPT0gInBnX2dsb2JhbCIpIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgIGVsc2UgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2FtbmFtZScsIGxhYmVsOiAne3sg XygnQWNjZXNzIG1ldGhvZCcpIH19JywKKyAgICAgICAgICB0eXBlOiAndGV4 dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAg ICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ImdldF9hY2Nl c3NfbWV0aG9kcyIsCisgICAgICAgICAgc2VsZWN0Mjp7YWxsb3dDbGVhcjp0 cnVlfSwKKyAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAg ICAgICAgICAgcmV0dXJuICFtLmlzTmV3KCk7CisgICAgICAgICAgfQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2ZpbGxmYWN0b3InLCBsYWJlbDog J3t7IF8oJ0ZpbGwgZmFjdG9yJykgfX0nLAorICAgICAgICAgIHR5cGU6ICdp bnQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIGFsbG93TnVs bDogdHJ1ZQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2NvbmRlZmVy cmFibGUnLCBsYWJlbDogJ3t7IF8oJ0RlZmVycmFibGUnKSB9fScsCisgICAg ICAgICAgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JywgZGVwczogWydpbmRleCddLAorICAgICAgICAgIGRpc2FibGVk OiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICByZXR1cm4gIW0uaXNOZXco KTsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn Y29uZGVmZXJyZWQnLCBsYWJlbDogJ3t7IF8oJ0RlZmVycmVkJykgfX0nLAor ICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogJ3t7IF8oJ0RlZmlu aXRpb24nKSB9fScsCisgICAgICAgICAgZGVwczogWydjb25kZWZlcnJhYmxl J10sCisgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAg ICAgICAgIHJldHVybiAhbS5pc05ldygpOworICAgICAgICAgIH0KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdjb25zdHJhaW50JywgbGFiZWw6J3t7 IF8oJ0NvbnN0cmFpbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0 J10sCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgcmV0dXJu ICFtLmlzTmV3KCk7CisgICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ2NvbHVtbnMnLCBsYWJlbDogJ3t7IF8oJ0NvbHVtbnMnKSB9 fScsCisgICAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogJ3t7 IF8oJ0NvbHVtbnMnKSB9fScsIGRpc2FibGVkOiBmYWxzZSwKKyAgICAgICAg ICBkZXBzOlsnYW1uYW1lJ10sCisgICAgICAgICAgY2FuQWRkOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICAvLyBXZSBjYW4ndCB1cGRhdGUgY29sdW1u cyBvZiBleGlzdGluZyBleGNsdXNpb24gY29uc3RyYWludC4KKyAgICAgICAg ICAgIHJldHVybiBtLmlzTmV3KCk7CisgICAgICAgICAgfSwgY2FuRGVsZXRl OiB0cnVlLAorICAgICAgICAgIGNvbnRyb2w6IEV4Y2x1c2lvbkNvbnN0cmFp bnRDb2x1bW5Db250cm9sLAorICAgICAgICAgIG1vZGVsOiBFeGNsdXNpb25D b25zdHJhaW50Q29sdW1uTW9kZWwsCisgICAgICAgICAgZGlzYWJsZWQ6IGZ1 bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIHJldHVybiAhbS5pc05ldygpOwor ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICB2 YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGhpcy5lcnJvck1v ZGVsLmNsZWFyKCk7CisKKyAgICAgICAgICB2YXIgY29sdW1ucyA9IHRoaXMu Z2V0KCdjb2x1bW5zJyk7CisgICAgICAgICAgaWYgKChfLmlzVW5kZWZpbmVk KGNvbHVtbnMpIHx8IF8uaXNOdWxsKGNvbHVtbnMpIHx8IGNvbHVtbnMubGVu Z3RoIDwgMSkpIHsKKyAgICAgICAgICAgIHZhciBtc2cgPSAne3sgXygnUGxl YXNlIHNwZWNpZnkgY29sdW1ucy4nKSB9fSc7CisgICAgICAgICAgICB0aGlz LmVycm9yTW9kZWwuc2V0KCdjb2x1bW5zJywgbXNnKTsKKyAgICAgICAgICAg IHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisgICAgICAgICAgcmV0dXJu IG51bGw7CisgICAgICAgIH0KKyAgICAgIH0pCisgICAgfSk7CisgIH0KKwor ICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydleGNsdXNpb25fY29uc3RyYWlu dCddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9iZWdpbi5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9iZWdpbi5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThiZmVlMQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVz aW9uX2NvbnN0cmFpbnQvc3FsL2JlZ2luLnNxbApAQCAtMCwwICsxIEBACitC RUdJTjsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9u X2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3Nx bC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25f Y29uc3RyYWludC9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNmE1M2NkCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9j b25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwv Y3JlYXRlLnNxbApAQCAtMCwwICsxLDEyIEBACitBTFRFUiBUQUJMRSB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpIH19CisgICAg QUREeyUgaWYgZGF0YS5uYW1lICV9IENPTlNUUkFJTlQge3sgY29ubnxxdElk ZW50KGRhdGEubmFtZSkgfX17JSBlbmRpZiV9IEVYQ0xVREUgeyUgaWYgZGF0 YS5hbW5hbWUgYW5kIGRhdGEuYW1uYW1lICE9ICcnICV9VVNJTkcge3tkYXRh LmFtbmFtZX19eyUgZW5kaWYgJX0gKAorICAgIHslIGZvciBjb2wgaW4gZGF0 YS5jb2x1bW5zICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LAorICAgIHsl IGVuZGlmICV9e3sgY29ubnxxdElkZW50KGNvbC5jb2x1bW4pfX0geyUgaWYg Y29sLm9wZXJfY2xhc3MgYW5kIGNvbC5vcGVyX2NsYXNzICE9ICcnICV9e3tj b2wub3Blcl9jbGFzc319IHslIGVuZGlmJX17JSBpZiBjb2wub3JkZXIgJX1B U0N7JSBlbHNlICV9REVTQ3slIGVuZGlmICV9IE5VTExTIHslIGlmIGNvbC5u dWxsc19vcmRlciAlfUZJUlNUeyUgZWxzZSAlfUxBU1R7JSBlbmRpZiAlfSBX SVRIIHt7Y29sLm9wZXJhdG9yfX17JSBlbmRmb3IgJX0peyUgaWYgZGF0YS5m aWxsZmFjdG9yICV9CisgICAgV0lUSCAoRklMTEZBQ1RPUj17e2RhdGEuZmls bGZhY3Rvcn19KXslIGVuZGlmICV9eyUgaWYgZGF0YS5zcGNuYW1lIGFuZCBk YXRhLnNwY25hbWUgIT0gInBnX2RlZmF1bHQiICV9CisKKyAgICBVU0lORyBJ TkRFWCBUQUJMRVNQQUNFIHt7IGNvbm58cXRJZGVudChkYXRhLnNwY25hbWUp IH19eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29uZGVmZXJyYWJsZSAlfQor CisgICAgREVGRVJSQUJMRXslIGlmIGRhdGEuY29uZGVmZXJyZWQgJX0KKyBJ TklUSUFMTFkgREVGRVJSRUR7JSBlbmRpZiV9Cit7JSBlbmRpZiV9eyUgaWYg ZGF0YS5jb25zdHJhaW50ICV9IFdIRVJFICh7e2RhdGEuY29uc3RyYWludH19 KXslIGVuZGlmJX07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3Ry YWludC9zcWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA5Njc5NQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNs dXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFp bnQvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwzIEBACit7JSBpZiBkYXRh ICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpIH19IERST1AgQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fXslIGlmIGNhc2NhZGUlfSBDQVNDQURFeyUgZW5k aWYgJX07Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9u X2NvbnN0cmFpbnQvc3FsL2VuZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVz L2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9lbmQuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZDA5ZDUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJh aW50L3NxbC9lbmQuc3FsCkBAIC0wLDAgKzEgQEAKK0VORDsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVt cGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9nZXRfYWNjZXNzX21l dGhvZHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29u c3RyYWludC9zcWwvZ2V0X2FjY2Vzc19tZXRob2RzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDc0MDU3Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3Ry YWludC9zcWwvZ2V0X2FjY2Vzc19tZXRob2RzLnNxbApAQCAtMCwwICsxLDYg QEAKK1NFTEVDVCBhbW5hbWUKK0ZST00gcGdfYW0KK1dIRVJFIEVYSVNUUyAo U0VMRUNUIDEKKyAgICAgICAgICAgICAgRlJPTSBwZ19wcm9jCisgICAgICAg ICAgICAgIFdIRVJFIG9pZD1hbWdldHR1cGxlKQorT1JERVIgQlkgYW1uYW1l OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29u c3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dl dF9jb25zdHJhaW50X2NvbHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9l eGNsdXNpb25fY29uc3RyYWludC9zcWwvZ2V0X2NvbnN0cmFpbnRfY29scy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc2NmE3 MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dldF9jb25zdHJhaW50X2NvbHMuc3Fs CkBAIC0wLDAgKzEsMTkgQEAKK3slIGZvciBuIGluIHJhbmdlKGNvbGNudHxp bnQpICV9Cit7JSBpZiBsb29wLmluZGV4ICE9IDEgJX0KK1VOSU9OCit7JSBl bmRpZiAlfQorU0VMRUNUCisgIGkuaW5kb3B0aW9uW3t7bG9vcC5pbmRleCAt MX19XSBBUyBvcHRpb25zLAorICBwZ19nZXRfaW5kZXhkZWYoaS5pbmRleHJl bGlkLCB7e2xvb3AuaW5kZXh9fSwgdHJ1ZSkgQVMgY29sZGVmLAorICBvcC5v cHJuYW1lLAorICBDQVNFIFdIRU4gKG8ub3BjZGVmYXVsdCA9IEZBTFNFKSBU SEVOIG8ub3BjbmFtZSBFTFNFIG51bGwgRU5EIEFTIG9wY25hbWUKKywKKyAg Y29sbC5jb2xsbmFtZSwgbnNwYy5uc3BuYW1lIGFzIGNvbGxuc3BuYW1lCitG Uk9NIHBnX2luZGV4IGkKK0pPSU4gcGdfYXR0cmlidXRlIGEgT04gKGEuYXR0 cmVsaWQgPSBpLmluZGV4cmVsaWQgQU5EIGF0dG51bSA9IHt7bG9vcC5pbmRl eH19KQorTEVGVCBPVVRFUiBKT0lOIHBnX29wY2xhc3MgbyBPTiAoby5vaWQg PSBpLmluZGNsYXNzW3t7bG9vcC5pbmRleCAtMX19XSkKK0xFRlQgT1VURVIg Sk9JTiBwZ19jb25zdHJhaW50IGMgT04gKGMuY29uaW5kaWQgPSBpLmluZGV4 cmVsaWQpIExFRlQgT1VURVIgSk9JTiBwZ19vcGVyYXRvciBvcCBPTiAob3Au b2lkID0gYy5jb25leGNsb3Bbe3tsb29wLmluZGV4fX1dKQorTEVGVCBPVVRF UiBKT0lOIHBnX2NvbGxhdGlvbiBjb2xsIE9OIGEuYXR0Y29sbGF0aW9uPWNv bGwub2lkCitMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcGMgT04g Y29sbC5jb2xsbmFtZXNwYWNlPW5zcGMub2lkCitXSEVSRSBpLmluZGV4cmVs aWQgPSB7e2NpZH19OjpvaWQKK3slIGVuZGZvciAlfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0 ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dldF9uYW1lLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29u c3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dl dF9uYW1lLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43YWFhNTIyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBs YXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwvZ2V0X25hbWUuc3FsCkBA IC0wLDAgKzEsMyBAQAorU0VMRUNUIGNvbm5hbWUgYXMgbmFtZQorRlJPTSBw Z19jb25zdHJhaW50IGN0CitXSEVSRSBjdC5jb25pbmRpZCA9IHt7Y2lkfX06 Om9pZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25f Y29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3Fs L2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25f Y29uc3RyYWludC9zcWwvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMTY4ZTEzYgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25f Y29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3Fs L2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUIGN0Lm9pZAor RlJPTSBwZ19jb25zdHJhaW50IGN0CitXSEVSRSBjb250eXBlPSd4JyBBTkQK K2N0LmNvbm5hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVt cGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9nZXRfb2lkX3dpdGhf dHJhbnNhY3Rpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNp b25fY29uc3RyYWludC9zcWwvZ2V0X29pZF93aXRoX3RyYW5zYWN0aW9uLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmU2MzZh Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNs dXNpb25fY29uc3RyYWludC9zcWwvZ2V0X29pZF93aXRoX3RyYW5zYWN0aW9u LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVCBjdC5vaWQsCisgICAgY3Qu Y29ubmFtZSBhcyBuYW1lLAorICAgIE5PVCBjb252YWxpZGF0ZWQgYXMgY29u dmFsaWRhdGVkCitGUk9NIHBnX2NvbnN0cmFpbnQgY3QKK1dIRVJFIGNvbnR5 cGU9J2YnIEFORAorICAgIGNvbnJlbGlkID0ge3t0aWR9fTo6b2lkIExJTUlU IDE7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9j b25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwv Z2V0X29wZXJfY2xhc3Muc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNs dXNpb25fY29uc3RyYWludC9zcWwvZ2V0X29wZXJfY2xhc3Muc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NzM5ZDAKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9j b25zdHJhaW50L3NxbC9nZXRfb3Blcl9jbGFzcy5zcWwKQEAgLTAsMCArMSw3 IEBACitTRUxFQ1Qgb3BjbmFtZQorRlJPTSBwZ19vcGNsYXNzIG9wYywKK3Bn X2FtIGFtCitXSEVSRSBvcGNtZXRob2Q9YW0ub2lkIEFORAorICAgICAgYW0u YW1uYW1lID17e2luZGV4dHlwZXxxdExpdGVyYWx9fSBBTkQKKyAgICAgIE5P VCBvcGNkZWZhdWx0CitPUkRFUiBCWSAxClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNs dXNpb25fY29uc3RyYWludC9zcWwvZ2V0X29wZXJhdG9yLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3Ry YWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dldF9v cGVyYXRvci5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjkyYTk2MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1w bGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL2dldF9vcGVyYXRvci5z cWwKQEAgLTAsMCArMSw5IEBACitTRUxFQ1QgRElTVElOQ1Qgb3Aub3BybmFt ZSBhcyBvcHJuYW1lCitGUk9NIHBnX29wZXJhdG9yIG9wCitMRUZUIE9VVEVS IEpPSU4gcGdfYXR0cmlidXRlIGF0dCBPTiAob3Aub3BybGVmdD1hdHQuYXR0 dHlwaWQgT1Igb3Aub3BycmlnaHQ9YXR0LmF0dHR5cGlkKQorV0hFUkUgIG9w cmNvbSA+IDAgQU5ECisgICAgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6b2lk IEFORAorICAgIGF0dC5hdHRuYW1lID0ge3tjb2x8cXRMaXRlcmFsfX0gQU5E CisgICAgYXR0LmF0dG51bSA+IDAgQU5ECisgICAgYXR0LmF0dGlzZHJvcHBl ZCBJUyBGQUxTRQorT1JERVIgQlkgb3BybmFtZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25z dHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwvZ2V0 X3BhcmVudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9j b25zdHJhaW50L3NxbC9nZXRfcGFyZW50LnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5hNjUyODU3Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lv bl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9z cWwvZ2V0X3BhcmVudC5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QgbnNw Lm5zcG5hbWUgQVMgc2NoZW1hLAorICAgIHJlbC5yZWxuYW1lIEFTIHRhYmxl CitGUk9NCisgICAgcGdfY2xhc3MgcmVsCitKT0lOIHBnX25hbWVzcGFjZSBu c3AKK09OIHJlbC5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkOjppbnQKK1dIRVJF IHJlbC5vaWQgPSB7e3RpZH19OjppbnQKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3NxbC9ncmFudC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVt cGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9ncmFudC5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZiMGVhNQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9u X2NvbnN0cmFpbnQvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDQgQEAKK3sl IGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBDT05TVFJBSU5UIHt7 IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSkgfX0KKyAgICBJUyB7eyBkYXRh LmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVt cGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9ub2Rlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2Nv bnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9u b2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YzY3YzQwZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0 ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsL25vZGVzLnNxbApAQCAtMCww ICsxLDcgQEAKK1NFTEVDVCBjb25pbmRpZCBhcyBvaWQsCisgICAgY29ubmFt ZSBhcyBuYW1lLAorICAgIE5PVCBjb252YWxpZGF0ZWQgYXMgY29udmFsaWRh dGVkCitGUk9NIHBnX2NvbnN0cmFpbnQgY3QKK1dIRVJFIGNvbnR5cGU9J3gn IEFORAorICAgIGNvbnJlbGlkID0ge3t0aWR9fTo6b2lkCitPUkRFUiBCWSBj b25uYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lv bl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9z cWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3NxbC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTFjODk3Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4 Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3Ry YWludC9zcWwvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzMCBAQAorU0VM RUNUIGNscy5vaWQsCisgICAgY2xzLnJlbG5hbWUgYXMgbmFtZSwKKyAgICBp bmRuYXR0cywKKyAgICBhbW5hbWUsCisgICAgQ09BTEVTQ0Uoc3BjbmFtZSwg J3BnX2RlZmF1bHQnKSBhcyBzcGNuYW1lLAorICAgIENBU0UgY29udHlwZQor ICAgICAgICBXSEVOICdwJyBUSEVOIGRlc3AuZGVzY3JpcHRpb24KKyAgICAg ICAgV0hFTiAndScgVEhFTiBkZXNwLmRlc2NyaXB0aW9uCisgICAgICAgIFdI RU4gJ3gnIFRIRU4gZGVzcC5kZXNjcmlwdGlvbgorICAgICAgICBFTFNFIGRl cy5kZXNjcmlwdGlvbgorICAgIEVORCBBUyBjb21tZW50LAorICAgIGNvbmRl ZmVycmFibGUsCisgICAgY29uZGVmZXJyZWQsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjbHMucmVsb3B0aW9ucywgJywnKSBmcm9tICdmaWxs ZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZhY3RvcgorRlJPTSBwZ19pbmRl eCBpZHgKK0pPSU4gcGdfY2xhc3MgY2xzIE9OIGNscy5vaWQ9aW5kZXhyZWxp ZAorSk9JTiBwZ19jbGFzcyB0YWIgT04gdGFiLm9pZD1pbmRyZWxpZAorTEVG VCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2UgdGEgb24gdGEub2lkPWNscy5y ZWx0YWJsZXNwYWNlCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkPXRh Yi5yZWxuYW1lc3BhY2UKK0pPSU4gcGdfYW0gYW0gT04gYW0ub2lkPWNscy5y ZWxhbQorTEVGVCBKT0lOIHBnX2RlcGVuZCBkZXAgT04gKGRlcC5jbGFzc2lk ID0gY2xzLnRhYmxlb2lkIEFORCBkZXAub2JqaWQgPSBjbHMub2lkIEFORCBk ZXAucmVmb2Jqc3ViaWQgPSAnMCcgQU5EIGRlcC5yZWZjbGFzc2lkPShTRUxF Q1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZT0ncGdfY29uc3Ry YWludCcpIEFORCBkZXAuZGVwdHlwZT0naScpCitMRUZUIE9VVEVSIEpPSU4g cGdfY29uc3RyYWludCBjb24gT04gKGNvbi50YWJsZW9pZCA9IGRlcC5yZWZj bGFzc2lkIEFORCBjb24ub2lkID0gZGVwLnJlZm9iamlkKQorTEVGVCBPVVRF UiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jbHMu b2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitM RUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzcCBPTiAoZGVzcC5v YmpvaWQ9Y29uLm9pZCBBTkQgZGVzcC5vYmpzdWJpZCA9IDAgQU5EIGRlc3Au Y2xhc3NvaWQ9J3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcykKK1dIRVJFIGlu ZHJlbGlkID0ge3t0aWR9fTo6b2lkCit7JSBpZiBjaWQgJX0KK0FORCBjbHMu b2lkID0ge3tjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorQU5EIGNvbnR5cGU9 J3gnCitPUkRFUiBCWSBjbHMucmVsbmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhj bHVzaW9uX2NvbnN0cmFpbnQvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC91cGRhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwNjJlOGIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMjIg QEAKK3sjIyMgU1FMIHRvIHVwZGF0ZSBleGNsdXNpb24gY29uc3RyYWludCBv YmplY3QgIyMjfQoreyUgaWYgZGF0YSAlfQoreyMgPT09PSBUbyB1cGRhdGUg ZXhjbHVzaW9uIGNvbnN0cmFpbnQgbmFtZSA9PT09ICN9Cit7JSBpZiBkYXRh Lm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSkgfX0KKyAgICBSRU5B TUUgQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19 IFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYg JX0KK3sjID09PT0gVG8gdXBkYXRlIGV4Y2x1c2lvbiBjb25zdHJhaW50IHRh Ymxlc3BhY2UgPT09PSAjfQoreyUgaWYgZGF0YS5zcGNuYW1lIGFuZCBkYXRh LnNwY25hbWUgIT0gb19kYXRhLnNwY25hbWUgJX0KK0FMVEVSIElOREVYIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAg IFNFVCBUQUJMRVNQQUNFIHt7IGNvbm58cXRJZGVudChkYXRhLnNwY25hbWUp IH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZmlsbGZhY3RvciBhbmQg ZGF0YS5maWxsZmFjdG9yICE9IG9fZGF0YS5maWxsZmFjdG9yICV9CitBTFRF UiBJTkRFWCB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSkgfX0KKyAgICBTRVQgKEZJTExGQUNUT1I9e3sgZGF0YS5maWxsZmFjdG9y IH19KTsKK3slIGVuZGlmICV9Cit7IyA9PT09IFRvIHVwZGF0ZSBleGNsdXNp b24gY29uc3RyYWludCBjb21tZW50cyA9PT09ICN9Cit7JSBpZiBkYXRhLmNv bW1lbnQgYW5kIGRhdGEuY29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAlfQor Q09NTUVOVCBPTiBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChkYXRhLm5h bWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19 OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQo= --001a114153d6fd95d50530327a8b Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a114153d6fd95d50530327a8b--