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 1nV0KB-0000iq-K4 for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Mar 2022 00:18:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nV0KA-0006Qu-FF for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Mar 2022 00:18:34 +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 1nV0K9-0006Ql-Er for pgsql-hackers@lists.postgresql.org; Fri, 18 Mar 2022 00:18:34 +0000 Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nV0K5-0005dh-Px for pgsql-hackers@lists.postgresql.org; Fri, 18 Mar 2022 00:18:32 +0000 Received: by mail-oo1-xc2f.google.com with SMTP id s203-20020a4a3bd4000000b003191c2dcbe8so8442213oos.9 for ; Thu, 17 Mar 2022 17:18:29 -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=eoVG2eE8ghbwDZF3KAdkWmcnYfU5x7mzmAVNm3SuliY=; b=qsix8l1Mbl9ausYswxx3NRZeVm0ZmtXkzWpHGGZLOsvCvDQmZj0Eu946CY7m3ehAj9 2UaIl/P9Jj2lwd35J328y6D3kCBJpnpiZul/AsViQ5bHnFFBOda7+DPD186TAvOpKrRT auy5nDYGtthU7vQOs6fw4Vo1jqtD1mC1fPmp+Rbyjk4eJYqf7b3THHebWSNcHfM/9bp0 ZbH6qKpu+qZoLHyJhFu4SXch5Cvlg3os2eL82/B1BRn9GjEI8ZJ24mCbQJiHHoFfqG89 YaHCw189TdpbWtrBURuTSpzExfAuzrJB44ahUXxPJHhx/qFaTSOMNVl/3BgF+09Z88dB HRlw== 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=eoVG2eE8ghbwDZF3KAdkWmcnYfU5x7mzmAVNm3SuliY=; b=prwxmcgxP1luy7yFSRcg91S/Fowdhc1v4tx8DQc34g+Fe4R/6521fdGO7zHw3WY2h/ rS9nz+uSqlc4+CVBb/TjYqV/pj+E68A8GfRytD8KqfrPBV4VFRPfKDd4b84Vm9sD/RzY IwmDOUjSGg1DeSFWsFF6Oe29jfF8OvvwiKwEYvPbo87iBBaLRpve2TBa9eevLzniEQgu vZ9lHsAZId0T65jC9XaL/cM713zUVbjf7kYEblpqbXzBSWpE/TNr8gvuAF4MVJZXAvtM WcSUnAAI7NlQEsNMRRNgLS9I8RRzBrxC7IE9zj6hRdtuuQjkFV55PBMGi4Z5bl5PlhJS LRpw== X-Gm-Message-State: AOAM5333QWLsXvrGRIMVXxVlwEE4sf6Y7enzSKmppdUbOa/Ci9kp71CP 64wRLVFT1UDibVwh7NpOFMziukJ3h5DgLK9N8n4= X-Google-Smtp-Source: ABdhPJzvtII8NZmZgmTExDZ0gpnQUf/mSmwFDSjSKpw92+KczdSRjh4yvxmLnwi4OIqVjDtdtyj4nl4qCpA7t95gJ1U= X-Received: by 2002:a05:6870:e74e:b0:dd:b11d:b460 with SMTP id t14-20020a056870e74e00b000ddb11db460mr3321017oak.249.1647562709245; Thu, 17 Mar 2022 17:18:29 -0700 (PDT) MIME-Version: 1.0 References: <202203162206.7spggyktx63e@alvherre.pgsql> In-Reply-To: From: Zheng Li Date: Thu, 17 Mar 2022 20:18:18 -0400 Message-ID: Subject: Re: Support logical replication of DDLs To: Japin Li Cc: Alvaro Herrera , Dilip Kumar , rajesh.rs0541@gmail.com, PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000008262705da7316ad" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000008262705da7316ad Content-Type: text/plain; charset="UTF-8" Hello, Attached please find the broken down patch set. Also fixed the failing TAP tests Japin reported. Regards, Zheng Li Amazon RDS/Aurora for PostgreSQL --00000000000008262705da7316ad Content-Type: application/octet-stream; name="0001-syntax-pg_publication-pg_dump-ddl_replication.patch" Content-Disposition: attachment; filename="0001-syntax-pg_publication-pg_dump-ddl_replication.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l0vo8ljc0 Y29tbWl0IDNjYWE5MjEwOTc0Zjc0OWU3YmY4MmQ4MGRlNTdmZTlkMjA4OTg0YjQKQXV0aG9yOiBa aGVuZyAoWmFuZSkgTGkgPHpoZWxsaUBhbWF6b24uY29tPgpEYXRlOiAgIEZyaSBNYXIgMTggMDA6 MDE6MzQgMjAyMiArMDAwMAoKICAgIDAwMDEtc3ludGF4LXBnX3B1YmxpY2F0aW9uLXBnX2R1bXAt ZGRsX3JlcGxpY2F0aW9uLnBhdGNoCiAgICAxLiBTeW50YXgsIHBnX3B1YmxpY2F0aW9uIGFuZCBw Z19kdW1wIGNoYW5nZToKICAgIEFsbG93cyB0aGUgdXNlciB0byBjb25maWd1cmUgZWl0aGVyIGRh dGFiYXNlIGxldmVsIG9yIHRhYmxlIGxldmVsCiAgICBEREwgcmVwbGljYXRpb24gdmlhIHRoZSBD UkVBVEUgUFVCTElDQVRJT04gY29tbWFuZCBhcyBwcm9wb3NlZAogICAgaW4gbXkgZmlyc3QgZW1h aWwuIFR3byBuZXcgY29sdW1ucyBhcmUgYWRkZWQgdG8gdGhlIHBnX3B1YmxpY2F0aW9uCiAgICBj YXRhbG9nIHRvIHNob3cgdGhlIERETCByZXBsaWNhdGlvbiBsZXZlbHMsIHRlc3Qgb3V0cHV0CiAg ICBwdWJsaWNhdGlvbi5vdXQgaXMgdXBkYXRlZCBhY2NvcmRpbmdseS4gcGdfZHVtcCBpcyBhbHNv IG1vZGlmaWVkCiAgICB0byBhY2NvbW1vZGF0ZSB0aGUgcGdfcHVibGljYXRpb24gY2F0YWxvZyBj aGFuZ2UuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDc4OWI4OTVkYjgu LjAwYjU2NzNiOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTg1Nyw2 ICs4NTcsOCBAQCBHZXRQdWJsaWNhdGlvbihPaWQgcHViaWQpCiAJcHViLT5wdWJhY3Rpb25zLnB1 YmRlbGV0ZSA9IHB1YmZvcm0tPnB1YmRlbGV0ZTsKIAlwdWItPnB1YmFjdGlvbnMucHVidHJ1bmNh dGUgPSBwdWJmb3JtLT5wdWJ0cnVuY2F0ZTsKIAlwdWItPnB1YnZpYXJvb3QgPSBwdWJmb3JtLT5w dWJ2aWFyb290OworCXB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2UgPSBwdWJmb3JtLT5w dWJkZGxfZGF0YWJhc2U7CisJcHViLT5wdWJhY3Rpb25zLnB1YmRkbF90YWJsZSA9IHB1YmZvcm0t PnB1YmRkbF90YWJsZTsKIAogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDFhYWQyZTc2OWMuLjdkNzY3YzJiYzQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC04MCwxMCArODAsMTIgQEAgc3Rh dGljIHZvaWQgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMs IGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgdm9pZAogcGFyc2VfcHVibGljYXRpb25fb3B0aW9u cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIExpc3QgKm9wdGlvbnMsCisJCQkJCQkgIGJv b2wgZm9yX2FsbF90YWJsZXMsCiAJCQkJCQkgIGJvb2wgKnB1Ymxpc2hfZ2l2ZW4sCiAJCQkJCQkg IFB1YmxpY2F0aW9uQWN0aW9ucyAqcHViYWN0aW9ucywKIAkJCQkJCSAgYm9vbCAqcHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3RfZ2l2ZW4sCi0JCQkJCQkgIGJvb2wgKnB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KQorCQkJCQkJICBib29sICpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCwKKwkJ CQkJCSAgYm9vbCAqZGRsX2xldmVsX2dpdmVuKQogewogCUxpc3RDZWxsICAgKmxjOwogCkBAIC05 Niw2ICs5OCwxNiBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAlwdWJhY3Rpb25zLT5wdWJkZWxldGUgPSB0cnVlOwogCXB1YmFjdGlvbnMtPnB1YnRydW5j YXRlID0gdHJ1ZTsKIAkqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZTsKKwlpZiAo Zm9yX2FsbF90YWJsZXMpCisJeworCQlwdWJhY3Rpb25zLT5wdWJkZGxfZGF0YWJhc2UgPSB0cnVl OworCQlwdWJhY3Rpb25zLT5wdWJkZGxfdGFibGUgPSB0cnVlOworCX0KKwllbHNlCisJeworCQlw dWJhY3Rpb25zLT5wdWJkZGxfZGF0YWJhc2UgPSBmYWxzZTsKKwkJcHViYWN0aW9ucy0+cHViZGRs X3RhYmxlID0gZmFsc2U7CisJfQogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMs IG9wdGlvbnMpCkBAIC0xNTQsNiArMTY2LDU3IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVu ID0gdHJ1ZTsKIAkJCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGRlZkdldEJvb2xlYW4o ZGVmZWwpOwogCQl9CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImRkbCIpID09 IDApCisJCXsKKwkJCWNoYXIJICAgKmRkbF9sZXZlbDsKKwkJCUxpc3QJICAgKmRkbF9saXN0Owor CQkJTGlzdENlbGwgICAqbGM7CisKKwkJCWlmICgqZGRsX2xldmVsX2dpdmVuKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkg ZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisKKwkJCS8qCisJ CQkgKiBJZiBwdWJsaXNoIG9wdGlvbiB3YXMgZ2l2ZW4gb25seSB0aGUgZXhwbGljaXRseSBsaXN0 ZWQgYWN0aW9ucworCQkJICogc2hvdWxkIGJlIHB1Ymxpc2hlZC4KKwkJCSAqLworCQkJcHViYWN0 aW9ucy0+cHViZGRsX2RhdGFiYXNlID0gZmFsc2U7CisJCQlwdWJhY3Rpb25zLT5wdWJkZGxfdGFi bGUgPSBmYWxzZTsKKworCQkJKmRkbF9sZXZlbF9naXZlbiA9IHRydWU7CisJCQlkZGxfbGV2ZWwg PSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCisJCQlpZiAoIVNwbGl0SWRlbnRpZmllclN0cmluZyhk ZGxfbGV2ZWwsICcsJywgJmRkbF9saXN0KSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiaW52YWxpZCBsaXN0 IHN5bnRheCBmb3IgXCJkZGxcIiBvcHRpb24iKSkpOworCisJCQkvKiBQcm9jZXNzIHRoZSBvcHRp b24gbGlzdC4gKi8KKwkJCWZvcmVhY2gobGMsIGRkbF9saXN0KQorCQkJeworCQkJCWNoYXIJICAg KnB1Ymxpc2hfb3B0ID0gKGNoYXIgKikgbGZpcnN0KGxjKTsKKworCQkJCWlmIChzdHJjbXAocHVi bGlzaF9vcHQsICJkYXRhYmFzZSIpID09IDApCisJCQkJeworCQkJCQlpZiAoIWZvcl9hbGxfdGFi bGVzKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJEREwgcmVwbGljYXRpb24gb24gdGhlIGRhdGFi YXNlIGxldmVsIGlzIG9ubHkgc3VwcG9ydGVkIGluIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9u IikpKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlwdWJhY3Rpb25zLT5wdWJkZGxfZGF0YWJh c2UgPSB0cnVlOworCQkJCQkJcHViYWN0aW9ucy0+cHViZGRsX3RhYmxlID0gdHJ1ZTsKKwkJCQkJ fQorCQkJCX0KKwkJCQllbHNlIGlmIChzdHJjbXAocHVibGlzaF9vcHQsICJ0YWJsZSIpID09IDAp CisJCQkJCXB1YmFjdGlvbnMtPnB1YmRkbF90YWJsZSA9IHRydWU7CisJCQkJZWxzZQorCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgXCJkZGxcIiB2YWx1ZTogXCIlc1wiIiwgcHVibGlz aF9vcHQpKSk7CisJCQl9CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNjIyLDYgKzY4NSw3IEBAIENyZWF0ZVB1 YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10 KQogCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOwogCUhlYXBUdXBsZQl0dXA7 CiAJYm9vbAkJcHVibGlzaF9naXZlbjsKKwlib29sCQlkZGxfbGV2ZWxfZ2l2ZW47CiAJUHVibGlj YXRpb25BY3Rpb25zIHB1YmFjdGlvbnM7CiAJYm9vbAkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3RfZ2l2ZW47CiAJYm9vbAkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q7CkBAIC02NjQsOSAr NzI4LDExIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVi bGljYXRpb25TdG10ICpzdG10KQogCiAJcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhwc3RhdGUs CiAJCQkJCQkJICBzdG10LT5vcHRpb25zLAorCQkJCQkJCSAgc3RtdC0+Zm9yX2FsbF90YWJsZXMs CiAJCQkJCQkJICAmcHVibGlzaF9naXZlbiwgJnB1YmFjdGlvbnMsCiAJCQkJCQkJICAmcHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3RfZ2l2ZW4sCi0JCQkJCQkJICAmcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QpOworCQkJCQkJCSAgJnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290LAorCQkJCQkJ CSAgJmRkbF9sZXZlbF9naXZlbik7CiAKIAlwdWJvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVs LCBQdWJsaWNhdGlvbk9iamVjdEluZGV4SWQsCiAJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25f b2lkKTsKQEAgLTY4Myw2ICs3NDksMTAgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCUJvb2xHZXREYXR1bShwdWJh Y3Rpb25zLnB1YnRydW5jYXRlKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFy b290IC0gMV0gPQogCQlCb29sR2V0RGF0dW0ocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwor CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRkbF9kYXRhYmFzZSAtIDFdID0KKwkJQm9v bEdldERhdHVtKHB1YmFjdGlvbnMucHViZGRsX2RhdGFiYXNlKTsKKwl2YWx1ZXNbQW51bV9wZ19w dWJsaWNhdGlvbl9wdWJkZGxfdGFibGUgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwdWJhY3Rpb25z LnB1YmRkbF90YWJsZSk7CiAKIAl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKIApAQCAtNzY2LDYgKzgzNiw3IEBAIEFsdGVyUHVibGlj YXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQsCiAJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOwogCURhdHVtCQl2YWx1 ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOwogCWJvb2wJCXB1Ymxpc2hfZ2l2ZW47CisJYm9vbCAg ICAgICAgZGRsX2xldmVsX2dpdmVuOwogCVB1YmxpY2F0aW9uQWN0aW9ucyBwdWJhY3Rpb25zOwog CWJvb2wJCXB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuOwogCWJvb2wJCXB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290OwpAQCAtNzc0LDExICs4NDUsMTUgQEAgQWx0ZXJQdWJsaWNhdGlv bk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwK IAlMaXN0CSAgICpyb290X3JlbGlkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpsYzsKIAorCXB1YmZv cm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisKIAlwYXJzZV9wdWJs aWNhdGlvbl9vcHRpb25zKHBzdGF0ZSwKIAkJCQkJCQkgIHN0bXQtPm9wdGlvbnMsCisJCQkJCQkJ ICBwdWJmb3JtLT5wdWJhbGx0YWJsZXMsCiAJCQkJCQkJICAmcHVibGlzaF9naXZlbiwgJnB1YmFj dGlvbnMsCiAJCQkJCQkJICAmcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3RfZ2l2ZW4sCi0JCQkJ CQkJICAmcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworCQkJCQkJCSAgJnB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290LAorCQkJCQkJCSAgJmRkbF9sZXZlbF9naXZlbik7CiAKIAlwdWJmb3Jt ID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOwogCkBAIC04NTksNiArOTM0 LDE1IEBAIEFsdGVyUHVibGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQ dWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVi dHJ1bmNhdGUgLSAxXSA9IHRydWU7CiAJfQogCisJaWYgKGRkbF9sZXZlbF9naXZlbikKKwl7CisJ CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRkbF9kYXRhYmFzZSAtIDFdID0gQm9vbEdl dERhdHVtKHB1YmFjdGlvbnMucHViZGRsX2RhdGFiYXNlKTsKKwkJcmVwbGFjZXNbQW51bV9wZ19w dWJsaWNhdGlvbl9wdWJkZGxfZGF0YWJhc2UgLSAxXSA9IHRydWU7CisKKwkJdmFsdWVzW0FudW1f cGdfcHVibGljYXRpb25fcHViZGRsX3RhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0ocHViYWN0aW9u cy5wdWJkZGxfdGFibGUpOworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRkbF90 YWJsZSAtIDFdID0gdHJ1ZTsKKwl9CisKIAlpZiAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Rf Z2l2ZW4pCiAJewogCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0g PSBCb29sR2V0RGF0dW0ocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3JlbGNhY2hlLmMKaW5kZXggZmNjZmZjZTU3Mi4uZDg4YjJhYTY0MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01NjA2LDYgKzU2MDYsOCBAQCBSZWxhdGlvbkJ1aWxkUHVi bGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2Mp CiAJCXB1YmRlc2MtPnB1YmFjdGlvbnMucHVidXBkYXRlIHw9IHB1YmZvcm0tPnB1YnVwZGF0ZTsK IAkJcHViZGVzYy0+cHViYWN0aW9ucy5wdWJkZWxldGUgfD0gcHViZm9ybS0+cHViZGVsZXRlOwog CQlwdWJkZXNjLT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlIHw9IHB1YmZvcm0tPnB1YnRydW5jYXRl OworCQlwdWJkZXNjLT5wdWJhY3Rpb25zLnB1YmRkbF9kYXRhYmFzZSB8PSBwdWJmb3JtLT5wdWJk ZGxfZGF0YWJhc2U7CisJCXB1YmRlc2MtPnB1YmFjdGlvbnMucHViZGRsX3RhYmxlIHw9IHB1YmZv cm0tPnB1YmRkbF90YWJsZTsKIAogCQkvKgogCQkgKiBDaGVjayBpZiBhbGwgY29sdW1ucyByZWZl cmVuY2VkIGluIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbiBhcmUgcGFydCBvZgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5k ZXggNzI1Y2QyZTRlYi4uNWUwNmNmNGQzYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zODE5LDYgKzM4MTks OCBAQCBnZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1QdWJsaWNhdGlvbnMp CiAJaW50CQkJaV9wdWJkZWxldGU7CiAJaW50CQkJaV9wdWJ0cnVuY2F0ZTsKIAlpbnQJCQlpX3B1 YnZpYXJvb3Q7CisJaW50CQkJaV9wdWJkZGxfZGF0YWJhc2U7CisJaW50CQkJaV9wdWJkZGxfdGFi bGU7CiAJaW50CQkJaSwKIAkJCQludHVwczsKIApAQCAtMzgzMywyMyArMzgzNSwyOSBAQCBnZXRQ dWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1QdWJsaWNhdGlvbnMpCiAJcmVzZXRQ UUV4cEJ1ZmZlcihxdWVyeSk7CiAKIAkvKiBHZXQgdGhlIHB1YmxpY2F0aW9ucy4gKi8KLQlpZiAo Zm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMzAwMDApCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTUwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIlNFTEVDVCBw LnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAiCisJCQkJCQkgICJwLnB1Ym93bmVyLCAiCisJ CQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1YmRl bGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgcC5wdWJ2aWFyb290LCBwLnB1YmRkbF9kYXRhYmFzZSwgcC5w dWJkZGxfdGFibGUgIgorCQkJCQkJICAiRlJPTSBwZ19wdWJsaWNhdGlvbiBwIik7CisJZWxzZSBp ZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMzAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LAogCQkJCQkJICAiU0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBwLnB1Ym5hbWUsICIKIAkJ CQkJCSAgInAucHVib3duZXIsICIKLQkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1Ymluc2Vy dCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBwLnB1YnZpYXJvb3Qg IgorCQkJCQkJICAicC5wdWJhbGx0YWJsZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5w dWJkZWxldGUsIHAucHVidHJ1bmNhdGUsIHAucHVidmlhcm9vdCwgZmFsc2UgQVMgcHViZGRsX2Rh dGFiYXNlLCBmYWxzZSBBUyBwdWJkZGxfdGFibGUgIgogCQkJCQkJICAiRlJPTSBwZ19wdWJsaWNh dGlvbiBwIik7CiAJZWxzZSBpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMTAwMDApCiAJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAiU0VMRUNUIHAudGFibGVvaWQsIHAub2lk LCBwLnB1Ym5hbWUsICIKIAkJCQkJCSAgInAucHVib3duZXIsICIKLQkJCQkJCSAgInAucHViYWxs dGFibGVzLCBwLnB1Ymluc2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5j YXRlLCBmYWxzZSBBUyBwdWJ2aWFyb290ICIKKwkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1 Ymluc2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBmYWxzZSBB UyBwdWJ2aWFyb290LCBmYWxzZSBBUyBwdWJkZGxfZGF0YWJhc2UsIGZhbHNlIEFTIHB1YmRkbF90 YWJsZSAiCiAJCQkJCQkgICJGUk9NIHBnX3B1YmxpY2F0aW9uIHAiKTsKIAllbHNlCiAJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAiU0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBw LnB1Ym5hbWUsICIKIAkJCQkJCSAgInAucHVib3duZXIsICIKLQkJCQkJCSAgInAucHViYWxsdGFi bGVzLCBwLnB1Ymluc2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBmYWxzZSBBUyBwdWJ0 cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlhcm9vdCAiCisJCQkJCQkgICJwLnB1YmFsbHRhYmxlcywg cC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1YmRlbGV0ZSwgZmFsc2UgQVMgcHVidHJ1bmNh dGUsIGZhbHNlIEFTIHB1YnZpYXJvb3QsIGZhbHNlIEFTIHB1YmRkbF9kYXRhYmFzZSwgZmFsc2Ug QVMgcHViZGRsX3RhYmxlICIKIAkJCQkJCSAgIkZST00gcGdfcHVibGljYXRpb24gcCIpOwogCiAJ cmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0sp OwpAQCAtMzg2Niw2ICszODc0LDggQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtUHVibGljYXRpb25zKQogCWlfcHViZGVsZXRlID0gUFFmbnVtYmVyKHJlcywgInB1YmRl bGV0ZSIpOwogCWlfcHVidHJ1bmNhdGUgPSBQUWZudW1iZXIocmVzLCAicHVidHJ1bmNhdGUiKTsK IAlpX3B1YnZpYXJvb3QgPSBQUWZudW1iZXIocmVzLCAicHVidmlhcm9vdCIpOworCWlfcHViZGRs X2RhdGFiYXNlID0gUFFmbnVtYmVyKHJlcywgInB1YmRkbF9kYXRhYmFzZSIpOworCWlfcHViZGRs X3RhYmxlID0gUFFmbnVtYmVyKHJlcywgInB1YmRkbF90YWJsZSIpOwogCiAJcHViaW5mbyA9IHBn X21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvbkluZm8pKTsKIApAQCAtMzg5MCw2ICsz OTAwLDEwIEBAIGdldFB1YmxpY2F0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVB1YmxpY2F0 aW9ucykKIAkJCShzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHVidHJ1bmNhdGUpLCAidCIp ID09IDApOwogCQlwdWJpbmZvW2ldLnB1YnZpYXJvb3QgPQogCQkJKHN0cmNtcChQUWdldHZhbHVl KHJlcywgaSwgaV9wdWJ2aWFyb290KSwgInQiKSA9PSAwKTsKKwkJcHViaW5mb1tpXS5wdWJkZGxf ZGF0YWJhc2UgPQorCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJkZGxfZGF0YWJh c2UpLCAidCIpID09IDApOworCQlwdWJpbmZvW2ldLnB1YmRkbF90YWJsZSA9CisJCQkoc3RyY21w KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3B1YmRkbF90YWJsZSksICJ0IikgPT0gMCk7CiAKIAkJLyog RGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlT2Jq ZWN0KCYocHViaW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC0zOTY5LDYgKzM5ODMsMjkgQEAgZHVt cFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5m bykKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiJyIpOwogCisJYXBwZW5kUFFFeHBC dWZmZXJTdHIocXVlcnksICIsIGRkbCA9ICciKTsKKwlmaXJzdCA9IHRydWU7CisKKwlpZiAocHVi aW5mby0+cHViZGRsX2RhdGFiYXNlKQorCXsKKwkJaWYgKCFmaXJzdCkKKwkJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg ImRhdGFiYXNlIik7CisJCWZpcnN0ID0gZmFsc2U7CisJfQorCisJaWYgKHB1YmluZm8tPnB1YmRk bF90YWJsZSkKKwl7CisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwgIiwgIik7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJ0YWJsZSIpOworCQlm aXJzdCA9IGZhbHNlOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiJyIpOwor CiAJaWYgKHB1YmluZm8tPnB1YnZpYXJvb3QpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUiKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5k ZXggNzcyZGMwY2Y3YS4uMTc3ODllYTI3MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02MjAsNiArNjIwLDgg QEAgdHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uSW5mbwogCWJvb2wJCXB1YmRlbGV0ZTsKIAli b29sCQlwdWJ0cnVuY2F0ZTsKIAlib29sCQlwdWJ2aWFyb290OworCWJvb2wJCXB1YmRkbF9kYXRh YmFzZTsKKwlib29sCQlwdWJkZGxfdGFibGU7CiB9IFB1YmxpY2F0aW9uSW5mbzsKIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKaW5kZXggOTkxYmZjMTU0Ni4uN2E3ZDRhNTBlMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTU4MjAsNyArNTgy MCw3IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAlQUUV4cEJ1ZmZl ckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNl dC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0 aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlm IChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTU4NTUsNiArNTg1NSwxNSBAQCBsaXN0 UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCiAJCQkJCQkgICIsXG4gIHB1YnZpYXJvb3QgQVMgXCIlc1wiIiwKIAkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJWaWEgcm9vdCIpKTsKKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNDAwMDApCisJewor CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwdWJkZGxfZGF0YWJhc2Ug QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEYXRhYmFzZSBsZXZlbCBERExzIikp OworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwdWJkZGxfdGFibGUg QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJUYWJsZSBsZXZlbCBERExzIikpOwor CX0KIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkgIlxuRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uXG4iKTsKQEAgLTU5MzYsNiArNTk0NSw3IEBAIGRlc2NyaWJlUHVi bGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJUEdyZXN1bHQgICAqcmVzOwogCWJvb2wJ CWhhc19wdWJ0cnVuY2F0ZTsKIAlib29sCQloYXNfcHVidmlhcm9vdDsKKwlib29sCQloYXNfcHVi ZGRsOwogCiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCXByaW50VGFibGVDb250ZW50IGNvbnQ7 CkBAIC01OTUyLDYgKzU5NjIsNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpw YXR0ZXJuKQogCiAJaGFzX3B1YnRydW5jYXRlID0gKHBzZXQuc3ZlcnNpb24gPj0gMTEwMDAwKTsK IAloYXNfcHVidmlhcm9vdCA9IChwc2V0LnN2ZXJzaW9uID49IDEzMDAwMCk7CisJaGFzX3B1YmRk bCA9IChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCk7CiAKIAlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7 CiAKQEAgLTU5NjUsNiArNTk3NiwxMSBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCWlmIChoYXNfcHVidmlhcm9vdCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwKIAkJCQkJCQkgIiwgcHVidmlhcm9vdCIpOworCWlmIChoYXNfcHViZGRsKQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCQkgIiwgcHViZGRsX2RhdGFiYXNlLCBw dWJkZGxfdGFibGUiKTsKKwl9CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKIAkJCQkJCSAi XG5GUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25cbiIpOwogCkBAIC02MDExLDYgKzYwMjcs OCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJbmNvbHMr KzsKIAkJaWYgKGhhc19wdWJ2aWFyb290KQogCQkJbmNvbHMrKzsKKwkJaWYgKGhhc19wdWJkZGwp CisJCQluY29scyArPSAyOwogCiAJCWluaXRQUUV4cEJ1ZmZlcigmdGl0bGUpOwogCQlwcmludGZQ UUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlB1YmxpY2F0aW9uICVzIiksIHB1Ym5hbWUpOwpAQCAtNjAy NSw2ICs2MDQzLDExIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4p CiAJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlRydW5jYXRlcyIp LCB0cnVlLCBhbGlnbik7CiAJCWlmIChoYXNfcHVidmlhcm9vdCkKIAkJCXByaW50VGFibGVBZGRI ZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiVmlhIHJvb3QiKSwgdHJ1ZSwgYWxpZ24pOworCQlp ZiAoaGFzX3B1YmRkbCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4 dF9ub29wKCJEYXRhYmFzZSBsZXZlbCBEREwiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJUYWJsZSBsZXZlbCBEREwiKSwgdHJ1ZSwg YWxpZ24pOworCQl9CiAKIAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVz LCBpLCAyKSwgZmFsc2UsIGZhbHNlKTsKIAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0 dmFsdWUocmVzLCBpLCAzKSwgZmFsc2UsIGZhbHNlKTsKQEAgLTYwMzUsNiArNjA1OCwxMSBAQCBk ZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA3KSwgZmFsc2UsIGZhbHNlKTsKIAkJaWYg KGhhc19wdWJ2aWFyb290KQogCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCA4KSwgZmFsc2UsIGZhbHNlKTsKKwkJaWYgKGhhc19wdWJkZGwpCisJCXsKKwkJCXBy aW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgOSksIGZhbHNlLCBmYWxz ZSk7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDEwKSwg ZmFsc2UsIGZhbHNlKTsKKwkJfQogCiAJCWlmICghcHViYWxsdGFibGVzKQogCQl7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggZmU3NzNjZjliNy4uYjg2YjQ5YWFmYyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9kLmgiCisjaW5jbHVkZSAidGNvcC91 dGlsaXR5LmgiCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlwZ19wdWJsaWNhdGlvbiBkZWZp bml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bwpAQCAtNTQsNiArNTUsMTIgQEAgQ0FUQUxPRyhw Z19wdWJsaWNhdGlvbiw2MTA0LFB1YmxpY2F0aW9uUmVsYXRpb25JZCkKIAogCS8qIHRydWUgaWYg cGFydGl0aW9uIGNoYW5nZXMgYXJlIHB1Ymxpc2hlZCB1c2luZyByb290IHNjaGVtYSAqLwogCWJv b2wJCXB1YnZpYXJvb3Q7CisKKwkvKiB0cnVlIGlmIGRhdGFiYXNlIGxldmVsIGRkbHMgYXJlIHB1 Ymxpc2hlZCAqLworCWJvb2wJCXB1YmRkbF9kYXRhYmFzZTsKKworCS8qIHRydWUgaWYgdGFibGUg bGV2ZWwgZGRscyBhcmUgcHVibGlzaGVkICovCisJYm9vbAkJcHViZGRsX3RhYmxlOwogfSBGb3Jt RGF0YV9wZ19wdWJsaWNhdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzIsNiArNzks OCBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvbkFjdGlvbnMKIAlib29sCQlwdWJ1cGRhdGU7 CiAJYm9vbAkJcHViZGVsZXRlOwogCWJvb2wJCXB1YnRydW5jYXRlOworCWJvb2wJCXB1YmRkbF9k YXRhYmFzZTsKKwlib29sCQlwdWJkZGxfdGFibGU7CiB9IFB1YmxpY2F0aW9uQWN0aW9uczsKIAog dHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25EZXNjCkBAIC0xNDYsNSArMTU1LDYgQEAgZXh0ZXJu IE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hl bWFpZCwKIAogZXh0ZXJuIE9pZAlnZXRfcHVibGljYXRpb25fb2lkKGNvbnN0IGNoYXIgKnB1Ym5h bWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUo T2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGJvb2wgZGRsX25lZWRfeGxvZyhP aWQgcmVsaWQsIGJvb2wgZm9yQWxsVGFiUHViT25seSwgYm9vbCBpc1RvcExldmVsKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL2RlZnJlbS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKaW5kZXgg NTZkMmJiNjYxNi4uMDczZjQ2ZWYxYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZGVmcmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKQEAgLTE1LDYgKzE1 LDcgQEAKICNkZWZpbmUgREVGUkVNX0gKIAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKICNpbmNsdWRlICJub2Rl cy9wYXJhbXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogI2luY2x1ZGUgInRj b3AvZGVzdC5oIgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRl eCA0ZTE5MWMxMjBhLi42NzYxZTNiYmMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dApAQCAtMzAsMjAgKzMwLDIwIEBAIEVSUk9SOiAgY29uZmxpY3Rpbmcgb3Ig cmVkdW5kYW50IG9wdGlvbnMKIExJTkUgMTogLi4udWJfeHh4IFdJVEggKHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290ID0gJ3RydWUnLCBwdWJsaXNoX3ZpLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogXGRScAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRp b25zCi0gICAgICAgIE5hbWUgICAgICAgIHwgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSB0ZXN0cGliX2luc190cnVuY3QgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgot IHRlc3RwdWJfZGVmYXVsdCAgICB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCBmICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBERExzIHwgVGFibGUgbGV2 ZWwgRERMcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyB0ZXN0 cGliX2luc190cnVuY3QgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg dCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgIHwgZgorIHRlc3RwdWJfZGVmYXVsdCAgICB8IHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICAgfCBmCiAoMiByb3dzKQog CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgU0VUIChwdWJsaXNoID0gJ2luc2Vy dCwgdXBkYXRlLCBkZWxldGUnKTsKIFxkUnAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucwotICAgICAgICBOYW1lICAgICAg ICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gdGVzdHBpYl9pbnNfdHJ1 bmN0IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBm ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKLSB0ZXN0cHViX2RlZmF1bHQgICAgfCBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25z CisgICAgICAgIE5hbWUgICAgICAgIHwgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IHwgRGF0YWJhc2UgbGV2ZWwgRERMcyB8IFRhYmxlIGxldmVsIERETHMgCistLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAg ICAgICB8IGYgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgICB8IGYKKyB0 ZXN0cHViX2RlZmF1bHQgICAgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgIHwgZgogKDIgcm93cykKIAogLS0tIGFkZGluZyB0YWJsZXMKQEAg LTg3LDEwICs4NywxMCBAQCBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogLS0gc2hvdWxkIGJl IGFibGUgdG8gYWRkIHNjaGVtYSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3Q7CiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2 ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0 cHViX3RibDEiCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgpAQCAtOTksMjAgKzk5LDIwIEBAIFRhYmxl cyBmcm9tIHNjaGVtYXM6CiAtLSBzaG91bGQgYmUgYWJsZSB0byBkcm9wIHNjaGVtYSBmcm9tICdG T1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxl IERST1AgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBcZFJwKyB0ZXN0cHViX2ZvcnRh YmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf Zm9ydGFibGUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCiAKIC0tIHNob3VsZCBi ZSBhYmxlIHRvIHNldCBzY2hlbWEgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgU0VUIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OwogXGRScCsgdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxl dmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAg ICAicHViX3Rlc3QiCiAKQEAgLTEzNCwxMCArMTM0LDEwIEBAIEVSUk9SOiAgcmVsYXRpb24gInRl c3RwdWJfbm9wayIgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uCiAtLSBzaG91bGQgYmUg YWJsZSB0byBzZXQgdGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOwogXGRS cCsgdGVzdHB1Yl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERM IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1Yl90ZXN0LnRlc3RwdWJf bm9wayIKIApAQCAtMTU5LDEwICsxNTksMTAgQEAgUHVibGljYXRpb25zOgogICAgICJ0ZXN0cHVi X2ZvcmFsbHRhYmxlcyIKIAogXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzCi0gICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9y YWxsdGFibGVzCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAg ICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0CiAoMSBy b3cpCiAKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwpAQCAtMTc0LDE5ICsxNzQsMTkgQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0cHViX3RibDM7CiBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOwogUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMwotICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMworICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxl dmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVz dHB1Yl90YmwzIgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIKIAogXGRScCsgdGVzdHB1YjQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI0 Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWI0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJs ZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAKQEAgLTIwNywxMCArMjA3LDEwIEBAIFVQ REFURSB0ZXN0cHViX3BhcnRlZDEgU0VUIGEgPSAxOwogLS0gb25seSBwYXJlbnQgaXMgbGlzdGVk IGFzIGJlaW5nIGluIHB1YmxpY2F0aW9uLCBub3QgdGhlIHBhcnRpdGlvbgogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQgQUREIFRBQkxFIHRlc3RwdWJfcGFydGVkOwogXGRScCsg dGVzdHB1Yl9mb3JwYXJ0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX2ZvcnBhcnRlZAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3BhcnRl ZCIKIApAQCAtMjIzLDEwICsyMjMsMTAgQEAgQUxURVIgVEFCTEUgdGVzdHB1Yl9wYXJ0ZWQgREVU QUNIIFBBUlRJVElPTiB0ZXN0cHViX3BhcnRlZDE7CiBVUERBVEUgdGVzdHB1Yl9wYXJ0ZWQxIFNF VCBhID0gMTsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkIFNFVCAocHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKIFxkUnArIHRlc3RwdWJfZm9ycGFydGVkCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JwYXJ0 ZWQKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2ZvcnBhcnRlZAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERh dGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0ZWQiCiAKQEAgLTI1NSwxMCArMjU1 LDEwIEBAIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViNSBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90YmwxLCB0ZXN0cHViX3JmX3RibDIg V0hFUkUgKGMgPD4gJ3Rlc3QnIEFORCBkIDwgNSkgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQnKTsK IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViNQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKLSAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg ZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBU YWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVi bGljLnRlc3RwdWJfcmZfdGJsMSIKICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJsMiIgV0hFUkUg KChjIDw+ICd0ZXN0Jzo6dGV4dCkgQU5EIChkIDwgNSkpCkBAIC0yNzEsMTAgKzI3MSwxMCBAQCBU YWJsZXM6CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEFERCBUQUJMRSB0ZXN0cHViX3Jm X3RibDMgV0hFUkUgKGUgPiAxMDAwIEFORCBlIDwgMjAwMCk7CiBcZFJwKyB0ZXN0cHViNQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKLSAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZl bCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg fCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlczoK ICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJsMSIKICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJs MiIgV0hFUkUgKChjIDw+ICd0ZXN0Jzo6dGV4dCkgQU5EIChkIDwgNSkpCkBAIC0yOTAsMTAgKzI5 MCwxMCBAQCBQdWJsaWNhdGlvbnM6CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IERST1Ag VEFCTEUgdGVzdHB1Yl9yZl90YmwyOwogXGRScCsgdGVzdHB1YjUKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1Ci0gICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAg ICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUg bGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50 ZXN0cHViX3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDMiIFdIRVJFICgoZSA+ IDEwMDApIEFORCAoZSA8IDIwMDApKQpAQCAtMzAxLDEwICszMDEsMTAgQEAgVGFibGVzOgogLS0g cmVtb3ZlIHRlc3RwdWJfcmZfdGJsMSBhbmQgYWRkIHRlc3RwdWJfcmZfdGJsMyBhZ2FpbiAoYW5v dGhlciBXSEVSRSBleHByZXNzaW9uKQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUgU0VUIFRB QkxFIHRlc3RwdWJfcmZfdGJsMyBXSEVSRSAoZSA+IDMwMCBBTkQgZSA8IDUwMCk7CiBcZFJwKyB0 ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBE YXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJsMyIgV0hFUkUgKChlID4gMzAw KSBBTkQgKGUgPCA1MDApKQogCkBAIC0zMzcsMTAgKzMzNywxMCBAQCBTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zeW50YXgxIEZP UiBUQUJMRSB0ZXN0cHViX3JmX3RibDEsIE9OTFkgdGVzdHB1Yl9yZl90YmwzIFdIRVJFIChlIDwg OTk5KSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCcpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKIFxkUnArIHRlc3RwdWJfc3ludGF4MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3N5bnRheDEKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zeW50YXgxCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwg RERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHVi X3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDMiIFdIRVJFIChlIDwgOTk5KQpA QCAtMzUwLDEwICszNTAsMTAgQEAgU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwog Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc3ludGF4MiBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90 YmwxLCB0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90Ymw1IFdIRVJFIChoIDwgOTk5KSBX SVRIIChwdWJsaXNoID0gJ2luc2VydCcpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxk UnArIHRlc3RwdWJfc3ludGF4MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX3N5bnRheDIKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJv b3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zeW50YXgyCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3Ri bDEiCiAgICAgInRlc3RwdWJfcmZfc2NoZW1hMS50ZXN0cHViX3JmX3RibDUiIFdIRVJFIChoIDwg OTk5KQpAQCAtNjU4LDEwICs2NTgsMTAgQEAgRVJST1I6ICByZWxhdGlvbiAidGVzdHB1Yl90Ymwx IiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3J0YmwKIENSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRibCBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxOwogRVJS T1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3J0YmwiIGFscmVhZHkgZXhpc3RzCiBcZFJwKyB0 ZXN0cHViX2ZvcnRibAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3J0YmwKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YmwKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgogICAg ICJwdWJsaWMudGVzdHB1Yl90YmwxIgpAQCAtNjk5LDEwICs2OTksMTAgQEAgUHVibGljYXRpb25z OgogICAgICJ0ZXN0cHViX2ZvcnRibCIKIAogXGRScCsgdGVzdHB1Yl9kZWZhdWx0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZGVmYXVsdAotICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2RlZmF1bHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBs ZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxl czoKICAgICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgogICAgICJwdWJsaWMudGVzdHB1Yl90Ymwx IgpAQCAtNzgwLDEwICs3ODAsMTAgQEAgUkVWT0tFIENSRUFURSBPTiBEQVRBQkFTRSByZWdyZXNz aW9uIEZST00gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIERST1AgVEFCTEUgdGVzdHB1Yl9w YXJ0ZWQ7CiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMTsKIFxkUnArIHRlc3RwdWJfZGVmYXVsdAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2RlZmF1 bHQKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9kZWZhdWx0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0 YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBm CiAoMSByb3cpCiAKIC0tIGZhaWwgLSBtdXN0IGJlIG93bmVyIG9mIHB1YmxpY2F0aW9uCkBAIC03 OTMsMjAgKzc5MywyMCBAQCBFUlJPUjogIG11c3QgYmUgb3duZXIgb2YgcHVibGljYXRpb24gdGVz dHB1Yl9kZWZhdWx0CiBSRVNFVCBST0xFOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZWZh dWx0IFJFTkFNRSBUTyB0ZXN0cHViX2ZvbzsKIFxkUnAgdGVzdHB1Yl9mb28KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucwotICAg IE5hbWUgICAgIHwgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZm9vIHwg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCisg ICAgTmFtZSAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFz ZSBsZXZlbCBERExzIHwgVGFibGUgbGV2ZWwgRERMcyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLQorIHRlc3RwdWJfZm9vIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sg dG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9vIFJF TkFNRSBUTyB0ZXN0cHViX2RlZmF1bHQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1 bHQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIFxkUnAgdGVzdHB1Yl9kZWZh dWx0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHB1YmxpY2F0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSB0ZXN0cHViX2RlZmF1bHQgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8 IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETHMgfCBU YWJsZSBsZXZlbCBERExzIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K KyB0ZXN0cHViX2RlZmF1bHQgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gYWRkaW5nIHNjaGVtYXMgYW5k IHRhYmxlcwpAQCAtODIyLDE5ICs4MjIsMTkgQEAgQ1JFQVRFIFRBQkxFICJDVVJSRU5UX1NDSEVN QSIuIkNVUlJFTlRfU0NIRU1BIihpZCBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBGT1IgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1h Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViMV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRh YmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYK IFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKIAogQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qx LCBwdWJfdGVzdDIsIHB1Yl90ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJh c2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBU YWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAg LTg0OCw0NCArODQ4LDQ0IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNl9mb3JzY2hlbWEg Rk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BICJDVVJSRU5UX1NDSEVNQSIsCiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBGT1IgVEFCTEUgIkNVUlJFTlRfU0NIRU1BIi4iQ1VSUkVO VF9TQ0hFTUEiOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzX2Zv cnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1YjNfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZp YSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJsaWMiCiAKIFxkUnAr IHRlc3RwdWI0X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWI0X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjRfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERM IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJDVVJS RU5UX1NDSEVNQSIKIAogXGRScCsgdGVzdHB1YjVfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjVfZm9yc2NoZW1hCi0gICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNV9mb3JzY2hl bWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBE REwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlcyBmcm9t IHNjaGVtYXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BIgogICAgICJwdWJsaWMiCiAKIFxkUnArIHRl c3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjZfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJDVVJSRU5U X1NDSEVNQSIKICAgICAicHVibGljIgogCiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFibGUKLSAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJs ZXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BLkNVUlJFTlRfU0NIRU1BIgogCkBAIC05MTksMTAgKzkx OSwxMCBAQCBFUlJPUjogIHNjaGVtYSAidGVzdHB1Yl92aWV3IiBkb2VzIG5vdCBleGlzdAogLS0g ZHJvcHBpbmcgdGhlIHNjaGVtYSBzaG91bGQgcmVmbGVjdCB0aGUgY2hhbmdlIGluIHB1YmxpY2F0 aW9uCiBEUk9QIFNDSEVNQSBwdWJfdGVzdDM7CiBcZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hl bWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERh dGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIi CkBAIC05MzAsMjAgKzkzMCwyMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogLS0gcmVuYW1pbmcg dGhlIHNjaGVtYSBzaG91bGQgcmVmbGVjdCB0aGUgY2hhbmdlIGluIHB1YmxpY2F0aW9uCiBBTFRF UiBTQ0hFTUEgcHViX3Rlc3QxIFJFTkFNRSB0byBwdWJfdGVzdDFfcmVuYW1lZDsKIFxkUnArIHRl c3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVz dDFfcmVuYW1lZCIKICAgICAicHViX3Rlc3QyIgogCiBBTFRFUiBTQ0hFTUEgcHViX3Rlc3QxX3Jl bmFtZWQgUkVOQU1FIHRvIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVt YQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0 YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBm CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIK QEAgLTk1MSwxMCArOTUxLDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAtLSBhbHRlciBwdWJs aWNhdGlvbiBhZGQgc2NoZW1hCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEg QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKIFxkUnArIHRlc3RwdWIxX2ZvcnNj aGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIx X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1 Yl90ZXN0MiIKQEAgLTk2MywxMCArOTYzLDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1B IG5vbl9leGlzdGVudF9zY2hlbWE7CiBFUlJPUjogIHNjaGVtYSAibm9uX2V4aXN0ZW50X3NjaGVt YSIgZG9lcyBub3QgZXhpc3QKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9y c2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2 ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTk3NSwx MCArOTc1LDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViMV9mb3JzY2hlbWEgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIEVSUk9S OiAgc2NoZW1hICJwdWJfdGVzdDEiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9uICJ0 ZXN0cHViMV9mb3JzY2hlbWEiCiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2Zv cnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxl dmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVz IGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC05ODYs MTAgKzk4NiwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogLS0gYWx0ZXIgcHVibGljYXRpb24g ZHJvcCBzY2hlbWEKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNj aGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwg RGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTk5NywxMCAr OTk3LDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi MV9mb3JzY2hlbWEgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDI7CiBFUlJPUjog IHRhYmxlcyBmcm9tIHNjaGVtYSAicHViX3Rlc3QyIiBhcmUgbm90IHBhcnQgb2YgdGhlIHB1Ymxp Y2F0aW9uCiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRh YmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1h czoKICAgICAicHViX3Rlc3QxIgogCkBAIC0xMDA4LDI5ICsxMDA4LDI5IEBAIFRhYmxlcyBmcm9t IHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgRFJPUCBBTEwg VEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2NoZW1hOwogRVJST1I6ICBzY2hlbWEgIm5v bl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hl bWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9m b3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogCiAtLSBkcm9w IGFsbCBzY2hlbWFzCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgRFJPUCBB TEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3Jz Y2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8 IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgZgogKDEgcm93KQogCiAtLSBhbHRlciBwdWJsaWNhdGlvbiBzZXQgbXVsdGlwbGUgc2NoZW1h CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgU0VUIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3QyOwogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2No ZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBE YXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3Qy IgpAQCAtMTAzOSwxMCArMTAzOSwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25f ZXhpc3RlbnRfc2NoZW1hOwogRVJST1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRv ZXMgbm90IGV4aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVt YQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERE TCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20g c2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC0xMDUxLDEwICsx MDUxLDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAtLSByZW1vdmluZyB0aGUgZHVwbGljYXRl IHNjaGVtYXMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBTRVQgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJfdGVzdDE7CiBcZFJwKyB0ZXN0cHViMV9mb3Jz Y2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogCkBAIC0x MTI0LDE4ICsxMTI0LDE4IEBAIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWE7CiBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOwogXGRScCsgdGVzdHB1YjNfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjNfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViM19mb3JzY2hlbWEKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBU YWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1YjNfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDE7CiBcZFJwKyB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8 IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2No ZW1hczoKICAgICAicHViX3Rlc3QxIgogCkBAIC0xMTQ1LDIwICsxMTQ1LDIwIEBAIENSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYV9mb3J0YWJsZSBGT1IgQUxMIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QxCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9mb3Jz Y2hlbWEgRk9SIFRBQkxFIHB1Yl90ZXN0Mi50YmwxLCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1Yl9mb3JzY2hl bWFfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfZm9yc2NoZW1hX2ZvcnRhYmxlCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yc2NoZW1hX2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERM IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1Yl90ZXN0Mi50YmwxIgog VGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogCiBcZFJwKyB0ZXN0cHViX2Zv cnRhYmxlX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9mb3J0YWJsZV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlh IHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YWJsZV9mb3JzY2hlbWEKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZl bCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rlc3QyLnRi bDEiCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgo= --00000000000008262705da7316ad Content-Type: application/octet-stream; name="0002-logical_decoding_ddl_message.patch" Content-Disposition: attachment; filename="0002-logical_decoding_ddl_message.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l0vo8nys1 Y29tbWl0IGIyYzM1NzkzZGQyOGI5YzVjM2MwNmYwZDgxZDE5ODEwMDliNDc4ZTEKQXV0aG9yOiBa aGVuZyAoWmFuZSkgTGkgPHpoZWxsaUBhbWF6b24uY29tPgpEYXRlOiAgIEZyaSBNYXIgMTggMDA6 MDQ6MzUgMjAyMiArMDAwMAoKICAgIDAwMDItbG9naWNhbF9kZWNvZGluZ19kZGxfbWVzc2FnZS5w YXRjaAogICAgMi4gTG9naWNhbCBsb2dnaW5nIGNoYW5nZQogICAgYS4gQSBuZXcgV0FMIHJlY29y ZCB0eXBlIHhsX2xvZ2ljYWxfZGRsX21lc3NhZ2UgaXMgaW50cm9kdWNlZCB0bwogICAgc3VwcG9y dCBsb2dpY2FsIGxvZ2dpbmcgb2YgRERMIGNvbW1hbmQuIHhsX2xvZ2ljYWxfZGRsX21lc3NhZ2Ug aXMKICAgIHNpbWlsYXIgdG8gdGhlIGV4aXN0aW5nIHhsX2xvZ2ljYWxfbWVzc2FnZSBmb3IgZ2Vu ZXJpYyBtZXNzYWdlCiAgICBsb2dnaW5nLiBUaGUgcmVhc29uIGZvciBub3QgdXNpbmcgeGxfbG9n aWNhbF9tZXNzYWdlIGRpcmVjdGx5IGFzCiAgICBwcm9wb3NlZCBpbml0aWFsbHkgaXMgSSBmb3Vu ZCBvdXQgd2UgbmVlZCB0byBsb2cgbW9yZSBpbmZvcm1hdGlvbgogICAgKHN1Y2ggYXMgdXNlciBy b2xlLCBzZWFyY2ggcGF0aCBhbmQgcG90ZW50aWFsbHkgbW9yZSBpbiB0aGUgZnV0dXJlKQogICAg dGhhbiBqdXN0IG9uZSBzdHJpbmcsIGFuZCB3ZSBkb27igJl0IHdhbnQgdG8gbWFrZSB0b28gbXVj aCBjaGFuZ2VzIHRvCiAgICB0aGUgZXhpc3RpbmcgeGxfbG9naWNhbF9tZXNzYWdlIHdoaWNoIG1h eSBicmVhayBpdHMgY3VycmVudAogICAgY29uc3VtZXJzLgogICAgYi4gVGhlIGxvZ2dpbmcgb2Yg RERMIGNvbW1hbmQgc3RyaW5nIGlzIHByb2Nlc3NlZCBpbiBmdW5jdGlvbgogICAgTG9nTG9naWNh bERETENvbW1hbmQuIFdlIGNhdGVnb3JpemUgRERMIGNvbW1hbmQgdHlwZXMgaW50byB0aHJlZQog ICAgY2F0ZWdvcmllcyBpbiB0aGlzIGZ1bmN0aW9uOgogICAgICAxLiByZXBsaWNhdGVkIGluIGRh dGFiYXNlIGxldmVsIHJlcGxpY2F0aW9uIG9ubHkgKHN1Y2ggYXMgQ1JFQVRFCiAgICBUQUJMRSwg Q1JFQVRFIEZVTkNUSU9OKS4KICAgICAgMi4gcmVwbGljYXRlZCBpbiBkYXRhYmFzZSBvciB0YWJs ZSBsZXZlbCByZXBsaWNhdGlvbiBkZXBlbmRpbmcgb24KICAgIHRoZSBjb25maWd1cmF0aW9uIChz dWNoIGFzIEFMVEVSIFRBQkxFKS4KICAgICAgMy4gbm90IHN1cHBvcnRlZCBmb3IgcmVwbGljYXRp b24gb3IgcGVuZGluZyBpbnZlc3RpZ2F0aW9uLgogICAgCiAgICAzLiBMb2dpY2FsIGRlY29kaW5n IGFuZCBSZW9yZGVyYnVmZmVyIGNoYW5nZQogICAgU3VwcG9ydHMgbG9naWNhbCBkZWNvZGluZyBv ZiB0aGUgbmV3IFdBTCByZWNvcmQKICAgIHhsX2xvZ2ljYWxfZGRsX21lc3NhZ2UuIFRoaXMgaXMg c2ltaWxhciB0byB0aGUgbG9naWNhbCBkZWNvZGluZyBvZgogICAgeGxfbG9naWNhbF9tZXNzYWdl LiBUZXN0cyBmb3IgdGhpcyBjaGFuZ2UgYXJlIGFkZGVkIGluIHRoZQogICAgdGVzdF9kZWNvZGlu ZyBwbHVnaW4uCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlIGIv Y29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCmluZGV4IDM2OTI5ZGQ5N2QuLmQ1MDkxYzU2 OGQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9NYWtlZmlsZQorKysgYi9jb250 cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKQEAgLTQsNyArNCw3IEBAIE1PRFVMRVMgPSB0ZXN0 X2RlY29kaW5nCiBQR0ZJTEVERVNDID0gInRlc3RfZGVjb2RpbmcgLSBleGFtcGxlIG9mIGEgbG9n aWNhbCBkZWNvZGluZyBvdXRwdXQgcGx1Z2luIgogCiBSRUdSRVNTID0gZGRsIHhhY3QgcmV3cml0 ZSB0b2FzdCBwZXJtaXNzaW9ucyBkZWNvZGluZ19pbl94YWN0IFwKLQlkZWNvZGluZ19pbnRvX3Jl bCBiaW5hcnkgcHJlcGFyZWQgcmVwbG9yaWdpbiB0aW1lIG1lc3NhZ2VzIFwKKwlkZWNvZGluZ19p bnRvX3JlbCBiaW5hcnkgcHJlcGFyZWQgcmVwbG9yaWdpbiB0aW1lIG1lc3NhZ2VzIGRkbG1lc3Nh Z2VzXAogCXNwaWxsIHNsb3QgdHJ1bmNhdGUgc3RyZWFtIHN0YXRzIHR3b3BoYXNlIHR3b3BoYXNl X3N0cmVhbSBcCiAJc2VxdWVuY2UKIElTT0xBVElPTiA9IG14YWN0IGRlbGF5ZWRfc3RhcnR1cCBv bmRpc2tfc3RhcnR1cCBjb25jdXJyZW50X2RkbF9kbWwgXApkaWZmIC0tZ2l0IGEvY29udHJpYi90 ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbG1lc3NhZ2VzLm91dCBiL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uYTkyYTk1OWNhZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQKQEAgLTAsMCArMSw0OCBAQAorLS0gcHJl ZGljdGFiaWxpdHkKK1NFVCBzeW5jaHJvbm91c19jb21taXQgPSBvbjsKKy0tIHR1cm4gb24gbG9n aWNhbCBkZGwgbWVzc2FnZSBsb2dnaW5nCitDUkVBVEUgcHVibGljYXRpb24gbXlwdWIgRk9SIEFM TCBUQUJMRVMgd2l0aCAoZGRsID0gJ2RhdGFiYXNlJyk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdf Y3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90JywgJ3Rlc3Rf ZGVjb2RpbmcnKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK0NS RUFURSBUQUJMRSB0YWIxIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CitBTFRFUiBUQUJM RSB0YWIxIGFkZCBjMyB2YXJjaGFyOworQUxURVIgVEFCTEUgdGFiMSBkcm9wIGMzOworRFJPUCBU QUJMRSB0YWIxOworQkVHSU47CitDUkVBVEUgVEFCTEUgdGFiMSAoaWQgc2VyaWFsIHVuaXF1ZSwg ZGF0YSBpbnQpOworQUxURVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFyY2hhcjsKK1JPTExCQUNLOwor QkVHSU47CitDUkVBVEUgVEFCTEUgdGFiMSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOwor QUxURVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFyY2hhcjsKK0NPTU1JVDsKK1xvIHwgc2VkICdzL3Jv bGUuKnNlYXJjaF9wYXRoL3JvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0aC9nJworU0VMRUNUIGRh dGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTsK K1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Npb25fc2xvdCcpOworRFJP UCBUQUJMRSB0YWIxOworRFJPUCBwdWJsaWNhdGlvbiBteXB1YjsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRERM IG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogcmVkYWN0ZWQsIHNlYXJj aF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA0NyBjb250ZW50OkNSRUFURSBUQUJMRSB0YWIx IChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CisgQkVHSU4KKyBzZXF1ZW5jZSBwdWJsaWMu dGFiMV9pZF9zZXE6IHRyYW5zYWN0aW9uYWw6MSBsYXN0X3ZhbHVlOiAxIGxvZ19jbnQ6IDAgaXNf Y2FsbGVkOjAKKyBDT01NSVQKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6 ICByb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDMyIGNv bnRlbnQ6QUxURVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFyY2hhcjsKKyBEREwgbWVzc2FnZTogdHJh bnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGg6ICIkdXNl ciIsIHB1YmxpYywgc3o6IDI1IGNvbnRlbnQ6QUxURVIgVEFCTEUgdGFiMSBkcm9wIGMzOworIERE TCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZpeDogIHJvbGU6IHJlZGFjdGVkLCBzZWFy Y2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogMTYgY29udGVudDpEUk9QIFRBQkxFIHRhYjE7 CisgRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogcmVkYWN0ZWQs IHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA0NyBjb250ZW50OkNSRUFURSBUQUJM RSB0YWIxIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CisgQkVHSU4KKyBzZXF1ZW5jZSBw dWJsaWMudGFiMV9pZF9zZXE6IHRyYW5zYWN0aW9uYWw6MSBsYXN0X3ZhbHVlOiAxIGxvZ19jbnQ6 IDAgaXNfY2FsbGVkOjAKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICBy b2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDMyIGNvbnRl bnQ6QUxURVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFyY2hhcjsKKyBDT01NSVQKKygxMiByb3dzKQor CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGxt ZXNzYWdlcy5zcWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbG1lc3NhZ2VzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lNGZjM2Q4OWJkCi0tLSAvZGV2 L251bGwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGxtZXNzYWdlcy5zcWwKQEAg LTAsMCArMSwyOCBAQAorLS0gcHJlZGljdGFiaWxpdHkKK1NFVCBzeW5jaHJvbm91c19jb21taXQg PSBvbjsKKy0tIHR1cm4gb24gbG9naWNhbCBkZGwgbWVzc2FnZSBsb2dnaW5nCitDUkVBVEUgcHVi bGljYXRpb24gbXlwdWIgRk9SIEFMTCBUQUJMRVMgd2l0aCAoZGRsID0gJ2RhdGFiYXNlJyk7CisK K1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdy ZWdyZXNzaW9uX3Nsb3QnLCAndGVzdF9kZWNvZGluZycpOworCitDUkVBVEUgVEFCTEUgdGFiMSAo aWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworQUxURVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFy Y2hhcjsKK0FMVEVSIFRBQkxFIHRhYjEgZHJvcCBjMzsKK0RST1AgVEFCTEUgdGFiMTsKKworQkVH SU47CitDUkVBVEUgVEFCTEUgdGFiMSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworQUxU RVIgVEFCTEUgdGFiMSBhZGQgYzMgdmFyY2hhcjsKK1JPTExCQUNLOworCitCRUdJTjsKK0NSRUFU RSBUQUJMRSB0YWIxIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CitBTFRFUiBUQUJMRSB0 YWIxIGFkZCBjMyB2YXJjaGFyOworQ09NTUlUOworCitcbyB8IHNlZCAncy9yb2xlLipzZWFyY2hf cGF0aC9yb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGgvZycKK1NFTEVDVCBkYXRhIEZST00gcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAn aW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7CitTRUxFQ1QgcGdf ZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3QnKTsKK0RST1AgVEFCTEUgdGFi MTsKK0RST1AgcHVibGljYXRpb24gbXlwdWI7CisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy90ZXN0X2RlY29kaW5nLmMgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNv ZGluZy5jCmluZGV4IGVhMjI2NDllNDEuLjVlMDJiMjc0YzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv dGVzdF9kZWNvZGluZy90ZXN0X2RlY29kaW5nLmMKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5n L3Rlc3RfZGVjb2RpbmcuYwpAQCAtNzcsNiArNzcsMTEgQEAgc3RhdGljIHZvaWQgcGdfZGVjb2Rl X21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCSAgUmVvcmRlckJ1 ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAogCQkJCQkJCSAgYm9vbCB0cmFu c2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJICBTaXplIHN6LCBjb25zdCBj aGFyICptZXNzYWdlKTsKK3N0YXRpYyB2b2lkIHBnX2RlY29kZV9kZGxtZXNzYWdlKExvZ2ljYWxE ZWNvZGluZ0NvbnRleHQgKmN0eCwKKwkJCQkJCQkJIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExv Z1JlY1B0ciBtZXNzYWdlX2xzbiwKKwkJCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3Qg Y2hhciAqcHJlZml4LAorCQkJCQkJCQkgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2Vh cmNoX3BhdGgsCisJCQkJCQkJCSBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKTsKIHN0YXRp YyB2b2lkIHBnX2RlY29kZV9zZXF1ZW5jZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiAJ CQkJCQkJICBSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgc2VxdWVuY2VfbHNuLAog CQkJCQkJCSAgUmVsYXRpb24gcmVsLCBib29sIHRyYW5zYWN0aW9uYWwsCkBAIC0xMjEsNiArMTI2 LDExIEBAIHN0YXRpYyB2b2lkIHBnX2RlY29kZV9zdHJlYW1fbWVzc2FnZShMb2dpY2FsRGVjb2Rp bmdDb250ZXh0ICpjdHgsCiAJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVj UHRyIG1lc3NhZ2VfbHNuLAogCQkJCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hh ciAqcHJlZml4LAogCQkJCQkJCQkJIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworc3Rh dGljIHZvaWQgcGdfZGVjb2RlX3N0cmVhbV9kZGxtZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eCwKKwkJCQkJCQkJCQlSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbWVz c2FnZV9sc24sCisJCQkJCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVm aXgsCisJCQkJCQkJCQkJY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgs CisJCQkJCQkJCQkJU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgdm9pZCBw Z19kZWNvZGVfc3RyZWFtX3NlcXVlbmNlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJ CQkJCQkJCSAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIHNlcXVlbmNlX2xzbiwK IAkJCQkJCQkJCSAgUmVsYXRpb24gcmVsLCBib29sIHRyYW5zYWN0aW9uYWwsCkBAIC0xNTAsNiAr MTYwLDcgQEAgX1BHX291dHB1dF9wbHVnaW5faW5pdChPdXRwdXRQbHVnaW5DYWxsYmFja3MgKmNi KQogCWNiLT5maWx0ZXJfYnlfb3JpZ2luX2NiID0gcGdfZGVjb2RlX2ZpbHRlcjsKIAljYi0+c2h1 dGRvd25fY2IgPSBwZ19kZWNvZGVfc2h1dGRvd247CiAJY2ItPm1lc3NhZ2VfY2IgPSBwZ19kZWNv ZGVfbWVzc2FnZTsKKwljYi0+ZGRsbWVzc2FnZV9jYiA9IHBnX2RlY29kZV9kZGxtZXNzYWdlOwog CWNiLT5zZXF1ZW5jZV9jYiA9IHBnX2RlY29kZV9zZXF1ZW5jZTsKIAljYi0+ZmlsdGVyX3ByZXBh cmVfY2IgPSBwZ19kZWNvZGVfZmlsdGVyX3ByZXBhcmU7CiAJY2ItPmJlZ2luX3ByZXBhcmVfY2Ig PSBwZ19kZWNvZGVfYmVnaW5fcHJlcGFyZV90eG47CkBAIC0xNjMsNiArMTc0LDcgQEAgX1BHX291 dHB1dF9wbHVnaW5faW5pdChPdXRwdXRQbHVnaW5DYWxsYmFja3MgKmNiKQogCWNiLT5zdHJlYW1f Y29tbWl0X2NiID0gcGdfZGVjb2RlX3N0cmVhbV9jb21taXQ7CiAJY2ItPnN0cmVhbV9jaGFuZ2Vf Y2IgPSBwZ19kZWNvZGVfc3RyZWFtX2NoYW5nZTsKIAljYi0+c3RyZWFtX21lc3NhZ2VfY2IgPSBw Z19kZWNvZGVfc3RyZWFtX21lc3NhZ2U7CisJY2ItPnN0cmVhbV9kZGxtZXNzYWdlX2NiID0gcGdf ZGVjb2RlX3N0cmVhbV9kZGxtZXNzYWdlOwogCWNiLT5zdHJlYW1fc2VxdWVuY2VfY2IgPSBwZ19k ZWNvZGVfc3RyZWFtX3NlcXVlbmNlOwogCWNiLT5zdHJlYW1fdHJ1bmNhdGVfY2IgPSBwZ19kZWNv ZGVfc3RyZWFtX3RydW5jYXRlOwogfQpAQCAtNzU4LDcgKzc3MCw4IEBAIHBnX2RlY29kZV90cnVu Y2F0ZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK IHN0YXRpYyB2b2lkCiBwZ19kZWNvZGVfbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpj dHgsCiAJCQkJICBSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbHNuLCBib29sIHRy YW5zYWN0aW9uYWwsCi0JCQkJICBjb25zdCBjaGFyICpwcmVmaXgsIFNpemUgc3osIGNvbnN0IGNo YXIgKm1lc3NhZ2UpCisJCQkJICBjb25zdCBjaGFyICpwcmVmaXgsIFNpemUgc3osCisJCQkJICBj b25zdCBjaGFyICptZXNzYWdlKQogewogCU91dHB1dFBsdWdpblByZXBhcmVXcml0ZShjdHgsIHRy dWUpOwogCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsICJtZXNzYWdlOiB0cmFuc2FjdGlvbmFs OiAlZCBwcmVmaXg6ICVzLCBzejogJXp1IGNvbnRlbnQ6IiwKQEAgLTc5OSw2ICs4MTIsMTkgQEAg cGdfZGVjb2RlX3NlcXVlbmNlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1 ZmZlclRYTiAqdHhuLAogCU91dHB1dFBsdWdpbldyaXRlKGN0eCwgdHJ1ZSk7CiB9CiAKK3N0YXRp YyB2b2lkCitwZ19kZWNvZGVfZGRsbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgs CisJCQkJICBSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbHNuLCBib29sIHRyYW5z YWN0aW9uYWwsCisJCQkJICBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsIGNv bnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCSAgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2Fn ZSkKK3sKKwlPdXRwdXRQbHVnaW5QcmVwYXJlV3JpdGUoY3R4LCB0cnVlKTsKKwlhcHBlbmRTdHJp bmdJbmZvKGN0eC0+b3V0LCAiRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6ICVkIHByZWZpeDog JXMgcm9sZTogJXMsIHNlYXJjaF9wYXRoOiAlcywgc3o6ICV6dSBjb250ZW50OiIsCisJCQkJCSB0 cmFuc2FjdGlvbmFsLCBwcmVmaXgsIHJvbGUsIHNlYXJjaF9wYXRoLCBzeik7CisJYXBwZW5kQmlu YXJ5U3RyaW5nSW5mbyhjdHgtPm91dCwgbWVzc2FnZSwgc3opOworCU91dHB1dFBsdWdpbldyaXRl KGN0eCwgdHJ1ZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBwZ19kZWNvZGVfc3RyZWFtX3N0YXJ0KExv Z2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJICAgUmVvcmRlckJ1ZmZlclRYTiAqdHhu KQpAQCAtOTc5LDcgKzEwMDUsOCBAQCBwZ19kZWNvZGVfc3RyZWFtX2NoYW5nZShMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsCiBzdGF0aWMgdm9pZAogcGdfZGVjb2RlX3N0cmVhbV9tZXNzYWdl KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCSBSZW9yZGVyQnVmZmVyVFhOICp0 eG4sIFhMb2dSZWNQdHIgbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCi0JCQkJCQkgY29uc3QgY2hh ciAqcHJlZml4LCBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKQorCQkJCQkJIGNvbnN0IGNo YXIgKnByZWZpeCwgU2l6ZSBzeiwKKwkJCQkJCSBjb25zdCBjaGFyICptZXNzYWdlKQogewogCU91 dHB1dFBsdWdpblByZXBhcmVXcml0ZShjdHgsIHRydWUpOwogCkBAIC05OTEsNyArMTAxOCwzNSBA QCBwZ19kZWNvZGVfc3RyZWFtX21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAog CWVsc2UKIAl7CiAJCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsICJzdHJlYW1pbmcgbWVzc2Fn ZTogdHJhbnNhY3Rpb25hbDogJWQgcHJlZml4OiAlcywgc3o6ICV6dSBjb250ZW50OiIsCi0JCQkJ CQkgdHJhbnNhY3Rpb25hbCwgcHJlZml4LCBzeik7CisJCQkJCQkJIHRyYW5zYWN0aW9uYWwsIHBy ZWZpeCwgc3opOworCQlhcHBlbmRCaW5hcnlTdHJpbmdJbmZvKGN0eC0+b3V0LCBtZXNzYWdlLCBz eik7CisJfQorCisJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0cnVlKTsKK30KKworLyoKKyAqIElu IHN0cmVhbWluZyBtb2RlLCB3ZSBkb24ndCBkaXNwbGF5IHRoZSBjb250ZW50cyBmb3IgdHJhbnNh Y3Rpb25hbCBtZXNzYWdlcworICogYXMgdGhlIHRyYW5zYWN0aW9uIGNhbiBhYm9ydCBhdCBhIGxh dGVyIHBvaW50IGluIHRpbWUuICBXZSBkb24ndCB3YW50IHVzZXJzIHRvCisgKiBzZWUgdGhlIG1l c3NhZ2UgY29udGVudHMgdW50aWwgdGhlIHRyYW5zYWN0aW9uIGlzIGNvbW1pdHRlZC4KKyAqLwor c3RhdGljIHZvaWQKK3BnX2RlY29kZV9zdHJlYW1fZGRsbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsCisJCQkJCQkJUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIGxz biwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCWNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3Qg Y2hhciAqIHJvbGUsIGNvbnN0IGNoYXIgKiBzZWFyY2hfcGF0aCwKKwkJCQkJCQlTaXplIHN6LCBj b25zdCBjaGFyICptZXNzYWdlKQoreworCU91dHB1dFBsdWdpblByZXBhcmVXcml0ZShjdHgsIHRy dWUpOworCisJaWYgKHRyYW5zYWN0aW9uYWwpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+ b3V0LCAic3RyZWFtaW5nIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAlZCBwcmVmaXg6ICVz IHJvbGU6ICVzLCBzZWFyY2hfcGF0aDogJXMsIHN6OiAlenUiLAorCQkJCQkJIHRyYW5zYWN0aW9u YWwsIHByZWZpeCwgcm9sZSwgc2VhcmNoX3BhdGgsIHN6KTsKKwl9CisJZWxzZQorCXsKKwkJYXBw ZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgInN0cmVhbWluZyBEREwgbWVzc2FnZTogdHJhbnNhY3Rp b25hbDogJWQgcHJlZml4OiAlcyByb2xlOiAlcywgc2VhcmNoX3BhdGg6ICVzLCBzejogJXp1IGNv bnRlbnQ6IiwKKwkJCQkJCSB0cmFuc2FjdGlvbmFsLCBwcmVmaXgsIHJvbGUsIHNlYXJjaF9wYXRo LCBzeik7CiAJCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oY3R4LT5vdXQsIG1lc3NhZ2UsIHN6KTsK IAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9NYWtlZmlsZSBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9NYWtlZmlsZQppbmRleCBmODhkNzJmZDg2Li5i OGUyOWU4ZGYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvTWFrZWZp bGUKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL01ha2VmaWxlCkBAIC0xOSw2ICsx OSw3IEBAIE9CSlMgPSBcCiAJaGFzaGRlc2MubyBcCiAJaGVhcGRlc2MubyBcCiAJbG9naWNhbG1z Z2Rlc2MubyBcCisJbG9naWNhbGRkbG1zZ2Rlc2MubyBcCiAJbXhhY3RkZXNjLm8gXAogCW5idGRl c2MubyBcCiAJcmVsbWFwZGVzYy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9y bWdyZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L2xvZ2ljYWxkZGxtc2dkZXNjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uN2EzNTJkNTQwYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdy ZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jCkBAIC0wLDAgKzEsNTQgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIGxvZ2ljYWxkZGxtc2dkZXNjLmMKKyAqCSAgcm1nciBkZXNjcmlwdG9yIHJv dXRpbmVzIGZvciByZXBsaWNhdGlvbi9sb2dpY2FsL2RkbG1lc3NhZ2UuYworICoKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMjAxNS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MvbG9naWNhbGRkbG1zZ2Rlc2MuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgInJlcGxpY2F0aW9uL2RkbG1l c3NhZ2UuaCIKKwordm9pZAorbG9naWNhbGRkbG1zZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKK3sKKwljaGFyCSAgICpyZWMgPSBYTG9nUmVjR2V0RGF0YShy ZWNvcmQpOworCXVpbnQ4CQlpbmZvID0gWExvZ1JlY0dldEluZm8ocmVjb3JkKSAmIH5YTFJfSU5G T19NQVNLOworCisJaWYgKGluZm8gPT0gWExPR19MT0dJQ0FMX0RETF9NRVNTQUdFKQorCXsKKwkJ eGxfbG9naWNhbF9kZGxfbWVzc2FnZSAqeGxyZWMgPSAoeGxfbG9naWNhbF9kZGxfbWVzc2FnZSAq KSByZWM7CisJCWNoYXIJICAgKnByZWZpeCA9IHhscmVjLT5tZXNzYWdlOworCQljaGFyICAgICAg ICpyb2xlID0geGxyZWMtPm1lc3NhZ2UgKyB4bHJlYy0+cHJlZml4X3NpemU7CisJCWNoYXIgICAg ICAgKnNlYXJjaF9wYXRoID0geGxyZWMtPm1lc3NhZ2UgKyB4bHJlYy0+cHJlZml4X3NpemUgKyB4 bHJlYy0+cm9sZV9zaXplOworCQljaGFyCSAgICptZXNzYWdlID0geGxyZWMtPm1lc3NhZ2UgKyB4 bHJlYy0+cHJlZml4X3NpemUgKyB4bHJlYy0+cm9sZV9zaXplICsgeGxyZWMtPnNlYXJjaF9wYXRo X3NpemU7CisJCWNoYXIJICAgKnNlcCA9ICIiOworCisJCUFzc2VydChwcmVmaXhbeGxyZWMtPnBy ZWZpeF9zaXplXSAhPSAnXDAnKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzLCBwcmVm aXggXCIlc1wiOyByb2xlIFwiJXNcIjsgc2VhcmNoX3BhdGggXCIlc1wiOyBwYXlsb2FkICglenUg Ynl0ZXMpOiAiLAorCQkJCQkJIHhscmVjLT50cmFuc2FjdGlvbmFsID8gInRyYW5zYWN0aW9uYWwi IDogIm5vbi10cmFuc2FjdGlvbmFsIiwKKwkJCQkJCSBwcmVmaXgsIHJvbGUsIHNlYXJjaF9wYXRo LCB4bHJlYy0+bWVzc2FnZV9zaXplKTsKKwkJLyogV3JpdGUgbWVzc2FnZSBwYXlsb2FkIGFzIGEg c2VyaWVzIG9mIGhleCBieXRlcyAqLworCQlmb3IgKGludCBjbnQgPSAwOyBjbnQgPCB4bHJlYy0+ bWVzc2FnZV9zaXplOyBjbnQrKykKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyUw MlgiLCBzZXAsICh1bnNpZ25lZCBjaGFyKSBtZXNzYWdlW2NudF0pOworCQkJc2VwID0gIiAiOwor CQl9CisJfQorfQorCitjb25zdCBjaGFyICoKK2xvZ2ljYWxkZGxtc2dfaWRlbnRpZnkodWludDgg aW5mbykKK3sKKwlpZiAoKGluZm8gJiB+WExSX0lORk9fTUFTSykgPT0gWExPR19MT0dJQ0FMX0RE TF9NRVNTQUdFKQorCQlyZXR1cm4gIkRETCBNRVNTQUdFIjsKKworCXJldHVybiBOVUxMOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vcm1nci5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vcm1nci5jCmluZGV4IGY4ODQ3ZDVhZWIuLmI3NjE2NjJkMjggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3JtZ3IuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9ybWdyLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj b21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVjb2RlLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2Rk bG1lc3NhZ2UuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9vcmlnaW4uaCIKICNpbmNsdWRlICJz dG9yYWdlL3N0YW5kYnkuaCIKICNpbmNsdWRlICJ1dGlscy9yZWxtYXBwZXIuaCIKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCAwMGI1NjczYjhmLi5mMmQxMWMzODQ3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0xMDA3LDMgKzEwMDcsNTUgQEAgcGdf Z2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJU1JGX1JFVFVSTl9E T05FKGZ1bmNjdHgpOwogfQorCisvKgorICogQ2hlY2tzIGlmIERETCBvbiByZWxhdGlvbiAocmVs aWQpIG5lZWQgeGxvZyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbgorICovCitib29sCitkZGxfbmVl ZF94bG9nKE9pZCByZWxpZCwgYm9vbCBmb3JBbGxUYWJQdWJPbmx5LCBib29sIGlzVG9wTGV2ZWwp Cit7CisJTGlzdCAqYWxsVGFibGVQdWJzID0gTklMOworCUxpc3QgKnRhYmxlUHVicyA9IE5JTDsK KwlMaXN0Q2VsbCAqbGM7CisKKwkvKiBPbmx5IHJlcGxpY2F0ZSB0b3BsZXZlbCBEREwgY29tbWFu ZCAqLworCWlmICghaXNUb3BMZXZlbCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZWxpZCA9PSBJ bnZhbGlkT2lkICYmICFmb3JBbGxUYWJQdWJPbmx5KQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgor CSAqIExvZyB0aGUgRERMIGNvbW1hbmQgaWYKKwkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJM RVMgcHVibGljYXRpb24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24KKwkgKiBvcgorCSAqIHRoaXMg VEFCTEUgYmVsb25ncyB0byBhbnkgbm9uIEZPUiBBTEwgcHVibGljYXRpb25zIHdpdGggcHViZGRs X3RhYmxlIG9uCisJICovCisJYWxsVGFibGVQdWJzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25z KCk7CisJZm9yZWFjaChsYywgYWxsVGFibGVQdWJzKQorCXsKKwkJT2lkIHB1YmlkID0gbGZpcnN0 X29pZChsYyk7CisJCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7CisK KwkJaWYgKHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2UpCisJCQlyZXR1cm4gdHJ1ZTsK Kwl9CisKKwkvKgorCSAqIElmIGZvckFsbFRhYlB1Yk9ubHkgaXMgdHJ1ZSAoaS5lLiBkYXRhYmFz ZSBsZXZlbCByZXBsaWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhlIERETAorCSAqIHRvIGJlIGxv Z2dlZCksIHdlIGNhbiBiYWlsIG5vdyBzaW5jZSBubyBwdWJsaWNhdGlvbiBoYXMgYmVlbiBmb3Vu ZCB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbgorCSAqLworCWlmIChmb3JBbGxUYWJQdWJPbmx5KQor CQlyZXR1cm4gZmFsc2U7CisKKwl0YWJsZVB1YnMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhy ZWxpZCk7CisJZm9yZWFjaChsYywgdGFibGVQdWJzKQorCXsKKwkJT2lkIHB1YmlkID0gbGZpcnN0 X29pZChsYyk7CisJCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7CisK KwkJaWYgKHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfdGFibGUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9 CisKKwlyZXR1cm4gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGRjNTg3 MmY5ODguLmY1NmVhNGM0OWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC03OSw2ICs3 OSw3IEBACiAjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRib3VuZHMuaCIKICNpbmNsdWRlICJw YXJ0aXRpb25pbmcvcGFydGRlc2MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJy ZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlRGVmaW5l LmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInJld3Jp dGUvcmV3cml0ZU1hbmlwLmgiCkBAIC0xMzI1LDEzICsxMzI2LDE0IEBAIERyb3BFcnJvck1zZ1dy b25nVHlwZShjb25zdCBjaGFyICpyZWxuYW1lLCBjaGFyIHdyb25na2luZCwgY2hhciByaWdodGtp bmQpCiAgKgkJRFJPUCBNQVRFUklBTElaRUQgVklFVywgRFJPUCBGT1JFSUdOIFRBQkxFCiAgKi8K IHZvaWQKLVJlbW92ZVJlbGF0aW9ucyhEcm9wU3RtdCAqZHJvcCkKK1JlbW92ZVJlbGF0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpkcm9wLCBib29sIGlzVG9wTGV2ZWwpCiB7CiAJ T2JqZWN0QWRkcmVzc2VzICpvYmplY3RzOwogCWNoYXIJCXJlbGtpbmQ7CiAJTGlzdENlbGwgICAq Y2VsbDsKIAlpbnQJCQlmbGFncyA9IDA7CiAJTE9DS01PREUJbG9ja21vZGUgPSBBY2Nlc3NFeGNs dXNpdmVMb2NrOworCWJvb2wJCWRkbHhsb2cgPSBYTG9nTG9naWNhbEluZm9BY3RpdmUoKTsKIAog CS8qIERST1AgQ09OQ1VSUkVOVExZIHVzZXMgYSB3ZWFrZXIgbG9jaywgYW5kIGhhcyBzb21lIHJl c3RyaWN0aW9ucyAqLwogCWlmIChkcm9wLT5jb25jdXJyZW50KQpAQCAtMTQyNywxMCArMTQyOSwz NyBAQCBSZW1vdmVSZWxhdGlvbnMoRHJvcFN0bXQgKmRyb3ApCiAJCS8qIE5vdCB0aGVyZT8gKi8K IAkJaWYgKCFPaWRJc1ZhbGlkKHJlbE9pZCkpCiAJCXsKKwkJCWRkbHhsb2cgPSBmYWxzZTsKIAkJ CURyb3BFcnJvck1zZ05vbkV4aXN0ZW50KHJlbCwgcmVsa2luZCwgZHJvcC0+bWlzc2luZ19vayk7 CiAJCQljb250aW51ZTsKIAkJfQogCisJCS8qCisJCSAqIE9ubHkgbG9nIERST1AgUkVMQVRJT04g Y21kIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGlmCisJCSAqIHRoZXJlIGlzIGFueSBGT1IgQUxM IFRBQkxFUyBwdWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbiBvcgorCQkgKiBldmVy eSByZWxhdGlvbiB0byBiZSBkcm9wcGVkIGJlbG9uZ3MgdG8gYW55IG5vbiBGT1IgQUxMIHB1Ymxp Y2F0aW9ucyB3aXRoIHB1YmRkbF90YWJsZSBvbgorCQkgKi8KKwkJaWYgKGRkbHhsb2cpCisJCXsK KwkJCU9pZCB0YWJsZU9pZCA9IEludmFsaWRPaWQ7CisKKwkJCWlmIChyZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04pCisJCQkJdGFibGVPaWQgPSByZWxPaWQ7CisJCQllbHNlIGlmIChyZWxraW5k ID09IFJFTEtJTkRfSU5ERVgpCisJCQkJdGFibGVPaWQgPSBJbmRleEdldFJlbGF0aW9uKHJlbE9p ZCwgdHJ1ZSk7CisJCQkvKgorCQkJICogT3RoZXIgcmVsYXRpb24gdHlwZXMgcmVxdWlyZSBkYXRh YmFzZSBsZXZlbCBkZGwgcmVwbGljYXRpb24gYW5kIGFyZQorCQkJICogYWxyZWFkeSBsb2dnZWQg aW4gTG9nTG9naWNhbERETENvbW1hbmQoKSBpZiBuZWVkZWQuCisJCQkgKi8KKwkJCWVsc2UKKwkJ CQlkZGx4bG9nID0gZmFsc2U7CisKKwkJCS8qIERST1AgUkVMQVRJT04gb3IgSU5ERVggYXJlIGFs bG93ZWQgaW4gdGFibGUgbGV2ZWwgRERMIHJlcGxpY2F0aW9uICovCisJCQlpZiAodGFibGVPaWQg IT0gSW52YWxpZE9pZCAmJgorCQkJCSFkZGxfbmVlZF94bG9nKHRhYmxlT2lkLCBmYWxzZSwgaXNU b3BMZXZlbCkpCisJCQkJZGRseGxvZyA9IGZhbHNlOworCQl9CisKIAkJLyoKIAkJICogRGVjaWRl IGlmIGNvbmN1cnJlbnQgbW9kZSBuZWVkcyB0byBiZSB1c2VkIGhlcmUgb3Igbm90LiAgVGhlCiAJ CSAqIHJlbGF0aW9uIHBlcnNpc3RlbmNlIGNhbm5vdCBiZSBrbm93biB3aXRob3V0IGl0cyBPSUQu CkBAIC0xNDYyLDYgKzE0OTEsMTggQEAgUmVtb3ZlUmVsYXRpb25zKERyb3BTdG10ICpkcm9wKQog CQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJm9iaiwgb2JqZWN0cyk7CiAJfQogCisJLyogTG9n IHRoZSBEcm9wIGNvbW1hbmQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gKi8KKwlpZiAoZGRseGxv ZykKKwl7CisJCWJvb2wgdHJhbnNhY3Rpb25hbCA9IHRydWU7CisJCWNvbnN0IGNoYXIqIHByZWZp eCA9ICIiOworCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCisJCQkJCQkJIEdldFVzZXJJ ZCgpLAorCQkJCQkJCSBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkgc3RybGVuKHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0KSwKKwkJCQkJCQkgdHJhbnNhY3Rpb25hbCk7CisJfQorCiAJcGVyZm9y bU11bHRpcGxlRGVsZXRpb25zKG9iamVjdHMsIGRyb3AtPmJlaGF2aW9yLCBmbGFncyk7CiAKIAlm cmVlX29iamVjdF9hZGRyZXNzZXMob2JqZWN0cyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9NYWtlZmlsZQppbmRleCBjNGUyZmRlYjcxLi5mM2VlYjY3MzEyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUKQEAgLTE2LDYgKzE2LDcgQEAgb3ZlcnJpZGUg Q1BQRkxBR1MgOj0gLUkkKHNyY2RpcikgJChDUFBGTEFHUykKIAogT0JKUyA9IFwKIAlkZWNvZGUu byBcCisJZGRsbWVzc2FnZS5vXAogCWxhdW5jaGVyLm8gXAogCWxvZ2ljYWwubyBcCiAJbG9naWNh bGZ1bmNzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9k ZGxtZXNzYWdlLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RkbG1lc3NhZ2Uu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mOTM1NzMwNzlhCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdl LmMKQEAgLTAsMCArMSw5OSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZGRsbWVzc2Fn ZS5jCisgKgkgIExvZ2ljYWwgRERMIG1lc3NhZ2VzLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAy MiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RkbG1lc3NhZ2UuYwor ICoKKyAqIE5PVEVTCisgKgorICogTG9naWNhbCBEREwgbWVzc2FnZXMgYWxsb3cgWExPRyBsb2dn aW5nIG9mIERETCBjb21tYW5kIHN0cmluZ3MgdGhhdAorICogZ2V0IHBhc3NlZCB0byB0aGUgbG9n aWNhbCBkZWNvZGluZyBwbHVnaW4uIEluIG5vcm1hbCBYTE9HIHByb2Nlc3NpbmcgdGhleQorICog YXJlIHNhbWUgYXMgTk9PUC4KKyAqCisgKiBTaW1pYXJsIHRvIHRoZSBnZW5lcmljIGxvZ2ljYWwg bWVzc2FnZXMsIFRoZXNlIERETCBtZXNzYWdlcyBjYW4gYmUgZWl0aGVyCisgKiB0cmFuc2FjdGlv bmFsIG9yIG5vbi10cmFuc2FjdGlvbmFsLiBOb3RlIGJ5IGRlZmF1bHQgRERMcyBpbiBQb3N0Z3Jl U1FMIGFyZQorICogdHJhbnNhY3Rpb25hbC4KKyAqIFRyYW5zYWN0aW9uYWwgbWVzc2FnZXMgYXJl IHBhcnQgb2YgY3VycmVudCB0cmFuc2FjdGlvbiBhbmQgd2lsbCBiZSBzZW50IHRvCisgKiBkZWNv ZGluZyBwbHVnaW4gdXNpbmcgaW4gYSBzYW1lIHdheSBhcyBETUwgb3BlcmF0aW9ucy4KKyAqIE5v bi10cmFuc2FjdGlvbmFsIG1lc3NhZ2VzIGFyZSBzZW50IHRvIHRoZSBwbHVnaW4gYXQgdGhlIHRp bWUgd2hlbiB0aGUKKyAqIGxvZ2ljYWwgZGVjb2RpbmcgcmVhZHMgdGhlbSBmcm9tIFhMT0cuIFRo aXMgYWxzbyBtZWFucyB0aGF0IHRyYW5zYWN0aW9uYWwKKyAqIG1lc3NhZ2VzIHdvbid0IGJlIGRl bGl2ZXJlZCBpZiB0aGUgdHJhbnNhY3Rpb24gd2FzIHJvbGxlZCBiYWNrIGJ1dCB0aGUKKyAqIG5v bi10cmFuc2FjdGlvbmFsIG9uZSB3aWxsIGFsd2F5cyBiZSBkZWxpdmVyZWQuCisgKgorICogRXZl cnkgbWVzc2FnZSBjYXJyaWVzIHByZWZpeCB0byBhdm9pZCBjb25mbGljdHMgYmV0d2VlbiBkaWZm ZXJlbnQgZGVjb2RpbmcKKyAqIHBsdWdpbnMuIFRoZSBwbHVnaW4gYXV0aG9ycyBtdXN0IHRha2Ug ZXh0cmEgY2FyZSB0byB1c2UgdW5pcXVlIHByZWZpeCwKKyAqIGdvb2Qgb3B0aW9ucyBzZWVtcyB0 byBiZSBmb3IgZXhhbXBsZSB0byB1c2UgdGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbi4KKyAqCisg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2lu Y2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dpbnNlcnQuaCIKKyNp bmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2lu Y2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwu aCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgiCisjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKworLyoKKyAqIFdyaXRlIGxvZ2ljYWwgZGVjb2RpbmcgRERMIG1lc3NhZ2Ug aW50byBYTG9nLgorICovCitYTG9nUmVjUHRyCitMb2dMb2dpY2FsRERMTWVzc2FnZShjb25zdCBj aGFyICpwcmVmaXgsIE9pZCByb2xlb2lkLCBjb25zdCBjaGFyICptZXNzYWdlLAorCQkJCQkgc2l6 ZV90IHNpemUsIGJvb2wgdHJhbnNhY3Rpb25hbCkKK3sKKwl4bF9sb2dpY2FsX2RkbF9tZXNzYWdl IHhscmVjOworCWNvbnN0IGNoYXIgKnJvbGU7CisKKwlyb2xlID0gIEdldFVzZXJOYW1lRnJvbUlk KHJvbGVvaWQsIGZhbHNlKTsKKworCS8qCisJICogRm9yY2UgeGlkIHRvIGJlIGFsbG9jYXRlZCBp ZiB3ZSdyZSBlbWl0dGluZyBhIHRyYW5zYWN0aW9uYWwgbWVzc2FnZS4KKwkgKi8KKwlpZiAodHJh bnNhY3Rpb25hbCkKKwl7CisJCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisJCUdldEN1 cnJlbnRUcmFuc2FjdGlvbklkKCk7CisJfQorCisJeGxyZWMuZGJJZCA9IE15RGF0YWJhc2VJZDsK Kwl4bHJlYy50cmFuc2FjdGlvbmFsID0gdHJhbnNhY3Rpb25hbDsKKwkvKiB0cmFpbGluZyB6ZXJv IGlzIGNyaXRpY2FsOyBzZWUgbG9naWNhbGRkbG1zZ19kZXNjICovCisJeGxyZWMucHJlZml4X3Np emUgPSBzdHJsZW4ocHJlZml4KSArIDE7CisJeGxyZWMucm9sZV9zaXplID0gc3RybGVuKHJvbGUp ICsgMTsKKwl4bHJlYy5zZWFyY2hfcGF0aF9zaXplID0gc3RybGVuKG5hbWVzcGFjZV9zZWFyY2hf cGF0aCkgKyAxOworCXhscmVjLm1lc3NhZ2Vfc2l6ZSA9IHNpemU7CisKKwlYTG9nQmVnaW5JbnNl cnQoKTsKKwlYTG9nUmVnaXN0ZXJEYXRhKChjaGFyICopICZ4bHJlYywgU2l6ZU9mTG9naWNhbERE TE1lc3NhZ2UpOworCVhMb2dSZWdpc3RlckRhdGEodW5jb25zdGlmeShjaGFyICosIHByZWZpeCks IHhscmVjLnByZWZpeF9zaXplKTsKKwlYTG9nUmVnaXN0ZXJEYXRhKHVuY29uc3RpZnkoY2hhciAq LCByb2xlKSwgeGxyZWMucm9sZV9zaXplKTsKKwlYTG9nUmVnaXN0ZXJEYXRhKG5hbWVzcGFjZV9z ZWFyY2hfcGF0aCwgeGxyZWMuc2VhcmNoX3BhdGhfc2l6ZSk7CisJWExvZ1JlZ2lzdGVyRGF0YSh1 bmNvbnN0aWZ5KGNoYXIgKiwgbWVzc2FnZSksIHNpemUpOworCisJLyogYWxsb3cgb3JpZ2luIGZp bHRlcmluZyAqLworCVhMb2dTZXRSZWNvcmRGbGFncyhYTE9HX0lOQ0xVREVfT1JJR0lOKTsKKwor CXJldHVybiBYTG9nSW5zZXJ0KFJNX0xPR0lDQUxERExNU0dfSUQsIFhMT0dfTE9HSUNBTF9ERExf TUVTU0FHRSk7Cit9CisKKy8qCisgKiBSZWRvIGlzIGJhc2ljYWxseSBqdXN0IG5vb3AgZm9yIGxv Z2ljYWwgZGVjb2RpbmcgZGRsIG1lc3NhZ2VzLgorICovCit2b2lkCitsb2dpY2FsZGRsbXNnX3Jl ZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCit7CisJdWludDgJCWluZm8gPSBYTG9nUmVjR2V0 SW5mbyhyZWNvcmQpICYgflhMUl9JTkZPX01BU0s7CisKKwlpZiAoaW5mbyAhPSBYTE9HX0xPR0lD QUxfRERMX01FU1NBR0UpCisJCWVsb2coUEFOSUMsICJsb2dpY2FsZGRsbXNnX3JlZG86IHVua25v d24gb3AgY29kZSAldSIsIGluZm8pOworCisJLyogVGhpcyBpcyBvbmx5IGludGVyZXN0aW5nIGZv ciBsb2dpY2FsIGRlY29kaW5nLCBzZWUgZGVjb2RlLmMuICovCit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCA4YzAwYTczY2I5Li5iOWYzMDg2ZTJjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTM2LDYgKzM2LDcgQEAK ICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250 cm9sLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVjb2RlLmgiCisjaW5jbHVkZSAicmVwbGlj YXRpb24vZGRsbWVzc2FnZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwuaCIKICNp bmNsdWRlICJyZXBsaWNhdGlvbi9tZXNzYWdlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vb3Jp Z2luLmgiCkBAIC02MDUsNiArNjA2LDYxIEBAIGxvZ2ljYWxtc2dfZGVjb2RlKExvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQkJCQkJCSAgbWVzc2Fn ZS0+bWVzc2FnZSArIG1lc3NhZ2UtPnByZWZpeF9zaXplKTsKIH0KIAorLyoKKyAqIEhhbmRsZSBy bWdyIExPR0lDQUxERExNU0dfSUQgcmVjb3JkcyBmb3IgRGVjb2RlUmVjb3JkSW50b1Jlb3JkZXJC dWZmZXIoKS4KKyAqLwordm9pZAorbG9naWNhbGRkbG1zZ19kZWNvZGUoTG9naWNhbERlY29kaW5n Q29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpCit7CisJU25hcEJ1aWxkICAqYnVp bGRlciA9IGN0eC0+c25hcHNob3RfYnVpbGRlcjsKKwlYTG9nUmVhZGVyU3RhdGUgKnIgPSBidWYt PnJlY29yZDsKKwlUcmFuc2FjdGlvbklkIHhpZCA9IFhMb2dSZWNHZXRYaWQocik7CisJdWludDgJ CWluZm8gPSBYTG9nUmVjR2V0SW5mbyhyKSAmIH5YTFJfSU5GT19NQVNLOworCVJlcE9yaWdpbklk IG9yaWdpbl9pZCA9IFhMb2dSZWNHZXRPcmlnaW4ocik7CisJU25hcHNob3QJc25hcHNob3Q7CisJ eGxfbG9naWNhbF9kZGxfbWVzc2FnZSAqbWVzc2FnZTsKKworCWlmIChpbmZvICE9IFhMT0dfTE9H SUNBTF9ERExfTUVTU0FHRSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUk1fTE9HSUNBTERE TE1TR19JRCByZWNvcmQgdHlwZTogJXUiLCBpbmZvKTsKKworCVJlb3JkZXJCdWZmZXJQcm9jZXNz WGlkKGN0eC0+cmVvcmRlciwgWExvZ1JlY0dldFhpZChyKSwgYnVmLT5vcmlncHRyKTsKKworCS8q CisJICogSWYgd2UgZG9uJ3QgaGF2ZSBzbmFwc2hvdCBvciB3ZSBhcmUganVzdCBmYXN0LWZvcndh cmRpbmcsIHRoZXJlIGlzIG5vCisJICogcG9pbnQgaW4gZGVjb2RpbmcgZGRsIG1lc3NhZ2VzLgor CSAqLworCWlmIChTbmFwQnVpbGRDdXJyZW50U3RhdGUoYnVpbGRlcikgPCBTTkFQQlVJTERfRlVM TF9TTkFQU0hPVCB8fAorCQljdHgtPmZhc3RfZm9yd2FyZCkKKwkJcmV0dXJuOworCisJbWVzc2Fn ZSA9ICh4bF9sb2dpY2FsX2RkbF9tZXNzYWdlICopIFhMb2dSZWNHZXREYXRhKHIpOworCisJaWYg KG1lc3NhZ2UtPmRiSWQgIT0gY3R4LT5zbG90LT5kYXRhLmRhdGFiYXNlIHx8CisJCUZpbHRlckJ5 T3JpZ2luKGN0eCwgb3JpZ2luX2lkKSkKKwkJcmV0dXJuOworCisJaWYgKG1lc3NhZ2UtPnRyYW5z YWN0aW9uYWwgJiYKKwkJIVNuYXBCdWlsZFByb2Nlc3NDaGFuZ2UoYnVpbGRlciwgeGlkLCBidWYt Pm9yaWdwdHIpKQorCQlyZXR1cm47CisJZWxzZSBpZiAoIW1lc3NhZ2UtPnRyYW5zYWN0aW9uYWwg JiYKKwkJCSAoU25hcEJ1aWxkQ3VycmVudFN0YXRlKGJ1aWxkZXIpICE9IFNOQVBCVUlMRF9DT05T SVNURU5UIHx8CisJCQkgIFNuYXBCdWlsZFhhY3ROZWVkc1NraXAoYnVpbGRlciwgYnVmLT5vcmln cHRyKSkpCisJCXJldHVybjsKKworCXNuYXBzaG90ID0gU25hcEJ1aWxkR2V0T3JCdWlsZFNuYXBz aG90KGJ1aWxkZXIsIHhpZCk7CisJUmVvcmRlckJ1ZmZlclF1ZXVlRERMTWVzc2FnZShjdHgtPnJl b3JkZXIsIHhpZCwgc25hcHNob3QsIGJ1Zi0+ZW5kcHRyLAorCQkJCQkJCSAgbWVzc2FnZS0+dHJh bnNhY3Rpb25hbCwKKwkJCQkJCQkgIG1lc3NhZ2UtPm1lc3NhZ2UsCisJCQkJCQkJICAvKiBmaXJz dCBwYXJ0IG9mIG1lc3NhZ2UgaXMgcHJlZml4ICovCisJCQkJCQkJICBtZXNzYWdlLT5tZXNzYWdl ICsgbWVzc2FnZS0+cHJlZml4X3NpemUsCisJCQkJCQkJICAvKiBTZWNvbmQgcGFydCBvZiBtZXNz YWdlIGlzIHJvbGUqLworCQkJCQkJCSAgbWVzc2FnZS0+bWVzc2FnZSArIG1lc3NhZ2UtPnByZWZp eF9zaXplICsgbWVzc2FnZS0+cm9sZV9zaXplLAorCQkJCQkJCSAgLyogVGhpcmQgcGFydCBvZiBt ZXNzYWdlIGlzIHNlYXJjaF9wYXRoICovCisJCQkJCQkJICBtZXNzYWdlLT5tZXNzYWdlX3NpemUs CisJCQkJCQkJICBtZXNzYWdlLT5tZXNzYWdlICsgbWVzc2FnZS0+cHJlZml4X3NpemUgKworCQkJ CQkJCSAgbWVzc2FnZS0+cm9sZV9zaXplICsgbWVzc2FnZS0+c2VhcmNoX3BhdGhfc2l6ZSk7Cit9 CisKIC8qCiAgKiBDb25zb2xpZGF0ZWQgY29tbWl0IHJlY29yZCBoYW5kbGluZyBiZXR3ZWVuIHRo ZSBkaWZmZXJlbnQgZm9ybSBvZiBjb21taXQKICAqIHJlY29yZHMuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IDkzNGFhMTNmMmQuLjRlODQ3MDUwMDcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC03Myw2ICs3Mywx MCBAQCBzdGF0aWMgdm9pZCB0cnVuY2F0ZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hl LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiBzdGF0aWMgdm9pZCBtZXNzYWdlX2NiX3dyYXBwZXIo UmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJCQkgICBY TG9nUmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCiAJCQkJCQkJICAgY29u c3QgY2hhciAqcHJlZml4LCBTaXplIG1lc3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7 CitzdGF0aWMgdm9pZCBkZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUs IFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKKwkJCQkJCQkJICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNu LCBib29sIHRyYW5zYWN0aW9uYWwsCisJCQkJCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBjb25z dCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkJCQkJICBTaXplIG1l c3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgdm9pZCBzZXF1ZW5jZV9j Yl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJ CQkJCQkJCVhMb2dSZWNQdHIgc2VxdWVuY2VfbHNuLCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCWJv b2wgdHJhbnNhY3Rpb25hbCwKQEAgLTk0LDYgKzk4LDEwIEBAIHN0YXRpYyB2b2lkIHN0cmVhbV9j aGFuZ2VfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAq dHhuCiBzdGF0aWMgdm9pZCBzdHJlYW1fbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIg KmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCQkJCQkgIFhMb2dSZWNQdHIgbWVz c2FnZV9sc24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKIAkJCQkJCQkJCSAgY29uc3QgY2hhciAqcHJl Zml4LCBTaXplIG1lc3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitzdGF0aWMgdm9p ZCBzdHJlYW1fZGRsbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4sCisJCQkJCQkJCQkJIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sIGJv b2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBj aGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkJCQkJCQkgU2l6ZSBtZXNz YWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogc3RhdGljIHZvaWQgc3RyZWFtX3NlcXVl bmNlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4 biwKIAkJCQkJCQkJCSAgIFhMb2dSZWNQdHIgc2VxdWVuY2VfbHNuLCBSZWxhdGlvbiByZWwsCiAJ CQkJCQkJCQkgICBib29sIHRyYW5zYWN0aW9uYWwsCkBAIC0yMjYsNiArMjM0LDcgQEAgU3RhcnR1 cERlY29kaW5nQ29udGV4dChMaXN0ICpvdXRwdXRfcGx1Z2luX29wdGlvbnMsCiAJY3R4LT5yZW9y ZGVyLT5hcHBseV90cnVuY2F0ZSA9IHRydW5jYXRlX2NiX3dyYXBwZXI7CiAJY3R4LT5yZW9yZGVy LT5jb21taXQgPSBjb21taXRfY2Jfd3JhcHBlcjsKIAljdHgtPnJlb3JkZXItPm1lc3NhZ2UgPSBt ZXNzYWdlX2NiX3dyYXBwZXI7CisJY3R4LT5yZW9yZGVyLT5kZGxtZXNzYWdlID0gZGRsbWVzc2Fn ZV9jYl93cmFwcGVyOwogCWN0eC0+cmVvcmRlci0+c2VxdWVuY2UgPSBzZXF1ZW5jZV9jYl93cmFw cGVyOwogCiAJLyoKQEAgLTI0Myw2ICsyNTIsNyBAQCBTdGFydHVwRGVjb2RpbmdDb250ZXh0KExp c3QgKm91dHB1dF9wbHVnaW5fb3B0aW9ucywKIAkJKGN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9jb21t aXRfY2IgIT0gTlVMTCkgfHwKIAkJKGN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9jaGFuZ2VfY2IgIT0g TlVMTCkgfHwKIAkJKGN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9tZXNzYWdlX2NiICE9IE5VTEwpIHx8 CisJCShjdHgtPmNhbGxiYWNrcy5zdHJlYW1fZGRsbWVzc2FnZV9jYiAhPSBOVUxMKSB8fAogCQko Y3R4LT5jYWxsYmFja3Muc3RyZWFtX3NlcXVlbmNlX2NiICE9IE5VTEwpIHx8CiAJCShjdHgtPmNh bGxiYWNrcy5zdHJlYW1fdHJ1bmNhdGVfY2IgIT0gTlVMTCk7CiAKQEAgLTI2MSw2ICsyNzEsNyBA QCBTdGFydHVwRGVjb2RpbmdDb250ZXh0KExpc3QgKm91dHB1dF9wbHVnaW5fb3B0aW9ucywKIAlj dHgtPnJlb3JkZXItPnN0cmVhbV9jb21taXQgPSBzdHJlYW1fY29tbWl0X2NiX3dyYXBwZXI7CiAJ Y3R4LT5yZW9yZGVyLT5zdHJlYW1fY2hhbmdlID0gc3RyZWFtX2NoYW5nZV9jYl93cmFwcGVyOwog CWN0eC0+cmVvcmRlci0+c3RyZWFtX21lc3NhZ2UgPSBzdHJlYW1fbWVzc2FnZV9jYl93cmFwcGVy OworCWN0eC0+cmVvcmRlci0+c3RyZWFtX2RkbG1lc3NhZ2UgPSBzdHJlYW1fZGRsbWVzc2FnZV9j Yl93cmFwcGVyOwogCWN0eC0+cmVvcmRlci0+c3RyZWFtX3NlcXVlbmNlID0gc3RyZWFtX3NlcXVl bmNlX2NiX3dyYXBwZXI7CiAJY3R4LT5yZW9yZGVyLT5zdHJlYW1fdHJ1bmNhdGUgPSBzdHJlYW1f dHJ1bmNhdGVfY2Jfd3JhcHBlcjsKIApAQCAtMTI1MCw2ICsxMjYxLDQ0IEBAIHNlcXVlbmNlX2Ni X3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAll cnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7CiB9CiAKK3N0YXRpYyB2 b2lkCitkZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJC dWZmZXJUWE4gKnR4biwKKwkJCQkJICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5z YWN0aW9uYWwsCisJCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICpyb2xlLAor CQkJCQkgIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLCBTaXplIG1lc3NhZ2Vfc2l6ZSwKKwkJCQkJ ICBjb25zdCBjaGFyICptZXNzYWdlKQoreworCUxvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCA9 IGNhY2hlLT5wcml2YXRlX2RhdGE7CisJTG9naWNhbEVycm9yQ2FsbGJhY2tTdGF0ZSBzdGF0ZTsK KwlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKworCUFzc2VydCghY3R4LT5mYXN0 X2ZvcndhcmQpOworCisJaWYgKGN0eC0+Y2FsbGJhY2tzLmRkbG1lc3NhZ2VfY2IgPT0gTlVMTCkK KwkJcmV0dXJuOworCisJLyogUHVzaCBjYWxsYmFjayArIGluZm8gb24gdGhlIGVycm9yIGNvbnRl eHQgc3RhY2sgKi8KKwlzdGF0ZS5jdHggPSBjdHg7CisJc3RhdGUuY2FsbGJhY2tfbmFtZSA9ICJk ZGxtZXNzYWdlIjsKKwlzdGF0ZS5yZXBvcnRfbG9jYXRpb24gPSBtZXNzYWdlX2xzbjsKKwllcnJj YWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9wbHVnaW5fZXJyb3JfY2FsbGJhY2s7CisJZXJyY2Fs bGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRlOworCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJy b3JfY29udGV4dF9zdGFjazsKKwllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwor CisJLyogc2V0IG91dHB1dCBzdGF0ZSAqLworCWN0eC0+YWNjZXB0X3dyaXRlcyA9IHRydWU7CisJ Y3R4LT53cml0ZV94aWQgPSB0eG4gIT0gTlVMTCA/IHR4bi0+eGlkIDogSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CisJY3R4LT53cml0ZV9sb2NhdGlvbiA9IG1lc3NhZ2VfbHNuOworCisJLyogZG8gdGhl IGFjdHVhbCB3b3JrOiBjYWxsIGNhbGxiYWNrICovCisJY3R4LT5jYWxsYmFja3MuZGRsbWVzc2Fn ZV9jYihjdHgsIHR4biwgbWVzc2FnZV9sc24sIHRyYW5zYWN0aW9uYWwsIHByZWZpeCwKKwkJCQkJ CQkJIHJvbGUsIHNlYXJjaF9wYXRoLCBtZXNzYWdlX3NpemUsIG1lc3NhZ2UpOworCisJLyogUG9w IHRoZSBlcnJvciBjb250ZXh0IHN0YWNrICovCisJZXJyb3JfY29udGV4dF9zdGFjayA9IGVycmNh bGxiYWNrLnByZXZpb3VzOworfQorCiBzdGF0aWMgdm9pZAogc3RyZWFtX3N0YXJ0X2NiX3dyYXBw ZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJCVhM b2dSZWNQdHIgZmlyc3RfbHNuKQpAQCAtMTU5Niw2ICsxNjQ1LDQ4IEBAIHN0cmVhbV9zZXF1ZW5j ZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4s CiAJZXJyb3JfY29udGV4dF9zdGFjayA9IGVycmNhbGxiYWNrLnByZXZpb3VzOwogfQogCitzdGF0 aWMgdm9pZAorc3RyZWFtX2RkbG1lc3NhZ2VfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNo ZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAorCQkJCQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNu LCBib29sIHRyYW5zYWN0aW9uYWwsCisJCQkJCQkJIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3Qg Y2hhciAqcm9sZSwKKwkJCQkJCQkgY29uc3QgY2hhciogc2VhcmNoX3BhdGgsIFNpemUgbWVzc2Fn ZV9zaXplLAorCQkJCQkJCSBjb25zdCBjaGFyICptZXNzYWdlKQoreworCUxvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCA9IGNhY2hlLT5wcml2YXRlX2RhdGE7CisJTG9naWNhbEVycm9yQ2FsbGJh Y2tTdGF0ZSBzdGF0ZTsKKwlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKworCUFz c2VydCghY3R4LT5mYXN0X2ZvcndhcmQpOworCisJLyogV2UncmUgb25seSBzdXBwb3NlZCB0byBj YWxsIHRoaXMgd2hlbiBzdHJlYW1pbmcgaXMgc3VwcG9ydGVkLiAqLworCUFzc2VydChjdHgtPnN0 cmVhbWluZyk7CisKKwkvKiB0aGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsICovCisJaWYgKGN0eC0+ Y2FsbGJhY2tzLnN0cmVhbV9kZGxtZXNzYWdlX2NiID09IE5VTEwpCisJCXJldHVybjsKKworCS8q IFB1c2ggY2FsbGJhY2sgKyBpbmZvIG9uIHRoZSBlcnJvciBjb250ZXh0IHN0YWNrICovCisJc3Rh dGUuY3R4ID0gY3R4OworCXN0YXRlLmNhbGxiYWNrX25hbWUgPSAic3RyZWFtX2RkbG1lc3NhZ2Ui OworCXN0YXRlLnJlcG9ydF9sb2NhdGlvbiA9IG1lc3NhZ2VfbHNuOworCWVycmNhbGxiYWNrLmNh bGxiYWNrID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxsYmFjazsKKwllcnJjYWxsYmFjay5hcmcg PSAodm9pZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0 X3N0YWNrOworCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CisKKwkvKiBzZXQg b3V0cHV0IHN0YXRlICovCisJY3R4LT5hY2NlcHRfd3JpdGVzID0gdHJ1ZTsKKwljdHgtPndyaXRl X3hpZCA9IHR4biAhPSBOVUxMID8gdHhuLT54aWQgOiBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlj dHgtPndyaXRlX2xvY2F0aW9uID0gbWVzc2FnZV9sc247CisKKwkvKiBkbyB0aGUgYWN0dWFsIHdv cms6IGNhbGwgY2FsbGJhY2sgKi8KKwljdHgtPmNhbGxiYWNrcy5zdHJlYW1fZGRsbWVzc2FnZV9j YihjdHgsIHR4biwgbWVzc2FnZV9sc24sIHRyYW5zYWN0aW9uYWwsIHByZWZpeCwKKwkJCQkJCQkJ CQlyb2xlLCBzZWFyY2hfcGF0aCwgbWVzc2FnZV9zaXplLCBtZXNzYWdlKTsKKworCS8qIFBvcCB0 aGUgZXJyb3IgY29udGV4dCBzdGFjayAqLworCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxs YmFjay5wcmV2aW91czsKK30KKwogc3RhdGljIHZvaWQKIHN0cmVhbV90cnVuY2F0ZV9jYl93cmFw cGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCQkg ICBpbnQgbnJlbGF0aW9ucywgUmVsYXRpb24gcmVsYXRpb25zW10sCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCmluZGV4IGMyZDliZTgxZmEuLjU5 OWRjZWY2YmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVv cmRlcmJ1ZmZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRl cmJ1ZmZlci5jCkBAIC01NTUsNiArNTU1LDIwIEBAIFJlb3JkZXJCdWZmZXJSZXR1cm5DaGFuZ2Uo UmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJDaGFuZ2UgKmNoYW5nZSwKIAkJCQlwZnJl ZShjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2UpOwogCQkJY2hhbmdlLT5kYXRhLm1zZy5tZXNzYWdl ID0gTlVMTDsKIAkJCWJyZWFrOworCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9ERExNRVNT QUdFOgorCQkJaWYgKGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4ICE9IE5VTEwpCisJCQkJcGZy ZWUoY2hhbmdlLT5kYXRhLmRkbG1zZy5wcmVmaXgpOworCQkJY2hhbmdlLT5kYXRhLmRkbG1zZy5w cmVmaXggPSBOVUxMOworCQkJaWYgKGNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSAhPSBOVUxMKQor CQkJCXBmcmVlKGNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSk7CisJCQljaGFuZ2UtPmRhdGEuZGRs bXNnLnJvbGUgPSBOVUxMOworCQkJaWYgKGNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGgg IT0gTlVMTCkKKwkJCQlwZnJlZShjaGFuZ2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoKTsKKwkJ CWNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGggPSBOVUxMOworCQkJaWYgKGNoYW5nZS0+ ZGF0YS5kZGxtc2cubWVzc2FnZSAhPSBOVUxMKQorCQkJCXBmcmVlKGNoYW5nZS0+ZGF0YS5kZGxt c2cubWVzc2FnZSk7CisJCQljaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UgPSBOVUxMOworCQkJ YnJlYWs7CiAJCWNhc2UgUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX0lOVkFMSURBVElPTjoKIAkJCWlm IChjaGFuZ2UtPmRhdGEuaW52YWwuaW52YWxpZGF0aW9ucykKIAkJCQlwZnJlZShjaGFuZ2UtPmRh dGEuaW52YWwuaW52YWxpZGF0aW9ucyk7CkBAIC0xMTQwLDYgKzExNTQsNjQgQEAgUmVvcmRlckJ1 ZmZlclF1ZXVlU2VxdWVuY2UoUmVvcmRlckJ1ZmZlciAqcmIsIFRyYW5zYWN0aW9uSWQgeGlkLAog CX0KIH0KIAorLyoKKyAqIEEgdHJhbnNhY3Rpb25hbCBEREwgbWVzc2FnZSBpcyBxdWV1ZWQgdG8g YmUgcHJvY2Vzc2VkIHVwb24gY29tbWl0IGFuZCBhCisgKiBub24tdHJhbnNhY3Rpb25hbCBEREwg bWVzc2FnZSBnZXRzIHByb2Nlc3NlZCBpbW1lZGlhdGVseS4KKyAqLwordm9pZAorUmVvcmRlckJ1 ZmZlclF1ZXVlRERMTWVzc2FnZShSZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNhY3Rpb25JZCB4aWQs CisJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LCBYTG9nUmVjUHRyIGxzbiwKKwkJCQkJCSAgYm9v bCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkgIGNvbnN0IGNoYXIg KnJvbGUsIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJICBTaXplIG1lc3NhZ2Vfc2l6 ZSwgY29uc3QgY2hhciAqbWVzc2FnZSkKK3sKKwlpZiAodHJhbnNhY3Rpb25hbCkKKwl7CisJCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwkJUmVvcmRlckJ1ZmZlckNoYW5nZSAqY2hhbmdlOwor CisJCUFzc2VydCh4aWQgIT0gSW52YWxpZFRyYW5zYWN0aW9uSWQpOworCisJCW9sZGNvbnRleHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocmItPmNvbnRleHQpOworCisJCWNoYW5nZSA9IFJlb3Jk ZXJCdWZmZXJHZXRDaGFuZ2UocmIpOworCQljaGFuZ2UtPmFjdGlvbiA9IFJFT1JERVJfQlVGRkVS X0NIQU5HRV9ERExNRVNTQUdFOworCQljaGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZpeCA9IHBzdHJk dXAocHJlZml4KTsKKwkJY2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlID0gcHN0cmR1cChyb2xlKTsK KwkJY2hhbmdlLT5kYXRhLmRkbG1zZy5zZWFyY2hfcGF0aCA9IHBzdHJkdXAoc2VhcmNoX3BhdGgp OworCQljaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSA9IG1lc3NhZ2Vfc2l6ZTsKKwkJ Y2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlID0gcGFsbG9jKG1lc3NhZ2Vfc2l6ZSk7CisJCW1l bWNweShjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UsIG1lc3NhZ2UsIG1lc3NhZ2Vfc2l6ZSk7 CisKKwkJUmVvcmRlckJ1ZmZlclF1ZXVlQ2hhbmdlKHJiLCB4aWQsIGxzbiwgY2hhbmdlLCBmYWxz ZSk7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCX0KKwllbHNlCisJ eworCQlSZW9yZGVyQnVmZmVyVFhOICp0eG4gPSBOVUxMOworCQl2b2xhdGlsZSBTbmFwc2hvdCBz bmFwc2hvdF9ub3cgPSBzbmFwc2hvdDsKKworCQlpZiAoeGlkICE9IEludmFsaWRUcmFuc2FjdGlv bklkKQorCQkJdHhuID0gUmVvcmRlckJ1ZmZlclRYTkJ5WGlkKHJiLCB4aWQsIHRydWUsIE5VTEws IGxzbiwgdHJ1ZSk7CisKKwkJLyogc2V0dXAgc25hcHNob3QgdG8gYWxsb3cgY2F0YWxvZyBhY2Nl c3MgKi8KKwkJU2V0dXBIaXN0b3JpY1NuYXBzaG90KHNuYXBzaG90X25vdywgTlVMTCk7CisJCVBH X1RSWSgpOworCQl7CisJCQlyYi0+ZGRsbWVzc2FnZShyYiwgdHhuLCBsc24sIGZhbHNlLCBwcmVm aXgsIHJvbGUsIHNlYXJjaF9wYXRoLCBtZXNzYWdlX3NpemUsIG1lc3NhZ2UpOworCisJCQlUZWFy ZG93bkhpc3RvcmljU25hcHNob3QoZmFsc2UpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJ CVRlYXJkb3duSGlzdG9yaWNTbmFwc2hvdCh0cnVlKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0K KwkJUEdfRU5EX1RSWSgpOworCX0KK30KKwogLyoKICAqIEFzc2VydFRYTkxzbk9yZGVyCiAgKgkJ VmVyaWZ5IExTTiBvcmRlcmluZyBvZiB0cmFuc2FjdGlvbiBsaXN0cyBpbiB0aGUgcmVvcmRlcmJ1 ZmZlcgpAQCAtMjIzNCw2ICsyMzA2LDI5IEBAIFJlb3JkZXJCdWZmZXJBcHBseU1lc3NhZ2UoUmVv cmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJY2hhbmdlLT5kYXRh Lm1zZy5tZXNzYWdlKTsKIH0KIAorLyoKKyAqIEhlbHBlciBmdW5jdGlvbiBmb3IgUmVvcmRlckJ1 ZmZlclByb2Nlc3NUWE4gZm9yIGFwcGx5aW5nIHRoZSBEREwgbWVzc2FnZS4KKyAqLworc3RhdGlj IGlubGluZSB2b2lkCitSZW9yZGVyQnVmZmVyQXBwbHlERExNZXNzYWdlKFJlb3JkZXJCdWZmZXIg KnJiLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCisJCQkJCQkJIFJlb3JkZXJCdWZmZXJDaGFuZ2Ug KmNoYW5nZSwgYm9vbCBzdHJlYW1pbmcpCit7CisJaWYgKHN0cmVhbWluZykKKwkJcmItPnN0cmVh bV9kZGxtZXNzYWdlKHJiLCB0eG4sIGNoYW5nZS0+bHNuLCB0cnVlLAorCQkJCQkJCSAgY2hhbmdl LT5kYXRhLmRkbG1zZy5wcmVmaXgsCisJCQkJCQkJICBjaGFuZ2UtPmRhdGEuZGRsbXNnLnJvbGUs CisJCQkJCQkJICBjaGFuZ2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoLAorCQkJCQkJCSAgY2hh bmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlX3NpemUsCisJCQkJCQkJICBjaGFuZ2UtPmRhdGEuZGRs bXNnLm1lc3NhZ2UpOworCWVsc2UKKwkJcmItPmRkbG1lc3NhZ2UocmIsIHR4biwgY2hhbmdlLT5s c24sIHRydWUsCisJCQkJCSAgIGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4LAorCQkJCQkgICBj aGFuZ2UtPmRhdGEuZGRsbXNnLnJvbGUsCisJCQkJCSAgIGNoYW5nZS0+ZGF0YS5kZGxtc2cuc2Vh cmNoX3BhdGgsCisJCQkJCSAgIGNoYW5nZS0+ZGF0YS5kZGxtc2cubWVzc2FnZV9zaXplLAorCQkJ CQkgICBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UpOworfQorCiAvKgogICogSGVscGVyIGZ1 bmN0aW9uIGZvciBSZW9yZGVyQnVmZmVyUHJvY2Vzc1RYTiBmb3IgYXBwbHlpbmcgc2VxdWVuY2Vz LgogICovCkBAIC0yNjM1LDYgKzI3MzAsMTAgQEAgUmVvcmRlckJ1ZmZlclByb2Nlc3NUWE4oUmVv cmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJUmVvcmRlckJ1ZmZl ckFwcGx5TWVzc2FnZShyYiwgdHhuLCBjaGFuZ2UsIHN0cmVhbWluZyk7CiAJCQkJCWJyZWFrOwog CisJCQkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRToKKwkJCQkJUmVvcmRl ckJ1ZmZlckFwcGx5RERMTWVzc2FnZShyYiwgdHhuLCBjaGFuZ2UsIHN0cmVhbWluZyk7CisJCQkJ CWJyZWFrOworCiAJCQkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfSU5WQUxJREFUSU9OOgog CQkJCQkvKiBFeGVjdXRlIHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgbG9jYWxseSAqLwogCQkJ CQlSZW9yZGVyQnVmZmVyRXhlY3V0ZUludmFsaWRhdGlvbnMoCkBAIC00MDM0LDYgKzQxMzMsNTMg QEAgUmVvcmRlckJ1ZmZlclNlcmlhbGl6ZUNoYW5nZShSZW9yZGVyQnVmZmVyICpyYiwgUmVvcmRl ckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkgICBjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6ZSk7 CiAJCQkJZGF0YSArPSBjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6ZTsKIAorCQkJCWJyZWFr OworCQkJfQorCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9ERExNRVNTQUdFOgorCQkJewor CQkJCWNoYXIJICAgKmRhdGE7CisJCQkJU2l6ZQkJcHJlZml4X3NpemUgPSBzdHJsZW4oY2hhbmdl LT5kYXRhLmRkbG1zZy5wcmVmaXgpICsgMTsKKwkJCQlTaXplCQlyb2xlX3NpemUgPSBzdHJsZW4o Y2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlKSArIDE7CisJCQkJU2l6ZQkJc2VhcmNoX3BhdGhfc2l6 ZSA9IHN0cmxlbihjaGFuZ2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoKSArIDE7CisKKwkJCQlz eiArPSBwcmVmaXhfc2l6ZSArIHJvbGVfc2l6ZSArIHNlYXJjaF9wYXRoX3NpemUgKworCQkJCQkg IGNoYW5nZS0+ZGF0YS5kZGxtc2cubWVzc2FnZV9zaXplICsKKwkJCQkJICBzaXplb2YoU2l6ZSkg KyBzaXplb2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSk7CisJCQkJUmVvcmRl ckJ1ZmZlclNlcmlhbGl6ZVJlc2VydmUocmIsIHN6KTsKKworCQkJCWRhdGEgPSAoKGNoYXIgKikg cmItPm91dGJ1ZikgKyBzaXplb2YoUmVvcmRlckJ1ZmZlckRpc2tDaGFuZ2UpOworCisJCQkJLyog bWlnaHQgaGF2ZSBiZWVuIHJlYWxsb2NhdGVkIGFib3ZlICovCisJCQkJb25kaXNrID0gKFJlb3Jk ZXJCdWZmZXJEaXNrQ2hhbmdlICopIHJiLT5vdXRidWY7CisKKwkJCQkvKiB3cml0ZSB0aGUgcHJl Zml4IGluY2x1ZGluZyB0aGUgc2l6ZSAqLworCQkJCW1lbWNweShkYXRhLCAmcHJlZml4X3NpemUs IHNpemVvZihTaXplKSk7CisJCQkJZGF0YSArPSBzaXplb2YoU2l6ZSk7CisJCQkJbWVtY3B5KGRh dGEsIGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4LAorCQkJCQkgICBwcmVmaXhfc2l6ZSk7CisJ CQkJZGF0YSArPSBwcmVmaXhfc2l6ZTsKKworCQkJCS8qIHdyaXRlIHRoZSByb2xlIGluY2x1ZGlu ZyB0aGUgc2l6ZSAqLworCQkJCW1lbWNweShkYXRhLCAmcm9sZV9zaXplLCBzaXplb2YoU2l6ZSkp OworCQkJCWRhdGEgKz0gc2l6ZW9mKFNpemUpOworCQkJCW1lbWNweShkYXRhLCBjaGFuZ2UtPmRh dGEuZGRsbXNnLnJvbGUsCisJCQkJCSAgIHJvbGVfc2l6ZSk7CisJCQkJZGF0YSArPSByb2xlX3Np emU7CisKKwkJCQkvKiB3cml0ZSB0aGUgc2VhcmNoX3BhdGggaW5jbHVkaW5nIHRoZSBzaXplICov CisJCQkJbWVtY3B5KGRhdGEsICZzZWFyY2hfcGF0aF9zaXplLCBzaXplb2YoU2l6ZSkpOworCQkJ CWRhdGEgKz0gc2l6ZW9mKFNpemUpOworCQkJCW1lbWNweShkYXRhLCBjaGFuZ2UtPmRhdGEuZGRs bXNnLnNlYXJjaF9wYXRoLAorCQkJCQkgICBzZWFyY2hfcGF0aF9zaXplKTsKKwkJCQlkYXRhICs9 IHNlYXJjaF9wYXRoX3NpemU7CisKKwkJCQkvKiB3cml0ZSB0aGUgbWVzc2FnZSBpbmNsdWRpbmcg dGhlIHNpemUgKi8KKwkJCQltZW1jcHkoZGF0YSwgJmNoYW5nZS0+ZGF0YS5kZGxtc2cubWVzc2Fn ZV9zaXplLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEgKz0gc2l6ZW9mKFNpemUpOworCQkJCW1l bWNweShkYXRhLCBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UsCisJCQkJCSAgIGNoYW5nZS0+ ZGF0YS5kZGxtc2cubWVzc2FnZV9zaXplKTsKKwkJCQlkYXRhICs9IGNoYW5nZS0+ZGF0YS5kZGxt c2cubWVzc2FnZV9zaXplOworCiAJCQkJYnJlYWs7CiAJCQl9CiAJCWNhc2UgUkVPUkRFUl9CVUZG RVJfQ0hBTkdFX0lOVkFMSURBVElPTjoKQEAgLTQzODEsNiArNDUyNywxOCBAQCBSZW9yZGVyQnVm ZmVyQ2hhbmdlU2l6ZShSZW9yZGVyQnVmZmVyQ2hhbmdlICpjaGFuZ2UpCiAJCQkJc3ogKz0gcHJl Zml4X3NpemUgKyBjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6ZSArCiAJCQkJCXNpemVvZihT aXplKSArIHNpemVvZihTaXplKTsKIAorCQkJCWJyZWFrOworCQkJfQorCQljYXNlIFJFT1JERVJf QlVGRkVSX0NIQU5HRV9ERExNRVNTQUdFOgorCQkJeworCQkJCVNpemUJCXByZWZpeF9zaXplID0g c3RybGVuKGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4KSArIDE7CisJCQkJU2l6ZQkJcm9sZV9z aXplID0gc3RybGVuKGNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSkgKyAxOworCQkJCVNpemUJCXNl YXJjaF9wYXRoX3NpemUgPSBzdHJsZW4oY2hhbmdlLT5kYXRhLmRkbG1zZy5zZWFyY2hfcGF0aCkg KyAxOworCisJCQkJc3ogKz0gcHJlZml4X3NpemUgKyByb2xlX3NpemUgKyBzZWFyY2hfcGF0aF9z aXplICsKKwkJCQkJY2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlX3NpemUgKworCQkJCQlzaXpl b2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSk7CisK IAkJCQlicmVhazsKIAkJCX0KIAkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfSU5WQUxJREFU SU9OOgpAQCAtNDY1Nyw4ICs0ODE1LDcgQEAgUmVvcmRlckJ1ZmZlclJlc3RvcmVDaGFuZ2UoUmVv cmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkvKiByZWFkIHByZWZp eCAqLwogCQkJCW1lbWNweSgmcHJlZml4X3NpemUsIGRhdGEsIHNpemVvZihTaXplKSk7CiAJCQkJ ZGF0YSArPSBzaXplb2YoU2l6ZSk7Ci0JCQkJY2hhbmdlLT5kYXRhLm1zZy5wcmVmaXggPSBNZW1v cnlDb250ZXh0QWxsb2MocmItPmNvbnRleHQsCi0JCQkJCQkJCQkJCQkJCQkgcHJlZml4X3NpemUp OworCQkJCWNoYW5nZS0+ZGF0YS5tc2cucHJlZml4ID0gTWVtb3J5Q29udGV4dEFsbG9jKHJiLT5j b250ZXh0LCBwcmVmaXhfc2l6ZSk7CiAJCQkJbWVtY3B5KGNoYW5nZS0+ZGF0YS5tc2cucHJlZml4 LCBkYXRhLCBwcmVmaXhfc2l6ZSk7CiAJCQkJQXNzZXJ0KGNoYW5nZS0+ZGF0YS5tc2cucHJlZml4 W3ByZWZpeF9zaXplIC0gMV0gPT0gJ1wwJyk7CiAJCQkJZGF0YSArPSBwcmVmaXhfc2l6ZTsKQEAg LTQ2NzIsNiArNDgyOSw0OSBAQCBSZW9yZGVyQnVmZmVyUmVzdG9yZUNoYW5nZShSZW9yZGVyQnVm ZmVyICpyYiwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkgICBjaGFuZ2UtPmRhdGEubXNn Lm1lc3NhZ2Vfc2l6ZSk7CiAJCQkJZGF0YSArPSBjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6 ZTsKIAorCQkJCWJyZWFrOworCQkJfQorCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9ERExN RVNTQUdFOgorCQkJeworCQkJCVNpemUJCXByZWZpeF9zaXplOworCQkJCVNpemUJCXJvbGVfc2l6 ZTsKKwkJCQlTaXplCQlzZWFyY2hfcGF0aF9zaXplOworCisJCQkJLyogcmVhZCBwcmVmaXggKi8K KwkJCQltZW1jcHkoJnByZWZpeF9zaXplLCBkYXRhLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEg Kz0gc2l6ZW9mKFNpemUpOworCQkJCWNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4ID0gTWVtb3J5 Q29udGV4dEFsbG9jKHJiLT5jb250ZXh0LCBwcmVmaXhfc2l6ZSk7CisJCQkJbWVtY3B5KGNoYW5n ZS0+ZGF0YS5kZGxtc2cucHJlZml4LCBkYXRhLCBwcmVmaXhfc2l6ZSk7CisJCQkJQXNzZXJ0KGNo YW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4W3ByZWZpeF9zaXplIC0gMV0gPT0gJ1wwJyk7CisJCQkJ ZGF0YSArPSBwcmVmaXhfc2l6ZTsKKworCQkJCS8qIHJlYWQgcm9sZSAqLworCQkJCW1lbWNweSgm cm9sZV9zaXplLCBkYXRhLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEgKz0gc2l6ZW9mKFNpemUp OworCQkJCWNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhyYi0+ Y29udGV4dCwKKwkJCQkJCQkJCQkJCQkJCSAgcm9sZV9zaXplKTsKKwkJCQltZW1jcHkoY2hhbmdl LT5kYXRhLmRkbG1zZy5yb2xlLCBkYXRhLCByb2xlX3NpemUpOworCQkJCUFzc2VydChjaGFuZ2Ut PmRhdGEuZGRsbXNnLnJvbGVbcm9sZV9zaXplIC0gMV0gPT0gJ1wwJyk7CisJCQkJZGF0YSArPSBy b2xlX3NpemU7CisKKwkJCQkvKiByZWFkIHNlYXJjaF9wYXRoICovCisJCQkJbWVtY3B5KCZzZWFy Y2hfcGF0aF9zaXplLCBkYXRhLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEgKz0gc2l6ZW9mKFNp emUpOworCQkJCWNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGggPSBNZW1vcnlDb250ZXh0 QWxsb2MocmItPmNvbnRleHQsCisJCQkJCQkJCQkJCQkJCQkJCSBzZWFyY2hfcGF0aF9zaXplKTsK KwkJCQltZW1jcHkoY2hhbmdlLT5kYXRhLmRkbG1zZy5zZWFyY2hfcGF0aCwgZGF0YSwgc2VhcmNo X3BhdGhfc2l6ZSk7CisJCQkJQXNzZXJ0KGNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGhb c2VhcmNoX3BhdGhfc2l6ZSAtIDFdID09ICdcMCcpOworCQkJCWRhdGEgKz0gc2VhcmNoX3BhdGhf c2l6ZTsKKworCQkJCS8qIHJlYWQgdGhlIG1lc3NhZ2UgKi8KKwkJCQltZW1jcHkoJmNoYW5nZS0+ ZGF0YS5tc2cubWVzc2FnZV9zaXplLCBkYXRhLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEgKz0g c2l6ZW9mKFNpemUpOworCQkJCWNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZSA9IE1lbW9yeUNvbnRl eHRBbGxvYyhyYi0+Y29udGV4dCwKKwkJCQkJCQkJCQkJCQkJCSAgY2hhbmdlLT5kYXRhLm1zZy5t ZXNzYWdlX3NpemUpOworCQkJCW1lbWNweShjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2UsIGRhdGEs CisJCQkJCSAgIGNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZV9zaXplKTsKKwkJCQlkYXRhICs9IGNo YW5nZS0+ZGF0YS5tc2cubWVzc2FnZV9zaXplOworCiAJCQkJYnJlYWs7CiAJCQl9CiAJCWNhc2Ug UkVPUkRFUl9CVUZGRVJfQ0hBTkdFX0lOVkFMSURBVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMzc4 MGM2ZTgxMi4uZTVlYzU3MTNmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTYyLDYgKzYyLDcgQEAKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdXRpbGNtZC5oIgog I2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3cml0ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9k ZGxtZXNzYWdlLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlRGVmaW5lLmgiCiAjaW5jbHVk ZSAicmV3cml0ZS9yZXdyaXRlUmVtb3ZlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgpAQCAt ODYsNyArODcsNyBAQCBzdGF0aWMgdm9pZCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJCSAg IERlc3RSZWNlaXZlciAqZGVzdCwKIAkJCQkJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKTsKLXN0 YXRpYyB2b2lkIEV4ZWNEcm9wU3RtdChEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKTsK K3N0YXRpYyB2b2lkIEV4ZWNEcm9wU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpz dG10LCBib29sIGlzVG9wTGV2ZWwpOwogCiAvKgogICogQ29tbWFuZElzUmVhZE9ubHk6IGlzIGFu IGV4ZWN1dGFibGUgcXVlcnkgcmVhZC1vbmx5PwpAQCAtOTg2LDcgKzk4Nyw3IEBAIHN0YW5kYXJk X1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCQkJCQkJCSAgIGNvbnRleHQs IHBhcmFtcywgcXVlcnlFbnYsCiAJCQkJCQkJCQkgICBkZXN0LCBxYyk7CiAJCQkJZWxzZQotCQkJ CQlFeGVjRHJvcFN0bXQoc3RtdCwgaXNUb3BMZXZlbCk7CisJCQkJCUV4ZWNEcm9wU3RtdChwc3Rh dGUsIHN0bXQsIGlzVG9wTGV2ZWwpOwogCQkJfQogCQkJYnJlYWs7CiAKQEAgLTEwODYsNiArMTA4 NywxNTQgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCUNv bW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiB9CiAKKy8qCisgKiBMb2cgYSBEREwgY29tbWFuZCBm b3IgbG9naWNhbCByZXBsaWNhdGlvbgorICogU29tZSBERExzIGFyZSBvbmx5IHJlcGxpY2F0ZWQg aW4gRGF0YWJhc2UgTGV2ZWwgRERMIHJlcGxpY2F0aW9uCisgKiBTb21lIGNhbiBiZSByZXBsaWNh dGVkIGluIFRhYmxlIExldmVsIERETCByZXBsaWNhdGlvbi4KKyAqCisgKiBDdXJyZW50bHkgd2Ug Zm9jdXMgb24gc3VwcG9ydGluZyBEYXRhYmFzZSBMZXZlbCBEREwgcmVwbGljYXRpb24KKyAqLwor c3RhdGljIHZvaWQKK0xvZ0xvZ2ljYWxERExDb21tYW5kKE5vZGUgKnBhcnNldHJlZSwgY29uc3Qg Y2hhciAqcXVlcnlTdHJpbmcpCit7CisJc3dpdGNoIChub2RlVGFnKHBhcnNldHJlZSkpCisJewor CQkvKiBGaXNydGx5LCBjb21tYW5kcyB0aGF0IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiBEYXRhYmFz ZSBsZXZlbCBEREwgcmVwbGljYXRpb24gKi8KKwkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJ CWNhc2UgVF9DcmVhdGVTdG10OgorCQljYXNlIFRfQ3JlYXRlRm9yZWlnblRhYmxlU3RtdDoKKwkJ Y2FzZSBUX0FsdGVyRG9tYWluU3RtdDoKKwkJY2FzZSBUX0RlZmluZVN0bXQ6CisJCWNhc2UgVF9D b21wb3NpdGVUeXBlU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZUVudW1TdG10OgorCQljYXNlIFRfQ3Jl YXRlUmFuZ2VTdG10OgorCQljYXNlIFRfQWx0ZXJFbnVtU3RtdDoKKwkJY2FzZSBUX1ZpZXdTdG10 OgorCQljYXNlIFRfQ3JlYXRlRnVuY3Rpb25TdG10OgorCQljYXNlIFRfQWx0ZXJGdW5jdGlvblN0 bXQ6CisJCWNhc2UgVF9DcmVhdGVUcmlnU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZURvbWFpblN0bXQ6 CisJCWNhc2UgVF9DcmVhdGVDYXN0U3RtdDoKKwkJY2FzZSBUX0NyZWF0ZU9wQ2xhc3NTdG10Ogor CQljYXNlIFRfQ3JlYXRlT3BGYW1pbHlTdG10OgorCQljYXNlIFRfQWx0ZXJPcEZhbWlseVN0bXQ6 CisJCWNhc2UgVF9BbHRlck9wZXJhdG9yU3RtdDoKKwkJY2FzZSBUX0FsdGVyVHlwZVN0bXQ6CisJ CWNhc2UgVF9HcmFudFN0bXQ6CisJCWNhc2UgVF9BbHRlckNvbGxhdGlvblN0bXQ6CisJCQkvKgor CQkJICogTG9nIHRoZXNlIHN0bXQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gaWYKKwkJCSAqIHRo ZXJlIGlzIGFueSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRhYmFz ZSBvbi4KKwkJCSAqIGkuZS4gRGF0YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uIGlzIG9uIGZv ciBzb21lIHB1YmxpY2F0aW9uLgorCQkJICovCisJCQlpZiAoZGRsX25lZWRfeGxvZyhJbnZhbGlk T2lkLCB0cnVlLCB0cnVlKSkKKwkJCXsKKwkJCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwor CQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQkJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHBy ZWZpeCwKKwkJCQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkJCSBxdWVyeVN0cmluZywKKwkJ CQkJCQkJCSBzdHJsZW4ocXVlcnlTdHJpbmcpLAorCQkJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOwor CQkJfQorCQkJYnJlYWs7CisKKwkJLyoKKwkJICogU2Vjb25kbHksIGNvbW1hbmRzIHRoYXQgbWF5 IGJlIGFsbG93ZWQgaW4gVGFibGUgbGV2ZWwgRERMIHJlcGxpY2F0aW9uLgorCQkgKiBUaGVzZSBh cmUgY3VycmVudGx5IGhhbmRsZWQgaW4gdGhlIGxhdGVyIGV4ZWN1dGlvbiBwYXRoIG9mIHRoZSBj b21tYW5kLgorCQkgKiBCZWNhdXNlIHdlIG5lZWQgdG8gZ2V0IHRoZSByZWxhdGlvbiBpZCB3aGlj aCByZWFkaWx5IGF2YWlsYWJsZSBpbiBsYXRlcgorCQkgKiBjb2RlIHBhdGguCisJCSAqLworCQlj YXNlIFRfQWx0ZXJUYWJsZVN0bXQ6CisJCWNhc2UgVF9JbmRleFN0bXQ6CisJCWNhc2UgVF9SZW5h bWVTdG10OiAvKiBUT0RPICovCisJCWNhc2UgVF9BbHRlck93bmVyU3RtdDogLyogVE9ETyAqLwor CQkJYnJlYWs7CisKKwkJLyogRHJvcFN0bXQgZGVwZW5kcyBvbiB0aGUgcmVtb3ZlVHlwZSAqLwor CQljYXNlIFRfRHJvcFN0bXQ6CisJCXsKKwkJCURyb3BTdG10KiBzdG10ID0gKERyb3BTdG10Kikg cGFyc2V0cmVlOworCQkJc3dpdGNoIChzdG10LT5yZW1vdmVUeXBlKQorCQkJeworCQkJCS8qIE1h eWJlIGFsbG93ZWQgaW4gVGFibGUgbGV2ZWwgRERMIHJlcGxpY2F0aW9uLCBoYW5kbGVkIGluIGxh dGVyIGNvZGUgcGF0aCAqLworCQkJCWNhc2UgT0JKRUNUX0lOREVYOgorCQkJCWNhc2UgT0JKRUNU X1RBQkxFOgorCQkJCQlicmVhazsKKwkJCQkvKiBEcm9wIG9mIHNlcXVlbmNlIGlzIGJ5IGxvZ2lj YWwgcmVwbGljYXRpb24gb2Ygc2VxdWVuY2VzIHNlcGFyYXRlbHkgKi8KKwkJCQljYXNlIE9CSkVD VF9TRVFVRU5DRToKKwkJCQkJYnJlYWs7CisJCQkJLyogRHJvcCBvZiBvdGhlciBvYmplY3RzIGFy ZSBhbGxvd2VkIGluIERhdGFiYXNlIGxldmVsIERETCByZXBsaWNhdGlvbiBvbmx5ICovCisJCQkJ Y2FzZSBPQkpFQ1RfVklFVzoKKwkJCQljYXNlIE9CSkVDVF9NQVRWSUVXOgorCQkJCWNhc2UgT0JK RUNUX0ZPUkVJR05fVEFCTEU6CisJCQkJZGVmYXVsdDoKKwkJCQkJLyoKKwkJCQkJICogTG9nIHRo ZXNlIERyb3BTdG10IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGlmCisJCQkJCSAqIHRoZXJlIGlz IGFueSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbi4K KwkJCQkJICogaS5lLiBEYXRhYmFzZSBsZXZlbCBEREwgcmVwbGljYXRpb24gaXMgb24gZm9yIHNv bWUgcHVibGljYXRpb24uCisJCQkJCSAqLworCQkJCQlpZiAoZGRsX25lZWRfeGxvZyhJbnZhbGlk T2lkLCB0cnVlLCB0cnVlKSkKKwkJCQkJeworCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsID0gdHJ1 ZTsKKwkJCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQkJCQkJTG9nTG9naWNhbERETE1l c3NhZ2UocHJlZml4LAorCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksCisJCQkJCQkJCQkJCSBxdWVy eVN0cmluZywKKwkJCQkJCQkJCQkJIHN0cmxlbihxdWVyeVN0cmluZyksCisJCQkJCQkJCQkJCSB0 cmFuc2FjdGlvbmFsKTsKKwkJCQkJfQorCQkJCQlicmVhazsKKwkJCX0KKwkJfQorCQkvKgorCQkg KiBMYXN0bHksIHJ1bGUgb3V0IERETHMgd2UgZG9uJ3QgcmVwbGljYXRlIHlldCBpbiBEREwgcmVw bGljYXRpb24KKwkJICogU29tZSBvZiB0aGVzZSBjYW4gYmUgc3VwcG9ydGVkLCB3ZSBqdXN0IG5l ZWQgdG8gaW52ZXN0aWdhdGUgYW5kIHJ1biB0ZXN0cy4KKwkJICovCisJCWNhc2UgVF9DcmVhdGVF eHRlbnNpb25TdG10OgorCQljYXNlIFRfQWx0ZXJFeHRlbnNpb25TdG10OgorCQljYXNlIFRfQWx0 ZXJFeHRlbnNpb25Db250ZW50c1N0bXQ6CisJCWNhc2UgVF9DcmVhdGVGZHdTdG10OgorCQljYXNl IFRfQWx0ZXJGZHdTdG10OgorCQljYXNlIFRfQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQ6CisJCWNh c2UgVF9BbHRlckZvcmVpZ25TZXJ2ZXJTdG10OgorCQljYXNlIFRfQ3JlYXRlVXNlck1hcHBpbmdT dG10OgorCQljYXNlIFRfQWx0ZXJVc2VyTWFwcGluZ1N0bXQ6CisJCWNhc2UgVF9Ecm9wVXNlck1h cHBpbmdTdG10OgorCQljYXNlIFRfSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQ6CisJCWNhc2UgVF9S dWxlU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CisJCWNhc2UgVF9BbHRlclNlcVN0bXQ6 CisJCWNhc2UgVF9DcmVhdGVUYWJsZUFzU3RtdDoKKwkJY2FzZSBUX1JlZnJlc2hNYXRWaWV3U3Rt dDoKKwkJY2FzZSBUX0NyZWF0ZVBMYW5nU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZUNvbnZlcnNpb25T dG10OgorCQljYXNlIFRfQ3JlYXRlVHJhbnNmb3JtU3RtdDoKKwkJY2FzZSBUX0FsdGVyVFNEaWN0 aW9uYXJ5U3RtdDoKKwkJY2FzZSBUX0FsdGVyVFNDb25maWd1cmF0aW9uU3RtdDoKKwkJY2FzZSBU X0FsdGVyVGFibGVNb3ZlQWxsU3RtdDoKKwkJY2FzZSBUX0FsdGVyT2JqZWN0RGVwZW5kc1N0bXQ6 CisJCWNhc2UgVF9BbHRlck9iamVjdFNjaGVtYVN0bXQ6CisJCWNhc2UgVF9Db21tZW50U3RtdDoK KwkJY2FzZSBUX0Ryb3BPd25lZFN0bXQ6CisJCWNhc2UgVF9BbHRlckRlZmF1bHRQcml2aWxlZ2Vz U3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVBvbGljeVN0bXQ6CisJCWNhc2UgVF9BbHRlclBvbGljeVN0 bXQ6CisJCWNhc2UgVF9TZWNMYWJlbFN0bXQ6CisJCWNhc2UgVF9DcmVhdGVBbVN0bXQ6CisJCWNh c2UgVF9DcmVhdGVQdWJsaWNhdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRlclB1YmxpY2F0aW9uU3Rt dDoKKwkJY2FzZSBUX0NyZWF0ZVN1YnNjcmlwdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRlclN1YnNj cmlwdGlvblN0bXQ6CisJCWNhc2UgVF9Ecm9wU3Vic2NyaXB0aW9uU3RtdDoKKwkJY2FzZSBUX0Ny ZWF0ZVN0YXRzU3RtdDoKKwkJY2FzZSBUX0FsdGVyU3RhdHNTdG10OgorCQkJYnJlYWs7CisJCWRl ZmF1bHQ6CisJCQlicmVhazsKKwl9Cit9CisKIC8qCiAgKiBUaGUgIlNsb3ciIHZhcmlhbnQgb2Yg UHJvY2Vzc1V0aWxpdHkgc2hvdWxkIG9ubHkgcmVjZWl2ZSBzdGF0ZW1lbnRzCiAgKiBzdXBwb3J0 ZWQgYnkgdGhlIGV2ZW50IHRyaWdnZXJzIGZhY2lsaXR5LiAgVGhlcmVmb3JlLCB3ZSBhbHdheXMK QEAgLTExMTgsNiArMTI2NywxMyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQlpZiAoaXNDb21wbGV0ZVF1ZXJ5KQogCQkJRXZlbnRUcmlnZ2VyRERMQ29tbWFuZFN0 YXJ0KHBhcnNldHJlZSk7CiAKKwkJLyoKKwkJICogQ29uc2lkZXIgbG9nZ2luZyB0aGUgRERMIGNv bW1hbmQgaWYgbG9naWNhbCBsb2dnaW5nIGlzIGVuYWJsZWQgYW5kIHRoaXMgaXMKKwkJICogYSB0 b3AgbGV2ZWwgcXVlcnkuCisJCSAqLworCQlpZiAoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYg aXNUb3BMZXZlbCkKKwkJCUxvZ0xvZ2ljYWxERExDb21tYW5kKHBhcnNldHJlZSwgcXVlcnlTdHJp bmcpOworCiAJCXN3aXRjaCAobm9kZVRhZyhwYXJzZXRyZWUpKQogCQl7CiAJCQkJLyoKQEAgLTEz MjAsNiArMTQ3NiwyMyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZVN0YXJ0KHBhcnNldHJlZSk7CiAJCQkJCQlFdmVu dFRyaWdnZXJBbHRlclRhYmxlUmVsaWQocmVsaWQpOwogCisJCQkJCQkvKgorCQkJCQkJICogTG9n IHRoZSBBTFRFUiBUQUJMRSBjb21tYW5kIGlmCisJCQkJCQkgKiBUaGVyZSBpcyBhbnkgcHVibGlj YXRpb24gd2l0aCBkYXRhYmFzZSBsZXZlbCBkZGwgb24gb3IKKwkJCQkJCSAqIHRoaXMgVEFCTEUg YmVsb25ncyB0byBhbnkgcHVibGljYXRpb24gd2l0aCB0YWJsZSBsZXZlbCBkZGwgb24KKwkJCQkJ CSAqLworCQkJCQkJaWYgKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmCisJCQkJCQkJZGRsX25l ZWRfeGxvZyhyZWxpZCwgZmFsc2UsIGlzVG9wTGV2ZWwpKQorCQkJCQkJeworCQkJCQkJCWJvb2wg dHJhbnNhY3Rpb25hbCA9IHRydWU7CisJCQkJCQkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CisJ CQkJCQkJTG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAorCQkJCQkJCQkJCQkJIEdldFVzZXJJ ZCgpLAorCQkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAorCQkJCQkJCQkJCQkJIHN0cmxlbihxdWVy eVN0cmluZyksCisJCQkJCQkJCQkJCQkgdHJhbnNhY3Rpb25hbCk7CisJCQkJCQl9CisKIAkJCQkJ CS8qIC4uLiBhbmQgZG8gaXQgKi8KIAkJCQkJCUFsdGVyVGFibGUoYXRzdG10LCBsb2NrbW9kZSwg JmF0Y29udGV4dCk7CiAKQEAgLTE1MzgsNiArMTcxMSwyNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3co UGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJCQkJCS8qIC4uLiBhbmQgZG8gaXQgKi8KIAkJCQkJRXZl bnRUcmlnZ2VyQWx0ZXJUYWJsZVN0YXJ0KHBhcnNldHJlZSk7CisKKwkJCQkJLyoKKwkJCQkJICog TG9nIENSRUFURSBJTkRFWCBjbWQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gaWYKKwkJCQkJICog dGhlcmUgaXMgYW55IHB1YmxpY2F0aW9uIHdpdGggZGF0YWJhc2UgbGV2ZWwgZGRsIG9uIG9yCisJ CQkJCSAqIHRoaXMgVEFCTEUgYmVsb25ncyB0byBhbnkgcHVibGljYXRpb24gd2l0aCB0YWJsZSBs ZXZlbCBkZGwgb24uCisJCQkJCSAqLworCQkJCQlpZiAoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkg JiYKKwkJCQkJCWRkbF9uZWVkX3hsb2cocmVsaWQsIGZhbHNlLCBpc1RvcExldmVsKSkKKwkJCQkJ eworCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsID0gdHJ1ZTsKKwkJCQkJCWNvbnN0IGNoYXIqIHBy ZWZpeCA9ICIiOworCQkJCQkJTG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAorCQkJCQkJCQkJ CQkgR2V0VXNlcklkKCksCisJCQkJCQkJCQkJCSBxdWVyeVN0cmluZywKKwkJCQkJCQkJCQkJIHN0 cmxlbihxdWVyeVN0cmluZyksCisJCQkJCQkJCQkJCSB0cmFuc2FjdGlvbmFsKTsKKwkJCQkJfQor CiAJCQkJCWFkZHJlc3MgPQogCQkJCQkJRGVmaW5lSW5kZXgocmVsaWQsCS8qIE9JRCBvZiBoZWFw IHJlbGF0aW9uICovCiAJCQkJCQkJCQlzdG10LApAQCAtMTc1NCw3ICsxOTQ1LDcgQEAgUHJvY2Vz c1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlicmVhazsKIAogCQkJY2FzZSBU X0Ryb3BTdG10OgotCQkJCUV4ZWNEcm9wU3RtdCgoRHJvcFN0bXQgKikgcGFyc2V0cmVlLCBpc1Rv cExldmVsKTsKKwkJCQlFeGVjRHJvcFN0bXQocHN0YXRlLCAoRHJvcFN0bXQgKikgcGFyc2V0cmVl LCBpc1RvcExldmVsKTsKIAkJCQkvKiBubyBjb21tYW5kcyBzdGFzaGVkIGZvciBEUk9QICovCiAJ CQkJY29tbWFuZENvbGxlY3RlZCA9IHRydWU7CiAJCQkJYnJlYWs7CkBAIC0xOTc1LDcgKzIxNjYs NyBAQCBQcm9jZXNzVXRpbGl0eUZvckFsdGVyVGFibGUoTm9kZSAqc3RtdCwgQWx0ZXJUYWJsZVV0 aWxpdHlDb250ZXh0ICpjb250ZXh0KQogICogRGlzcGF0Y2ggZnVuY3Rpb24gZm9yIERyb3BTdG10 CiAgKi8KIHN0YXRpYyB2b2lkCi1FeGVjRHJvcFN0bXQoRHJvcFN0bXQgKnN0bXQsIGJvb2wgaXNU b3BMZXZlbCkKK0V4ZWNEcm9wU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpzdG10 LCBib29sIGlzVG9wTGV2ZWwpCiB7CiAJc3dpdGNoIChzdG10LT5yZW1vdmVUeXBlKQogCXsKQEAg LTE5OTAsNyArMjE4MSw3IEBAIEV4ZWNEcm9wU3RtdChEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1Rv cExldmVsKQogCQljYXNlIE9CSkVDVF9WSUVXOgogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQlj YXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgotCQkJUmVtb3ZlUmVsYXRpb25zKHN0bXQpOworCQkJ UmVtb3ZlUmVsYXRpb25zKHBzdGF0ZSwgc3RtdCwgaXNUb3BMZXZlbCk7CiAJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCVJlbW92ZU9iamVjdHMoc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3dhbGR1bXAvcm1ncmRlc2MuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9ybWdyZGVzYy5jCmluZGV4 IDZhNGViZDEzMTAuLmMzOGMxNjNmMjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9y bWdyZGVzYy5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9ybWdyZGVzYy5jCkBAIC0yNyw2ICsy Nyw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJjb21tYW5k cy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2RkbG1lc3NhZ2UuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9vcmln aW4uaCIKICNpbmNsdWRlICJybWdyZGVzYy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3RhbmRieWRl ZnMuaCIKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9ybWdybGlzdC5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL3JtZ3JsaXN0LmgKaW5kZXggY2Y4YjZkNDgxOS4uNWZmZGMxNmNjYSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JtZ3JsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3JtZ3JsaXN0LmgKQEAgLTQ3LDMgKzQ3LDQgQEAgUEdfUk1HUihSTV9DT01NSVRfVFNf SUQsICJDb21taXRUcyIsIGNvbW1pdF90c19yZWRvLCBjb21taXRfdHNfZGVzYywgY29tbWl0X3Rz X2kKIFBHX1JNR1IoUk1fUkVQTE9SSUdJTl9JRCwgIlJlcGxpY2F0aW9uT3JpZ2luIiwgcmVwbG9y aWdpbl9yZWRvLCByZXBsb3JpZ2luX2Rlc2MsIHJlcGxvcmlnaW5faWRlbnRpZnksIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwpCiBQR19STUdSKFJNX0dFTkVSSUNfSUQsICJHZW5lcmljIiwgZ2VuZXJp Y19yZWRvLCBnZW5lcmljX2Rlc2MsIGdlbmVyaWNfaWRlbnRpZnksIE5VTEwsIE5VTEwsIGdlbmVy aWNfbWFzaywgTlVMTCkKIFBHX1JNR1IoUk1fTE9HSUNBTE1TR19JRCwgIkxvZ2ljYWxNZXNzYWdl IiwgbG9naWNhbG1zZ19yZWRvLCBsb2dpY2FsbXNnX2Rlc2MsIGxvZ2ljYWxtc2dfaWRlbnRpZnks IE5VTEwsIE5VTEwsIE5VTEwsIGxvZ2ljYWxtc2dfZGVjb2RlKQorUEdfUk1HUihSTV9MT0dJQ0FM RERMTVNHX0lELCAiTG9naWNhbERETE1lc3NhZ2UiLCBsb2dpY2FsZGRsbXNnX3JlZG8sIGxvZ2lj YWxkZGxtc2dfZGVzYywgbG9naWNhbGRkbG1zZ19pZGVudGlmeSwgTlVMTCwgTlVMTCwgTlVMTCwg bG9naWNhbGRkbG1zZ19kZWNvZGUpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90 YWJsZWNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oCmluZGV4IDVkNDAz N2YyNmUuLjY4NzgxMzY1ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxl Y21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oCkBAIC0xOCw2ICsx OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5j bHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKIApAQCAtMjcsNyArMjgsNyBAQCBzdHJ1Y3QgQWx0ZXJU YWJsZVV0aWxpdHlDb250ZXh0OwkvKiBhdm9pZCBpbmNsdWRpbmcgdGNvcC91dGlsaXR5LmggaGVy ZSAqLwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgRGVmaW5lUmVsYXRpb24oQ3JlYXRlU3RtdCAqc3Rt dCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJCQkJCQkJCU9iamVjdEFkZHJlc3MgKnR5 cGFkZHJlc3MsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKTsKIAotZXh0ZXJuIHZvaWQgUmVtb3Zl UmVsYXRpb25zKERyb3BTdG10ICpkcm9wKTsKK2V4dGVybiB2b2lkIFJlbW92ZVJlbGF0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpkcm9wLCBib29sIGlzVG9wTGV2ZWwpOwogCiBl eHRlcm4gT2lkCUFsdGVyVGFibGVMb29rdXBSZWxhdGlvbihBbHRlclRhYmxlU3RtdCAqc3RtdCwg TE9DS01PREUgbG9ja21vZGUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9kZGxtZXNzYWdlLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWU4ZWYyMjI5NgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2RkbG1lc3NhZ2UuaApAQCAtMCwwICsx LDQ3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIGRkbG1lc3NhZ2UuaAorICoJICAgRXhwb3J0 cyBmcm9tIHJlcGxpY2F0aW9uL2xvZ2ljYWwvZGRsbWVzc2FnZS5jCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIHNy Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL2RkbG1lc3NhZ2UuaAorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfTE9HSUNBTF9ERExfTUVTU0FHRV9ICisjZGVmaW5lIFBHX0xPR0lDQUxf RERMX01FU1NBR0VfSAorCisjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKKyNpbmNsdWRlICJhY2Nl c3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ3JlYWRlci5oIgorCisvKgorICog R2VuZXJpYyBsb2dpY2FsIGRlY29kaW5nIERETCBtZXNzYWdlIHdhbCByZWNvcmQuCisgKi8KK3R5 cGVkZWYgc3RydWN0IHhsX2xvZ2ljYWxfZGRsX21lc3NhZ2UKK3sKKwlPaWQJCQlkYklkOwkJCS8q IGRhdGFiYXNlIE9pZCBlbWl0dGVkIGZyb20gKi8KKwlib29sCQl0cmFuc2FjdGlvbmFsOwkvKiBp cyBtZXNzYWdlIHRyYW5zYWN0aW9uYWw/ICovCisJU2l6ZQkJcHJlZml4X3NpemU7CS8qIGxlbmd0 aCBvZiBwcmVmaXggKi8KKwlTaXplCQlyb2xlX3NpemU7ICAgICAgLyogbGVuZ3RoIG9mIHRoZSBy b2xlIHRoYXQgZXhlY3V0ZXMgdGhlIERETCBjb21tYW5kICovCisJU2l6ZQkJc2VhcmNoX3BhdGhf c2l6ZTsgLyogbGVuZ3RoIG9mIHRoZSBzZWFyY2ggcGF0aCAqLworCVNpemUJCW1lc3NhZ2Vfc2l6 ZTsJICAvKiBzaXplIG9mIHRoZSBtZXNzYWdlICovCisJLyoKKwkgKiBwYXlsb2FkLCBpbmNsdWRp bmcgbnVsbC10ZXJtaW5hdGVkIHByZWZpeCBvZiBsZW5ndGggcHJlZml4X3NpemUKKwkgKiBhbmQg bnVsbC10ZXJtaW5hdGVkIHJvbGUgb2YgbGVuZ3RoIHJvbGVfc2l6ZQorCSAqIGFuZCBudWxsLXRl cm1pbmF0ZWQgc2VhcmNoX3BhdGggb2YgbGVuZ3RoIHNlYXJjaF9wYXRoX3NpemUKKwkgKi8KKwlj aGFyCQltZXNzYWdlW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07Cit9IHhsX2xvZ2ljYWxfZGRsX21l c3NhZ2U7CisKKyNkZWZpbmUgU2l6ZU9mTG9naWNhbERETE1lc3NhZ2UJKG9mZnNldG9mKHhsX2xv Z2ljYWxfZGRsX21lc3NhZ2UsIG1lc3NhZ2UpKQorCitleHRlcm4gWExvZ1JlY1B0ciBMb2dMb2dp Y2FsRERMTWVzc2FnZShjb25zdCBjaGFyICpwcmVmaXgsIE9pZCByb2xlb2lkLCBjb25zdCBjaGFy ICpkZGxfbWVzc2FnZSwKKwkJCQkJCQkJCSAgIHNpemVfdCBzaXplLCBib29sIHRyYW5zYWN0aW9u YWwpOworCisvKiBSTUdSIEFQSSovCisjZGVmaW5lIFhMT0dfTE9HSUNBTF9ERExfTUVTU0FHRQkw eDAwCit2b2lkCQlsb2dpY2FsZGRsbXNnX3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwor dm9pZAkJbG9naWNhbGRkbG1zZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCk7Citjb25zdCBjaGFyICpsb2dpY2FsZGRsbXNnX2lkZW50aWZ5KHVpbnQ4IGluZm8p OworCisjZW5kaWYJCQkJCQkJLyogUEdfTE9HSUNBTF9ERExfTUVTU0FHRV9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZWNvZGUuaCBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2RlY29kZS5oCmluZGV4IDhlMDdiYjc0MDkuLmVhMGY3ZTVjYjkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2RlY29kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2RlY29kZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIHhhY3RfZGVjb2Rl KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKTsKIGV4 dGVybiB2b2lkIHN0YW5kYnlfZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExv Z1JlY29yZEJ1ZmZlciAqYnVmKTsKIGV4dGVybiB2b2lkIGxvZ2ljYWxtc2dfZGVjb2RlKExvZ2lj YWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKTsKIGV4dGVybiB2 b2lkIHNlcXVlbmNlX2RlY29kZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNv cmRCdWZmZXIgKmJ1Zik7CitleHRlcm4gdm9pZCBsb2dpY2FsZGRsbXNnX2RlY29kZShMb2dpY2Fs RGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1Zik7CiAKIGV4dGVybiB2 b2lkCUxvZ2ljYWxEZWNvZGluZ1Byb2Nlc3NSZWNvcmQoTG9naWNhbERlY29kaW5nQ29udGV4dCAq Y3R4LAogCQkJCQkJCQkJCSBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vdXRwdXRfcGx1Z2luLmggYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9vdXRwdXRfcGx1Z2luLmgKaW5kZXggYTE2YmViZjc2Yy4uZjBmZDFlYTg5NSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vb3V0cHV0X3BsdWdpbi5oCisrKyBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL291dHB1dF9wbHVnaW4uaApAQCAtODgsNiArODgsMTkgQEAg dHlwZWRlZiB2b2lkICgqTG9naWNhbERlY29kZU1lc3NhZ2VDQikgKHN0cnVjdCBMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsCiAJCQkJCQkJCQkJU2l6ZSBtZXNzYWdlX3NpemUsCiAJCQkJCQkJ CQkJY29uc3QgY2hhciAqbWVzc2FnZSk7CiAKKy8qCisgKiBDYWxsZWQgZm9yIHRoZSBsb2dpY2Fs IGRlY29kaW5nIERETCBtZXNzYWdlcy4KKyAqLwordHlwZWRlZiB2b2lkICgqTG9naWNhbERlY29k ZURETE1lc3NhZ2VDQikgKHN0cnVjdCBMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCisJCQkJ CQkJCQkJICAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAorCQkJCQkJCQkJCSAgIFhMb2dSZWNQdHIg bWVzc2FnZV9sc24sCisJCQkJCQkJCQkJICAgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJ CSAgIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpyb2xlLAor CQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJCQkJCSAgIFNpemUg bWVzc2FnZV9zaXplLAorCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworCiAvKgog ICogQ2FsbGVkIGZvciB0aGUgZ2VuZXJpYyBsb2dpY2FsIGRlY29kaW5nIHNlcXVlbmNlcy4KICAq LwpAQCAtMjExLDYgKzIyNCwyMCBAQCB0eXBlZGVmIHZvaWQgKCpMb2dpY2FsRGVjb2RlU3RyZWFt TWVzc2FnZUNCKSAoc3RydWN0IExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eAogCQkJCQkJCQkJ CQkgIFNpemUgbWVzc2FnZV9zaXplLAogCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1lc3NhZ2Up OwogCisvKgorICogQ2FsbGJhY2sgZm9yIHN0cmVhbWluZyBsb2dpY2FsIGRlY29kaW5nIERETCBt ZXNzYWdlcyBmcm9tIGluLXByb2dyZXNzCisgKiB0cmFuc2FjdGlvbnMuCisgKi8KK3R5cGVkZWYg dm9pZCAoKkxvZ2ljYWxEZWNvZGVTdHJlYW1ERExNZXNzYWdlQ0IpIChzdHJ1Y3QgTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LAorCQkJCQkJCQkJCQkJIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK KwkJCQkJCQkJCQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAorCQkJCQkJCQkJCQkJIGJvb2wg dHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkJ CQkJCQkgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzZWFyY2hf cGF0aCwKKwkJCQkJCQkJCQkJCSBTaXplIG1lc3NhZ2Vfc2l6ZSwKKwkJCQkJCQkJCQkJCSBjb25z dCBjaGFyICptZXNzYWdlKTsKKwogLyoKICAqIENhbGxlZCBmb3IgdGhlIHN0cmVhbWluZyBnZW5l cmljIGxvZ2ljYWwgZGVjb2Rpbmcgc2VxdWVuY2VzIGZyb20gaW4tcHJvZ3Jlc3MKICAqIHRyYW5z YWN0aW9ucy4KQEAgLTI0NCw2ICsyNzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBPdXRwdXRQbHVnaW5D YWxsYmFja3MKIAlMb2dpY2FsRGVjb2RlVHJ1bmNhdGVDQiB0cnVuY2F0ZV9jYjsKIAlMb2dpY2Fs RGVjb2RlQ29tbWl0Q0IgY29tbWl0X2NiOwogCUxvZ2ljYWxEZWNvZGVNZXNzYWdlQ0IgbWVzc2Fn ZV9jYjsKKwlMb2dpY2FsRGVjb2RlRERMTWVzc2FnZUNCIGRkbG1lc3NhZ2VfY2I7CiAJTG9naWNh bERlY29kZVNlcXVlbmNlQ0Igc2VxdWVuY2VfY2I7CiAJTG9naWNhbERlY29kZUZpbHRlckJ5T3Jp Z2luQ0IgZmlsdGVyX2J5X29yaWdpbl9jYjsKIAlMb2dpY2FsRGVjb2RlU2h1dGRvd25DQiBzaHV0 ZG93bl9jYjsKQEAgLTI2Myw2ICsyOTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBPdXRwdXRQbHVnaW5D YWxsYmFja3MKIAlMb2dpY2FsRGVjb2RlU3RyZWFtQ29tbWl0Q0Igc3RyZWFtX2NvbW1pdF9jYjsK IAlMb2dpY2FsRGVjb2RlU3RyZWFtQ2hhbmdlQ0Igc3RyZWFtX2NoYW5nZV9jYjsKIAlMb2dpY2Fs RGVjb2RlU3RyZWFtTWVzc2FnZUNCIHN0cmVhbV9tZXNzYWdlX2NiOworCUxvZ2ljYWxEZWNvZGVT dHJlYW1ERExNZXNzYWdlQ0Igc3RyZWFtX2RkbG1lc3NhZ2VfY2I7CiAJTG9naWNhbERlY29kZVN0 cmVhbVNlcXVlbmNlQ0Igc3RyZWFtX3NlcXVlbmNlX2NiOwogCUxvZ2ljYWxEZWNvZGVTdHJlYW1U cnVuY2F0ZUNCIHN0cmVhbV90cnVuY2F0ZV9jYjsKIH0gT3V0cHV0UGx1Z2luQ2FsbGJhY2tzOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vcmVvcmRlcmJ1ZmZlci5oIGIvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vcmVvcmRlcmJ1ZmZlci5oCmluZGV4IDBiY2MxNTBiMzMuLjA4 MTkzNjFkMjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZm ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVmZmVyLmgKQEAgLTU2 LDYgKzU2LDcgQEAgdHlwZWRlZiBlbnVtIFJlb3JkZXJCdWZmZXJDaGFuZ2VUeXBlCiAJUkVPUkRF Ul9CVUZGRVJfQ0hBTkdFX0lOU0VSVCwKIAlSRU9SREVSX0JVRkZFUl9DSEFOR0VfVVBEQVRFLAog CVJFT1JERVJfQlVGRkVSX0NIQU5HRV9ERUxFVEUsCisJUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX0RE TE1FU1NBR0UsCiAJUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX01FU1NBR0UsCiAJUkVPUkRFUl9CVUZG RVJfQ0hBTkdFX0lOVkFMSURBVElPTiwKIAlSRU9SREVSX0JVRkZFUl9DSEFOR0VfSU5URVJOQUxf U05BUFNIT1QsCkBAIC0xMzEsNiArMTMyLDE2IEBAIHR5cGVkZWYgc3RydWN0IFJlb3JkZXJCdWZm ZXJDaGFuZ2UKIAkJCWNoYXIJICAgKm1lc3NhZ2U7CiAJCX0JCQltc2c7CiAKKwkJLyogRERMIE1l c3NhZ2UuICovCisJCXN0cnVjdAorCQl7CisJCQljaGFyCSAgICpwcmVmaXg7CisJCQljaGFyCSAg ICpyb2xlOworCQkJY2hhcgkgICAqc2VhcmNoX3BhdGg7CisJCQlTaXplCQltZXNzYWdlX3NpemU7 CisJCQljaGFyCSAgICptZXNzYWdlOworCQl9CQkJZGRsbXNnOworCiAJCS8qIE5ldyBzbmFwc2hv dCwgc2V0IHdoZW4gYWN0aW9uID09ICpfSU5URVJOQUxfU05BUFNIT1QgKi8KIAkJU25hcHNob3QJ c25hcHNob3Q7CiAKQEAgLTQzOCw2ICs0NDksMTcgQEAgdHlwZWRlZiB2b2lkICgqUmVvcmRlckJ1 ZmZlck1lc3NhZ2VDQikgKFJlb3JkZXJCdWZmZXIgKnJiLAogCQkJCQkJCQkJCWNvbnN0IGNoYXIg KnByZWZpeCwgU2l6ZSBzeiwKIAkJCQkJCQkJCQljb25zdCBjaGFyICptZXNzYWdlKTsKIAorLyog RERMIG1lc3NhZ2UgY2FsbGJhY2sgc2lnbmF0dXJlICovCit0eXBlZGVmIHZvaWQgKCpSZW9yZGVy QnVmZmVyRERMTWVzc2FnZUNCKSAoUmVvcmRlckJ1ZmZlciAqcmIsCisJCQkJCQkJCQkJICAgUmVv cmRlckJ1ZmZlclRYTiAqdHhuLAorCQkJCQkJCQkJCSAgIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24s CisJCQkJCQkJCQkJICAgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJCSAgIGNvbnN0IGNo YXIgKnByZWZpeCwKKwkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpyb2xlLAorCQkJCQkJCQkJCSAg IGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJCQkJCSAgIFNpemUgc3osCisJCQkJCQkJ CQkJICAgY29uc3QgY2hhciAqbWVzc2FnZSk7CisKIC8qIHNlcXVlbmNlIGNhbGxiYWNrIHNpZ25h dHVyZSAqLwogdHlwZWRlZiB2b2lkICgqUmVvcmRlckJ1ZmZlclNlcXVlbmNlQ0IpIChSZW9yZGVy QnVmZmVyICpyYiwKIAkJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLApAQCAtNTEzLDYg KzUzNSwxOCBAQCB0eXBlZGVmIHZvaWQgKCpSZW9yZGVyQnVmZmVyU3RyZWFtTWVzc2FnZUNCKSAo CiAJCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBTaXplIHN6LAogCQkJCQkJCQkJCQkg IGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogCisvKiBzdHJlYW0gRERMIG1lc3NhZ2UgY2FsbGJhY2sg c2lnbmF0dXJlICovCit0eXBlZGVmIHZvaWQgKCpSZW9yZGVyQnVmZmVyU3RyZWFtRERMTWVzc2Fn ZUNCKSAoCisJCQkJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlciAqcmIsCisJCQkJCQkJCQkJCQkgUmVv cmRlckJ1ZmZlclRYTiAqdHhuLAorCQkJCQkJCQkJCQkJIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24s CisJCQkJCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJCQkJIGNvbnN0IGNo YXIgKnByZWZpeCwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpyb2xlLAorCQkJCQkJCQkJCQkJ IGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJCQkJCQkJIFNpemUgc3osCisJCQkJCQkJ CQkJCQkgY29uc3QgY2hhciAqbWVzc2FnZSk7CisKIC8qIHN0cmVhbSBzZXF1ZW5jZSBjYWxsYmFj ayBzaWduYXR1cmUgKi8KIHR5cGVkZWYgdm9pZCAoKlJlb3JkZXJCdWZmZXJTdHJlYW1TZXF1ZW5j ZUNCKSAoUmVvcmRlckJ1ZmZlciAqcmIsCiAJCQkJCQkJCQkJCSAgIFJlb3JkZXJCdWZmZXJUWE4g KnR4biwKQEAgLTU3Myw2ICs2MDcsNyBAQCBzdHJ1Y3QgUmVvcmRlckJ1ZmZlcgogCVJlb3JkZXJC dWZmZXJBcHBseVRydW5jYXRlQ0IgYXBwbHlfdHJ1bmNhdGU7CiAJUmVvcmRlckJ1ZmZlckNvbW1p dENCIGNvbW1pdDsKIAlSZW9yZGVyQnVmZmVyTWVzc2FnZUNCIG1lc3NhZ2U7CisJUmVvcmRlckJ1 ZmZlckRETE1lc3NhZ2VDQiBkZGxtZXNzYWdlOwogCVJlb3JkZXJCdWZmZXJTZXF1ZW5jZUNCIHNl cXVlbmNlOwogCiAJLyoKQEAgLTU5Myw2ICs2MjgsNyBAQCBzdHJ1Y3QgUmVvcmRlckJ1ZmZlcgog CVJlb3JkZXJCdWZmZXJTdHJlYW1Db21taXRDQiBzdHJlYW1fY29tbWl0OwogCVJlb3JkZXJCdWZm ZXJTdHJlYW1DaGFuZ2VDQiBzdHJlYW1fY2hhbmdlOwogCVJlb3JkZXJCdWZmZXJTdHJlYW1NZXNz YWdlQ0Igc3RyZWFtX21lc3NhZ2U7CisJUmVvcmRlckJ1ZmZlclN0cmVhbURETE1lc3NhZ2VDQiBz dHJlYW1fZGRsbWVzc2FnZTsKIAlSZW9yZGVyQnVmZmVyU3RyZWFtU2VxdWVuY2VDQiBzdHJlYW1f c2VxdWVuY2U7CiAJUmVvcmRlckJ1ZmZlclN0cmVhbVRydW5jYXRlQ0Igc3RyZWFtX3RydW5jYXRl OwogCkBAIC02NjksNiArNzA1LDkgQEAgdm9pZAkJUmVvcmRlckJ1ZmZlclF1ZXVlQ2hhbmdlKFJl b3JkZXJCdWZmZXIgKiwgVHJhbnNhY3Rpb25JZCwKIHZvaWQJCVJlb3JkZXJCdWZmZXJRdWV1ZU1l c3NhZ2UoUmVvcmRlckJ1ZmZlciAqLCBUcmFuc2FjdGlvbklkLCBTbmFwc2hvdCBzbmFwc2hvdCwg WExvZ1JlY1B0ciBsc24sCiAJCQkJCQkJCQkgIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hh ciAqcHJlZml4LAogCQkJCQkJCQkJICBTaXplIG1lc3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVz c2FnZSk7Cit2b2lkCQlSZW9yZGVyQnVmZmVyUXVldWVERExNZXNzYWdlKFJlb3JkZXJCdWZmZXIg KiwgVHJhbnNhY3Rpb25JZCwgU25hcHNob3Qgc25hcHNob3QsIFhMb2dSZWNQdHIgbHNuLAorCQkJ CQkJCQkJCSBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hh ciAqcm9sZSwKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsIFNpemUgbWVzc2Fn ZV9zaXplLCBjb25zdCBjaGFyICptZXNzYWdlKTsKIHZvaWQJCVJlb3JkZXJCdWZmZXJRdWV1ZVNl cXVlbmNlKFJlb3JkZXJCdWZmZXIgKnJiLCBUcmFuc2FjdGlvbklkIHhpZCwKIAkJCQkJCQkJCSAg IFNuYXBzaG90IHNuYXBzaG90LCBYTG9nUmVjUHRyIGxzbiwgUmVwT3JpZ2luSWQgb3JpZ2luX2lk LAogCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgcm5vZGUsIGJvb2wgdHJhbnNhY3Rpb25hbCwgYm9v bCBjcmVhdGVkLAo= --00000000000008262705da7316ad Content-Type: application/octet-stream; name="0003-pgoutput-worker-ddl_replication.patch" Content-Disposition: attachment; filename="0003-pgoutput-worker-ddl_replication.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l0vo8q2a2 Y29tbWl0IDFhZGE5ODE5MjdhODQxZDQzMzA4NWE0MmUwYzZhN2YyY2Y5Y2RlOGQKQXV0aG9yOiBa aGVuZyAoWmFuZSkgTGkgPHpoZWxsaUBhbWF6b24uY29tPgpEYXRlOiAgIEZyaSBNYXIgMTggMDA6 MDY6NDAgMjAyMiArMDAwMAoKICAgIDAwMDMtcGdvdXRwdXQtd29ya2VyLWRkbF9yZXBsaWNhdGlv bi5wYXRjaAogICAgNC4gSW50ZWdyYXRpb24gd2l0aCBwZ291dHB1dAogICAgU3VwcG9ydHMgc2Vu ZGluZyBhbmQgcmVjZWl2aW5nIHRoZSBEREwgbWVzc2FnZSB1c2luZyB0aGUgbG9naWNhbAogICAg cmVwbGljYXRpb24gd2lyZSBwcm90b2NvbC4gQSBuZXcgTG9naWNhbFJlcE1zZ1R5cGUgaXMgaW50 cm9kdWNlZAogICAgZm9yIHRoaXMgcHVycG9zZTogTE9HSUNBTF9SRVBfTVNHX0RETE1FU1NBR0Ug PSAnTCcuCiAgICAKICAgIDUuIExvZ2ljYWwgcmVwbGljYXRpb24gd29ya2VyIGNoYW5nZQogICAg U3VwcG9ydHMgZXhlY3V0aW9uIG9mIHRoZSBEREwgY29tbWFuZCBpbiB0aGUgb3JpZ2luYWwgdXNl ciByb2xlIGFuZAogICAgc2VhcmNoX3BhdGguIEZvciBhbnkgbmV3IHRhYmxlIGNyZWF0ZWQgdGhp cyB3YXksIHdlIGFsc28gc2V0IGl0cwogICAgc3JzdWJzdGF0ZSBpbiB0aGUgcGdfc3Vic2NyaXB0 aW9uX3JlbCBjYXRhbG9nIHRvCiAgICBTVUJSRUxfU1RBVEVfSU5JVCwgU28gdGhhdCBETUwgcmVw bGljYXRpb24gY2FuIHByb2dyZXNzIG9uIHRoaXMKICAgIG5ldyB0YWJsZSB3aXRob3V0IG1hbnVh bGx5IHJ1bm5pbmcKICAgICJBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJ T04iLgogICAgCiAgICA2LiBUQVAgdGVzdAogICAgQSBuZXcgVEFQIHRlc3QgMDMwX3JlcF9kZGwu cGwgaXMgYWRkZWQuIFdlIG1haW5seSBmb2N1c2VkIG9uCiAgICB0ZXN0aW5nIHRoZSBoYXBweSBw YXRoIG9mIGRhdGFiYXNlIGxldmVsIHJlcGxpY2F0aW9uIHNvIGZhci4KICAgIENvcm5lciBjYXNl IERETHMgYW5kIHRhYmxlIGxldmVsIERETCByZXBsaWNhdGlvbiBhcmUgc3RpbGwgdG8gYmUKICAg IGNhcmVmdWxseSB0ZXN0ZWQuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9wcm90by5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9wcm90by5j CmluZGV4IGM5YjBlZWVmZDcuLjc2MmI4OTc1NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvcHJvdG8uYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3Byb3RvLmMKQEAgLTYyNiw4ICs2MjYsOCBAQCBsb2dpY2FscmVwX3JlYWRfdHJ1bmNh dGUoU3RyaW5nSW5mbyBpbiwKICAqLwogdm9pZAogbG9naWNhbHJlcF93cml0ZV9tZXNzYWdlKFN0 cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciBsc24sCi0JCQkJCQkg Ym9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIFNpemUgc3osCi0JCQkJCQkg Y29uc3QgY2hhciAqbWVzc2FnZSkKKwkJCQkJCSBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNo YXIgKnByZWZpeCwKKwkJCQkJCSBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKQogewogCXVp bnQ4CQlmbGFncyA9IDA7CiAKQEAgLTY0OCw2ICs2NDgsNjMgQEAgbG9naWNhbHJlcF93cml0ZV9t ZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciBsc24s CiAJcHFfc2VuZGJ5dGVzKG91dCwgbWVzc2FnZSwgc3opOwogfQogCisvKgorICogUmVhZCBEREwg TUVTU0FHRSBmcm9tIHN0cmVhbQorICovCitjb25zdCBjaGFyICoKK2xvZ2ljYWxyZXBfcmVhZF9k ZGxtZXNzYWdlKFN0cmluZ0luZm8gaW4sIFhMb2dSZWNQdHIgKmxzbiwKKwkJCQkJCSAgIGNvbnN0 IGNoYXIgKipwcmVmaXgsCisJCQkJCQkgICBjb25zdCBjaGFyICoqcm9sZSwKKwkJCQkJCSAgIGNv bnN0IGNoYXIgKipzZWFyY2hfcGF0aCwKKwkJCQkJCSAgIGJvb2wgKnRyYW5zYWN0aW9uYWwsCisJ CQkJCQkgICBTaXplICpzeikKK3sKKwl1aW50OCBmbGFnczsKKwljb25zdCBjaGFyICptc2c7CisK KwkvL1RPRE8gZG91YmxlIGNoZWNrIHdoZW4gZG8gd2UgbmVlZCB0byBnZXQgVHJhbnNhY3Rpb25J ZC4KKworCWZsYWdzID0gcHFfZ2V0bXNnaW50KGluLCAxKTsKKwkqdHJhbnNhY3Rpb25hbCA9IChm bGFncyAmIE1FU1NBR0VfVFJBTlNBQ1RJT05BTCkgPiAwOworCSpsc24gPSBwcV9nZXRtc2dpbnQ2 NChpbik7CisJKnByZWZpeCA9IHBxX2dldG1zZ3N0cmluZyhpbik7CisJKnJvbGUgPSBwcV9nZXRt c2dzdHJpbmcoaW4pOworCSpzZWFyY2hfcGF0aCA9IHBxX2dldG1zZ3N0cmluZyhpbik7CisJKnN6 ID0gcHFfZ2V0bXNnaW50KGluLCA0KTsKKwltc2cgPSBwcV9nZXRtc2dieXRlcyhpbiwgKnN6KTsK KworCXJldHVybiBtc2c7Cit9CisKKy8qCisgKiBXcml0ZSBEREwgTUVTU0FHRSB0byBzdHJlYW0K KyAqLwordm9pZAorbG9naWNhbHJlcF93cml0ZV9kZGxtZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBU cmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciBsc24sCisJCQkJCQkgYm9vbCB0cmFuc2FjdGlv bmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsCisJCQkJCQkgY29uc3Qg Y2hhciAqc2VhcmNoX3BhdGgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJdWlu dDgJCWZsYWdzID0gMDsKKworCXBxX3NlbmRieXRlKG91dCwgTE9HSUNBTF9SRVBfTVNHX0RETE1F U1NBR0UpOworCisJLyogZW5jb2RlIGFuZCBzZW5kIG1lc3NhZ2UgZmxhZ3MgKi8KKwlpZiAodHJh bnNhY3Rpb25hbCkKKwkJZmxhZ3MgfD0gTUVTU0FHRV9UUkFOU0FDVElPTkFMOworCisJLyogdHJh bnNhY3Rpb24gSUQgKGlmIG5vdCB2YWxpZCwgd2UncmUgbm90IHN0cmVhbWluZykgKi8KKwlpZiAo VHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJcHFfc2VuZGludDMyKG91dCwgeGlkKTsKKwor CXBxX3NlbmRpbnQ4KG91dCwgZmxhZ3MpOworCXBxX3NlbmRpbnQ2NChvdXQsIGxzbik7CisJcHFf c2VuZHN0cmluZyhvdXQsIHByZWZpeCk7CisJcHFfc2VuZHN0cmluZyhvdXQsIHJvbGUpOworCXBx X3NlbmRzdHJpbmcob3V0LCBzZWFyY2hfcGF0aCk7CisJcHFfc2VuZGludDMyKG91dCwgc3opOwor CXBxX3NlbmRieXRlcyhvdXQsIG1lc3NhZ2UsIHN6KTsKK30KKwogLyoKICAqIFdyaXRlIHJlbGF0 aW9uIGRlc2NyaXB0aW9uIHRvIHRoZSBvdXRwdXQgc3RyZWFtLgogICovCkBAIC0xMTg1LDYgKzEy NDIsOCBAQCBsb2dpY2FscmVwX21lc3NhZ2VfdHlwZShMb2dpY2FsUmVwTXNnVHlwZSBhY3Rpb24p CiAJCQlyZXR1cm4gIlRZUEUiOwogCQljYXNlIExPR0lDQUxfUkVQX01TR19NRVNTQUdFOgogCQkJ cmV0dXJuICJNRVNTQUdFIjsKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfRERMTUVTU0FHRToKKwkJ CXJldHVybiAiRERMIjsKIAkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfQkVHSU5fUFJFUEFSRToKIAkJ CXJldHVybiAiQkVHSU4gUFJFUEFSRSI7CiAJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1BSRVBBUkU6 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCAwM2UwNjljN2Nk Li4yNmZhNTg5NzNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMK QEAgLTE1NSw2ICsxNTUsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5v ZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNs dWRlICJwYXJzZXIvYW5hbHl6ZS5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBv c3RtYXN0ZXIvYmd3b3JrZXIuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgpA QCAtMTc5LDYgKzE4MCw4IEBACiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVk ZSAidGNvcC9wcXVlcnkuaCIKKyNpbmNsdWRlICJ0Y29wL3V0aWxpdHkuaCIKICNpbmNsdWRlICJ1 dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxz L2NhdGNhY2hlLmgiCkBAIC0zMjksNiArMzMyLDEwIEBAIHN0YXRpYyB2b2lkIGFwcGx5X2hhbmRs ZV90dXBsZV9yb3V0aW5nKEFwcGx5RXhlY3V0aW9uRGF0YSAqZWRhdGEsCiAJCQkJCQkJCQkgICBU dXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJCSAgIExvZ2ljYWxSZXBUdXBsZURh dGEgKm5ld3R1cCwKIAkJCQkJCQkJCSAgIENtZFR5cGUgb3BlcmF0aW9uKTsKK3N0YXRpYyB2b2lk IGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLAorCQkJCQkJCQkJ ICBjb25zdCBjaGFyKiByb2xlLAorCQkJCQkJCQkJICBjb25zdCBjaGFyKiBzZWFyY2hfcGF0aCwK KwkJCQkJCQkJCSAgYm9vbCBpc1RvcExldmVsKTsKIAogLyogQ29tcHV0ZSBHSUQgZm9yIHR3b19w aGFzZSB0cmFuc2FjdGlvbnMgKi8KIHN0YXRpYyB2b2lkIFR3b1BoYXNlVHJhbnNhY3Rpb25HaWQo T2lkIHN1YmlkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqZ2lkLCBpbnQgc3pnaWQpOwpAQCAt MjM2MCw2ICsyMzY3LDI1OSBAQCBhcHBseV9oYW5kbGVfdHJ1bmNhdGUoU3RyaW5nSW5mbyBzKQog CWVuZF9yZXBsaWNhdGlvbl9zdGVwKCk7CiB9CiAKKy8qCisgKiBIYW5kbGUgZ2VuZXJpYyBtZXNz YWdlcy4KKyAqLworc3RhdGljIHZvaWQKK2FwcGx5X2hhbmRsZV9kZGxtZXNzYWdlKFN0cmluZ0lu Zm8gcykKK3sKKwlYTG9nUmVjUHRyIGxzbjsKKwlib29sIHRyYW5zYWN0aW9uYWw7CisJU2l6ZSBz ejsKKwljb25zdCBjaGFyICpwcmVmaXg7CisJY29uc3QgY2hhciAqcm9sZTsKKwljb25zdCBjaGFy ICpzZWFyY2hfcGF0aDsKKwljb25zdCBjaGFyICptc2c7CisKKwltc2cgPSBsb2dpY2FscmVwX3Jl YWRfZGRsbWVzc2FnZShzLCAmbHNuLCAmcHJlZml4LCAmcm9sZSwgJnNlYXJjaF9wYXRoLCAmdHJh bnNhY3Rpb25hbCwgJnN6KTsKKworCWFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQobXNnLCByb2xl LCBzZWFyY2hfcGF0aCwgdHJ1ZSk7Cit9CisKKy8qCisgKiBBZGQgY29udGV4dCB0byB0aGUgZXJy b3JzIHByb2R1Y2VkIGJ5IGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoKS4KKyAqLworc3RhdGlj IHZvaWQKK2V4ZWN1dGVfc3FsX2NvbW1hbmRfZXJyb3JfY2Iodm9pZCAqYXJnKQoreworCWVycmNv bnRleHQoImR1cmluZyBleGVjdXRpb24gb2YgU1FMIHN0YXRlbWVudDogJXMiLCAoY2hhciAqKSBh cmcpOworfQorCisvKgorICogRXhlY3V0ZSBhbiBTUUwgY29tbWFuZC4gVGhpcyBjYW4gYmUgbXVs dGlwbGUgcXVlcmllcy4KKyAqIFRoaXMgaXMgbW9kaWZpZWQgYmFzZWQgb24gcGdsb2dpY2FsX2V4 ZWN1dGVfc3FsX2NvbW1hbmQoKS4KKyAqLworc3RhdGljIHZvaWQKK2FwcGx5X2V4ZWN1dGVfc3Fs X2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLCBjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFy ICpzZWFyY2hfcGF0aCwKKwkJCQkJCSAgYm9vbCBpc1RvcExldmVsKQoreworCWNvbnN0IGNoYXIg KnNhdmVfZGVidWdfcXVlcnlfc3RyaW5nID0gZGVidWdfcXVlcnlfc3RyaW5nOworCUxpc3QJICAg KnBhcnNldHJlZV9saXN0OworCUxpc3RDZWxsICAgKnBhcnNldHJlZV9pdGVtOworCU1lbW9yeUNv bnRleHQgb2xkY29udGV4dDsKKwlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKwlp bnQJCQlzYXZlX25lc3RsZXZlbDsKKworCS8qCisJICogU3dpdGNoIHRvIGFwcHJvcHJpYXRlIGNv bnRleHQgZm9yIGNvbnN0cnVjdGluZyBwYXJzZXRyZWVzLgorCSAqLworCW9sZGNvbnRleHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlNZXNzYWdlQ29udGV4dCk7CisJYmVnaW5fcmVwbGlj YXRpb25fc3RlcCgpOworCisJLyoKKwkgKiBTZXQgdGhlIGN1cnJlbnQgcm9sZSB0byB0aGUgdXNl ciB0aGF0IGV4ZWN1dGVkIHRoZSBjb21tYW5kIG9uIHRoZQorCSAqIHB1YmxpY2F0aW9uIHNlcnZl ci4KKwkgKiBTZXQgdGhlIGN1cnJlbnQgc2VhcmNoX3BhdGggdG8gdGhlIHNlYXJjaF9wYXRoIG9u IHRoZSBwdWJsaWNhdGlvbgorCSAqIHNlcnZlciB3aGVuIHRoZSBjb21tYW5kIHdhcyBleGVjdXRl ZC4KKwkgKi8KKwlzYXZlX25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZlbCgpOworCVNldENvbmZp Z09wdGlvbigicm9sZSIsIHJvbGUsIFBHQ19JTlRFUk5BTCwgUEdDX1NfT1ZFUlJJREUpOworCVNl dENvbmZpZ09wdGlvbigic2VhcmNoX3BhdGgiLCBzZWFyY2hfcGF0aCwgUEdDX0lOVEVSTkFMLCBQ R0NfU19PVkVSUklERSk7CisKKwllcnJjYWxsYmFjay5jYWxsYmFjayA9IGV4ZWN1dGVfc3FsX2Nv bW1hbmRfZXJyb3JfY2I7CisJZXJyY2FsbGJhY2suYXJnID0gKGNoYXIgKikgY21kc3RyOworCWVy cmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKKwllcnJvcl9jb250ZXh0 X3N0YWNrID0gJmVycmNhbGxiYWNrOworCisJZGVidWdfcXVlcnlfc3RyaW5nID0gY21kc3RyOwor CisJcGFyc2V0cmVlX2xpc3QgPSBwZ19wYXJzZV9xdWVyeShjbWRzdHIpOworCisJLyoKKwkgKiBE byBhIGxpbWl0ZWQgYW1vdW50IG9mIHNhZmV0eSBjaGVja2luZyBhZ2FpbnN0IENPTkNVUlJFTlRM WSBjb21tYW5kcworCSAqIGV4ZWN1dGVkIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhleSBhcmVuJ3Qg YWxsb3dlZC4gVGhlIHNlbmRlciBzaWRlIHNob3VsZAorCSAqIHByb3ZpZGUgcHJvdGVjdGlvbiwg YnV0IGJldHRlciBiZSBzYWZlIHRoYW4gc29ycnkuCisJICovCisJaXNUb3BMZXZlbCA9IGlzVG9w TGV2ZWwgJiYgKGxpc3RfbGVuZ3RoKHBhcnNldHJlZV9saXN0KSA9PSAxKTsKKworCS8qCisJICog U3dpdGNoIGJhY2sgdG8gdHJhbnNhY3Rpb24gY29udGV4dCB0byBlbnRlciB0aGUgbG9vcC4KKwkg Ki8KKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwlmb3JlYWNoKHBhcnNl dHJlZV9pdGVtLCBwYXJzZXRyZWVfbGlzdCkKKwl7CisJCUxpc3QJICAgKnBsYW50cmVlX2xpc3Q7 CisJCUxpc3QJICAgKnF1ZXJ5dHJlZV9saXN0OworCQlSYXdTdG10CSAgICpjb21tYW5kID0gKFJh d1N0bXQgKikgbGZpcnN0KHBhcnNldHJlZV9pdGVtKTsKKwkJQ29tbWFuZFRhZwljb21tYW5kVGFn OworCQlNZW1vcnlDb250ZXh0IHBlcl9wYXJzZXRyZWVfY29udGV4dCA9IE5VTEw7CisJCVBvcnRh bAkJcG9ydGFsOworCQlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOworCQlib29sCQkgc25hcHNob3Rf c2V0ID0gZmFsc2U7CisJCWNoYXIgCQkgKnNjaGVtYW5hbWUgPSBOVUxMOyAvKiBGb3IgQ1JFQVRF IFRBQkxFIHN0bXQgb25seSAqLworCQljaGFyCQkgKnJlbG5hbWUgPSBOVUxMOyAvKiBGb3IgQ1JF QVRFIFRBQkxFIHN0bXQgb25seSAqLworCisJCWNvbW1hbmRUYWcgPSBDcmVhdGVDb21tYW5kVGFn KChOb2RlICopY29tbWFuZCk7CisKKwkJLyoKKwkJICogUmVtZW1iZXIgdGhlIHNjaGVtYW5hbWUg YW5kIHJlbG5hbWUgaWYgaXQncyBhIENSRUFURSBUQUJMRSBzdG10CisJCSAqIGJlY2F1c2Ugd2Ug d2lsbCBuZWVkIHRoZW0gZm9yIHNvbWUgcG9zdC1wcm9jZXNzaW5nIGFmdGVyIHdlCisJCSAqIGV4 ZWN1dGUgdGhlIHN0bXQuIEF0IHRoYXQgcG9pbnQsIENyZWF0ZVN0bXQgbWF5IGhhdmUgYmVlbiBm cmVlZWQgdXAuCisJCSAqLworCQlpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdfQ1JFQVRFX1RBQkxF KQorCQl7CisJCQlDcmVhdGVTdG10ICpjc3RtdCA9IChDcmVhdGVTdG10ICopY29tbWFuZC0+c3Rt dDsKKwkJCVJhbmdlVmFyICpydiA9IGNzdG10LT5yZWxhdGlvbjsKKwkJCXNjaGVtYW5hbWUgPSBy di0+c2NoZW1hbmFtZTsKKwkJCXJlbG5hbWUgPSBydi0+cmVsbmFtZTsKKwkJfQorCisJCS8qCisJ CSAqIFNldCB1cCBhIHNuYXBzaG90IGlmIHBhcnNlIGFuYWx5c2lzL3BsYW5uaW5nIHdpbGwgbmVl ZCBvbmUuCisJCSAqLworCQlpZiAoYW5hbHl6ZV9yZXF1aXJlc19zbmFwc2hvdChjb21tYW5kKSkK KwkJeworCQkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7CisJ CQlzbmFwc2hvdF9zZXQgPSB0cnVlOworCQl9CisKKwkJLyoKKwkJICogT0sgdG8gYW5hbHl6ZSwg cmV3cml0ZSwgYW5kIHBsYW4gdGhpcyBxdWVyeS4KKwkJICoKKwkJICogU3dpdGNoIHRvIGFwcHJv cHJpYXRlIGNvbnRleHQgZm9yIGNvbnN0cnVjdGluZyBxdWVyeSBhbmQgcGxhbiB0cmVlcworCQkg KiAodGhlc2UgY2FuJ3QgYmUgaW4gdGhlIHRyYW5zYWN0aW9uIGNvbnRleHQsIGFzIHRoYXQgd2ls bCBnZXQgcmVzZXQKKwkJICogd2hlbiB0aGUgY29tbWFuZCBpcyBDT01NSVQvUk9MTEJBQ0spLiAg SWYgd2UgaGF2ZSBtdWx0aXBsZQorCQkgKiBwYXJzZXRyZWVzLCB3ZSB1c2UgYSBzZXBhcmF0ZSBj b250ZXh0IGZvciBlYWNoIG9uZSwgc28gdGhhdCB3ZSBjYW4KKwkJICogZnJlZSB0aGF0IG1lbW9y eSBiZWZvcmUgbW92aW5nIG9uIHRvIHRoZSBuZXh0IG9uZS4gIEJ1dCBmb3IgdGhlCisJCSAqIGxh c3QgKG9yIG9ubHkpIHBhcnNldHJlZSwganVzdCB1c2UgTWVzc2FnZUNvbnRleHQsIHdoaWNoIHdp bGwgYmUKKwkJICogcmVzZXQgc2hvcnRseSBhZnRlciBjb21wbGV0aW9uIGFueXdheS4gIEluIGV2 ZW50IG9mIGFuIGVycm9yLCB0aGUKKwkJICogcGVyX3BhcnNldHJlZV9jb250ZXh0IHdpbGwgYmUg ZGVsZXRlZCB3aGVuIE1lc3NhZ2VDb250ZXh0IGlzIHJlc2V0LgorCQkgKi8KKwkJaWYgKGxuZXh0 KHBhcnNldHJlZV9saXN0LCBwYXJzZXRyZWVfaXRlbSkgIT0gTlVMTCkKKwkJeworCQkJcGVyX3Bh cnNldHJlZV9jb250ZXh0ID0KKwkJCQlBbGxvY1NldENvbnRleHRDcmVhdGUoTWVzc2FnZUNvbnRl eHQsCisJCQkJCQkJCQkgICJwZXItcGFyc2V0cmVlIG1lc3NhZ2UgY29udGV4dCIsCisJCQkJCQkJ CQkgIEFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCQkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhwZXJfcGFyc2V0cmVlX2NvbnRleHQpOworCQl9CisJCWVsc2UKKwkJCW9sZGNv bnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlNZXNzYWdlQ29udGV4dCk7CisKKwkJ cXVlcnl0cmVlX2xpc3QgPSBwZ19hbmFseXplX2FuZF9yZXdyaXRlX2ZpeGVkcGFyYW1zKAorCQkJ Y29tbWFuZCwKKwkJCWNtZHN0ciwKKwkJCU5VTEwsIDAsIE5VTEwpOworCisJCXBsYW50cmVlX2xp c3QgPSBwZ19wbGFuX3F1ZXJpZXMoCisJCQlxdWVyeXRyZWVfbGlzdCwgY21kc3RyLCAwLCBOVUxM KTsKKworCQkvKgorCQkgKiBEb25lIHdpdGggdGhlIHNuYXBzaG90IHVzZWQgZm9yIHBhcnNpbmcv cGxhbm5pbmcuCisJCSAqCisJCSAqIFdoaWxlIGl0IGxvb2tzIHByb21pc2luZyB0byByZXVzZSB0 aGUgc2FtZSBzbmFwc2hvdCBmb3IgcXVlcnkKKwkJICogZXhlY3V0aW9uIChhdCBsZWFzdCBmb3Ig c2ltcGxlIHByb3RvY29sKSwgdW5mb3J0dW5hdGVseSBpdCBjYXVzZXMKKwkJICogZXhlY3V0aW9u IHRvIHVzZSBhIHNuYXBzaG90IHRoYXQgaGFzIGJlZW4gYWNxdWlyZWQgYmVmb3JlIGxvY2tpbmcK KwkJICogYW55IG9mIHRoZSB0YWJsZXMgbWVudGlvbmVkIGluIHRoZSBxdWVyeS4gIFRoaXMgY3Jl YXRlcyB1c2VyLQorCQkgKiB2aXNpYmxlIGFub21hbGllcywgc28gcmVmcmFpbi4gIFJlZmVyIHRv CisJCSAqIGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC81MDc1RDhERi42MDUwNTAwQGZ1enp5LmN6 IGZvciBkZXRhaWxzLgorCQkgKi8KKwkJaWYgKHNuYXBzaG90X3NldCkKKwkJCVBvcEFjdGl2ZVNu YXBzaG90KCk7CisKKwkJcG9ydGFsID0gQ3JlYXRlUG9ydGFsKCJsb2dpY2FsIHJlcGxpY2F0aW9u IiwgdHJ1ZSwgdHJ1ZSk7CisKKwkJLyoKKwkJICogV2UgZG9uJ3QgaGF2ZSB0byBjb3B5IGFueXRo aW5nIGludG8gdGhlIHBvcnRhbCwgYmVjYXVzZSBldmVyeXRoaW5nCisJCSAqIHdlIGFyZSBwYXNz aW5nIGhlcmUgaXMgaW4gTWVzc2FnZUNvbnRleHQgb3IgdGhlCisJCSAqIHBlcl9wYXJzZXRyZWVf Y29udGV4dCwgYW5kIHNvIHdpbGwgb3V0bGl2ZSB0aGUgcG9ydGFsIGFueXdheS4KKwkJICovCisJ CVBvcnRhbERlZmluZVF1ZXJ5KHBvcnRhbCwKKwkJCQkJCSAgTlVMTCwKKwkJCQkJCSAgY21kc3Ry LAorCQkJCQkJICBjb21tYW5kVGFnLAorCQkJCQkJICBwbGFudHJlZV9saXN0LAorCQkJCQkJICBO VUxMKTsKKworCQkvKgorCQkgKiBTdGFydCB0aGUgcG9ydGFsLiAgTm8gcGFyYW1ldGVycyBoZXJl LgorCQkgKi8KKwkJUG9ydGFsU3RhcnQocG9ydGFsLCBOVUxMLCAwLCBJbnZhbGlkU25hcHNob3Qp OworCisJCS8qIERlc3ROb25lIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uICovCisJCXJlY2VpdmVy ID0gQ3JlYXRlRGVzdFJlY2VpdmVyKERlc3ROb25lKTsKKworCQkvKgorCQkgKiBTd2l0Y2ggYmFj ayB0byB0cmFuc2FjdGlvbiBjb250ZXh0IGZvciBleGVjdXRpb24uCisJCSAqLworCQlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwkJKHZvaWQpIFBvcnRhbFJ1bihwb3J0YWws CisJCQkJCQkgRkVUQ0hfQUxMLAorCQkJCQkJIGlzVG9wTGV2ZWwsCisJCQkJCQkgdHJ1ZSwKKwkJ CQkJCSByZWNlaXZlciwKKwkJCQkJCSByZWNlaXZlciwKKwkJCQkJCSBOVUxMKTsKKwkJKCpyZWNl aXZlci0+ckRlc3Ryb3kpIChyZWNlaXZlcik7CisKKwkJUG9ydGFsRHJvcChwb3J0YWwsIGZhbHNl KTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJCS8qCisJCSAqIFRhYmxlIGNy ZWF0ZWQgYnkgRERMIHJlcGxpY2F0aW9uIChkYXRhYmFzZSBsZXZlbCkgaXMgYXV0b21hdGljYWxs eQorCQkgKiBhZGRlZCB0byB0aGUgc3Vic2NyaXB0aW9uIGhlcmUuCisJCSAqCisJCSAqIENhbGwg QWRkU3Vic2NyaXB0aW9uUmVsU3RhdGUgZm9yIENSRUFURSBUQUJFTCBjb21tYW5kIHRvIHNldAor CQkgKiB0aGUgcmVsc3RhdGUgdG8gU1VCUkVMX1NUQVRFX0lOSVQgc28gRE1MIGNoYW5nZXMgb24g dGhpcworCQkgKiBuZXcgdGFibGUgY2FuIGJlIHJlcGxpY2F0ZWQgd2l0aG91dCBoYXZpbmcgdG8g bWFudWFsbHkgcnVuCisJCSAqICJhbHRlciBzdWJzY3JpcHRpb24gLi4uIHJlZnJlc2ggcHVibGlj YXRpb24iCisJCSAqLworCQlpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdfQ1JFQVRFX1RBQkxFKQor CQl7CisJCQlPaWQgcmVsaWQ7CisJCQlPaWQgcmVsbmFtZXNwYWNlID0gSW52YWxpZE9pZDsKKwor CQkJaWYgKHNjaGVtYW5hbWUgIT0gTlVMTCkKKwkJCQlyZWxuYW1lc3BhY2UgPSBnZXRfbmFtZXNw YWNlX29pZChzY2hlbWFuYW1lLCBmYWxzZSk7CisJCQlpZiAocmVsbmFtZXNwYWNlICE9IEludmFs aWRPaWQpCisJCQkJcmVsaWQgPSBnZXRfcmVsbmFtZV9yZWxpZChyZWxuYW1lLCByZWxuYW1lc3Bh Y2UpOworCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogVHJ5IHRvIHJlc29sdmUgdW5xdWFs aWZpZWQgcmVsbmFtZS4KKwkJCQkgKiBOb3RpY2Ugd2UgaGF2ZSBzZXQgdGhlIHNlYXJjaF9wYXRo IHRvIHRoZSBvcmlnaW5hbCBzZWFyY2hfcGF0aCBvbiB0aGUgcHVibGlzaGVyCisJCQkJICogYXQg dGhlIGJlZ2lubmluZyBvZiB0aGlzIGZ1bmN0aW9uLgorCQkJCSAqLworCQkJCXJlbGlkID0gUmVs bmFtZUdldFJlbGlkKHJlbG5hbWUpOworCQkJfQorCisJCQlpZiAocmVsaWQgIT0gSW52YWxpZE9p ZCkKKwkJCXsKKwkJCQlBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1YnNjcmlwdGlvbi0+b2lk LCByZWxpZCwKKwkJCQkJCQkJCQlTVUJSRUxfU1RBVEVfSU5JVCwKKwkJCQkJCQkJCQlJbnZhbGlk WExvZ1JlY1B0cik7CisJCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCQkoZXJybXNnX2ludGVybmFs KCJ0YWJsZSBcIiVzXCIgYWRkZWQgdG8gc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJCQkJCQkJ IHJlbG5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOworCQkJfQorCQl9CisJfQorCisJLyoK KwkgKiBSZXN0b3JlIHRoZSBHVUMgdmFyaWFibGVzIHdlIHNldCBhYm92ZS4KKwkgKi8KKwlBdEVP WGFjdF9HVUModHJ1ZSwgc2F2ZV9uZXN0bGV2ZWwpOworCisJLyogcHJvdGVjdCBhZ2FpbnN0IHN0 YWNrIHJlc2V0cyBkdXJpbmcgQ09OQ1VSUkVOVExZIHByb2Nlc3NpbmcgKi8KKwlpZiAoZXJyb3Jf Y29udGV4dF9zdGFjayA9PSAmZXJyY2FsbGJhY2spCisJCWVycm9yX2NvbnRleHRfc3RhY2sgPSBl cnJjYWxsYmFjay5wcmV2aW91czsKKworCWRlYnVnX3F1ZXJ5X3N0cmluZyA9IHNhdmVfZGVidWdf cXVlcnlfc3RyaW5nOworCWVuZF9yZXBsaWNhdGlvbl9zdGVwKCk7Cit9CiAKIC8qCiAgKiBMb2dp Y2FsIHJlcGxpY2F0aW9uIHByb3RvY29sIG1lc3NhZ2UgZGlzcGF0Y2hlci4KQEAgLTI0MjUsNiAr MjY4NSwxMCBAQCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMpCiAJCQkgKi8KIAkJCWJyZWFr OwogCisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX0RETE1FU1NBR0U6CisJCQlhcHBseV9oYW5kbGVf ZGRsbWVzc2FnZShzKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1NUUkVB TV9TVEFSVDoKIAkJCWFwcGx5X2hhbmRsZV9zdHJlYW1fc3RhcnQocyk7CiAJCQlicmVhazsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDVmZGRhYjNh M2QuLmFlOWM5MmFmMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0 cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYwpAQCAtNTMsNiArNTMsMTAgQEAgc3RhdGljIHZvaWQgcGdvdXRwdXRfbWVzc2FnZShM b2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiAJCQkJCQkJIFJlb3JkZXJCdWZmZXJUWE4gKnR4 biwgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwKIAkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBj b25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2Up Oworc3RhdGljIHZvaWQgcGdvdXRwdXRfZGRsbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsCisJCQkJCQkJCVJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExvZ1JlY1B0ciBtZXNzYWdl X2xzbiwKKwkJCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIGNv bnN0IGNoYXIgKnJvbGUsCisJCQkJCQkJCWNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLCBTaXplIHN6 LCBjb25zdCBjaGFyICptZXNzYWdlKTsKIHN0YXRpYyBib29sIHBnb3V0cHV0X29yaWdpbl9maWx0 ZXIoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCQkgICBSZXBPcmlnaW5JZCBv cmlnaW5faWQpOwogc3RhdGljIHZvaWQgcGdvdXRwdXRfYmVnaW5fcHJlcGFyZV90eG4oTG9naWNh bERlY29kaW5nQ29udGV4dCAqY3R4LApAQCAtMjA4LDYgKzIxMiw3IEBAIF9QR19vdXRwdXRfcGx1 Z2luX2luaXQoT3V0cHV0UGx1Z2luQ2FsbGJhY2tzICpjYikKIAljYi0+Y2hhbmdlX2NiID0gcGdv dXRwdXRfY2hhbmdlOwogCWNiLT50cnVuY2F0ZV9jYiA9IHBnb3V0cHV0X3RydW5jYXRlOwogCWNi LT5tZXNzYWdlX2NiID0gcGdvdXRwdXRfbWVzc2FnZTsKKwljYi0+ZGRsbWVzc2FnZV9jYiA9IHBn b3V0cHV0X2RkbG1lc3NhZ2U7CiAJY2ItPmNvbW1pdF9jYiA9IHBnb3V0cHV0X2NvbW1pdF90eG47 CiAKIAljYi0+YmVnaW5fcHJlcGFyZV9jYiA9IHBnb3V0cHV0X2JlZ2luX3ByZXBhcmVfdHhuOwpA QCAtMjI0LDYgKzIyOSw3IEBAIF9QR19vdXRwdXRfcGx1Z2luX2luaXQoT3V0cHV0UGx1Z2luQ2Fs bGJhY2tzICpjYikKIAljYi0+c3RyZWFtX2NvbW1pdF9jYiA9IHBnb3V0cHV0X3N0cmVhbV9jb21t aXQ7CiAJY2ItPnN0cmVhbV9jaGFuZ2VfY2IgPSBwZ291dHB1dF9jaGFuZ2U7CiAJY2ItPnN0cmVh bV9tZXNzYWdlX2NiID0gcGdvdXRwdXRfbWVzc2FnZTsKKwljYi0+c3RyZWFtX2RkbG1lc3NhZ2Vf Y2IgPSBwZ291dHB1dF9kZGxtZXNzYWdlOwogCWNiLT5zdHJlYW1fdHJ1bmNhdGVfY2IgPSBwZ291 dHB1dF90cnVuY2F0ZTsKIAkvKiB0cmFuc2FjdGlvbiBzdHJlYW1pbmcgLSB0d28tcGhhc2UgY29t bWl0ICovCiAJY2ItPnN0cmVhbV9wcmVwYXJlX2NiID0gcGdvdXRwdXRfc3RyZWFtX3ByZXBhcmVf dHhuOwpAQCAtMTQxMyw4ICsxNDE5LDggQEAgcGdvdXRwdXRfdHJ1bmNhdGUoTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAKIHN0YXRpYyB2b2lkCiBw Z291dHB1dF9tZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZl clRYTiAqdHhuLAotCQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5zYWN0aW9u YWwsIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwKLQkJCQkgY29uc3QgY2hhciAqbWVzc2Fn ZSkKKwkJCQkgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJ CSBjb25zdCBjaGFyICpwcmVmaXgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCiB7CiAJ UEdPdXRwdXREYXRhICpkYXRhID0gKFBHT3V0cHV0RGF0YSAqKSBjdHgtPm91dHB1dF9wbHVnaW5f cHJpdmF0ZTsKIAlUcmFuc2FjdGlvbklkIHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwpAQCAt MTQ0MCw2ICsxNDQ2LDU3IEBAIHBnb3V0cHV0X21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4 dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0 cnVlKTsKIH0KIAorc3RhdGljIHZvaWQKK3Bnb3V0cHV0X2RkbG1lc3NhZ2UoTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCisJCQkJIFhMb2dSZWNQdHIg bWVzc2FnZV9sc24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkgY29uc3QgY2hhciAqcHJlZml4 LCBjb25zdCBjaGFyICogcm9sZSwKKwkJCQkgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsIFNpemUg c3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJUEdPdXRwdXREYXRhICpkYXRhID0gKFBHT3V0 cHV0RGF0YSAqKSBjdHgtPm91dHB1dF9wbHVnaW5fcHJpdmF0ZTsKKwlUcmFuc2FjdGlvbklkIHhp ZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCUxpc3RDZWxsICpsYzsKKworCS8qIFJlbG9hZCBw dWJsaWNhdGlvbnMgaWYgbmVlZGVkIGJlZm9yZSB1c2UuICovCisJaWYgKCFwdWJsaWNhdGlvbnNf dmFsaWQpCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhDYWNoZU1lbW9yeUNvbnRleHQpOworCQlpZiAoZGF0YS0+cHVibGljYXRpb25zKQorCQkJbGlz dF9mcmVlX2RlZXAoZGF0YS0+cHVibGljYXRpb25zKTsKKworCQlkYXRhLT5wdWJsaWNhdGlvbnMg PSBMb2FkUHVibGljYXRpb25zKGRhdGEtPnB1YmxpY2F0aW9uX25hbWVzKTsKKwkJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGN0eCk7CisJCXB1YmxpY2F0aW9uc192YWxpZCA9IHRydWU7CisJfQor CisJLyogQ2hlY2sgaWYgZGRsIHJlcGxpY2F0aW9uIGlzIHR1cm5lZCBvbiBmb3IgdGhlIHB1Ymxp Y2F0aW9ucyAqLworCWZvcmVhY2gobGMsIGRhdGEtPnB1YmxpY2F0aW9ucykKKwl7CisJCVB1Ymxp Y2F0aW9uICpwdWIgPSAoUHVibGljYXRpb24gKikgbGZpcnN0KGxjKTsKKwkJLyogVE9ETyBuZWVk IHRvIGNoZWNrIHJlbGlkIGZvciB0YWJsZSBsZXZlbCBERExzICovCisJCWlmICghcHViLT5wdWJh Y3Rpb25zLnB1YmRkbF9kYXRhYmFzZSAmJiAhcHViLT5wdWJhY3Rpb25zLnB1YmRkbF90YWJsZSkK KwkJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFJlbWVtYmVyIHRoZSB4aWQgZm9yIHRoZSBtZXNz YWdlIGluIHN0cmVhbWluZyBtb2RlLiBTZWUKKwkgKiBwZ291dHB1dF9jaGFuZ2UuCisJICovCisJ aWYgKGluX3N0cmVhbWluZykKKwkJeGlkID0gdHhuLT54aWQ7CisKKwlPdXRwdXRQbHVnaW5QcmVw YXJlV3JpdGUoY3R4LCB0cnVlKTsKKwlsb2dpY2FscmVwX3dyaXRlX2RkbG1lc3NhZ2UoY3R4LT5v dXQsCisJCQkJCQkJIHhpZCwKKwkJCQkJCQkgbWVzc2FnZV9sc24sCisJCQkJCQkJIHRyYW5zYWN0 aW9uYWwsCisJCQkJCQkJIHByZWZpeCwKKwkJCQkJCQkgcm9sZSwKKwkJCQkJCQkgc2VhcmNoX3Bh dGgsCisJCQkJCQkJIHN6LAorCQkJCQkJCSBtZXNzYWdlKTsKKwlPdXRwdXRQbHVnaW5Xcml0ZShj dHgsIHRydWUpOworfQorCiAvKgogICogQ3VycmVudGx5IHdlIGFsd2F5cyBmb3J3YXJkLgogICov CkBAIC0xNzI1LDcgKzE3ODIsOSBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnNjaGVtYV9zZW50ID0gZmFsc2U7CiAJ CWVudHJ5LT5zdHJlYW1lZF90eG5zID0gTklMOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJpbnNl cnQgPSBlbnRyeS0+cHViYWN0aW9ucy5wdWJ1cGRhdGUgPQotCQkJZW50cnktPnB1YmFjdGlvbnMu cHViZGVsZXRlID0gZW50cnktPnB1YmFjdGlvbnMucHVidHJ1bmNhdGUgPSBmYWxzZTsKKwkJCWVu dHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRl ID0KKwkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRkbF9kYXRhYmFzZSA9CisJCQllbnRyeS0+cHVi YWN0aW9ucy5wdWJkZGxfdGFibGUgPSBmYWxzZTsKIAkJZW50cnktPm5ld19zbG90ID0gTlVMTDsK IAkJZW50cnktPm9sZF9zbG90ID0gTlVMTDsKIAkJbWVtc2V0KGVudHJ5LT5leHByc3RhdGUsIDAs IHNpemVvZihlbnRyeS0+ZXhwcnN0YXRlKSk7CkBAIC0xNzgwLDYgKzE4MzksOCBAQCBnZXRfcmVs X3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50 cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1 YmRlbGV0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZhbHNl OworCQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2UgPSBmYWxzZTsKKwkJZW50cnkt PnB1YmFjdGlvbnMucHViZGRsX3RhYmxlID0gZmFsc2U7CiAKIAkJLyoKIAkJICogVHVwbGUgc2xv dHMgY2xlYW51cHMuIChXaWxsIGJlIHJlYnVpbHQgbGF0ZXIgaWYgbmVlZGVkKS4KQEAgLTE4ODks NiArMTk1MCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0 aW9uIHJlbGF0aW9uKQogCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnVwZGF0ZSB8PSBwdWItPnB1 YmFjdGlvbnMucHVidXBkYXRlOwogCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSB8PSBw dWItPnB1YmFjdGlvbnMucHViZGVsZXRlOwogCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5j YXRlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZTsKKwkJCQllbnRyeS0+cHViYWN0aW9u cy5wdWJkZGxfZGF0YWJhc2UgfD0gcHViLT5wdWJhY3Rpb25zLnB1YmRkbF9kYXRhYmFzZTsKKwkJ CQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZGxfdGFibGUgfD0gcHViLT5wdWJhY3Rpb25zLnB1YmRk bF90YWJsZTsKIAogCQkJCS8qCiAJCQkJICogV2Ugd2FudCB0byBwdWJsaXNoIHRoZSBjaGFuZ2Vz IGFzIHRoZSB0b3AtbW9zdCBhbmNlc3RvcgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vbG9naWNhbHByb3RvLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FscHJv dG8uaAppbmRleCA0ZDJjODgxNjQ0Li44NjJlZDQ2N2E2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9sb2dpY2FscHJvdG8uaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9sb2dpY2FscHJvdG8uaApAQCAtNjEsNiArNjEsNyBAQCB0eXBlZGVmIGVudW0gTG9naWNhbFJl cE1zZ1R5cGUKIAlMT0dJQ0FMX1JFUF9NU0dfUkVMQVRJT04gPSAnUicsCiAJTE9HSUNBTF9SRVBf TVNHX1RZUEUgPSAnWScsCiAJTE9HSUNBTF9SRVBfTVNHX01FU1NBR0UgPSAnTScsCisJTE9HSUNB TF9SRVBfTVNHX0RETE1FU1NBR0UgPSAnTCcsCiAJTE9HSUNBTF9SRVBfTVNHX0JFR0lOX1BSRVBB UkUgPSAnYicsCiAJTE9HSUNBTF9SRVBfTVNHX1BSRVBBUkUgPSAnUCcsCiAJTE9HSUNBTF9SRVBf TVNHX0NPTU1JVF9QUkVQQVJFRCA9ICdLJywKQEAgLTIyOSw3ICsyMzAsMTQgQEAgZXh0ZXJuIHZv aWQgbG9naWNhbHJlcF93cml0ZV90cnVuY2F0ZShTdHJpbmdJbmZvIG91dCwgVHJhbnNhY3Rpb25J ZCB4aWQsCiBleHRlcm4gTGlzdCAqbG9naWNhbHJlcF9yZWFkX3RydW5jYXRlKFN0cmluZ0luZm8g aW4sCiAJCQkJCQkJCQkgIGJvb2wgKmNhc2NhZGUsIGJvb2wgKnJlc3RhcnRfc2Vxcyk7CiBleHRl cm4gdm9pZCBsb2dpY2FscmVwX3dyaXRlX21lc3NhZ2UoU3RyaW5nSW5mbyBvdXQsIFRyYW5zYWN0 aW9uSWQgeGlkLCBYTG9nUmVjUHRyIGxzbiwKLQkJCQkJCQkJCSBib29sIHRyYW5zYWN0aW9uYWws IGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CisJCQkJ CQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkJCQkg U2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dy aXRlX2RkbG1lc3NhZ2UoU3RyaW5nSW5mbyBvdXQsIFRyYW5zYWN0aW9uSWQgeGlkLCBYTG9nUmVj UHRyIGxzbiwKKwkJCQkJCQkJCQlib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZp eCwgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJCQljb25zdCBjaGFyICpzZWFyY2hfcGF0aCwg U2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitleHRlcm4gY29uc3QgY2hhciAqbG9naWNh bHJlcF9yZWFkX2RkbG1lc3NhZ2UoU3RyaW5nSW5mbyBpbiwgWExvZ1JlY1B0ciAqbHNuLCBjb25z dCBjaGFyICoqcHJlZml4LAorCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKipyb2xlLCBjb25zdCBj aGFyICoqc2VhcmNoX3BhdGgsCisJCQkJCQkJCQkJCSAgYm9vbCAqdHJhbnNhY3Rpb25hbCwgU2l6 ZSAqc3opOwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93cml0ZV9yZWwoU3RyaW5nSW5mbyBvdXQs IFRyYW5zYWN0aW9uSWQgeGlkLAogCQkJCQkJCQkgUmVsYXRpb24gcmVsKTsKIGV4dGVybiBMb2dp Y2FsUmVwUmVsYXRpb24gKmxvZ2ljYWxyZXBfcmVhZF9yZWwoU3RyaW5nSW5mbyBpbik7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDRfc3luYy5wbCBiL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAwNF9zeW5jLnBsCmluZGV4IGNmNjFmYzFlMGYuLjY5OGM1MTE0ZTYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNF9zeW5jLnBsCisrKyBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAwNF9zeW5jLnBsCkBAIC0zMyw3ICszMyw3IEBAICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0 aW9uCiBteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAn IGRibmFtZT1wb3N0Z3Jlcyc7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAotCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgQUxMIFRBQkxFUyIpOworCSJDUkVB VEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgQUxMIFRBQkxFUyBXSVRIIChkZGwgPSAnJykiKTsK IAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkNSRUFURSBTVUJT Q1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHRhcF9wdWIiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDZfcmV3 cml0ZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNl9yZXdyaXRlLnBsCmluZGV4IGM5 MjRmZjM1ZjcuLjZjOWIwNTVlYjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAwNl9yZXdyaXRlLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNl9yZXdyaXRl LnBsCkBAIC0yMyw3ICsyMyw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAkZGRsKTsKIG15ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29u bnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKLQkiQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHViIEZPUiBBTEwgVEFCTEVTOyIp OworCSJDUkVBVEUgUFVCTElDQVRJT04gbXlwdWIgRk9SIEFMTCBUQUJMRVMgV0lUSCAoZGRsID0g JycpOyIpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkNSRUFU RSBTVUJTQ1JJUFRJT04gbXlzdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJM SUNBVElPTiBteXB1YjsiCiApOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDA4X2RpZmZfc2NoZW1hLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDA4X2RpZmZfc2No ZW1hLnBsCmluZGV4IDY3YjQwMjZhZmEuLjI5MDJlNmZjMzQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAwOF9kaWZmX3NjaGVtYS5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMDhfZGlmZl9zY2hlbWEucGwKQEAgLTMyLDcgKzMyLDcgQEAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24K IG15ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJu YW1lPXBvc3RncmVzJzsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0J IkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViIEZPUiBBTEwgVEFCTEVTIik7CisJIkNSRUFURSBQ VUJMSUNBVElPTiB0YXBfcHViIEZPUiBBTEwgVEFCTEVTIFdJVEggKGRkbCA9ICcnKSIpOwogCiAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQ VElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04g dGFwX3B1YiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwOV9tYXR2aWV3 cy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwOV9tYXR2aWV3cy5wbAppbmRleCAxY2U2 OTZkNGE0Li42YzU4Njg3N2ExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MDlfbWF0dmlld3MucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDA5X21hdHZpZXdz LnBsCkBAIC0xOSw3ICsxOSw3IEBAICRub2RlX3N1YnNjcmliZXItPnN0YXJ0OwogbXkgJHB1Ymxp c2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdy ZXMnOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUg UFVCTElDQVRJT04gbXlwdWIgRk9SIEFMTCBUQUJMRVM7Iik7CisJIkNSRUFURSBQVUJMSUNBVElP TiBteXB1YiBGT1IgQUxMIFRBQkxFUyBXSVRIIChkZGwgPSAnJyk7Iik7CiAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiBteXN1YiBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIG15cHViOyIKICk7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTNfcGFydGl0aW9uLnBsIGIvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEzX3BhcnRpdGlvbi5wbAppbmRleCA2NmU2M2U3NTVlLi5k ZTk2N2VhYWYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTNfcGFydGl0 aW9uLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxM19wYXJ0aXRpb24ucGwKQEAg LTI1LDkgKzI1LDkgQEAgJG5vZGVfc3Vic2NyaWJlcjItPnN0YXJ0OwogbXkgJHB1Ymxpc2hlcl9j b25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwog CiAjIHB1Ymxpc2hlcgotJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNS RUFURSBQVUJMSUNBVElPTiBwdWIxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoZGRsID0gJycpIik7CiAkbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUgUFVCTElDQVRJT04g cHViX2FsbCBGT1IgQUxMIFRBQkxFUyIpOworCSJDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbCBG T1IgQUxMIFRBQkxFUyBXSVRIIChkZGwgPSAnJykiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCiAJIkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwg YiB0ZXh0KSBQQVJUSVRJT04gQlkgTElTVCAoYSkiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCkBAIC00MjQsMTIgKzQyNCwxMiBAQCAkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAogIyBhbmQgY2hpbGQgdGFibGVzIGFyZSBwcmVzZW50IGJ1dCBj aGFuZ2VzIHdpbGwgYmUgcmVwbGljYXRlZCB2aWEgdGhlIHBhcmVudCdzCiAjIGlkZW50aXR5IGFu ZCBvbmx5IG9uY2UuCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJD UkVBVEUgUFVCTElDQVRJT04gcHViX3ZpYXJvb3QgRk9SIFRBQkxFIHRhYjIsIHRhYjJfMSwgdGFi M18xIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSkiCisJIkNSRUFURSBQ VUJMSUNBVElPTiBwdWJfdmlhcm9vdCBGT1IgVEFCTEUgdGFiMiwgdGFiMl8xLCB0YWIzXzEgV0lU SCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlLCBkZGwgPSAnJykiCiApOwogCiAj IGZvciB0YWI0LCB3ZSBwdWJsaXNoIGNoYW5nZXMgdGhyb3VnaCB0aGUgIm1pZGRsZSIgcGFydGl0 aW9uZWQgdGFibGUKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIkNS RUFURSBQVUJMSUNBVElPTiBwdWJfbG93ZXJfbGV2ZWwgRk9SIFRBQkxFIHRhYjRfMSBXSVRIIChw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpIgorCSJDUkVBVEUgUFVCTElDQVRJT04g cHViX2xvd2VyX2xldmVsIEZPUiBUQUJMRSB0YWI0XzEgV0lUSCAocHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QgPSB0cnVlLCBkZGwgPSAnJykiCiApOwogCiAjIHByZXBhcmUgZGF0YSBmb3IgdGhl IGluaXRpYWwgc3luYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3Jl cF9kZGxzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM4OGM0ZWExYzAKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwKQEAgLTAsMCAr MSwyMzcgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisKKyMgUmVncmVzc2lvbiB0ZXN0cyBmb3IgbG9naWNhbCByZXBsaWNhdGlv biBvZiBERExzCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9y ZTsKKworbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3 KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLCAnYXV0b3ZhY3V1bSA9IG9mZicpOworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworbXkg JG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2Ny aWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dp Y2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywg J2F1dG92YWN1dW0gPSBvZmYnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCitteSAkbm9k ZV9zdWJzY3JpYmVyMiA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJl cjInKTsKKyRub2RlX3N1YnNjcmliZXIyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2lj YWwnKTsKKyRub2RlX3N1YnNjcmliZXIyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywg J2F1dG92YWN1dW0gPSBvZmYnKTsKKyRub2RlX3N1YnNjcmliZXIyLT5zdGFydDsKKworbXkgJGRk bCA9ICJDUkVBVEUgVEFCTEUgdGVzdF9yZXAoaWQgaW50IHByaW1hcnkga2V5LCBuYW1lIHZhcmNo YXIpOyI7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkZGRsKTsKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0ZXN0X3Jl cCBWQUxVRVMgKDEsICdkYXRhMScpOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICRkZGwpOworJG5vZGVfc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAkZGRsKTsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25u c3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIG15cHViIGhhcyBwdWJkZGxfZGF0YWJhc2Ug b24KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJM SUNBVElPTiBteXB1YiBGT1IgQUxMIFRBQkxFUzsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIG15c3ViIENPTk5FQ1RJT04g JyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gbXlwdWI7IgorKTsKKyMgbXlwdWIyIGhh cyBwdWJkZGxfZGF0YWJhc2Ugb2ZmCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gbXlwdWIyIEZPUiBBTEwgVEFCTEVTIHdpdGggKGRk bCA9ICcnKTsiKTsKKyRub2RlX3N1YnNjcmliZXIyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFNVQlNDUklQVElPTiBteXN1YjIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3Ry JyBQVUJMSUNBVElPTiBteXB1YjI7IgorKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCdteXN1YicpOworCisjIFRlc3Qgc2ltcGxlIENSRUFURSBUQUJMRSBjb21tYW5kIGlz IHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcgorIyBUZXN0IHNtYWUgc2ltcGxlIENSRUFURSBUQUJM RSBjb21tYW5kIGlzIG5vdCByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXIyIChkZGwgb2ZmKQorIyBU ZXN0IEFMVEVSIFRBQkxFIGNvbW1hbmQgaXMgcmVwbGljYXRlZCBvbiB0YWJsZSB0ZXN0X3JlcAor IyBUZXN0IENSRUFURSBJTkRFWCBpcyByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXIKKyMgVGVzdCBD UkVBVEUgRlVOQ1RJT04gY29tbWFuZCBpcyByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXIKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgdDEgKGEgaW50 LCBiIHZhcmNoYXIpOyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkFMVEVSIFRBQkxFIHRlc3RfcmVwIEFERCBjMyBpbnQ7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGVzdF9yZXAgVkFMVUVTICgyLCAnZGF0 YTInLCAyKTsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVB VEUgSU5ERVggbmFtZWluZGV4IG9uIHRlc3RfcmVwIChuYW1lKSIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdG90 YWxSZWNvcmRzKCkKK1JFVFVSTlMgaW50ZWdlciBBUyBcJHRvdGFsXCQKK2RlY2xhcmUKKwl0b3Rh bCBpbnRlZ2VyOworQkVHSU4KKyAgIFNFTEVDVCBjb3VudCgqKSBpbnRvIHRvdGFsIEZST00gdGVz dF9yZXA7CisgICBSRVRVUk4gdG90YWw7CitFTkQ7CitcJHRvdGFsXCQgTEFOR1VBR0UgcGxwZ3Nx bDt9KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCitt eSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgY291bnQoKikgZnJvbSB0MSIpOworaXMoJHJlc3VsdCwgcXEoMCksICdDUkVBVEUgb2YgdDEg cmVwbGljYXRlZCB0byBzdWJzY3JpYmVyJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlcjIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfdGFibGVzIHdo ZXJlIHRhYmxlbmFtZSA9ICd0MSc7Iik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ0NSRUFURSBvZiB0 MSBpcyBub3QgcmVwbGljYXRlZCB0byBzdWJzY3JpYmVyMicpOworJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gdGVz dF9yZXAgV0hFUkUgYzMgPTI7Iik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ0FMVEVSIHRlc3RfcmVw IEFERCByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jbGFzcyB3aGVyZSByZWxuYW1l ID0gJ25hbWVpbmRleCciKTsKK2lzKCRyZXN1bHQsIHFxKDEpLCAnQ1JFQVRFIElOREVYIG5hbWVp bmRleCByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJTRUxFQ1QgdG90YWxSZWNvcmRzKCk7Iik7CitpcygkcmVzdWx0LCBxcSgy KSwgJ0NSRUFURSBvZiBmdW5jdGlvbiB0b3RhbFJlY29yZHMgcmVwbGljYXRlZCB0byBzdWJzY3Jp YmVyJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiU0VMRUNUIGNvdW50KCopIEZST00gcGdfcHJvYyB3aGVyZSBwcm9uYW1lID0gJ3RvdGFscmVj b3Jkcyc7Iik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ0NSRUFURSBGVU5DVElPTiB0b3RhbHJlY29y ZHMgaXMgbm90IHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcjInKTsKKworIyBUZXN0IEFMVEVSIFRB QkxFIERST1AKKyMgVGVzdCBEUk9QIElOREVYCisjIFRlc3QgRFJPUCBGVU5DVElPTgorJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFRBQkxFIHRlc3RfcmVwIERS T1AgYzM7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVMRVRF IEZST00gdGVzdF9yZXAgd2hlcmUgaWQgPSAyOyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkRST1AgSU5ERVggbmFtZWluZGV4OyIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgRlVOQ1RJT04gdG90YWxSZWNvcmRzOyIpOwor Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgq KSBmcm9tIHRlc3RfcmVwOyIpOworaXMoJHJlc3VsdCwgcXEoMSksICdBTFRFUiB0ZXN0X3JlcCBE Uk9QIHJlcGxpY2F0ZWQnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWUg PSAnbmFtZWluZGV4JyIpOworaXMoJHJlc3VsdCwgcXEoMCksICdEUk9QIElOREVYIG5hbWVpbmRl eCByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19wcm9jIHdoZXJlIHByb25hbWUgPSAn dG90YWxyZWNvcmRzJzsiKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnRFJPUCBGVU5DVElPTiB0b3Rh bHJlY29yZHMgcmVwbGljYXRlZCcpOworCisKKyMgVE9ETyBmaWd1cmUgb3V0IGhvdyB0byBzZXQg T05fRVJST1JfU1RPUCA9IDAgaW4gdGhpcyB0ZXN0CisjIFRlc3QgZmFpbGVkIENSRUFURS9BTFRF UiBUQUJMRSBvbiBwdWJsaXNoZXIgZG9lc24ndCBicmVhayByZXBsaWNhdGlvbgorIyBUYWJsZSB0 MSBhbHJlYWR5IGV4aXRzIHNvIGV4cGVjdCB0aGUgY29tbWFuZCB0byBmYWlsCisjJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIg dmFyY2hhcik7Iik7CisjJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFM VEVSIFRBQkxFIHRlc3RfcmVwIERST1AgYzM7Iik7CisjJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRlc3RfcmVwIFZBTFVFUyAoMTAzLCAnZGF0YTEw MycsIDEwMTMpOyIpOworCisjJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1 YicpOworIyBWZXJpZnkgcmVwbGljYXRpb24gc3RpbGwgd29ya3MKKyMkcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSB0 ZXN0X3JlcDsiKTsKKyNpcygkcmVzdWx0LCBxcSgxKSwgJ0RFTEVURSBmcm9tIHRlc3RfcmVwIHJl cGxpY2F0ZWQnKTsKKworIyBUZXN0IERETHMgaW5zaWRlIHR4biBibG9jaworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXsKK0JFR0lOOworQ1JFQVRFIFRBQkxFIHQy IChhIGludCwgYiB2YXJjaGFyKTsKK0FMVEVSIFRBQkxFIHRlc3RfcmVwIEFERCBjMyBpbnQ7CitJ TlNFUlQgSU5UTyB0ZXN0X3JlcCBWQUxVRVMgKDMsICdkYXRhMycsIDMpOworQ09NTUlUO30pOwor Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgq KSBmcm9tIHQyOyIpOworaXMoJHJlc3VsdCwgcXEoMCksICdDUkVBVEUgdDIgcmVwbGljYXRlZCcp OworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUIGNvdW50KCopIEZST00gdGVzdF9yZXA7Iik7CitpcygkcmVzdWx0LCBxcSgyKSwgJ0FMVEVS IHRlc3RfcmVwIEFERCByZXBsaWNhdGVkJyk7CisKKyMgVGVzdCB0b2dnbGluZyBwdWJkZGxfZGF0 YWJhc2Ugb3B0aW9uIG9mZgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkFMVEVSIFBVQkxJQ0FUSU9OIG15cHViIHNldCAoZGRsID0gJycpOyIpOworJHJlc3VsdCA9ICRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcHViZGRsX2RhdGFi YXNlLCBwdWJkZGxfdGFibGUgZnJvbSBwZ19wdWJsaWNhdGlvbiB3aGVyZSBwdWJuYW1lID0gJ215 cHViJzsiKTsKK2lzKCRyZXN1bHQsIHFxKGZ8ZiksICdwdWJkZGxfZGF0YWJhc2UgdHVybmVkIG9m ZiBvbiBteXB1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNS RUFURSBUQUJMRSB0MyAoYSBpbnQsIGIgdmFyY2hhcik7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfdGFibGVzIHdo ZXJlIHRhYmxlbmFtZSA9ICd0Myc7Iik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ0NSRUFURSB0MyBp cyBub3QgcmVwbGljYXRlZCcpOworCisjIFRlc3QgdG9nZ2xpbmcgcHViZGRsX2RhdGFiYXNlIG9w dGlvbiBvbgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFBV QkxJQ0FUSU9OIG15cHViIHNldCAoZGRsID0gJ2RhdGFiYXNlJyk7Iik7CiskcmVzdWx0ID0gJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwdWJkZGxfZGF0YWJh c2UsIHB1YmRkbF90YWJsZSBmcm9tIHBnX3B1YmxpY2F0aW9uIHdoZXJlIHB1Ym5hbWUgPSAnbXlw dWInOyIpOworaXMoJHJlc3VsdCwgcXEodHx0KSwgJ3B1YmRkbF9kYXRhYmFzZSB0dXJuZWQgb24g b24gbXlwdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNS RUFURSBUQUJMRSB0NCAoYSBpbnQsIGIgdmFyY2hhcik7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfdGFibGVzIHdo ZXJlIHRhYmxlbmFtZSA9ICd0NCc7Iik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ0NSRUFURSB0NCBp cyByZXBsaWNhdGVkJyk7CisKKyMgVGVzdCBETUwgY2hhbmdlcyBvbiB0aGUgbmV3IHRhYmxlIHQ0 IGFyZSByZXBsaWNhdGVkCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi SU5TRVJUIElOVE8gdDQgdmFsdWVzICgxLCAnYScpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdDQgdmFsdWVzICgyLCAnYicpIik7CisKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZy b20gdDQ7Iik7CitpcygkcmVzdWx0LCBxcSgyKSwgJ0RNTCBDaGFuZ2VzIHRvIHQ0IGFyZSByZXBs aWNhdGVkJyk7CisKKyMgQSBzb21ld2hhdCBjb21wbGljYXRlZCB0ZXN0IGluIHBscGdzcWwgYmxv Y2sgd2l0aCB0cmlnZ2VyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMn LCBxeworQkVHSU47CitDUkVBVEUgVEFCTEUgZm9vIChhIGludCk7CitDUkVBVEUgSU5ERVggZm9v X2lkeCBPTiBmb28gKGEpOworQUxURVIgVEFCTEUgZm9vIEFERCBDT0xVTU4gYiB0aW1lc3RhbXB0 ejsKK0NSRUFURSBGVU5DVElPTiBmb29fdHMoKQorUkVUVVJOUyB0cmlnZ2VyIEFTICQkCitCRUdJ TgorTkVXLmIgOj0gY3VycmVudF90aW1lc3RhbXA7CitSRVRVUk4gTkVXOworRU5EOworJCQKK0xB TkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVFJJR0dFUiBmb29fdHMgQkVGT1JFIElOU0VSVCBPUiBV UERBVEUgT04gZm9vCitGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBmb29fdHMoKTsKK0lO U0VSVCBJTlRPIGZvbyBWQUxVRVMgKDEpOworQ09NTUlUO30pOworJHJlc3VsdCA9ICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYiBmcm9tIGZvbyB3aGVyZSBh ID0gMTsiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOwor CitteSAkcmVzdWx0X3N1YiA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiU0VMRUNUIGIgZnJvbSBmb28gd2hlcmUgYSA9IDE7Iik7CitpcygkcmVzdWx0LCBxcSgkcmVz dWx0X3N1YiksICd0aW1lc3RhbXAgb2YgaW5zZXJ0IG1hdGNoZXMnKTsKKworIyBUZXN0IENSRUFU RSBTQ0hFTUEgc3RtdCBpcyByZXBsaWNhdGVkCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBzMSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jYXRhbG9nLnBnX25hbWVz cGFjZSBXSEVSRSBuc3BuYW1lID0gJ3MxJzsiKTsKK2lzKCRyZXN1bHQsIHFxKDEpLCAnQ1JFQVRF IFNDSEVNQSBzMSBpcyByZXBsaWNhdGVkJyk7CisKKyMgVGVzdCBDUkVBVEUgVEFCTEUgaW4gbmV3 IHNjaGVtYSBzMSBmb2xsb3dlZCBieSBpbnNlcnQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgczEudDEgKGEgaW50LCBiIHZhcmNoYXIpOyIpOwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHMxLnQx IFZBTFVFUyAoMSwgJ2EnKTsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJJTlNFUlQgSU5UTyBzMS50MSBWQUxVRVMgKDIsICdiJyk7Iik7CisKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gczEudDE7 Iik7CitpcygkcmVzdWx0LCBxcSgyKSwgJ0NSRUFURSBUQUJMRSBzMS50MSBpcyByZXBsaWNhdGVk Jyk7CisKKyMgVGVzdCByZXBsaWNhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCB3aXRoIG1pc21hdGNo ZWQgc2VhcmNoX3BhdGggb24gcHVibGlzaGVyIGFuZCBzdWJzY3JpYmVyCiskbm9kZV9wdWJsaXNo ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnc2VhcmNoX3BhdGggPSBcJ3MxLCBw dWJsaWNcJycpOworJG5vZGVfcHVibGlzaGVyLT5yZXN0YXJ0OworIyBDUkVBVEUgdW5xdWFsaWZp ZWQgdGFibGUgdDIsIGl0IGlzIHMxLnQyIHVuZGVyIHRoZSBtb2RpZmllZCBzZWFyY2hfcGF0aAor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0MiAo YSBpbnQsIGIgdmFyY2hhcik7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiSU5TRVJUIElOVE8gdDIgVkFMVUVTICgxLCAnYScpOyIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMiwgJ2InKTsi KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0 MiBWQUxVRVMgKDMsICdjJyk7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gczEudDI7Iik7CitpcygkcmVzdWx0LCBxcSgz KSwgJ0NSRUFURSBUQUJMRSBzMS50MiBpcyByZXBsaWNhdGVkJyk7CisKKyMgVGVzdCBvd25lciBv ZiBuZXcgdGFibGUgb24gc3Vic2NyaWJlciBtYXRjaGVzIHRoZSBvd25lciBvbiBwdWJsaXNoZXIK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgUk9MRSBkZGxf cmVwbGljYXRpb25fdXNlciBMT0dJTiBTVVBFUlVTRVI7Iik7CisKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFJPTEUgZGRsX3JlcGxpY2F0aW9uX3VzZXIg TE9HSU4gU1VQRVJVU0VSOyIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAnZGRsX3JlcGxpY2F0aW9uX3VzZXInOyBD UkVBVEUgVEFCTEUgdDUgKGEgaW50LCBiIHZhcmNoYXIpOyIpOworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgdGFibGVvd25lciBmcm9tIHBnX2NhdGFsb2cu cGdfdGFibGVzIHdoZXJlIHRhYmxlbmFtZSA9ICd0NSc7Iik7CitpcygkcmVzdWx0LCBxcShkZGxf cmVwbGljYXRpb25fdXNlciksICdPd25lciBvZiB0NSBpcyBjb3JyZWN0Jyk7CisKKyNUT0RPIFRF U1QgY2VydGFpbiBERExzIGFyZSBub3QgcmVwbGljYXRlZAorCitwYXNzICJEREwgcmVwbGljYXRp b24gdGVzdHMgcGFzc2VkISI7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3A7Ciskbm9kZV9zdWJz Y3JpYmVyMi0+c3RvcDsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcDsKKworZG9uZV90ZXN0aW5nKCk7 Cg== --00000000000008262705da7316ad--