Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1np0Nq-0003Ie-UV for pgsql-hackers@arkaria.postgresql.org; Thu, 12 May 2022 04:25:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1np0No-00024b-V3 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 May 2022 04:25:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1np0No-00024S-Bk for pgsql-hackers@lists.postgresql.org; Thu, 12 May 2022 04:25:00 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1np0Nh-0000vQ-8t for pgsql-hackers@lists.postgresql.org; Thu, 12 May 2022 04:24:59 +0000 Received: by mail-ed1-x52f.google.com with SMTP id a21so4809219edb.1 for ; Wed, 11 May 2022 21:24:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/S7Q7EE7BabLH9xWTOcnXyqoXLLsDjPW4T8jJtSsH/k=; b=oXPlL0IMDCSZ+rGAnC+/pHXtBY4eoUIgmonXDfzNrMAZLp+SnCHZlv5rcE0aMPC2rO WFWgnJN0cEa6NHC43HsSKy+As/IT8IEyzlyiCLkq3tRRlC4TiPYPCfvI8uztLIoQ6ki9 cv+0SMAJxWFQQdCsCBm0akxSzZLJLrIL9l/gKfSLkEbVD+c0j2ENy+49QnyX7V3OCVj8 QHidmznyEdmaIkJMnfIgoLkM+00Xs8c0xLbUhu9xw3+w7HmxnADRxuRutuYphL0m14Vv Bea3y4+de8Qh7F9n8zOZZmkOhU6nibFSPlo4ECfrkA8d4m795yPlOxK8cZ23lLG8YHiD 22QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/S7Q7EE7BabLH9xWTOcnXyqoXLLsDjPW4T8jJtSsH/k=; b=HSCjj57QhwHGOViHzXipUEkAtsCs9dLv++DXP2//R3Xce8TzbQrUqVEm9yiuP3hDWb NsMiLb1GftaesgUct5P9LyW07hi+Y38pZ3oblMWxcDGWY65RBqywmpTmr2SfDMDhDG8f aiHJiuODb+GN/na/CAZ6AgSopxLi6D3YAIfFX+6CcnSjcLLb5qY+PyTBhGE/l89XeHsi bi7egY/WP1XYLn2y04j3yghoS/NHtV1WbIJJjlr34FrlmV5GernGFqcr5Cu4iO1VRL0f ldIYuXRzut3ishuIuSrzA7hYvNJLKQKp1ilfFBmKhdYWtaUQ3waalhUeiBhkpecnZRLc W5Qg== X-Gm-Message-State: AOAM532GHXouMORh9pF9vmBanOEMIOz4QrIQlKqnUwmVD5o8El1+BKb2 DsgAbSSq5/bPum+wbMvIlqCobHVG08O3iRTRDNY= X-Google-Smtp-Source: ABdhPJyj7ztPg77w2lvQ/vup7fP6S+fU0ceVEQM8PzA8K5dAq3dJIiBH7G6lTsRPNBvbiv0jeH6sY83udCc+V4nhex0= X-Received: by 2002:a05:6402:4313:b0:427:ca44:5d5e with SMTP id m19-20020a056402431300b00427ca445d5emr33631085edc.67.1652329490797; Wed, 11 May 2022 21:24:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Thu, 12 May 2022 09:54:39 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000005a27fb05dec8f0dd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005a27fb05dec8f0dd Content-Type: text/plain; charset="UTF-8" On Tue, May 10, 2022 at 9:08 AM vignesh C wrote: > > On Fri, May 6, 2022 at 8:05 AM Peter Smith wrote: > > > > On Thu, Apr 28, 2022 at 9:32 PM Amit Kapila wrote: > > > > > ... > > > > > > Another idea that occurred to me today for tables this is as follows: > > > 1. Allow to mention except during create publication ... For All Tables. > > > CREATE PUBLICATION pub1 FOR ALL TABLES EXCEPT TABLE t1,t2; > > > 2. Allow to Reset it. This new syntax will reset all objects in the > > > publications. > > > Alter Publication ... RESET; > > > 3. Allow to add it to an existing publication > > > Alter Publication ... Add ALL TABLES [EXCEPT TABLE t1,t2]; > > > > > > I think it can be extended in a similar way for schema syntax as well. > > > > > > > If the proposed syntax ALTER PUBLICATION ... RESET will reset all the > > objects in the publication then there still seems simple way to remove > > only the EXCEPT list but leave everything else intact. IIUC to clear > > just the EXCEPT list would require a 2 step process - 1) ALTER ... > > RESET then 2) ALTER ... ADD ALL TABLES again. > > > > I was wondering if it might be useful to have a variation that *only* > > resets the EXCEPT list, but still leaves everything else as-is? > > > > So, instead of: > > ALTER PUBLICATION pubname RESET > > +1 for this syntax as this syntax can be extendable to include options > like (except/all/etc) later. > Currently we can support this syntax and can be extended later based > on the requirements. The attached patch has the implementation for "ALTER PUBLICATION pubname RESET". This command will reset the publication to default state which includes resetting the publication options, setting ALL TABLES option to false and dropping the relations and schemas that are associated with the publication. Regards, Vignesh --0000000000005a27fb05dec8f0dd Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-Add-RESET-option-to-Alter-Publication-which-will-.patch" Content-Disposition: attachment; filename="v1-0001-Add-RESET-option-to-Alter-Publication-which-will-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l32i9bce0 RnJvbSBjNTViZWZlNmY1MzY0OWJhYmNlMWRkNTI2YjFjMTIzYjc3NzMxZGNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAxMiBNYXkgMjAyMiAwODoyOTozOCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjFd IEFkZCBSRVNFVCBvcHRpb24gdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbCByZXNldCB0 aGUKIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFkZHMgYSBu ZXcgUkVTRVQgb3B0aW9uIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVzZXQKdGhl IHB1YmxpY2F0aW9uIHRvIGRlZmF1bHQgc3RhdGUgd2hpY2ggaW5jbHVkZXMgcmVzZXR0aW5nIHRo ZSBwdWJsaWNhdGlvbgpvcHRpb25zLCBzZXR0aW5nIEFMTCBUQUJMRVMgb3B0aW9uIHRvIGZhbHNl IGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNBVElPTiBwdWIxIFJF U0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgIHwgMjkg KysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgfCA5OSAr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICAgICAgfCAgOSArKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAg ICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgIHwg IDMgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgNjkgKysr KysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg fCAzNyArKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGUy Y2NlNDk0NzEuLjI5ZjM4NThkZTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9u LnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWMKIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFt ZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1 ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxh Y2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9V U0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5u ZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtNjUsNyArNjYsMTggQEAgQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVGhlIHJlbWFpbmluZyB2 YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUgbmFtZSBvZiB0aGUgcHVibGljYXRpb24u CisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUg b3duZXIgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUg PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2Yg dGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+ UkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB0byBkZWZh dWx0CisgICBzdGF0ZSB3aGljaCBpbmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIG9w dGlvbnMsIHNldHRpbmcKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IG9wdGlvbiB0 byA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4gYW5kIGRyb3AgdGhlCisgICByZWxhdGlvbnMgYW5k IHNjaGVtYXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9w YXJhPgogCiAgIDxwYXJhPgpAQCAtNzMsMTAgKzg1LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyCiAgICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1 aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KICAgIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAogICAgPGxpdGVyYWw+U0VUIEFMTCBUQUJMRVMgSU4gU0NI RU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZQotICAgaW52b2tpbmcg dXNlciB0byBiZSBhIHN1cGVydXNlci4gIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYWxz byBiZSBhCi0gICBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJv bGUuIFRoZSBuZXcgb3duZXIgbXVzdCBoYXZlCi0gICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+ IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuICBBbHNvLCB0aGUgbmV3IG93bmVyCi0gICBvZiBh IDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5GT1IgQUxMIFRB QkxFUyBJTgorICAgaW52b2tpbmcgdXNlciB0byBiZSBhIHN1cGVydXNlci4gIDxsaXRlcmFsPlJF U0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbgorICAgcmVxdWlyZXMgaW52b2tpbmcgdXNlciB0 byBiZSBhIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvCisgICBi ZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZS4gVGhl IG5ldyBvd25lciBtdXN0CisgICBoYXZlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmls ZWdlIG9uIHRoZSBkYXRhYmFzZS4gIEFsc28sIHRoZSBuZXcKKyAgIG93bmVyIG9mIGEgPGxpdGVy YWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTIElO CiAgICBTQ0hFTUE8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIG11c3QgYmUgYSBzdXBlcnVzZXIuIEhv d2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbgogICAgY2hhbmdlIHRoZSBvd25lcnNoaXAgb2YgYSBwdWJs aWNhdGlvbiByZWdhcmRsZXNzIG9mIHRoZXNlIHJlc3RyaWN0aW9ucy4KICAgPC9wYXJhPgpAQCAt MjA3LDYgKzIyMCwxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnBy b2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxU RVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRl cGFydG1lbnRzLCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBSZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIDxz dHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBSRVNFVDsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNmRmMGU2NjcwZi4uYzg4M2M0Zjc1YSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTExMDQsNiArMTEwNCwxMDMgQEAg SW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxpZGF0 ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisgKgor ICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIG9wdGlvbnMsIHB1YmxpY2F0aW9uIHJlbGF0aW9ucyBh bmQgcHVibGljYXRpb24gc2NoZW1hcy4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRp b25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAor CQkJCQkJUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQoreworCUZvcm1fcGdfcHVibGljYXRp b24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJ CQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0CSAgICpzY2hlbWFzID0gTklMOworCUxpc3QJ ICAgKnJlbHMgPSBOSUw7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCWJv b2wJCXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRz X3BnX3B1YmxpY2F0aW9uXTsKKwlPYmplY3RBZGRyZXNzIG9iajsKKwlMaXN0Q2VsbCAgICpsYzsK KwlPaWQJCQlwcmlkOworCisJLyogUkVTRVQgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2Vy ICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVy dXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVv Zih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKwltZW1z ZXQocmVwbGFjZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKworCS8qIENoZWNrIGFuZCBy ZXNldCB0aGUgb3B0aW9ucyAqLworCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCisJeworCQl2 YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IEJvb2xHZXREYXR1 bShmYWxzZSk7CisJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0g MV0gPSB0cnVlOworCX0KKworCWlmICghcHViZm9ybS0+cHViaW5zZXJ0KQorCXsKKwkJdmFsdWVz W0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7 CisJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0gMV0gPSB0cnVlOwor CX0KKworCWlmICghcHViZm9ybS0+cHVidXBkYXRlKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVi bGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJCXJlcGxhY2Vz W0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCX0KKworCWlmICgh cHViZm9ybS0+cHViZGVsZXRlKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVi ZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJCXJlcGxhY2VzW0FudW1fcGdfcHVi bGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSB0cnVlOworCX0KKworCWlmICghcHViZm9ybS0+cHVi dHJ1bmNhdGUpCisJeworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAt IDFdID0gQm9vbEdldERhdHVtKHRydWUpOworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9u X3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOworCX0KKworCWlmIChwdWJmb3JtLT5wdWJ2aWFyb290 KQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9v bEdldERhdHVtKGZhbHNlKTsKKwkJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFy b290IC0gMV0gPSB0cnVlOworCX0KKworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwor CS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1Ymlk KTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFzLCBmYWxzZSk7CisKKwkv KiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwor CXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lk KGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxp ZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlpZiAoIU9pZElzVmFs aWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOworCisJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQs IHByaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwl9Cit9 CisKIC8qCiAgKiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8K QEAgLTE0MTUsNiArMTUxMiw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRpb25zKQogCQlB bHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlm IChzdG10LT5hY3Rpb24gPT0gQVBfUmVTZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlv blJlc2V0KHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJl bGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGM5OTQxZDljYjQuLjc1NWE4NjE2MTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtMTAwMDUsNiArMTAwMDUsOCBAQCBwdWJfb2JqX2xpc3Q6IAlQdWJsaWNh dGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqIFss IC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCisgKgogICogcHViX29i aiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlX25hbWUgWywgLi4uXQpAQCAtMTAwNDcs NiArMTAwNDksMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPmFjdGlvbiA9IEFQ X0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBV QkxJQ0FUSU9OIG5hbWUgUkVTRVQKKwkJCQl7CisJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7 CisJCQkJCW4tPmFjdGlvbiA9IEFQX1JlU2V0UHVibGljYXRpb247CisJCQkJCSQkID0gKE5vZGUg KiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpp bmRleCA1ODhjMDg0MWZlLi4yMzJmNTZhMDFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xODE5LDcg KzE4MTksNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSkpCi0JCUNPTVBMRVRFX1dJVEgo IkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQiKTsKKwkJQ09NUExF VEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwg IlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCiAJCUNPTVBM RVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggOWE3MTZmMzc5NC4uYWMzMGM0ZjZjOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aApAQCAtNDAzMyw3ICs0MDMzLDggQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rp b24KIHsKIAlBUF9BZGRPYmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAq LwogCUFQX0Ryb3BPYmplY3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9u ICovCi0JQVBfU2V0T2JqZWN0cwkJCQkvKiBzZXQgbGlzdCBvZiBvYmplY3RzICovCisJQVBfU2V0 T2JqZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1JlU2V0UHVibGljYXRp b24JCQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlv bjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggMzk4YzBmMzhmNi4uZGM4OTA5NGUwOCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE2NTMsNiAr MTY1Myw3NSBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIERST1AgVEFCTEUgc2NoMS50YmwxOwog RFJPUCBTQ0hFTUEgc2NoMSBjYXNjYWRlOwogRFJPUCBTQ0hFTUEgc2NoMiBjYXNjYWRlOworLS0g VGVzdCBmb3IgUkVTRVQgUFVCTElDQVRJT04KK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVB VEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJM RVM7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJM RVMnIG9wdGlvbiBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDEsIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IHRhYmxlcyBhbmQgc2NoZW1h cyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkCistLSBhZnRlciBS RVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIKK1RhYmxlcyBm cm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycsIFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09U ID0gJ3RydWUnKTsKKy0tIFZlcmlmeSB0aGF0IHB1Ymxpc2ggb3B0aW9uIGFuZCBwdWJsaXNoIHZp YSByb290IG9wdGlvbiBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAg fCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IHQKKygxIHJvdykKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKKy0t IFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBleGVjdXRlIFJFU0VUIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbAorRVJST1I6ICBtdXN0IGJl IHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBw dWJfc2NoMS50YmwxOworRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwogRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcl9kdW1t eTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA5ZWI4NmZkNTRmLi42OTZm NzIzZGE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDU3LDYgKzEw NTcsNDMgQEAgRFJPUCBUQUJMRSBzY2gxLnRibDE7CiBEUk9QIFNDSEVNQSBzY2gxIGNhc2NhZGU7 CiBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAKKy0tIFRlc3QgZm9yIFJFU0VUIFBVQkxJQ0FU SU9OCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEg KGEgaW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKKworLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIG9wdGlvbiBpcyByZXNldAor XGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgVEFCTEUgcHViX3NjaDEudGJsMSwgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOwor CistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBw dWJsaWNhdGlvbiBhcmUgZHJvcHBlZAorLS0gYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVz ZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0g JycsIFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKKworLS0gVmVyaWZ5IHRo YXQgcHVibGlzaCBvcHRpb24gYW5kIHB1Ymxpc2ggdmlhIHJvb3Qgb3B0aW9uIGlzIHJlc2V0Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VU OworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBj YW4gZXhlY3V0ZSBSRVNFVCBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7IC0tIGZhaWwKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKKworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJP UCBTQ0hFTUEgcHViX3NjaDE7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1Ag Uk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7 CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwotLSAKMi4zMi4wCgo= --0000000000005a27fb05dec8f0dd--