Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1veYos-00ErpF-2Q for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 13:15:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1veYor-00AAUi-24 for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 13:15:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1veYoq-00AAUP-1y for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 13:15:54 +0000 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1veYoo-005EoM-2O for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 13:15:52 +0000 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-383247376a4so11557631fa.3 for ; Sat, 10 Jan 2026 05:15:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768050947; x=1768655747; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GY5FwwNYv5TeLSWDuyJnw5ajE4iUnF3y/fIi431aKzc=; b=S+ei0V8ah6fVCv5Rn/4pJbABc5HFCK5qJkQyIvKQ2yh7VE+If/PQwJi9aC3gNap9lS 9TlM/NCV2+kZXurzttbfGBVvSvTracxWI2SqG1Lq0GrMnHm+hwDB6Gbxg1mNJNUJf5Fv eJJaPLr3r35XGMosfQr/YtIv2ktnpvyBj30cflV5XLb/8n9uToAtIfnXT+ept56CJR3T +WszinOAN6uG0ekWBRt7Vi4UZ/2t2BQ82aZ7rrM/C6mqSUbSEG4GdMub06dz2fXrLxtL Qls+akoVIqX2eExOCU3F9Ch+6oh+okfgTXzw+Esy3kBn27YKHpFdLdJwzbffJnoXxCSb 3g8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768050947; x=1768655747; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GY5FwwNYv5TeLSWDuyJnw5ajE4iUnF3y/fIi431aKzc=; b=txFS1wOgV7Ijux6bvOtElUoNam3yKPisJ1xpewfBu30SLCyN0BKhREITg6t+WNQb+F NkG4NKoGaqAJQow/R1pJyG22FhZa0vhc9sW2oFoi7e6CgwpGj/c6s771LdrnQksrKA4R uMntzlPkmsZhPsExXzBMYd6FgJnymGDXE6T4phcBJjgsZ1yP+02t6Y+F5s+ZCGFgsVxs kXIHo4dJplhRCXq5wsYO+yY/gzun6JYwMYXLBs8wBOOcCUk9AbEuWlx+dEW49iOxngMB 2O5i1JqLEWDUZDNiFTJwE42jCj/PWlTH+zq35pDjavjZe1DRCEv/leqC5I8gMzWD2Bp/ lBUA== X-Forwarded-Encrypted: i=1; AJvYcCW6qZy+DEQts/b22/8639tlWkU/PGnVSbmRxakMxrXB6oVCqVkil1fC1up8A7qHtxGyw3XOoMVzhJ8jyKk7@lists.postgresql.org X-Gm-Message-State: AOJu0YyCPCDbRCZc7jDS04naLfgzBgJv7TcUXWm6mpbB7v2oCH0I9mNp hDeghRGXdMLcjRSPjWwTnS7nLV1tFJYMtE5zsNLnBpfKmZ1g7uOY83K8E8n/OigJBnB4BBIpSyS FH25pmVO6ygQMon9Pne4kURQUZ7WiNnY= X-Gm-Gg: AY/fxX4gnKyL7suAzg2Zf9bdk1z98JmliIF1WMzuY6vw65iFK2YjS6A23XyiHGXhons i8U25bLVzlSvtHM4W8bYw88RfZT9wELDeLuEbu3DzSbxtIayBbpKMP9Ai+E0A269aGz6MwM5mk3 88DO6+rGBSz6uT73o17vdspTurmctasPNVMXx+Cf7flzOL2qYiHCzdHNTzIM36oGFv0cwerznGr P7DET9UBbYcS65FVZfmWM4Rw7HR6lQWcK8Vi4MMW2DZqq1I9FfHMGlgYuoEmEs2eS/8DEqAZEBj eDThLoTStmINJOOsUNV/25+vBPJT X-Google-Smtp-Source: AGHT+IFr95hpRR7FzGu869vdbqfda/76/PDe51obrh8EpZH9NbSL8Jz9WHh32LRAMVpRwMeFE7gkAN+zvCF8OT7tJbY= X-Received: by 2002:a05:651c:a0a:b0:383:723:3c50 with SMTP id 38308e7fff4ca-38307233d12mr34226621fa.14.1768050946712; Sat, 10 Jan 2026 05:15:46 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Sat, 10 Jan 2026 18:45:28 +0530 X-Gm-Features: AZwV_QhoQoK87_P4HdBDgkD7Tx1ySQq-2JTuy6Qkg-SPLAAM5O_bHNNdpEU8Ajc Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: vignesh C , shveta malik , Amit Kapila , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009fca5d0648087041" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009fca5d0648087041 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jan 10, 2026 at 12:19=E2=80=AFPM Dilip Kumar wrote: > > On Fri, Jan 9, 2026 at 8:30=E2=80=AFAM Peter Smith wrote: > > > > Hi Dilip. > > > > Here are some review comments for the v19-0002 (code only, not tests). > > > > =3D=3D=3D=3D=3D=3D > > src/backend/replication/logical/conflict.c > > > > 1. > > +/* Schema for the elements within the 'local_conflicts' JSON array */ > > +static const ConflictLogColumnDef LocalConflictSchema[] =3D > > +{ > > + { .attname =3D "xid", .atttypid =3D XIDOID }, > > + { .attname =3D "commit_ts", .atttypid =3D TIMESTAMPTZOID }, > > + { .attname =3D "origin", .atttypid =3D TEXTOID }, > > + { .attname =3D "key", .atttypid =3D JSONOID }, > > + { .attname =3D "tuple", .atttypid =3D JSONOID } > > +}; > > > > Maybe this only needs to be used in this module, but I still thought > > LocalConflictSchema[] (and the MAX_LOCAL_CONFLICT_INFO_ATTRS) belongs > > more naturally alongside the other ConflictLogSchema[] (e.g. in > > conflict.h) > > Since this is used only in conflict.c, my personal preference to keep > it in the .c file > > > ~~~ > > > > 2. > > + > > +#define MAX_LOCAL_CONFLICT_INFO_ATTRS \ > > + (sizeof(LocalConflictSchema) / sizeof(LocalConflictSchema[0])) > > + > > > > how about: > > > > #define MAX_LOCAL_CONFLICT_INFO_ATTRS lengthof(LocalConflictSchema) > > Make sense > > ~~~ > > > > ReportApplyConflict: > > > > 3. > > + /* Insert to table if destination is 'table' or 'all' */ > > + if ((dest & CONFLICT_LOG_DEST_TABLE) !=3D 0) > > > > I think it is unnecessary to even mention 'all'. The bitmasks tell > > everything you need to know. > > > > SUGGESTION > > Insert to table if requested. > > Done > > > ~ > > > > 4. > > There's a slightly convoluted if;if/else with these bitmasks here, but > > I think Shveta already suggested the same change as what I was > > thinking. > > So now we have this, which is first handling the table case and > handling the LOG case separately, because irrespective of whether we > want to insert into the table or not we need to check what we need to > log? What's your suggestion for this? > > if ((dest & CONFLICT_LOG_DEST_TABLE) !=3D 0) > { > > } > > if ((dest & CONFLICT_LOG_DEST_LOG) !=3D 0) > { > > } > else > { > > } > > > > > ~~~ > > > > GetConflictLogTableInfo: > > > > 5. > > + *log_dest =3D GetLogDestination(MySubscription->conflictlogdest); > > + conflictlogrelid =3D MySubscription->conflictlogrelid; > > + > > + /* If destination is 'log' only, no table to open. */ > > + if (*log_dest =3D=3D CONFLICT_LOG_DEST_LOG) > > + return NULL; > > > > I think checking and mentioning 'log' here is not future-proof for > > when there might be more kinds of destinations. We just want to return > > when the user doesn't want a 'table'. Use the bitmasks to do that. > > > > SUGGESTION > > /* Quick exit if a conflict log table was not requested. */ > > if ((*logdest & CONFLICT_LOG_DEST_TABLE) =3D=3D 0) > > return NULL; > > Make sense > > > ~~~ > > > > build_conflict_tupledesc: > > > > 6. > > +static TupleDesc > > +build_conflict_tupledesc(void) > > +{ > > > > Missing function comment. There used to be one (??). > > Yeah it got lost in some of the refactoring. > > > ~~~ > > > > build_local_conflicts_json_array: > > > > 7. > > + json_datum_array =3D (Datum *) palloc(num_conflicts * sizeof(Datum)); > > + json_null_array =3D (bool *) palloc0(num_conflicts * sizeof(bool)); > > > > I may have already asked this same question in a previous review, but > > shouldn't these be using those new palloc_array and palloc0_array > > macros? > > Done. > > > =3D=3D=3D=3D=3D=3D > > src/include/replication/conflict.h > > > > 8. > > -/* Define the count using the array size */ > > #define MAX_CONFLICT_ATTR_NUM (sizeof(ConflictLogSchema) / > > sizeof(ConflictLogSchema[0])) > > > > This change appears to be in the wrong patch. AFAICT it belonged in 000= 1. > > Fixed. > > Will shared the updated patch after fixing other comments from Shveta > as well, thanks for the review. > Here is the updated patch 1. fixes all the agreed comments from Peter and Shveta. 2. also for dependency between the clt and subscription I have improvised the comments, I mean now we don't need that dependency to protect the clt from getting dropped as that is taken care by internal schema, we still maintain the dependency considering the same thing is done for the toast table and these tables are internally created/dropped along with subscription so conceptually it makes sense to maintain the internal dependency and its also looks fine to drop it explicitly using dependency dependency drop function i.e. performDeletion() as we are doing similar things in other cases like "Identity Columns". 3. I tried to merge the test cases in the existing 035_conflict.pl, I modified the create subscription to log into both table and log and then extended some of the existing test cases to validate the table logging as well. If we think this looks fine then we can update a few more test cases to validate from the table or maybe all the test cases? -- Regards, Dilip Kumar Google --0000000000009fca5d0648087041 Content-Type: application/octet-stream; name="v20-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v20-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk8bftjk1 RnJvbSBhODFmMDIzNWQ5NzY4MzQ4NDJjOWEzMzdkZmVjZTY4M2NkZThkMThmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA5IEphbiAyMDI2IDE1OjU1OjU1ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2MjAg Mi8zXSBJbXBsZW1lbnQgdGhlIGNvbmZsaWN0IGluc2VydGlvbiBpbmZyYXN0cnVjdHVyZSBmb3Ig CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIG15c2No ZW1hLmNvbmZsaWN0X2xvZ19oaXN0b3J5MjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCByZW1v dGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7ImEi OjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3NSAg ICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCA1NTEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgfCAgIDEgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgIHwgIDMxICstCiBzcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oICB8ICAgNyArCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVf Y29uZmxpY3RzLnBsICAgfCAgNTMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjAyIGluc2VydGlvbnMo KyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29u ZmxpY3QuYwppbmRleCA5MzIyMmVlM2I4OC4uZWU2OWZlNzg3YWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE1LDEzICsxNSwyMCBAQAogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCisjaW5jbHVk ZSAiYWNjZXNzL2hlYXBhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv YnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxz L2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0aWxz L2pzb25iLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1td ID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKQEAgLTM0LDYgKzQx LDE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewog CVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9ICJtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIgogfTsKIAorLyogU2NoZW1hIGZvciB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSAnbG9jYWxf Y29uZmxpY3RzJyBKU09OIGFycmF5ICovCitzdGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5E ZWYgTG9jYWxDb25mbGljdFNjaGVtYVtdID0KK3sKKwl7IC5hdHRuYW1lID0gInhpZCIsICAgICAg IC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5 cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gIm9yaWdpbiIsICAgIC5hdHR0 eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImtleSIsICAgICAgIC5hdHR0eXBpZCA9 IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInR1cGxlIiwgICAgIC5hdHR0eXBpZCA9IEpTT05P SUQgfQorfTsKKworI2RlZmluZSBNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSUyBsZW5ndGhv ZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMgaW50CWVycmNvZGVfYXBwbHlfY29uZmxp Y3QoQ29uZmxpY3RUeXBlIHR5cGUpOwogc3RhdGljIHZvaWQgZXJyZGV0YWlsX2FwcGx5X2NvbmZs aWN0KEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCkBA IC01MCw4ICs2OSwyNyBAQCBzdGF0aWMgY2hhciAqYnVpbGRfdHVwbGVfdmFsdWVfZGV0YWlscyhF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJCSAgIFR1cGxl VGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rl c2xvdCwKIAkJCQkJCQkJCSAgIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgdm9pZCBidWlsZF9pbmRl eF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJ CQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4 RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkJCQkgYm9vbCAqaXNudWxsKTsKIHN0YXRpYyBj aGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2Nh bHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOworc3Rh dGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShUdXBsZVRhYmxlU2xvdCAq c2xvdCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKEVT dGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkJCQkgICBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJ CQkJICAgT2lkIHJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpz bG90KTsKK3N0YXRpYyBUdXBsZURlc2MgYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZvaWQpOwor c3RhdGljIERhdHVtIGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0 YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCQkJCSAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5 cGUsCisJCQkJCQkJCQkJCSAgTGlzdCAqY29uZmxpY3R0dXBsZXMpOworc3RhdGljIHZvaWQgcHJl cGFyZV9jb25mbGljdF9sb2dfdHVwbGUoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJ CQkJCQkJCSAgIFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVsLAorCQkJCQkJCQkJICAgQ29uZmxpY3RU eXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xv dCwKKwkJCQkJCQkJCSAgIExpc3QgKmNvbmZsaWN0dHVwbGVzLAorCQkJCQkJCQkJICAgVHVwbGVU YWJsZVNsb3QgKnJlbW90ZXNsb3QpOwogCiAvKgogICogR2V0IHRoZSB4bWluIGFuZCBjb21taXQg dGltZXN0YW1wIGRhdGEgKG9yaWdpbiBhbmQgdGltZXN0YW1wKSBhc3NvY2lhdGVkCkBAIC0xMDUs MzAgKzE0Myw4MyBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRS ZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUgdHlwZSwgVHVw bGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90 LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9IHJlbGluZm8t PnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOworCVJlbGF0aW9u CQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJ ZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CiAKLQlpbml0U3RyaW5nSW5mbygmZXJy X2RldGFpbCk7CisJLyoKKwkgKiBHZXQgYm90aCB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IGFuZCB0aGUgb3BlbmVkIGNvbmZsaWN0IGxvZworCSAqIHJlbGF0aW9uIGZvciBpbnNlcnRpb24u CisJICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVz dCk7CiAKLQkvKiBGb3JtIGVycmRldGFpbCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGlu ZyB0dXBsZXMgaW5mb3JtYXRpb24uICovCi0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8s IGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxp Y3QoZXN0YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0 dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lk LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUt Pm9yaWdpbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRh aWwpOworCS8qIEluc2VydCB0byB0YWJsZSBpZiByZXF1ZXN0ZWQuICovCisJaWYgKChkZXN0ICYg Q09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpICE9IDApCisJeworCQlBc3NlcnQoY29uZmxpY3Rsb2dy ZWwgIT0gTlVMTCk7CisKKwkJLyoKKwkJICogUHJlcGFyZSB0aGUgY29uZmxpY3QgbG9nIHR1cGxl LiBJZiB0aGUgZXJyb3IgbGV2ZWwgaXMgYmVsb3cgRVJST1IsCisJCSAqIGluc2VydCBpdCBpbW1l ZGlhdGVseS4gT3RoZXJ3aXNlLCBkZWZlciB0aGUgaW5zZXJ0aW9uIHRvIGEgbmV3CisJCSAqIHRy YW5zYWN0aW9uIGFmdGVyIHRoZSBjdXJyZW50IG9uZSBhYm9ydHMsIGVuc3VyaW5nIHRoZSBpbnNl cnRpb24gb2YKKwkJICogdGhlIGxvZyB0dXBsZSBpcyBub3Qgcm9sbGVkIGJhY2suCisJCSAqLwor CQlwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShlc3RhdGUsCisJCQkJCQkJCSAgIHJlbGluZm8t PnJpX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAgY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkJCSAg IHR5cGUsCisJCQkJCQkJCSAgIHNlYXJjaHNsb3QsCisJCQkJCQkJCSAgIGNvbmZsaWN0dHVwbGVz LAorCQkJCQkJCQkgICByZW1vdGVzbG90KTsKKwkJaWYgKGVsZXZlbCA8IEVSUk9SKQorCQkJSW5z ZXJ0Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisKKwkJdGFibGVfY2xvc2UoY29u ZmxpY3Rsb2dyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCX0KIAogCXBnc3RhdF9yZXBvcnRfc3Vi c2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQsIHR5cGUpOwogCi0JZXJlcG9y dChlbGV2ZWwsCi0JCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAotCQkJZXJybXNnKCJj b25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6IGNvbmZsaWN0PSVzIiwKLQkJ CQkgICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwK LQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShsb2NhbHJlbCksCi0JCQkJICAgQ29uZmxp Y3RUeXBlTmFtZXNbdHlwZV0pLAotCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRh aWwuZGF0YSkpOworCS8qIERlY2lkZSB3aGF0IGRldGFpbCB0byBzaG93IGluIHNlcnZlciBsb2dz LiAqLworCWlmICgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX0xPRykgIT0gMCkKKwl7CisJCVN0 cmluZ0luZm9EYXRhCWVycl9kZXRhaWw7CisKKwkJaW5pdFN0cmluZ0luZm8oJmVycl9kZXRhaWwp OworCisJCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkgY29tYmluaW5nIGNvbmZsaWN0aW5n IHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KKwkJZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8s IGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQorCQkJZXJyZGV0YWlsX2FwcGx5X2NvbmZs aWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xvdCwKKwkJCQkJCQkJCWNvbmZsaWN0 dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5pbmRleG9p ZCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnhtaW4sCisJCQkJCQkJCQljb25mbGljdHR1cGxl LT5vcmlnaW4sCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT50cywKKwkJCQkJCQkJCSZlcnJfZGV0 YWlsKTsKKworCQkvKiBTdGFuZGFyZCByZXBvcnRpbmcgd2l0aCBmdWxsIGludGVybmFsIGRldGFp bHMuICovCisJCWVyZXBvcnQoZWxldmVsLAorCQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlw ZSksCisJCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6 IGNvbmZsaWN0PSVzIiwKKwkJCQkJICAgZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFt ZXNwYWNlKGxvY2FscmVsKSksCisJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2Fs cmVsKSwKKwkJCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9p bnRlcm5hbCgiJXMiLCBlcnJfZGV0YWlsLmRhdGEpKTsKKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJ ICogJ3RhYmxlJyBvbmx5OiBSZXBvcnQgdGhlIGVycm9yIG1zZyBidXQgb21pdCByYXcgdHVwbGUg ZGF0YSBmcm9tCisJCSAqIHNlcnZlciBsb2dzIHNpbmNlIGl0J3MgYWxyZWFkeSBjYXB0dXJlZCBp biB0aGUgaW50ZXJuYWwgdGFibGUuCisJCSAqLworCQllcmVwb3J0KGVsZXZlbCwKKwkJCQllcnJj b2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJCWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQg b24gcmVsYXRpb24gXCIlcy4lc1wiOiBjb25mbGljdD0lcyIsCisJCQkJCSAgIGdldF9uYW1lc3Bh Y2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAorCQkJCQkgICBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShsb2NhbHJlbCksCisJCQkJCSAgIENvbmZsaWN0VHlwZU5hbWVzW3R5 cGVdKSwKKwkJCQllcnJkZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgbG9nZ2VkIHRvIGludGVybmFs IHRhYmxlIHdpdGggT0lEICV1LiIsCisJCQkJCQkgIE15U3Vic2NyaXB0aW9uLT5jb25mbGljdGxv Z3JlbGlkKSk7CisJfQogfQogCiAvKgpAQCAtMTYyLDYgKzI1Myw2NCBAQCBJbml0Q29uZmxpY3RJ bmRleGVzKFJlc3VsdFJlbEluZm8gKnJlbEluZm8pCiAJcmVsSW5mby0+cmlfb25Db25mbGljdEFy Yml0ZXJJbmRleGVzID0gdW5pcXVlSW5kZXhlczsKIH0KIAorLyoKKyAqIEdldENvbmZsaWN0TG9n RGVzdEFuZFRhYmxlCisgKgorICogRmV0Y2hlcyBjb25mbGljdCBsb2dnaW5nIG1ldGFkYXRhIGZy b20gdGhlIGNhY2hlZCBNeVN1YnNjcmlwdGlvbiBwb2ludGVyLgorICogU2V0cyB0aGUgZGVzdGlu YXRpb24gZW51bSBpbiAqbG9nX2Rlc3QgYW5kLCBpZiBhcHBsaWNhYmxlLCBvcGVucyBhbmQKKyAq IHJldHVybnMgdGhlIHJlbGF0aW9uIGhhbmRsZSBmb3IgdGhlIGludGVybmFsIGxvZyB0YWJsZS4K KyAqLworUmVsYXRpb24KK0dldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKENvbmZsaWN0TG9nRGVz dCAqbG9nX2Rlc3QpCit7CisJT2lkCQkJY29uZmxpY3Rsb2dyZWxpZDsKKwlSZWxhdGlvbgljb25m bGljdGxvZ3JlbCA9IE5VTEw7CisKKwkvKgorCSAqIENvbnZlcnQgdGhlIHRleHQgbG9nIGRlc3Rp bmF0aW9uIHRvIHRoZSBpbnRlcm5hbCBlbnVtLiAgTXlTdWJzY3JpcHRpb24KKwkgKiBhbHJlYWR5 IGNvbnRhaW5zIHRoZSBkYXRhIGZyb20gcGdfc3Vic2NyaXB0aW9uLgorCSAqLworCSpsb2dfZGVz dCA9IEdldExvZ0Rlc3RpbmF0aW9uKE15U3Vic2NyaXB0aW9uLT5jb25mbGljdGxvZ2Rlc3QpOwor CisJLyogUXVpY2sgZXhpdCBpZiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgbm90IHJlcXVlc3Rl ZC4gKi8KKwlpZiAoKCpsb2dfZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKSA9PSAwKQor CQlyZXR1cm4gTlVMTDsKKworCWNvbmZsaWN0bG9ncmVsaWQgPSBNeVN1YnNjcmlwdGlvbi0+Y29u ZmxpY3Rsb2dyZWxpZDsKKworCUFzc2VydChPaWRJc1ZhbGlkKGNvbmZsaWN0bG9ncmVsaWQpKTsK KworCWNvbmZsaWN0bG9ncmVsID0gdGFibGVfb3Blbihjb25mbGljdGxvZ3JlbGlkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKwlpZiAoY29uZmxpY3Rsb2dyZWwgPT0gTlVMTCkKKwkJZWxvZyhFUlJPUiwg ImNvdWxkIG5vdCBvcGVuIGNvbmZsaWN0IGxvZyB0YWJsZSAoT0lEICV1KSIsCisJCQkgY29uZmxp Y3Rsb2dyZWxpZCk7CisKKwlyZXR1cm4gY29uZmxpY3Rsb2dyZWw7Cit9CisKKy8qCisgKiBJbnNl cnRDb25mbGljdExvZ1R1cGxlCisgKgorICogSW5zZXJ0IGNvbmZsaWN0IGxvZyB0dXBsZSBpbnRv IHRoZSBjb25mbGljdCBsb2cgdGFibGUuIEl0IHVzZXMKKyAqIEhFQVBfSU5TRVJUX05PX0xPR0lD QUwgdG8gZXhwbGljaXRseSBibG9jayBsb2dpY2FsIGRlY29kaW5nIG9mIHRoZSB0dXBsZQorICog aW5zZXJ0ZWQgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgorICovCit2b2lkCitJbnNlcnRD b25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVsKQoreworCWludAkJCW9wdGlv bnMgPSBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMOworCisJLyogQSB2YWxpZCB0dXBsZSBtdXN0IGJl IHByZXBhcmVkIGFuZCBzdG9yZWQgaW4gTXlMb2dpY2FsUmVwV29ya2VyLiAqLworCUFzc2VydChN eUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSAhPSBOVUxMKTsKKworCWhlYXBf aW5zZXJ0KGNvbmZsaWN0bG9ncmVsLCBNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190 dXBsZSwKKwkJCQlHZXRDdXJyZW50Q29tbWFuZElkKHRydWUpLCBvcHRpb25zLCBOVUxMKTsKKwor CS8qIEZyZWUgY29uZmxpY3QgbG9nIHR1cGxlLiAqLworCWhlYXBfZnJlZXR1cGxlKE15TG9naWNh bFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlKTsKKwlNeUxvZ2ljYWxSZXBXb3JrZXItPmNv bmZsaWN0X2xvZ190dXBsZSA9IE5VTEw7Cit9CisKIC8qCiAgKiBBZGQgU1FMU1RBVEUgZXJyb3Ig Y29kZSB0byB0aGUgY3VycmVudCBjb25mbGljdCByZXBvcnQuCiAgKi8KQEAgLTQ3Miw2ICs2MjEs NDAgQEAgYnVpbGRfdHVwbGVfdmFsdWVfZGV0YWlscyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVs SW5mbyAqcmVsaW5mbywKIAlyZXR1cm4gdHVwbGVfdmFsdWUuZGF0YTsKIH0KIAorLyoKKyAqIEhl bHBlciBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSAicmF3IiBpbmRleCBrZXkgRGF0dW1zIGFuZCB0 aGVpciBudWxsIGZsYWdzCisgKiBmcm9tIGEgVHVwbGVUYWJsZVNsb3QsIGdpdmVuIGFuIGFscmVh ZHkgb3BlbiBpbmRleCBkZXNjcmlwdG9yLgorICogVGhpcyBpcyB0aGUgcmV1c2FibGUgY29yZSBs b2dpYy4KKyAqLworc3RhdGljIHZvaWQKK2J1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0 YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAq c2xvdCwKKwkJCQkJCQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJCQkJ CSBib29sICppc251bGwpCit7CisJVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNsb3Q7CisK KwkvKgorCSAqIElmIHRoZSBzbG90IGlzIGEgdmlydHVhbCBzbG90LCBjb3B5IGl0IGludG8gYSBo ZWFwIHR1cGxlIHNsb3QgYXMKKwkgKiBGb3JtSW5kZXhEYXR1bSBvbmx5IHdvcmtzIHdpdGggaGVh cCB0dXBsZSBzbG90cy4KKwkgKi8KKwlpZiAoVFRTX0lTX1ZJUlRVQUwoc2xvdCkpCisJeworCQkv KiBTbG90IGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBFU3RhdGUncyB0dXBsZSB0YWJsZSAqLworCQl0 YWJsZXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShsb2NhbHJlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVU YWJsZSk7CisJCXRhYmxlc2xvdCA9IEV4ZWNDb3B5U2xvdCh0YWJsZXNsb3QsIHNsb3QpOworCX0K KworCS8qCisJICogSW5pdGlhbGl6ZSBlY3h0X3NjYW50dXBsZSBmb3IgcG90ZW50aWFsIHVzZSBp biBGb3JtSW5kZXhEYXR1bQorCSAqLworCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisKKwkvKiBGb3JtIHRoZSBpbmRleCBkYXR1bXMg Ki8KKwlGb3JtSW5kZXhEYXR1bShCdWlsZEluZGV4SW5mbyhpbmRleERlc2MpLCB0YWJsZXNsb3Qs IGVzdGF0ZSwgdmFsdWVzLAorCQkJCSAgIGlzbnVsbCk7Cit9CisKIC8qCiAgKiBIZWxwZXIgZnVu Y3Rpb25zIHRvIGNvbnN0cnVjdCBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb250ZW50cyBvZiBh biBpbmRleAogICogZW50cnkuIFNlZSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbiBmb3IgZGV0 YWlscy4KQEAgLTQ4Nyw0MSArNjcwLDMyNSBAQCBidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0 ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJUmVs YXRpb24JaW5kZXhEZXNjOwogCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOwogCWJvb2wJ CWlzbnVsbFtJTkRFWF9NQVhfS0VZU107Ci0JVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNs b3Q7CiAKLQlpZiAoIXRhYmxlc2xvdCkKKwlpZiAoIXNsb3QpCiAJCXJldHVybiBOVUxMOwogCiAJ QXNzZXJ0KENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNsdXNpdmVM b2NrLCB0cnVlKSk7CiAKIAlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBOb0xvY2sp OwogCi0JLyoKLQkgKiBJZiB0aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRv IGEgaGVhcCB0dXBsZSBzbG90IGFzCi0JICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRo IGhlYXAgdHVwbGUgc2xvdHMuCi0JICovCi0JaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCWJ1 aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwgaW5kZXhE ZXNjLCB2YWx1ZXMsCisJCQkJCQkJCSBpc251bGwpOworCisJaW5kZXhfdmFsdWUgPSBCdWlsZElu ZGV4VmFsdWVEZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKworCWluZGV4 X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCXJldHVybiBpbmRleF92YWx1ZTsKK30KKwor LyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bQorICoKKyAqIEhlbHBlciBmdW5j dGlvbiB0byBjb252ZXJ0IGEgVHVwbGVUYWJsZVNsb3QgdG8gSnNvbmIuCisgKi8KK3N0YXRpYyBE YXR1bQordHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90 KQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisK KwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxl KHNsb3QpOworCWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50 dHNfdHVwbGVEZXNjcmlwdG9yKTsKKworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190 b19qc29uLCBkYXR1bSk7CisJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247 Cit9CisKKy8qCisgKiB0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBG ZXRjaCByZXBsaWNhIGlkZW50aXR5IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBj b252ZXJ0IGludG8gYQorICoganNvbmIgZGF0dW0uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVf dGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2Nh bHJlbCwKKwkJCQkJCQkJICBPaWQgaW5kZXhpZCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit7CisJ UmVsYXRpb24JaW5kZXhEZXNjOworCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOworCWJv b2wJCWlzbnVsbFtJTkRFWF9NQVhfS0VZU107CisJSGVhcFR1cGxlCXR1cGxlOworCVR1cGxlRGVz Ywl0dXBkZXNjOworCURhdHVtCQlkYXR1bTsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJ QXNzZXJ0KENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4aWQsIFJvd0V4Y2x1c2l2ZUxv Y2ssIHRydWUpKTsKKworCWluZGV4RGVzYyA9IGluZGV4X29wZW4oaW5kZXhpZCwgTm9Mb2NrKTsK KworCWJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwg aW5kZXhEZXNjLCB2YWx1ZXMsCisJCQkJCQkJCSBpc251bGwpOworCXR1cGRlc2MgPSBSZWxhdGlv bkdldERlc2NyKGluZGV4RGVzYyk7CisKKwkvKiBCbGVzcyB0aGUgdHVwZGVzYyBzbyBpdCBjYW4g YmUgbG9va2VkIHVwIGJ5IHJvd190b19qc29uLiAqLworCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2Mp OworCisJLyogRm9ybSB0aGUgcmVwbGljYSBpZGVudGl0eSB0dXBsZS4gKi8KKwl0dXBsZSA9IGhl YXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisJZGF0dW0gPSBoZWFwX2Nv cHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJaW5kZXhfY2xvc2UoaW5kZXhE ZXNjLCBOb0xvY2spOworCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKworCS8qIENvbnZlcnQgdG8g YSBKU09OQiBkYXR1bS4gKi8KKwlyZXR1cm4gRGlyZWN0RnVuY3Rpb25DYWxsMShyb3dfdG9fanNv biwgZGF0dW0pOworfQorCisvKgorICogYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjCisgKgorICog QnVpbGQgYW5kIGJsZXNzIGEgdHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIGludGVybmFsIGNvbmZs aWN0IGxvZyB0YWJsZQorICogYmFzZWQgb24gdGhlIHByZWRlZmluZWQgTG9jYWxDb25mbGljdFNj aGVtYS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZv aWQpCit7CisJVHVwbGVEZXNjICAgdHVwZGVzYzsKKworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0 ZVR1cGxlRGVzYyhNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSUyk7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IE1BWF9MT0NBTF9DT05GTElDVF9JTkZPX0FUVFJTOyBpKyspCisJCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKGkgKyAxKSwKKwkJCQkJCSAgIExvY2Fs Q29uZmxpY3RTY2hlbWFbaV0uYXR0bmFtZSwKKwkJCQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFb aV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7CisKKwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNj KTsKKworCXJldHVybiB0dXBkZXNjOworfQorCisvKgorICogQnVpbGRzIHRoZSBsb2NhbCBjb25m bGljdHMgSlNPTkIgYXJyYXkgY29sdW1uIGZyb20gdGhlIGxpc3Qgb2YKKyAqIENvbmZsaWN0VHVw bGVJbmZvIG9iamVjdHMuCisgKgorICogRXhhbXBsZSBvdXRwdXQgc3RydWN0dXJlOgorICogWyB7 ICJ4aWQiOiAiMTAwMSIsICJjb21taXRfdHMiOiAiLi4uIiwgIm9yaWdpbiI6ICIuLi4iLCAidHVw bGUiOiB7Li4ufSB9LCAuLi4gXQorICovCitzdGF0aWMgRGF0dW0KK2J1aWxkX2xvY2FsX2NvbmZs aWN0c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCSBD b25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJIExpc3QgKmNvbmZsaWN0dHVwbGVz KQoreworCUxpc3RDZWxsICAgKmxjOworCUxpc3QJICAgKmpzb25fZGF0dW1zID0gTklMOyAvKiBM aXN0IHRvIGhvbGQgdGhlIHJvd190b19qc29uIHJlc3VsdHMgKHR5cGUganNvbikgKi8KKwlEYXR1 bQkgICAqanNvbl9kYXR1bV9hcnJheTsKKwlib29sCSAgICpqc29uX251bGxfYXJyYXk7CisJRGF0 dW0JCWpzb25fYXJyYXlfZGF0dW07CisJaW50CQkJbnVtX2NvbmZsaWN0czsKKwlpbnQJCQlpOwor CWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisJY2hhcgkJdHlwYWxpZ247CisJVHVw bGVEZXNjCXR1cGRlc2M7CisKKwkvKiBCdWlsZCBsb2NhbCBjb25mbGljdHMgdHVwbGUgZGVzY3Jp cHRvci4gKi8KKwl0dXBkZXNjID0gYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKCk7CisKKwkvKiBQ cm9jZXNzIGxvY2FsIGNvbmZsaWN0IHR1cGxlIGxpc3QgYW5kIHByZXBhcmUgYW4gYXJyYXkgb2Yg SlNPTi4gKi8KKwlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwg Y29uZmxpY3R0dXBsZXMpCiAJewotCQl0YWJsZXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShsb2Nh bHJlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7Ci0JCXRhYmxlc2xvdCA9IEV4ZWNDb3B5U2xv dCh0YWJsZXNsb3QsIHNsb3QpOworCQlEYXR1bQkJdmFsdWVzW01BWF9MT0NBTF9DT05GTElDVF9J TkZPX0FUVFJTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9f QVRUUlNdID0gezB9OworCQljaGFyCSAgICpvcmlnaW5fbmFtZSA9IE5VTEw7CisJCUhlYXBUdXBs ZQl0dXBsZTsKKwkJRGF0dW0JCWpzb25fZGF0dW07CisJCWludAkJCWF0dG5vOworCisJCWF0dG5v ID0gMDsKKwkJdmFsdWVzW2F0dG5vKytdID0gVHJhbnNhY3Rpb25JZEdldERhdHVtKGNvbmZsaWN0 dHVwbGUtPnhtaW4pOworCisJCWlmIChjb25mbGljdHR1cGxlLT50cykKKwkJCXZhbHVlc1thdHRu bysrXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+dHMpOworCQllbHNlCisJ CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJaWYgKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiAh PSBJbnZhbGlkUmVwT3JpZ2luSWQpCisJCQlyZXBsb3JpZ2luX2J5X29pZChjb25mbGljdHR1cGxl LT5vcmlnaW4sIHRydWUsICZvcmlnaW5fbmFtZSk7CisKKwkJLyogU3RvcmUgZW1wdHkgc3RyaW5n IGlmIG9yaWdpbiBuYW1lIGZvciB0aGUgdHVwbGUgaXMgTlVMTC4gKi8KKwkJaWYgKG9yaWdpbl9u YW1lICE9IE5VTEwpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG9y aWdpbl9uYW1lKTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJCS8qCisJ CSAqIEFkZCB0aGUgY29uZmxpY3Rpbmcga2V5IHZhbHVlcyBpbiB0aGUgY2FzZSBvZiBhIHVuaXF1 ZSBjb25zdHJhaW50CisJCSAqIHZpb2xhdGlvbi4KKwkJICovCisJCWlmIChjb25mbGljdF90eXBl ID09IENUX0lOU0VSVF9FWElTVFMgfHwKKwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfVVBEQVRFX0VY SVNUUyB8fAorCQkJY29uZmxpY3RfdHlwZSA9PSBDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RT KQorCQl7CisJCQlPaWQJaW5kZXhvaWQgPSBjb25mbGljdHR1cGxlLT5pbmRleG9pZDsKKworCQkJ QXNzZXJ0KE9pZElzVmFsaWQoaW5kZXhvaWQpICYmIGNvbmZsaWN0dHVwbGUtPnNsb3QgJiYKKwkJ CQkgICBDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9j aywKKwkJCQkJCQkJCQkJICB0cnVlKSk7CisJCQl2YWx1ZXNbYXR0bm8rK10gPQorCQkJCQl0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJ ICBpbmRleG9pZCwKKwkJCQkJCQkJCQkJCQkgIGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQl9CisJ CWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCQkvKiBDb252ZXJ0IGNvbmZsaWN0 aW5nIHR1cGxlIHRvIEpTT04gZGF0dW0uICovCisJCWlmIChjb25mbGljdHR1cGxlLT5zbG90KQor CQkJdmFsdWVzW2F0dG5vXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShjb25mbGlj dHR1cGxlLT5zbG90KTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm9dID0gdHJ1ZTsKKworCQlBc3Nl cnQoYXR0bm8gKyAxID09IE1BWF9MT0NBTF9DT05GTElDVF9JTkZPX0FUVFJTKTsKKworCQl0dXBs ZSA9IGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKTsKKworCQlqc29uX2Rh dHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCB0dXBkZXNjKTsKKworCQkvKgor CQkgKiBCdWlsZCB0aGUgaGlnaGVyIGxldmVsIEpTT04gZGF0dW0gaW4gZm9ybWF0IGRlc2NyaWJl ZCBpbiBmdW5jdGlvbgorCQkgKiBoZWFkZXIuCisJCSAqLworCQlqc29uX2RhdHVtID0gRGlyZWN0 RnVuY3Rpb25DYWxsMShyb3dfdG9fanNvbiwganNvbl9kYXR1bSk7CisKKwkJLyogRG9uZSB3aXRo IHRoZSB0ZW1wb3JhcnkgdHVwbGUuICovCisJCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKworCQkv KiBBZGQgdG8gdGhlIGFycmF5IGVsZW1lbnQuICovCisJCWpzb25fZGF0dW1zID0gbGFwcGVuZChq c29uX2RhdHVtcywgKHZvaWQgKikganNvbl9kYXR1bSk7CiAJfQogCi0JLyoKLQkgKiBJbml0aWFs aXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwgdXNlIGluIEZvcm1JbmRleERhdHVtIHdo ZW4KLQkgKiBpbmRleCBleHByZXNzaW9ucyBhcmUgcHJlc2VudC4KLQkgKi8KLQlHZXRQZXJUdXBs ZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxlID0gdGFibGVzbG90OworCW51bV9j b25mbGljdHMgPSBsaXN0X2xlbmd0aChqc29uX2RhdHVtcyk7CiAKLQkvKgotCSAqIFRoZSB2YWx1 ZXMvbnVsbHMgYXJyYXlzIHBhc3NlZCB0byBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbiBzaG91 bGQgYmUKLQkgKiB0aGUgcmVzdWx0cyBvZiBGb3JtSW5kZXhEYXR1bSwgd2hpY2ggYXJlIHRoZSAi cmF3IiBpbnB1dCB0byB0aGUgaW5kZXgKLQkgKiBBTS4KLQkgKi8KLQlGb3JtSW5kZXhEYXR1bShC dWlsZEluZGV4SW5mbyhpbmRleERlc2MpLCB0YWJsZXNsb3QsIGVzdGF0ZSwgdmFsdWVzLCBpc251 bGwpOworCWpzb25fZGF0dW1fYXJyYXkgPSAoRGF0dW0gKikgcGFsbG9jX2FycmF5KERhdHVtLCBu dW1fY29uZmxpY3RzKTsKKwlqc29uX251bGxfYXJyYXkgPSAoYm9vbCAqKSBwYWxsb2MwX2FycmF5 KGJvb2wsIG51bV9jb25mbGljdHMpOwogCi0JaW5kZXhfdmFsdWUgPSBCdWlsZEluZGV4VmFsdWVE ZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKwlpID0gMDsKKwlmb3JlYWNo KGxjLCBqc29uX2RhdHVtcykKKwl7CisJCWpzb25fZGF0dW1fYXJyYXlbaV0gPSAoRGF0dW0pIGxm aXJzdChsYyk7CisJCWkrKzsKKwl9CiAKLQlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7 CisJLyogQ29uc3RydWN0IHRoZSBqc29uW10gYXJyYXkgRGF0dW0uICovCisJZ2V0X3R5cGxlbmJ5 dmFsYWxpZ24oSlNPTk9JRCwgJnR5cGxlbiwgJnR5cGJ5dmFsLCAmdHlwYWxpZ24pOworCWpzb25f YXJyYXlfZGF0dW0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5KGpzb25fZGF0dW1f YXJyYXksCisJCQkJCQkJCQkJCQkJICAgbnVtX2NvbmZsaWN0cywKKwkJCQkJCQkJCQkJCQkgICBK U09OT0lELAorCQkJCQkJCQkJCQkJCSAgIHR5cGxlbiwKKwkJCQkJCQkJCQkJCQkgICB0eXBieXZh bCwKKwkJCQkJCQkJCQkJCQkgICB0eXBhbGlnbikpOworCXBmcmVlKGpzb25fZGF0dW1fYXJyYXkp OworCXBmcmVlKGpzb25fbnVsbF9hcnJheSk7CisKKwlyZXR1cm4ganNvbl9hcnJheV9kYXR1bTsK K30KIAotCXJldHVybiBpbmRleF92YWx1ZTsKKy8qCisgKiBwcmVwYXJlX2NvbmZsaWN0X2xvZ190 dXBsZQorICoKKyAqIFRoaXMgcm91dGluZSBwcmVwYXJlcyBhIHR1cGxlIGRldGFpbGluZyBhIGNv bmZsaWN0IGVuY291bnRlcmVkIGR1cmluZworICogbG9naWNhbCByZXBsaWNhdGlvbi4gVGhlIHBy ZXBhcmVkIHR1cGxlIHdpbGwgYmUgc3RvcmVkIGluCisgKiBNeUxvZ2ljYWxSZXBXb3JrZXItPmNv bmZsaWN0X2xvZ190dXBsZSB3aGljaCBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byB0aGUKKyAqIGNv bmZsaWN0IGxvZyB0YWJsZSBieSBjYWxsaW5nIEluc2VydENvbmZsaWN0TG9nVHVwbGUuCisgKi8K K3N0YXRpYyB2b2lkCitwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShFU3RhdGUgKmVzdGF0ZSwg UmVsYXRpb24gcmVsLAorCQkJCQkJICAgUmVsYXRpb24gY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkg ICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpz ZWFyY2hzbG90LAorCQkJCQkJICAgTGlzdCAqY29uZmxpY3R0dXBsZXMsCisJCQkJCQkgICBUdXBs ZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCkKK3sKKwlEYXR1bQkJdmFsdWVzW01BWF9DT05GTElDVF9B VFRSX05VTV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTUFYX0NPTkZMSUNUX0FUVFJfTlVNXSA9IHsw fTsKKwlpbnQJCQlhdHRubzsKKwljaGFyCSAgICpyZW1vdGVfb3JpZ2luID0gTlVMTDsKKwlNZW1v cnlDb250ZXh0CW9sZGN0eDsKKworCUFzc2VydChNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0 X2xvZ190dXBsZSA9PSBOVUxMKTsKKworCS8qIFBvcHVsYXRlIHRoZSB2YWx1ZXMgYW5kIG51bGxz IGFycmF5cy4gKi8KKwlhdHRubyA9IDA7CisJdmFsdWVzW2F0dG5vKytdID0gT2JqZWN0SWRHZXRE YXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCisJdmFsdWVzW2F0dG5vKytdID0KKwkJCUNT dHJpbmdHZXRUZXh0RGF0dW0oZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNl KHJlbCkpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0 VGV4dERhdHVtKENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5cGVdKTsKKworCWlmIChUcmFu c2FjdGlvbklkSXNWYWxpZChyZW1vdGVfeGlkKSkKKwkJdmFsdWVzW2F0dG5vKytdID0gVHJhbnNh Y3Rpb25JZEdldERhdHVtKHJlbW90ZV94aWQpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0 cnVlOworCisJdmFsdWVzW2F0dG5vKytdID0gTFNOR2V0RGF0dW0ocmVtb3RlX2ZpbmFsX2xzbik7 CisKKwlpZiAocmVtb3RlX2NvbW1pdF90cyA+IDApCisJCXZhbHVlc1thdHRubysrXSA9IFRpbWVz dGFtcFR6R2V0RGF0dW0ocmVtb3RlX2NvbW1pdF90cyk7CisJZWxzZQorCQludWxsc1thdHRubysr XSA9IHRydWU7CisKKwlpZiAocmVwbG9yaWdpbl9zZXNzaW9uX29yaWdpbiAhPSBJbnZhbGlkUmVw T3JpZ2luSWQpCisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmlnaW5fc2Vzc2lvbl9vcmlnaW4s IHRydWUsICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVfb3JpZ2luICE9IE5VTEwpCisJ CXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVtb3RlX29yaWdpbik7CisJ ZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAoIVR1cElzTnVsbChzZWFyY2hz bG90KSkKKwl7CisJCU9pZAkJcmVwbGljYV9pbmRleCA9IEdldFJlbGF0aW9uSWRlbnRpdHlPclBL KHJlbCk7CisKKwkJLyoKKwkJICogSWYgdGhlIHRhYmxlIGhhcyBhIHZhbGlkIHJlcGxpY2EgaWRl bnRpdHkgaW5kZXgsIGJ1aWxkIHRoZSBpbmRleAorCQkgKiBqc29uIGRhdHVtIGZyb20ga2V5IHZh bHVlLiBPdGhlcndpc2UsIGNvbnN0cnVjdCBpdCBmcm9tIHRoZSBjb21wbGV0ZQorCQkgKiB0dXBs ZSBpbiBSRVBMSUNBIElERU5USVRZIEZVTEwgY2FzZXMuCisJCSAqLworCQlpZiAoT2lkSXNWYWxp ZChyZXBsaWNhX2luZGV4KSkKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3Rf dG9faW5kZXh0dXBfanNvbihlc3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkJCQlyZXBsaWNhX2lu ZGV4LAorCQkJCQkJCQkJCQkJCQkJCXNlYXJjaHNsb3QpOworCQllbHNlCisJCQl2YWx1ZXNbYXR0 bm8rK10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oc2VhcmNoc2xvdCk7CisJfQor CWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051bGwocmVtb3Rl c2xvdCkpCisJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1 bShyZW1vdGVzbG90KTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCXZhbHVl c1thdHRub10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShlc3RhdGUsIHJlbCwK KwkJCQkJCQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3R0dXBs ZXMpOworCisJQXNzZXJ0KGF0dG5vICsgMSA9PSBNQVhfQ09ORkxJQ1RfQVRUUl9OVU0pOworCisJ b2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CisJTXlMb2dpY2Fs UmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPQorCQloZWFwX2Zvcm1fdHVwbGUoUmVsYXRp b25HZXREZXNjcihjb25mbGljdGxvZ3JlbCksIHZhbHVlcywgbnVsbHMpOworCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s YXVuY2hlci5jCmluZGV4IDNlZDg2NDgwYmUyLi4yZGRhNWE0NDIxOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwpAQCAtNDc3LDYgKzQ3Nyw3IEBAIHJldHJ5 OgogCXdvcmtlci0+b2xkZXN0X25vbnJlbW92YWJsZV94aWQgPSByZXRhaW5fZGVhZF90dXBsZXMK IAkJPyBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluCiAJCTogSW52YWxpZFRyYW5zYWN0aW9u SWQ7CisJd29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOwogCXdvcmtlci0+bGFzdF9s c24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3Rf c2VuZF90aW1lKTsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3RfcmVjdl90aW1lKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGFkMjgxZTcwNjli Li5kNGJlMTEyMjYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j CkBAIC00ODIsNyArNDgyLDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZh bHNlOwogc3RhdGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7 CiAKIGJvb2wJCWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQ dHIgcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1v dGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94 aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMg PSAwOwogCiAvKiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJh bnNhY3Rpb24gKi8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7 CkBAIC0xMjE5LDYgKzEyMjEsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQog CXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEu ZmluYWxfbHNuKTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsK KwlyZW1vdGVfY29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQg PSBiZWdpbl9kYXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5f ZGF0YS5maW5hbF9sc24pOwogCkBAIC0xNzQ1LDYgKzE3NDksMTAgQEAgYXBwbHlfaGFuZGxlX3N0 cmVhbV9zdGFydChTdHJpbmdJbmZvIHMpCiAJLyogZXh0cmFjdCBYSUQgb2YgdGhlIHRvcC1sZXZl bCB0cmFuc2FjdGlvbiAqLwogCXN0cmVhbV94aWQgPSBsb2dpY2FscmVwX3JlYWRfc3RyZWFtX3N0 YXJ0KHMsICZmaXJzdF9zZWdtZW50KTsKIAorCXJlbW90ZV94aWQgPSBzdHJlYW1feGlkOworCXJl bW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlyZW1vdGVfY29tbWl0X3RzID0g MDsKKwogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoc3RyZWFtX3hpZCkpCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLApAQCAtNTYw OSw2ICs1NjE3LDI3IEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2luX3N0YXJ0cG9zKQog CQkJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fZXJyb3IoTXlTdWJzY3JpcHRpb24tPm9pZCwK IAkJCQkJCQkJCQkJIE15TG9naWNhbFJlcFdvcmtlci0+dHlwZSk7CiAKKwkJCS8qCisJCQkgKiBJ bnNlcnQgYW55IHBlbmRpbmcgY29uZmxpY3QgbG9nIHR1cGxlIHVuZGVyIGEgbmV3IHRyYW5zYWN0 aW9uLgorCQkJICovCisJCQlpZiAoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVw bGUgIT0gTlVMTCkKKwkJCXsKKwkJCQlSZWxhdGlvbgljb25mbGljdGxvZ3JlbDsKKwkJCQlDb25m bGljdExvZ0Rlc3QJZGVzdDsKKworCQkJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCQkJ UHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7CisKKwkJCQkvKiBP cGVuIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQgaW5zZXJ0IHRoZSB0dXBsZS4gKi8KKwkJCQljb25m bGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKKwkJCQlBc3Nl cnQoKGRlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgIT0gMCk7CisJCQkJSW5zZXJ0Q29u ZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisJCQkJdGFibGVfY2xvc2UoY29uZmxpY3Rs b2dyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCQkJUG9wQWN0aXZlU25hcHNob3QoKTsKKwkJ CQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwkJCX0KKwogCQkJUEdfUkVfVEhST1coKTsK IAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0Lmgg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IDI5ZGE2M2RkMTI3Li43 NjgxNGVmNWZkNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3Qu aAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0xNDQsNiArMTQ0 LDggQEAgZXh0ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChFU3RhdGUgKmVzdGF0ZSwgUmVz dWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3Qs CiAJCQkJCQkJCUxpc3QgKmNvbmZsaWN0dHVwbGVzKTsKIGV4dGVybiB2b2lkIEluaXRDb25mbGlj dEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbyk7Ci1leHRlcm4gUmVsYXRpb24gR2V0Q29u ZmxpY3RMb2dUYWJsZUluZm8oQ29uZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCk7CitleHRlcm4gUmVs YXRpb24gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29uZmxpY3RMb2dEZXN0ICpsb2dfZGVz dCk7CitleHRlcm4gdm9pZCBJbnNlcnRDb25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNvbmZsaWN0 bG9ncmVsKTsKK2V4dGVybiBib29sIFZhbGlkYXRlQ29uZmxpY3RMb2dUYWJsZShSZWxhdGlvbiBy ZWwpOwogZXh0ZXJuIHZvaWQgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGlj dGxvZ3JlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dv cmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFs LmgKaW5kZXggYzEyODVmZGQxYmMuLjViZWRmYzU0NTBmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHR5cGVkZWYgc3RydWN0 IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9ub25yZW1vdmFi bGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVwYXJlZCBidXQg bm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1cGxlOworCiAJ LyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBUeiBsYXN0X3Nl bmRfdGltZTsKQEAgLTI1Niw2ICsyNTksMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgSW5p dGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0ICp0YWJsZV9z dGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuOwor ZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJhbnNhY3Rpb25J ZAlyZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9hdHRhY2goaW50 IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29ya2VyX2ZpbmQo TG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3ViaWQsIE9pZCBy ZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMu cGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4IGRkYzc1 ZTIzZmIwLi5kNTQwZTdmY2I2NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxp Y3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkn cG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBVQkxJQ0FU SU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8g ZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg2LDEwICs4NiwzOCBAQCAkbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBcKGNcKT1cKDRcKTsgZXhpc3RpbmcgbG9jYWwgcm93 IFwoNCwgNCwgNFwpOyByZW1vdGUgcm93IFwoMiwgMywgNFwpLi8sCiAJJGxvZ19vZmZzZXQpOwog CitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWIn OyIpOworbXkgJGNvbmZsaWN0X3RhYmxlID0gInBnX2NvbmZsaWN0LnBnX2NvbmZsaWN0XyRzdWJp ZCI7CisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZAorbXkgJGxvZ19jaGVj ayA9ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywK KyAgICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRjb25mbGljdF90YWJsZTsiCispOworCitt eSAkY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKyAgICAiU0VMRUNUIGNvdW50KCopIEZST00gJGNvbmZsaWN0X3RhYmxlIFdIRVJFIGNvbmZs aWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3Rf Y2hlY2ssIDEsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBpbnRv IGludGVybmFsIHRhYmxlJyk7CisKK215ICRqc29uX3F1ZXJ5ID0gcXFbCisgICAgU0VMRUNUIHN0 cmluZ19hZ2coKHVubmVzdGVkLmo6Ompzb24pLT4na2V5Jy0+PidhJywgJywnKQorICAgIEZST00g KAorICAgICAgICBTRUxFQ1QgdW5uZXN0KGxvY2FsX2NvbmZsaWN0cykgQVMgagorICAgICAgICBG Uk9NICRjb25mbGljdF90YWJsZQorICAgICkgQVMgdW5uZXN0ZWQ7CitdOworCitteSAkYWxsX2tl eXMgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkp OworCisjIFZlcmlmeSB0aGF0ICcyJyBpcyBwcmVzZW50IGluIHRoZSByZXN1bHRpbmcgc3RyaW5n CitsaWtlKCRhbGxfa2V5cywgcXIvMi8sICdWZXJpZmllZCB0aGF0IGtleSAyIGV4aXN0cyBpbiB0 aGUgbG9jYWxfY29uZmxpY3RzIGxvZycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIGRldGVjdGVkIGR1cmluZyBpbnNlcnQnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQg cmlkIG9mIHRoZSBlcnJvcgogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJUUlVOQ0FURSBjb25mX3RhYjsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiREVMRVRFIEZST00gJGNvbmZsaWN0X3RhYmxlIik7CiAKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTgsNiArMTQ2LDI5IEBAICRub2RlX3N1 YnNjcmliZXItPndhaXRfZm9yX2xvZygKIC4qS2V5IFwoY1wpPVwoOFwpOyBleGlzdGluZyBsb2Nh bCByb3cgXCg4LCA4LCA4XCk7IHJlbW90ZSByb3cgXCg2LCA3LCA4XCkuLywKIAkkbG9nX29mZnNl dCk7CiAKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZAorJGxvZ19jaGVjayA9 ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAg ICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRjb25mbGljdF90YWJsZTsiCispOworCiskY29u ZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAg ICAiU0VMRUNUIGNvdW50KCopIEZST00gJGNvbmZsaWN0X3RhYmxlIFdIRVJFIGNvbmZsaWN0X3R5 cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3RfY2hlY2ss IDEsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBpbnRvIGludGVy bmFsIHRhYmxlJyk7CisKKyRqc29uX3F1ZXJ5ID0gcXFbCisgICAgU0VMRUNUIHN0cmluZ19hZ2co KHVubmVzdGVkLmo6Ompzb24pLT4na2V5Jy0+PidhJywgJywnKQorICAgIEZST00gKAorICAgICAg ICBTRUxFQ1QgdW5uZXN0KGxvY2FsX2NvbmZsaWN0cykgQVMgagorICAgICAgICBGUk9NICRjb25m bGljdF90YWJsZQorICAgICkgQVMgdW5uZXN0ZWQ7CitdOworCiskYWxsX2tleXMgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlm eSB0aGF0ICc2JyBpcyBwcmVzZW50IGluIHRoZSByZXN1bHRpbmcgc3RyaW5nCitsaWtlKCRhbGxf a2V5cywgcXIvNi8sICdWZXJpZmllZCB0aGF0IGtleSA2IGV4aXN0cyBpbiB0aGUgbG9jYWxfY29u ZmxpY3RzIGxvZycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGRldGVjdGVk IGR1cmluZyB1cGRhdGUnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlkIG9mIHRoZSBl cnJvcgotLSAKMi40OS4wCgo= --0000000000009fca5d0648087041 Content-Type: application/octet-stream; name="v20-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v20-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk8bftjb0 RnJvbSA0ZDM4ZDVkMWY1YmU5MzdmMTIwZjkxNGUwZTVhOWZkY2FhOWY2NjM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDI0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjQwICsrKysrKysrKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgICAgIHwgIDIxICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxv Zy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFj ZS5kYXQgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aCAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCAg ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oICAgICAgICAgfCAg NTcgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCA0MDcg KysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24u c3FsICAgICAgfCAxODkgKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgIHwgICAyICsKIDE2IGZpbGVzIGNoYW5nZWQsIDkwNiBpbnNlcnRpb25zKCsp LCAxMDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRh bG9nLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4u ZDQzOGRjNjgyZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw4IEBAIGJvb2wK IElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8q IElzQ2F0YWxvZ1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0 ICovCi0JcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNz KHJlbHR1cGxlKSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNU b2FzdENsYXNzKHJlbHR1cGxlKQorCQkJfHwgSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSk7CiB9 CiAKIC8qCkBAIC0yMzAsNiArMjMxLDE4IEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJl bHR1cGxlKQogCXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8q CisgKiBJc0NvbmZsaWN0Q2xhc3MgLSBDaGVjayBpZiB0aGUgZ2l2ZW4gcGdfY2xhc3MgdHVwbGUg YmVsb25ncyB0byB0aGUgY29uZmxpY3QKKyAqCQkJCQkgbmFtZXNwYWNlLgorICovCitib29sCitJ c0NvbmZsaWN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKK3sKKwlPaWQJCQlyZWxuYW1l c3BhY2UgPSByZWx0dXBsZS0+cmVsbmFtZXNwYWNlOworCisJcmV0dXJuIElzQ29uZmxpY3ROYW1l c3BhY2UocmVsbmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJ CVRydWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI3NywxOCBAQCBJ c1RvYXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2Uo bmFtZXNwYWNlSWQpOwogfQogCisvKgorICogSXNDb25mbGljdE5hbWVzcGFjZQorICoJCVRydWUg aWZmIG5hbWVzcGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9ybSBh bnkgY2F0YWxvZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdE5hbWVzcGFjZShPaWQg bmFtZXNwYWNlSWQpCit7CisJcmV0dXJuIG5hbWVzcGFjZUlkID09IFBHX0NPTkZMSUNUX05BTUVT UEFDRTsKK30KKwogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNjA2 NDM0ODIzY2YuLjEwZGFkZjM3OGE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hl YXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzE0LDcgKzMxNCw4IEBA IGhlYXBfY3JlYXRlKGNvbnN0IGNoYXIgKnJlbG5hbWUsCiAJICovCiAJaWYgKCFhbGxvd19zeXN0 ZW1fdGFibGVfbW9kcyAmJgogCQkoKElzQ2F0YWxvZ05hbWVzcGFjZShyZWxuYW1lc3BhY2UpICYm IHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWCkgfHwKLQkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFt ZXNwYWNlKSkgJiYKKwkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSB8fAorCQkgSXND b25mbGljdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKSAmJgogCQlJc05vcm1hbFByb2Nlc3NpbmdN b2RlKCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lF TlRfUFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGMzYjc5YTJiYTQ4Li40 MDAyOTJmZDA2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNTIzLDcgKzM1MjMsNyBA QCBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKQogICoKICAqIFdl IGNvbXBsYWluIGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9y YXJ5IHNjaGVtYQogICogKG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIg dGhlIG9sZCBvciBuZXcgbmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFRP QVNUIHNjaGVtYSBvciB0aGUgQ09ORkxJQ1Qgc2NoZW1hLgogICovCiB2b2lkCiBDaGVja1NldE5h bWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQpAQCAtMzUzOSw2ICszNTM5LDEyIEBA IENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CSBlcnJtc2coImNhbm5vdCBtb3ZlIG9iamVjdHMgaW50byBvciBvdXQgb2YgVE9BU1Qgc2NoZW1h IikpKTsKKworCS8qIHNpbWlsYXJseSBmb3IgQ09ORkxJQ1Qgc2NoZW1hICovCisJaWYgKG5zcE9p ZCA9PSBQR19DT05GTElDVF9OQU1FU1BBQ0UgfHwgb2xkTnNwT2lkID09IFBHX0NPTkZMSUNUX05B TUVTUEFDRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9y IG91dCBvZiBDT05GTElDVCBzY2hlbWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jCmluZGV4IDlhNDc5MWM1NzNlLi4yZGMyM2JmZjUxOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfcHVibGljYXRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJ1dGls cy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC04NSw2ICs4NiwxNSBA QCBjaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oUmVsYXRpb24gdGFyZ2V0cmVsKQogCQkJ CSBlcnJtc2coImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKIAkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJkZXRhaWwo IlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxlcy4iKSkp OworCisJLyogQ2FuJ3QgYmUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJaWYgKElzQ29uZmxpY3RO YW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ IGVycm1zZygiY2Fubm90IGFkZCByZWxhdGlvbiBcIiVzLiVzXCIgdG8gcHVibGljYXRpb24iLAor CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHRhcmdldHJlbCkp LAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIGVycmRl dGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRh Ymxlcy4iKSkpOwogfQogCiAvKgpAQCAtOTUsNyArMTA1LDggQEAgc3RhdGljIHZvaWQKIGNoZWNr X3B1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHNjaGVtYWlkKQogewogCS8qIENhbid0IGJlIHN5 c3RlbSBuYW1lc3BhY2UgKi8KLQlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJ c1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSkKKwlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVt YWlkKSB8fCBJc1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSB8fAorCQlJc0NvbmZsaWN0TmFtZXNw YWNlKHNjaGVtYWlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHNjaGVtYSBc IiVzXCIgdG8gcHVibGljYXRpb24iLApAQCAtMTM5LDEyICsxNTAsMjAgQEAgaXNfcHVibGlzaGFi bGVfY2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUt PnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJl bGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJl bGlkKSAmJgorCQkhSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSAmJgogCQlyZWx0dXBsZS0+cmVs cGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UICYmCiAJCXJlbGlkID49IEZp cnN0Tm9ybWFsT2JqZWN0SWQ7CiB9CiAKIC8qCiAgKiBBbm90aGVyIHZhcmlhbnQgb2YgaXNfcHVi bGlzaGFibGVfY2xhc3MoKSwgdGFraW5nIGEgUmVsYXRpb24uCisgKgorICogTm90ZTogQ29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlLiAgSG93ZXZlciwgd2UgaW50ZW50aW9u YWxseQorICogc2tpcCB0aGlzIGNoZWNrIGhlcmUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIGNh bGxlZCBmb3IgZXZlcnkgY2hhbmdlIGFuZAorICogcGVyZm9ybWluZyB0aGlzIGNoZWNrIGR1cmlu ZyBldmVyeSBjaGFuZ2UgcHVibGljYXRpb24gaXMgY29zdGx5LiAgVG8gZW5zdXJlCisgKiB1bnB1 Ymxpc2hhYmxlIGVudHJpZXMgYXJlIGlnbm9yZWQgd2l0aG91dCBpbmN1cnJpbmcgcGVyZm9ybWFu Y2Ugb3ZlcmhlYWQsCisgKiB0dXBsZXMgaW5zZXJ0ZWQgaW50byB0aGUgY29uZmxpY3QgbG9nIHRh YmxlIHVzZXMgdGhlIEhFQVBfSU5TRVJUX05PX0xPR0lDQUwKKyAqIGZsYWcuICBUaGlzIGFsbG93 cyB0aGUgZGVjb2RpbmcgbGF5ZXIgdG8gYnlwYXNzIHRoZXNlIGVudHJpZXMgYXV0b21hdGljYWxs eS4KICAqLwogYm9vbAogaXNfcHVibGlzaGFibGVfcmVsYXRpb24oUmVsYXRpb24gcmVsKQpAQCAt MTY5LDYgKzE4OCw4IEBAIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKFBHX0ZVTkNUSU9OX0FS R1MpCiAJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUkVMT0lELCBPYmplY3RJZEdldERhdHVtKHJl bGlkKSk7CiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKIAkJUEdfUkVUVVJOX05VTEwo KTsKKworCS8qIFN1YnNjcmlwdGlvbiBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBub3QgcHVibGlz aGVkICovCiAJcmVzdWx0ID0gaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIChGb3JtX3BnX2Ns YXNzKSBHRVRTVFJVQ1QodHVwbGUpKTsKIAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwogCVBHX1JF VFVSTl9CT09MKHJlc3VsdCk7CkBAIC04OTAsNiArOTExLDcgQEAgR2V0QWxsUHVibGljYXRpb25S ZWxhdGlvbnMoY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCUZvcm1fcGdfY2xhc3Mg cmVsRm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpOwogCQlPaWQJCQlyZWxp ZCA9IHJlbEZvcm0tPm9pZDsKIAorCQkvKiBTdWJzY3JpcHRpb24gY29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgbm90IHB1Ymxpc2hlZCAqLwogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQs IHJlbEZvcm0pICYmCiAJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3Qp KQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uYwppbmRleCAyYjEwMzI0NTI5MC4uMjg1YTU5ODQ5N2QgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtMTA2LDYgKzEwNiw3IEBAIEdldFN1 YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlzdWItPnJldGFpbmRlYWR0 dXBsZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFkdHVwbGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9u ID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3Vi Zm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1Yi0+Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZv cm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAkvKiBHZXQgY29ubmluZm8gKi8KIAlkYXR1bSA9 IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBUSU9OT0lELApAQCAtMTQxLDYgKzE0Miwx MiBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJ CSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbik7CiAJc3ViLT5vcmlnaW4gPSBUZXh0 RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAorCS8qIEdldCBjb25mbGljdCBsb2cgZGVzdGluYXRp b24gKi8KKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBUSU9OT0lELAor CQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZs aWN0bG9nZGVzdCk7CisJc3ViLT5jb25mbGljdGxvZ2Rlc3QgPSBUZXh0RGF0dW1HZXRDU3RyaW5n KGRhdHVtKTsKKwogCS8qIElzIHRoZSBzdWJzY3JpcHRpb24gb3duZXIgYSBzdXBlcnVzZXI/ICov CiAJc3ViLT5vd25lcnN1cGVydXNlciA9IHN1cGVydXNlcl9hcmcoc3ViLT5vd25lcik7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCBkNjY3NGYyMGZjMi4uZjQ2 NDYwNmJhOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTE1 LDI1ICsxNSwzMSBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3Mv Y29tbWl0X3RzLmgiCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgogI2luY2x1ZGUgImFjY2Vz cy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJh Y2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNh dGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNz LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hbV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIK KyNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgor I2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJu b2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKQEAgLTUxLDYgKzU3LDcgQEAK ICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5o IgogI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0aWxzL3JlZ3Byb2MuaCIK ICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAvKgpAQCAtNzUsNiArODIsNyBAQAogI2Rl ZmluZSBTVUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElPTgkweDAwMDA4MDAwCiAjZGVmaW5lIFNV Qk9QVF9MU04JCQkJCTB4MDAwMTAwMDAKICNkZWZpbmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDIw MDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVAkweDAwMDQwMDAwCiAKIC8qIGNo ZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJp dHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC0xMDMsNiArMTExLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFpbmRlYWR0dXBsZXM7CiAJaW50MzIJCW1h eHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJQ29uZmxpY3RMb2dEZXN0IGxvZ2Rlc3Q7 CiAJWExvZ1JlY1B0cglsc247CiB9IFN1Yk9wdHM7CiAKQEAgLTEzNSw3ICsxNDQsNyBAQCBzdGF0 aWMgTGlzdCAqbWVyZ2VfcHVibGljYXRpb25zKExpc3QgKm9sZHB1Ymxpc3QsIExpc3QgKm5ld3B1 Ymxpc3QsIGJvb2wgYWRkcHViLAogc3RhdGljIHZvaWQgUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJv cihMaXN0ICpyc3RhdGVzLCBPaWQgc3ViaWQsIGNoYXIgKnNsb3RuYW1lLCBjaGFyICplcnIpOwog c3RhdGljIHZvaWQgQ2hlY2tBbHRlclN1Yk9wdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgY29uc3Qg Y2hhciAqb3B0aW9uLAogCQkJCQkJCQlib29sIHNsb3RfbmVlZHNfdXBkYXRlLCBib29sIGlzVG9w TGV2ZWwpOwotCitzdGF0aWMgT2lkIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1Ymlk LCBjaGFyICpzdWJuYW1lKTsKIAogLyoKICAqIENvbW1vbiBvcHRpb24gcGFyc2luZyBmdW5jdGlv biBmb3IgQ1JFQVRFIGFuZCBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZHMuCkBAIC0xOTEsNiAr MjAwLDggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICpzdG10X29wdGlvbnMsCiAJCW9wdHMtPm1heHJldGVudGlvbiA9IDA7CiAJaWYgKElzU2V0 KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfT1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1 cChMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VC T1BUX0NPTkZMSUNUX0xPR19ERVNUKSkKKwkJb3B0cy0+bG9nZGVzdCA9IENPTkZMSUNUX0xPR19E RVNUX0xPRzsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlv bnMpCkBAIC00MDIsNiArNDEzLDE4IEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAogCQkJb3B0cy0+c3BlY2lmaWVkX29w dHMgfD0gU1VCT1BUX0xTTjsKIAkJCW9wdHMtPmxzbiA9IGxzbjsKIAkJfQorCQllbHNlIGlmIChJ c1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSAmJgorCQkJCSBz dHJjbXAoZGVmZWwtPmRlZm5hbWUsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iKSA9PSAwKQor CQl7CisJCQljaGFyICp2YWw7CisKKwkJCWlmIChJc1NldChvcHRzLT5zcGVjaWZpZWRfb3B0cywg U1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSkKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShk ZWZlbCwgcHN0YXRlKTsKKworCQkJdmFsID0gZGVmR2V0U3RyaW5nKGRlZmVsKTsKKwkJCW9wdHMt PmxvZ2Rlc3QgPSBHZXRMb2dEZXN0aW5hdGlvbih2YWwpOworCQkJb3B0cy0+c3BlY2lmaWVkX29w dHMgfD0gU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUOworCQl9CiAJCWVsc2UKIAkJCWVyZXBvcnQo RVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTU5OSw2ICs2 MjIsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCWJpdHMzMgkJc3VwcG9ydGVkX29wdHM7CiAJU3ViT3B0cwkJ b3B0cyA9IHswfTsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCWxvZ3JlbGlkID0gSW52 YWxpZE9pZDsKIAogCS8qCiAJICogUGFyc2UgYW5kIGNoZWNrIG9wdGlvbnMuCkBAIC02MTIsNyAr NjM2LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJICBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfCBTVUJP UFRfUEFTU1dPUkRfUkVRVUlSRUQgfAogCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJP UFRfRkFJTE9WRVIgfAogCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAotCQkJCQkg IFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAg U1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBT VUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBz dGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC03 NDcsNiArNzcyLDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1Ym9yaWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CiAK KwkvKiBBbHdheXMgc2V0IHRoZSBkZXN0aW5hdGlvbiwgZGVmYXVsdCB3aWxsIGJlICdsb2cnLiAq LworCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9 CisJCUNTdHJpbmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5sb2dkZXN0 XSk7CisKKwkvKiBJZiBsb2dnaW5nIHRvIGEgdGFibGUgaXMgcmVxdWlyZWQsIHBoeXNpY2FsbHkg Y3JlYXRlIHRoZSB0YWJsZS4gKi8KKwlpZiAoSXNTZXQob3B0cy5sb2dkZXN0LCBDT05GTElDVF9M T0dfREVTVF9UQUJMRSkpCisJCWxvZ3JlbGlkID0gY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShz dWJpZCwgc3RtdC0+c3VibmFtZSk7CisKKwkvKiBTdG9yZSB0YWJsZSBPSUQgaW4gdGhlIGNhdGFs b2cuICovCisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQg LSAxXSA9CisJCQkJCQlPYmplY3RJZEdldERhdHVtKGxvZ3JlbGlkKTsKKwogCXR1cCA9IGhlYXBf Zm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwogCiAJLyog SW5zZXJ0IHR1cGxlIGludG8gY2F0YWxvZy4gKi8KQEAgLTE0MTAsNyArMTQ0Nyw4IEBAIEFsdGVy U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAog CQkJCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAogCQkJCQkJCQkgIFNVQk9QVF9N QVhfUkVURU5USU9OX0RVUkFUSU9OIHwKLQkJCQkJCQkJICBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJ CQkJICBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJCQkJICBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1Qp OwogCiAJCQkJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25z LAogCQkJCQkJCQkJCSAgIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CkBAIC0xNjY1LDYgKzE3MDMs NjMgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlw dGlvblN0bXQgKnN0bXQsCiAJCQkJCW9yaWdpbiA9IG9wdHMub3JpZ2luOwogCQkJCX0KIAorCQkJ CWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1Qp KQorCQkJCXsKKwkJCQkJQ29uZmxpY3RMb2dEZXN0IG9sZF9kZXN0ID0KKwkJCQkJCQlHZXRMb2dE ZXN0aW5hdGlvbihzdWItPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkJCQkJaWYgKG9wdHMubG9nZGVz dCAhPSBvbGRfZGVzdCkKKwkJCQkJeworCQkJCQkJYm9vbCB3YW50X3RhYmxlID0KKwkJCQkJCQkJ SXNTZXQob3B0cy5sb2dkZXN0LCBDT05GTElDVF9MT0dfREVTVF9UQUJMRSk7CisJCQkJCQlib29s IGhhc19vbGR0YWJsZSA9CisJCQkJCQkJCUlzU2V0KG9sZF9kZXN0LCBDT05GTElDVF9MT0dfREVT VF9UQUJMRSk7CisKKwkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGlj dGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0cmluZ0dldFRleHREYXR1bShDb25mbGljdExvZ0Rl c3ROYW1lc1tvcHRzLmxvZ2Rlc3RdKTsKKwkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCAtIDFdID0gdHJ1ZTsKKworCQkJCQkJaWYgKHdhbnRfdGFi bGUgJiYgIWhhc19vbGR0YWJsZSkKKwkJCQkJCXsKKwkJCQkJCQlPaWQJCXJlbGlkOworCisJCQkJ CQkJcmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1YmlkLCBzdWItPm5hbWUpOwor CisJCQkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQg LSAxXSA9CisJCQkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCQkJCQkJCXJl cGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJ CQkJCQkJCQkJCQkJCXRydWU7CisJCQkJCQl9CisJCQkJCQllbHNlIGlmICghd2FudF90YWJsZSAm JiBoYXNfb2xkdGFibGUpCisJCQkJCQl7CisJCQkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisK KwkJCQkJCQkvKgorCQkJCQkJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHJlY29yZGVkIGFz IGludGVybmFsCisJCQkJCQkJICogZGVwZW5kZW5jaWVzIG9mIHRoZSBzdWJzY3JpcHRpb24uICBE cm9wIHRoZQorCQkJCQkJCSAqIHRhYmxlIGlmIGl0IGlzIG5vdCByZXF1aXJlZCBhbnltb3JlIHRv IGF2b2lkCisJCQkJCQkJICogc3RhbGUgb3Igb3JwaGFuZWQgcmVsYXRpb25zLgorCQkJCQkJCSAq CisJCQkJCQkJICogWFhYOiBBdCBwcmVzZW50LCBvbmx5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJl CisJCQkJCQkJICogbWFuYWdlZCB0aGlzIHdheS4gIEluIGZ1dHVyZSBpZiB3ZSBpbnRyb2R1Y2UK KwkJCQkJCQkgKiBhZGRpdGlvbmFsIGludGVybmFsIGRlcGVuZGVuY2llcywgd2UgbWF5IG5lZWQK KwkJCQkJCQkgKiBhIHRhcmdldGVkIGRlbGV0aW9uIHRvIGF2b2lkIGRlbGV0aW9uIG9mIGFueQor CQkJCQkJCSAqIG90aGVyIG9iamVjdHMuCisJCQkJCQkJICovCisJCQkJCQkJT2JqZWN0QWRkcmVz c1NldChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsCisJCQkJCQkJCQkJCSBzdWJpZCk7 CisJCQkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJ CQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJCQkJCQkJCVBFUkZPUk1fREVMRVRJ T05fU0tJUF9PUklHSU5BTCk7CisKKwkJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0o SW52YWxpZE9pZCk7CisJCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29u ZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCXRydWU7CisJCQkJCQl9CisJCQkJCX0K KwkJCQl9CisKIAkJCQl1cGRhdGVfdHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAt MjAyNyw2ICsyMTIyLDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwgYm9vbCBpc1RvcExldmVsKQogCUZvcm1fcGdfc3Vic2NyaXB0aW9uIGZvcm07CiAJTGlz dAkgICAqcnN0YXRlczsKIAlib29sCQltdXN0X3VzZV9wYXNzd29yZDsKKwlPYmplY3RBZGRyZXNz CW9iamVjdDsKIAogCS8qCiAJICogVGhlIGxhdW5jaGVyIG1heSBjb25jdXJyZW50bHkgc3RhcnQg YSBuZXcgd29ya2VyIGZvciB0aGlzIHN1YnNjcmlwdGlvbi4KQEAgLTIxODQsNiArMjI4MCwxOSBA QCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9w TGV2ZWwpCiAJLyogQ2xlYW4gdXAgZGVwZW5kZW5jaWVzICovCiAJZGVsZXRlU2hhcmVkRGVwZW5k ZW5jeVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCisJLyoK KwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSByZWNvcmRlZCBhcyBpbnRlcm5hbCBkZXBlbmRl bmNpZXMgb2YgdGhlCisJICogc3Vic2NyaXB0aW9uLiAgV2UgbXVzdCBkcm9wIHRoZSBkZXBlbmRl bnQgb2JqZWN0cyBiZWZvcmUgdGhlCisJICogc3Vic2NyaXB0aW9uIGl0c2VsZiBpcyByZW1vdmVk LiAgQnkgdXNpbmcKKwkgKiBQRVJGT1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwsIHdlIGVuc3Vy ZSB0aGF0IG9ubHkgdGhlIGNvbmZsaWN0IGxvZworCSAqIHRhYmxlIGlzIHJlYXBlZCB3aGlsZSB0 aGUgc3Vic2NyaXB0aW9uIHJlbWFpbnMgZm9yIHRoZSBmaW5hbCBkZWxldGlvbgorCSAqIHN0ZXAu CisJICovCisJT2JqZWN0QWRkcmVzc1NldChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQs IHN1YmlkKTsKKwlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQlQ RVJGT1JNX0RFTEVUSU9OX0lOVEVSTkFMIHwKKwkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09S SUdJTkFMKTsKKwogCS8qIFJlbW92ZSBhbnkgYXNzb2NpYXRlZCByZWxhdGlvbiBzeW5jaHJvbml6 YXRpb24gc3RhdGVzLiAqLwogCVJlbW92ZVN1YnNjcmlwdGlvblJlbChzdWJpZCwgSW52YWxpZE9p ZCk7CiAKQEAgLTMxOTAsMyArMzI5OSwxMjggQEAgZGVmR2V0U3RyZWFtaW5nTW9kZShEZWZFbGVt ICpkZWYpCiAJCQkJCWRlZi0+ZGVmbmFtZSkpKTsKIAlyZXR1cm4gTE9HSUNBTFJFUF9TVFJFQU1f T0ZGOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiB9CisKKy8qCisgKiBCdWlsZHMgdGhlIFR1 cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLworc3RhdGljIFR1cGxlRGVz YworY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZV90dXBkZXNjKHZvaWQpCit7CisJVHVwbGVEZXNj CXR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoTUFYX0NPTkZM SUNUX0FUVFJfTlVNKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgTUFYX0NPTkZMSUNUX0FUVFJf TlVNOyBpKyspCisJeworCQlPaWQgdHlwZV9vaWQgPSBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHR0 eXBpZDsKKworCQkvKgorCQkgKiBTcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgSlNPTiBhcnJheSB0 eXBlIGZvciBwcm9wZXIKKwkJICogVHVwbGVEZXNjSW5pdEVudHJ5IGNhbGwuCisJCSAqLworCQlp ZiAodHlwZV9vaWQgPT0gSlNPTkFSUkFZT0lEKQorCQkJdHlwZV9vaWQgPSBnZXRfYXJyYXlfdHlw ZShKU09OT0lEKTsKKworCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgaSArIDEsCisJCQkJ CQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAorCQkJCQkJICAgdHlwZV9vaWQsCisJ CQkJCQkgICAtMSwgMCk7CisJfQorCisJcmV0dXJuIEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwor fQorCisvKgorICogQ3JlYXRlIGEgc3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEg c3Vic2NyaXB0aW9uLgorICoKKyAqIFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lz dGVtLW1hbmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UuCisgKiBUaGUgdGFibGUgbmFtZSBp cyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisg KiAoZS5nLiwgInBnX2NvbmZsaWN0XzxzdWJpZD4iKSB0byBlbnN1cmUgdW5pcXVlbmVzcyB3aXRo aW4gdGhlIGNsdXN0ZXIgYW5kCisgKiB0byBhdm9pZCBjb2xsaXNpb25zIGR1cmluZyBzdWJzY3Jp cHRpb24gcmVuYW1lcy4KKyAqLworc3RhdGljIE9pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJs ZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2lk CQkJcmVsaWQ7CisJT2JqZWN0QWRkcmVzcwlteXNlbGY7CisJT2JqZWN0QWRkcmVzcwlzdWJhZGRy OworCWNoYXIgICAgCXJlbG5hbWVbTkFNRURBVEFMRU5dOworCisJc25wcmludGYocmVsbmFtZSwg TkFNRURBVEFMRU4sICJwZ19jb25mbGljdF8ldSIsIHN1YmlkKTsKKworCS8qIFRoZXJlIGNhbiBu b3QgYmUgYW4gZXhpc3RpbmcgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lLiAqLworCUFzc2VydCgh T2lkSXNWYWxpZChnZXRfcmVsbmFtZV9yZWxpZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1FU1BB Q0UpKSk7CisKKwkvKiBCdWlsZCB0aGUgdHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIG5ldyB0YWJs ZS4gKi8KKwl0dXBkZXNjID0gY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZV90dXBkZXNjKCk7CisK KwkvKiBDcmVhdGUgY29uZmxpY3QgbG9nIHRhYmxlLiAqLworCXJlbGlkID0gaGVhcF9jcmVhdGVf d2l0aF9jYXRhbG9nKHJlbG5hbWUsCisJCQkJCQkJCQkgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLAor CQkJCQkJCQkJIDAsCS8qIHRhYmxlc3BhY2UgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiBy ZWxpZCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbHR5cGVpZCAqLworCQkJCQkJCQkJ IEludmFsaWRPaWQsIC8qIHJlbG9mdHlwZWlkICovCisJCQkJCQkJCQkgR2V0VXNlcklkKCksCisJ CQkJCQkJCQkgSEVBUF9UQUJMRV9BTV9PSUQsCisJCQkJCQkJCQkgdHVwZGVzYywKKwkJCQkJCQkJ CSBOSUwsCisJCQkJCQkJCQkgUkVMS0lORF9SRUxBVElPTiwKKwkJCQkJCQkJCSBSRUxQRVJTSVNU RU5DRV9QRVJNQU5FTlQsCisJCQkJCQkJCQkgZmFsc2UsIC8qIHNoYXJlZF9yZWxhdGlvbiAqLwor CQkJCQkJCQkJIGZhbHNlLCAvKiBtYXBwZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJCSBPTkNPTU1J VF9OT09QLAorCQkJCQkJCQkJIChEYXR1bSkgMCwgLyogcmVsb3B0aW9ucyAqLworCQkJCQkJCQkJ IGZhbHNlLCAvKiB1c2VfdXNlcl9hY2wgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBhbGxvd19zeXN0 ZW1fdGFibGVfbW9kcyAqLworCQkJCQkJCQkJIHRydWUsIC8qIGlzX2ludGVybmFsICovCisJCQkJ CQkJCQkgSW52YWxpZE9pZCwgLyogcmVscmV3cml0ZSAqLworCQkJCQkJCQkJIE5VTEwpOyAvKiB0 eXBhZGRyZXNzICovCisKKwkvKgorCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5 IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9u LgorCSAqCisJICogV2UgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRo ZSB0YWJsZSdzIGxpZmVjeWNsZSBpcworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlw dGlvbiwgc2ltaWxhciB0byBob3cgYSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1h aW4gdGFibGUgb3IgYSBzZXF1ZW5jZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkg KgorCSAqIFRoaXMgZW5zdXJlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2Fs bHkgcmVhcGVkIGR1cmluZyBhCisJICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxl dGlvbigpLgorCSAqLworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBSZWxhdGlvblJlbGF0aW9u SWQsIHJlbGlkKTsKKwlPYmplY3RBZGRyZXNzU2V0KHN1YmFkZHIsIFN1YnNjcmlwdGlvblJlbGF0 aW9uSWQsIHN1YmlkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnN1YmFkZHIsIERF UEVOREVOQ1lfSU5URVJOQUwpOworCisJLyogUmVsZWFzZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9y eS4gKi8KKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOworCisJcmV0dXJuIHJlbGlkOworfQorCisv KgorICogR2V0TG9nRGVzdGluYXRpb24KKyAqCisgKiBDb252ZXJ0IHN0cmluZyB0byBlbnVtIGJ5 IGNvbXBhcmluZyBhZ2FpbnN0IHN0YW5kYXJkaXplZCBsYWJlbHMuCisgKi8KK0NvbmZsaWN0TG9n RGVzdAorR2V0TG9nRGVzdGluYXRpb24oY29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBFbXB0eSBz dHJpbmcgb3IgTlVMTCBkZWZhdWx0cyB0byBMT0cuICovCisJaWYgKGRlc3QgPT0gTlVMTCB8fCBk ZXN0WzBdID09ICdcMCcgfHwgcGdfc3RyY2FzZWNtcChkZXN0LCAibG9nIikgPT0gMCkKKwkJcmV0 dXJuIENPTkZMSUNUX0xPR19ERVNUX0xPRzsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJ0 YWJsZSIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9UQUJMRTsKKworCWlmIChw Z19zdHJjYXNlY21wKGRlc3QsICJhbGwiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RF U1RfQUxMOworCisJLyogVW5yZWNvZ25pemVkIHN0cmluZy4gKi8KKwllcmVwb3J0KEVSUk9SLAor CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkgZXJybXNn KCJ1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiBcIiVzXCIiLCBk ZXN0KSwKKwkJCSBlcnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIsIFwidGFibGVcIiwg YW5kIFwiYWxsXCIuIikpKTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzNTg0YzRlMTQyOC4uMjBmMDhlNTQ4 YmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCkBAIC02ODA2LDcgKzY4MDYsNyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCXByaW50UXVlcnlPcHQgbXlvcHQg PSBwc2V0LnBvcHQ7CiAJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKIAkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2V9OworCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAK IAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBAIC02OTAwLDE1ICs2OTAwLDIyIEBA IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Up CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIiwgc3Vic2tpcGxzbiBBUyBc IiVzXCJcbiIsCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlNraXAgTFNOIikpOworCisJCS8qIENv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8K KwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCQkJCSAgIiwgc3ViY29uZmxpY3Rsb2dkZXN0IEFTIFwiJXNcIlxuIiwKKwkJ CQkJCQkgIGdldHRleHRfbm9vcCgiQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIikpOworCQl9CiAJ fQogCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlvbnMgaW4gY3VycmVudCBkYXRhYmFzZS4g Ki8KLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAotCQkJCQkJICJGUk9NIHBnX2NhdGFsb2cu cGdfc3Vic2NyaXB0aW9uXG4iCi0JCQkJCQkgIldIRVJFIHN1YmRiaWQgPSAoU0VMRUNUIG9pZFxu IgotCQkJCQkJICIgICAgICAgICAgICAgICAgIEZST00gcGdfY2F0YWxvZy5wZ19kYXRhYmFzZVxu IgotCQkJCQkJICIgICAgICAgICAgICAgICAgIFdIRVJFIGRhdG5hbWUgPSBwZ19jYXRhbG9nLmN1 cnJlbnRfZGF0YWJhc2UoKSkiKTsKLQorCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gIgorCQkJCQkgICJXSEVSRSBzdWJkYmlk ID0gKFNFTEVDVCBvaWRcbiIKKwkJCQkJICAiICAgICAgICAgICAgICAgICBGUk9NIHBnX2NhdGFs b2cucGdfZGF0YWJhc2VcbiIKKwkJCQkJICAiICAgICAgICAgICAgICAgICBXSEVSRSBkYXRuYW1l ID0gcGdfY2F0YWxvZy5jdXJyZW50X2RhdGFiYXNlKCkpIik7CiAJaWYgKCF2YWxpZGF0ZVNRTE5h bWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAogCQkJCQkJCQlOVUxMLCAic3Vi bmFtZSIsIE5VTEwsCiAJCQkJCQkJCU5VTEwsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggOGI5 MWJjMDAwNjIuLjEyZWVlOGEwZDQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzQ0LDgg KzIzNDQsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExF VEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFt ZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBN YXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5 IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhfcmV0ZW50aW9u X2R1cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGlj dF9sb2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVy IiwgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRf cmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwg InNsb3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19jb21taXQiLCAi dHdvX3BoYXNlIik7CkBAIC0zODYwLDggKzM4NjAsOCBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyogQ29tcGxldGUg IkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwg IigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwg ImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZh aWxvdmVyIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9zbG90IiwgImRp c2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAgIm1heF9yZXRl bnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAi cmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIs ICJzdHJlYW1pbmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4Ni4uODE5MzIy OWYyZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4dGVybiBib29s IElzSW5wbGFjZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAogZXh0ZXJuIGJv b2wgSXNTeXN0ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogZXh0 ZXJuIGJvb2wgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOworZXh0ZXJuIGJv b2wgSXNDb25mbGljdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9v bCBJc0NhdGFsb2dSZWxhdGlvbk9pZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9n VGV4dFVuaXF1ZUluZGV4T2lkKE9pZCByZWxpZCk7CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBi b29sIElzSW5wbGFjZVVwZGF0ZU9pZChPaWQgcmVsaWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFs b2dOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKIGV4dGVybiBib29sIElzVG9hc3ROYW1lc3Bh Y2UoT2lkIG5hbWVzcGFjZUlkKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3ROYW1lc3BhY2UoT2lk IG5hbWVzcGFjZUlkKTsKIAogZXh0ZXJuIGJvb2wgSXNSZXNlcnZlZE5hbWUoY29uc3QgY2hhciAq bmFtZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdAppbmRleCAzMDc1ZTE0MmM3 My4uYjQ1Y2I5MzgzYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNw YWNlLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKQEAgLTE4 LDYgKzE4LDkgQEAKIHsgb2lkID0+ICc5OScsIG9pZF9zeW1ib2wgPT4gJ1BHX1RPQVNUX05BTUVT UEFDRScsCiAgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEgZm9yIFRPQVNUIHRhYmxlcycsCiAg IG5zcG5hbWUgPT4gJ3BnX3RvYXN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0sCit7IG9pZCA9PiAn MTM4MicsIG9pZF9zeW1ib2wgPT4gJ1BHX0NPTkZMSUNUX05BTUVTUEFDRScsCisgIGRlc2NyID0+ ICdyZXNlcnZlZCBzY2hlbWEgZm9yIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBjb25mbGljdCBsb2cg dGFibGVzJywKKyAgbnNwbmFtZSA9PiAncGdfY29uZmxpY3QnLCBuc3BhY2wgPT4gJ19udWxsXycg fSwKICMgdXBkYXRlIGR1bXBOYW1lc3BhY2UoKSBpZiBjaGFuZ2luZyB0aGlzIGRlc2NyCiB7IG9p ZCA9PiAnMjIwMCcsIG9pZF9zeW1ib2wgPT4gJ1BHX1BVQkxJQ19OQU1FU1BBQ0UnLAogICBkZXNj ciA9PiAnc3RhbmRhcmQgcHVibGljIHNjaGVtYScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaAppbmRleCBmMzU3MWQyYmZjZi4uNGFhMjllYTE1ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTAsNiArOTAsNyBAQCBDQVRBTE9HKHBnX3N1YnNjcmlw dGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJ X1JPVwogCQkJCQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgog CQkJCQkJCQkJICogZGVmaW5lZCAqLwogCisJT2lkICAgICAgICAgc3ViY29uZmxpY3Rsb2dyZWxp ZDsgLyogUmVsaWQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBDQVRBTE9H X1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENv bm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBC S0lfRk9SQ0VfTk9UX05VTEw7CkBAIC0xMDMsNiArMTA0LDE0IEBAIENBVEFMT0cocGdfc3Vic2Ny aXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBC S0lfUk9XCiAJLyogTGlzdCBvZiBwdWJsaWNhdGlvbnMgc3Vic2NyaWJlZCB0byAqLwogCXRleHQJ CXN1YnB1YmxpY2F0aW9uc1sxXSBCS0lfRk9SQ0VfTk9UX05VTEw7CiAKKwkvKgorCSAqIFN0cmF0 ZWd5IGZvciBsb2dnaW5nIHJlcGxpY2F0aW9uIGNvbmZsaWN0czoKKwkgKiAnbG9nJyAtIHNlcnZl ciBsb2cgb25seSwKKwkgKiAndGFibGUnIC0gaW50ZXJuYWwgdGFibGUgb25seSwKKwkgKiAnYWxs JyAtIGJvdGggbG9nIGFuZCB0YWJsZS4KKwkgKi8KKwl0ZXh0CQlzdWJjb25mbGljdGxvZ2Rlc3Q7 CisKIAkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZSBzcGVjaWZpZWQg b3JpZ2luICovCiAJdGV4dAkJc3Vib3JpZ2luIEJLSV9ERUZBVUxUKExPR0lDQUxSRVBfT1JJR0lO X0FOWSk7CiAjZW5kaWYKQEAgLTE1MiwxMiArMTYxLDE0IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNj cmlwdGlvbgogCQkJCQkJCQkJICogYW5kIHRoZSByZXRlbnRpb24gZHVyYXRpb24gaGFzIG5vdAog CQkJCQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJ CQkJICogZGVmaW5lZCAqLworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CS8qIGNvbmZsaWN0IGxv ZyB0YWJsZSBPaWQgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5n IHRvIHRoZSBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5hbWUgb2YgdGhl IHJlcGxpY2F0aW9uIHNsb3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyogU3luY2hyb25v dXMgY29tbWl0IHNldHRpbmcgZm9yIHdvcmtlciAqLwogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJ LyogTGlzdCBvZiBwdWJsaWNhdGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAg ICpvcmlnaW47CQkJLyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJ CQkJCQkJICogc3BlY2lmaWVkIG9yaWdpbiAqLworCWNoYXIJICAgKmNvbmZsaWN0bG9nZGVzdDsJ LyogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCiB9IFN1YnNjcmlwdGlvbjsKIAogI2lmZGVm IEVYUE9TRV9UT19DTElFTlRfQ09ERQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5oCmluZGV4IDYzNTA0MjMyYTE0Li5hODk1MTI3ZjhmZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuaApAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNs dWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVh dGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10 ICpzdG10LAogCQkJCQkJCQkJCWJvb2wgaXNUb3BMZXZlbCk7CkBAIC0zNiw0ICszNyw2IEBAIGV4 dGVybiB2b2lkIENoZWNrU3ViRGVhZFR1cGxlUmV0ZW50aW9uKGJvb2wgY2hlY2tfZ3VjLCBib29s IHN1Yl9kaXNhYmxlZCwKIAkJCQkJCQkJCSAgIGJvb2wgcmV0ZW50aW9uX2FjdGl2ZSwKIAkJCQkJ CQkJCSAgIGJvb2wgbWF4X3JldGVudGlvbl9zZXQpOwogCitleHRlcm4gQ29uZmxpY3RMb2dEZXN0 IEdldExvZ0Rlc3RpbmF0aW9uKGNvbnN0IGNoYXIgKmRlc3QpOworCiAjZW5kaWYJCQkJCQkJLyog U1VCU0NSSVBUSU9OQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCBk NTM4Mjc0NjM3Zi4uMjlkYTYzZGQxMjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApA QCAtMTAsNiArMTAsNyBAQAogI2RlZmluZSBDT05GTElDVF9ICiAKICNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJub2Rl cy9wZ19saXN0LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAKQEAgLTc5LDYgKzgw LDYwIEBAIHR5cGVkZWYgc3RydWN0IENvbmZsaWN0VHVwbGVJbmZvCiAJCQkJCQkJCSAqIGNvbmZs aWN0aW5nIGxvY2FsIHJvdyBvY2N1cnJlZCAqLwogfSBDb25mbGljdFR1cGxlSW5mbzsKIAorLyoK KyAqIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB0eXBlcy4KKyAqCisgKiBUaGVzZSB2YWx1ZXMg YXJlIGRlZmluZWQgYXMgYml0bWFzayBmbGFncyB0byBhbGxvdyBmb3IgbXVsdGlwbGUgc2ltdWx0 YW5lb3VzCisgKiBsb2dnaW5nIGRlc3RpbmF0aW9ucyAoZS5nLiwgbG9nZ2luZyB0byBib3RoIHN5 c3RlbSBsb2dzIGFuZCBhIHRhYmxlKS4KKyAqIEludGVybmFsbHksIHdlIHVzZSB0aGVzZSBmb3Ig Yml0d2lzZSBjb21wYXJpc29ucyAoSXNTZXQpLCBidXQgdGhlIHN0cmluZworICogcmVwcmVzZW50 YXRpb24gaXMgc3RvcmVkIGluIHBnX3N1YnNjcmlwdGlvbi5zdWJjb25mbGljdGxvZ2Rlc3QuCisg Ki8KK3R5cGVkZWYgZW51bSBDb25mbGljdExvZ0Rlc3QKK3sKKwkvKiBMb2cgY29uZmxpY3RzIHRv IHRoZSBzZXJ2ZXIgbG9ncyAqLworCUNPTkZMSUNUX0xPR19ERVNUX0xPRyAgID0gMSA8PCAwLCAg IC8qIDB4MDEgKi8KKworCS8qIExvZyBjb25mbGljdHMgdG8gYW4gaW50ZXJuYWxseSBtYW5hZ2Vk IHRhYmxlICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUgPSAxIDw8IDEsICAgLyogMHgwMiAq LworCisJLyogQ29udmVuaWVuY2UgZmxhZyBmb3IgYWxsIHN1cHBvcnRlZCBkZXN0aW5hdGlvbnMg Ki8KKwlDT05GTElDVF9MT0dfREVTVF9BTEwgICA9IChDT05GTElDVF9MT0dfREVTVF9MT0cgfCBD T05GTElDVF9MT0dfREVTVF9UQUJMRSkKK30gQ29uZmxpY3RMb2dEZXN0OworCisvKgorICogQXJy YXkgbWFwcGluZyBmb3IgY29udmVydGluZyBpbnRlcm5hbCBlbnVtIHRvIHN0cmluZy4KKyAqLwor c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CisJW0NP TkZMSUNUX0xPR19ERVNUX0xPR10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEVd ID0gInRhYmxlIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwiCit9OworCisvKiBT dHJ1Y3R1cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlICovCit0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgoreworCWNv bnN0IGNoYXIgKmF0dG5hbWU7ICAgIC8qIENvbHVtbiBuYW1lICovCisJT2lkICAgICAgICAgYXR0 dHlwaWQ7ICAgLyogRGF0YSB0eXBlIE9JRCAqLworfSBDb25mbGljdExvZ0NvbHVtbkRlZjsKKwor LyogVGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUg c2NoZW1hICovCitzdGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgQ29uZmxpY3RMb2dT Y2hlbWFbXSA9Cit7CisJeyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAgICAgICAgLmF0dHR5cGlk ID0gT0lET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwgICAgICAgLmF0dHR5cGlk ID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAgICAgICAgIC5hdHR0eXBp ZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5cGUiLCAgICAuYXR0dHlw aWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlkIiwgICAgICAgLmF0dHR5 cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X2xzbiIsLmF0dHR5 cGlkID0gTFNOT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X3RzIiwgLmF0dHR5 cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9vcmlnaW4iLCAg ICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5 IiwgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3RlX3R1cGxlIiwg ICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gImxvY2FsX2NvbmZsaWN0 cyIsICAuYXR0dHlwaWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmluZSBNQVhfQ09ORkxJ Q1RfQVRUUl9OVU0gbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIGV4dGVybiBib29sIEdl dFR1cGxlVHJhbnNhY3Rpb25JbmZvKFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJ CQlUcmFuc2FjdGlvbklkICp4bWluLAogCQkJCQkJCQkJUmVwT3JpZ2luSWQgKmxvY2Fsb3JpZ2lu LApAQCAtODksNCArMTQ0LDYgQEAgZXh0ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChFU3Rh dGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJsZVNs b3QgKnJlbW90ZXNsb3QsCiAJCQkJCQkJCUxpc3QgKmNvbmZsaWN0dHVwbGVzKTsKIGV4dGVybiB2 b2lkIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbyk7CitleHRlcm4g UmVsYXRpb24gR2V0Q29uZmxpY3RMb2dUYWJsZUluZm8oQ29uZmxpY3RMb2dEZXN0ICpsb2dfZGVz dCk7CitleHRlcm4gdm9pZCBJbnNlcnRDb25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNvbmZsaWN0 bG9ncmVsKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CmluZGV4IGIzZWNjZDhhZmUzLi5kYmMxMmIxYWRiZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTE2LDE4ICsxMTYsMTggQEAgQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBp cyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3Jp cHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25z LgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAw MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IFNFVCAob3JpZ2luID0g YW55KTsKIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAw MDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGlj dCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwog KDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIzOwpAQCAtMTQ1LDEw ICsxNDUsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogbWlz c2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29ubmVjdGlvbiBpbmZvIHN0cmluZwogCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMDAwMDAwMDAgfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEggKHJlZnJl c2ggPSBmYWxzZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlKTsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVl KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qy IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi Mix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsK QEAgLTE3NiwxMCArMTc2LDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBw YXJhbWV0ZXI6ICJjcmVhdGVfc2xvdCIKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzEyMzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRp b24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMTIzNDUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cg ZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMTIz NDUgfCBsb2cKICgxIHJvdykKIAogLS0gb2sgLSB3aXRoIGxzbiA9IE5PTkUKQEAgLTE4OCwxMCAr MTg4LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0g Tk9ORSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcw LzAnKTsKIEVSUk9SOiAgaW52YWxpZCBXQUwgbG9jYXRpb24gKExTTik6IDAvMAogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwg Q29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dDIgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAtMjIzLDEwICsyMjMs MTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUIChzeW5jaHJv bm91c19jb21taXQgPSBmb29iYXIpOwogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0 ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6ICJmb29iYXIiCiBISU5UOiAgQXZhaWxhYmxlIHZhbHVl czogbG9jYWwsIHJlbW90ZV93cml0ZSwgcmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93 KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQpAQCAtMjU1LDE5ICsy NTUsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24g d2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVw bGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwg ZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJl ZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRl c3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAK IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7 CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9O RSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjc5LDI3ICsyNzksMjcgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAw MDAgfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRl YWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBM U04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAw MDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0 IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEg cm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTMxNCwxMCAr MzE0LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FU SU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVm cmVzaCA9IGZhbHNlKTsKIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBhbHJlYWR5 IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAg UHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAg ICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxv ZwogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25jZQpA QCAtMzMyLDEwICszMzIsMTAgQEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlzIG5v dCBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1Ymxp Y2F0aW9ucwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJQ0FU SU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAg U2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YjsKQEAgLTM3MSwxOSArMzcxLDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhl IHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAw MCB8IGxvZwogKDEgcm93KQogCiAtLSB3ZSBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3Bo YXNlIGVuYWJsZWQKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJl YW1pbmcgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC0zOTMsMTAgKzM5MywxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8 IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cK ICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOwpAQCAtNDA5LDE4ICs0MDksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVj dGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNy ZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBh bHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAg U2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAg fCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDMzLDEwICs0MzMsMTAgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ1MCwxOSArNDUwLDE5IEBA IE5PVElDRTogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gaXMgaW5lZmZlY3RpdmUgd2hlbiByZXRh aW5fZGVhZF90dXBsZXMgaXMgZGlzYWJsCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1 YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgMTAwMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IDEwMDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiAtLSBvawog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9yZXRlbnRpb25fZHVy YXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01 MTcsNiArNTE3LDIzNyBAQCBDT01NSVQ7CiAtLSBvaywgb3duaW5nIGl0IGlzIGVub3VnaCBmb3Ig dGhpcyBzdHVmZgogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworLS0KKy0t IENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXInOworLS0gZmFpbCAtIHVucmVjb2duaXpl ZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9m YWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04g dGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9 ICdpbnZhbGlkJyk7CitFUlJPUjogIHVucmVjb2duaXplZCBjb25mbGljdF9sb2dfZGVzdGluYXRp b24gdmFsdWU6ICJpbnZhbGlkIgorSElOVDogIFZhbGlkIHZhbHVlcyBhcmUgImxvZyIsICJ0YWJs ZSIsIGFuZCAiYWxsIi4KKy0tIHZlcmlmeSBzdWJjb25mbGljdGxvZ2Rlc3QgaXMgJ2xvZycgYW5k IHJlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZhdWx0IGNhc2UKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBDT05ORUNUSU9OICdkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZh bHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29u bmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5 IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFu ZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorU0VMRUNU IHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBw Z19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZh dWx0JzsKKyAgICAgICAgICAgc3VibmFtZSAgICAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0 IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZs aWN0X2xvZ19kZWZhdWx0IHwgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg MAorKDEgcm93KQorCistLSB2ZXJpZnkgZW1wdHkgc3RyaW5nIGRlZmF1bHRzIHRvICdsb2cnCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcnKTsKK1dBUk5JTkc6 ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAg VG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVw bGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vi c2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNv bmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cic7CisgICAgICAgICAg c3VibmFtZSAgICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3Jl bGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciB8IGxvZyAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKworLS0gdGhpcyBz aG91bGQgZ2VuZXJhdGUgYW4gaW50ZXJuYWwgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfJHN1Ymlk JAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBjaGVjayBtZXRhZGF0 YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFuZCBy ZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxp Y3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBz dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgICAgICBzdWJuYW1lICAgICAg ICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhl IHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVs aWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2Uu CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3Bh Y2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MScKKyAgQU5EIGMub2lkID0gcy5zdWJjb25mbGljdGxvZ3JlbGlkCisg IEFORCBuLm5zcG5hbWUgPSAncGdfY29uZmxpY3QnOworIGNvdW50IAorLS0tLS0tLQorICAgICAx CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRoZSBpbnRlcm5hbCB0YWJsZSBoYXMgdGhlIGNvcnJl Y3Qgc2NoZW1hICgxMSBjb2x1bW5zKQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2F0dHJpYnV0 ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0bnVtID4gMDsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAxMQorKDEgcm93KQorCistLQorLS0gQUxURVIgU1VCU0NSSVBU SU9OIC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHN0YXRlIHRyYW5zaXRpb25zCistLQorLS0g VGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0aW9uIGxvZ2ljIGJldHdlZW4gZGlmZmVyZW50 IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5zdXJpbmcgaW50ZXJuYWwgdGFibGVzIGFyZSBj cmVhdGVkIG9yIGRyb3BwZWQgYXMgZXhwZWN0ZWQuCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICds b2cnIHRvICdhbGwnCistLSBhIG5ldyBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxk IGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3Rw dWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9n Jyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5l Y3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBj cmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQg YWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uID0gJ2FsbCcpOworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5h dGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0 LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgICAgICAgIHN1 Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDIgfCBhbGwgICAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0t IHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhl IHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGlj dGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJs ZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpv bGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBz dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8 IHJlbGlkX3VuY2hhbmdlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t CisgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20g J3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciByZWxp ZAorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBz dWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZs aWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0t IHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9N IHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rl c3QyJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLQorLS0gUFVCTElD QVRJT046IFZlcmlmeSBpbnRlcm5hbCB0YWJsZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0t IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGludGVy bmFsIGNvbmZsaWN0IGxvZworLS0gdGFibGVzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGFj Y2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMuCistLQorU0VMRUNUIG4ubnNwbmFt ZSwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoYy5vaWQpCitGUk9NIHBnX2NsYXNzIGMKK0pP SU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorSk9JTiBwZ19zdWJz Y3JpcHRpb24gcyBPTiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBjLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgbnNwbmFtZSAgIHwgcGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBwZ19jb25mbGljdCB8IGYKKygxIHJvdykKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rp b24gYW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRo YXQ6CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkLgorLS0gRFJPUCBTVUJTQ1JJ UFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUgdGFibGUuCistLQorLS0gcmUtZW5hYmxlIHRh YmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsK Ky0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRl bmN5CistLSB1c2UgRE8gYmxvY2sgdG8gaGlkZSBPSUQgaW4gZXJyb3IgbWVzc2FnZQorRE8gJCQK K0JFR0lOCisgICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0 LnBnX2NvbmZsaWN0XycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBl eHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZQorLS0gQ0xFQU5VUDogRFJPUCBT VUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKy0tIFZlcmlmeSB0aGUgdGFibGUgT0lE IGZvciByZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0XycgfHwgb2lkIEFTIGludGVybmFs X3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEnIFxnc2V0CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxOworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBpbnRlcm5hbCB0YWJs ZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9fcmVnY2xhc3MoOidpbnRlcm5h bF90YWJsZW5hbWUnKTsKKyB0b19yZWdjbGFzcyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRlc3Rz CistLQorLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25m bGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyAKKyAg ICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1 YmxpY2F0aW9ucy4KKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1t YW5hZ2VkLgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBT RUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBw Z19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZs aWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRB QkxFIG9uIGludGVybmFsIGNvbmZsaWN0IHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJM RSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBU SU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdj YXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxU RVInOworRU5EICQkOworTk9USUNFOiAgQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5h bCBjb25mbGljdCB0YWJsZQorTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3Vm ZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSCistLSBUcnlpbmcgdG8gVFJVTkNBVEUgdGhl IGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZC4K K0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdw Z19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8 IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKKworICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBUUlVOQ0FURSBvbiBpbnRl cm5hbCBjb25mbGljdCB0YWJsZSc7CisgICAgRVhFQ1VURSAnVFJVTkNBVEUgJyB8fCB0YWJfbmFt ZTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2Ug ZHVyaW5nIFRSVU5DQVRFJzsKK0VORCAkJDsKK05PVElDRTogIEF0dGVtcHRpbmcgVFJVTkNBVEUg b24gaW50ZXJuYWwgY29uZmxpY3QgdGFibGUKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVy cm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBUUlVOQ0FURQorLS0gVHJ5aW5nIHRv IGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxseSBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNl CistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRoZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNv bmZsaWN0IGxvZ3MgdGFibGVzLgorQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJs ZSAoaWQgaW50KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlICJwZ19jb25m bGljdC5tYW51YWxfdGFibGUiCitERVRBSUw6ICBTeXN0ZW0gY2F0YWxvZyBtb2RpZmljYXRpb25z IGFyZSBjdXJyZW50bHkgZGlzYWxsb3dlZC4KKy0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBp bnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJs ZSB0byBtb3ZlIHRoZWlyIG93biB0YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlLgorQ1JFQVRF IFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVz dF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitFUlJPUjogIGNhbm5vdCBtb3ZlIG9iamVj dHMgaW50byBvciBvdXQgb2YgQ09ORkxJQ1Qgc2NoZW1hCitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0 X21vdmU7CistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0 cjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MjsKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdDsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggZWYwYzI5OGQy ZGYuLmUxMzA0ZGRmOGMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3Jp cHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAg LTM2NSw2ICszNjUsMTk1IEBAIENPTU1JVDsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjsKIAorLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0KKwor U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CisK Ky0tIGZhaWwgLSB1bnJlY29nbml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25m bGljdF9sb2dfZGVzdGluYXRpb24gPSAnaW52YWxpZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxp Y3Rsb2dkZXN0IGlzICdsb2cnIGFuZCByZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVs dCBjYXNlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0 cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rs b2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBz dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworCistLSB2ZXJpZnkgZW1w dHkgc3RyaW5nIGRlZmF1bHRzIHRvICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICcnKTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3Qs IHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF9lbXB0eV9zdHInOworCistLSB0aGlzIHNob3VsZCBnZW5lcmF0 ZSBhbiBpbnRlcm5hbCB0YWJsZSBuYW1lZCBwZ19jb25mbGljdF8kc3ViaWQkCitDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxz ZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIGNoZWNrIG1ldGFk YXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hvdWxkIGJlICd0YWJsZScgYW5k IHJlbGlkIHZhbGlkCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25m bGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tIHZlcmlmeSB0aGUgcGh5 c2ljYWwgdGFibGUgZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMgc3ViY29uZmxpY3Rsb2dyZWxpZCwK Ky0tIGFuZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAncGdfY29uZmxpY3QnIG5hbWVzcGFjZS4KK1NF TEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBu IE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Rlc3QxJworICBBTkQgYy5vaWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQKKyAgQU5E IG4ubnNwbmFtZSA9ICdwZ19jb25mbGljdCc7CisKKy0tIGNoZWNrIGlmIHRoZSBpbnRlcm5hbCB0 YWJsZSBoYXMgdGhlIGNvcnJlY3Qgc2NoZW1hICgxMSBjb2x1bW5zKQorU0VMRUNUIGNvdW50KCop CitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMu b2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8n IHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5E IGEuYXR0bnVtID4gMDsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlm eSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0 aW5hdGlvbnMsIGVuc3VyaW5nIGludGVybmFsIHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9wcGVk IGFzIGV4cGVjdGVkLgorLS0KKworLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCist LSBhIG5ldyBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICdhbGwnKTsKKworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5h dGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0 LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5z aXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxl LCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3Jl bGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOwor U0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVs aWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxl JyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciByZWxpZAorQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2df ZGVzdGluYXRpb24gPSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25m bGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDInOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdv bmUKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVy aWZ5IGludGVybmFsIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJuYWwgY29uZmxp Y3QgbG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5 IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucy4KKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxh dGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1l c3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZl Y3ljbGUgTWFuYWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFu dWFsIERST1AgVEFCTEUgaXMgZGlzYWxsb3dlZC4KKy0tIERST1AgU1VCU0NSSVBUSU9OIGF1dG9t YXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlLgorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5n IGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rl c3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIGZhaWwg LSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRlbmN5CistLSB1 c2UgRE8gYmxvY2sgdG8gaGlkZSBPSUQgaW4gZXJyb3IgbWVzc2FnZQorRE8gJCQKK0JFR0lOCisg ICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZs aWN0XycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVn ZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZm aWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CisKKy0tIENMRUFOVVA6IERST1AgU1VCU0NSSVBU SU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CisKKy0tIFZlcmlmeSB0aGUgdGFibGUgT0lEIGZvciBy ZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0XycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxl bmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEnIFxnc2V0CisKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVz dDE7CisKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgaW50ZXJuYWwgdGFibGUg d2FzIHJlYXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50ZXJuYWxf dGFibGVuYW1lJyk7CisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJv dGVjdGlvbiBUZXN0cworLS0KKworLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0 aW9uIHdpdGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyAKKyAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxz ZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFRyeWluZyB0byBB TFRFUiB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWls IGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkLgorRE8gJCQKK0RFQ0xBUkUKKyAg ICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVs bmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJ U0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGludGVybmFsIGNvbmZsaWN0IHRh YmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENP TFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZp bGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5z dWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOworCistLSBUcnlpbmcg dG8gVFJVTkNBVEUgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91 bGQgYmUgYWxsb3dlZC4KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lO CisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAg IEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBU UlVOQ0FURSBvbiBpbnRlcm5hbCBjb25mbGljdCB0YWJsZSc7CisgICAgRVhFQ1VURSAnVFJVTkNB VEUgJyB8fCB0YWJfbmFtZTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2Ug VEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmlj aWVudF9wcml2aWxlZ2UgZHVyaW5nIFRSVU5DQVRFJzsKK0VORCAkJDsKKworLS0gVHJ5aW5nIHRv IGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxseSBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNl CistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRoZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNv bmZsaWN0IGxvZ3MgdGFibGVzLgorQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJs ZSAoaWQgaW50KTsKKworLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBnX2Nv bmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUgdGhl aXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UuCitDUkVBVEUgVEFCTEUgcHVibGlj LnRlc3RfbW92ZSAoaWQgaW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFND SEVNQSBwZ19jb25mbGljdDsKK0RST1AgVEFCTEUgcHVibGljLnRlc3RfbW92ZTsKKworLS0gQ2xl YW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CisKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKKworQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9u X3Rlc3Q7CisKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDA5ZTdmMWQ0MjBlLi40YjQ2YzY2OTkx OSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTUwMCw2ICs1MDAsOCBAQCBDb25kaXRp b25WYXJpYWJsZU1pbmltYWxseVBhZGRlZAogQ29uZGl0aW9uYWxTdGFjawogQ29uZmlnRGF0YQog Q29uZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29sdW1uRGVmCitDb25mbGljdExvZ0Rlc3QKIENv bmZsaWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUKIENvbm5DYWNoZUVudHJ5Ci0tIAoyLjQ5LjAK Cg== --0000000000009fca5d0648087041 Content-Type: application/octet-stream; name="v20-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v20-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk8bftjp2 RnJvbSA2MDliNjgyNWVjOGE5MGI3YWQ2NmJiZWM1ODMxZjgwOTEwM2M3YTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAxODo1MTo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICAzNCArKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE2MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sCmluZGV4IDY4ZDZlZmU1MTE0Li40MTUxN2JmMjcxNiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0yODksNiArMjg5LDE5IEBACiAgICBvcHRp b24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwvY29tbWFuZD4gZm9yIGRldGFpbHMu CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENvbmZsaWN0cyB0aGF0IG9jY3VyIGR1cmluZyBy ZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dlZCBhcyBwbGFpbiB0ZXh0CisgICBpbiB0 aGUgc2VydmVyIGxvZywgd2hpY2ggY2FuIG1ha2UgYXV0b21hdGVkIG1vbml0b3JpbmcgYW5kIGFu YWx5c2lzIGRpZmZpY3VsdC4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9j b21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPgorICAg PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4gb3B0aW9u IHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3QgaW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMgcGFyYW1ldGVyCisgICBpcyBzZXQgdG8g PGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBz eXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBhIGRlZGljYXRlZCBjb25mbGljdCBsb2cg dGFibGUsIHdoaWNoIGlzIGNyZWF0ZWQgYW5kCisgICBkcm9wcGVkIGFsb25nIHdpdGggdGhlIHN1 YnNjcmlwdGlvbi4gVGhpcyBzaWduaWZpY2FudGx5IGltcHJvdmVzIHBvc3QtbW9ydGVtCisgICBh bmFseXNpcyBhbmQgb3BlcmF0aW9uYWwgdmlzaWJpbGl0eSBvZiB0aGUgcmVwbGljYXRpb24gc2V0 dXAuCisgIDwvcGFyYT4KKwogICA8c2VjdDIgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tc3Vic2Ny aXB0aW9uLXNsb3QiPgogICAgPHRpdGxlPkxvZ2ljYWwgUmVwbGljYXRpb24gU2xvdCBNYW5hZ2Vt ZW50PC90aXRsZT4KIApAQCAtMjExOCw3ICsyMTMxLDk4IEBAIFB1YmxpY2F0aW9uczoKICAgPC9w YXJhPgogCiAgIDxwYXJhPgotICAgVGhlIGxvZyBmb3JtYXQgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzIGlzIGFzIGZvbGxvd3M6CisgICBXaGVuIHRoZSA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlv biI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4KKyAg IGlzIHNldCB0byA8bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRl cmFsPiwgdGhlIHN5c3RlbQorICAgYXV0b21hdGljYWxseSBjcmVhdGVzIGEgbmV3IHRhYmxlIHdp dGggYSBwcmVkZWZpbmVkIHNjaGVtYSB0byBsb2cgY29uZmxpY3QKKyAgIGRldGFpbHMuIFRoaXMg dGFibGUgaXMgY3JlYXRlZCBpbiB0aGUgZGVkaWNhdGVkCisgICA8bGl0ZXJhbD5wZ19jb25mbGlj dDwvbGl0ZXJhbD4gbmFtZXNwYWNlLiAgVGhlIG5hbWUgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZQorICAgaXMgcGdfY29uZmxpY3RfPHJlcGxhY2VhYmxlPnN1YnNjcmlwdGlvbl9vaWQ8L3JlcGxh Y2VhYmxlPi4gVGhlIHNjaGVtYSBvZiB0aGlzCisgICB0YWJsZSBpcyBkZXRhaWxlZCBpbgorICAg PHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1sb2ctc2NoZW1hIi8+ LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0 LWxvZy1zY2hlbWEiPgorICAgPHRpdGxlPkNvbmZsaWN0IExvZyBUYWJsZSBTY2hlbWE8L3RpdGxl PgorICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+Q29sdW1uPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAg PHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFs PjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+b2lkPC90eXBlPjwvZW50cnk+CisgICAgICA8 ZW50cnk+VGhlIE9JRCBvZiB0aGUgbG9jYWwgdGFibGUgd2hlcmUgdGhlIGNvbmZsaWN0IG9jY3Vy cmVkLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPnNjaGVtYW5hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50ZXh0 PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHNjaGVtYSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5yZWxuYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5 cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSB0eXBlIG9mIGNv bmZsaWN0IHRoYXQgb2NjdXJyZWQgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVy YWw+KS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD5yZW1vdGVfeGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+eGlk PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSB0cmFuc2FjdGlvbiBJRCB0 aGF0IGNhdXNlZCB0aGUgY29uZmxpY3QuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF9sc248L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5wZ19sc248L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF90 czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcHR6PC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSBjb21taXQgdGltZXN0YW1wIG9mIHRo ZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX29yaWdpbjwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgb3Jp Z2luIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5 PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWluZyByZW1vdGUgcm93IHRoYXQg Y2F1c2VkIHRoZSBjb25mbGljdC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48dHlwZT5qc29uW108L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT4KKyAg ICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCBzdGF0 ZSBmb3IgZWFjaCBjb25mbGljdCBhdHRlbXB0LgorICAgICAgIEVhY2ggb2JqZWN0IGluY2x1ZGVz IHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCAoPGxpdGVyYWw+eGlkPC9saXRlcmFsPiksIGNvbW1p dAorICAgICAgIHRpbWVzdGFtcCAoPGxpdGVyYWw+Y29tbWl0X3RzPC9saXRlcmFsPiksIG9yaWdp biAoPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPiksCisgICAgICAgY29uZmxpY3Rpbmcga2V5IGRh dGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAg ICAgaW1hZ2UgKDxsaXRlcmFsPnR1cGxlPC9saXRlcmFsPikuCisgICAgICA8L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyAgPHBh cmE+CisgICBUaGUgY29uZmxpY3Rpbmcgcm93IGRhdGEsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg bG9jYWwgdHVwbGUgYW5kCisgICB0aGUgcmVtb3RlIHR1cGxlLCBpcyBzdG9yZWQgaW4gPHR5cGU+ SlNPTjwvdHlwZT4gY29sdW1ucyAoPGxpdGVyYWw+bG9jYWxfdHVwbGU8L2xpdGVyYWw+CisgICBh bmQgPGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPikgZm9yIGZsZXhpYmxlIHF1ZXJ5aW5n IGFuZCBhbmFseXNpcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSWYgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGlu YXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+ CisgICBpcyBsZWZ0IGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgb3IgZXhwbGljaXRseSBjb25maWd1 cmVkIGFzIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4KKyAgIG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJh bD4sIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGFyZSBsb2dnZWQgaW4gdGhlCisgICBm b2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24g cmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBsYWNlYWJsZT4uPHJlcGxhY2Vh YmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9PHJlcGxhY2VhYmxlPmNvbmZs aWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4uCkBAIC0yNDEyLDYgKzI1 MTYsMTYgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9u IG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRl bnRpdHkgZGVmaW5lZCBmb3IgaXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAg PGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBUaGUgaW50ZXJuYWwgdGFibGUgYXV0b21hdGlj YWxseSBjcmVhdGVkIHdoZW4KKyAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgIGlzIHNldCB0byA8bGl0 ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiBpcyBleGNsdWRl ZCBmcm9tCisgICAgIGxvZ2ljYWwgcmVwbGljYXRpb24uIEl0IHdpbGwgbm90IGJlIHB1Ymxpc2hl ZCwgZXZlbiBpZiBhIHB1YmxpY2F0aW9uIG9uIHRoZQorICAgICBzdWJzY3JpYmVyIGlzIGRlZmlu ZWQgdXNpbmcgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgIDwvcGFyYT4K KyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDI3YzA2NDM5ZjRmLi4yZGUyYzNj NTJmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yODAs OCArMjgwLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2luIj48bGl0ZXJhbD5vcmln aW48L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJz Y3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFs PjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNlPC9saXRlcmFsPjwvbGluaz4s Ci0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRo LXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2RlYWRfdHVwbGVzPC9saXRlcmFs PjwvbGluaz4sIGFuZAotICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlv bi1wYXJhbXMtd2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50 aW9uX2R1cmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVy YWw+cmV0YWluX2RlYWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVy YXRpb24iPjxsaXRlcmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiBh bmQsCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCiAgICAgICBPbmx5IGEgc3VwZXJ1c2VyIGNhbiBzZXQg PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFy YT4KIApAQCAtMzM5LDYgKzM0MCwxNSBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAg PHF1b3RlPjxsaXRlcmFsPnBnX2NvbmZsaWN0X2RldGVjdGlvbjwvbGl0ZXJhbD48L3F1b3RlPiwg Y3JlYXRlZCB0byByZXRhaW4KICAgICAgIGRlYWQgdHVwbGVzIGZvciBjb25mbGljdCBkZXRlY3Rp b24sIHdpbGwgYmUgZHJvcHBlZC4KICAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAg V2hlbiB0aGUgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgICBwYXJhbWV0ZXIgaXMgc2V0IHRvIDxsaXRlcmFs PnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+LCB0aGUgc3lzdGVtCisg ICAgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJs ZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5CisgICAgICBleGlzdC4gQ29udmVyc2VseSwgaWYgdGhl IGRlc3RpbmF0aW9uIGlzIGNoYW5nZWQgdG8KKyAgICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4s IGxvZ2dpbmcgdG8gdGhlIHRhYmxlIHN0b3BzIGFuZCB0aGUgaW50ZXJuYWwKKyAgICAgIHRhYmxl IGlzIGF1dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRp b24uc2dtbAppbmRleCBiN2RkMzYxMjk0Yi4uMDVlNGE3MDBlZmYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNDcsNiArMjQ3LDQwIEBAIENSRUFURSBT VUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9u YW1lPC9yZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+ KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAg U3BlY2lmaWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgVGhlIGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxp c3Q+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAg ICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVk IGluIHRoZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVo YXZpb3IuCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRl cmFsPnRhYmxlPC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBz dHJ1Y3R1cmVkIHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3Rf Jmx0O3N1YmlkJmd0OzwvbGl0ZXJhbD4gaW4gdGhlCisgICAgICAgICAgICAgPGxpdGVyYWw+cGdf Y29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYS4gVGhpcyBhbGxvd3MgZm9yIGVhc3kgcXVlcnlpbmcg YW5kCisgICAgICAgICAgICAgYW5hbHlzaXMgb2YgY29uZmxpY3RzLiBUaGlzIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHRoZQorICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICA8 bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIHRvIGJvdGggdGhlIHNlcnZlciBsb2cgYW5k IHRoZSB0YWJsZS4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgIDx2YXJsaXN0ZW50cnkg aWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29weS1kYXRhIj4KICAgICAg ICAgPHRlcm0+PGxpdGVyYWw+Y29weV9kYXRhPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVhbjwvdHlw ZT4pPC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+Ci0tIAoyLjQ5LjAKCg== --0000000000009fca5d0648087041--