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.94.2) (envelope-from ) id 1rLFnr-006xyv-Ji for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2024 04:58:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rLFnn-00AKIz-Li for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jan 2024 04:57:55 +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.94.2) (envelope-from ) id 1rLFnm-00AKIo-Cu for pgsql-hackers@lists.postgresql.org; Thu, 04 Jan 2024 04:57:55 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rLFne-00Ddwi-J4 for pgsql-hackers@postgresql.org; Thu, 04 Jan 2024 04:57:53 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3367601a301so104172f8f.2 for ; Wed, 03 Jan 2024 20:57:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704344264; x=1704949064; darn=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=xloDOC1+y0AT8LPq4sypNGrqXddR80vqFaMeXvdFrH4=; b=nFUsYh663xfy1IuEWavtCdc/EW8vd15Lu1UxTtacTl7cL27eOOmF8hdN861h4BXmTQ ZilsT2IDySyB8FgBUAuqCARPfE5copXJaTn0WjN2dTiWBCw56OnxtLFpbPCh1AGHOBKP kw77+9MYpc7gEZb4Hw4q06Yr7xWHWhEbyogs3Cy6ff/JZ1OwcKNol33AdsJSf8PCUXCC wOv7GlCUt3yMel8539ufwuqKbMs3mFpGNCWe+0jjID8OPveBiaVtiuqkVq7Vmgepd/3Z ygq2a9GlC9/LwRSw72/rFFk47CnLHpM3uLZMv95rmtv8LVe3DJdADp6BkdGnxMGAW5jy vqAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704344264; x=1704949064; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xloDOC1+y0AT8LPq4sypNGrqXddR80vqFaMeXvdFrH4=; b=MyIKdSxBDUAepVOPBRB9WANIkuu0XhuNlJBSImxWNqrDEYmJhHtS8gzH1zPX5tB5ZZ GJvyWReXVu8l+GHVYPsZwov/6XzX7cDR31tL050O3wToDo/m4K7vtGeAnYHgjeOJmUrZ Peaf4WqJy7oID+bOAo0/6jSrat6lYBdbRV77UR0pNRqXoFVj2DzdwBhrrjM8Ne+I5eiu bcV4bKKZT/xsBAK7wg7kmKQhUIyFfFl7OY6xgJPm2+KjzqN0drJsQbI9bbf7fFlwgXia pTS4SwdcuO5lBKKVS3kAUmHYQ27QUgCXHunoUCJEZYn155derHKDBeWgB0ry0DPnW/Oy yhpA== X-Gm-Message-State: AOJu0Yy3tOkgQ2vreq1HzTGjRAG+MDCN3psrG+48y59xVEOVfhjELTmT QL7F3z8dZphmSF5Ckiuasanx9dRRAMFOEFJdHZI= X-Google-Smtp-Source: AGHT+IF5mWR0s0fkcB9kNUydRD5RODUultUOSgT5xbKYnWSwLHyI+6AvuS8YnP5V+gIUavulrzojKebwHIy5G/QA/Fc= X-Received: by 2002:adf:ef12:0:b0:337:4c69:3ece with SMTP id e18-20020adfef12000000b003374c693ecemr25055wro.75.1704344264129; Wed, 03 Jan 2024 20:57:44 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Thu, 4 Jan 2024 10:27:31 +0530 Message-ID: Subject: Re: Synchronizing slots from primary to standby To: "Zhijie Hou (Fujitsu)" Cc: Amit Kapila , Masahiko Sawada , "Drouvot, Bertrand" , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Ajin Cherian , Alvaro Herrera , shveta malik Content-Type: multipart/mixed; boundary="000000000000705ebc060e1792db" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000705ebc060e1792db Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 4, 2024 at 9:18=E2=80=AFAM shveta malik wrote: > > On Wed, Jan 3, 2024 at 6:33=E2=80=AFPM Zhijie Hou (Fujitsu) > wrote: > > > > On Tuesday, January 2, 2024 6:32 PM shveta malik wrote: > > > On Fri, Dec 29, 2023 at 10:25=E2=80=AFAM Amit Kapila > > > > > > The topup patch has also changed app_name to > > > {cluster_name}_slotsyncworker so that we do not confuse between walre= ceiver > > > and slotsyncworker entry. > > > > > > Please note that there is no change in rest of the patches, changes a= re in > > > additional 0004 patch alone. > > > > Attach the V56 patch set which supports ALTER SUBSCRIPTION SET (failove= r). > > This is useful when user want to refresh the publication tables, they c= an now alter the > > failover option to false and then execute the refresh command. > > > > Best Regards, > > Hou zj > > The patches no longer apply to HEAD due to a recent commit 007693f. I > am working on rebasing and will post the new patches soon > > thanks > Shveta Commit 007693f has changed 'conflicting' to 'conflict_reason', so adjusted the code around that in the slotsync worker. Also removed function 'pg_get_slot_invalidation_cause' as now conflict_reason tells the same. PFA rebased patches with above changes. thanks Shveta --000000000000705ebc060e1792db Content-Type: application/octet-stream; name="v57-0004-Non-replication-connection-and-app_name-change.patch" Content-Disposition: attachment; filename="v57-0004-Non-replication-connection-and-app_name-change.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lqyqjjd43 RnJvbSBmNmRiMmE4ZTkyNzc4NTg0OTk2MDhlMTljN2EzOGNhOGMwOTQxMTI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjkgRGVjIDIwMjMgMTM6MTU6MTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1 NyA0LzRdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpD aGFuZ2VzIGluIHRoaXMgcGF0Y2g6CjEpIENvbnZlcnQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0 byBub24tcmVwbGljYXRpb24gb25lIGluIHNsb3RzeW5jIHdvcmtlci4KMikgVXNlIGFwcF9uYW1l IGFzIHtjbHVzdGVyX25hbWV9X3Nsb3RzeW5jd29ya2VyIGluIHRoZSBzbG90c3luYyB3b3JrZXIK Y29ubmVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAgOCArKy0tLQogLi4uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j ICAgICAgIHwgMzUgKysrKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9zbG90c3luYy5jICAgIHwgMTMgKysrKystLQogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5jICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaCAgICAgICAgIHwgIDUgKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlv bnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNt ZHMuYwppbmRleCBjNzY4OThkM2FlLi4wYWViMmVjYzEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCkBAIC03NTUsNyArNzU1LDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAogCQkv KiBUcnkgdG8gY29ubmVjdCB0byB0aGUgcHVibGlzaGVyLiAqLwogCQltdXN0X3VzZV9wYXNzd29y ZCA9ICFzdXBlcnVzZXJfYXJnKG93bmVyKSAmJiBvcHRzLnBhc3N3b3JkcmVxdWlyZWQ7Ci0JCXdy Y29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwK KwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUsIHRydWUsIG11c3RfdXNl X3Bhc3N3b3JkLAogCQkJCQkJCQlzdG10LT5zdWJuYW1lLCAmZXJyKTsKIAkJaWYgKCF3cmNvbm4p CiAJCQllcmVwb3J0KEVSUk9SLApAQCAtOTI2LDcgKzkyNiw3IEBAIEFsdGVyU3Vic2NyaXB0aW9u X3JlZnJlc2goU3Vic2NyaXB0aW9uICpzdWIsIGJvb2wgY29weV9kYXRhLAogCiAJLyogVHJ5IHRv IGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KIAltdXN0X3VzZV9wYXNzd29yZCA9IHN1Yi0+ cGFzc3dvcmRyZXF1aXJlZCAmJiAhc3ViLT5vd25lcnN1cGVydXNlcjsKLQl3cmNvbm4gPSB3YWxy Y3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwl3cmNv bm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCB0cnVlLCBtdXN0X3VzZV9w YXNzd29yZCwKIAkJCQkJCQlzdWItPm5hbWUsICZlcnIpOwogCWlmICghd3Jjb25uKQogCQllcmVw b3J0KEVSUk9SLApAQCAtMTYwNyw3ICsxNjA3LDcgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJLyogVHJ5IHRv IGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KIAkJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWIt PnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0JCXdyY29ubiA9IHdh bHJjdl9jb25uZWN0KHN1Yi0+Y29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAorCQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCB0cnVlLCBtdXN0X3Vz ZV9wYXNzd29yZCwKIAkJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKIAkJaWYgKCF3cmNvbm4pCiAJ CQllcmVwb3J0KEVSUk9SLApAQCAtMTg1OCw3ICsxODU4LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihE cm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCSAqLwogCWxvYWRf ZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAotCXdyY29ubiA9IHdhbHJjdl9jb25u ZWN0KGNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChjb25uaW5mbywgdHJ1ZSwgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJ c3VibmFtZSwgJmVycik7CiAJaWYgKHdyY29ubiA9PSBOVUxMKQogCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2Vp dmVyLmMKaW5kZXggN2E2ZmY1NTdiYy4uOGIxNDc3Y2RjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVy LmMKQEAgLTUwLDcgKzUwLDggQEAgc3RydWN0IFdhbFJlY2VpdmVyQ29ubgogCiAvKiBQcm90b3R5 cGVzIGZvciBpbnRlcmZhY2UgZnVuY3Rpb25zICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJDb25uICps aWJwcXJjdl9jb25uZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLAotCQkJCQkJCQkJCSBib29sIGxv Z2ljYWwsIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCisJCQkJCQkJCQkJIGJvb2wgcmVwbGljYXRp b24sIGJvb2wgbG9naWNhbCwKKwkJCQkJCQkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJ CQkJCQkJCQkgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycik7CiBzdGF0aWMgdm9pZCBs aWJwcXJjdl9jaGVja19jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbywKIAkJCQkJCQkJCWJv b2wgbXVzdF91c2VfcGFzc3dvcmQpOwpAQCAtMTM2LDggKzEzNyw4IEBAIF9QR19pbml0KHZvaWQp CiAgKiBjYXNlLgogICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJDb25uICoKLWxpYnBxcmN2X2Nvbm5l Y3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgbG9naWNhbCwgYm9vbCBtdXN0X3VzZV9wYXNz d29yZCwKLQkJCQkgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycikKK2xpYnBxcmN2X2Nv bm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgcmVwbGljYXRpb24sIGJvb2wgbG9naWNh bCwKKwkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hh ciAqKmVycikKIHsKIAlXYWxSZWNlaXZlckNvbm4gKmNvbm47CiAJY29uc3QgY2hhciAqa2V5c1s2 XTsKQEAgLTE1MCwxNyArMTUxLDI3IEBAIGxpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29u bmluZm8sIGJvb2wgbG9naWNhbCwgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkgKi8KIAlrZXlz W2ldID0gImRibmFtZSI7CiAJdmFsc1tpXSA9IGNvbm5pbmZvOwotCWtleXNbKytpXSA9ICJyZXBs aWNhdGlvbiI7Ci0JdmFsc1tpXSA9IGxvZ2ljYWwgPyAiZGF0YWJhc2UiIDogInRydWUiOwotCWlm ICghbG9naWNhbCkKKworCS8qIFdlIGNhbiBub3QgaGF2ZSBsb2dpY2FsIHcvbyByZXBsaWNhdGlv biAqLworCWlmKCFyZXBsaWNhdGlvbikKKwkJQXNzZXJ0KCFsb2dpY2FsKTsKKworCWlmIChyZXBs aWNhdGlvbikKIAl7Ci0JCS8qCi0JCSAqIFRoZSBkYXRhYmFzZSBuYW1lIGlzIGlnbm9yZWQgYnkg dGhlIHNlcnZlciBpbiByZXBsaWNhdGlvbiBtb2RlLCBidXQKLQkJICogc3BlY2lmeSAicmVwbGlj YXRpb24iIGZvciAucGdwYXNzIGxvb2t1cC4KLQkJICovCi0JCWtleXNbKytpXSA9ICJkYm5hbWUi OwotCQl2YWxzW2ldID0gInJlcGxpY2F0aW9uIjsKKwkJa2V5c1srK2ldID0gInJlcGxpY2F0aW9u IjsKKwkJdmFsc1tpXSA9IGxvZ2ljYWwgPyAiZGF0YWJhc2UiIDogInRydWUiOworCisJCWlmICgh bG9naWNhbCkKKwkJeworCQkJLyoKKwkJCSAqIFRoZSBkYXRhYmFzZSBuYW1lIGlzIGlnbm9yZWQg YnkgdGhlIHNlcnZlciBpbiByZXBsaWNhdGlvbiBtb2RlLAorCQkJICogYnV0IHNwZWNpZnkgInJl cGxpY2F0aW9uIiBmb3IgLnBncGFzcyBsb29rdXAuCisJCQkgKi8KKwkJCWtleXNbKytpXSA9ICJk Ym5hbWUiOworCQkJdmFsc1tpXSA9ICJyZXBsaWNhdGlvbiI7CisJCX0KIAl9CisKIAlrZXlzWysr aV0gPSAiZmFsbGJhY2tfYXBwbGljYXRpb25fbmFtZSI7CiAJdmFsc1tpXSA9IGFwcG5hbWU7CiAJ aWYgKGxvZ2ljYWwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMK aW5kZXggYTg0YWIwMjBlZS4uZGYzMGEwYzhiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc2xvdHN5bmMuYwpAQCAtMTEyNiw2ICsxMTI2LDcgQEAgUmVwbFNsb3RTeW5jV29y a2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAljaGFyCSAgICpkYm5hbWU7CiAJYm9vbAkJYW1fY2Fz Y2FkaW5nX3N0YW5kYnk7CiAJY2hhcgkgICAqZXJyOworCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1l OwogCiAJZXJlcG9ydChMT0csIGVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBz dGFydGVkIikpOwogCkBAIC0xMTU4LDEzICsxMTU5LDIxIEBAIFJlcGxTbG90U3luY1dvcmtlck1h aW4oRGF0dW0gbWFpbl9hcmcpCiAJICovCiAJQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVDb25u ZWN0aW9uKGRibmFtZSwgTlVMTCwgMCk7CiAKKwlpbml0U3RyaW5nSW5mbygmYXBwX25hbWUpOwor CWlmIChjbHVzdGVyX25hbWVbMF0pCisJCWFwcGVuZFN0cmluZ0luZm8oJmFwcF9uYW1lLCAiJXNf JXMiLCBjbHVzdGVyX25hbWUsICJzbG90c3luY3dvcmtlciIpOworCWVsc2UKKwkJYXBwZW5kU3Ry aW5nSW5mbygmYXBwX25hbWUsICIlcyIsICJzbG90c3luY3dvcmtlciIpOworCiAJLyoKIAkgKiBF c3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgc2VydmVyIGZvciBzbG90cwog CSAqIHN5bmNocm9uaXphdGlvbi4KIAkgKi8KLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmlt YXJ5Q29ubkluZm8sIHRydWUsIGZhbHNlLAotCQkJCQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0 ZXJfbmFtZSA6ICJzbG90c3luY3dvcmtlciIsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoUHJp bWFyeUNvbm5JbmZvLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCQkJCQkJCWFwcF9uYW1lLmRhdGEs CiAJCQkJCQkJJmVycik7CisJcGZyZWUoYXBwX25hbWUuZGF0YSk7CisKIAlpZiAod3Jjb25uID09 IE5VTEwpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05f RkFJTFVSRSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Rh Ymxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpp bmRleCA3NGU5Y2ZjZTFiLi42NTg3MjI5NjgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIExvZ2ljYWxSZXBTeW5j VGFibGVTdGFydChYTG9nUmVjUHRyICpvcmlnaW5fc3RhcnRwb3MpCiAJICogc28gdGhhdCBzeW5j aHJvbm91cyByZXBsaWNhdGlvbiBjYW4gZGlzdGluZ3Vpc2ggdGhlbS4KIAkgKi8KIAlMb2dSZXBX b3JrZXJXYWxSY3ZDb25uID0KLQkJd2FscmN2X2Nvbm5lY3QoTXlTdWJzY3JpcHRpb24tPmNvbm5p bmZvLCB0cnVlLAorCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRy dWUsIHRydWUsCiAJCQkJCSAgIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkgICBzbG90bmFtZSwg JmVycik7CiAJaWYgKExvZ1JlcFdvcmtlcldhbFJjdkNvbm4gPT0gTlVMTCkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDI4NzQxMmUxYTYuLmU3MDZmZDhkMGQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtNDU1NCw3ICs0 NTU0LDcgQEAgcnVuX2FwcGx5X3dvcmtlcigpCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBNeVN1YnNj cmlwdGlvbi0+cGFzc3dvcmRyZXF1aXJlZCAmJgogCQkhTXlTdWJzY3JpcHRpb24tPm93bmVyc3Vw ZXJ1c2VyOwogCi0JTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9IHdhbHJjdl9jb25uZWN0KE15U3Vi c2NyaXB0aW9uLT5jb25uaW5mbywgdHJ1ZSwKKwlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0gd2Fs cmN2X2Nvbm5lY3QoTXlTdWJzY3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLCB0cnVlLAogCQkJCQkJ CQkJCQltdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUs ICZlcnIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZl ci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCBmZmFjZDU1 ZTVjLi5mMzRhYjA5YWM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxy ZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAg LTI5Niw3ICsyOTYsNyBAQCBXYWxSZWNlaXZlck1haW4odm9pZCkKIAlzaWdwcm9jbWFzayhTSUdf U0VUTUFTSywgJlVuQmxvY2tTaWcsIE5VTEwpOwogCiAJLyogRXN0YWJsaXNoIHRoZSBjb25uZWN0 aW9uIHRvIHRoZSBwcmltYXJ5IGZvciBYTE9HIHN0cmVhbWluZyAqLwotCXdyY29ubiA9IHdhbHJj dl9jb25uZWN0KGNvbm5pbmZvLCBmYWxzZSwgZmFsc2UsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5l Y3QoY29ubmluZm8sIHRydWUsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQljbHVzdGVyX25hbWVbMF0g PyBjbHVzdGVyX25hbWUgOiAid2FscmVjZWl2ZXIiLAogCQkJCQkJCSZlcnIpOwogCWlmICghd3Jj b25uKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKaW5kZXggOWY3OGZkMWU1YS4u NmM1NjgxYWI1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCkBAIC0yMzcs NiArMjM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmN2RXhlY1Jlc3VsdAogICogcmV0dXJuZWQg d2l0aCAnZXJyJyBpbmNsdWRpbmcgdGhlIGVycm9yIGdlbmVyYXRlZC4KICAqLwogdHlwZWRlZiBX YWxSZWNlaXZlckNvbm4gKigqd2FscmN2X2Nvbm5lY3RfZm4pIChjb25zdCBjaGFyICpjb25uaW5m bywKKwkJCQkJCQkJCQkJICAgYm9vbCByZXBsaWNhdGlvbiwKIAkJCQkJCQkJCQkJICAgYm9vbCBs b2dpY2FsLAogCQkJCQkJCQkJCQkgICBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQkJ CQkgICBjb25zdCBjaGFyICphcHBuYW1lLApAQCAtNDM0LDggKzQzNSw4IEBAIHR5cGVkZWYgc3Ry dWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCiBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVj ZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0aW9uczsKIAotI2RlZmluZSB3YWxy Y3ZfY29ubmVjdChjb25uaW5mbywgbG9naWNhbCwgbXVzdF91c2VfcGFzc3dvcmQsIGFwcG5hbWUs IGVycikgXAotCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY29ubmVjdChjb25uaW5mbywg bG9naWNhbCwgbXVzdF91c2VfcGFzc3dvcmQsIGFwcG5hbWUsIGVycikKKyNkZWZpbmUgd2FscmN2 X2Nvbm5lY3QoY29ubmluZm8sIHJlcGxpY2F0aW9uLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29y ZCwgYXBwbmFtZSwgZXJyKSBcCisJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCByZXBsaWNhdGlvbiwgbG9naWNhbCwgbXVzdF91c2VfcGFzc3dvcmQsIGFwcG5h bWUsIGVycikKICNkZWZpbmUgd2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZvLCBtdXN0X3Vz ZV9wYXNzd29yZCkgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY2hlY2tfY29ubmlu Zm8oY29ubmluZm8sIG11c3RfdXNlX3Bhc3N3b3JkKQogI2RlZmluZSB3YWxyY3ZfZ2V0X2Nvbm5p bmZvKGNvbm4pIFwKLS0gCjIuMzQuMQoK --000000000000705ebc060e1792db Content-Type: application/octet-stream; name="v57-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Disposition: attachment; filename="v57-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lqyqjjd32 RnJvbSAxMmVlNDg0ZGUyNTQ5OGI3MWUyMGQxMmRkZjUzMzc5YmM5YzUzYzgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDMgSmFuIDIwMjQgMjA6MjU6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 NyAzLzRdIEFsbG93IGxvZ2ljYWwgd2Fsc2VuZGVycyB0byB3YWl0IGZvciB0aGUgcGh5c2ljYWwK IHN0YW5kYnlzCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBtZWNoYW5pc20gdG8gZW5zdXJlIHRo YXQgcGh5c2ljYWwgc3RhbmRieSBzZXJ2ZXJzLAp3aGljaCBhcmUgcG90ZW50aWFsIGZhaWxvdmVy IGNhbmRpZGF0ZXMsIGhhdmUgcmVjZWl2ZWQgYW5kIGZsdXNoZWQgY2hhbmdlcwpiZWZvcmUgbWFr aW5nIHRoZW0gdmlzaWJsZSB0byBzdWJzY3JpYmVycy4gQnkgZG9pbmcgc28sIGl0IGd1YXJhbnRl ZXMgdGhhdAp0aGUgcHJvbW90ZWQgc3RhbmRieSBzZXJ2ZXIgaXMgbm90IGxhZ2dpbmcgYmVoaW5k IHRoZSBzdWJzY3JpYmVycyB3aGVuIGEKZmFpbG92ZXIgaXMgbmVjZXNzYXJ5LgoKQSBuZXcgcGFy YW1ldGVyIG5hbWVkIHN0YW5kYnlfc2xvdF9uYW1lcyBpcyBpbnRyb2R1Y2VkLiBUaGUgbG9naWNh bAp3YWxzZW5kZXIgbm93IGd1YXJhbnRlZXMgdGhhdCBhbGwgbG9jYWwgY2hhbmdlcyBhcmUgc2Vu dCBhbmQgZmx1c2hlZCB0bwp0aGUgc3RhbmRieSBzZXJ2ZXJzIGNvcnJlc3BvbmRpbmcgdG8gdGhl IHJlcGxpY2F0aW9uIHNsb3RzIHNwZWNpZmllZCBpbgpzdGFuZGJ5X3Nsb3RfbmFtZXMgYmVmb3Jl IHNlbmRpbmcgdGhvc2UgY2hhbmdlcyB0byB0aGUgc3Vic2NyaWJlci4KCkFkZGl0aW9uYWxseSwg VGhlIFNRTCBmdW5jdGlvbnMgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzIGFuZApwZ19yZXBs aWNhdGlvbl9zbG90X2FkdmFuY2UgYXJlIG1vZGlmaWVkIHRvIHdhaXQgZm9yIHRoZSByZXBsaWNh dGlvbiBzbG90cwptZW50aW9uZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIHRvIGNhdGNoIHVwIGJl Zm9yZSByZXR1cm5pbmcgdGhlIGNoYW5nZXMKdG8gdGhlIHVzZXIuCi0tLQogZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vcmVwbGljYXRp b24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAgICAgfCAgMTMgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgMzQyICsrKysrKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgICAgICAgICAgIHwgICA5ICsKIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgICAgICB8IDExMSArKysrKy0K IC4uLi91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dCAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgMTQgKwogc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAyICsKIHNyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaCAgIHwgICA3ICsKIHNyYy9pbmNsdWRl L3V0aWxzL2d1Y19ob29rcy5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWNv dmVyeS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbCAgIHwgICAzICstCiAuLi4vdC8wNTBfc3RhbmRi eV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsICAgICAgfCAzMDMgKysrKysrKysrKysrKy0tLQogMTUg ZmlsZXMgY2hhbmdlZCwgNzcxIGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dt bAppbmRleCBjZDlhZTcwYzQxLi41N2JiMTkzNzU3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDE5LDYgKzQ0 MTksMzAgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJc XCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4 cmVmbGFiZWw9InN0YW5kYnlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zh cm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIExpc3Qgb2YgcGh5c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGlj YXRpb24gc2xvdHMgd2l0aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1l IGNoYW5nZXMgdW50aWwgdGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZs dXNoZWQgdG8gY29ycmVzcG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJl cGxpY2F0aW9uCisgICAgICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5 c2ljYWwgc3RhbmRieSBhZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhl IHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0 ZWQKKyAgICAgICAgaGVyZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAg IFRoZSBzdGFuZGJ5cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBz bG90cyBpbgorICAgICAgICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11 c3QgY29uZmlndXJlCisgICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xp dGVyYWw+IHNvIHRoZXkgY2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90 cyBjaGFuZ2VzIGZyb20gdGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAg PC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKaW5kZXggYjAwODFkM2NlNS4uNWZmNzYxZGQ2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j bHVkZSAicmVwbGljYXRpb24vZGVjb2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNh bC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL21lc3NhZ2UuaCIKKyNpbmNsdWRlICJyZXBsaWNh dGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAidXRp bHMvYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTA5LDYgKzExMCw3 IEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNp bmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmluCiAJTWVtb3J5Q29udGV4dCBwZXJfcXVlcnlfY3R4 OwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlYTG9nUmVjUHRyCWVuZF9vZl93YWw7CisJ WExvZ1JlY1B0cgl3YWl0X2Zvcl93YWxfbHNuOwogCUxvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0 eDsKIAlSZXNvdXJjZU93bmVyIG9sZF9yZXNvd25lciA9IEN1cnJlbnRSZXNvdXJjZU93bmVyOwog CUFycmF5VHlwZSAgKmFycjsKQEAgLTIyOCw2ICsyMzAsMTcgQEAgcGdfbG9naWNhbF9zbG90X2dl dF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9v bCBiaW4KIAkJCQkJCQlOYW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnBsdWdpbiksCiAJ CQkJCQkJZm9ybWF0X3Byb2NlZHVyZShmY2luZm8tPmZsaW5mby0+Zm5fb2lkKSkpKTsKIAorCQlp ZiAoWExvZ1JlY1B0cklzSW52YWxpZCh1cHRvX2xzbikpCisJCQl3YWl0X2Zvcl93YWxfbHNuID0g ZW5kX29mX3dhbDsKKwkJZWxzZQorCQkJd2FpdF9mb3Jfd2FsX2xzbiA9IE1pbih1cHRvX2xzbiwg ZW5kX29mX3dhbCk7CisKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0cmVhbWluZyBy ZXBsaWNhdGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29uZmlybSByZWNl aXB0IG9mIFdBTCB1cCB0byB3YWl0X2Zvcl93YWxfbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0YW5k YnlDb25maXJtYXRpb24od2FpdF9mb3Jfd2FsX2xzbik7CisKIAkJY3R4LT5vdXRwdXRfd3JpdGVy X3ByaXZhdGUgPSBwOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggOWQyNzU5Mzk3 OS4uNTc3MTIwOWI5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtNDYsMTMgKzQ2LDE4IEBA CiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5j bHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRl ci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgorI2luY2x1ZGUg InV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgogCiAvKgogICog UmVwbGljYXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3RydWN0dXJlLgpAQCAtOTksMTAgKzEwNCwx OSBAQCBSZXBsaWNhdGlvblNsb3RDdGxEYXRhICpSZXBsaWNhdGlvblNsb3RDdGwgPSBOVUxMOwog LyogTXkgYmFja2VuZCdzIHJlcGxpY2F0aW9uIHNsb3QgaW4gdGhlIHNoYXJlZCBtZW1vcnkgYXJy YXkgKi8KIFJlcGxpY2F0aW9uU2xvdCAqTXlSZXBsaWNhdGlvblNsb3QgPSBOVUxMOwogCi0vKiBH VUMgdmFyaWFibGUgKi8KKy8qIEdVQyB2YXJpYWJsZXMgKi8KIGludAkJCW1heF9yZXBsaWNhdGlv bl9zbG90cyA9IDEwOyAvKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXRpb24KIAkJCQkJ CQkJCQkgKiBzbG90cyAqLwogCisvKgorICogVGhpcyBHVUMgbGlzdHMgc3RyZWFtaW5nIHJlcGxp Y2F0aW9uIHN0YW5kYnkgc2VydmVyIHNsb3QgbmFtZXMgdGhhdAorICogbG9naWNhbCBXQUwgc2Vu ZGVyIHByb2Nlc3NlcyB3aWxsIHdhaXQgZm9yLgorICovCitjaGFyCSAgICpzdGFuZGJ5X3Nsb3Rf bmFtZXM7CisKKy8qIFRoaXMgaXMgcGFyc2VkIGFuZCBjYWNoZWQgbGlzdCBmb3IgcmF3IHN0YW5k Ynlfc2xvdF9uYW1lcy4gKi8KK3N0YXRpYyBMaXN0ICpzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9 IE5JTDsKKwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90U2htZW1FeGl0KGludCBjb2RlLCBE YXR1bSBhcmcpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcFB0cihSZXBsaWNhdGlv blNsb3QgKnNsb3QpOwogCkBAIC0yMjE3LDMgKzIyMzEsMzI5IEBAIFJlc3RvcmVTbG90RnJvbURp c2soY29uc3QgY2hhciAqbmFtZSkKIAkJCQkoZXJybXNnKCJ0b28gbWFueSByZXBsaWNhdGlvbiBz bG90cyBhY3RpdmUgYmVmb3JlIHNodXRkb3duIiksCiAJCQkJIGVycmhpbnQoIkluY3JlYXNlIG1h eF9yZXBsaWNhdGlvbl9zbG90cyBhbmQgdHJ5IGFnYWluLiIpKSk7CiB9CisKKy8qCisgKiBBIGhl bHBlciBmdW5jdGlvbiB0byB2YWxpZGF0ZSBzbG90cyBzcGVjaWZpZWQgaW4gR1VDIHN0YW5kYnlf c2xvdF9uYW1lcy4KKyAqLworc3RhdGljIGJvb2wKK3ZhbGlkYXRlX3N0YW5kYnlfc2xvdHMoY2hh ciAqKm5ld3ZhbCkKK3sKKwljaGFyCSAgICpyYXduYW1lOworCUxpc3QJICAgKmVsZW1saXN0Owor CUxpc3RDZWxsICAgKmxjOworCWJvb2wJCW9rOworCisJLyogTmVlZCBhIG1vZGlmaWFibGUgY29w eSBvZiBzdHJpbmcgKi8KKwlyYXduYW1lID0gcHN0cmR1cCgqbmV3dmFsKTsKKworCS8qIFZlcmlm eSBzeW50YXggYW5kIHBhcnNlIHN0cmluZyBpbnRvIGEgbGlzdCBvZiBpZGVudGlmaWVycyAqLwor CW9rID0gU3BsaXRJZGVudGlmaWVyU3RyaW5nKHJhd25hbWUsICcsJywgJmVsZW1saXN0KTsKKwor CWlmICghb2spCisJCUdVQ19jaGVja19lcnJkZXRhaWwoIkxpc3Qgc3ludGF4IGlzIGludmFsaWQu Iik7CisKKwkvKgorCSAqIElmIHRoZXJlIGlzIGEgc3ludGF4IGVycm9yIGluIHRoZSBuYW1lIG9y IGlmIHRoZSByZXBsaWNhdGlvbiBzbG90cycKKwkgKiBkYXRhIGlzIG5vdCBpbml0aWFsaXplZCB5 ZXQgKGkuZS4sIHdlIGFyZSBpbiB0aGUgc3RhcnR1cCBwcm9jZXNzKSwgc2tpcAorCSAqIHRoZSBz bG90IHZlcmlmaWNhdGlvbi4KKwkgKi8KKwlpZiAoIW9rIHx8ICFSZXBsaWNhdGlvblNsb3RDdGwp CisJeworCQlwZnJlZShyYXduYW1lKTsKKwkJbGlzdF9mcmVlKGVsZW1saXN0KTsKKwkJcmV0dXJu IG9rOworCX0KKworCWZvcmVhY2gobGMsIGVsZW1saXN0KQorCXsKKwkJY2hhcgkgICAqbmFtZSA9 IGxmaXJzdChsYyk7CisJCVJlcGxpY2F0aW9uU2xvdCAqc2xvdDsKKworCQlzbG90ID0gU2VhcmNo TmFtZWRSZXBsaWNhdGlvblNsb3QobmFtZSwgdHJ1ZSk7CisKKwkJaWYgKCFzbG90KQorCQl7CisJ CQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQkJCW5hbWUpOworCQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisK KwkJaWYgKCFTbG90SXNQaHlzaWNhbChzbG90KSkKKwkJeworCQkJR1VDX2NoZWNrX2VycmRldGFp bCgiXCIlc1wiIGlzIG5vdCBhIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QiLAorCQkJCQkJCQlu YW1lKTsKKwkJCW9rID0gZmFsc2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCXBmcmVlKHJhd25h bWUpOworCWxpc3RfZnJlZShlbGVtbGlzdCk7CisJcmV0dXJuIG9rOworfQorCisvKgorICogR1VD IGNoZWNrX2hvb2sgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcworICovCitib29sCitjaGVja19zdGFu ZGJ5X3Nsb3RfbmFtZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291 cmNlKQoreworCWlmIChzdHJjbXAoKm5ld3ZhbCwgIiIpID09IDApCisJCXJldHVybiB0cnVlOwor CisJLyoKKwkgKiAiKiIgaXMgbm90IGFjY2VwdGVkIGFzIGluIHRoYXQgY2FzZSBwcmltYXJ5IHdp bGwgbm90IGJlIGFibGUgdG8ga25vdworCSAqIGZvciB3aGljaCBhbGwgc3RhbmRieXMgdG8gd2Fp dCBmb3IuIEV2ZW4gaWYgd2UgaGF2ZSBwaHlzaWNhbC1zbG90cworCSAqIGluZm8sIHRoZXJlIGlz IG5vIHdheSB0byBjb25maXJtIHdoZXRoZXIgdGhlcmUgaXMgYW55IHN0YW5kYnkKKwkgKiBjb25m aWd1cmVkIGZvciB0aGUga25vd24gcGh5c2ljYWwgc2xvdHMuCisJICovCisJaWYgKHN0cmNtcCgq bmV3dmFsLCAiKiIpID09IDApCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJcIiVzXCIgaXMg bm90IGFjY2VwdGVkIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMiLAorCQkJCQkJCSpuZXd2YWwpOwor CQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyogTm93IHZlcmlmeSBpZiB0aGUgc3BlY2lmaWVkIHNs b3RzIHJlYWxseSBleGlzdCBhbmQgaGF2ZSBjb3JyZWN0IHR5cGUgKi8KKwlpZiAoIXZhbGlkYXRl X3N0YW5kYnlfc2xvdHMobmV3dmFsKSkKKwkJcmV0dXJuIGZhbHNlOworCisJKmV4dHJhID0gZ3Vj X3N0cmR1cChFUlJPUiwgKm5ld3ZhbCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEdV QyBhc3NpZ25faG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK3ZvaWQKK2Fzc2lnbl9z dGFuZGJ5X3Nsb3RfbmFtZXMoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKK3sKKwlM aXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCWNoYXIJICAg KnN0YW5kYnlfc2xvdF9uYW1lc19jcHkgPSBleHRyYTsKKworCWxpc3RfZnJlZShzdGFuZGJ5X3Ns b3RfbmFtZXNfbGlzdCk7CisJc3RhbmRieV9zbG90X25hbWVzX2xpc3QgPSBOSUw7CisKKwkvKiBO byB2YWx1ZSBpcyBzcGVjaWZpZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcy4gKi8KKwlpZiAoc3Rh bmRieV9zbG90X25hbWVzX2NweSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZiAoIVNwbGl0SWRl bnRpZmllclN0cmluZyhzdGFuZGJ5X3Nsb3RfbmFtZXNfY3B5LCAnLCcsICZzdGFuZGJ5X3Nsb3Rz KSkKKwl7CisJCS8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gaWYgR1VDIGNoZWNrZWQgY2hlY2tf c3RhbmRieV9zbG90X25hbWVzLiAqLworCQllbG9nKEVSUk9SLCAiaW52YWxpZCBsaXN0IHN5bnRh eCIpOworCX0KKworCS8qCisJICogU3dpdGNoIHRvIHRoZSBzYW1lIG1lbW9yeSBjb250ZXh0IHVu ZGVyIHdoaWNoIEdVQyB2YXJpYWJsZXMgYXJlCisJICogYWxsb2NhdGVkIChHVUNNZW1vcnlDb250 ZXh0KS4KKwkgKi8KKwlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oR2V0TWVtb3J5Q2h1 bmtDb250ZXh0KHN0YW5kYnlfc2xvdF9uYW1lc19jcHkpKTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNf bGlzdCA9IGxpc3RfY29weShzdGFuZGJ5X3Nsb3RzKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKK30KKworLyoKKyAqIFJldHVybiBhIGNvcHkgb2Ygc3RhbmRieV9zbG90X25hbWVz X2xpc3QgaWYgdGhlIGNvcHkgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwKKyAqIG90aGVyd2lzZSByZXR1 cm4gdGhlIG9yaWdpbmFsIGxpc3QuCisgKi8KK0xpc3QgKgorR2V0U3RhbmRieVNsb3RMaXN0KGJv b2wgY29weSkKK3sKKwkvKgorCSAqIFNpbmNlIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmNpbmcgc2xv dHMgdG8gY2FzY2FkaW5nIHN0YW5kYnlzLCB3ZSByZXR1cm4KKwkgKiBOSUwgaGVyZSBpZiB3ZSBh cmUgcnVubmluZyBpbiBhIHN0YW5kYnkgdG8gaW5kaWNhdGUgdGhhdCBubyBzdGFuZGJ5CisJICog c2xvdHMgbmVlZCB0byBiZSB3YWl0ZWQgZm9yLgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jl c3MoKSkKKwkJcmV0dXJuIE5JTDsKKworCWlmIChjb3B5KQorCQlyZXR1cm4gbGlzdF9jb3B5KHN0 YW5kYnlfc2xvdF9uYW1lc19saXN0KTsKKwllbHNlCisJCXJldHVybiBzdGFuZGJ5X3Nsb3RfbmFt ZXNfbGlzdDsKK30KKworLyoKKyAqIFJlbG9hZCB0aGUgY29uZmlnIGZpbGUgYW5kIHJlaW5pdGlh bGl6ZSB0aGUgc3RhbmRieSBzbG90IGxpc3QgaWYgdGhlIEdVQworICogc3RhbmRieV9zbG90X25h bWVzIGhhcyBjaGFuZ2VkLgorICovCit2b2lkCitSZXJlYWRDb25maWdBbmRSZUluaXRTbG90TGlz dChMaXN0ICoqc3RhbmRieV9zbG90cykKK3sKKwljaGFyCSAgICpwcmVfc3RhbmRieV9zbG90X25h bWVzOworCisJLyoKKwkgKiBJZiB3ZSBhcmUgcnVubmluZyBvbiBhIHN0YW5kYnksIHRoZXJlIGlz IG5vIG5lZWQgdG8gcmVsb2FkCisJICogc3RhbmRieV9zbG90X25hbWVzIHNpbmNlIHdlIGRvIG5v dCBzdXBwb3J0IHN5bmNpbmcgc2xvdHMgdG8gY2FzY2FkaW5nCisJICogc3RhbmRieXMuCisJICov CisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCXsKKwkJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdD X1NJR0hVUCk7CisJCXJldHVybjsKKwl9CisKKwlwcmVfc3RhbmRieV9zbG90X25hbWVzID0gcHN0 cmR1cChzdGFuZGJ5X3Nsb3RfbmFtZXMpOworCisJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hV UCk7CisKKwlpZiAoc3RyY21wKHByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMsIHN0YW5kYnlfc2xvdF9u YW1lcykgIT0gMCkKKwl7CisJCWxpc3RfZnJlZSgqc3RhbmRieV9zbG90cyk7CisJCSpzdGFuZGJ5 X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KHRydWUpOworCX0KKworCXBmcmVlKHByZV9zdGFu ZGJ5X3Nsb3RfbmFtZXMpOworfQorCisvKgorICogRmlsdGVyIHRoZSBzdGFuZGJ5IHNsb3RzIGJh c2VkIG9uIHRoZSBzcGVjaWZpZWQgbG9nIHNlcXVlbmNlIG51bWJlcgorICogKHdhaXRfZm9yX2xz bikuCisgKgorICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBwYXNzZWQgc3RhbmRieV9zbG90 cyBsaXN0LCByZW1vdmluZyBhbnkgc2xvdHMgdGhhdAorICogaGF2ZSBhbHJlYWR5IGNhdWdodCB1 cCB0byBvciBzdXJwYXNzZWQgdGhlIGdpdmVuIHdhaXRfZm9yX2xzbi4gQWRkaXRpb25hbGx5LAor ICogaXQgcmVtb3ZlcyBzbG90cyB0aGF0IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgZHJvcHBlZCwg b3IgY29udmVydGVkIHRvCisgKiBsb2dpY2FsIHNsb3RzLgorICovCit2b2lkCitGaWx0ZXJTdGFu ZGJ5U2xvdHMoWExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sIExpc3QgKipzdGFuZGJ5X3Nsb3RzKQor eworCUxpc3RDZWxsICAgKmxjOworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHNfY3B5ID0gKnN0YW5k Ynlfc2xvdHM7CisKKwlmb3JlYWNoKGxjLCBzdGFuZGJ5X3Nsb3RzX2NweSkKKwl7CisJCWNoYXIJ ICAgKm5hbWUgPSBsZmlyc3QobGMpOworCQljaGFyCSAgICp3YXJuaW5nZm10ID0gTlVMTDsKKwkJ UmVwbGljYXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1lZFJlcGxpY2F0aW9u U2xvdChuYW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCS8qCisJCQkgKiBJdCBt YXkgaGFwcGVuIHRoYXQgdGhlIHNsb3Qgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBH VUMKKwkJCSAqIHZhbHVlIGlzIGRyb3BwZWQsIHNvIGxldCdzIHNraXAgb3ZlciBpdC4KKwkJCSAq LworCQkJd2FybmluZ2ZtdCA9IF8oInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBp biBwYXJhbWV0ZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBpZ25vcmluZyIpOworCQl9CisJCWVs c2UgaWYgKFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCXsKKwkJCS8qCisJCQkgKiBJZiBhIGxvZ2lj YWwgc2xvdCBuYW1lIGlzIHByb3ZpZGVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcywgaXNzdWUKKwkJ CSAqIGEgV0FSTklORyBhbmQgc2tpcCBpdC4gQWx0aG91Z2ggbG9naWNhbCBzbG90cyBhcmUgZGlz YWxsb3dlZCBpbgorCQkJICogdGhlIEdVQyBjaGVja19ob29rKHZhbGlkYXRlX3N0YW5kYnlfc2xv dHMpLCBpdCBpcyBzdGlsbAorCQkJICogcG9zc2libGUgZm9yIGEgdXNlciB0byBkcm9wIGFuIGV4 aXN0aW5nIHBoeXNpY2FsIHNsb3QgYW5kCisJCQkgKiByZWNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCB3 aXRoIHRoZSBzYW1lIG5hbWUuIFNpbmNlIGl0IGlzCisJCQkgKiBoYXJtbGVzcywgYSBXQVJOSU5H IHNob3VsZCBiZSBlbm91Z2gsIG5vIG5lZWQgdG8gZXJyb3Itb3V0LgorCQkJICovCisJCQl3YXJu aW5nZm10ID0gXygiY2Fubm90IGhhdmUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBp biBwYXJhbWV0ZXIgXCIlc1wiLCBpZ25vcmluZyIpOworCQl9CisJCWVsc2UKKwkJeworCQkJU3Bp bkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisKKwkJCWlmIChzbG90LT5kYXRhLmludmFsaWRh dGVkICE9IFJTX0lOVkFMX05PTkUpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBTcGVjaWZpZWQgcGh5 c2ljYWwgc2xvdCBoYXZlIGJlZW4gaW52YWxpZGF0ZWQsIHNvIG5vIHBvaW50CisJCQkJICogaW4g d2FpdGluZyBmb3IgaXQuCisJCQkJICovCisJCQkJd2FybmluZ2ZtdCA9IF8oInBoeXNpY2FsIHNs b3QgXCIlc1wiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCIlc1wiIGhhcyBiZWVuIGludmFsaWRh dGVkLCBpZ25vcmluZyIpOworCQkJfQorCQkJZWxzZSBpZiAoWExvZ1JlY1B0cklzSW52YWxpZChz bG90LT5kYXRhLnJlc3RhcnRfbHNuKSB8fAorCQkJCQkgc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA8 IHdhaXRfZm9yX2xzbikKKwkJCXsKKwkJCQlib29sCWluYWN0aXZlID0gKHNsb3QtPmFjdGl2ZV9w aWQgPT0gMCk7CisKKwkJCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQkJCS8q IExvZyB3YXJuaW5nIGlmIG5vIGFjdGl2ZV9waWQgZm9yIHRoaXMgcGh5c2ljYWwgc2xvdCAqLwor CQkJCWlmIChpbmFjdGl2ZSkKKwkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCWVycm1zZygi cmVwbGljYXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgZG9l cyBub3QgaGF2ZSBhY3RpdmVfcGlkIiwKKwkJCQkJCQkJICAgbmFtZSwgInN0YW5kYnlfc2xvdF9u YW1lcyIpLAorCQkJCQkJCWVycmRldGFpbCgiTG9naWNhbCByZXBsaWNhdGlvbiBpcyB3YWl0aW5n IG9uIHRoZSAiCisJCQkJCQkJCQkgICJzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0aCBcIiVzXCIuIiwg bmFtZSksCisJCQkJCQkJZXJyaGludCgiQ29uc2lkZXIgc3RhcnRpbmcgc3RhbmRieSBhc3NvY2lh dGVkIHdpdGggIgorCQkJCQkJCQkJIlwiJXNcIiBvciBhbWVuZCBzdGFuZGJ5X3Nsb3RfbmFtZXMu IiwgbmFtZSkpOworCisJCQkJLyogQ29udGludWUgaWYgdGhlIGN1cnJlbnQgc2xvdCBoYXNuJ3Qg Y2F1Z2h0IHVwLiAqLworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCUFz c2VydChzbG90LT5kYXRhLnJlc3RhcnRfbHNuID49IHdhaXRfZm9yX2xzbik7CisJCQl9CisKKwkJ CVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCQl9CisKKwkJLyoKKwkJICogUmVhY2hp bmcgaGVyZSBpbmRpY2F0ZXMgdGhhdCBlaXRoZXIgdGhlIHNsb3QgaGFzIHBhc3NlZCB0aGUKKwkJ ICogd2FpdF9mb3JfbHNuIG9yIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggdGhlIHNsb3QgdGhhdCBy ZXF1aXJlcyBhCisJCSAqIHdhcm5pbmcgdG8gYmUgcmVwb3J0ZWQuCisJCSAqLworCQlpZiAod2Fy bmluZ2ZtdCkKKwkJCWVyZXBvcnQoV0FSTklORywgZXJybXNnKHdhcm5pbmdmbXQsIG5hbWUsICJz dGFuZGJ5X3Nsb3RfbmFtZXMiKSk7CisKKwkJc3RhbmRieV9zbG90c19jcHkgPSBmb3JlYWNoX2Rl bGV0ZV9jdXJyZW50KHN0YW5kYnlfc2xvdHNfY3B5LCBsYyk7CisJfQorCisJKnN0YW5kYnlfc2xv dHMgPSBzdGFuZGJ5X3Nsb3RzX2NweTsKK30KKworLyoKKyAqIFdhaXQgZm9yIHBoeXNpY2FsIHN0 YW5kYnkgdG8gY29uZmlybSByZWNlaXZpbmcgdGhlIGdpdmVuIGxzbi4KKyAqCisgKiBVc2VkIGJ5 IGxvZ2ljYWwgZGVjb2RpbmcgU1FMIGZ1bmN0aW9ucyB0aGF0IGFjcXVpcmVkIHNsb3Qgd2l0aCBm YWlsb3ZlcgorICogZW5hYmxlZC4gSXQgd2FpdHMgZm9yIHBoeXNpY2FsIHN0YW5kYnlzIGNvcnJl c3BvbmRpbmcgdG8gdGhlIHBoeXNpY2FsIHNsb3RzCisgKiBzcGVjaWZpZWQgaW4gdGhlIHN0YW5k Ynlfc2xvdF9uYW1lcyBHVUMuCisgKi8KK3ZvaWQKK1dhaXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9u KFhMb2dSZWNQdHIgd2FpdF9mb3JfbHNuKQoreworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHM7CisK KwlpZiAoIU15UmVwbGljYXRpb25TbG90LT5kYXRhLmZhaWxvdmVyKQorCQlyZXR1cm47CisKKwlz dGFuZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KHRydWUpOworCisJaWYgKHN0YW5kYnlf c2xvdHMgPT0gTklMKQorCQlyZXR1cm47CisKKwlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1Ns ZWVwKCZXYWxTbmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CisKKwlmb3IgKDs7KQorCXsKKwkJ Q0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKKwkJ eworCQkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCQkJUmVyZWFkQ29uZmlnQW5kUmVJ bml0U2xvdExpc3QoJnN0YW5kYnlfc2xvdHMpOworCQl9CisKKwkJRmlsdGVyU3RhbmRieVNsb3Rz KHdhaXRfZm9yX2xzbiwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8qIEV4aXQgaWYgZG9uZSB3YWl0 aW5nIGZvciBldmVyeSBzbG90LiAqLworCQlpZiAoc3RhbmRieV9zbG90cyA9PSBOSUwpCisJCQli cmVhazsKKworCQkvKgorCQkgKiBXZSB3YWl0IGZvciB0aGUgc2xvdHMgaW4gdGhlIHN0YW5kYnlf c2xvdF9uYW1lcyB0byBjYXRjaCB1cCwgYnV0IHdlCisJCSAqIHVzZSBhIHRpbWVvdXQgc28gd2Ug Y2FuIGFsc28gY2hlY2sgdGhlIGlmIHRoZSBzdGFuZGJ5X3Nsb3RfbmFtZXMgaGFzCisJCSAqIGJl ZW4gY2hhbmdlZC4KKwkJICovCisJCUNvbmRpdGlvblZhcmlhYmxlVGltZWRTbGVlcCgmV2FsU25k Q3RsLT53YWxfY29uZmlybV9yY3ZfY3YsIDEwMDAsCisJCQkJCQkJCQlXQUlUX0VWRU5UX1dBSVRf Rk9SX1NUQU5EQllfQ09ORklSTUFUSU9OKTsKKwl9CisKKwlDb25kaXRpb25WYXJpYWJsZUNhbmNl bFNsZWVwKCk7CisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdHMpOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90ZnVuY3MuYwppbmRleCBiNTlkNmU2MmZkLi43MWI1MGQzMjA4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0 aW9uL2RlY29kZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwuaCIKICNpbmNsdWRl ICJyZXBsaWNhdGlvbi9zbG90LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgog I2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgpAQCAtNDg3LDYgKzQ4OCw4IEBAIHBnX3BoeXNpY2Fs X3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShYTG9nUmVjUHRyIG1vdmV0bykKIAkJICogY3Jhc2gs IGJ1dCB0aGlzIG1ha2VzIHRoZSBkYXRhIGNvbnNpc3RlbnQgYWZ0ZXIgYSBjbGVhbiBzaHV0ZG93 bi4KIAkJICovCiAJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCisJCVBoeXNpY2FsV2Fr ZXVwTG9naWNhbFdhbFNuZCgpOwogCX0KIAogCXJldHVybiByZXRsc247CkBAIC01MjcsNiArNTMw LDEyIEBAIHBnX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92 ZXRvKQogCQkJCQkJCQkJCQkgICAuc2VnbWVudF9jbG9zZSA9IHdhbF9zZWdtZW50X2Nsb3NlKSwK IAkJCQkJCQkJCU5VTEwsIE5VTEwsIE5VTEwpOwogCisJCS8qCisJCSAqIFdhaXQgZm9yIHNwZWNp ZmllZCBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXJzIChpZiBhbnkpCisJCSAq IHRvIGNvbmZpcm0gcmVjZWlwdCBvZiBXQUwgdXAgdG8gbW92ZXRvIGxzbi4KKwkJICovCisJCVdh aXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9uKG1vdmV0byk7CisKIAkJLyoKIAkJICogU3RhcnQgcmVh ZGluZyBhdCB0aGUgc2xvdCdzIHJlc3RhcnRfbHNuLCB3aGljaCB3ZSBrbm93IHRvIHBvaW50IHRv CiAJCSAqIGEgdmFsaWQgcmVjb3JkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRl eCA5ZDg3MTBmOTA0Li4yZmNkODY0YjI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIu YwpAQCAtMTIxOSw3ICsxMjE5LDYgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxp Y2F0aW9uU2xvdENtZCAqY21kKQogCiAJcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoY21kLCAm cmVzZXJ2ZV93YWwsICZzbmFwc2hvdF9hY3Rpb24sICZ0d29fcGhhc2UsCiAJCQkJCQkJICAgJmZh aWxvdmVyKTsKLQogCWlmIChjbWQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNBTCkK IAl7CiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCBmYWxzZSwKQEAgLTE3 MzEsMjcgKzE3MzAsNzggQEAgV2FsU25kVXBkYXRlUHJvZ3Jlc3MoTG9naWNhbERlY29kaW5nQ29u dGV4dCAqY3R4LCBYTG9nUmVjUHRyIGxzbiwgVHJhbnNhY3Rpb25JZAogCQlQcm9jZXNzUGVuZGlu Z1dyaXRlcygpOwogfQogCisvKgorICogV2FrZSB1cCB0aGUgbG9naWNhbCB3YWxzZW5kZXIgcHJv Y2Vzc2VzIHdpdGggZmFpbG92ZXItZW5hYmxlZCBzbG90cyBpZiB0aGUKKyAqIGN1cnJlbnRseSBh Y3F1aXJlZCBwaHlzaWNhbCBzbG90IGlzIHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMK KyAqIEdVQy4KKyAqLwordm9pZAorUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKHZvaWQpCit7 CisJTGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCUFzc2VydChN eVJlcGxpY2F0aW9uU2xvdCAmJiBTbG90SXNQaHlzaWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpOwor CisJc3RhbmRieV9zbG90cyA9IEdldFN0YW5kYnlTbG90TGlzdChmYWxzZSk7CisKKwlmb3JlYWNo KGxjLCBzdGFuZGJ5X3Nsb3RzKQorCXsKKwkJY2hhcgkgICAqbmFtZSA9IGxmaXJzdChsYyk7CisK KwkJaWYgKHN0cmNtcChuYW1lLCBOYW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUp KSA9PSAwKQorCQl7CisJCQlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmV2FsU25kQ3RsLT53 YWxfY29uZmlybV9yY3ZfY3YpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCiAvKgogICogV2Fp dCB0aWxsIFdBTCA8IGxvYyBpcyBmbHVzaGVkIHRvIGRpc2sgc28gaXQgY2FuIGJlIHNhZmVseSBz ZW50IHRvIGNsaWVudC4KICAqCi0gKiBSZXR1cm5zIGVuZCBMU04gb2YgZmx1c2hlZCBXQUwuICBO b3JtYWxseSB0aGlzIHdpbGwgYmUgPj0gbG9jLCBidXQKLSAqIGlmIHdlIGRldGVjdCBhIHNodXRk b3duIHJlcXVlc3QgKGVpdGhlciBmcm9tIHBvc3RtYXN0ZXIgb3IgY2xpZW50KQotICogd2Ugd2ls bCByZXR1cm4gZWFybHksIHNvIGNhbGxlciBtdXN0IGFsd2F5cyBjaGVjay4KKyAqIElmIHRoZSB3 YWxzZW5kZXIgaG9sZHMgYSBsb2dpY2FsIHNsb3QgdGhhdCBoYXMgZW5hYmxlZCBmYWlsb3Zlciwg d2UgYWxzbworICogd2FpdCBmb3IgYWxsIHRoZSBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxpY2F0 aW9uIHN0YW5kYnkgc2VydmVycyB0bworICogY29uZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBS ZWNlbnRGbHVzaFB0ci4KKyAqCisgKiBSZXR1cm5zIGVuZCBMU04gb2YgZmx1c2hlZCBXQUwuICBO b3JtYWxseSB0aGlzIHdpbGwgYmUgPj0gbG9jLCBidXQgaWYgd2UKKyAqIGRldGVjdCBhIHNodXRk b3duIHJlcXVlc3QgKGVpdGhlciBmcm9tIHBvc3RtYXN0ZXIgb3IgY2xpZW50KSB3ZSB3aWxsIHJl dHVybgorICogZWFybHksIHNvIGNhbGxlciBtdXN0IGFsd2F5cyBjaGVjay4KICAqLwogc3RhdGlj IFhMb2dSZWNQdHIKIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiB7CiAJaW50CQkJ d2FrZUV2ZW50czsKKwlib29sCQl3YWl0X2Zvcl9zdGFuZGJ5ID0gZmFsc2U7CisJdWludDMyCQl3 YWl0X2V2ZW50OworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHMgPSBOSUw7CiAJc3RhdGljIFhMb2dS ZWNQdHIgUmVjZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAorCWlmIChNeVJlcGxp Y2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlcikKKwkJc3RhbmRieV9zbG90cyA9IEdldFN0YW5kYnlT bG90TGlzdCh0cnVlKTsKKwogCS8qCi0JICogRmFzdCBwYXRoIHRvIGF2b2lkIGFjcXVpcmluZyB0 aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cgd2UKLQkgKiBoYXZlIGVub3VnaCBX QUwgYXZhaWxhYmxlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBpZiB3ZSdyZQot CSAqIGZhciBiZWhpbmQuCisJICogQ2hlY2sgaWYgYWxsIHRoZSBzdGFuZGJ5IHNlcnZlcnMgaGF2 ZSBjb25maXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8KKwkgKiBSZWNlbnRGbHVzaFB0ciBldmVu IHdoZW4gd2UgYWxyZWFkeSBrbm93IHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUuCisJICoK KwkgKiBOb3RlIHRoYXQgd2UgY2Fubm90IGRpcmVjdGx5IHJldHVybiB3aXRob3V0IGNoZWNraW5n IHRoZSBzdGF0dXMgb2YKKwkgKiBzdGFuZGJ5IHNlcnZlcnMgYmVjYXVzZSB0aGUgc3RhbmRieV9z bG90X25hbWVzIG1heSBoYXZlIGNoYW5nZWQsIHdoaWNoCisJICogbWVhbnMgdGhlcmUgY291bGQg YmUgbmV3IHN0YW5kYnkgc2xvdHMgaW4gdGhlIGxpc3QgdGhhdCBoYXZlIG5vdCB5ZXQKKwkgKiBj YXVnaHQgdXAgdG8gdGhlIFJlY2VudEZsdXNoUHRyLgogCSAqLwotCWlmIChSZWNlbnRGbHVzaFB0 ciAhPSBJbnZhbGlkWExvZ1JlY1B0ciAmJgotCQlsb2MgPD0gUmVjZW50Rmx1c2hQdHIpCi0JCXJl dHVybiBSZWNlbnRGbHVzaFB0cjsKKwlpZiAoIVhMb2dSZWNQdHJJc0ludmFsaWQoUmVjZW50Rmx1 c2hQdHIpICYmIGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwl7CisJCUZpbHRlclN0YW5kYnlTbG90 cyhSZWNlbnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8qCisJCSAqIEZhc3QgcGF0 aCB0byBhdm9pZCBhY3F1aXJpbmcgdGhlIHNwaW5sb2NrIGluIGNhc2Ugd2UgYWxyZWFkeSBrbm93 CisJCSAqIHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUgYW5kIGFsbCB0aGUgc3RhbmRieSBz ZXJ2ZXJzIGhhdmUKKwkJICogY29uZmlybWVkIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2VudEZs dXNoUHRyLiBUaGlzIGlzIHBhcnRpY3VsYXJseQorCQkgKiBpbnRlcmVzdGluZyBpZiB3ZSdyZSBm YXIgYmVoaW5kLgorCQkgKi8KKwkJaWYgKHN0YW5kYnlfc2xvdHMgPT0gTklMKQorCQkJcmV0dXJu IFJlY2VudEZsdXNoUHRyOworCX0KIAogCS8qIEdldCBhIG1vcmUgcmVjZW50IGZsdXNoIHBvaW50 ZXIuICovCiAJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKQEAgLTE3NzIsNyArMTgyMiw3IEBA IFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChDb25maWdSZWxvYWRQZW5k aW5nKQogCQl7CiAJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7Ci0JCQlQcm9jZXNzQ29u ZmlnRmlsZShQR0NfU0lHSFVQKTsKKwkJCVJlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KCZz dGFuZGJ5X3Nsb3RzKTsKIAkJCVN5bmNSZXBJbml0Q29uZmlnKCk7CiAJCX0KIApAQCAtMTc4Nyw4 ICsxODM3LDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChnb3Rf U1RPUFBJTkcpCiAJCQlYTG9nQmFja2dyb3VuZEZsdXNoKCk7CiAKKwkJLyoKKwkJICogVXBkYXRl IHRoZSBzdGFuZGJ5IHNsb3RzIHRoYXQgaGF2ZSBub3QgeWV0IGNhdWdodCB1cCB0byB0aGUgZmx1 c2hlZAorCQkgKiBwb3NpdGlvbi4gSXQgaXMgZ29vZCB0byB3YWl0IHVwIHRvIFJlY2VudEZsdXNo UHRyIGFuZCB0aGVuIGxldCBpdAorCQkgKiBzZW5kIHRoZSBjaGFuZ2VzIHRvIGxvZ2ljYWwgc3Vi c2NyaWJlcnMgb25lIGJ5IG9uZSB3aGljaCBhcmUKKwkJICogYWxyZWFkeSBjb3ZlcmVkIGluIFJl Y2VudEZsdXNoUHRyIHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IG9uIGV2ZXJ5CisJCSAqIGNoYW5n ZSBmb3Igc3RhbmRieSBjb25maXJtYXRpb24uCisJCSAqLworCQlpZiAod2FpdF9mb3Jfc3RhbmRi eSkKKwkJCUZpbHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMp OworCiAJCS8qIFVwZGF0ZSBvdXIgaWRlYSBvZiB0aGUgY3VycmVudGx5IGZsdXNoZWQgcG9zaXRp b24uICovCi0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCWVsc2UgaWYgKCFSZWNvdmVy eUluUHJvZ3Jlc3MoKSkKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7 CiAJCWVsc2UKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsK QEAgLTE4MTYsOSArMTg3NiwxOCBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQog CQkJIXdhaXRpbmdfZm9yX3BpbmdfcmVzcG9uc2UpCiAJCQlXYWxTbmRLZWVwYWxpdmUoZmFsc2Us IEludmFsaWRYTG9nUmVjUHRyKTsKIAotCQkvKiBjaGVjayB3aGV0aGVyIHdlJ3JlIGRvbmUgKi8K LQkJaWYgKGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwkJaWYgKGxvYyA+IFJlY2VudEZsdXNoUHRy KQorCQkJd2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX0ZPUl9XQUw7CisJ CWVsc2UgaWYgKHN0YW5kYnlfc2xvdHMpCisJCXsKKwkJCXdhaXRfZXZlbnQgPSBXQUlUX0VWRU5U X1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OOworCQkJd2FpdF9mb3Jfc3RhbmRieSA9IHRy dWU7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBBbHJlYWR5IGNhdWdodCB1cCBhbmQgZG9lc24n dCBuZWVkIHRvIHdhaXQgZm9yIHN0YW5kYnlfc2xvdHMuICovCiAJCQlicmVhazsKKwkJfQogCiAJ CS8qIFdhaXRpbmcgZm9yIG5ldyBXQUwuIFNpbmNlIHdlIG5lZWQgdG8gd2FpdCwgd2UncmUgbm93 IGNhdWdodCB1cC4gKi8KIAkJV2FsU25kQ2F1Z2h0VXAgPSB0cnVlOwpAQCAtMTg1OCw5ICsxOTI3 LDExIEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChwcV9pc19zZW5k X3BlbmRpbmcoKSkKIAkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dSSVRFQUJMRTsKIAotCQlX YWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dB SVRfRk9SX1dBTCk7CisJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCB3YWl0X2V2 ZW50KTsKIAl9CiAKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7CisKIAkvKiByZWFjdGl2YXRl IGxhdGNoIHNvIFdhbFNuZExvb3Aga25vd3MgdG8gY29udGludWUgKi8KIAlTZXRMYXRjaChNeUxh dGNoKTsKIAlyZXR1cm4gUmVjZW50Rmx1c2hQdHI7CkBAIC0yMjY4LDYgKzIzMzksNyBAQCBQaHlz aWNhbENvbmZpcm1SZWNlaXZlZExvY2F0aW9uKFhMb2dSZWNQdHIgbHNuKQogCXsKIAkJUmVwbGlj YXRpb25TbG90TWFya0RpcnR5KCk7CiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKKwkJUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKCk7CiAJfQogCiAJLyoKQEAgLTM1 MzAsNiArMzYwMiw3IEBAIFdhbFNuZFNobWVtSW5pdCh2b2lkKQogCiAJCUNvbmRpdGlvblZhcmlh YmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCQlDb25kaXRpb25WYXJpYWJsZUlu aXQoJldhbFNuZEN0bC0+d2FsX3JlcGxheV9jdik7CisJCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgm V2FsU25kQ3RsLT53YWxfY29uZmlybV9yY3ZfY3YpOwogCX0KIH0KIApAQCAtMzU5OSw4ICszNjcy LDE0IEBAIFdhbFNuZFdhaXQodWludDMyIHNvY2tldF9ldmVudHMsIGxvbmcgdGltZW91dCwgdWlu dDMyIHdhaXRfZXZlbnQpCiAJICoKIAkgKiBBbmQsIHdlIHVzZSBzZXBhcmF0ZSBzaGFyZWQgbWVt b3J5IENWcyBmb3IgcGh5c2ljYWwgYW5kIGxvZ2ljYWwKIAkgKiB3YWxzZW5kZXJzIGZvciBzZWxl Y3RpdmUgd2FrZSB1cHMsIHNlZSBXYWxTbmRXYWtldXAoKSBmb3IgbW9yZSBkZXRhaWxzLgorCSAq CisJICogSWYgdGhlIHdhaXQgZXZlbnQgaXMgV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04s IHdhaXQgb24gYW5vdGhlciBDVgorCSAqIHVudGlsIGF3YWtlbmVkIGJ5IHBoeXNpY2FsIHdhbHNl bmRlcnMgYWZ0ZXIgdGhlIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZQorCSAqIHJlY2VpcHQgb2Yg dGhlIExTTi4KIAkgKi8KLQlpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9Q SFlTSUNBTCkKKwlpZiAod2FpdF9ldmVudCA9PSBXQUlUX0VWRU5UX1dBSVRfRk9SX1NUQU5EQllf Q09ORklSTUFUSU9OKQorCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZXYWxTbmRD dGwtPndhbF9jb25maXJtX3Jjdl9jdik7CisJZWxzZSBpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQ TElDQVRJT05fS0lORF9QSFlTSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVl cCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCWVsc2UgaWYgKE15V2FsU25kLT5raW5kID09 IFJFUExJQ0FUSU9OX0tJTkRfTE9HSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9T bGVlcCgmV2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggYWVlNWZlNzMxNS4uZmJhOTA0MDE2 NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1l cy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50 eHQKQEAgLTc4LDYgKzc4LDcgQEAgR1NTX09QRU5fU0VSVkVSCSJXYWl0aW5nIHRvIHJlYWQgZGF0 YSBmcm9tIHRoZSBjbGllbnQgd2hpbGUgZXN0YWJsaXNoaW5nIGEgR1NTQVAKIExJQlBRV0FMUkVD RUlWRVJfQ09OTkVDVAkiV2FpdGluZyBpbiBXQUwgcmVjZWl2ZXIgdG8gZXN0YWJsaXNoIGNvbm5l Y3Rpb24gdG8gcmVtb3RlIHNlcnZlci4iCiBMSUJQUVdBTFJFQ0VJVkVSX1JFQ0VJVkUJIldhaXRp bmcgaW4gV0FMIHJlY2VpdmVyIHRvIHJlY2VpdmUgZGF0YSBmcm9tIHJlbW90ZSBzZXJ2ZXIuIgog U1NMX09QRU5fU0VSVkVSCSJXYWl0aW5nIGZvciBTU0wgd2hpbGUgYXR0ZW1wdGluZyBjb25uZWN0 aW9uLiIKK1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OCSJXYWl0aW5nIGZvciB0aGUgV0FM IHRvIGJlIHJlY2VpdmVkIGJ5IHBoeXNpY2FsIHN0YW5kYnkuIgogV0FMX1NFTkRFUl9XQUlUX0ZP Ul9XQUwJIldhaXRpbmcgZm9yIFdBTCB0byBiZSBmbHVzaGVkIGluIFdBTCBzZW5kZXIgcHJvY2Vz cy4iCiBXQUxfU0VOREVSX1dSSVRFX0RBVEEJIldhaXRpbmcgZm9yIGFueSBhY3Rpdml0eSB3aGVu IHByb2Nlc3NpbmcgcmVwbGllcyBmcm9tIFdBTCByZWNlaXZlciBpbiBXQUwgc2VuZGVyIHByb2Nl c3MuIgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDBmNWVjNjNkZTEuLjJm ZjAzODc5ZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC00NjE4LDYgKzQ2 MTgsMjAgQEAgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJ CWNoZWNrX2RlYnVnX2lvX2RpcmVjdCwgYXNzaWduX2RlYnVnX2lvX2RpcmVjdCwgTlVMTAogCX0s CiAKKwl7CisJCXsic3RhbmRieV9zbG90X25hbWVzIiwgUEdDX1NJR0hVUCwgUkVQTElDQVRJT05f UFJJTUFSWSwKKwkJCWdldHRleHRfbm9vcCgiTGlzdHMgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0 YW5kYnkgc2VydmVyIHNsb3QgIgorCQkJCQkJICJuYW1lcyB0aGF0IGxvZ2ljYWwgV0FMIHNlbmRl ciBwcm9jZXNzZXMgd2lsbCB3YWl0IGZvci4iKSwKKwkJCWdldHRleHRfbm9vcCgiRGVjb2RlZCBj aGFuZ2VzIGFyZSBzZW50IG91dCB0byBwbHVnaW5zIGJ5IGxvZ2ljYWwgIgorCQkJCQkJICJXQUwg c2VuZGVyIHByb2Nlc3NlcyBvbmx5IGFmdGVyIHNwZWNpZmllZCAiCisJCQkJCQkgInJlcGxpY2F0 aW9uIHNsb3RzIGNvbmZpcm0gcmVjZWl2aW5nIFdBTC4iKSwKKwkJCUdVQ19MSVNUX0lOUFVUIHwg R1VDX0xJU1RfUVVPVEUKKwkJfSwKKwkJJnN0YW5kYnlfc2xvdF9uYW1lcywKKwkJIiIsCisJCWNo ZWNrX3N0YW5kYnlfc2xvdF9uYW1lcywgYXNzaWduX3N0YW5kYnlfc2xvdF9uYW1lcywgTlVMTAor CX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxM LCBOVUxMfSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDEzNmJlOTEyZTYuLjAyMmEyMDUw MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTMzNCw2ICszMzQsOCBAQAogCQkJCSMgbWV0aG9kIHRvIGNob29zZSBzeW5jIHN0YW5kYnlz LCBudW1iZXIgb2Ygc3luYyBzdGFuZGJ5cywKIAkJCQkjIGFuZCBjb21tYS1zZXBhcmF0ZWQgbGlz dCBvZiBhcHBsaWNhdGlvbl9uYW1lCiAJCQkJIyBmcm9tIHN0YW5kYnkocyk7ICcqJyA9IGFsbAor I3N0YW5kYnlfc2xvdF9uYW1lcyA9ICcnICMgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkg c2VydmVyIHNsb3QgbmFtZXMgdGhhdAorCQkJCSMgbG9naWNhbCB3YWxzZW5kZXIgcHJvY2Vzc2Vz IHdpbGwgd2FpdCBmb3IKIAogIyAtIFN0YW5kYnkgU2VydmVycyAtCiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaAppbmRleCBiMzEwYjgwOWM0Li42MjIwMGZjYzMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o CkBAIC0yNDEsNiArMjQxLDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJlcGxpY2F0aW9uU2xvdCAq TXlSZXBsaWNhdGlvblNsb3Q7CiAKIC8qIEdVQ3MgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQg bWF4X3JlcGxpY2F0aW9uX3Nsb3RzOworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKnN0YW5kYnlf c2xvdF9uYW1lczsKIAogLyogc2htZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zICovCiBleHRl cm4gU2l6ZSBSZXBsaWNhdGlvblNsb3RzU2htZW1TaXplKHZvaWQpOwpAQCAtMjg3LDQgKzI4OCwx MCBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyhib29sIGlzX3NodXRk b3duKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2 b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOwogCitleHRlcm4gTGlzdCAqR2V0U3RhbmRi eVNsb3RMaXN0KGJvb2wgY29weSk7CitleHRlcm4gdm9pZCBXYWl0Rm9yU3RhbmRieUNvbmZpcm1h dGlvbihYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbik7CitleHRlcm4gdm9pZCBGaWx0ZXJTdGFuZGJ5 U2xvdHMoWExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sCisJCQkJCQkJCQkgTGlzdCAqKnN0YW5kYnlf c2xvdHMpOworZXh0ZXJuIHZvaWQgUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xvdExpc3QoTGlzdCAq KnN0YW5kYnlfc2xvdHMpOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5oCmluZGV4IDFiNThkNTBiM2IuLjlhNDJiMDFmOWEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCkBAIC00NSw2ICs0NSw3IEBAIGV4dGVybiB2b2lkIFdh bFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFdhaXRTdG9wcGluZyh2 b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVy biB2b2lkIFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZvaWQpOworZXh0ZXJuIHZvaWQgUGh5c2ljYWxX YWtldXBMb2dpY2FsV2FsU25kKHZvaWQpOwogCiAvKgogICogUmVtZW1iZXIgdGhhdCB3ZSB3YW50 IHRvIHdha2V1cCB3YWxzZW5kZXJzIGxhdGVyCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs c2VuZGVyX3ByaXZhdGUuaAppbmRleCAzMTEzZTllYTQ3Li4wZjk2MmIwYzcyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgKQEAgLTExMyw2ICsxMTMsMTMg QEAgdHlwZWRlZiBzdHJ1Y3QKIAlDb25kaXRpb25WYXJpYWJsZSB3YWxfZmx1c2hfY3Y7CiAJQ29u ZGl0aW9uVmFyaWFibGUgd2FsX3JlcGxheV9jdjsKIAorCS8qCisJICogVXNlZCBieSBwaHlzaWNh bCB3YWxzZW5kZXJzIGhvbGRpbmcgc2xvdHMgc3BlY2lmaWVkIGluCisJICogc3RhbmRieV9zbG90 X25hbWVzIHRvIHdha2UgdXAgbG9naWNhbCB3YWxzZW5kZXJzIGhvbGRpbmcKKwkgKiBmYWlsb3Zl ci1lbmFibGVkIHNsb3RzIHdoZW4gYSB3YWxyZWNlaXZlciBjb25maXJtcyB0aGUgcmVjZWlwdCBv ZiBMU04uCisJICovCisJQ29uZGl0aW9uVmFyaWFibGUgd2FsX2NvbmZpcm1fcmN2X2N2OworCiAJ V2FsU25kCQl3YWxzbmRzW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07CiB9IFdhbFNuZEN0bERhdGE7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKaW5kZXggNTMwMGM0NGYzYi4uNDY0OTk2YjRmMCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvZ3VjX2hvb2tzLmgKQEAgLTE2Miw1ICsxNjIsOCBAQCBleHRlcm4gYm9vbCBjaGVja193YWxf Y29uc2lzdGVuY3lfY2hlY2tpbmcoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLAogZXh0ZXJu IHZvaWQgYXNzaWduX3dhbF9jb25zaXN0ZW5jeV9jaGVja2luZyhjb25zdCBjaGFyICpuZXd2YWws IHZvaWQgKmV4dHJhKTsKIGV4dGVybiBib29sIGNoZWNrX3dhbF9zZWdtZW50X3NpemUoaW50ICpu ZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7CiBleHRlcm4gdm9pZCBhc3Np Z25fd2FsX3N5bmNfbWV0aG9kKGludCBuZXdfd2FsX3N5bmNfbWV0aG9kLCB2b2lkICpleHRyYSk7 CitleHRlcm4gYm9vbCBjaGVja19zdGFuZGJ5X3Nsb3RfbmFtZXMoY2hhciAqKm5ld3ZhbCwgdm9p ZCAqKmV4dHJhLAorCQkJCQkJCQkJIEd1Y1NvdXJjZSBzb3VyY2UpOworZXh0ZXJuIHZvaWQgYXNz aWduX3N0YW5kYnlfc2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsK IAogI2VuZGlmCQkJCQkJCS8qIEdVQ19IT09LU19IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWNvdmVyeS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCmluZGV4 IDg4ZmIwMzA2ZjUuLjQxNTJjMDczMTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L21l c29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCkBAIC00NSw2ICs0 NSw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzN19pbnZhbGlkX2RhdGFiYXNlLnBsJywKICAg ICAgICd0LzAzOF9zYXZlX2xvZ2ljYWxfc2xvdHNfc2h1dGRvd24ucGwnLAogICAgICAgJ3QvMDM5 X2VuZF9vZl93YWwucGwnLAorICAgICAgJ3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3lu Yy5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNl9sb2dpY2Fs X2RlY29kaW5nLnBsCmluZGV4IDVjN2I0Y2E1ZTMuLjg1ZjAxOTc3NGMgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwKKysrIGIvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMTcyLDkgKzE3MiwxMCBAQCBp cygkbm9kZV9wcmltYXJ5LT5zbG90KCdvdGhlcmRiX3Nsb3QnKS0+eydzbG90X25hbWUnfSwKIAl1 bmRlZiwgJ2xvZ2ljYWwgc2xvdCB3YXMgYWN0dWFsbHkgZHJvcHBlZCB3aXRoIERCJyk7CiAKICMg VGVzdCBsb2dpY2FsIHNsb3QgYWR2YW5jaW5nIGFuZCBpdHMgZHVyYWJpbGl0eS4KKyMgUGFzcyBm YWlsb3Zlcj10cnVlIChsYXN0LWFyZyksIGl0IHNob3VsZCBub3QgaGF2ZSBhbnkgaW1wYWN0IG9u IGFkdmFuY2luZy4KIG15ICRsb2dpY2FsX3Nsb3QgPSAnbG9naWNhbF9zbG90JzsKICRub2RlX3By aW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2Up OyIKKwkiU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRsb2dpY2Fs X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IgogKTsKICRub2Rl X3ByaW1hcnktPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsIGIvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCmluZGV4IGM1NWEyODVj YTMuLjY5MTI4ZTJiNGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5k YnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9z dGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKQEAgLTgsMjEgKzgsNzQgQEAgdXNlIFBvc3Rn cmVTUUw6OlRlc3Q6OlV0aWxzOwogdXNlIFRlc3Q6Ok1vcmU7CiAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFRlc3QgdGhhdCB3aGVuIGEgc3Vi c2NyaXB0aW9uIHdpdGggZmFpbG92ZXIgZW5hYmxlZCBpcyBjcmVhdGVkLCBpdCB3aWxsIGFsdGVy Ci0jIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUgY29ycmVzcG9uZGluZyBzbG90IG9uIHRo ZSBwdWJsaXNoZXIuCisjIFRlc3QgcHJpbWFyeSBkaXNhbGxvd2luZyBzcGVjaWZpZWQgbG9naWNh bCByZXBsaWNhdGlvbiBzbG90cyBnZXR0aW5nIGFoZWFkIG9mCisjIHNwZWNpZmllZCBwaHlzaWNh bCByZXBsaWNhdGlvbiBzbG90cy4gSXQgdXNlcyB0aGUgZm9sbG93aW5nIHNldCB1cDoKKyMKKyMJ CQkJfCAtLS0tPiBzdGFuZGJ5MSAocHJpbWFyeV9zbG90X25hbWUgPSBzYjFfc2xvdCkKKyMJCQkJ fCAtLS0tPiBzdGFuZGJ5MiAocHJpbWFyeV9zbG90X25hbWUgPSBzYjJfc2xvdCkKKyMgcHJpbWFy eSAtLS0tLQl8CisjCQkJCXwgLS0tLT4gc3Vic2NyaWJlcjEgKGZhaWxvdmVyID0gdHJ1ZSkKKyMJ CQkJfCAtLS0tPiBzdWJzY3JpYmVyMiAoZmFpbG92ZXIgPSBmYWxzZSkKKyMKKyMgc3RhbmRieV9z bG90X25hbWVzID0gJ3NiMV9zbG90JworIworIyBTZXQgdXAgaXMgY29uZmlndXJlZCBpbiBzdWNo IGEgd2F5IHRoYXQgdGhlIGxvZ2ljYWwgc2xvdCBvZiBzdWJzY3JpYmVyMSBpcworIyBlbmFibGVk IGZhaWxvdmVyLCB0aHVzIGl0IHdpbGwgd2FpdCBmb3IgdGhlIHBoeXNpY2FsIHNsb3Qgb2YKKyMg c3RhbmRieTEoc2IxX3Nsb3QpIHRvIGNhdGNoIHVwIGJlZm9yZSBzZW5kaW5nIGRlY29kZWQgY2hh bmdlcyB0byBzdWJzY3JpYmVyMS4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiAKLSMgQ3JlYXRlIHB1Ymxpc2hlcgotbXkgJHB1Ymxpc2hlciA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ci0kcHVibGlzaGVyLT5p bml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKLSRwdWJsaXNoZXItPnN0YXJ0Owor IyBDcmVhdGUgcHJpbWFyeQorbXkgJHByaW1hcnkgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy LT5uZXcoJ3ByaW1hcnknKTsKKyRwcmltYXJ5LT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xv Z2ljYWwnKTsKIAotJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxWwotCUNS RUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7Ci0JQ1JFQVRFIFBVQkxJQ0FU SU9OIHJlZ3Jlc3NfbXlwdWIgRk9SIFRBQkxFIHRhYl9pbnQ7Ci1dKTsKKyMgQ29uZmlndXJlIHBy aW1hcnkgdG8gZGlzYWxsb3cgYW55IGxvZ2ljYWwgc2xvdHMgdGhhdCBlbmFibGVkIGZhaWxvdmVy IGZyb20KKyMgZ2V0dGluZyBhaGVhZCBvZiBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24g c2xvdCAoc2IxX3Nsb3QpLgorJHByaW1hcnktPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNv bmYnLCBxcSgKK3N0YW5kYnlfc2xvdF9uYW1lcyA9ICdzYjFfc2xvdCcKKykpOworJHByaW1hcnkt PnN0YXJ0OworCiskcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBnX2NyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjFfc2xvdCcpO30pOworJHByaW1hcnktPnBz cWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25f c2xvdCgnc2IyX3Nsb3QnKTt9KTsKKworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi Q1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsiKTsKKworbXkgJGJhY2t1 cF9uYW1lID0gJ2JhY2t1cCc7CiskcHJpbWFyeS0+YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMg Q3JlYXRlIGEgc3RhbmRieQorbXkgJHN0YW5kYnkxID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdzdGFuZGJ5MScpOworJHN0YW5kYnkxLT5pbml0X2Zyb21fYmFja3VwKAorCSRwcmlt YXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3Jpbmcg PT4gMSk7Ciskc3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgK K3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMV9zbG90JworKSk7Ciskc3RhbmRieTEtPnN0YXJ0Owor JHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFuZGJ5MSk7CisKKyMgQ3JlYXRl IGFub3RoZXIgc3RhbmRieQorbXkgJHN0YW5kYnkyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdzdGFuZGJ5MicpOworJHN0YW5kYnkyLT5pbml0X2Zyb21fYmFja3VwKAorCSRwcmlt YXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3Jpbmcg PT4gMSk7Ciskc3RhbmRieTItPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgK K3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMl9zbG90JworKSk7Ciskc3RhbmRieTItPnN0YXJ0Owor JHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFuZGJ5Mik7CiAKKyMgQ3JlYXRl IGEgcHVibGljYXRpb24gb24gdGhlIHByaW1hcnkKK215ICRwdWJsaXNoZXIgPSAkcHJpbWFyeTsK KyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04g cmVncmVzc19teXB1YiBGT1IgVEFCTEUgdGFiX2ludDsiKTsKIG15ICRwdWJsaXNoZXJfY29ubnN0 ciA9ICRwdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7CiAKICMgQ3JlYXRl IGEgc3Vic2NyaWJlciBub2RlLCB3YWl0IGZvciBzeW5jIHRvIGNvbXBsZXRlCkBAIC0zMCw1NiAr ODMsMjA3IEBAIG15ICRzdWJzY3JpYmVyMSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygnc3Vic2NyaWJlcjEnKTsKICRzdWJzY3JpYmVyMS0+aW5pdDsKICRzdWJzY3JpYmVyMS0+c3Rh cnQ7CiAKLSMgQ3JlYXRlIGEgc2xvdCBvbiB0aGUgcHVibGlzaGVyIHdpdGggZmFpbG92ZXIgZGlz YWJsZWQKKyMgQ3JlYXRlIGEgdGFibGUgYW5kIGEgc3Vic2NyaXB0aW9uIHdpdGggZmFpbG92ZXIg PSB0cnVlCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVB VEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUNSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNB VElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxzdWIxX3Nsb3QsIGZhaWxvdmVy ID0gdHJ1ZSk7CitdKTsKKyRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7 CisKKyMgQ3JlYXRlIGFub3RoZXIgc3Vic2NyaWJlciBub2RlIHdpdGhvdXQgZW5hYmxpbmcgZmFp bG92ZXIsIHdhaXQgZm9yIHN5bmMgdG8KKyMgY29tcGxldGUKK215ICRzdWJzY3JpYmVyMiA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjInKTsKKyRzdWJzY3JpYmVy Mi0+aW5pdDsKKyRzdWJzY3JpYmVyMi0+c3RhcnQ7Ciskc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBL RVkpOworCUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjIgQ09OTkVDVElPTiAnJHB1 Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFt ZSA9IGxzdWIyX3Nsb3QpOworXSk7Ciskc3Vic2NyaWJlcjItPndhaXRfZm9yX3N1YnNjcmlwdGlv bl9zeW5jOworCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZp ZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxp Y2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIGNv bWVzIHVwLgorJHN0YW5kYnkxLT5zdG9wOworCisjIENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHBy aW1hcnkKK215ICRwcmltYXJ5X3Jvd19jb3VudCA9IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMo MSwgJHByaW1hcnlfcm93X2NvdW50KTsiKTsKKworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0aGF0 J3MgdXAgYW5kIHJ1bm5pbmcgZ2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkKKyRwcmltYXJ5LT53 YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTIpOworbXkgJHJlc3VsdCA9ICRzdGFuZGJ5 Mi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jv d19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MiBnZXRz IGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgV2FpdCBmb3IgdGhlIHN1YnNjcmlwdGlvbiB0aGF0 J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIG5vdCBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyMgSXQg Z2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBhbnkgc3RhbmRi eXMuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMicpOworJHJl c3VsdCA9ICRzdWJzY3JpYmVyMi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3Vu dCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAn dCcsICJzdWJzY3JpYmVyMiBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgVGhlIHN1YnNj cmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIGVuYWJsZWQgZm9yIGZhaWxvdmVy CisjIGRvZXNuJ3QgZ2V0IHRoZSBkYXRhIGZyb20gcHJpbWFyeSBhbmQga2VlcHMgd2FpdGluZyBm b3IgdGhlCisjIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcy4KKyRyZXN1 bHQgPQorICAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50 KCopID0gMCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIx IGRvZXNuJ3QgZ2V0IGRhdGEgZnJvbSBwcmltYXJ5IHVudGlsIHN0YW5kYnkxIGFja25vd2xlZGdl cyBjaGFuZ2VzIgorKTsKKworIyBTdGFydCB0aGUgc3RhbmRieSBzcGVjaWZpZWQgaW4gc3RhbmRi eV9zbG90X25hbWVzIGFuZCB3YWl0IGZvciBpdCB0byBjYXRjaAorIyB1cCB3aXRoIHRoZSBwcmlt YXJ5LgorJHN0YW5kYnkxLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1 cCgkc3RhbmRieTEpOworJHJlc3VsdCA9ICRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7 CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MSBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisK KyMgTm93IHRoYXQgdGhlIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBp cyB1cCBhbmQgcnVubmluZywKKyMgcHJpbWFyeSBtdXN0IHNlbmQgdGhlIGRlY29kZWQgY2hhbmdl cyB0byBzdWJzY3JpcHRpb24gZW5hYmxlZCBmb3IgZmFpbG92ZXIKKyMgV2hpbGUgdGhlIHN0YW5k Ynkgd2FzIGRvd24sIHRoaXMgc3Vic2NyaWJlciBkaWRuJ3QgcmVjZWl2ZSBhbnkgZGF0YSBmcm9t CisjIHByaW1hcnkgaS5lLiB0aGUgcHJpbWFyeSBkaWRuJ3QgYWxsb3cgaXQgdG8gZ28gYWhlYWQg b2Ygc3RhbmRieS4KKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIx Jyk7CiskcmVzdWx0ID0gJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopID0gJHByaW1hcnlfcm93X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRy ZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBz dGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hhbmdlcyIpOworCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNz b2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbwor IyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2Vz IHVudGlsIHRoZSBzdGFuZGJ5CisjIHNsb3QncyByZXN0YXJ0X2xzbiBpcyBhZHZhbmNlZCBvciB0 aGUgc2xvdCBpcyByZW1vdmVkIGZyb20gdGhlCisjIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0Lgor JHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJUUlVOQ0FURSB0YWJfaW50OyIpOwor JHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKyRzdGFuZGJ5 MS0+c3RvcDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgVmVyaWZ5IHRoYXQgd2hlbiB1c2luZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXMgdG8gY29uc3VtZSBjaGFuZ2VzIGZyb20gYQorIyBsb2dpY2FsIHNsb3Qgd2l0aCBmYWlsb3Zl ciBlbmFibGVkLCBpdCB3aWxsIGFsc28gd2FpdCBmb3IgdGhlIHNsb3RzIHNwZWNpZmllZAorIyBp biBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENyZWF0ZSBhIGxvZ2ljYWwgJ3Rlc3Rf ZGVjb2RpbmcnIHJlcGxpY2F0aW9uIHNsb3Qgd2l0aCBmYWlsb3ZlciBlbmFibGVkCiAkcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0 ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xzdWIxX3Nsb3QnLCAncGdvdXRwdXQnLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKTsiCisJIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlv bl9zbG90KCd0ZXN0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7 IgorKTsKKworbXkgJGJhY2tfcSA9ICRwcmltYXJ5LT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVz Jywgb25fZXJyb3Jfc3RvcCA9PiAwKTsKK215ICRwaWQgPSAkYmFja19xLT5xdWVyeSgnU0VMRUNU IHBnX2JhY2tlbmRfcGlkKCknKTsKKworIyBUcnkgYW5kIGdldCBjaGFuZ2VzIGZyb20gdGhlIGxv Z2ljYWwgc2xvdCB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuCitteSAkb2Zmc2V0ID0gLXMgJHByaW1h cnktPmxvZ2ZpbGU7CiskYmFja19xLT5xdWVyeV91bnRpbChxci8vLAorCSJTRUxFQ1QgcGdfbG9n aWNhbF9zbG90X2dldF9jaGFuZ2VzKCd0ZXN0X3Nsb3QnLCBOVUxMLCBOVUxMKTtcbiIpOworCisj IFdhaXQgdW50aWwgdGhlIHByaW1hcnkgc2VydmVyIGxvZ3MgYSB3YXJuaW5nIGluZGljYXRpbmcg dGhhdCBpdCBpcyB3YWl0aW5nCisjIGZvciB0aGUgc2IxX3Nsb3QgdG8gY2F0Y2ggdXAuCiskcHJp bWFyeS0+d2FpdF9mb3JfbG9nKAorCXFyL1dBUk5JTkc6ICggW0EtWjAtOV0rOik/IHJlcGxpY2F0 aW9uIHNsb3QgXCJzYjFfc2xvdFwiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCJzdGFuZGJ5X3Ns b3RfbmFtZXNcIiBkb2VzIG5vdCBoYXZlIGFjdGl2ZV9waWQvLAorCSRvZmZzZXQpOworCitvaygk cHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcGdfY2FuY2VsX2JhY2tlbmQo JHBpZCkiKSwKKwkiY2FuY2VsbGluZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgY29tbWFu ZCIpOworCiskYmFja19xLT5xdWl0OworCiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgndGVzdF9zbG90Jyk7IgorKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gd2lsbCB3YWl0IGZvciB0aGUgdXNlci1jcmVh dGVkIGluYWN0aXZlCisjIHBoeXNpY2FsIHNsb3QgdG8gY2F0Y2ggdXAgdW50aWwgd2UgcmVtb3Zl IHRoZSBzbG90IGZyb20gc3RhbmRieV9zbG90X25hbWVzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgc29tZSBkYXRhIG9uIHRo ZSBwcmltYXJ5CiskcHJpbWFyeV9yb3dfY291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVz KDEsICRwcmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyRyZXN1bHQgPQorICAkc3Vic2NyaWJlcjEt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9pbnQ7 Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEgYXMg dGhlIHNiMV9zbG90IGRvZXNuJ3QgY2F0Y2ggdXAiKTsKKworIyBSZW1vdmUgdGhlIHN0YW5kYnkg ZnJvbSB0aGUgc3RhbmRieV9zbG90X25hbWVzIGxpc3QgYW5kIHJlbG9hZCB0aGUKKyMgY29uZmln dXJhdGlvbi4KKyRwcmltYXJ5LT5hZGp1c3RfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3N0YW5k Ynlfc2xvdF9uYW1lcycsICInJyIpOworJHByaW1hcnktPnJlbG9hZDsKKworIyBTaW5jZSB0aGVy ZSBhcmUgbm8gc2xvdHMgaW4gc3RhbmRieV9zbG90X25hbWVzLCB0aGUgcHJpbWFyeSBzZXJ2ZXIg c2hvdWxkIG5vdworIyBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8gdGhlIHN1YnNjcmlwdGlv bi4KKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CiskcmVz dWx0ID0gJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50 KCopID0gJHByaW1hcnlfcm93X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0 JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5MSBp cyByZW1vdmVkIGZyb20gdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0IgorKTsKKworIyBQdXQg dGhlIHN0YW5kYnkgYmFjayBvbiB0aGUgcHJpbWFyeV9zbG90X25hbWUgZm9yIHRoZSByZXN0IG9m IHRoZSB0ZXN0cworJHByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnc3Rh bmRieV9zbG90X25hbWVzJywgJ3NiMV9zbG90Jyk7CiskcHJpbWFyeS0+cmVsb2FkOworCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRo YXQgd2hlbiBhIHN1YnNjcmlwdGlvbiB3aXRoIGZhaWxvdmVyIGVuYWJsZWQgaXMgY3JlYXRlZCwg aXQgd2lsbCBhbHRlcgorIyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRp bmcgc2xvdCBvbiB0aGUgcHVibGlzaGVyLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgYSBzbG90IG9uIHRoZSBwdWJsaXNoZXIg d2l0aCBmYWlsb3ZlciBkaXNhYmxlZAorJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgn bHN1YjNfc2xvdCcsICdwZ291dHB1dCcsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOyIKICk7CiAKICMg Q29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGlzIHR1cm5lZCBvZmYK LWlzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCitpcyggJHByaW1hcnktPnNhZmVfcHNxbCgKIAkJ J3Bvc3RncmVzJywKLQkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90 cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCQlxe1NFTEVDVCBmYWlsb3ZlciBm cm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViM19zbG90Jzt9 CiAJKSwKIAkiZiIsCi0JJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgZmFsc2Ugb24gdGhlIHB1 Ymxpc2hlcicpOworCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwcmlt YXJ5Jyk7CiAKICMgQ3JlYXRlIGFub3RoZXIgc3Vic2NyaXB0aW9uICh1c2luZyB0aGUgc2FtZSBz bG90IGNyZWF0ZWQgYWJvdmUpIHRoYXQgZW5hYmxlcwogIyBmYWlsb3Zlci4KLSRzdWJzY3JpYmVy MS0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxWwotCUNSRUFURSBUQUJMRSB0YWJfaW50IChh IGludCBQUklNQVJZIEtFWSk7Ci0JQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfbXlwdWIg V0lUSCAoc2xvdF9uYW1lID0gbHN1YjFfc2xvdCwgY29weV9kYXRhPWZhbHNlLCBmYWlsb3ZlciA9 IHRydWUsIGNyZWF0ZV9zbG90ID0gZmFsc2UpOwotXSk7Ciskc3Vic2NyaWJlcjEtPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSAgICAiQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMyBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInICIKKwkgIC4gIlBVQkxJQ0FUSU9OIHJlZ3Jl c3NfbXlwdWIgV0lUSCAoc2xvdF9uYW1lID0gbHN1YjNfc2xvdCwgY29weV9kYXRhPWZhbHNlLCBm YWlsb3ZlciA9IHRydWUsIGNyZWF0ZV9zbG90ID0gZmFsc2UpOyIKKyk7CiAKICMgQ29uZmlybSB0 aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0dXJuZWQgb24K LWlzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCitpcyggJHByaW1hcnktPnNhZmVfcHNxbCgKIAkJ J3Bvc3RncmVzJywKLQkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90 cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCQlxe1NFTEVDVCBmYWlsb3ZlciBm cm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViM19zbG90Jzt9 CiAJKSwKIAkidCIsCi0JJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHVi bGlzaGVyJyk7CisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHJpbWFy eScpOworCiskcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJUUlVOQ0FURSB0YWJfaW50 Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAjIFRlc3QgaWYgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIGEgc3Vic2NyaXB0 aW9uIHVwZGF0ZXMgdGhlCiAjIGNvcnJlc3BvbmRpbmcgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhl IHNsb3QuCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogCi0kc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfbXlzdWIxIERJU0FCTEUiKTsKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjMgRElTQUJMRSIpOwog CiAjIFdhaXQgZm9yIHRoZSByZXBsaWNhdGlvbiBzbG90IHRvIGJlY29tZSBpbmFjdGl2ZSBvbiB0 aGUgcHVibGlzaGVyCi0kcHVibGlzaGVyLT5wb2xsX3F1ZXJ5X3VudGlsKAorJHByaW1hcnktPnBv bGxfcXVlcnlfdW50aWwoCiAJJ3Bvc3RncmVzJywKLQkiU0VMRUNUIENPVU5UKCopIEZST00gcGdf Y2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xv dCcgQU5EIGFjdGl2ZT0nZiciLAorCSJTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19jYXRhbG9nLnBn X3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViM19zbG90JyBBTkQgYWN0 aXZlPSdmJyIsCiAJMSk7CiAKICMgRGlzYWJsZSBmYWlsb3ZlcgogJHN1YnNjcmliZXIxLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKLQkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFNF VCAoZmFpbG92ZXIgPSBmYWxzZSkiKTsKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlz dWIzIFNFVCAoZmFpbG92ZXIgPSBmYWxzZSkiKTsKIAogIyBDb25maXJtIHRoYXQgdGhlIGZhaWxv dmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBvZmYKLWlzKCAkcHVibGlz aGVyLT5zYWZlX3BzcWwoCitpcyggJHByaW1hcnktPnNhZmVfcHNxbCgKIAkJJ3Bvc3RncmVzJywK LQkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90 X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCQlxe1NFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViM19zbG90Jzt9CiAJKSwKIAkiZiIs CiAJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgZmFsc2Ugb24gdGhlIHB1Ymxpc2hlcicpOwpA QCAtODcsMTYgKzI5MSwxOCBAQCBpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAogIyBFbmFibGUg ZmFpbG92ZXIgYW5kIHRoZSBzdWJzY3JpcHRpb24KICRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAog CSdwb3N0Z3JlcycsIHFxWwotCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBTRVQg KGZhaWxvdmVyID0gdHJ1ZSk7Ci0JQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIEVO QUJMRTsKKwlBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjMgU0VUIChmYWlsb3ZlciA9 IHRydWUpOworCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMyBFTkFCTEU7CiBdKTsK IAogIyBDb25maXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBi ZWVuIHR1cm5lZCBvbgotb2soICRwdWJsaXNoZXItPnBvbGxfcXVlcnlfdW50aWwoCitvayggJHBy aW1hcnktPnBvbGxfcXVlcnlfdW50aWwoCiAJCSdwb3N0Z3JlcycsCi0JCSJTRUxFQ1QgZmFpbG92 ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xv dCc7IiksCisJCSJTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVS RSBzbG90X25hbWUgPSAnbHN1YjNfc2xvdCc7IiksCiAJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92 ZXIgdHJ1ZSBvbiB0aGUgcHVibGlzaGVyJyk7CiAKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMyIpOworCiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IGxvZ2lj YWwgZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKICMgQ29uZmlndXJlIHN0YW5kYnkxIHRv IHJlcGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVkCkBAIC0x MDgsMzQgKzMxNCwyNyBAQCBvayggJHB1Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgKICMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgbHN1 YjFfc2xvdChzeW5jZWRfc2xvdCkKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiAKLW15ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsKLW15ICRiYWNrdXBf bmFtZSA9ICdiYWNrdXAnOwotJHByaW1hcnktPmJhY2t1cCgkYmFja3VwX25hbWUpOwotCi0jIENy ZWF0ZSBhIHN0YW5kYnkKLW15ICRzdGFuZGJ5MSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIt Pm5ldygnc3RhbmRieTEnKTsKLSRzdGFuZGJ5MS0+aW5pdF9mcm9tX2JhY2t1cCgKLQkkcHJpbWFy eSwgJGJhY2t1cF9uYW1lLAotCWhhc19zdHJlYW1pbmcgPT4gMSwKLQloYXNfcmVzdG9yaW5nID0+ IDEpOwotCiBteSAkY29ubnN0cl8xID0gJHByaW1hcnktPmNvbm5zdHI7CiAkc3RhbmRieTEtPmFw cGVuZF9jb25mKAotCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKKyAgICAncG9zdGdyZXNxbC5jb25m JywgcXEoCiBlbmFibGVfc3luY3Nsb3QgPSB0cnVlCiBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9u CiBwcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFfc2xvdCcKIHByaW1hcnlfY29ubmluZm8gPSAnJGNv bm5zdHJfMSBkYm5hbWU9cG9zdGdyZXMnCiApKTsKIAotJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVz JywKLQlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2IxX3Ns b3QnKTt9KTsKKyMgQWRkIHRoaXMgc3RhbmRieSBpbnRvIHRoZSBwcmltYXJ5J3MgY29uZmlndXJh dGlvbgorJHByaW1hcnktPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3N0 YW5kYnlfc2xvdF9uYW1lcyA9ICdzYjFfc2xvdCcKKykpOworJHByaW1hcnktPnJlbG9hZDsKIAog bXkgJHN0YW5kYnkxX2Nvbm5pbmZvID0gJHN0YW5kYnkxLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9z dGdyZXMnOwogCiAjIFdhaXQgZm9yIHRoZSBzdGFuZGJ5IHRvIHN0YXJ0IHN5bmMKLW15ICRvZmZz ZXQgPSAtcyAkc3RhbmRieTEtPmxvZ2ZpbGU7Ci0kc3RhbmRieTEtPnN0YXJ0OworJG9mZnNldCA9 IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsKICRzdGFuZGJ5MS0+ d2FpdF9mb3JfbG9nKAogCXFyL0xPRzogKCBbQS1aMC05XSs6KT8gd2FpdGluZyBmb3IgcmVtb3Rl IHNsb3QgXCJsc3ViMV9zbG90XCIvLAogCSRvZmZzZXQpOwpAQCAtMjEwLDcgKzQwOSw3IEBAICRz dGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrID0gb2ZmOycpCiAkc3RhbmRieTEtPnJlc3RhcnQ7CiAKICMgQXR0ZW1wdGlu ZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVz dWx0IGluIGFuIGVycm9yCi1teSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRi eTEtPnBzcWwoJ3Bvc3RncmVzJywKK215ICgkcmVzdWx0MSwgJHN0ZG91dCwgJHN0ZGVycikgPSAk c3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKIAkic2VsZWN0ICogZnJvbSBwZ19sb2dpY2FsX3Ns b3RfZ2V0X2NoYW5nZXMoJ2xzdWIxX3Nsb3QnLE5VTEwsTlVMTCk7Iik7CiBvaygkc3RkZXJyID1+ IC9FUlJPUjogIGNhbm5vdCB1c2UgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIgZm9yIGxv Z2ljYWwgZGVjb2RpbmcvLAogCSJsb2dpY2FsIGRlY29kaW5nIGlzIG5vdCBhbGxvd2VkIG9uIHN5 bmNlZCBzbG90Iik7CkBAIC0yMjQsNyArNDIzLDcgQEAgb2soJHN0ZGVyciA9fiAvRVJST1I6ICBj YW5ub3QgYWx0ZXIgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIvLAogCSJzeW5jZWQgc2xv dCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBhbHRlcmVkIik7CiAKICMgQXR0ZW1wdGluZyB0byBkcm9w IGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvcgotKCRyZXN1bHQsICRzdGRv dXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdwb3N0Z3JlcycsCisoJHJlc3VsdDEsICRz dGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xzdWIxX3Nsb3QnKTsiKTsKIG9rKCRzdGRlcnIgPX4g L0VSUk9SOiAgY2Fubm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIvLAogCSJz eW5jZWQgc2xvdCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBkcm9wcGVkIik7Ci0tIAoyLjM0LjEKCg== --000000000000705ebc060e1792db Content-Type: application/octet-stream; name="v57-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Disposition: attachment; filename="v57-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lqyqjjct0 RnJvbSAzYmFjOTU3NzA0OTkxYjFhZGQxYzQ1N2Q1ZDVjOThjZDgzNTNjZjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOToxNToyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU3 IDEvNF0gRW5hYmxlIHNldHRpbmcgZmFpbG92ZXIgcHJvcGVydHkgZm9yIGEgc2xvdCB0aHJvdWdo CiBTUUwgQVBJIGFuZCBzdWJzY3JpcHRpb24gY29tbWFuZHMKClRoaXMgY29tbWl0IGFkZHMgdGhl IGZhaWxvdmVyIHByb3BlcnR5IHRvIHRoZSByZXBsaWNhdGlvbiBzbG90LiBUaGUKZmFpbG92ZXIg cHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNsb3Qgd2lsbCBiZSBzeW5jZWQgdG8gdGhl IHN0YW5kYnkKc2VydmVycywgZW5hYmxpbmcgdGhlIHJlc3VtcHRpb24gb2YgY29ycmVzcG9uZGlu ZyBsb2dpY2FsIHJlcGxpY2F0aW9uCmFmdGVyIGZhaWxvdmVyLiBCdXQgbm90ZSB0aGF0IHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldCBpbmNsdWRlIHRoZQpjYXBhYmlsaXR5IHRvIGFjdHVhbGx5IHN5 bmMgdGhlIHJlcGxpY2F0aW9uIHNsb3Q7IHRoZSBuZXh0IHBhdGNoIHdpbGwKYWRkcmVzcyB0aGF0 LgoKSW4gYWRkaXRpb24sIGEgbmV3IHJlcGxpY2F0aW9uIGNvbW1hbmQgbmFtZWQgQUxURVJfUkVQ TElDQVRJT05fU0xPVCBhbmQgYQpjb3JyZXNwb25kaW5nIHdhbHJlY2VpdmVyIEFQSSBmdW5jdGlv biBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdCBoYXZlIGJlZW4KaW1wbGVtZW50ZWQuIFRoZXNlIGFk ZGl0aW9ucyBwcm92aWRlIHN1YnNjcmliZXJzIG9yIHVzZXJzIHRoZSBhYmlsaXR5IHRvCm1vZGlm eSB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCgpNb3Jlb3ZlciwgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBjYWxsZWQgJ2ZhaWxv dmVyJyBoYXMgYmVlbiBhZGRlZCwKYWxsb3dpbmcgdXNlcnMgdG8gc2V0IGl0IHdoZW4gY3JlYXRp bmcgb3IgYWx0ZXJpbmcgYSBzdWJzY3JpcHRpb24uIEFsc28sCmEgbmV3IHBhcmFtZXRlciAnZmFp bG92ZXInIGlzIGFkZGVkIHRvIHRoZQpwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 IGZ1bmN0aW9uLgoKVGhlIHZhbHVlIG9mIHRoZSAnZmFpbG92ZXInIGZsYWcgaXMgZGlzcGxheWVk IGFzIHBhcnQgb2YKcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBjb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQgICAgICAgfCAgNTggKysrKysKIGNvbnRyaWIvdGVz dF9kZWNvZGluZy9zcWwvc2xvdC5zcWwgICAgICAgICAgICB8ICAxMyArKwogZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrCiBkb2Mvc3JjL3NnbWwv ZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIGRvYy9zcmMvc2dtbC9w cm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA1MSArKysrKwogZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDI4ICsrLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgICAgIHwgIDI1ICsrKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAgfCAyMDIgKysrKysrKysrKysrKysrKy0tCiAuLi4v bGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAgMzggKysrLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgIDUzICsrKy0tCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgNjcgKysrKyst CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX2dyYW0ueSAgICAgICAgICAgfCAgMjAgKy0K IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nhbm5lci5sICAgICAgICB8ICAgMiArCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAgMzMgKystCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgfCAgMTYgKy0KIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgICAgICAgICB8ICAgMiArLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgIDY3ICsrKysrLQog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wZ191cGdyYWRlL2luZm8uYyAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv YmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9i aW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmlu L3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbCAgICAgfCAgIDYgKy0KIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAgICB8ICAxMSArCiBzcmMvaW5jbHVkZS9u b2Rlcy9yZXBsbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMTIgKysKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAgOSArLQogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgIDE4ICstCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDMgKy0KIC4uLi90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgICAgICB8IDEwMiArKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0ICAgIHwgMTY1ICsrKysrKystLS0tLS0tCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgICAgfCAgIDggKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAyICsKIDQwIGZp bGVzIGNoYW5nZWQsIDk2MCBpbnNlcnRpb25zKCspLCAxNTYgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90 c19zeW5jLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Ns b3Qub3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qub3V0CmluZGV4IDYz YTk5NDBmNzMuLjI2MWQ4ODg2ZDMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9l eHBlY3RlZC9zbG90Lm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xv dC5vdXQKQEAgLTQwNiwzICs0MDYsNjEgQEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnY29waWVkX3Nsb3QyX25vdGVtcCcpOwogIAogKDEgcm93KQogCistLSBUZXN0IGZhaWxvdmVy IG9wdGlvbiBvZiBzbG90cy4KK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZh bHNlLCBmYWxzZSwgdHJ1ZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93 KQorCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCBm YWxzZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1Qg J2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJf ZGVmYXVsdF9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UpOworID9jb2x1bW4/ IAorLS0tLS0tLS0tLQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2Ny ZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CisgP2NvbHVt bj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1Qgc2xvdF9uYW1lLCBzbG90 X3R5cGUsIGZhaWxvdmVyIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHM7CisgICAgICAgc2xvdF9u YW1lICAgICAgIHwgc2xvdF90eXBlIHwgZmFpbG92ZXIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgZmFpbG92ZXJfdHJ1ZV9zbG90ICAgIHwgbG9naWNh bCAgIHwgdAorIGZhaWxvdmVyX2ZhbHNlX3Nsb3QgICB8IGxvZ2ljYWwgICB8IGYKKyBmYWlsb3Zl cl9kZWZhdWx0X3Nsb3QgfCBsb2dpY2FsICAgfCBmCisgcGh5c2ljYWxfc2xvdCAgICAgICAgIHwg cGh5c2ljYWwgIHwgZgorKDQgcm93cykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcpOworIHBnX2Ryb3BfcmVwbGljYXRp b25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOworIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3Qn KTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Ns b3Quc3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbAppbmRleCAxYWEyN2M1 NjY3Li40NWFlYWU3ZmQ1IDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Ns b3Quc3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKQEAgLTE3Niwz ICsxNzYsMTYgQEAgT1JERVIgQlkgby5zbG90X25hbWUsIGMuc2xvdF9uYW1lOwogU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3JpZ19zbG90MicpOwogU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnY29waWVkX3Nsb3QyX25vX2NoYW5nZScpOwogU0VMRUNUIHBnX2Ryb3Bf cmVwbGljYXRpb25fc2xvdCgnY29waWVkX3Nsb3QyX25vdGVtcCcpOworCistLSBUZXN0IGZhaWxv dmVyIG9wdGlvbiBvZiBzbG90cy4KK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNh bF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnLCAndGVzdF9kZWNvZGluZycs IGZhbHNlLCBmYWxzZSwgdHJ1ZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcsICd0ZXN0X2RlY29kaW5n JywgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xv Z2ljYWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90JywgJ3Rlc3RfZGVj b2RpbmcnLCBmYWxzZSwgZmFsc2UpOworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlz aWNhbF9yZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CisKK1NFTEVDVCBzbG90X25h bWUsIHNsb3RfdHlwZSwgZmFpbG92ZXIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsKKworU0VM RUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7CitTRUxF Q1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CitTRUxF Q1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnKTsKK1NF TEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKaW5kZXggM2VjNzM5MWVjNS4uZTY2NjczMGM2NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTc5OTAs NiArNzk5MCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5zdWJmYWlsb3ZlcnN0YXRlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN0YXRlIGNvZGVzIGZvciBm YWlsb3ZlciBtb2RlOgorICAgICAgIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZGlzYWJsZWQsCisg ICAgICAgPGxpdGVyYWw+cDwvbGl0ZXJhbD4gPSBwZW5kaW5nIGVuYWJsZW1lbnQsCisgICAgICAg PGxpdGVyYWw+ZTwvbGl0ZXJhbD4gPSBlbmFibGVkCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZp ZWxkPnN1YmNvbm5pbmZvPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4 IGNlYzIxZTQyYzAuLjE2OWRiYTFhOWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjc1NDcsNyArMjc1NDcsNyBAQCBw b3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQuc2VnbWVudF9udW1iZXIgKiBwcy5z ZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIDxpbmRleHRlcm0+CiAgICAgICAgICA8cHJp bWFyeT5wZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9wcmltYXJ5PgogICAgICAg ICA8L2luZGV4dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJhbWV0ZXI+ IDx0eXBlPm5hbWU8L3R5cGU+LCA8cGFyYW1ldGVyPnBsdWdpbjwvcGFyYW1ldGVyPiA8dHlwZT5u YW1lPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPnRlbXBvcmFyeTwvcGFyYW1ldGVyPiA8 dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFtZXRlcj50d29waGFzZTwvcGFyYW1ldGVyPiA8dHlw ZT5ib29sZWFuPC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxmdW5jdGlvbj5wZ19jcmVh dGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNsb3Rf bmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwgPHBhcmFtZXRlcj5wbHVnaW48L3Bh cmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj50ZW1wb3Jh cnk8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJhbWV0ZXI+dHdvcGhhc2U8 L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJhbWV0ZXI+ZmFpbG92ZXI8L3Bh cmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gPC9vcHRpb25hbD4gKQogICAgICAgICA8cmV0 dXJudmFsdWU+cmVjb3JkPC9yZXR1cm52YWx1ZT4KICAgICAgICAgKCA8cGFyYW1ldGVyPnNsb3Rf bmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwKICAgICAgICAgPHBhcmFtZXRlcj5s c248L3BhcmFtZXRlcj4gPHR5cGU+cGdfbHNuPC90eXBlPiApCkBAIC0yNzU2Miw4ICsyNzU2Miwx MyBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQuc2VnbWVudF9udW1iZXIg KiBwcy5zZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIHJlbGVhc2VkIHVwb24gYW55IGVy cm9yLiBUaGUgb3B0aW9uYWwgZm91cnRoIHBhcmFtZXRlciwKICAgICAgICAgPHBhcmFtZXRlcj50 d29waGFzZTwvcGFyYW1ldGVyPiwgd2hlbiBzZXQgdG8gdHJ1ZSwgc3BlY2lmaWVzCiAgICAgICAg IHRoYXQgdGhlIGRlY29kaW5nIG9mIHByZXBhcmVkIHRyYW5zYWN0aW9ucyBpcyBlbmFibGVkIGZv ciB0aGlzCi0gICAgICAgIHNsb3QuIEEgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGhhcyB0aGUgc2Ft ZSBlZmZlY3QgYXMgdGhlIHJlcGxpY2F0aW9uCi0gICAgICAgIHByb3RvY29sIGNvbW1hbmQgPGxp dGVyYWw+Q1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QgLi4uIExPR0lDQUw8L2xpdGVyYWw+LgorICAg ICAgICBzbG90LiBUaGUgb3B0aW9uYWwgZmlmdGggcGFyYW1ldGVyLAorICAgICAgICA8cGFyYW1l dGVyPmZhaWxvdmVyPC9wYXJhbWV0ZXI+LCB3aGVuIHNldCB0byB0cnVlLAorICAgICAgICBzcGVj aWZpZXMgdGhhdCB0aGlzIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhlCisgICAg ICAgIHBoeXNpY2FsIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUg cmVzdW1lZAorICAgICAgICBhZnRlciBmYWlsb3Zlci4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24g aGFzIHRoZSBzYW1lIGVmZmVjdCBhcworICAgICAgICB0aGUgcmVwbGljYXRpb24gcHJvdG9jb2wg Y29tbWFuZAorICAgICAgICA8bGl0ZXJhbD5DUkVBVEVfUkVQTElDQVRJT05fU0xPVCAuLi4gTE9H SUNBTDwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJv dG9jb2wuc2dtbAppbmRleCA2YzNlOGE2MzFkLi45ZGM3YjAxNzViIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApA QCAtMjA2MCw2ICsyMDYwLDE2IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1k YXRhYmFzZSIgLWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5GQUlMT1ZFUiBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXTwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIElmIHRydWUsIHRo ZSBzbG90IGlzIGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZSBwaHlzaWNhbAorICAgICAgICAg IHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRl ciBmYWlsb3Zlci4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PgogCiAgICAgICA8cGFyYT4K QEAgLTIxMjQsNiArMjEzNCw0NyBAQCBwc3FsICJkYm5hbWU9cG9zdGdyZXMgcmVwbGljYXRpb249 ZGF0YWJhc2UiIC1jICJJREVOVElGWV9TWVNURU07IgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtcmVwbGljYXRp b24tYWx0ZXItcmVwbGljYXRpb24tc2xvdCIgeHJlZmxhYmVsPSJBTFRFUl9SRVBMSUNBVElPTl9T TE9UIj4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVJfUkVQTElDQVRJT05fU0xPVDwvbGl0ZXJh bD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+ ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gKQorICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5BTFRFUl9SRVBMSUNBVElPTl9TTE9U PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICA8L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIENoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHJlcGxpY2F0aW9u IHNsb3QuCisgICAgICAgU2VlIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbi1z bG90cyIvPiBmb3IgbW9yZSBhYm91dAorICAgICAgIHJlcGxpY2F0aW9uIHNsb3RzLiBUaGlzIGNv bW1hbmQgaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBsb2dpY2FsCisgICAgICAgcmVw bGljYXRpb24gc2xvdHMuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+Cisg ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgc2xvdCB0byBh bHRlci4gTXVzdCBiZSBhIHZhbGlkIHJlcGxpY2F0aW9uIHNsb3QKKyAgICAgICAgICBuYW1lIChz ZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzLW1hbmlwdWxhdGlv biIvPikuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92 YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgICAgPHBhcmE+VGhlIGZv bGxvd2luZyBvcHRpb25zIGFyZSBzdXBwb3J0ZWQ6PC9wYXJhPgorCisgICAgICA8dmFyaWFibGVs aXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPkZBSUxP VkVSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxl PiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8g dGhlIHBoeXNpY2FsCisgICAgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAgPC9wYXJhPgorICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJs ZWxpc3Q+CisKKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2 YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLXJlcGxpY2F0aW9uLXJlYWQtcmVwbGljYXRpb24tc2xv dCI+CiAgICAgIDx0ZXJtPjxsaXRlcmFsPlJFQURfUkVQTElDQVRJT05fU0xPVDwvbGl0ZXJhbD4g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+CiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PlJFQURfUkVQTElDQVRJT05fU0xPVDwvcHJpbWFyeT48 L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0 aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4 IDZkMzZmZjBkYzkuLmU0ZTFiMTRlYmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbApAQCAtNzMsMTEgKzczLDE3IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAK ICAgIFRoZXNlIGNvbW1hbmRzIGFsc28gY2Fubm90IGJlIGV4ZWN1dGVkIHdoZW4gdGhlIHN1YnNj cmlwdGlvbiBoYXMKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtdHdvLXBoYXNlIj48bGl0ZXJhbD50d29fcGhhc2U8L2xpdGVyYWw+PC9saW5rPgot ICAgY29tbWl0IGVuYWJsZWQsIHVubGVzcworICAgY29tbWl0IGVuYWJsZWQgb3IKKyAgIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxs aXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4KKyAgIGVuYWJsZWQsIHVubGVzcwogICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb3B5LWRh dGEiPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD48L2xpbms+CiAgICBpcyA8bGl0ZXJhbD5m YWxzZTwvbGl0ZXJhbD4uIFNlZSBjb2x1bW4gPHN0cnVjdGZpZWxkPnN1YnR3b3BoYXNlc3RhdGU8 L3N0cnVjdGZpZWxkPgotICAgb2YgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1zdWJzY3JpcHRp b24iPjxzdHJ1Y3RuYW1lPnBnX3N1YnNjcmlwdGlvbjwvc3RydWN0bmFtZT48L2xpbms+Ci0gICB0 byBrbm93IHRoZSBhY3R1YWwgdHdvLXBoYXNlIHN0YXRlLgorICAgYW5kIDxzdHJ1Y3RmaWVsZD5z dWJmYWlsb3ZlcnN0YXRlPC9zdHJ1Y3RmaWVsZD4gb2YKKyAgIDxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctc3Vic2NyaXB0aW9uIj48c3RydWN0bmFtZT5wZ19zdWJzY3JpcHRpb248L3N0cnVjdG5h bWU+PC9saW5rPgorICAgdG8ga25vdyB0aGUgYWN0dWFsIHN0YXRlLgorCisgICBJZiA8bGluayBs aW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0 ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xpbms+CisgICBpcyBlbmFibGVkLCB5b3UgY2FuIHRl bXBvcmFyaWx5IGRpc2FibGUgaXQgaW4gb3JkZXIgdG8gZXhlY3V0ZSB0aGVzZSBjb21tYW5kcy4K ICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKQEAgLTIyNiwxMCArMjMyLDIyIEBAIEFMVEVSIFNV QlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFJFTkFNRSBUTyA8CiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9saXRlcmFsPjwv bGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFt cy13aXRoLWRpc2FibGUtb24tZXJyb3IiPjxsaXRlcmFsPmRpc2FibGVfb25fZXJyb3I8L2xpdGVy YWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtcGFzc3dvcmQtcmVxdWlyZWQiPjxsaXRlcmFsPnBhc3N3b3JkX3JlcXVpcmVk PC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJ1bi1hcy1vd25lciI+PGxpdGVyYWw+cnVuX2FzX293bmVyPC9s aXRlcmFsPjwvbGluaz4sIGFuZAotICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbi1wYXJhbXMtd2l0aC1vcmlnaW4iPjxsaXRlcmFsPm9yaWdpbjwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1ydW4tYXMtb3duZXIiPjxsaXRlcmFsPnJ1bl9hc19vd25lcjwvbGl0ZXJhbD48L2xpbms+ LAorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1vcmlnaW4iPjxsaXRlcmFsPm9yaWdpbjwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIi PjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4uCiAgICAgICBPbmx5IGEgc3VwZXJ1 c2VyIGNhbiBzZXQgPGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZTwvbGl0ZXJhbD4u CiAgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIFdoZW4gYWx0ZXJpbmcgdGhlCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXNs b3QtbmFtZSI+PGxpdGVyYWw+c2xvdF9uYW1lPC9saXRlcmFsPjwvbGluaz4sCisgICAgICB0aGUg PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+IHByb3BlcnR5IG9mIHRoZSBuZXcgc2xvdCBtYXkg ZGlmZmVyIGZyb20gdGhlCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xp bms+CisgICAgICBwYXJhbWV0ZXIgc3BlY2lmaWVkIGluIHRoZSBzdWJzY3JpcHRpb24uIFdoZW4g Y3JlYXRpbmcgdGhlIHNsb3QsCisgICAgICBlbnN1cmUgdGhlIHNsb3QgZmFpbG92ZXIgcHJvcGVy dHkgbWF0Y2hlcyB0aGUKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRp b24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPjwvbGlu az4KKyAgICAgIHBhcmFtZXRlciB2YWx1ZSBvZiB0aGUgc3Vic2NyaXB0aW9uLgorICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGYxYzIwYjNhNDYuLjRkMTdlOTNhMDkg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0zOTksNiAr Mzk5LDMxIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgICAgICA8L3BhcmE+CiAgICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+ICg8dHlwZT5ib29sZWFu PC90eXBlPik8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAg ICAgICAgIFNwZWNpZmllcyB3aGV0aGVyIHRoZSByZXBsaWNhdGlvbiBzbG90IGFzc29jaWF0ZWQg d2l0aCB0aGUgc3Vic2NyaXB0aW9uCisgICAgICAgICAgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQg dG8gdGhlIHBoeXNpY2FsIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbAorICAgICAgICAgIHJlcGxp Y2F0aW9uIGNhbiBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5IGFmdGVyIGZhaWxvdmVy LgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAg ICAgICAgIDwvcGFyYT4KKworICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGltcGxlbWVu dGF0aW9uIG9mIGZhaWxvdmVyIHJlcXVpcmVzIHRoYXQgcmVwbGljYXRpb24KKyAgICAgICAgICBo YXMgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkIHRoZSBpbml0aWFsIHRhYmxlIHN5bmNocm9uaXphdGlv bgorICAgICAgICAgIHBoYXNlLiBTbyBldmVuIHdoZW4gPGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVy YWw+IGlzIGVuYWJsZWQgZm9yIGEKKyAgICAgICAgICBzdWJzY3JpcHRpb24sIHRoZSBpbnRlcm5h bCBmYWlsb3ZlciBzdGF0ZSByZW1haW5zCisgICAgICAgICAgdGVtcG9yYXJpbHkgPHF1b3RlPnBl bmRpbmc8L3F1b3RlPiB1bnRpbCB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UKKyAgICAgICAgICBj b21wbGV0ZXMuIFNlZSBjb2x1bW4gPHN0cnVjdGZpZWxkPnN1YmZhaWxvdmVyc3RhdGU8L3N0cnVj dGZpZWxkPgorICAgICAgICAgIG9mIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctc3Vic2NyaXB0 aW9uIj48c3RydWN0bmFtZT5wZ19zdWJzY3JpcHRpb248L3N0cnVjdG5hbWU+PC9saW5rPgorICAg ICAgICAgIHRvIGtub3cgdGhlIGFjdHVhbCBmYWlsb3ZlciBzdGF0ZS4gSXQgaXMgdGhlIHVzZXIn cyByZXNwb25zaWJpbGl0eQorICAgICAgICAgIHRvIGVuc3VyZSB0aGF0IHRoZSBpbml0aWFsIHRh YmxlIHN5bmNocm9uaXphdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQKKyAgICAgICAgICBiZWZvcmUg YWxsb3dpbmcgdGhlIHN1YnNjcmlwdGlvbiB0byB0cmFuc2l0aW9uIHRvIHRoZSBuZXcgcHJpbWFy eS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxp c3RlbnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PjwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNzJkMDFmYzYyNC4uYzEwODgwYjIwMCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9z eXN0ZW0tdmlld3Muc2dtbApAQCAtMjU1NSw2ICsyNTU1LDE3IEBAIFNFTEVDVCAqIEZST00gcGdf bG9ja3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIDwvaXRlbWl6 ZWRsaXN0PgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5mYWlsb3Zlcjwvc3RydWN0Zmll bGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUcnVlIGlmIHRoaXMgbG9naWNhbCBzbG90IGlzIGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRo ZSBwaHlzaWNhbAorICAgICAgIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBj YW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFyeQorICAgICAgIGFmdGVyIGZhaWxvdmVy LiBBbHdheXMgZmFsc2UgZm9yIHBoeXNpY2FsIHNsb3RzLgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGM1MTZjMjVhYzcuLjUzY2RhOGM2 ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNzMsNiArNzMsNyBA QCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5kaXNh Ymxlb25lcnIgPSBzdWJmb3JtLT5zdWJkaXNhYmxlb25lcnI7CiAJc3ViLT5wYXNzd29yZHJlcXVp cmVkID0gc3ViZm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAlzdWItPnJ1bmFzb3duZXIgPSBz dWJmb3JtLT5zdWJydW5hc293bmVyOworCXN1Yi0+ZmFpbG92ZXJzdGF0ZSA9IHN1YmZvcm0tPnN1 YmZhaWxvdmVyc3RhdGU7CiAKIAkvKiBHZXQgY29ubmluZm8gKi8KIAlkYXR1bSA9IFN5c0NhY2hl R2V0QXR0ck5vdE51bGwoU1VCU0NSSVBUSU9OT0lELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X2Z1bmN0aW9ucy5zcWwKaW5kZXggZjMxNWZlY2YxOC4uMzQ2Y2ZiOThhMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC00NzksNiArNDc5LDcgQEAgQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgK ICAgICBJTiBzbG90X25hbWUgbmFtZSwgSU4gcGx1Z2luIG5hbWUsCiAgICAgSU4gdGVtcG9yYXJ5 IGJvb2xlYW4gREVGQVVMVCBmYWxzZSwKICAgICBJTiB0d29waGFzZSBib29sZWFuIERFRkFVTFQg ZmFsc2UsCisgICAgSU4gZmFpbG92ZXIgYm9vbGVhbiBERUZBVUxUIGZhbHNlLAogICAgIE9VVCBz bG90X25hbWUgbmFtZSwgT1VUIGxzbiBwZ19sc24pCiBSRVRVUk5TIFJFQ09SRAogTEFOR1VBR0Ug SU5URVJOQUwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBlNDNlMzZmNWFj Li4xZTk1NDE0N2U1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDIz LDcgKzEwMjMsOCBAQCBDUkVBVEUgVklFVyBwZ19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAg ICAgICAgTC53YWxfc3RhdHVzLAogICAgICAgICAgICAgTC5zYWZlX3dhbF9zaXplLAogICAgICAg ICAgICAgTC50d29fcGhhc2UsCi0gICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNvbgorICAgICAg ICAgICAgTC5jb25mbGljdF9yZWFzb24sCisgICAgICAgICAgICBMLmZhaWxvdmVyCiAgICAgRlJP TSBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBBUyBMCiAgICAgICAgICAgICBMRUZUIEpPSU4g cGdfZGF0YWJhc2UgRCBPTiAoTC5kYXRvaWQgPSBELm9pZCk7CiAKQEAgLTEzNTcsNyArMTM1OCw4 IEBAIFJFVk9LRSBBTEwgT04gcGdfc3Vic2NyaXB0aW9uIEZST00gcHVibGljOwogR1JBTlQgU0VM RUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVyLCBzdWJlbmFi bGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0 ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJlcXVpcmVkLCBzdWJydW5hc293 bmVyLAotICAgICAgICAgICAgICBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVibGlj YXRpb25zLCBzdWJvcmlnaW4pCisgICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29t bWl0LCBzdWJwdWJsaWNhdGlvbnMsIHN1Ym9yaWdpbiwKKyAgICAgICAgICAgICAgc3ViZmFpbG92 ZXJzdGF0ZSkKICAgICBPTiBwZ19zdWJzY3JpcHRpb24gVE8gcHVibGljOwogCiBDUkVBVEUgVklF VyBwZ19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jCmluZGV4IDc1ZTZjZDhhZTMuLmM3Njg5OGQzYWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTcxLDYgKzcxLDcgQEAKICNkZWZpbmUgU1VC T1BUX1JVTl9BU19PV05FUgkJCTB4MDAwMDEwMDAKICNkZWZpbmUgU1VCT1BUX0xTTgkJCQkJMHgw MDAwMjAwMAogI2RlZmluZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwMDQwMDAKKyNkZWZpbmUgU1VC T1BUX0ZBSUxPVkVSCQkJCTB4MDAwMDgwMDAKIAogLyogY2hlY2sgaWYgdGhlICd2YWwnIGhhcyAn Yml0cycgc2V0ICovCiAjZGVmaW5lIElzU2V0KHZhbCwgYml0cykgICgoKHZhbCkgJiAoYml0cykp ID09IChiaXRzKSkKQEAgLTk2LDYgKzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJv b2wJCXBhc3N3b3JkcmVxdWlyZWQ7CiAJYm9vbAkJcnVuYXNvd25lcjsKIAljaGFyCSAgICpvcmln aW47CisJYm9vbAkJZmFpbG92ZXI7CiAJWExvZ1JlY1B0cglsc247CiB9IFN1Yk9wdHM7CiAKQEAg LTE1Nyw2ICsxNTksOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+cnVuYXNvd25lciA9IGZhbHNlOwog CWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJCW9wdHMtPm9yaWdp biA9IHBzdHJkdXAoTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVk X29wdHMsIFNVQk9QVF9GQUlMT1ZFUikpCisJCW9wdHMtPmZhaWxvdmVyID0gZmFsc2U7CiAKIAkv KiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtMzI2LDYg KzMzMCwxNSBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs IExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCiAJCQkJCQllcnJtc2coInVucmVjb2duaXplZCBvcmlnaW4gdmFsdWU6IFwi JXNcIiIsIG9wdHMtPm9yaWdpbikpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9v cHRzLCBTVUJPUFRfRkFJTE9WRVIpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZh aWxvdmVyIikgPT0gMCkKKwkJeworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBT VUJPUFRfRkFJTE9WRVIpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3Rh dGUpOworCisJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfRkFJTE9WRVI7CisJCQlv cHRzLT5mYWlsb3ZlciA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UgaWYgKElz U2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfTFNOKSAmJgogCQkJCSBzdHJjbXAoZGVmZWwtPmRl Zm5hbWUsICJsc24iKSA9PSAwKQogCQl7CkBAIC01OTEsNyArNjA0LDggQEAgQ3JlYXRlU3Vic2Ny aXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwK IAkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJ CSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAogCQkJCQkgIFNV Qk9QVF9ESVNBQkxFX09OX0VSUiB8IFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8Ci0JCQkJCSAg U1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9SVU5f QVNfT1dORVIgfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfRkFJTE9WRVIpOwogCXBh cnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVk X29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC03MTAsNiArNzI0LDEwIEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJ CXB1YmxpY2F0aW9uTGlzdFRvQXJyYXkocHVibGljYXRpb25zKTsKIAl2YWx1ZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0gPQogCQlDU3RyaW5nR2V0VGV4dERhdHVtKG9wdHMu b3JpZ2luKTsKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZmFpbG92ZXJzdGF0ZSAt IDFdID0KKwkJQ2hhckdldERhdHVtKG9wdHMuZmFpbG92ZXIgPworCQkJCQkgTE9HSUNBTFJFUF9G QUlMT1ZFUl9TVEFURV9QRU5ESU5HIDoKKwkJCQkJIExPR0lDQUxSRVBfRkFJTE9WRVJfU1RBVEVf RElTQUJMRUQpOwogCiAJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVs KSwgdmFsdWVzLCBudWxscyk7CiAKQEAgLTc0Niw2ICs3NjQsOCBAQCBDcmVhdGVTdWJzY3JpcHRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJ CVBHX1RSWSgpOwogCQl7CisJCQlib29sCQlmYWlsb3Zlcl9lbmFibGVkID0gZmFsc2U7CisKIAkJ CWNoZWNrX3B1YmxpY2F0aW9ucyh3cmNvbm4sIHB1YmxpY2F0aW9ucyk7CiAJCQljaGVja19wdWJs aWNhdGlvbnNfb3JpZ2luKHdyY29ubiwgcHVibGljYXRpb25zLCBvcHRzLmNvcHlfZGF0YSwKIAkJ CQkJCQkJCSAgb3B0cy5vcmlnaW4sIE5VTEwsIDAsIHN0bXQtPnN1Ym5hbWUpOwpAQCAtNzc2LDYg Kzc5NiwxOSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLCB0cnVl KTsKIAkJCX0KIAorCQkJLyoKKwkJCSAqIEV2ZW4gaWYgZmFpbG92ZXIgaXMgc2V0LCBkb24ndCBj cmVhdGUgdGhlIHNsb3Qgd2l0aCBmYWlsb3ZlcgorCQkJICogZW5hYmxlZC4gV2lsbCBlbmFibGUg aXQgb25jZSBhbGwgdGhlIHRhYmxlcyBhcmUgc3luY2VkIGFuZAorCQkJICogcmVhZHkuIFRoZSBp bnRlbnRpb24gaXMgdGhhdCBpZiBmYWlsb3ZlciBoYXBwZW5zIGF0IHRoZSB0aW1lIG9mCisJCQkg KiB0YWJsZS1zeW5jLCB1c2VyIHNob3VsZCByZS1sYXVuY2ggdGhlIHN1YnNjcmlwdGlvbiBpbnN0 ZWFkIG9mCisJCQkgKiByZWx5aW5nIG9uIG1haW4gc2xvdCAoaWYgc3luY2VkKSB3aXRoIG5vIHRh YmxlLXN5bmMgZGF0YQorCQkJICogcHJlc2VudC4gV2hlbiB0aGUgc3Vic2NyaXB0aW9uIGhhcyBu byB0YWJsZXMsIGxlYXZlIGZhaWxvdmVyIGFzCisJCQkgKiBmYWxzZSB0byBhbGxvdyBBTFRFUiBT VUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gdG8KKwkJCSAqIHdvcmsuCisJCQkg Ki8KKwkJCWlmIChvcHRzLmZhaWxvdmVyICYmICFvcHRzLmNvcHlfZGF0YSAmJiB0YWJsZXMgIT0g TklMKQorCQkJCWZhaWxvdmVyX2VuYWJsZWQgPSB0cnVlOworCiAJCQkvKgogCQkJICogSWYgcmVx dWVzdGVkLCBjcmVhdGUgcGVybWFuZW50IHNsb3QgZm9yIHRoZSBzdWJzY3JpcHRpb24uIFdlCiAJ CQkgKiB3b24ndCB1c2UgdGhlIGluaXRpYWwgc25hcHNob3QgZm9yIGFueXRoaW5nLCBzbyBubyBu ZWVkIHRvCkBAIC04MDcsMTUgKzg0MCwzOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQl0d29waGFzZV9l bmFibGVkID0gdHJ1ZTsKIAogCQkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4sIG9wdHMuc2xv dF9uYW1lLCBmYWxzZSwgdHdvcGhhc2VfZW5hYmxlZCwKLQkJCQkJCQkJICAgQ1JTX05PRVhQT1JU X1NOQVBTSE9ULCBOVUxMKTsKLQotCQkJCWlmICh0d29waGFzZV9lbmFibGVkKQotCQkJCQlVcGRh dGVUd29QaGFzZVN0YXRlKHN1YmlkLCBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0VOQUJMRUQp OworCQkJCQkJCQkgICBmYWlsb3Zlcl9lbmFibGVkLCBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5V TEwpOwogCisJCQkJLyogVXBkYXRlIHR3b3BoYXNlIGFuZC9vciBmYWlsb3ZlciBzdGF0ZSAqLwor CQkJCUVuYWJsZVR3b1BoYXNlRmFpbG92ZXJUcmlTdGF0ZShzdWJpZCwgdHdvcGhhc2VfZW5hYmxl ZCwKKwkJCQkJCQkJCQkJICAgZmFpbG92ZXJfZW5hYmxlZCk7CiAJCQkJZXJlcG9ydChOT1RJQ0Us CiAJCQkJCQkoZXJybXNnKCJjcmVhdGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxp c2hlciIsCiAJCQkJCQkJCW9wdHMuc2xvdF9uYW1lKSkpOwogCQkJfQorCisJCQkvKgorCQkJICog SWYgdGhlIHNsb3RfbmFtZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB0aGUgY3JlYXRlX3Nsb3Qgb3B0 aW9uLAorCQkJICogaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgdXNlciBpbnRlbmRzIHRvIHVzZSBh biBleGlzdGluZyBzbG90IG9uCisJCQkgKiB0aGUgcHVibGlzaGVyLCBzbyBoZXJlIHdlIGFsdGVy IHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUKKwkJCSAqIHNsb3QgdG8gbWF0Y2ggdGhlIGZh aWxvdmVyIHZhbHVlIGluIHN1YnNjcmlwdGlvbi4KKwkJCSAqCisJCQkgKiBXZSBkbyBub3QgbmVl ZCB0byBjaGFuZ2UgdGhlIGZhaWxvdmVyIHRvIGZhbHNlIGlmIHRoZSBzZXJ2ZXIKKwkJCSAqIGRv ZXMgbm90IHN1cHBvcnQgZmFpbG92ZXIgKGUuZy4gcHJlLVBHMTcpLgorCQkJICovCisJCQllbHNl IGlmIChvcHRzLnNsb3RfbmFtZSAmJgorCQkJCQkgKGZhaWxvdmVyX2VuYWJsZWQgfHwgd2FscmN2 X3NlcnZlcl92ZXJzaW9uKHdyY29ubikgPj0gMTcwMDAwKSkKKwkJCXsKKwkJCQlib29sCQlmYWls b3Zlcl9kZWxheWVkID0gKCFmYWlsb3Zlcl9lbmFibGVkICYmIG9wdHMuZmFpbG92ZXIpOworCisJ CQkJd2FscmN2X2FsdGVyX3Nsb3Qod3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgZmFpbG92ZXJfZW5h YmxlZCk7CisJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCQkoZXJybXNnKCJjaGFuZ2VkIHRoZSBm YWlsb3ZlciBzdGF0ZSBvZiByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIgdG8g JXMiLAorCQkJCQkJCQlvcHRzLnNsb3RfbmFtZSwgZmFpbG92ZXJfZW5hYmxlZCA/ICJ0cnVlIiA6 ICJmYWxzZSIpLAorCQkJCQkJIGZhaWxvdmVyX2RlbGF5ZWQgPworCQkJCQkJIGVycmRldGFpbCgi VGhlIGZhaWxvdmVyIHN0YXRlIHdpbGwgYmUgc2V0IHRvIHRydWUgb25jZSB0YWJsZSBzeW5jaHJv bml6YXRpb24gaGFzIGJlZW4gY29tcGxldGVkLiIpCisJCQkJCQkgOiAwKSk7CisJCQl9CiAJCX0K IAkJUEdfRklOQUxMWSgpOwogCQl7CkBAIC0xMDc5LDYgKzExMzUsNyBAQCBBbHRlclN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlI ZWFwVHVwbGUJdHVwOwogCU9pZAkJCXN1YmlkOwogCWJvb2wJCXVwZGF0ZV90dXBsZSA9IGZhbHNl OworCWJvb2wJCXNldF9mYWlsb3ZlciA9IGZhbHNlOwogCVN1YnNjcmlwdGlvbiAqc3ViOwogCUZv cm1fcGdfc3Vic2NyaXB0aW9uIGZvcm07CiAJYml0czMyCQlzdXBwb3J0ZWRfb3B0czsKQEAgLTEx MzIsNyArMTE4OSw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19D T01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VC T1BUX0RJU0FCTEVfT05fRVJSIHwKIAkJCQkJCQkJICBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQg fAotCQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJ CQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VC T1BUX0ZBSUxPVkVSKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwg c3RtdC0+b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAt MTIxOCw2ICsxMjc2LDQ3IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJvcmlnaW4gLSAxXSA9IHRydWU7CiAJCQkJfQogCisJCQkJaWYgKElzU2V0KG9w dHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikpCisJCQkJeworCQkJCQlpZiAoIXN1 Yi0+c2xvdG5hbWUpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygi Y2Fubm90IHNldCBmYWlsb3ZlciBmb3Igc3Vic2NyaXB0aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBz bG90IG5hbWUiKSkpOworCisJCQkJCS8qCisJCQkJCSAqIERvIG5vdCBhbGxvdyBjaGFuZ2luZyB0 aGUgZmFpbG92ZXIgc3RhdGUgdG8gZmFsc2UgaWYgdGhlCisJCQkJCSAqIHN1YnNjcmlwdGlvbiBp cyBlbmFibGVkLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGZhaWxvdmVyCisJCQkJCSAqIHN0YXRlIG9m IHRoZSBzbG90IG9uIHRoZSBwdWJsaXNoZXIgY2Fubm90IGJlIG1vZGlmaWVkIGlmCisJCQkJCSAq IHRoZSBzbG90IGlzIGN1cnJlbnRseSBiZWluZyBhY3F1aXJlZCBieSB0aGUgYXBwbHkKKwkJCQkJ ICogd29ya2VyLgorCQkJCQkgKi8KKwkJCQkJaWYgKCFvcHRzLmZhaWxvdmVyICYmIHN1Yi0+ZW5h YmxlZCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JK RUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkJCQkgZXJybXNnKCJjYW5ub3Qg c2V0ICVzIGZvciBlbmFibGVkIHN1YnNjcmlwdGlvbiIsCisJCQkJCQkJCQkJImZhaWxvdmVyID0g ZmFsc2UiKSkpOworCisJCQkJCS8qCisJCQkJCSAqIElmIG9wdHMuZmFpbG92ZXIgaXMgdHJ1ZSwg d2UgZG9uJ3QgY2hhbmdlIHRoZSBmYWlsb3ZlcgorCQkJCQkgKiBzdGF0ZSB0byBFTkFCTEVEIGlt bWVkaWF0ZWx5IGJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0CisJCQkJCSAqIHNvbWUgdGFibGVz IGhhdmVuJ3QgcmVhY2hlZCB0aGUgUkVBRFkgc3RhdGUgeWV0LgorCQkJCQkgKiBJbnN0ZWFkLCB3 ZSBzZXQgdGhlIGZhaWxvdmVyIHN0YXRlIHRvIFBFTkRJTkcgYW5kIGxldCBpdAorCQkJCQkgKiBi ZSBoYW5kbGVkIGJ5IHRoZSBhcHBseSB3b3JrZXIuCisJCQkJCSAqLworCQkJCQl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViZmFpbG92ZXJzdGF0ZSAtIDFdID0KKwkJCQkJCUNoYXJHZXRE YXR1bShvcHRzLmZhaWxvdmVyID8KKwkJCQkJCQkJCSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRF X1BFTkRJTkc6CisJCQkJCQkJCQkgTE9HSUNBTFJFUF9GQUlMT1ZFUl9TVEFURV9ESVNBQkxFRCk7 CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyc3RhdGUgLSAx XSA9IHRydWU7CisKKwkJCQkJLyoKKwkJCQkJICogSWYgb3B0cy5mYWlsb3ZlciBpcyBmYWxzZSwg dGhlIGZhaWxvdmVyIHN0YXRlIG9mIHRoZQorCQkJCQkgKiBzbG90IHNob3VsZCBiZSBjaGFuZ2Vk IGFmdGVyIHRoZSBjYXRhbG9nIHVwZGF0ZSBpcworCQkJCQkgKiBjb21wbGV0ZWQuCisJCQkJCSAq LworCQkJCQlzZXRfZmFpbG92ZXIgPSAhb3B0cy5mYWlsb3ZlcjsKKwkJCQl9CisKIAkJCQl1cGRh dGVfdHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTI3OSwxMyArMTM3OCwyMiBA QCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJCQkJIGVycmhpbnQoIlVzZSBBTFRFUiBTVUJTQ1JJUFRJT04gLi4u IFNFVCBQVUJMSUNBVElPTiAuLi4gV0lUSCAocmVmcmVzaCA9IGZhbHNlKS4iKSkpOwogCiAJCQkJ CS8qCi0JCQkJCSAqIFNlZSBBTFRFUl9TVUJTQ1JJUFRJT05fUkVGUkVTSCBmb3IgZGV0YWlscyB3 aHkgdGhpcyBpcwotCQkJCQkgKiBub3QgYWxsb3dlZC4KKwkJCQkJICogU2VlIEFMVEVSX1NVQlND UklQVElPTl9SRUZSRVNIIGZvciBkZXRhaWxzIHdoeQorCQkJCQkgKiBjb3B5X2RhdGEgaXMgbm90 IGFsbG93ZWQgd2hlbiB0d29waGFzZSBvciBmYWlsb3ZlciBpcworCQkJCQkgKiBlbmFibGVkLgog CQkJCQkgKi8KIAkJCQkJaWYgKHN1Yi0+dHdvcGhhc2VzdGF0ZSA9PSBMT0dJQ0FMUkVQX1RXT1BI QVNFX1NUQVRFX0VOQUJMRUQgJiYgb3B0cy5jb3B5X2RhdGEpCiAJCQkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKLQkJCQkJCQkJIGVycm1zZygiQUxURVIgU1VCU0NSSVBUSU9OIHdpdGggcmVmcmVzaCBh bmQgY29weV9kYXRhIGlzIG5vdCBhbGxvd2VkIHdoZW4gdHdvX3BoYXNlIGlzIGVuYWJsZWQiKSwK KwkJCQkJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgc3Vic2NyaXB0aW9uIG9wdGlvbiAqLworCQkJ CQkJCQkgZXJybXNnKCJBTFRFUiBTVUJTQ1JJUFRJT04gd2l0aCByZWZyZXNoIGFuZCBjb3B5X2Rh dGEgaXMgbm90IGFsbG93ZWQgd2hlbiAlcyBpcyBlbmFibGVkIiwgInR3b19waGFzZSIpLAorCQkJ CQkJCQkgZXJyaGludCgiVXNlIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0VUIFBVQkxJQ0FUSU9O IHdpdGggcmVmcmVzaCA9IGZhbHNlLCBvciB3aXRoIGNvcHlfZGF0YSA9IGZhbHNlLCBvciB1c2Ug RFJPUC9DUkVBVEUgU1VCU0NSSVBUSU9OLiIpKSk7CisKKwkJCQkJaWYgKHN1Yi0+ZmFpbG92ZXJz dGF0ZSA9PSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX0VOQUJMRUQgJiYgb3B0cy5jb3B5X2Rh dGEpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCS8qIHRyYW5zbGF0b3I6ICVzIGlz IGEgc3Vic2NyaXB0aW9uIG9wdGlvbiAqLworCQkJCQkJCQkgZXJybXNnKCJBTFRFUiBTVUJTQ1JJ UFRJT04gd2l0aCByZWZyZXNoIGFuZCBjb3B5X2RhdGEgaXMgbm90IGFsbG93ZWQgd2hlbiAlcyBp cyBlbmFibGVkIiwgImZhaWxvdmVyIiksCiAJCQkJCQkJCSBlcnJoaW50KCJVc2UgQUxURVIgU1VC U0NSSVBUSU9OIC4uLiBTRVQgUFVCTElDQVRJT04gd2l0aCByZWZyZXNoID0gZmFsc2UsIG9yIHdp dGggY29weV9kYXRhID0gZmFsc2UsIG9yIHVzZSBEUk9QL0NSRUFURSBTVUJTQ1JJUFRJT04uIikp KTsKIAogCQkJCQlQcmV2ZW50SW5UcmFuc2FjdGlvbkJsb2NrKGlzVG9wTGV2ZWwsICJBTFRFUiBT VUJTQ1JJUFRJT04gd2l0aCByZWZyZXNoIik7CkBAIC0xMzM0LDEzICsxNDQyLDI2IEBAIEFsdGVy U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCQkJCQkJCQkJCSAiQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBEUk9QIFBVQkxJQ0FUSU9O IC4uLiBXSVRIIChyZWZyZXNoID0gZmFsc2UpIikpKTsKIAogCQkJCQkvKgotCQkJCQkgKiBTZWUg QUxURVJfU1VCU0NSSVBUSU9OX1JFRlJFU0ggZm9yIGRldGFpbHMgd2h5IHRoaXMgaXMKLQkJCQkJ ICogbm90IGFsbG93ZWQuCisJCQkJCSAqIFNlZSBBTFRFUl9TVUJTQ1JJUFRJT05fUkVGUkVTSCBm b3IgZGV0YWlscyB3aHkKKwkJCQkJICogY29weV9kYXRhIGlzIG5vdCBhbGxvd2VkIHdoZW4gdHdv cGhhc2Ugb3IgZmFpbG92ZXIgaXMKKwkJCQkJICogZW5hYmxlZC4KIAkJCQkJICovCiAJCQkJCWlm IChzdWItPnR3b3BoYXNlc3RhdGUgPT0gTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVE ICYmIG9wdHMuY29weV9kYXRhKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCi0JCQkJCQkJCSBl cnJtc2coIkFMVEVSIFNVQlNDUklQVElPTiB3aXRoIHJlZnJlc2ggYW5kIGNvcHlfZGF0YSBpcyBu b3QgYWxsb3dlZCB3aGVuIHR3b19waGFzZSBpcyBlbmFibGVkIiksCisJCQkJCQkvKiB0cmFuc2xh dG9yOiAlcyBpcyBhIHN1YnNjcmlwdGlvbiBvcHRpb24gKi8KKwkJCQkJCQkJIGVycm1zZygiQUxU RVIgU1VCU0NSSVBUSU9OIHdpdGggcmVmcmVzaCBhbmQgY29weV9kYXRhIGlzIG5vdCBhbGxvd2Vk IHdoZW4gJXMgaXMgZW5hYmxlZCIsICJ0d29fcGhhc2UiKSwKKwkJCQkJCS8qIHRyYW5zbGF0b3I6 ICVzIGlzIGFuIFNRTCBBTFRFUiBjb21tYW5kICovCisJCQkJCQkJCSBlcnJoaW50KCJVc2UgJXMg d2l0aCByZWZyZXNoID0gZmFsc2UsIG9yIHdpdGggY29weV9kYXRhID0gZmFsc2UsIG9yIHVzZSBE Uk9QL0NSRUFURSBTVUJTQ1JJUFRJT04uIiwKKwkJCQkJCQkJCQkgaXNhZGQgPworCQkJCQkJCQkJ CSAiQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBBREQgUFVCTElDQVRJT04iIDoKKwkJCQkJCQkJCQkg IkFMVEVSIFNVQlNDUklQVElPTiAuLi4gRFJPUCBQVUJMSUNBVElPTiIpKSk7CisKKwkJCQkJaWYg KHN1Yi0+ZmFpbG92ZXJzdGF0ZSA9PSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX0VOQUJMRUQg JiYgb3B0cy5jb3B5X2RhdGEpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCS8qIHRy YW5zbGF0b3I6ICVzIGlzIGEgc3Vic2NyaXB0aW9uIG9wdGlvbiAqLworCQkJCQkJCQkgZXJybXNn KCJBTFRFUiBTVUJTQ1JJUFRJT04gd2l0aCByZWZyZXNoIGFuZCBjb3B5X2RhdGEgaXMgbm90IGFs bG93ZWQgd2hlbiAlcyBpcyBlbmFibGVkIiwgImZhaWxvdmVyIiksCiAJCQkJCQkvKiB0cmFuc2xh dG9yOiAlcyBpcyBhbiBTUUwgQUxURVIgY29tbWFuZCAqLwogCQkJCQkJCQkgZXJyaGludCgiVXNl ICVzIHdpdGggcmVmcmVzaCA9IGZhbHNlLCBvciB3aXRoIGNvcHlfZGF0YSA9IGZhbHNlLCBvciB1 c2UgRFJPUC9DUkVBVEUgU1VCU0NSSVBUSU9OLiIsCiAJCQkJCQkJCQkJIGlzYWRkID8KQEAgLTEz ODksNyArMTUxMCwxOSBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlpZiAoc3ViLT50d29waGFzZXN0YXRlID09 IExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfRU5BQkxFRCAmJiBvcHRzLmNvcHlfZGF0YSkKIAkJ CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks Ci0JCQkJCQkJIGVycm1zZygiQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIHdpdGggY29w eV9kYXRhIGlzIG5vdCBhbGxvd2VkIHdoZW4gdHdvX3BoYXNlIGlzIGVuYWJsZWQiKSwKKwkJCQkJ LyogdHJhbnNsYXRvcjogJXMgaXMgYSBzdWJzY3JpcHRpb24gb3B0aW9uICovCisJCQkJCQkJIGVy cm1zZygiQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIHdpdGggY29weV9kYXRhIGlzIG5v dCBhbGxvd2VkIHdoZW4gJXMgaXMgZW5hYmxlZCIsICJ0d29fcGhhc2UiKSwKKwkJCQkJCQkgZXJy aGludCgiVXNlIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCB3aXRoIGNvcHlfZGF0YSA9 IGZhbHNlLCBvciB1c2UgRFJPUC9DUkVBVEUgU1VCU0NSSVBUSU9OLiIpKSk7CisKKwkJCQkvKgor CQkJCSAqIFNlZSBjb21tZW50cyBhYm92ZSBmb3IgdHdvcGhhc2VzdGF0ZSwgc2FtZSBob2xkcyB0 cnVlIGZvcgorCQkJCSAqICdmYWlsb3ZlcicuCisJCQkJICovCisJCQkJaWYgKHN1Yi0+ZmFpbG92 ZXJzdGF0ZSA9PSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX0VOQUJMRUQgJiYgb3B0cy5jb3B5 X2RhdGEpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIHN1YnNjcmlwdGlvbiBvcHRp b24gKi8KKwkJCQkJCQkgZXJybXNnKCJBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggd2l0 aCBjb3B5X2RhdGEgaXMgbm90IGFsbG93ZWQgd2hlbiAlcyBpcyBlbmFibGVkIiwgImZhaWxvdmVy IiksCiAJCQkJCQkJIGVycmhpbnQoIlVzZSBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0gg d2l0aCBjb3B5X2RhdGEgPSBmYWxzZSwgb3IgdXNlIERST1AvQ1JFQVRFIFNVQlNDUklQVElPTi4i KSkpOwogCiAJCQkJUHJldmVudEluVHJhbnNhY3Rpb25CbG9jayhpc1RvcExldmVsLCAiQUxURVIg U1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIik7CkBAIC0xNDUzLDYgKzE1ODYsNDkgQEAgQWx0ZXJT dWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJCWhlYXBfZnJlZXR1cGxlKHR1cCk7CiAJfQogCisJLyoKKwkgKiBUcnkgdG8gYWNxdWly ZSB0aGUgY29ubmVjdGlvbiBuZWNlc3NhcnkgZm9yIGFsdGVyaW5nIHNsb3QuCisJICoKKwkgKiBU aGUgc2xvdCB3aWxsIGJlIGFsdGVyZWQgaGVyZSBvbmx5IGlmIHNldHRpbmcgdGhlIGZhaWxvdmVy IGZsYWcgdG8KKwkgKiBmYWxzZSBpbiB0aGUgc2xvdC4KKwkgKgorCSAqIFRoaXMgaGFzIHRvIGJl IGF0IHRoZSBlbmQgYmVjYXVzZSBvdGhlcndpc2UgaWYgdGhlcmUgaXMgYW4gZXJyb3IKKwkgKiB3 aGlsZSBkb2luZyB0aGUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB3ZSB3b24ndCBiZSBhYmxlIHRvIHJv bGxiYWNrCisJICogYWx0ZXJlZCBzbG90LgorCSAqLworCWlmIChzZXRfZmFpbG92ZXIpCisJewor CQlib29sCQltdXN0X3VzZV9wYXNzd29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxSZWNlaXZl ckNvbm4gKndyY29ubjsKKworCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJw cSBjYWxscy4gKi8KKwkJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJ CS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNlX3Bhc3N3 b3JkID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOworCQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKKwkJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJ CQkJCSBlcnJtc2coImNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwgZXJy KSkpOworCisJCVBHX1RSWSgpOworCQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIHN1 Yi0+c2xvdG5hbWUsIGZhbHNlKTsKKworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJtc2co ImNoYW5nZWQgdGhlIGZhaWxvdmVyIHN0YXRlIG9mIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9u IHB1Ymxpc2hlciB0byAlcyIsCisJCQkJCQkJc3ViLT5zbG90bmFtZSwgImZhbHNlIikpKTsKKwkJ fQorCQlQR19GSU5BTExZKCk7CisJCXsKKwkJCXdhbHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJ CX0KKwkJUEdfRU5EX1RSWSgpOworCX0KKwogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CiAKIAlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25J ZCwgc3ViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxy ZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJw cXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYwppbmRleCBjOTc0ODUzOWFhLi40NWM5NDAw NmFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVy L2xpYnBxd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdh bHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYwpAQCAtNzQsOCArNzQsMTEgQEAgc3RhdGljIGNo YXIgKmxpYnBxcmN2X2NyZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJ ICBjb25zdCBjaGFyICpzbG90bmFtZSwKIAkJCQkJCQkJICBib29sIHRlbXBvcmFyeSwKIAkJCQkJ CQkJICBib29sIHR3b19waGFzZSwKKwkJCQkJCQkJICBib29sIGZhaWxvdmVyLAogCQkJCQkJCQkg IENSU1NuYXBzaG90QWN0aW9uIHNuYXBzaG90X2FjdGlvbiwKIAkJCQkJCQkJICBYTG9nUmVjUHRy ICpsc24pOworc3RhdGljIHZvaWQgbGlicHFyY3ZfYWx0ZXJfc2xvdChXYWxSZWNlaXZlckNvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAorCQkJCQkJCQlib29sIGZhaWxvdmVyKTsKIHN0 YXRpYyBwaWRfdCBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQoV2FsUmVjZWl2ZXJDb25uICpjb25u KTsKIHN0YXRpYyBXYWxSY3ZFeGVjUmVzdWx0ICpsaWJwcXJjdl9leGVjKFdhbFJlY2VpdmVyQ29u biAqY29ubiwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnF1ZXJ5LApAQCAtOTYsNiArOTksNyBA QCBzdGF0aWMgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlIFBRV2FsUmVjZWl2ZXJGdW5jdGlvbnMg PSB7CiAJLndhbHJjdl9yZWNlaXZlID0gbGlicHFyY3ZfcmVjZWl2ZSwKIAkud2FscmN2X3NlbmQg PSBsaWJwcXJjdl9zZW5kLAogCS53YWxyY3ZfY3JlYXRlX3Nsb3QgPSBsaWJwcXJjdl9jcmVhdGVf c2xvdCwKKwkud2FscmN2X2FsdGVyX3Nsb3QgPSBsaWJwcXJjdl9hbHRlcl9zbG90LAogCS53YWxy Y3ZfZ2V0X2JhY2tlbmRfcGlkID0gbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkLAogCS53YWxyY3Zf ZXhlYyA9IGxpYnBxcmN2X2V4ZWMsCiAJLndhbHJjdl9kaXNjb25uZWN0ID0gbGlicHFyY3ZfZGlz Y29ubmVjdApAQCAtODg4LDggKzg5Miw4IEBAIGxpYnBxcmN2X3NlbmQoV2FsUmVjZWl2ZXJDb25u ICpjb25uLCBjb25zdCBjaGFyICpidWZmZXIsIGludCBuYnl0ZXMpCiAgKi8KIHN0YXRpYyBjaGFy ICoKIGxpYnBxcmN2X2NyZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hh ciAqc2xvdG5hbWUsCi0JCQkJCSBib29sIHRlbXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsIENSU1Nu YXBzaG90QWN0aW9uIHNuYXBzaG90X2FjdGlvbiwKLQkJCQkJIFhMb2dSZWNQdHIgKmxzbikKKwkJ CQkJIGJvb2wgdGVtcG9yYXJ5LCBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlciwKKwkJCQkJ IENSU1NuYXBzaG90QWN0aW9uIHNuYXBzaG90X2FjdGlvbiwgWExvZ1JlY1B0ciAqbHNuKQogewog CVBHcmVzdWx0ICAgKnJlczsKIAlTdHJpbmdJbmZvRGF0YSBjbWQ7CkBAIC05MTgsNyArOTIyLDgg QEAgbGlicHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFy ICpzbG90bmFtZSwKIAkJCWVsc2UKIAkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY21kLCAnICcp OwogCQl9Ci0KKwkJaWYgKGZhaWxvdmVyKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmY21k LCAiRkFJTE9WRVIsICIpOwogCQlpZiAodXNlX25ld19vcHRpb25zX3N5bnRheCkKIAkJewogCQkJ c3dpdGNoIChzbmFwc2hvdF9hY3Rpb24pCkBAIC05ODcsNiArOTkyLDMzIEBAIGxpYnBxcmN2X2Ny ZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJ cmV0dXJuIHNuYXBzaG90OwogfQogCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRo ZSByZXBsaWNhdGlvbiBzbG90LgorICovCitzdGF0aWMgdm9pZAorbGlicHFyY3ZfYWx0ZXJfc2xv dChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAorCQkJCQlib29s IGZhaWxvdmVyKQoreworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlQR3Jlc3VsdCAgICpyZXM7CisK Kwlpbml0U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICJBTFRFUl9S RVBMSUNBVElPTl9TTE9UICVzICggRkFJTE9WRVIgJXMgKSIsCisJCQkJCSBxdW90ZV9pZGVudGlm aWVyKHNsb3RuYW1lKSwKKwkJCQkJIGZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIik7CisKKwly ZXMgPSBsaWJwcXJjdl9QUWV4ZWMoY29ubi0+c3RyZWFtQ29ubiwgY21kLmRhdGEpOworCXBmcmVl KGNtZC5kYXRhKTsKKworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRf T0spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9M QVRJT04pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90IFwi JXNcIiIsCisJCQkJCQlzbG90bmFtZSkpKTsKKworCVBRY2xlYXIocmVzKTsKK30KKwogLyoKICAq IFJldHVybiBQSUQgb2YgcmVtb3RlIGJhY2tlbmQgcHJvY2Vzcy4KICAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5kZXggZThjYzlhYzU1Mi4uNzRlOWNm Y2UxYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5 bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBA IC02MjQsMTUgKzYyNCwyOCBAQCBwcm9jZXNzX3N5bmNpbmdfdGFibGVzX2Zvcl9hcHBseShYTG9n UmVjUHRyIGN1cnJlbnRfbHNuKQogCQkgKiBOb3RlOiBJZiB0aGUgc3Vic2NyaXB0aW9uIGhhcyBu byB0YWJsZXMgdGhlbiBsZWF2ZSB0aGUgc3RhdGUgYXMKIAkJICogUEVORElORywgd2hpY2ggYWxs b3dzIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiB0bwogCQkgKiB3 b3JrLgorCQkgKgorCQkgKiBTYW1lIGdvZXMgZm9yICdmYWlsb3ZlcicuIEVuYWJsZSBpdCBvbmx5 IGlmIHN1YnNjcmlwdGlvbiBoYXMgdGFibGVzCisJCSAqIGFuZCBhbGwgdGhlIHRhYmxlc3luY3Mg aGF2ZSByZWFjaGVkIFJFQURZIHN0YXRlLgogCQkgKi8KLQkJaWYgKE15U3Vic2NyaXB0aW9uLT50 d29waGFzZXN0YXRlID09IExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfUEVORElORykKKwkJaWYg KE15U3Vic2NyaXB0aW9uLT50d29waGFzZXN0YXRlID09IExPR0lDQUxSRVBfVFdPUEhBU0VfU1RB VEVfUEVORElORyB8fAorCQkJTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyc3RhdGUgPT0gTE9HSUNB TFJFUF9GQUlMT1ZFUl9TVEFURV9QRU5ESU5HKQogCQl7CiAJCQlDb21tYW5kQ291bnRlckluY3Jl bWVudCgpOwkvKiBtYWtlIHVwZGF0ZXMgdmlzaWJsZSAqLwogCQkJaWYgKEFsbFRhYmxlc3luY3NS ZWFkeSgpKQogCQkJewotCQkJCWVyZXBvcnQoTE9HLAotCQkJCQkJKGVycm1zZygibG9naWNhbCBy ZXBsaWNhdGlvbiBhcHBseSB3b3JrZXIgZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIgd2lsbCByZXN0 YXJ0IHNvIHRoYXQgdHdvX3BoYXNlIGNhbiBiZSBlbmFibGVkIiwKLQkJCQkJCQkJTXlTdWJzY3Jp cHRpb24tPm5hbWUpKSk7CisJCQkJaWYgKE15U3Vic2NyaXB0aW9uLT50d29waGFzZXN0YXRlID09 IExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfUEVORElORykKKwkJCQkJZXJlcG9ydChMT0csCisJ CQkJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgc3Vic2NyaXB0aW9uIG9wdGlvbiAqLworCQkJCQkJ CShlcnJtc2coImxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgd29ya2VyIGZvciBzdWJzY3JpcHRp b24gXCIlc1wiIHdpbGwgcmVzdGFydCBzbyB0aGF0ICVzIGNhbiBiZSBlbmFibGVkIiwKKwkJCQkJ CQkJCU15U3Vic2NyaXB0aW9uLT5uYW1lLCAidHdvX3BoYXNlIikpKTsKKworCQkJCWlmIChNeVN1 YnNjcmlwdGlvbi0+ZmFpbG92ZXJzdGF0ZSA9PSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX1BF TkRJTkcpCisJCQkJCWVyZXBvcnQoTE9HLAorCQkJCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIHN1 YnNjcmlwdGlvbiBvcHRpb24gKi8KKwkJCQkJCQkoZXJybXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9u IGFwcGx5IHdvcmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIHJlc3RhcnQgc28gdGhh dCAlcyBjYW4gYmUgZW5hYmxlZCIsCisJCQkJCQkJCQlNeVN1YnNjcmlwdGlvbi0+bmFtZSwgImZh aWxvdmVyIikpKTsKKwogCQkJCXNob3VsZF9leGl0ID0gdHJ1ZTsKIAkJCX0KIAkJfQpAQCAtMTQz MCw3ICsxNDQzLDggQEAgTG9naWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhMb2dSZWNQdHIgKm9yaWdp bl9zdGFydHBvcykKIAkgKi8KIAl3YWxyY3ZfY3JlYXRlX3Nsb3QoTG9nUmVwV29ya2VyV2FsUmN2 Q29ubiwKIAkJCQkJICAgc2xvdG5hbWUsIGZhbHNlIC8qIHBlcm1hbmVudCAqLyAsIGZhbHNlIC8q IHR3b19waGFzZSAqLyAsCi0JCQkJCSAgIENSU19VU0VfU05BUFNIT1QsIG9yaWdpbl9zdGFydHBv cyk7CisJCQkJCSAgIGZhbHNlIC8qIGZhaWxvdmVyICovICwgQ1JTX1VTRV9TTkFQU0hPVCwKKwkJ CQkJICAgb3JpZ2luX3N0YXJ0cG9zKTsKIAogCS8qCiAJICogU2V0dXAgcmVwbGljYXRpb24gb3Jp Z2luIHRyYWNraW5nLiBUaGUgcHVycG9zZSBvZiBkb2luZyB0aGlzIGJlZm9yZSB0aGUKQEAgLTE3 MzIsMTAgKzE3NDYsMTIgQEAgQWxsVGFibGVzeW5jc1JlYWR5KHZvaWQpCiB9CiAKIC8qCi0gKiBV cGRhdGUgdGhlIHR3b19waGFzZSBzdGF0ZSBvZiB0aGUgc3BlY2lmaWVkIHN1YnNjcmlwdGlvbiBp biBwZ19zdWJzY3JpcHRpb24uCisgKiBVcGRhdGUgdGhlIHR3b3BoYXNlIGFuZC9vciBmYWlsb3Zl ciBzdGF0ZSBvZiB0aGUgc3BlY2lmaWVkIHN1YnNjcmlwdGlvbgorICogaW4gcGdfc3Vic2NyaXB0 aW9uLgogICovCiB2b2lkCi1VcGRhdGVUd29QaGFzZVN0YXRlKE9pZCBzdWJvaWQsIGNoYXIgbmV3 X3N0YXRlKQorRW5hYmxlVHdvUGhhc2VGYWlsb3ZlclRyaVN0YXRlKE9pZCBzdWJvaWQsIGJvb2wg ZW5hYmxlX3R3b3BoYXNlLAorCQkJCQkJCSAgIGJvb2wgZW5hYmxlX2ZhaWxvdmVyKQogewogCVJl bGF0aW9uCXJlbDsKIAlIZWFwVHVwbGUJdHVwOwpAQCAtMTc0Myw5ICsxNzU5LDggQEAgVXBkYXRl VHdvUGhhc2VTdGF0ZShPaWQgc3Vib2lkLCBjaGFyIG5ld19zdGF0ZSkKIAlib29sCQlyZXBsYWNl c1tOYXR0c19wZ19zdWJzY3JpcHRpb25dOwogCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfc3Vic2Ny aXB0aW9uXTsKIAotCUFzc2VydChuZXdfc3RhdGUgPT0gTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFU RV9ESVNBQkxFRCB8fAotCQkgICBuZXdfc3RhdGUgPT0gTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFU RV9QRU5ESU5HIHx8Ci0JCSAgIG5ld19zdGF0ZSA9PSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRF X0VOQUJMRUQpOworCWlmICghZW5hYmxlX3R3b3BoYXNlICYmICFlbmFibGVfZmFpbG92ZXIpCisJ CXJldHVybjsKIAogCXJlbCA9IHRhYmxlX29wZW4oU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgUm93 RXhjbHVzaXZlTG9jayk7CiAJdHVwID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShTVUJTQ1JJUFRJT05P SUQsIE9iamVjdElkR2V0RGF0dW0oc3Vib2lkKSk7CkBAIC0xNzU5LDkgKzE3NzQsMjEgQEAgVXBk YXRlVHdvUGhhc2VTdGF0ZShPaWQgc3Vib2lkLCBjaGFyIG5ld19zdGF0ZSkKIAltZW1zZXQobnVs bHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKIAltZW1zZXQocmVwbGFjZXMsIGZhbHNlLCBzaXpl b2YocmVwbGFjZXMpKTsKIAotCS8qIEFuZCB1cGRhdGUvc2V0IHR3b19waGFzZSBzdGF0ZSAqLwot CXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJ0d29waGFzZXN0YXRlIC0gMV0gPSBDaGFy R2V0RGF0dW0obmV3X3N0YXRlKTsKLQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJ0 d29waGFzZXN0YXRlIC0gMV0gPSB0cnVlOworCS8qIFVwZGF0ZS9zZXQgdHdvX3BoYXNlIHN0YXRl IGlmIGFza2VkIGJ5IHRoZSBjYWxsZXIgKi8KKwlpZiAoZW5hYmxlX3R3b3BoYXNlKQorCXsKKwkJ dmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnR3b3BoYXNlc3RhdGUgLSAxXSA9CisJCQlD aGFyR2V0RGF0dW0oTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVEKTsKKwkJcmVwbGFj ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3VidHdvcGhhc2VzdGF0ZSAtIDFdID0gdHJ1ZTsKKwl9 CisKKwkvKiBVcGRhdGUvc2V0IGZhaWxvdmVyIHN0YXRlIGlmIGFza2VkIGJ5IHRoZSBjYWxsZXIg Ki8KKwlpZiAoZW5hYmxlX2ZhaWxvdmVyKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YmZhaWxvdmVyc3RhdGUgLSAxXSA9CisJCQlDaGFyR2V0RGF0dW0oTE9HSUNBTFJFUF9G QUlMT1ZFUl9TVEFURV9FTkFCTEVEKTsKKwkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViZmFpbG92ZXJzdGF0ZSAtIDFdID0gdHJ1ZTsKKwl9CiAKIAl0dXAgPSBoZWFwX21vZGlmeV90 dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwKIAkJCQkJCQl2YWx1ZXMsIG51bGxzLCBy ZXBsYWNlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA5 MTE4MzVjNWNiLi4zZmUxZjk5NTNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv d29ya2VyLmMKQEAgLTEzMiw2ICsxMzIsMzMgQEAKICAqIGF2b2lkIHN1Y2ggZGVhZGxvY2tzLCB3 ZSBnZW5lcmF0ZSBhIHVuaXF1ZSBHSUQgKGNvbnNpc3Rpbmcgb2YgdGhlCiAgKiBzdWJzY3JpcHRp b24gb2lkIGFuZCB0aGUgeGlkIG9mIHRoZSBwcmVwYXJlZCB0cmFuc2FjdGlvbikgZm9yIGVhY2gg cHJlcGFyZQogICogdHJhbnNhY3Rpb24gb24gdGhlIHN1YnNjcmliZXIuCisgKgorICogRkFJTE9W RVIKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRoZSBsb2dpY2FsIHNsb3Qgb24gdGhl IHByaW1hcnkgY2FuIGJlIHN5bmNlZCB0byB0aGUgc3RhbmRieSBieSBzcGVjaWZ5aW5nCisgKiBm YWlsb3ZlciA9IHRydWUgd2hlbiBjcmVhdGluZyB0aGUgc3Vic2NyaXB0aW9uLiBFbmFibGluZyBm YWlsb3ZlciBhbGxvd3MgdXMKKyAqIHRvIHNtb290aGx5IHRyYW5zaXRpb24gdG8gdGhlIHByb21v dGVkIHN0YW5kYnksIGVuc3VyaW5nIHRoYXQgd2UgY2FuCisgKiBzdWJzY3JpYmUgdG8gdGhlIG5l dyBwcmltYXJ5IHdpdGhvdXQgbG9zaW5nIGFueSBkYXRhLgorICoKKyAqIEhvd2V2ZXIsIHdlIGRv IG5vdCBlbmFibGUgZmFpbG92ZXIgZm9yIHNsb3RzIGNyZWF0ZWQgYnkgdGhlIHRhYmxlIHN5bmMK KyAqIHdvcmtlci4KKyAqCisgKiBBZGRpdGlvbmFsbHksIGZhaWxvdmVyIGlzIG5vdCBlbmFibGVk IGZvciB0aGUgbWFpbiBzbG90IGlmIHRoZSB0YWJsZSBzeW5jIGlzCisgKiBpbiBwcm9ncmVzcy4g VGhpcyBpcyBiZWNhdXNlIGlmIGEgZmFpbG92ZXIgb2NjdXJzIHdoaWxlIHRoZSB0YWJsZSBzeW5j CisgKiB3b3JrZXIgaGFzIHJlYWNoZWQgYSBjZXJ0YWluIHN0YXRlIChTVUJSRUxfU1RBVEVfRklO SVNIRURDT1BZIG9yCisgKiBTVUJSRUxfU1RBVEVfREFUQVNZTkMpLCByZXBsaWNhdGlvbiB3aWxs IG5vdCBiZSBhYmxlIHRvIGNvbnRpbnVlIGZyb20gdGhlCisgKiBuZXcgcHJpbWFyeSBub2RlLgor ICoKKyAqIEFzIGEgcmVzdWx0LCB3ZSBlbmFibGUgdGhlIGZhaWxvdmVyIG9wdGlvbiBmb3IgdGhl IG1haW4gc2xvdCBvbmx5IGFmdGVyIHRoZQorICogaW5pdGlhbCBzeW5jIGlzIGNvbXBsZXRlLiBU aGUgZmFpbG92ZXIgb3B0aW9uIGlzIGltcGxlbWVudGVkIGFzIGEgdHJpLXN0YXRlCisgKiB3aXRo IHZhbHVlcyBESVNBQkxFRCwgUEVORElORywgYW5kIEVOQUJMRUQuIFRoZSBzdGF0ZSB0cmFuc2l0 aW9uIHByb2Nlc3MKKyAqIGJldHdlZW4gdGhlc2UgdmFsdWVzIGlzIHRoZSBzYW1lIGFzIHRoZSB0 d29fcGhhc2Ugb3B0aW9uIChzZWUgVFdPX1BIQVNFCisgKiBUUkFOU0FDVElPTlMgZm9yIGRldGFp bHMpLgorICoKKyAqIER1cmluZyB0aGUgc3RhcnR1cCBvZiB0aGUgYXBwbHkgd29ya2VyLCBpdCBj aGVja3MgaWYgYWxsIHRhYmxlIHN5bmNzIGFyZSBpbgorICogdGhlIFJFQURZIHN0YXRlIGZvciBh IGZhaWxvdmVyIHRyaS1zdGF0ZSBvZiBQRU5ESU5HLiBJZiBzbywgaXQgYWx0ZXJzIHRoZQorICog bWFpbiBzbG90J3MgZmFpbG92ZXIgcHJvcGVydHkgdG8gdHJ1ZSBhbmQgdXBkYXRlcyB0aGUgdHJp LXN0YXRlIHZhbHVlIGZyb20KKyAqIFBFTkRJTkcgdG8gRU5BQkxFRC4KICAqLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICovCiAKQEAgLTM5NDcsNiArMzk3NCw3IEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRp b24odm9pZCkKIAkJbmV3c3ViLT5wYXNzd29yZHJlcXVpcmVkICE9IE15U3Vic2NyaXB0aW9uLT5w YXNzd29yZHJlcXVpcmVkIHx8CiAJCXN0cmNtcChuZXdzdWItPm9yaWdpbiwgTXlTdWJzY3JpcHRp b24tPm9yaWdpbikgIT0gMCB8fAogCQluZXdzdWItPm93bmVyICE9IE15U3Vic2NyaXB0aW9uLT5v d25lciB8fAorCQluZXdzdWItPmZhaWxvdmVyc3RhdGUgIT0gTXlTdWJzY3JpcHRpb24tPmZhaWxv dmVyc3RhdGUgfHwKIAkJIWVxdWFsKG5ld3N1Yi0+cHVibGljYXRpb25zLCBNeVN1YnNjcmlwdGlv bi0+cHVibGljYXRpb25zKSkKIAl7CiAJCWlmIChhbV9wYXJhbGxlbF9hcHBseV93b3JrZXIoKSkK QEAgLTQ0ODIsNiArNDUxMCw4IEBAIHJ1bl9hcHBseV93b3JrZXIoKQogCVRpbWVMaW5lSUQJc3Rh cnRwb2ludFRMSTsKIAljaGFyCSAgICplcnI7CiAJYm9vbAkJbXVzdF91c2VfcGFzc3dvcmQ7CisJ Ym9vbAkJdHdvcGhhc2VfcGVuZGluZzsKKwlib29sCQlmYWlsb3Zlcl9wZW5kaW5nOwogCiAJc2xv dG5hbWUgPSBNeVN1YnNjcmlwdGlvbi0+c2xvdG5hbWU7CiAKQEAgLTQ1MzgsMTcgKzQ1NjgsMzgg QEAgcnVuX2FwcGx5X3dvcmtlcigpCiAJICogTm90ZTogSWYgdGhlIHN1YnNjcmlwdGlvbiBoYXMg bm8gdGFibGVzIHRoZW4gbGVhdmUgdGhlIHN0YXRlIGFzCiAJICogUEVORElORywgd2hpY2ggYWxs b3dzIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiB0bwogCSAqIHdv cmsuCisJICoKKwkgKiBTYW1lIGdvZXMgZm9yICdmYWlsb3ZlcicuIEl0IGlzIGVuYWJsZWQgb25s eSBpZiBzdWJzY3JpcHRpb24gaGFzIHRhYmxlcworCSAqIGFuZCBhbGwgdGhlIHRhYmxlc3luY3Mg aGF2ZSByZWFjaGVkIFJFQURZIHN0YXRlLCB1bnRpbCB0aGVuIGl0IHJlbWFpbnMKKwkgKiBhcyBQ RU5ESU5HLgogCSAqLwotCWlmIChNeVN1YnNjcmlwdGlvbi0+dHdvcGhhc2VzdGF0ZSA9PSBMT0dJ Q0FMUkVQX1RXT1BIQVNFX1NUQVRFX1BFTkRJTkcgJiYKLQkJQWxsVGFibGVzeW5jc1JlYWR5KCkp CisJdHdvcGhhc2VfcGVuZGluZyA9CisJCShNeVN1YnNjcmlwdGlvbi0+dHdvcGhhc2VzdGF0ZSA9 PSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX1BFTkRJTkcpOworCWZhaWxvdmVyX3BlbmRpbmcg PQorCQkoTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyc3RhdGUgPT0gTE9HSUNBTFJFUF9GQUlMT1ZF Ul9TVEFURV9QRU5ESU5HKTsKKworCWlmICgodHdvcGhhc2VfcGVuZGluZyB8fCBmYWlsb3Zlcl9w ZW5kaW5nKSAmJiBBbGxUYWJsZXN5bmNzUmVhZHkoKSkKIAl7CiAJCS8qIFN0YXJ0IHN0cmVhbWlu ZyB3aXRoIHR3b19waGFzZSBlbmFibGVkICovCi0JCW9wdGlvbnMucHJvdG8ubG9naWNhbC50d29w aGFzZSA9IHRydWU7CisJCWlmICh0d29waGFzZV9wZW5kaW5nKQorCQkJb3B0aW9ucy5wcm90by5s b2dpY2FsLnR3b3BoYXNlID0gdHJ1ZTsKKworCQlpZiAoZmFpbG92ZXJfcGVuZGluZykKKwkJCXdh bHJjdl9hbHRlcl9zbG90KExvZ1JlcFdvcmtlcldhbFJjdkNvbm4sIHNsb3RuYW1lLCB0cnVlKTsK KwogCQl3YWxyY3Zfc3RhcnRzdHJlYW1pbmcoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgJm9wdGlv bnMpOwogCiAJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7Ci0JCVVwZGF0ZVR3b1BoYXNlU3Rh dGUoTXlTdWJzY3JpcHRpb24tPm9pZCwgTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVE KTsKLQkJTXlTdWJzY3JpcHRpb24tPnR3b3BoYXNlc3RhdGUgPSBMT0dJQ0FMUkVQX1RXT1BIQVNF X1NUQVRFX0VOQUJMRUQ7CisKKwkJLyogVXBkYXRlIHR3b3BoYXNlIGFuZC9vciBmYWlsb3ZlciAq LworCQlFbmFibGVUd29QaGFzZUZhaWxvdmVyVHJpU3RhdGUoTXlTdWJzY3JpcHRpb24tPm9pZCwg dHdvcGhhc2VfcGVuZGluZywKKwkJCQkJCQkJCSAgIGZhaWxvdmVyX3BlbmRpbmcpOworCQlpZiAo dHdvcGhhc2VfcGVuZGluZykKKwkJCU15U3Vic2NyaXB0aW9uLT50d29waGFzZXN0YXRlID0gTE9H SUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVEOworCisJCWlmIChmYWlsb3Zlcl9wZW5kaW5n KQorCQkJTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyc3RhdGUgPSBMT0dJQ0FMUkVQX0ZBSUxPVkVS X1NUQVRFX0VOQUJMRUQ7CisKIAkJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAJfQogCWVs c2UKQEAgLTQ1NTcsMTEgKzQ2MDgsMTUgQEAgcnVuX2FwcGx5X3dvcmtlcigpCiAJfQogCiAJZXJl cG9ydChERUJVRzEsCi0JCQkoZXJybXNnX2ludGVybmFsKCJsb2dpY2FsIHJlcGxpY2F0aW9uIGFw cGx5IHdvcmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiB0d29fcGhhc2UgaXMgJXMiLAorCQkJ KGVycm1zZ19pbnRlcm5hbCgibG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSB3b3JrZXIgZm9yIHN1 YnNjcmlwdGlvbiBcIiVzXCIgdHdvX3BoYXNlIGlzICVzIGFuZCBmYWlsb3ZlciBpcyAlcyIsCiAJ CQkJCQkJIE15U3Vic2NyaXB0aW9uLT5uYW1lLAogCQkJCQkJCSBNeVN1YnNjcmlwdGlvbi0+dHdv cGhhc2VzdGF0ZSA9PSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0RJU0FCTEVEID8gIkRJU0FC TEVEIiA6CiAJCQkJCQkJIE15U3Vic2NyaXB0aW9uLT50d29waGFzZXN0YXRlID09IExPR0lDQUxS RVBfVFdPUEhBU0VfU1RBVEVfUEVORElORyA/ICJQRU5ESU5HIiA6CiAJCQkJCQkJIE15U3Vic2Ny aXB0aW9uLT50d29waGFzZXN0YXRlID09IExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfRU5BQkxF RCA/ICJFTkFCTEVEIiA6CisJCQkJCQkJICI/IiwKKwkJCQkJCQkgTXlTdWJzY3JpcHRpb24tPmZh aWxvdmVyc3RhdGUgPT0gTE9HSUNBTFJFUF9GQUlMT1ZFUl9TVEFURV9ESVNBQkxFRCA/ICJESVNB QkxFRCIgOgorCQkJCQkJCSBNeVN1YnNjcmlwdGlvbi0+ZmFpbG92ZXJzdGF0ZSA9PSBMT0dJQ0FM UkVQX0ZBSUxPVkVSX1NUQVRFX1BFTkRJTkcgPyAiUEVORElORyIgOgorCQkJCQkJCSBNeVN1YnNj cmlwdGlvbi0+ZmFpbG92ZXJzdGF0ZSA9PSBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX0VOQUJM RUQgPyAiRU5BQkxFRCIgOgogCQkJCQkJCSAiPyIpKSk7CiAKIAkvKiBSdW4gdGhlIG1haW4gbG9v cC4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55IGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkKaW5kZXggOTVlMTI2ZWI0ZC4uZmYz ODA5ZTAyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkKQEAgLTY0LDYgKzY0LDcg QEAgTm9kZSAqcmVwbGljYXRpb25fcGFyc2VfcmVzdWx0OwogJXRva2VuIEtfU1RBUlRfUkVQTElD QVRJT04KICV0b2tlbiBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9UCiAldG9rZW4gS19EUk9QX1JF UExJQ0FUSU9OX1NMT1QKKyV0b2tlbiBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QKICV0b2tlbiBL X1RJTUVMSU5FX0hJU1RPUlkKICV0b2tlbiBLX1dBSVQKICV0b2tlbiBLX1RJTUVMSU5FCkBAIC04 MCw4ICs4MSw5IEBAIE5vZGUgKnJlcGxpY2F0aW9uX3BhcnNlX3Jlc3VsdDsKIAogJXR5cGUgPG5v ZGU+CWNvbW1hbmQKICV0eXBlIDxub2RlPgliYXNlX2JhY2t1cCBzdGFydF9yZXBsaWNhdGlvbiBz dGFydF9sb2dpY2FsX3JlcGxpY2F0aW9uCi0JCQkJY3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QgZHJv cF9yZXBsaWNhdGlvbl9zbG90IGlkZW50aWZ5X3N5c3RlbQotCQkJCXJlYWRfcmVwbGljYXRpb25f c2xvdCB0aW1lbGluZV9oaXN0b3J5IHNob3cgdXBsb2FkX21hbmlmZXN0CisJCQkJY3JlYXRlX3Jl cGxpY2F0aW9uX3Nsb3QgZHJvcF9yZXBsaWNhdGlvbl9zbG90CisJCQkJYWx0ZXJfcmVwbGljYXRp b25fc2xvdCBpZGVudGlmeV9zeXN0ZW0gcmVhZF9yZXBsaWNhdGlvbl9zbG90CisJCQkJdGltZWxp bmVfaGlzdG9yeSBzaG93IHVwbG9hZF9tYW5pZmVzdAogJXR5cGUgPGxpc3Q+CWdlbmVyaWNfb3B0 aW9uX2xpc3QKICV0eXBlIDxkZWZlbHQ+CWdlbmVyaWNfb3B0aW9uCiAldHlwZSA8dWludHZhbD4J b3B0X3RpbWVsaW5lCkBAIC0xMTIsNiArMTE0LDcgQEAgY29tbWFuZDoKIAkJCXwgc3RhcnRfbG9n aWNhbF9yZXBsaWNhdGlvbgogCQkJfCBjcmVhdGVfcmVwbGljYXRpb25fc2xvdAogCQkJfCBkcm9w X3JlcGxpY2F0aW9uX3Nsb3QKKwkJCXwgYWx0ZXJfcmVwbGljYXRpb25fc2xvdAogCQkJfCByZWFk X3JlcGxpY2F0aW9uX3Nsb3QKIAkJCXwgdGltZWxpbmVfaGlzdG9yeQogCQkJfCBzaG93CkBAIC0y NTksNiArMjYyLDE4IEBAIGRyb3BfcmVwbGljYXRpb25fc2xvdDoKIAkJCQl9CiAJCQk7CiAKKy8q IEFMVEVSX1JFUExJQ0FUSU9OX1NMT1Qgc2xvdCAqLworYWx0ZXJfcmVwbGljYXRpb25fc2xvdDoK KwkJCUtfQUxURVJfUkVQTElDQVRJT05fU0xPVCBJREVOVCAnKCcgZ2VuZXJpY19vcHRpb25fbGlz dCAnKScKKwkJCQl7CisJCQkJCUFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQ7CisJCQkJCWNt ZCA9IG1ha2VOb2RlKEFsdGVyUmVwbGljYXRpb25TbG90Q21kKTsKKwkJCQkJY21kLT5zbG90bmFt ZSA9ICQyOworCQkJCQljbWQtPm9wdGlvbnMgPSAkNDsKKwkJCQkJJCQgPSAoTm9kZSAqKSBjbWQ7 CisJCQkJfQorCQkJOworCiAvKgogICogU1RBUlRfUkVQTElDQVRJT04gW1NMT1Qgc2xvdF0gW1BI WVNJQ0FMXSAlWC8lWCBbVElNRUxJTkUgJWRdCiAgKi8KQEAgLTQxMCw2ICs0MjUsNyBAQCBpZGVu dF9vcl9rZXl3b3JkOgogCQkJfCBLX1NUQVJUX1JFUExJQ0FUSU9OCQkJeyAkJCA9ICJzdGFydF9y ZXBsaWNhdGlvbiI7IH0KIAkJCXwgS19DUkVBVEVfUkVQTElDQVRJT05fU0xPVAl7ICQkID0gImNy ZWF0ZV9yZXBsaWNhdGlvbl9zbG90IjsgfQogCQkJfCBLX0RST1BfUkVQTElDQVRJT05fU0xPVAkJ eyAkJCA9ICJkcm9wX3JlcGxpY2F0aW9uX3Nsb3QiOyB9CisJCQl8IEtfQUxURVJfUkVQTElDQVRJ T05fU0xPVAkJeyAkJCA9ICJhbHRlcl9yZXBsaWNhdGlvbl9zbG90IjsgfQogCQkJfCBLX1RJTUVM SU5FX0hJU1RPUlkJCQl7ICQkID0gInRpbWVsaW5lX2hpc3RvcnkiOyB9CiAJCQl8IEtfV0FJVAkJ CQkJCXsgJCQgPSAid2FpdCI7IH0KIAkJCXwgS19USU1FTElORQkJCQkJeyAkJCA9ICJ0aW1lbGlu ZSI7IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nhbm5lci5s IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwKaW5kZXggNmZhNjI1NjE3 Yi4uZTdkZWY4MDA2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9z Y2FubmVyLmwKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwKQEAg LTEyNSw2ICsxMjUsNyBAQCBUSU1FTElORQkJCXsgcmV0dXJuIEtfVElNRUxJTkU7IH0KIFNUQVJU X1JFUExJQ0FUSU9OCXsgcmV0dXJuIEtfU1RBUlRfUkVQTElDQVRJT047IH0KIENSRUFURV9SRVBM SUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9UOyB9CiBEUk9Q X1JFUExJQ0FUSU9OX1NMT1QJCXsgcmV0dXJuIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UOyB9CitB TFRFUl9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1Q7 IH0KIFRJTUVMSU5FX0hJU1RPUlkJeyByZXR1cm4gS19USU1FTElORV9ISVNUT1JZOyB9CiBQSFlT SUNBTAkJCXsgcmV0dXJuIEtfUEhZU0lDQUw7IH0KIFJFU0VSVkVfV0FMCQkJeyByZXR1cm4gS19S RVNFUlZFX1dBTDsgfQpAQCAtMzAyLDYgKzMwMyw3IEBAIHJlcGxpY2F0aW9uX3NjYW5uZXJfaXNf cmVwbGljYXRpb25fY29tbWFuZCh2b2lkKQogCQljYXNlIEtfU1RBUlRfUkVQTElDQVRJT046CiAJ CWNhc2UgS19DUkVBVEVfUkVQTElDQVRJT05fU0xPVDoKIAkJY2FzZSBLX0RST1BfUkVQTElDQVRJ T05fU0xPVDoKKwkJY2FzZSBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNhc2UgS19SRUFE X1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNhc2UgS19USU1FTElORV9ISVNUT1JZOgogCQljYXNlIEtf VVBMT0FEX01BTklGRVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDUyZGE2OTRjNzkuLjY5 NjM3NjQwMGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTkwLDcgKzkwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90T25EaXNrCiAJc2l6ZW9mKFJlcGxpY2F0aW9uU2xvdE9u RGlzaykgLSBSZXBsaWNhdGlvblNsb3RPbkRpc2tDb25zdGFudFNpemUKIAogI2RlZmluZSBTTE9U X01BR0lDCQkweDEwNTFDQTEJLyogZm9ybWF0IGlkZW50aWZpZXIgKi8KLSNkZWZpbmUgU0xPVF9W RVJTSU9OCTMJCS8qIHZlcnNpb24gZm9yIG5ldyBmaWxlcyAqLworI2RlZmluZSBTTE9UX1ZFUlNJ T04JNAkJLyogdmVyc2lvbiBmb3IgbmV3IGZpbGVzICovCiAKIC8qIENvbnRyb2wgYXJyYXkgZm9y IHJlcGxpY2F0aW9uIHNsb3QgbWFuYWdlbWVudCAqLwogUmVwbGljYXRpb25TbG90Q3RsRGF0YSAq UmVwbGljYXRpb25TbG90Q3RsID0gTlVMTDsKQEAgLTI0OCwxMCArMjQ4LDEzIEBAIFJlcGxpY2F0 aW9uU2xvdFZhbGlkYXRlTmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQgZWxldmVsKQogICogICAg IGR1cmluZyBnZXR0aW5nIGNoYW5nZXMsIGlmIHRoZSB0d29fcGhhc2Ugb3B0aW9uIGlzIGVuYWJs ZWQgaXQgY2FuIHNraXAKICAqICAgICBwcmVwYXJlIGJlY2F1c2UgYnkgdGhhdCB0aW1lIHN0YXJ0 IGRlY29kaW5nIHBvaW50IGhhcyBiZWVuIG1vdmVkLiBTbyB0aGUKICAqICAgICB1c2VyIHdpbGwg b25seSBnZXQgY29tbWl0IHByZXBhcmVkLgorICogZmFpbG92ZXI6IElmIGVuYWJsZWQsIGFsbG93 cyB0aGUgc2xvdCB0byBiZSBzeW5jZWQgdG8gcGh5c2ljYWwgc3RhbmRieXMgc28KKyAqICAgICB0 aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCiAg Ki8KIHZvaWQKIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRi X3NwZWNpZmljLAotCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5 LCBib29sIHR3b19waGFzZSkKKwkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJz aXN0ZW5jeSwKKwkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlcikKIHsKIAlSZXBs aWNhdGlvblNsb3QgKnNsb3QgPSBOVUxMOwogCWludAkJCWk7CkBAIC0zMTEsNiArMzE0LDcgQEAg UmVwbGljYXRpb25TbG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMs CiAJc2xvdC0+ZGF0YS5wZXJzaXN0ZW5jeSA9IHBlcnNpc3RlbmN5OwogCXNsb3QtPmRhdGEudHdv X3BoYXNlID0gdHdvX3BoYXNlOwogCXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxpZFhM b2dSZWNQdHI7CisJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOwogCiAJLyogYW5kIHRo ZW4gZGF0YSBvbmx5IHByZXNlbnQgaW4gc2hhcmVkIG1lbW9yeSAqLwogCXNsb3QtPmp1c3RfZGly dGllZCA9IGZhbHNlOwpAQCAtNjc5LDYgKzY4MywzMSBAQCBSZXBsaWNhdGlvblNsb3REcm9wKGNv bnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KQogCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJl ZCgpOwogfQogCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzbG90IGlkZW50 aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBuYW1lLgorICovCit2b2lkCitSZXBsaWNhdGlvblNsb3RB bHRlcihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKQoreworCUFzc2VydChNeVJlcGxp Y2F0aW9uU2xvdCA9PSBOVUxMKTsKKworCVJlcGxpY2F0aW9uU2xvdEFjcXVpcmUobmFtZSwgdHJ1 ZSk7CisKKwlpZiAoU2xvdElzUGh5c2ljYWwoTXlSZXBsaWNhdGlvblNsb3QpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CWVycm1zZygiY2Fubm90IHVzZSAlcyB3aXRoIGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIs CisJCQkJCSAgICJBTFRFUl9SRVBMSUNBVElPTl9TTE9UIikpOworCisJU3BpbkxvY2tBY3F1aXJl KCZNeVJlcGxpY2F0aW9uU2xvdC0+bXV0ZXgpOworCU15UmVwbGljYXRpb25TbG90LT5kYXRhLmZh aWxvdmVyID0gZmFpbG92ZXI7CisJU3BpbkxvY2tSZWxlYXNlKCZNeVJlcGxpY2F0aW9uU2xvdC0+ bXV0ZXgpOworCisJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJUmVwbGljYXRpb25TbG90 U2F2ZSgpOworCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKK30KKwogLyoKICAqIFBlcm1hbmVu dGx5IGRyb3AgdGhlIGN1cnJlbnRseSBhY3F1aXJlZCByZXBsaWNhdGlvbiBzbG90LgogICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCmluZGV4IGNhZDM1ZGNlN2YuLmViNjg1MDg5YjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC00Miw3ICs0Miw4IEBAIGNyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGJvb2wgaW1tZWRpYXRlbHlf cmVzZXJ2ZSwKIAogCS8qIGFjcXVpcmUgcmVwbGljYXRpb24gc2xvdCwgdGhpcyB3aWxsIGNoZWNr IGZvciBjb25mbGljdGluZyBuYW1lcyAqLwogCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCBm YWxzZSwKLQkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVSU0lTVEVOVCwg ZmFsc2UpOworCQkJCQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5U LCBmYWxzZSwKKwkJCQkJCSAgZmFsc2UpOwogCiAJaWYgKGltbWVkaWF0ZWx5X3Jlc2VydmUpCiAJ ewpAQCAtMTE3LDYgKzExOCw3IEBAIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90 KFBHX0ZVTkNUSU9OX0FSR1MpCiBzdGF0aWMgdm9pZAogY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRp b25fc2xvdChjaGFyICpuYW1lLCBjaGFyICpwbHVnaW4sCiAJCQkJCQkJCWJvb2wgdGVtcG9yYXJ5 LCBib29sIHR3b19waGFzZSwKKwkJCQkJCQkJYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJWExvZ1Jl Y1B0ciByZXN0YXJ0X2xzbiwKIAkJCQkJCQkJYm9vbCBmaW5kX3N0YXJ0cG9pbnQpCiB7CkBAIC0x MzMsNyArMTM1LDggQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1l LCBjaGFyICpwbHVnaW4sCiAJICogZXJyb3IgYXMgd2VsbC4KIAkgKi8KIAlSZXBsaWNhdGlvblNs b3RDcmVhdGUobmFtZSwgdHJ1ZSwKLQkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDog UlNfRVBIRU1FUkFMLCB0d29fcGhhc2UpOworCQkJCQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JB UlkgOiBSU19FUEhFTUVSQUwsIHR3b19waGFzZSwKKwkJCQkJCSAgZmFpbG92ZXIpOwogCiAJLyoK IAkgKiBDcmVhdGUgbG9naWNhbCBkZWNvZGluZyBjb250ZXh0IHRvIGZpbmQgc3RhcnQgcG9pbnQg b3IsIGlmIHdlIGRvbid0CkBAIC0xNzEsNiArMTc0LDcgQEAgcGdfY3JlYXRlX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogCU5hbWUJCXBsdWdpbiA9IFBHX0dFVEFS R19OQU1FKDEpOwogCWJvb2wJCXRlbXBvcmFyeSA9IFBHX0dFVEFSR19CT09MKDIpOwogCWJvb2wJ CXR3b19waGFzZSA9IFBHX0dFVEFSR19CT09MKDMpOworCWJvb2wJCWZhaWxvdmVyID0gUEdfR0VU QVJHX0JPT0woNCk7CiAJRGF0dW0JCXJlc3VsdDsKIAlUdXBsZURlc2MJdHVwZGVzYzsKIAlIZWFw VHVwbGUJdHVwbGU7CkBAIC0xODgsNiArMTkyLDcgQEAgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJCQkJTmFtZVN0cigqcGx1Z2luKSwK IAkJCQkJCQkJCXRlbXBvcmFyeSwKIAkJCQkJCQkJCXR3b19waGFzZSwKKwkJCQkJCQkJCWZhaWxv dmVyLAogCQkJCQkJCQkJSW52YWxpZFhMb2dSZWNQdHIsCiAJCQkJCQkJCQl0cnVlKTsKIApAQCAt MjMyLDcgKzIzNyw3IEBAIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdT KQogRGF0dW0KIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cyhQR19GVU5DVElPTl9BUkdTKQogewot I2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNQorI2RlZmluZSBQR19HRVRf UkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNgogCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1 cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKIAlYTG9nUmVjUHRyCWN1cnJsc247CiAJ aW50CQkJc2xvdG5vOwpAQCAtNDI2LDYgKzQzMSw4IEBAIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90 cyhQR19GVU5DVElPTl9BUkdTKQogCQkJfQogCQl9CiAKKwkJdmFsdWVzW2krK10gPSBCb29sR2V0 RGF0dW0oc2xvdF9jb250ZW50cy5kYXRhLmZhaWxvdmVyKTsKKwogCQlBc3NlcnQoaSA9PSBQR19H RVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNp bmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywKQEAgLTY5Myw2ICs3MDAsNyBAQCBjb3B5 X3JlcGxpY2F0aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9naWNhbF9z bG90KQogCVhMb2dSZWNQdHIJc3JjX3Jlc3RhcnRfbHNuOwogCWJvb2wJCXNyY19pc2xvZ2ljYWw7 CiAJYm9vbAkJdGVtcG9yYXJ5OworCWJvb2wJCWZhaWxvdmVyOwogCWNoYXIJICAgKnBsdWdpbjsK IAlEYXR1bQkJdmFsdWVzWzJdOwogCWJvb2wJCW51bGxzWzJdOwpAQCAtNzQ4LDYgKzc1Niw3IEBA IGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dp Y2FsX3Nsb3QpCiAJc3JjX2lzbG9naWNhbCA9IFNsb3RJc0xvZ2ljYWwoJmZpcnN0X3Nsb3RfY29u dGVudHMpOwogCXNyY19yZXN0YXJ0X2xzbiA9IGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5yZXN0 YXJ0X2xzbjsKIAl0ZW1wb3JhcnkgPSAoZmlyc3Rfc2xvdF9jb250ZW50cy5kYXRhLnBlcnNpc3Rl bmN5ID09IFJTX1RFTVBPUkFSWSk7CisJZmFpbG92ZXIgPSBmaXJzdF9zbG90X2NvbnRlbnRzLmRh dGEuZmFpbG92ZXI7CiAJcGx1Z2luID0gbG9naWNhbF9zbG90ID8gTmFtZVN0cihmaXJzdF9zbG90 X2NvbnRlbnRzLmRhdGEucGx1Z2luKSA6IE5VTEw7CiAKIAkvKiBDaGVjayB0eXBlIG9mIHJlcGxp Y2F0aW9uIHNsb3QgKi8KQEAgLTc4Nyw2ICs3OTYsNyBAQCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3Qo RnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9naWNhbF9zbG90KQogCQkJCQkJCQkJCXBs dWdpbiwKIAkJCQkJCQkJCQl0ZW1wb3JhcnksCiAJCQkJCQkJCQkJZmFsc2UsCisJCQkJCQkJCQkJ ZmFpbG92ZXIsCiAJCQkJCQkJCQkJc3JjX3Jlc3RhcnRfbHNuLAogCQkJCQkJCQkJCWZhbHNlKTsK IAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCBlMDAzOTVmZjJiLi5m ZmFjZDU1ZTVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAgLTM4Nyw3 ICszODcsNyBAQCBXYWxSZWNlaXZlck1haW4odm9pZCkKIAkJCQkJICJwZ193YWxyZWNlaXZlcl8l bGxkIiwKIAkJCQkJIChsb25nIGxvbmcgaW50KSB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKHdyY29u bikpOwogCi0JCQl3YWxyY3ZfY3JlYXRlX3Nsb3Qod3Jjb25uLCBzbG90bmFtZSwgdHJ1ZSwgZmFs c2UsIDAsIE5VTEwpOworCQkJd2FscmN2X2NyZWF0ZV9zbG90KHdyY29ubiwgc2xvdG5hbWUsIHRy dWUsIGZhbHNlLCBmYWxzZSwgMCwgTlVMTCk7CiAKIAkJCVNwaW5Mb2NrQWNxdWlyZSgmd2FscmN2 LT5tdXRleCk7CiAJCQlzdHJsY3B5KHdhbHJjdi0+c2xvdG5hbWUsIHNsb3RuYW1lLCBOQU1FREFU QUxFTik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDA4NzAzMWU5ZGMuLjU4 MTY1ZWE2MTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMTI2LDEyICsx MTI2LDEzIEBAIHN0YXRpYyB2b2lkCiBwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhDcmVhdGVS ZXBsaWNhdGlvblNsb3RDbWQgKmNtZCwKIAkJCQkJCSAgIGJvb2wgKnJlc2VydmVfd2FsLAogCQkJ CQkJICAgQ1JTU25hcHNob3RBY3Rpb24gKnNuYXBzaG90X2FjdGlvbiwKLQkJCQkJCSAgIGJvb2wg KnR3b19waGFzZSkKKwkJCQkJCSAgIGJvb2wgKnR3b19waGFzZSwgYm9vbCAqZmFpbG92ZXIpCiB7 CiAJTGlzdENlbGwgICAqbGM7CiAJYm9vbAkJc25hcHNob3RfYWN0aW9uX2dpdmVuID0gZmFsc2U7 CiAJYm9vbAkJcmVzZXJ2ZV93YWxfZ2l2ZW4gPSBmYWxzZTsKIAlib29sCQl0d29fcGhhc2VfZ2l2 ZW4gPSBmYWxzZTsKKwlib29sCQlmYWlsb3Zlcl9naXZlbiA9IGZhbHNlOwogCiAJLyogUGFyc2Ug b3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIGNtZC0+b3B0aW9ucykKQEAgLTExODEsNiArMTE4Miwx NSBAQCBwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQg KmNtZCwKIAkJCXR3b19waGFzZV9naXZlbiA9IHRydWU7CiAJCQkqdHdvX3BoYXNlID0gZGVmR2V0 Qm9vbGVhbihkZWZlbCk7CiAJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAi ZmFpbG92ZXIiKSA9PSAwKQorCQl7CisJCQlpZiAoZmFpbG92ZXJfZ2l2ZW4gfHwgY21kLT5raW5k ICE9IFJFUExJQ0FUSU9OX0tJTkRfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rp bmcgb3IgcmVkdW5kYW50IG9wdGlvbnMiKSkpOworCQkJZmFpbG92ZXJfZ2l2ZW4gPSB0cnVlOwor CQkJKmZhaWxvdmVyID0gZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KIAkJZWxzZQogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBvcHRpb246ICVzIiwgZGVmZWwtPmRlZm5hbWUpOwogCX0K QEAgLTExOTcsNiArMTIwNyw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNh dGlvblNsb3RDbWQgKmNtZCkKIAljaGFyCSAgICpzbG90X25hbWU7CiAJYm9vbAkJcmVzZXJ2ZV93 YWwgPSBmYWxzZTsKIAlib29sCQl0d29fcGhhc2UgPSBmYWxzZTsKKwlib29sCQlmYWlsb3ZlciA9 IGZhbHNlOwogCUNSU1NuYXBzaG90QWN0aW9uIHNuYXBzaG90X2FjdGlvbiA9IENSU19FWFBPUlRf U05BUFNIT1Q7CiAJRGVzdFJlY2VpdmVyICpkZXN0OwogCVR1cE91dHB1dFN0YXRlICp0c3RhdGU7 CkBAIC0xMjA2LDEzICsxMjE3LDE0IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBs aWNhdGlvblNsb3RDbWQgKmNtZCkKIAogCUFzc2VydCghTXlSZXBsaWNhdGlvblNsb3QpOwogCi0J cGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoY21kLCAmcmVzZXJ2ZV93YWwsICZzbmFwc2hvdF9h Y3Rpb24sICZ0d29fcGhhc2UpOworCXBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKGNtZCwgJnJl c2VydmVfd2FsLCAmc25hcHNob3RfYWN0aW9uLCAmdHdvX3BoYXNlLAorCQkJCQkJCSAgICZmYWls b3Zlcik7CiAKIAlpZiAoY21kLT5raW5kID09IFJFUExJQ0FUSU9OX0tJTkRfUEhZU0lDQUwpCiAJ ewogCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgZmFsc2UsCiAJCQkJCQkJ ICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsCi0JCQkJCQkJ ICBmYWxzZSk7CisJCQkJCQkJICBmYWxzZSwgZmFsc2UpOwogCiAJCWlmIChyZXNlcnZlX3dhbCkK IAkJewpAQCAtMTI0Myw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJl cGxpY2F0aW9uU2xvdENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNt ZC0+c2xvdG5hbWUsIHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFS WSA6IFJTX0VQSEVNRVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSk7CisJCQkJCQkJICB0d29fcGhh c2UsIGZhaWxvdmVyKTsKIAogCQkvKgogCQkgKiBEbyBvcHRpb25zIGNoZWNrIGVhcmx5IHNvIHRo YXQgd2UgY2FuIGJhaWwgYmVmb3JlIGNhbGxpbmcgdGhlCkBAIC0xMzk4LDYgKzE0MTAsNDYgQEAg RHJvcFJlcGxpY2F0aW9uU2xvdChEcm9wUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJUmVwbGlj YXRpb25TbG90RHJvcChjbWQtPnNsb3RuYW1lLCAhY21kLT53YWl0KTsKIH0KIAorLyoKKyAqIFBy b2Nlc3MgZXh0cmEgb3B0aW9ucyBnaXZlbiB0byBBTFRFUl9SRVBMSUNBVElPTl9TTE9ULgorICov CitzdGF0aWMgdm9pZAorUGFyc2VBbHRlclJlcGxTbG90T3B0aW9ucyhBbHRlclJlcGxpY2F0aW9u U2xvdENtZCAqY21kLCBib29sICpmYWlsb3ZlcikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29s CQlmYWlsb3Zlcl9naXZlbiA9IGZhbHNlOworCisJLyogUGFyc2Ugb3B0aW9ucyAqLworCWZvcmVh Y2gobGMsIGNtZC0+b3B0aW9ucykKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gKERlZkVsZW0g KikgbGZpcnN0KGxjKTsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZmFpbG92ZXIi KSA9PSAwKQorCQl7CisJCQlpZiAoZmFpbG92ZXJfZ2l2ZW4pCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coImNv bmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWZhaWxvdmVyX2dpdmVuID0g dHJ1ZTsKKwkJCSpmYWlsb3ZlciA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CisJCWVsc2UK KwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlcyIsIGRlZmVsLT5kZWZuYW1l KTsKKwl9Cit9CisKKy8qCisgKiBDaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSByZXBsaWNhdGlv biBzbG90LgorICovCitzdGF0aWMgdm9pZAorQWx0ZXJSZXBsaWNhdGlvblNsb3QoQWx0ZXJSZXBs aWNhdGlvblNsb3RDbWQgKmNtZCkKK3sKKwlib29sCQlmYWlsb3ZlciA9IGZhbHNlOworCisJUGFy c2VBbHRlclJlcGxTbG90T3B0aW9ucyhjbWQsICZmYWlsb3Zlcik7CisJUmVwbGljYXRpb25TbG90 QWx0ZXIoY21kLT5zbG90bmFtZSwgZmFpbG92ZXIpOworfQorCiAvKgogICogTG9hZCBwcmV2aW91 c2x5IGluaXRpYXRlZCBsb2dpY2FsIHNsb3QgYW5kIHByZXBhcmUgZm9yIHNlbmRpbmcgZGF0YSAo dmlhCiAgKiBXYWxTbmRMb29wKS4KQEAgLTE5NzEsNiArMjAyMywxMyBAQCBleGVjX3JlcGxpY2F0 aW9uX2NvbW1hbmQoY29uc3QgY2hhciAqY21kX3N0cmluZykKIAkJCUVuZFJlcGxpY2F0aW9uQ29t bWFuZChjbWR0YWcpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0FsdGVyUmVwbGljYXRpb25TbG90 Q21kOgorCQkJY21kdGFnID0gIkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiOworCQkJc2V0X3BzX2Rp c3BsYXkoY21kdGFnKTsKKwkJCUFsdGVyUmVwbGljYXRpb25TbG90KChBbHRlclJlcGxpY2F0aW9u U2xvdENtZCAqKSBjbWRfbm9kZSk7CisJCQlFbmRSZXBsaWNhdGlvbkNvbW1hbmQoY21kdGFnKTsK KwkJCWJyZWFrOworCiAJCWNhc2UgVF9TdGFydFJlcGxpY2F0aW9uQ21kOgogCQkJewogCQkJCVN0 YXJ0UmVwbGljYXRpb25DbWQgKmNtZCA9IChTdGFydFJlcGxpY2F0aW9uQ21kICopIGNtZF9ub2Rl OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKaW5kZXggMjJkMWU2Y2Y5Mi4uM2Y3M2FkZjJlZSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBA IC00NjQxLDYgKzQ2NDEsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50 CQkJaV9zdWJvcmlnaW47CiAJaW50CQkJaV9zdWJvcmlnaW5yZW1vdGVsc247CiAJaW50CQkJaV9z dWJlbmFibGVkOworCWludAkJCWlfc3ViZmFpbG92ZXJzdGF0ZTsKIAlpbnQJCQlpLAogCQkJCW50 dXBzOwogCkBAIC00NzA2LDEwICs0NzA3LDE4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAq Zm91dCkKIAogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9u ID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgby5yZW1vdGVfbHNu IEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixcbiIKLQkJCQkJCQkgIiBzLnN1YmVuYWJsZWRcbiIpOwor CQkJCQkJCSAiIHMuc3ViZW5hYmxlZCxcbiIpOwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgTlVMTCBBUyBzdWJvcmlnaW5yZW1vdGVsc24sXG4iCi0JCQkJCQkJICIgZmFs c2UgQVMgc3ViZW5hYmxlZFxuIik7CisJCQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxlZCxcbiIp OworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQorCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBzLnN1YmZhaWxvdmVyc3RhdGVcbiIpOworCWVsc2UK KwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICIgJyVjJyBBUyBzdWJmYWlsb3Zl cnN0YXRlXG4iLAorCQkJCQkJICBMT0dJQ0FMUkVQX0ZBSUxPVkVSX1NUQVRFX0RJU0FCTEVEKTsK IAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlw dGlvbiBzXG4iKTsKQEAgLTQ3NDgsNiArNDc1Nyw3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2 ZSAqZm91dCkKIAlpX3N1Ym9yaWdpbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKIAlp X3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW5yZW1vdGVsc24i KTsKIAlpX3N1YmVuYWJsZWQgPSBQUWZudW1iZXIocmVzLCAic3ViZW5hYmxlZCIpOworCWlfc3Vi ZmFpbG92ZXJzdGF0ZSA9IFBRZm51bWJlcihyZXMsICJzdWJmYWlsb3ZlcnN0YXRlIik7CiAKIAlz dWJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFN1YnNjcmlwdGlvbkluZm8pKTsKIApA QCAtNDc5Miw2ICs0ODAyLDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJ CXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW5yZW1vdGVsc24pKTsKIAkJ c3ViaW5mb1tpXS5zdWJlbmFibGVkID0KIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwg aV9zdWJlbmFibGVkKSk7CisJCXN1YmluZm9baV0uc3ViZmFpbG92ZXJzdGF0ZSA9CisJCQlwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZmFpbG92ZXJzdGF0ZSkpOwogCiAJCS8qIERl Y2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZU9iamVj dCgmKHN1YmluZm9baV0uZG9iaiksIGZvdXQpOwpAQCAtNDk3Myw2ICs0OTg1LDcgQEAgZHVtcFN1 YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZv KQogCWludAkJCW5wdWJuYW1lcyA9IDA7CiAJaW50CQkJaTsKIAljaGFyCQl0d29fcGhhc2VfZGlz YWJsZWRbXSA9IHtMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0RJU0FCTEVELCAnXDAnfTsKKwlj aGFyCQlmYWlsb3Zlcl9kaXNhYmxlZFtdID0ge0xPR0lDQUxSRVBfRkFJTE9WRVJfU1RBVEVfRElT QUJMRUQsICdcMCd9OwogCiAJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLwogCWlm IChkb3B0LT5kYXRhT25seSkKQEAgLTUwMjAsNiArNTAzMyw5IEBAIGR1bXBTdWJzY3JpcHRpb24o QXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAlpZiAoc3Ry Y21wKHN1YmluZm8tPnN1YnR3b3BoYXNlc3RhdGUsIHR3b19waGFzZV9kaXNhYmxlZCkgIT0gMCkK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIHR3b19waGFzZSA9IG9uIik7CiAKKwlp ZiAoc3RyY21wKHN1YmluZm8tPnN1YmZhaWxvdmVyc3RhdGUsIGZhaWxvdmVyX2Rpc2FibGVkKSAh PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgZmFpbG92ZXIgPSB0cnVlIik7 CisKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmRpc2FibGVvbmVyciwgInQiKSA9PSAwKQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgZGlzYWJsZV9vbl9lcnJvciA9IHRydWUiKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKaW5kZXggOWEzNDM0N2NmYy4uOTQ2YzllMjJhZiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBA IC02NzUsNiArNjc1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFy CSAgICpzdWJwdWJsaWNhdGlvbnM7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1 Ym9yaWdpbnJlbW90ZWxzbjsKKwljaGFyCSAgICpzdWJmYWlsb3ZlcnN0YXRlOwogfSBTdWJzY3Jp cHRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKaW5kZXggMTkwZGQ1M2E0Mi4uYjQxYTMzNWI3MyAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvaW5mby5jCkBAIC02NjYsNyArNjY2LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxf c2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCSAqIHN0YXJ0ZWQg YW5kIHN0b3BwZWQgc2V2ZXJhbCB0aW1lcyBjYXVzaW5nIGFueSB0ZW1wb3Jhcnkgc2xvdHMgdG8g YmUKIAkgKiByZW1vdmVkLgogCSAqLwotCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJT RUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFzZSwgIgorCXJlcyA9IGV4ZWN1dGVRdWVy eU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFzZSwgZmFpbG92 ZXIsICIKIAkJCQkJCQkiJXMgYXMgY2F1Z2h0X3VwLCBjb25mbGljdF9yZWFzb24gSVMgTk9UIE5V TEwgYXMgaW52YWxpZCAiCiAJCQkJCQkJIkZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9z bG90cyAiCiAJCQkJCQkJIldIRVJFIHNsb3RfdHlwZSA9ICdsb2dpY2FsJyBBTkQgIgpAQCAtNjg0 LDYgKzY4NCw3IEBAIGdldF9vbGRfY2x1c3Rlcl9sb2dpY2FsX3Nsb3RfaW5mb3MoRGJJbmZvICpk YmluZm8sIGJvb2wgbGl2ZV9jaGVjaykKIAkJaW50CQkJaV9zbG90bmFtZTsKIAkJaW50CQkJaV9w bHVnaW47CiAJCWludAkJCWlfdHdvcGhhc2U7CisJCWludAkJCWlfZmFpbG92ZXI7CiAJCWludAkJ CWlfY2F1Z2h0X3VwOwogCQlpbnQJCQlpX2ludmFsaWQ7CiAKQEAgLTY5Miw2ICs2OTMsNyBAQCBn ZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29sIGxp dmVfY2hlY2spCiAJCWlfc2xvdG5hbWUgPSBQUWZudW1iZXIocmVzLCAic2xvdF9uYW1lIik7CiAJ CWlfcGx1Z2luID0gUFFmbnVtYmVyKHJlcywgInBsdWdpbiIpOwogCQlpX3R3b3BoYXNlID0gUFFm bnVtYmVyKHJlcywgInR3b19waGFzZSIpOworCQlpX2ZhaWxvdmVyID0gUFFmbnVtYmVyKHJlcywg ImZhaWxvdmVyIik7CiAJCWlfY2F1Z2h0X3VwID0gUFFmbnVtYmVyKHJlcywgImNhdWdodF91cCIp OwogCQlpX2ludmFsaWQgPSBQUWZudW1iZXIocmVzLCAiaW52YWxpZCIpOwogCkBAIC03MDIsNiAr NzA0LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5m bywgYm9vbCBsaXZlX2NoZWNrKQogCQkJY3Vyci0+c2xvdG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIHNsb3RudW0sIGlfc2xvdG5hbWUpKTsKIAkJCWN1cnItPnBsdWdpbiA9IHBnX3N0 cmR1cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9wbHVnaW4pKTsKIAkJCWN1cnItPnR3b19w aGFzZSA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfdHdvcGhhc2UpLCAidCIp ID09IDApOworCQkJY3Vyci0+ZmFpbG92ZXIgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBzbG90 bnVtLCBpX2ZhaWxvdmVyKSwgInQiKSA9PSAwKTsKIAkJCWN1cnItPmNhdWdodF91cCA9IChzdHJj bXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfY2F1Z2h0X3VwKSwgInQiKSA9PSAwKTsKIAkJ CWN1cnItPmludmFsaWQgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBpX2ludmFs aWQpLCAidCIpID09IDApOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAxNGEzNmYw NTAzLi4xMGM5NGE2YzFmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFk ZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTkxNiw4ICs5MTYs MTAgQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHModm9pZCkKIAkJCWFwcGVuZFN0 cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90X2luZm8tPnNsb3RuYW1lLCBjb25uKTsKIAkJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKIAkJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25u KHF1ZXJ5LCBzbG90X2luZm8tPnBsdWdpbiwgY29ubik7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwgIiwgZmFsc2UsICVzKTsiLAotCQkJCQkJCSAgc2xvdF9pbmZvLT50d29fcGhhc2UgPyAi dHJ1ZSIgOiAiZmFsc2UiKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIGZhbHNl LCAlcywgJXMpOyIsCisJCQkJCQkJICBzbG90X2luZm8tPnR3b19waGFzZSA/ICJ0cnVlIiA6ICJm YWxzZSIsCisJCQkJCQkJICBzbG90X2luZm8tPmZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIik7 CiAKIAkJCVBRY2xlYXIoZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIiVzIiwgcXVlcnktPmRhdGEp KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9i aW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggYTFkMDhjM2RhYi4uZDlhODQ4Y2JmZCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xNjAsNiArMTYwLDggQEAgdHlwZWRlZiBzdHJ1 Y3QKIAlib29sCQl0d29fcGhhc2U7CQkvKiBjYW4gdGhlIHNsb3QgZGVjb2RlIDJQQz8gKi8KIAli b29sCQljYXVnaHRfdXA7CQkvKiBoYXMgdGhlIHNsb3QgY2F1Z2h0IHVwIHRvIGxhdGVzdCBjaGFu Z2VzPyAqLwogCWJvb2wJCWludmFsaWQ7CQkvKiBpZiB0cnVlLCB0aGUgc2xvdCBpcyB1bnVzYWJs ZSAqLworCWJvb2wJCWZhaWxvdmVyOwkJLyogaXMgdGhlIHNsb3QgZGVzaWduYXRlZCB0byBiZSBz eW5jZWQgdG8gdGhlCisJCQkJCQkJCSAqIHBoeXNpY2FsIHN0YW5kYnk/ICovCiB9IExvZ2ljYWxT bG90SW5mbzsKIAogdHlwZWRlZiBzdHJ1Y3QKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS90LzAwM19sb2dpY2FsX3Nsb3RzLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2lj YWxfc2xvdHMucGwKaW5kZXggMGU3MDE0ZWNjZS4uYTFmNzg3MDE5ZCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKKysrIGIvc3JjL2Jpbi9wZ191 cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKQEAgLTE1OSw3ICsxNTksNyBAQCAkc3ViLT5z dGFydDsKICRzdWItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAlDUkVBVEUgVEFCTEUg dGJsIChhIGludCk7Ci0JQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YiBDT05ORUNUSU9O ICckb2xkX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViIFdJVEggKHR3b19waGFzZSA9 ICd0cnVlJykKKwlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04gJyRv bGRfY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0gJ3Ry dWUnLCBmYWlsb3ZlciA9ICd0cnVlJykKIF0pOwogJHN1Yi0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG9sZHB1YiwgJ3JlZ3Jlc3Nfc3ViJyk7CiAKQEAgLTE3OSw4ICsxNzksOCBAQCBjb21t YW5kX29rKFtAcGdfdXBncmFkZV9jbWRdLCAncnVuIG9mIHBnX3VwZ3JhZGUgb2Ygb2xkIGNsdXN0 ZXInKTsKICMgQ2hlY2sgdGhhdCB0aGUgc2xvdCAncmVncmVzc19zdWInIGhhcyBtaWdyYXRlZCB0 byB0aGUgbmV3IGNsdXN0ZXIKICRuZXdwdWItPnN0YXJ0OwogbXkgJHJlc3VsdCA9ICRuZXdwdWIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhhc2UgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyIpOwotaXMoJHJlc3VsdCwgcXEocmVncmVzc19zdWJ8dCks ICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKKwkiU0VMRUNUIHNsb3Rf bmFtZSwgdHdvX3BoYXNlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIik7Citp cygkcmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0fHQpLCAnY2hlY2sgdGhlIHNsb3QgZXhpc3RzIG9u IG5ldyBjbHVzdGVyJyk7CiAKICMgVXBkYXRlIHRoZSBjb25uZWN0aW9uCiBteSAkbmV3X2Nvbm5z dHIgPSAkbmV3cHViLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAz N2Y5NTE2MzIwLi5kMzdjNzA2MTBjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjU2Myw3ICs2NTYzLDggQEAgZGVz Y3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQ R3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKIAlzdGF0 aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLAotCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2V9OwogCiAJaWYg KHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNjYyNyw2ICs2NjI4LDExIEBAIGRlc2Ny aWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJ CQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCiAJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CiAKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTcwMDAw KQorCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIHN1YmZhaWxvdmVyc3Rh dGUgQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJGYWlsb3ZlciIpKTsKKwog CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBc IiVzXCJcbiIKIAkJCQkJCSAgIiwgIHN1YmNvbm5pbmZvIEFTIFwiJXNcIlxuIiwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYwppbmRleCAwMDc3MGEwZTZiLi5lNDY4ZmUxNzNiIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0z MzI3LDcgKzMzMjcsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAu Li4gIFdJVEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlNV QlNDUklQVElPTiIpICYmIFRhaWxNYXRjaGVzKCJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lU SCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJCQkJ ICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgIm9yaWdpbiIsCisJCQkJCSAgImRpc2Fi bGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAogCQkJCQkgICJw YXNzd29yZF9yZXF1aXJlZCIsICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJICAi c3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKaW5kZXggNzk3OTM5Mjc3Ni4uZjQwNzI2YzRmNyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CkBAIC0xMTExNSwxNyArMTExMTUsMTcgQEAKICAgcHJvbmFtZSA9PiAncGdf Z2V0X3JlcGxpY2F0aW9uX3Nsb3RzJywgcHJvcm93cyA9PiAnMTAnLCBwcm9pc3N0cmljdCA9PiAn ZicsCiAgIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9 PiAncmVjb3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7 bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0 ZXh0LGludDgsYm9vbCx0ZXh0fScsCi0gIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNs b3RfdHlwZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194 bWluLHJlc3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9z aXplLHR3b19waGFzZSxjb25mbGljdF9yZWFzb259JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tu YW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRl eHQsaW50OCxib29sLHRleHQsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1 Z2luLHNsb3RfdHlwZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0 YWxvZ194bWluLHJlc3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZl X3dhbF9zaXplLHR3b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92ZXJ9JywKICAgcHJvc3Jj ID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnIH0sCiB7IG9pZCA9PiAnMzc4NicsIGRlc2Ny ID0+ICdzZXQgdXAgYSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QnLAogICBwcm9uYW1lID0+ICdw Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JywgcHJvdm9sYXRpbGUgPT4gJ3YnLAog ICBwcm9wYXJhbGxlbCA9PiAndScsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCi0gIHByb2FyZ3R5 cGVzID0+ICduYW1lIG5hbWUgYm9vbCBib29sJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1l LG5hbWUsYm9vbCxib29sLG5hbWUscGdfbHNufScsCi0gIHByb2FyZ21vZGVzID0+ICd7aSxpLGks aSxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0 d29waGFzZSxzbG90X25hbWUsbHNufScsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIG5hbWUgYm9v bCBib29sIGJvb2wnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSxib29sLGJvb2ws Ym9vbCxuYW1lLHBnX2xzbn0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksaSxpLGksaSxvLG99JywK KyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0d29waGFzZSxm YWlsb3ZlcixzbG90X25hbWUsbHNufScsCiAgIHByb3NyYyA9PiAncGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCcgfSwKIHsgb2lkID0+ICc0MjIyJywKICAgZGVzY3IgPT4gJ2NvcHkg YSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QsIGNoYW5naW5nIHRlbXBvcmFsaXR5IGFuZCBwbHVn aW4nLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggY2EzMjYyNTU4NS4u ZTZlMGYwMmZkMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC0zMSw2 ICszMSwxNCBAQAogI2RlZmluZSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX1BFTkRJTkcgJ3An CiAjZGVmaW5lIExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfRU5BQkxFRCAnZScKIAorLyoKKyAq IGZhaWxvdmVyIHRyaS1zdGF0ZSB2YWx1ZXMuIFNlZSBjb21tZW50cyBhdG9wIHdvcmtlci5jIHRv IGtub3cgbW9yZSBhYm91dAorICogdGhlc2Ugc3RhdGVzLgorICovCisjZGVmaW5lIExPR0lDQUxS RVBfRkFJTE9WRVJfU1RBVEVfRElTQUJMRUQgJ2QnCisjZGVmaW5lIExPR0lDQUxSRVBfRkFJTE9W RVJfU1RBVEVfUEVORElORyAncCcKKyNkZWZpbmUgTE9HSUNBTFJFUF9GQUlMT1ZFUl9TVEFURV9F TkFCTEVEICdlJworCiAvKgogICogVGhlIHN1YnNjcmlwdGlvbiB3aWxsIHJlcXVlc3QgdGhlIHB1 Ymxpc2hlciB0byBvbmx5IHNlbmQgY2hhbmdlcyB0aGF0IGRvIG5vdAogICogaGF2ZSBhbnkgb3Jp Z2luLgpAQCAtOTMsNiArMTAxLDggQEAgQ0FUQUxPRyhwZ19zdWJzY3JpcHRpb24sNjEwMCxTdWJz Y3JpcHRpb25SZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJLSV9ST1cKIAlib29sCQlz dWJydW5hc293bmVyOwkvKiBUcnVlIGlmIHJlcGxpY2F0aW9uIHNob3VsZCBleGVjdXRlIGFzIHRo ZQogCQkJCQkJCQkgKiBzdWJzY3JpcHRpb24gb3duZXIgKi8KIAorCWNoYXIJCXN1YmZhaWxvdmVy c3RhdGU7CS8qIEZhaWxvdmVyIHN0YXRlICovCisKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5lY3Rpb24gc3Ry aW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBCS0lfRk9SQ0VfTk9U X05VTEw7CkBAIC0xNDUsNiArMTU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJ TGlzdAkgICAqcHVibGljYXRpb25zOwkvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG5hbWVzIHRvIHN1 YnNjcmliZSB0byAqLwogCWNoYXIJICAgKm9yaWdpbjsJCQkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBv cmlnaW5hdGluZyBmcm9tIHRoZQogCQkJCQkJCQkgKiBzcGVjaWZpZWQgb3JpZ2luICovCisJY2hh cgkJZmFpbG92ZXJzdGF0ZTsJLyogQWxsb3cgc2xvdCB0byBiZSBzeW5jaHJvbml6ZWQgZm9yIGZh aWxvdmVyICovCiB9IFN1YnNjcmlwdGlvbjsKIAogLyogRGlzYWxsb3cgc3RyZWFtaW5nIGluLXBy b2dyZXNzIHRyYW5zYWN0aW9ucy4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Jl cGxub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKaW5kZXggYWYwYTMzM2Yx YS4uZWQyMzMzM2U5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKQEAgLTcyLDYgKzcyLDE4IEBAIHR5 cGVkZWYgc3RydWN0IERyb3BSZXBsaWNhdGlvblNsb3RDbWQKIH0gRHJvcFJlcGxpY2F0aW9uU2xv dENtZDsKIAogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJQUxURVJfUkVQTElDQVRJ T05fU0xPVCBjb21tYW5kCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg c3RydWN0IEFsdGVyUmVwbGljYXRpb25TbG90Q21kCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFy CSAgICpzbG90bmFtZTsKKwlMaXN0CSAgICpvcHRpb25zOworfSBBbHRlclJlcGxpY2F0aW9uU2xv dENtZDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU1RBUlRfUkVQTElDQVRJ T04gY29tbWFuZAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o CmluZGV4IDllMzlhYWYzMDMuLjU4NWNjYmI1MDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAg LTExMSw2ICsxMTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90UGVyc2lzdGVu dERhdGEKIAogCS8qIHBsdWdpbiBuYW1lICovCiAJTmFtZURhdGEJcGx1Z2luOworCisJLyoKKwkg KiBJcyB0aGlzIGEgZmFpbG92ZXIgc2xvdCAoc3luYyBjYW5kaWRhdGUgZm9yIHBoeXNpY2FsIHN0 YW5kYnlzKT8gT25seQorCSAqIHJlbGV2YW50IGZvciBsb2dpY2FsIHNsb3RzIG9uIHRoZSBwcmlt YXJ5IHNlcnZlci4KKwkgKi8KKwlib29sCQlmYWlsb3ZlcjsKIH0gUmVwbGljYXRpb25TbG90UGVy c2lzdGVudERhdGE7CiAKIC8qCkBAIC0yMTgsOSArMjI0LDEwIEBAIGV4dGVybiB2b2lkIFJlcGxp Y2F0aW9uU2xvdHNTaG1lbUluaXQodm9pZCk7CiAvKiBtYW5hZ2VtZW50IG9mIGluZGl2aWR1YWwg c2xvdHMgKi8KIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpu YW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3Rl bmN5IHBlcnNpc3RlbmN5LAotCQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNlKTsKKwkJCQkJCQkJICBi b29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNs b3RQZXJzaXN0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBj aGFyICpuYW1lLCBib29sIG5vd2FpdCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRl cihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGlj YXRpb25TbG90QWNxdWlyZShjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CiBleHRlcm4g dm9pZCBSZXBsaWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmgKaW5kZXggMDg5OTg5MWNkYi4uZjU2NmE5OWJhMSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93YWxyZWNlaXZlci5oCkBAIC0zNTUsOSArMzU1LDIwIEBAIHR5cGVkZWYgY2hhciAq KCp3YWxyY3ZfY3JlYXRlX3Nsb3RfZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJ CQkJY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksCiAJCQkJ CQkJCQkJYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCQkJYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJ CQlDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCiAJCQkJCQkJCQkJWExvZ1JlY1B0 ciAqbHNuKTsKIAorLyoKKyAqIHdhbHJjdl9hbHRlcl9zbG90X2ZuCisgKgorICogQ2hhbmdlIHRo ZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4gQ3VycmVudGx5LCBpdCBvbmx5IHN1 cHBvcnRzCisgKiBjaGFuZ2luZyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNsb3QuCisg Ki8KK3R5cGVkZWYgdm9pZCAoKndhbHJjdl9hbHRlcl9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25u ICpjb25uLAorCQkJCQkJCQkJICBjb25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJCSAgYm9v bCBmYWlsb3Zlcik7CisKIC8qCiAgKiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkX2ZuCiAgKgpAQCAt Mzk5LDYgKzQxMCw3IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQog CXdhbHJjdl9yZWNlaXZlX2ZuIHdhbHJjdl9yZWNlaXZlOwogCXdhbHJjdl9zZW5kX2ZuIHdhbHJj dl9zZW5kOwogCXdhbHJjdl9jcmVhdGVfc2xvdF9mbiB3YWxyY3ZfY3JlYXRlX3Nsb3Q7CisJd2Fs cmN2X2FsdGVyX3Nsb3RfZm4gd2FscmN2X2FsdGVyX3Nsb3Q7CiAJd2FscmN2X2dldF9iYWNrZW5k X3BpZF9mbiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkOwogCXdhbHJjdl9leGVjX2ZuIHdhbHJjdl9l eGVjOwogCXdhbHJjdl9kaXNjb25uZWN0X2ZuIHdhbHJjdl9kaXNjb25uZWN0OwpAQCAtNDI4LDgg KzQ0MCwxMCBAQCBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpX YWxSZWNlaXZlckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3JlY2Vp dmUoY29ubiwgYnVmZmVyLCB3YWl0X2ZkKQogI2RlZmluZSB3YWxyY3Zfc2VuZChjb25uLCBidWZm ZXIsIG5ieXRlcykgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3Zfc2VuZChjb25uLCBi dWZmZXIsIG5ieXRlcykKLSNkZWZpbmUgd2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1l LCB0ZW1wb3JhcnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pIFwKLQlXYWxSZWNl aXZlckZ1bmN0aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3Jh cnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9jcmVh dGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0d29fcGhhc2UsIGZhaWxvdmVyLCBz bmFwc2hvdF9hY3Rpb24sIGxzbikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY3Jl YXRlX3Nsb3QoY29ubiwgc2xvdG5hbWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwg c25hcHNob3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9hbHRlcl9zbG90KGNvbm4sIHNs b3RuYW1lLCBmYWlsb3ZlcikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfYWx0ZXJf c2xvdChjb25uLCBzbG90bmFtZSwgZmFpbG92ZXIpCiAjZGVmaW5lIHdhbHJjdl9nZXRfYmFja2Vu ZF9waWQoY29ubikgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X2JhY2tlbmRf cGlkKGNvbm4pCiAjZGVmaW5lIHdhbHJjdl9leGVjKGNvbm4sIGV4ZWMsIG5SZXRUeXBlcywgcmV0 VHlwZXMpIFwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRl cm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKaW5kZXgg NTE1YWVmZDUxOS4uNGUxZjZlN2RmOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKQEAgLTI1Niw3ICsyNTYsOCBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvbk9y aWdpbk5hbWVGb3JMb2dpY2FsUmVwKE9pZCBzdWJvaWQsIE9pZCByZWxpZCwKIAkJCQkJCQkJCQkJ ICAgY2hhciAqb3JpZ2lubmFtZSwgU2l6ZSBzem9yaWdpbm5hbWUpOwogCiBleHRlcm4gYm9vbCBB bGxUYWJsZXN5bmNzUmVhZHkodm9pZCk7Ci1leHRlcm4gdm9pZCBVcGRhdGVUd29QaGFzZVN0YXRl KE9pZCBzdWJvaWQsIGNoYXIgbmV3X3N0YXRlKTsKK2V4dGVybiB2b2lkIEVuYWJsZVR3b1BoYXNl RmFpbG92ZXJUcmlTdGF0ZShPaWQgc3Vib2lkLCBib29sIGVuYWJsZV90d29waGFzZSwKKwkJCQkJ CQkJCQkgICBib29sIGVuYWJsZV9mYWlsb3Zlcik7CiAKIGV4dGVybiB2b2lkIHByb2Nlc3Nfc3lu Y2luZ190YWJsZXMoWExvZ1JlY1B0ciBjdXJyZW50X2xzbik7CiBleHRlcm4gdm9pZCBpbnZhbGlk YXRlX3N5bmNpbmdfdGFibGVfc3RhdGVzKERhdHVtIGFyZywgaW50IGNhY2hlaWQsCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMu cGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMu cGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzk2YmYwYTRhZgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbApAQCAtMCwwICsxLDEwMiBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMywg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgdGhhdCB3aGVuIGEgc3Vic2NyaXB0 aW9uIHdpdGggZmFpbG92ZXIgZW5hYmxlZCBpcyBjcmVhdGVkLCBpdCB3aWxsIGFsdGVyCisjIHRo ZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUgY29ycmVzcG9uZGluZyBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCisjIENyZWF0ZSBwdWJsaXNoZXIKK215ICRwdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJHB1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3Ry ZWFtaW5nID0+ICdsb2dpY2FsJyk7CiskcHVibGlzaGVyLT5zdGFydDsKKworJHB1Ymxpc2hlci0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGlu dCBQUklNQVJZIEtFWSk7CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfbXlwdWIgRk9SIFRB QkxFIHRhYl9pbnQ7CitdKTsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJHB1Ymxpc2hlci0+ Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBDcmVhdGUgYSBzdWJzY3JpYmVyIG5v ZGUsIHdhaXQgZm9yIHN5bmMgdG8gY29tcGxldGUKK215ICRzdWJzY3JpYmVyMSA9IFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjEnKTsKKyRzdWJzY3JpYmVyMS0+aW5p dDsKKyRzdWJzY3JpYmVyMS0+c3RhcnQ7CisKKyMgQ3JlYXRlIGEgc2xvdCBvbiB0aGUgcHVibGlz aGVyIHdpdGggZmFpbG92ZXIgZGlzYWJsZWQKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdCgnbHN1YjFfc2xvdCcsICdwZ291dHB1dCcsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOyIKKyk7 CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGlzIHR1cm5l ZCBvZmYKK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCXF7U0VM RUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0g J2xzdWIxX3Nsb3QnO30KKwkpLAorCSJmIiwKKwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3ZlciBm YWxzZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyMgQ3JlYXRlIGFub3RoZXIgc3Vic2NyaXB0aW9u ICh1c2luZyB0aGUgc2FtZSBzbG90IGNyZWF0ZWQgYWJvdmUpIHRoYXQgZW5hYmxlcworIyBmYWls b3Zlci4KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFU RSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7CisJQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHJlZ3Jlc3NfbXlwdWIgV0lUSCAoc2xvdF9uYW1lID0gbHN1YjFfc2xvdCwgY29weV9kYXRh PWZhbHNlLCBmYWlsb3ZlciA9IHRydWUsIGNyZWF0ZV9zbG90ID0gZmFsc2UpOworXSk7CisKKyMg Q29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0 dXJuZWQgb24KK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCXF7 U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1l ID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJ0IiwKKwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3Zl ciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCBpZiBjaGFuZ2luZyB0aGUgZmFpbG92ZXIg cHJvcGVydHkgb2YgYSBzdWJzY3JpcHRpb24gdXBkYXRlcyB0aGUKKyMgY29ycmVzcG9uZGluZyBm YWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUgc2xvdC4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgRElTQUJMRSIpOworCisj IFdhaXQgZm9yIHRoZSByZXBsaWNhdGlvbiBzbG90IHRvIGJlY29tZSBpbmFjdGl2ZSBvbiB0aGUg cHVibGlzaGVyCiskcHVibGlzaGVyLT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsCisJ IlNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMgV0hF UkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnIEFORCBhY3RpdmU9J2YnIiwKKwkxKTsKKworIyBE aXNhYmxlIGZhaWxvdmVyCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgU0VUIChmYWlsb3ZlciA9IGZhbHNlKSIp OworCisjIENvbmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMgbm93 IGJlZW4gdHVybmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVz JywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBz bG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNsb3QgaGFz IGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBFbmFibGUgZmFpbG92ZXIg YW5kIHRoZSBzdWJzY3JpcHRpb24KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jl cycsIHFxWworCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBTRVQgKGZhaWxvdmVy ID0gdHJ1ZSk7CisJQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIEVOQUJMRTsKK10p OworCisjIENvbmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMgbm93 IGJlZW4gdHVybmVkIG9uCitvayggJHB1Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bv c3RncmVzJywKKwkJIlNFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdI RVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JzsiKSwKKwknbG9naWNhbCBzbG90IGhhcyBmYWls b3ZlciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIik7CisKK2RvbmVf dGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBkODc4YTk3MWRm Li5hY2MyMzM5YjQ5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTQ3Myw4 ICsxNDczLDkgQEAgcGdfcmVwbGljYXRpb25fc2xvdHN8IFNFTEVDVCBsLnNsb3RfbmFtZSwKICAg ICBsLndhbF9zdGF0dXMsCiAgICAgbC5zYWZlX3dhbF9zaXplLAogICAgIGwudHdvX3BoYXNlLAot ICAgIGwuY29uZmxpY3RfcmVhc29uCi0gICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMo KSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3Rp dmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1l ZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxp Y3RfcmVhc29uKQorICAgIGwuY29uZmxpY3RfcmVhc29uLAorICAgIGwuZmFpbG92ZXIKKyAgIEZS T00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xvdF9uYW1lLCBwbHVnaW4sIHNsb3Rf dHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0aXZlX3BpZCwgeG1pbiwgY2F0YWxv Z194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNoX2xzbiwgd2FsX3N0YXR1cywgc2Fm ZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFzb24sIGZhaWxvdmVyKQogICAgICBM RUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKGwuZGF0b2lkID0gZC5vaWQpKSk7CiBwZ19yb2xl c3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lLAogICAgIHBnX2F1dGhpZC5yb2xzdXBlciwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCBiMTVlZGRiZmYz Li45NmM2MTQzMzJjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNj cmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CkBAIC0xMTYsMTggKzExNiwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVQogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhl IHN1YnNjcmlwdGlvbi4KIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0g ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2Zm ICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBkICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9IGFueSk7CiBc ZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZCAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViMzsKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBj b25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNv bm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRI IChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTU3LDEwICsxNTcsMTAgQEAgQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9ICduZXduYW1lJyk7CiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxz ZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocnVuX2FzX293bmVy ID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAg ICAgICAgICAgfCBkICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gdHJ1ZSk7CkBAIC0xNzYsMTAgKzE3 NiwxMCBAQCBFUlJPUjogIHVucmVjb2duaXplZCBzdWJzY3JpcHRpb24gcGFyYW1ldGVyOiAiY3Jl YXRlX3Nsb3QiCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQ IChsc24gPSAnMC8xMjM0NScpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1Ymxp Y2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMTIzNDUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMTIzNDUKICgxIHJvdykKIAogLS0gb2sg LSB3aXRoIGxzbiA9IE5PTkUKQEAgLTE4OCwxMCArMTg4LDEwIEBAIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gTk9ORSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzAnKTsKIEVSUk9SOiAgaW52YWxpZCBXQUwg bG9jYXRpb24gKExTTik6IDAvMAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1Ymxp Y2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZCAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAtMjIz LDEwICsyMjMsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VU IChzeW5jaHJvbm91c19jb21taXQgPSBmb29iYXIpOwogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZv ciBwYXJhbWV0ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6ICJmb29iYXIiCiBISU5UOiAgQXZhaWxh YmxlIHZhbHVlczogbG9jYWwsIHJlbW90ZV93cml0ZSwgcmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGQgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAogKDEgcm93KQogCiAtLSByZW5h bWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQpAQCAtMjU1LDE5ICsyNTUsMTkgQEAgQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQs IGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlv dSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBz dWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZCAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykK IAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNl KTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBO T05FKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBkICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7 CkBAIC0yNzksMjcgKzI3OSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzog IHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBU byBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1 YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBkICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gcGFyYWxsZWwpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBmYWxzZSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZCAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIGFscmVhZHkgZXhpc3RzCkBA IC0zMTQsMTAgKzMxNCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIEFE RCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcgogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIy IFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMSIg aXMgYWxyZWFkeSBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIFxkUnMrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZCAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykK IAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVzZWQgbW9yZSB0aGFuIG9uY2UKQEAgLTMzMiwxMCAr MzMyLDEwIEBAIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIzIiBpcyBub3QgaW4gc3Vic2Ny aXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiAtLSBvayAtIGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi MSwgdGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBkICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0zNzEsMTAgKzM3MSwxMCBAQCBDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwg YnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91 IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1 YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg b2ZmICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBkICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQog CiAtLWZhaWwgLSBhbHRlciBvZiB0d29fcGhhc2Ugb3B0aW9uIG5vdCBzdXBwb3J0ZWQuCkBAIC0z ODMsMTAgKzM4MywxMCBAQCBFUlJPUjogIHVucmVjb2duaXplZCBzdWJzY3JpcHRpb24gcGFyYW1l dGVyOiAidHdvX3BoYXNlIgogLS0gYnV0IGNhbiBhbHRlciBzdHJlYW1pbmcgd2hlbiB0d29fcGhh c2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVh bWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTM5NiwxMCArMzk2LDEwIEBAIENS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVk LCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5 b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUg c3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAg ICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cp CiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBO T05FKTsKQEAgLTQxMiwxOCArNDEyLDMxIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0 aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZCAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKygxIHJvdykK KworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworLS0gdGVzdCBmYWlsb3Zl ciBvcHRpb24KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGZhaWxvdmVyID0gdHJ1ZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9u IHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJl cGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3Qs IGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgor XGRScysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgcCAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1 YnNjcmlwdGlvbi5zcWwKaW5kZXggNDQ0ZTU2M2ZmMy4uZTQ2MDExNThiMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yOTAsNiArMjkwLDE0IEBAIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tIHRlc3QgZmFpbG92ZXIg b3B0aW9uCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBmYWlsb3ZlciA9IHRydWUpOworCitcZFJzKworCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CisKIC0tIGxldCdzIGRvIHNvbWUgdGVzdHMgd2l0aCBw Z19jcmVhdGVfc3Vic2NyaXB0aW9uIHJhdGhlciB0aGFuIHN1cGVydXNlcgogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKIApkaWZmIC0tZ2l0IGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAppbmRleCA1ZmQ0NmI3YmQxLi45YjY3OTg2OTE0IDEwMDY0NAotLS0gYS9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdApAQCAtODUsNiArODUsNyBAQCBBbHRlck93bmVyU3RtdAogQWx0ZXJQb2xpY3lT dG10CiBBbHRlclB1YmxpY2F0aW9uQWN0aW9uCiBBbHRlclB1YmxpY2F0aW9uU3RtdAorQWx0ZXJS ZXBsaWNhdGlvblNsb3RDbWQKIEFsdGVyUm9sZVNldFN0bXQKIEFsdGVyUm9sZVN0bXQKIEFsdGVy U2VxU3RtdApAQCAtMzg3NCw2ICszODc1LDcgQEAgdmFyYXR0cmliXzFiX2UKIHZhcmF0dHJpYl80 YgogdmJpdHMKIHZlcmlmaWVyX2NvbnRleHQKK3dhbHJjdl9hbHRlcl9zbG90X2ZuCiB3YWxyY3Zf Y2hlY2tfY29ubmluZm9fZm4KIHdhbHJjdl9jb25uZWN0X2ZuCiB3YWxyY3ZfY3JlYXRlX3Nsb3Rf Zm4KLS0gCjIuMzQuMQoK --000000000000705ebc060e1792db Content-Type: application/octet-stream; name="v57-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Disposition: attachment; filename="v57-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lqyqjjd21 RnJvbSAwN2EyN2MxNTA4OTc5NzEwNDllZDFlZGFjZGM2MjUwNGM2NjcwOGU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOTozNzo1MCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU3 IDIvNF0gQWRkIGxvZ2ljYWwgc2xvdCBzeW5jIGNhcGFiaWxpdHkgdG8gdGhlIHBoeXNpY2FsCiBz dGFuZGJ5CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgc3luY2hyb25pemF0aW9uIG9mIGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdHMKZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgdG8gdGhlIHBoeXNpY2Fs IHN0YW5kYnkgc28gdGhhdCBsb2dpY2FsCnJlcGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVy IGZhaWxvdmVyLgoKR1VDICdlbmFibGVfc3luY3Nsb3QnIGVuYWJsZXMgYSBwaHlzaWNhbCBzdGFu ZGJ5IHRvIHN5bmNocm9uaXplIGZhaWxvdmVyCmxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgZnJv bSB0aGUgcHJpbWFyeSBzZXJ2ZXIuCgpUaGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBvbiB0 aGUgcHJpbWFyeSBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBob3QKc3RhbmRieSBieSBlbmFi bGluZyB0aGUgZmFpbG92ZXIgb3B0aW9uIGR1cmluZyBzbG90IGNyZWF0aW9uIGFuZCBzZXR0aW5n CidlbmFibGVfc3luY3Nsb3QnIG9uIHRoZSBzdGFuZGJ5LiBGb3IgdGhlIHN5bmNocm9uaXphdGlv biB0byB3b3JrLCBpdCBpcwptYW5kYXRvcnkgdG8gaGF2ZSBhIHBoeXNpY2FsIHJlcGxpY2F0aW9u IHNsb3QgYmV0d2VlbiB0aGUgcHJpbWFyeSBhbmQgdGhlCnN0YW5kYnksIGFuZCBob3Rfc3RhbmRi eV9mZWVkYmFjayBtdXN0IGJlIGVuYWJsZWQgb24gdGhlIHN0YW5kYnkuCgpBbGwgdGhlIGZhaWxv dmVyIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgb24gdGhlIHByaW1hcnkgKGFzc3VtaW5nCmNv bmZpZ3VyYXRpb25zIGFyZSBhcHByb3ByaWF0ZSkgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBv biB0aGUgcGh5c2ljYWwKc3RhbmRieXMgYW5kIGFyZSBzeW5jZWQgcGVyaW9kaWNhbGx5LiBTbG90 LXN5bmMgd29ya2VyIG9uIHRoZSBzdGFuZGJ5IHNlcnZlcgpwaW5nIHRoZSBwcmltYXJ5IHNlcnZl ciBhdCByZWd1bGFyIGludGVydmFscyB0byBnZXQgdGhlIG5lY2Vzc2FyeQpmYWlsb3ZlciBsb2dp Y2FsIHNsb3RzIGluZm9ybWF0aW9uIGFuZCBjcmVhdGUvdXBkYXRlIHRoZSBzbG90cyBsb2NhbGx5 LgoKVGhlIG5hcCB0aW1lIG9mIHRoZSB3b3JrZXIgaXMgdHVuZWQgYWNjb3JkaW5nIHRvIHRoZSBh Y3Rpdml0eSBvbiB0aGUgcHJpbWFyeS4KVGhlIHdvcmtlciBzdGFydHMgd2l0aCBuYXAgdGltZSBv ZiAxMG1zIGFuZCBpZiBubyBhY3Rpdml0eSBpcyBvYnNlcnZlZCBvbgp0aGUgcHJpbWFyeSBmb3Ig c29tZSB0aW1lLCB0aGVuIG5hcCB0aW1lIGlzIGluY3JlYXNlZCB0byAxMHNlYy4gSWYKYWN0aXZp dHkgaXMgb2JzZXJ2ZWQgYWdhaW4sIG5hcCB0aW1lIGlzIHJlZHVjZWQgYmFjayB0byAxMG1zLgoK VGhlIGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBzbG90LXN5bmMgd29ya2VyIG9uIHBoeXNpY2Fs IHN0YW5kYnlzIGFyZSBub3QKYWxsb3dlZCB0byBiZSBkcm9wcGVkIG9yIGNvbnN1bWVkLiBBbnkg YXR0ZW1wdCB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24Kc3VjaCBzbG90cyB3aWxsIHJl c3VsdCBpbiBhbiBlcnJvci4KCklmIGEgbG9naWNhbCBzbG90IGlzIGludmFsaWRhdGVkIG9uIHRo ZSBwcmltYXJ5LCBzbG90IG9uIHRoZSBzdGFuZGJ5IGlzIGFsc28KaW52YWxpZGF0ZWQuCgpJZiBh IGxvZ2ljYWwgc2xvdCBvbiB0aGUgcHJpbWFyeSBpcyB2YWxpZCBidXQgaXMgaW52YWxpZGF0ZWQg b24gdGhlIHN0YW5kYnksCnRoZW4gdGhhdCBzbG90IGlzIGRyb3BwZWQgYW5kIHJlY3JlYXRlZCBv biB0aGUgc3RhbmRieSBpbiBuZXh0IHN5bmMtY3ljbGUKcHJvdmlkZWQgdGhlIHNsb3Qgc3RpbGwg ZXhpc3RzIG9uIHRoZSBwcmltYXJ5IHNlcnZlci4gSXQgaXMgb2theSB0byByZWNyZWF0ZQpzdWNo IHNsb3RzIGFzIGxvbmcgYXMgdGhlc2UgYXJlIG5vdCBjb25zdW1hYmxlIG9uIHRoZSBzdGFuZGJ5 ICh3aGljaCBpcyB0aGUKY2FzZSBjdXJyZW50bHkpLiBUaGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIg ZHVlIHRvIHRoZSBmb2xsb3dpbmcgcmVhc29uczoKLSBUaGUgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6 ZSBvbiB0aGUgc3RhbmRieSBpcyBpbnN1ZmZpY2llbnQgdG8gcmV0YWluIFdBTAogIHJlY29yZHMg ZnJvbSB0aGUgcmVzdGFydF9sc24gb2YgdGhlIHNsb3QuCi0gcHJpbWFyeV9zbG90X25hbWUgaXMg dGVtcG9yYXJpbHkgcmVzZXQgdG8gbnVsbCBhbmQgdGhlIHBoeXNpY2FsIHNsb3QgaXMKICByZW1v dmVkLgotIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xldmVsIHRvIGEgbGV2ZWwgbG93ZXIgdGhh biBsb2dpY2FsLgoKVGhlIHNsb3RzIHN5bmNocm9uaXphdGlvbiBzdGF0dXMgb24gdGhlIHN0YW5k YnkgY2FuIGJlIG1vbml0b3JlZCB1c2luZwonc3luY19zdGF0ZScgY29sdW1uIG9mIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIHZpZXcuIFRoZSB2YWx1ZXMgYXJlOgonbm9uZSc6IGZvciB1c2VyIHNsb3Rz LAonaW5pdGlhdGVkJzogc3luYyBpbml0aWF0ZWQgZm9yIHRoZSBzbG90IGJ1dCBzbG90IGlzIG5v dCByZWFkeSB5ZXQgZm9yIHBlcmlvZGljIHN5bmNzLAoncmVhZHknOiByZWFkeSBmb3IgcGVyaW9k aWMgc3luY3MuCi0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgICA2NSArLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAg ICAgIHwgICAyNyArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sICAgICAgICAg ICAgIHwgICAzMSArCiBkb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgICAgICAgICAgICAg ICAgfCAgIDM1ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jICAg ICB8ICAgMTggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAg IHwgICAgMyArLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jICAgICAgICAgICAg IHwgICAgNCArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAg fCAgIDEwICsKIC4uLi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyAgICAgICB8 ICAgNDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZSAgICAgIHwg ICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyAgICAgfCAg IDI1ICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgICB8ICAg IDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jICAgIHwgMTM1 NyArKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYyAgICAgIHwgICAxNSArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAg ICAgICAgICAgIHwgICAzNSArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMg ICAgICAgICAgIHwgICAyNyArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMg ICAgICAgICAgIHwgICAgNCArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jICAgICAg ICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAg ICAgICAgICAgfCAgIDExICsKIC4uLi91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4 dCAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAg ICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAg ICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAg ICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oICAg ICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAgICAgICAg ICAgfCAgIDI5ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oICAgICAg ICAgfCAgIDE4ICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAg ICB8ICAgMTEgKwogLi4uL3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCAgICAg IHwgIDE4NSArKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAg ICB8ICAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0ICAgICAg ICB8ICAgIDMgKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAg ICB8ICAgIDIgKwogMzIgZmlsZXMgY2hhbmdlZCwgMTk1MSBpbnNlcnRpb25zKCspLCAzNSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3Nsb3RzeW5jLmMKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbCBi L2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sCmluZGV4IDJjMzkzMzg1YTkuLmE3Y2ZlNmM1OGMg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9iZ3dvcmtlci5zZ21sCkBAIC0xMTQsMTggKzExNCw1OSBAQCB0eXBlZGVmIHN0cnVjdCBCYWNr Z3JvdW5kV29ya2VyCiAKICAgPHBhcmE+CiAgICA8c3RydWN0ZmllbGQ+Ymd3X3N0YXJ0X3RpbWU8 L3N0cnVjdGZpZWxkPiBpcyB0aGUgc2VydmVyIHN0YXRlIGR1cmluZyB3aGljaAotICAgPGNvbW1h bmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IHNob3VsZCBzdGFydCB0aGUgcHJvY2VzczsgaXQgY2FuIGJl IG9uZSBvZgotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQ8L2xpdGVy YWw+IChzdGFydCBhcyBzb29uIGFzCi0gICA8Y29tbWFuZD5wb3N0Z3JlczwvY29tbWFuZD4gaXRz ZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGluaXRpYWxpemF0aW9uOyBwcm9jZXNzZXMKLSAgIHJl cXVlc3RpbmcgdGhpcyBhcmUgbm90IGVsaWdpYmxlIGZvciBkYXRhYmFzZSBjb25uZWN0aW9ucyks Ci0gICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gKHN0 YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRlCi0gICBoYXMgYmVlbiByZWFjaGVkIGlu IGEgaG90IHN0YW5kYnksIGFsbG93aW5nIHByb2Nlc3NlcyB0byBjb25uZWN0IHRvCi0gICBkYXRh YmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVlcmllcyksIGFuZAotICAgPGxpdGVyYWw+QmdXb3Jr ZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcyB0aGUg c3lzdGVtIGhhcwotICAgZW50ZXJlZCBub3JtYWwgcmVhZC13cml0ZSBzdGF0ZSkuICBOb3RlIHRo ZSBsYXN0IHR3byB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQKLSAgIGluIGEgc2VydmVyIHRoYXQncyBu b3QgYSBob3Qgc3RhbmRieS4gIE5vdGUgdGhhdCB0aGlzIHNldHRpbmcgb25seSBpbmRpY2F0ZXMK LSAgIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qgc3Rv cCB3aGVuIGEgZGlmZmVyZW50IHN0YXRlCi0gICBpcyByZWFjaGVkLgorICAgPGNvbW1hbmQ+cG9z dGdyZXM8L2NvbW1hbmQ+IHNob3VsZCBzdGFydCB0aGUgcHJvY2Vzcy4gTm90ZSB0aGF0IHRoaXMg c2V0dGluZworICAgb25seSBpbmRpY2F0ZXMgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSB0byBiZSBz dGFydGVkOyB0aGV5IGRvIG5vdCBzdG9wIHdoZW4KKyAgIGEgZGlmZmVyZW50IHN0YXRlIGlzIHJl YWNoZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVy U3RhcnQ8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9w cmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgcG9zdGdyZXMgaXRz ZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGluaXRpYWxpemF0aW9uOworICAgICAgIHByb2Nlc3Nl cyByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlv bnMuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0 X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdXb3JrZXJTdGFydF9Db25zaXN0 ZW50U3RhdGU8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU3RhcnQgYXMgc29vbiBhcyBh IGNvbnNpc3RlbnQgc3RhdGUgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdC1zdGFuZGJ5LAorICAg ICAgIGFsbG93aW5nIHByb2Nlc3NlcyB0byBjb25uZWN0IHRvIGRhdGFiYXNlcyBhbmQgcnVuIHJl YWQtb25seSBxdWVyaWVzLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+ QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1h cnk+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTwvcHJpbWFyeT48L2lu ZGV4dGVybT4KKyAgICAgICBTYW1lIG1lYW5pbmcgYXMgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9D b25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IGJ1dAorICAgICAgIGl0IGlzIG1vcmUgc3RyaWN0IGlu IHRlcm1zIG9mIHRoZSBzZXJ2ZXIgaS5lLiBzdGFydCB0aGUgd29ya2VyIG9ubHkKKyAgICAgICBp ZiBpdCBpcyBob3Qtc3RhbmRieS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRl cmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD48L3Rlcm0+CisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdX b3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAg IFN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3RlbSBoYXMgZW50ZXJlZCBub3JtYWwgcmVhZC13cml0 ZSBzdGF0ZS4gTm90ZQorICAgICAgIHRoYXQgdGhlIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29u c2lzdGVudFN0YXRlPC9saXRlcmFsPiBhbmQKKyAgICAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRf UmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQKKyAgICAgICBpbiBhIHNl cnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5kYnkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDwvdmFyaWFibGVsaXN0PgogICA8L3Bh cmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggZjMyM2JiYTAxOC4uY2Q5YWU3MGM0MSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtNDYxMSw4ICs0NjExLDEzIEBAIEFOWSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0iCiAg ICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLCBvciBp biBhIHNlcGFyYXRlCiAgICAgICAgICAgPGZpbGVuYW1lPn4vLnBncGFzczwvZmlsZW5hbWU+IGZp bGUgb24gdGhlIHN0YW5kYnkgc2VydmVyICh1c2UKICAgICAgICAgICA8bGl0ZXJhbD5yZXBsaWNh dGlvbjwvbGl0ZXJhbD4gYXMgdGhlIGRhdGFiYXNlIG5hbWUpLgotICAgICAgICAgIERvIG5vdCBz cGVjaWZ5IGEgZGF0YWJhc2UgbmFtZSBpbiB0aGUKLSAgICAgICAgICA8dmFybmFtZT5wcmltYXJ5 X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICBJZiBzbG90IHN5bmNocm9uaXphdGlvbiBpcyBlbmFibGVkIChzZWUK KyAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtZW5hYmxlLXN5bmNzbG90Ii8+KSB0aGVuIGl0 IGlzIGFsc28KKyAgICAgICAgICBuZWNlc3NhcnkgdG8gc3BlY2lmeSA8bGl0ZXJhbD5kYm5hbWU8 L2xpdGVyYWw+IGluIHRoZQorICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zh cm5hbWU+IHN0cmluZy4gVGhpcyB3aWxsIG9ubHkgYmUgdXNlZCBmb3IKKyAgICAgICAgICBzbG90 IHN5bmNocm9uaXphdGlvbi4gSXQgaXMgaWdub3JlZCBmb3Igc3RyZWFtaW5nLgogICAgICAgICAg PC9wYXJhPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9u bHkgYmUgc2V0IGluIHRoZSA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4KQEAg LTQ5MzcsNiArNDk0MiwyNCBAQCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51 bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgPC9saXN0 aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3Vj LWVuYWJsZS1zeW5jc2xvdCIgeHJlZmxhYmVsPSJlbmFibGVfc3luY3Nsb3QiPgorICAgICAgPHRl cm0+PHZhcm5hbWU+ZW5hYmxlX3N5bmNzbG90PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlw ZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmVuYWJsZV9z eW5jc2xvdDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAg ICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgSXQgZW5hYmxlcyBhIHBoeXNpY2FsIHN0YW5kYnkgdG8gc3luY2hyb25p emUgbG9naWNhbCBmYWlsb3ZlciBzbG90cworICAgICAgICBmcm9tIHRoZSBwcmltYXJ5IHNlcnZl ciBzbyB0aGF0IGxvZ2ljYWwgc3Vic2NyaWJlcnMgYXJlIG5vdCBibG9ja2VkCisgICAgICAgIGFm dGVyIGZhaWxvdmVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXQg aXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGlu IHRoZQorICAgICAgICA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmlsZSBv ciBvbiB0aGUgc2VydmVyIGNvbW1hbmQgbGluZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAg PC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21s IGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IGNkMTUyZDRjZWQuLmRl NmNkYmUyYmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTM0Niw2ICszNDYsMzcg QEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygn cmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlUKICAgICAgPGZ1bmN0aW9uPnBnX2xvZ19zdGFuZGJ5 X3NuYXBzaG90PC9mdW5jdGlvbj4gZnVuY3Rpb24gb24gdGhlIHByaW1hcnkuCiAgICAgPC9wYXJh PgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBw cmltYXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdAorICAgICBzdGFuZGJ5IGJ5IGVu YWJsaW5nIHRoZSBmYWlsb3ZlciBvcHRpb24gZHVyaW5nIHNsb3QgY3JlYXRpb24gYW5kIHNldHRp bmcKKyAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWVuYWJsZS1zeW5jc2xvdCIvPiBvbiB0aGUgc3Rh bmRieS4gRm9yIHRoZSBzeW5jaHJvbml6YXRpb24KKyAgICAgdG8gd29yaywgaXQgaXMgbWFuZGF0 b3J5IHRvIGhhdmUgYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdlZW4gdGhlCisgICAg IHByaW1hcnkgYW5kIHRoZSBzdGFuZGJ5LCBhbmQgPHZhcm5hbWU+aG90X3N0YW5kYnlfZmVlZGJh Y2s8L3Zhcm5hbWU+IG11c3QKKyAgICAgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4gSXQncyBh bHNvIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBzYWlkCisgICAgIHBoeXNpY2FsIHJlcGxp Y2F0aW9uIHNsb3QgaXMgbmFtZWQgaW4gPHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92YXJu YW1lPgorICAgICBsaXN0IG9uIHRoZSBwcmltYXJ5LCB0byBwcmV2ZW50IHRoZSBzdWJzY3JpYmVy IGZyb20gY29uc3VtaW5nIGNoYW5nZXMKKyAgICAgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFuZGJ5 LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgYWJpbGl0eSB0byByZXN1bWUg bG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBkZXBlbmRzIHVwb24gdGhlCisgICAg IDxsaW5rIGxpbmtlbmQ9InZpZXctcGctcmVwbGljYXRpb24tc2xvdHMiPnBnX3JlcGxpY2F0aW9u X3Nsb3RzPC9saW5rPi48c3RydWN0ZmllbGQ+c3luY19zdGF0ZTwvc3RydWN0ZmllbGQ+CisgICAg IHZhbHVlIGZvciB0aGUgc3luY2hyb25pemVkIHNsb3RzIG9uIHRoZSBzdGFuZGJ5IGF0IHRoZSB0 aW1lIG9mIGZhaWxvdmVyLgorICAgICBPbmx5IHNsb3RzIHRoYXQgaGF2ZSBhdHRhaW5lZCAicmVh ZHkiIHN5bmNfc3RhdGUgKCdyJykgb24gdGhlIHN0YW5kYnkKKyAgICAgYmVmb3JlIGZhaWxvdmVy IGNhbiBiZSB1c2VkIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyLiBTbG90 cworICAgICB0aGF0IGhhdmUgbm90IHlldCByZWFjaGVkICdyJyBzdGF0ZSAodGhleSBhcmUgc3Rp bGwgJ2knKSB3aWxsIGJlIGRyb3BwZWQsCisgICAgIHRoZXJlZm9yZSBsb2dpY2FsIHJlcGxpY2F0 aW9uIGZvciB0aG9zZSBzbG90cyBjYW5ub3QgYmUgcmVzdW1lZC4gRm9yCisgICAgIGV4YW1wbGUs IGlmIHRoZSBzeW5jaHJvbml6ZWQgc2xvdCBjb3VsZCBub3QgYmVjb21lIHN5bmMtcmVhZHkgb24g dGhlCisgICAgIHN0YW5kYnkgZHVlIHRvIGEgZGlzYWJsZWQgc3Vic2NyaXB0aW9uLCB0aGVuIHRo ZSBzdWJzY3JpcHRpb24gY2Fubm90IGJlCisgICAgIHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIgZXZl biB3aGVuIGl0IGlzIGVuYWJsZWQuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBJZiB0 aGUgcHJpbWFyeSBpcyBpZGxlLCB0aGVuIHRoZSBzeW5jaHJvbml6ZWQgc2xvdHMgb24gdGhlIHN0 YW5kYnkgbWF5CisgICAgIHRha2UgYSBub3RpY2VhYmxlIHRpbWUgdG8gcmVhY2ggdGhlIHJlYWR5 ICgncicpIHN5bmNfc3RhdGUuIFRoaXMgY2FuCisgICAgIGJlIHNwZWQgdXAgYnkgY2FsbGluZyB0 aGUKKyAgICAgPGZ1bmN0aW9uPnBnX2xvZ19zdGFuZGJ5X3NuYXBzaG90PC9mdW5jdGlvbj4gZnVu Y3Rpb24gb24gdGhlIHByaW1hcnkuCisgICAgPC9wYXJhPgorCiAgICAgPGNhdXRpb24+CiAgICAg IDxwYXJhPgogICAgICAgUmVwbGljYXRpb24gc2xvdHMgcGVyc2lzdCBhY3Jvc3MgY3Jhc2hlcyBh bmQga25vdyBub3RoaW5nIGFib3V0IHRoZSBzdGF0ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCmluZGV4 IGMxMDg4MGIyMDAuLjVlYjdkMWJjOGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0t dmlld3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTI1NjYs NiArMjU2Niw0MSBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tzIHBsIExFRlQgSk9JTiBwZ19wcmVw YXJlZF94YWN0cyBwcHgKICAgICAgICBhZnRlciBmYWlsb3Zlci4gQWx3YXlzIGZhbHNlIGZvciBw aHlzaWNhbCBzbG90cy4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3luY19zdGF0ZTwv c3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgIERlZmluZXMgc2xvdCBzeW5jaHJvbml6YXRpb24gc3RhdGUuIFRoaXMgaXMgbWVh bmluZ2Z1bCBvbiB0aGUgcGh5c2ljYWwKKyAgICAgIHN0YW5kYnkgd2hpY2ggaGFzIGNvbmZpZ3Vy ZWQgPHhyZWYgbGlua2VuZD0iZ3VjLWVuYWJsZS1zeW5jc2xvdCIvPiA9IHRydWUuCisgICAgICBQ b3NzaWJsZSB2YWx1ZXMgYXJlOgorICAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgIDxwYXJhPjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+ID0gZm9yIHVzZXIg Y3JlYXRlZCBzbG90cywKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+PGxpdGVyYWw+aW5pdGlhdGVkPC9saXRl cmFsPiA9IHN5bmMgaW5pdGlhdGVkIGZvciB0aGUgc2xvdCBidXQgc2xvdAorICAgICAgICAgaXMg bm90IHJlYWR5IHlldCBmb3IgcGVyaW9kaWMgc3luY3MsCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAg ICAgICAgIDxsaXRlcmFsPnJlYWR5PC9saXRlcmFsPiA9IHJlYWR5IGZvciBwZXJpb2RpYyBzeW5j cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L2l0ZW1p emVkbGlzdD4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgVGhlIGhvdCBzdGFu ZGJ5IGNhbiBoYXZlIGFueSBvZiB0aGVzZSBzeW5jX3N0YXRlIHZhbHVlcyBmb3IgdGhlIHNsb3Rz IGJ1dAorICAgICAgb24gYSBob3Qgc3RhbmRieSwgdGhlIHNsb3RzIHdpdGggc3RhdGUgJ3JlYWR5 JyBhbmQgJ2luaXRpYXRlZCcgY2FuIG5laXRoZXIKKyAgICAgIGJlIHVzZWQgZm9yIGxvZ2ljYWwg ZGVjb2Rpbmcgbm9yIGRyb3BwZWQgYnkgdGhlIHVzZXIuCisgICAgICBUaGUgc3luY19zdGF0ZSBo YXMgbm8gbWVhbmluZyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXI7IHRoZSBwcmltYXJ5CisgICAgICBz eW5jX3N0YXRlIHZhbHVlIGlzIGRlZmF1bHQgJ25vbmUnIGZvciBhbGwgc2xvdHMgYnV0IG1heSAo aWYgbGVmdG92ZXIKKyAgICAgIGZyb20gYSBwcm9tb3RlZCBzdGFuZGJ5KSAgYWxzbyBiZSAncmVh ZHknLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAg ICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3Jl Y292ZXJ5LmMKaW5kZXggMWI0OGQ3MTcxYS4uZDY3YzVjMTc5MyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJw b3N0bWFzdGVyL3N0YXJ0dXAuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5j bHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93 b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCkBAIC0xNDQxLDYgKzE0NDIs MjMgQEAgRmluaXNoV2FsUmVjb3Zlcnkodm9pZCkKIAkgKi8KIAlYTG9nU2h1dGRvd25XYWxSY3Yo KTsKIAorCS8qCisJICogU2h1dGRvd24gdGhlIHNsb3Qgc3luYyB3b3JrZXJzIHRvIHByZXZlbnQg cG90ZW50aWFsIGNvbmZsaWN0cyBiZXR3ZWVuCisJICogdXNlciBwcm9jZXNzZXMgYW5kIHNsb3Rz eW5jIHdvcmtlcnMgYWZ0ZXIgYSBwcm9tb3Rpb24uIEFkZGl0aW9uYWxseSwKKwkgKiBkcm9wIGFu eSBzbG90cyB0aGF0IGhhdmUgaW5pdGlhdGVkIGJ1dCBub3QgeWV0IGNvbXBsZXRlZCB0aGUgc3lu YworCSAqIHByb2Nlc3MuCisJICoKKwkgKiBXZSBkbyBub3QgdXBkYXRlIHRoZSBzeW5jX3N0YXRl IGZyb20gUkVBRFkgdG8gTk9ORSBoZXJlLCBhcyBhbnkgZmFpbGVkCisJICogdXBkYXRlIGNvdWxk IGxlYXZlIHNvbWUgc2xvdHMgaW4gdGhlICdOT05FJyBzdGF0ZSwgY2F1c2luZyBpc3N1ZXMgZHVy aW5nCisJICogc2xvdCBzeW5jIGFmdGVyIHJlc3RhcnRpbmcgdGhlIHNlcnZlciBhcyBhIHN0YW5k YnkuIFdoaWxlIHVwZGF0aW5nIGFmdGVyCisJICogc3dpdGNoaW5nIHRvIHRoZSBuZXcgdGltZWxp bmUgaXMgYW4gb3B0aW9uLCBpdCBkb2VzIG5vdCBzaW1wbGlmeSB0aGUKKwkgKiBoYW5kbGluZyBm b3IgYm90aCBSRUFEWSBhbmQgTk9ORSBzdGF0ZSBzbG90cy4gVGhlcmVmb3JlLCB3ZSByZXRhaW4g dGhlCisJICogUkVBRFkgc3RhdGUgc2xvdHMgYWZ0ZXIgcHJvbW90aW9uIGFzIHRoZXkgY2FuIHBy b3ZpZGUgdXNlZnVsIGluZm9ybWF0aW9uCisJICogYWJvdXQgdGhlaXIgb3JpZ2luLgorCSAqLwor CVNodXREb3duU2xvdFN5bmMoKTsKKwlzbG90c3luY19kcm9wX2luaXRpYXRlZF9zbG90cygpOwor CiAJLyoKIAkgKiBXZSBhcmUgbm93IGRvbmUgcmVhZGluZyB0aGUgeGxvZyBmcm9tIHN0cmVhbS4g VHVybiBvZmYgc3RyZWFtaW5nCiAJICogcmVjb3ZlcnkgdG8gZm9yY2UgZmV0Y2hpbmcgdGhlIGZp bGVzICh3aGljaCB3b3VsZCBiZSByZXF1aXJlZCBhdCBlbmQgb2YKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbAppbmRleCAxZTk1NDE0N2U1Li5kZjJkNGJkMDFhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDI0LDcgKzEwMjQsOCBAQCBDUkVBVEUgVklFVyBw Z19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAgICAgICAgTC5zYWZlX3dhbF9zaXplLAogICAg ICAgICAgICAgTC50d29fcGhhc2UsCiAgICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNvbiwKLSAg ICAgICAgICAgIEwuZmFpbG92ZXIKKyAgICAgICAgICAgIEwuZmFpbG92ZXIsCisgICAgICAgICAg ICBMLnN5bmNfc3RhdGUKICAgICBGUk9NIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIEFTIEwK ICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBEIE9OIChMLmRhdG9pZCA9IEQub2lk KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDY3ZjkyYzI0ZGIuLjQ2ODI4Yjhh ODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dp Y2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9kc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbGF0 Y2guaCIKQEAgLTEyOSw2ICsxMzAsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0CiAJewogCQkiQXBw bHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWluCiAJfSwKKwl7CisJCSJSZXBsU2xvdFN5bmNX b3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2VyTWFpbgorCX0sCiAJewogCQkiUGFyYWxsZWxB cHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5V29ya2VyTWFpbgogCX0sCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGZlYjQ3MWRkMWQuLmQ5MGQ1ZDE1NzYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRlICJw b3N0bWFzdGVyL3dhbHN1bW1hcml6ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fs bGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRl ICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3BnX3NobWVtLmgi CkBAIC0xMDEwLDYgKzEwMTEsMTIgQEAgUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAkgKi8KIAlBcHBseUxhdW5jaGVyUmVnaXN0ZXIoKTsKIAorCS8qCisJICogUmVnaXN0 ZXIgdGhlIHNsb3Qgc3luYyB3b3JrZXIgaGVyZSB0byBraWNrIHN0YXJ0IHNsb3Qtc3luYyBvcGVy YXRpb24KKwkgKiBzb29uZXIgb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkuCisJICovCisJU2xvdFN5 bmNXb3JrZXJSZWdpc3RlcigpOworCiAJLyoKIAkgKiBwcm9jZXNzIGFueSBsaWJyYXJpZXMgdGhh dCBzaG91bGQgYmUgcHJlbG9hZGVkIGF0IHBvc3RtYXN0ZXIgc3RhcnQKIAkgKi8KQEAgLTU3OTks NiArNTgwNiw5IEBAIGJnd29ya2VyX3Nob3VsZF9zdGFydF9ub3coQmdXb3JrZXJTdGFydFRpbWUg c3RhcnRfdGltZSkKIAkJY2FzZSBQTV9IT1RfU1RBTkRCWToKIAkJCWlmIChzdGFydF90aW1lID09 IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlKQogCQkJCXJldHVybiB0cnVlOworCQkJaWYg KHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieSAm JgorCQkJCQkgcG1TdGF0ZSAhPSBQTV9SVU4pCisJCQkJcmV0dXJuIHRydWU7CiAJCQkvKiBmYWxs IHRocm91Z2ggKi8KIAogCQljYXNlIFBNX1JFQ09WRVJZOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYwpp bmRleCA0NWM5NDAwNmFlLi43YTZmZjU1N2JjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYwpAQCAt MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRp bHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzdG9yZS5oIgorI2luY2x1ZGUgInV0 aWxzL3ZhcmxlbmEuaCIKIAogUEdfTU9EVUxFX01BR0lDOwogCkBAIC01OCw2ICs1OSw3IEBAIHN0 YXRpYyB2b2lkIGxpYnBxcmN2X2dldF9zZW5kZXJpbmZvKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwK IAkJCQkJCQkJCWNoYXIgKipzZW5kZXJfaG9zdCwgaW50ICpzZW5kZXJfcG9ydCk7CiBzdGF0aWMg Y2hhciAqbGlicHFyY3ZfaWRlbnRpZnlfc3lzdGVtKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJ CQkJCQkJCSAgVGltZUxpbmVJRCAqcHJpbWFyeV90bGkpOworc3RhdGljIGNoYXIgKmxpYnBxcmN2 X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbyk7CiBzdGF0aWMg aW50CWxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2VpdmVyQ29ubiAqY29ubik7CiBzdGF0 aWMgdm9pZCBsaWJwcXJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZShXYWxSZWNlaXZlckNvbm4g KmNvbm4sCiAJCQkJCQkJCQkJCSBUaW1lTGluZUlEIHRsaSwgY2hhciAqKmZpbGVuYW1lLApAQCAt MTAwLDYgKzEwMiw3IEBAIHN0YXRpYyBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFXYWxSZWNl aXZlckZ1bmN0aW9ucyA9IHsKIAkud2FscmN2X3NlbmQgPSBsaWJwcXJjdl9zZW5kLAogCS53YWxy Y3ZfY3JlYXRlX3Nsb3QgPSBsaWJwcXJjdl9jcmVhdGVfc2xvdCwKIAkud2FscmN2X2FsdGVyX3Ns b3QgPSBsaWJwcXJjdl9hbHRlcl9zbG90LAorCS53YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5p bmZvID0gbGlicHFyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvLAogCS53YWxyY3ZfZ2V0X2Jh Y2tlbmRfcGlkID0gbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkLAogCS53YWxyY3ZfZXhlYyA9IGxp YnBxcmN2X2V4ZWMsCiAJLndhbHJjdl9kaXNjb25uZWN0ID0gbGlicHFyY3ZfZGlzY29ubmVjdApA QCAtNDE4LDYgKzQyMSw0NCBAQCBsaWJwcXJjdl9zZXJ2ZXJfdmVyc2lvbihXYWxSZWNlaXZlckNv bm4gKmNvbm4pCiAJcmV0dXJuIFBRc2VydmVyVmVyc2lvbihjb25uLT5zdHJlYW1Db25uKTsKIH0K IAorLyoKKyAqIEdldCBkYXRhYmFzZSBuYW1lIGZyb20gdGhlIHByaW1hcnkgc2VydmVyJ3MgY29u bmluZm8uCisgKgorICogSWYgZGJuYW1lIGlzIG5vdCBmb3VuZCBpbiBjb25uSW5mbywgcmV0dXJu IE5VTEwgdmFsdWUuCisgKi8KK3N0YXRpYyBjaGFyICoKK2xpYnBxcmN2X2dldF9kYm5hbWVfZnJv bV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uSW5mbykKK3sKKwlQUWNvbm5pbmZvT3B0aW9uICpv cHRzOworCWNoYXIJICAgKmRibmFtZSA9IE5VTEw7CisJY2hhcgkgICAqZXJyID0gTlVMTDsKKwor CW9wdHMgPSBQUWNvbm5pbmZvUGFyc2UoY29ubkluZm8sICZlcnIpOworCWlmIChvcHRzID09IE5V TEwpCisJeworCQkvKiBUaGUgZXJyb3Igc3RyaW5nIGlzIG1hbGxvYydkLCBzbyB3ZSBtdXN0IGZy ZWUgaXQgZXhwbGljaXRseSAqLworCQljaGFyCSAgICplcnJjb3B5ID0gZXJyID8gcHN0cmR1cChl cnIpIDogIm91dCBvZiBtZW1vcnkiOworCisJCVBRZnJlZW1lbShlcnIpOworCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJp bnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogJXMiLCBlcnJjb3B5KSkpOworCX0KKwor CWZvciAoUFFjb25uaW5mb09wdGlvbiAqb3B0ID0gb3B0czsgb3B0LT5rZXl3b3JkICE9IE5VTEw7 ICsrb3B0KQorCXsKKwkJLyoKKwkJICogSWYgbXVsdGlwbGUgZGJuYW1lcyBhcmUgc3BlY2lmaWVk LCB0aGVuIHRoZSBsYXN0IG9uZSB3aWxsIGJlCisJCSAqIHJldHVybmVkCisJCSAqLworCQlpZiAo c3RyY21wKG9wdC0+a2V5d29yZCwgImRibmFtZSIpID09IDAgJiYgb3B0LT52YWwgJiYKKwkJCW9w dC0+dmFsWzBdICE9ICdcMCcpCisJCQlkYm5hbWUgPSBwc3RyZHVwKG9wdC0+dmFsKTsKKwl9CisK KwlyZXR1cm4gZGJuYW1lOworfQorCiAvKgogICogU3RhcnQgc3RyZWFtaW5nIFdBTCBkYXRhIGZy b20gZ2l2ZW4gc3RyZWFtaW5nIG9wdGlvbnMuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvTWFrZWZpbGUKaW5kZXggMmRjMjVlMzdiYi4uYmEwM2VlZmYxYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCkBAIC0yNSw2ICsyNSw3IEBAIE9CSlMgPSBc CiAJcHJvdG8ubyBcCiAJcmVsYXRpb24ubyBcCiAJcmVvcmRlcmJ1ZmZlci5vIFwKKwlzbG90c3lu Yy5vIFwKIAlzbmFwYnVpbGQubyBcCiAJdGFibGVzeW5jLm8gXAogCXdvcmtlci5vCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IGNhMDljNjgzZjEuLmVlOWYy NDQ1YTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC01 MjQsNiArNTI0LDMxIEBAIENyZWF0ZURlY29kaW5nQ29udGV4dChYTG9nUmVjUHRyIHN0YXJ0X2xz biwKIAkJCQkgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiB3YXMgbm90IGNyZWF0ZWQg aW4gdGhpcyBkYXRhYmFzZSIsCiAJCQkJCQlOYW1lU3RyKHNsb3QtPmRhdGEubmFtZSkpKSk7CiAK KwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJeworCQkvKgorCQkgKiBEbyBub3QgYWxsb3cg Y29uc3VtcHRpb24gb2YgYSAic3luY2hyb25pemVkIiBzbG90IHVudGlsIHRoZSBzdGFuZGJ5CisJ CSAqIGdldHMgcHJvbW90ZWQuCisJCSAqLworCQlpZiAoc2xvdC0+ZGF0YS5zeW5jX3N0YXRlICE9 IFNZTkNTTE9UX1NUQVRFX05PTkUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQllcnJtc2coImNh bm5vdCB1c2UgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgZm9yIGxvZ2ljYWwiCisJCQkJCQkgICAi IGRlY29kaW5nIiwgTmFtZVN0cihzbG90LT5kYXRhLm5hbWUpKSwKKwkJCQkJZXJyZGV0YWlsKCJU aGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpLAorCQkJ CQllcnJoaW50KCJTcGVjaWZ5IGFub3RoZXIgcmVwbGljYXRpb24gc2xvdC4iKSk7CisJfQorCWVs c2UKKwl7CisJCS8qCisJCSAqIFNsb3RzIGluIHN0YXRlIFNZTkNTTE9UX1NUQVRFX0lOSVRJQVRF RCBzaG91bGQgaGF2ZSBiZWVuIGRyb3BwZWQgb24KKwkJICogcHJvbW90aW9uLgorCQkgKi8KKwkJ aWYgKHNsb3QtPmRhdGEuc3luY19zdGF0ZSA9PSBTWU5DU0xPVF9TVEFURV9JTklUSUFURUQpCisJ CQllbG9nKEVSUk9SLCAicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgd2FzIG5vdCBzeW5jZWQgY29t cGxldGVseSIKKwkJCQkgIiBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciIsIE5hbWVTdHIoc2xvdC0+ ZGF0YS5uYW1lKSk7CisJfQorCiAJLyoKIAkgKiBDaGVjayBpZiBzbG90IGhhcyBiZWVuIGludmFs aWRhdGVkIGR1ZSB0byBtYXhfc2xvdF93YWxfa2VlcF9zaXplLiBBdm9pZAogCSAqICJjYW5ub3Qg Z2V0IGNoYW5nZXMiIHdvcmRpbmcgaW4gdGhpcyBlcnJtc2cgYmVjYXVzZSB0aGF0J2QgYmUKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkCmluZGV4IDEwNTBlYjJj MDkuLjNkZWMzNmE2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNv bi5idWlsZApAQCAtMTEsNiArMTEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdw cm90by5jJywKICAgJ3JlbGF0aW9uLmMnLAogICAncmVvcmRlcmJ1ZmZlci5jJywKKyAgJ3Nsb3Rz eW5jLmMnLAogICAnc25hcGJ1aWxkLmMnLAogICAndGFibGVzeW5jLmMnLAogICAnd29ya2VyLmMn LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmE4NGFiMDIwZWUKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTAsMCArMSwx MzU3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHNsb3RzeW5jLmMKKyAqCSAgIFBvc3RncmVT UUwgd29ya2VyIGZvciBzeW5jaHJvbml6aW5nIHNsb3RzIHRvIGEgc3RhbmRieSBzZXJ2ZXIgZnJv bSB0aGUKKyAqICAgICAgICAgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogQ29weXJpZ2h0IChjKSAy MDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJ Q0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwor ICoKKyAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgY29kZSBmb3Igc2xvdCBzeW5jIHdvcmtlciBv biBhIHBoeXNpY2FsIHN0YW5kYnkKKyAqIHRvIGZldGNoIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMg aW5mb3JtYXRpb24gZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIsCisgKiBjcmVhdGUgdGhlIHNsb3Rz IG9uIHRoZSBzdGFuZGJ5IGFuZCBzeW5jaHJvbml6ZSB0aGVtIHBlcmlvZGljYWxseS4KKyAqCisg KiBXaGlsZSBjcmVhdGluZyB0aGUgc2xvdCBvbiBwaHlzaWNhbCBzdGFuZGJ5LCBpZiB0aGUgbG9j YWwgcmVzdGFydF9sc24gYW5kL29yCisgKiBsb2NhbCBjYXRhbG9nX3htaW4gaXMgYWhlYWQgb2Yg dGhvc2Ugb24gdGhlIHJlbW90ZSB0aGVuIHRoZSB3b3JrZXIgY2Fubm90CisgKiBjcmVhdGUgdGhl IGxvY2FsIHNsb3QgaW4gc3luYyB3aXRoIHRoZSBwcmltYXJ5IHNlcnZlciBiZWNhdXNlIHRoYXQg d291bGQKKyAqIG1lYW4gbW92aW5nIHRoZSBsb2NhbCBzbG90IGJhY2t3YXJkcyBhbmQgdGhlIHN0 YW5kYnkgbWlnaHQgbm90IGhhdmUgV0FMcworICogcmV0YWluZWQgZm9yIG9sZCBMU04uIEluIHRo aXMgY2FzZSwgdGhlIHdvcmtlciB3aWxsIHdhaXQgZm9yIHRoZSBwcmltYXJ5CisgKiBzZXJ2ZXIg c2xvdCdzIHJlc3RhcnRfbHNuIGFuZCBjYXRhbG9nX3htaW4gdG8gY2F0Y2ggdXAgd2l0aCB0aGUg bG9jYWwgb25lCisgKiBiZWZvcmUgYXR0ZW1wdGluZyB0aGUgYWN0dWFsIHN5bmMuIE1lYW53aGls ZSwgaXQgd2lsbCBwZXJzaXN0IHRoZSBzbG90IHdpdGgKKyAqIHN5bmNfc3RhdGUgYXMgU1lOQ1NM T1RfU1RBVEVfSU5JVElBVEVEKCdpJykuIE9uY2UgdGhlIHByaW1hcnkgc2VydmVyIGNhdGNoZXMK KyAqIHVwLCBpdCB3aWxsIG1vdmUgdGhlIHNsb3QgdG8gU1lOQ1NMT1RfU1RBVEVfUkVBRFkoJ3In KSBzdGF0ZSBhbmQgd2lsbCBwZXJmb3JtCisgKiB0aGUgc3luYyBwZXJpb2RpY2FsbHkuCisgKgor ICogVGhlIHdvcmtlciBhbHNvIHRha2VzIGNhcmUgb2YgZHJvcHBpbmcgdGhlIHNsb3RzIHdoaWNo IHdlcmUgY3JlYXRlZCBieSBpdAorICogYW5kIGFyZSBjdXJyZW50bHkgbm90IG5lZWRlZCB0byBi ZSBzeW5jaHJvbml6ZWQuCisgKgorICogSXQgdGFrZXMgYSBuYXAgb2YgV09SS0VSX0RFRkFVTFRf TkFQVElNRV9NUyBiZWZvcmUgZXZlcnkgbmV4dAorICogc3luY2hyb25pemF0aW9uLiBJZiB0aGVy ZSBpcyBubyBhY3Rpdml0eSBvYnNlcnZlZCBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yCisgKiBz b21lIHRpbWUsIHRoZSBuYXAgdGltZSBpcyBpbmNyZWFzZWQgdG8gV09SS0VSX0lOQUNUSVZJVFlf TkFQVElNRV9NUywgYnV0IGlmCisgKiBhbnkgYWN0aXZpdHkgaXMgb2JzZXJ2ZWQsIHRoZSBuYXAg dGltZSByZXZlcnRzIHRvIHRoZSBkZWZhdWx0IHZhbHVlLgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5o IgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3Zl cnkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvZGJjb21tYW5kcy5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0 ZXIvYmd3b3JrZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgorI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fs bGF1bmNoZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisjaW5j bHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93 b3JrZXJfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvcHJvY2FycmF5LmgiCisjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRl ICJ1dGlscy9ndWNfaG9va3MuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRl ICJ1dGlscy92YXJsZW5hLmgiCisKKy8qCisgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvcm1hdGlv biBmZXRjaGVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyIGFib3V0IGEgbG9naWNhbAorICogcmVw bGljYXRpb24gc2xvdC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUmVtb3RlU2xvdAoreworCWNoYXIJ ICAgKm5hbWU7CisJY2hhcgkgICAqcGx1Z2luOworCWNoYXIJICAgKmRhdGFiYXNlOworCWJvb2wJ CXR3b19waGFzZTsKKwlib29sCQlmYWlsb3ZlcjsKKwlYTG9nUmVjUHRyCXJlc3RhcnRfbHNuOwor CVhMb2dSZWNQdHIJY29uZmlybWVkX2xzbjsKKwlUcmFuc2FjdGlvbklkIGNhdGFsb2dfeG1pbjsK KworCS8qIFJTX0lOVkFMX05PTkUgaWYgdmFsaWQsIG9yIHRoZSByZWFzb24gb2YgaW52YWxpZGF0 aW9uICovCisJUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgaW52YWxpZGF0ZWQ7Cit9 IFJlbW90ZVNsb3Q7CisKKy8qCisgKiBTdHJ1Y3QgZm9yIHNoYXJpbmcgaW5mb3JtYXRpb24gYmV0 d2VlbiBzdGFydHVwIHByb2Nlc3MgYW5kIHNsb3QKKyAqIHN5bmMgd29ya2VyLgorICoKKyAqIFNs b3Qgc3luYyB3b3JrZXIncyBwaWQgaXMgbmVlZGVkIGJ5IHN0YXJ0dXAgcHJvY2VzcyBpbiBvcmRl ciB0bworICogc2h1dCBpdCBkb3duIGR1cmluZyBwcm9tb3Rpb24uCisgKi8KK3R5cGVkZWYgc3Ry dWN0IFNsb3RTeW5jV29ya2VyQ3R4U3RydWN0Cit7CisJcGlkX3QJCXBpZDsKKwlzbG9ja190CQlt dXRleDsKK30JCQlTbG90U3luY1dvcmtlckN0eFN0cnVjdDsKKworU2xvdFN5bmNXb3JrZXJDdHhT dHJ1Y3QgKlNsb3RTeW5jV29ya2VyID0gTlVMTDsKKworLyogR1VDIHZhcmlhYmxlICovCitib29s CQllbmFibGVfc3luY3Nsb3QgPSBmYWxzZTsKKworLyogVGhlIGxhc3Qgc3luYy1jeWNsZSB0aW1l IHdoZW4gdGhlIHdvcmtlciB1cGRhdGVkIGFueSBvZiB0aGUgc2xvdHMuICovCitzdGF0aWMgVGlt ZXN0YW1wVHogbGFzdF91cGRhdGVfdGltZTsKKworLyogV29ya2VyJ3MgbmFwIHRpbWUgaW4gY2Fz ZSBvZiByZWd1bGFyIGFjdGl2aXR5IG9uIHRoZSBwcmltYXJ5IHNlcnZlciAqLworI2RlZmluZSBX T1JLRVJfREVGQVVMVF9OQVBUSU1FX01TICAgICAgICAgICAgICAgICAgIDEwTCAvKiAxMCBtcyAq LworCisvKiBXb3JrZXIncyBuYXAgdGltZSBpbiBjYXNlIG9mIG5vLWFjdGl2aXR5IG9uIHRoZSBw cmltYXJ5IHNlcnZlciAqLworI2RlZmluZSBXT1JLRVJfSU5BQ1RJVklUWV9OQVBUSU1FX01TICAg ICAgICAgICAgICAgIDEwMDAwTAkvKiAxMCBzZWMgKi8KKworLyoKKyAqIEluYWN0aXZpdHkgVGhy ZXNob2xkIGluIG1zIGJlZm9yZSBpbmNyZWFzaW5nIG5hcCB0aW1lIG9mIHdvcmtlci4KKyAqCisg KiBJZiB0aGUgbHNuIG9mIHNsb3QgYmVpbmcgbW9uaXRvcmVkIGRpZCBub3QgY2hhbmdlIGZvciB0 aGlzIHRocmVzaG9sZCB0aW1lLAorICogdGhlbiBpbmNyZWFzZSBuYXAgdGltZSBvZiBjdXJyZW50 IHdvcmtlciBmcm9tIFdPUktFUl9ERUZBVUxUX05BUFRJTUVfTVMgdG8KKyAqIFdPUktFUl9JTkFD VElWSVRZX05BUFRJTUVfTVMuCisgKi8KKyNkZWZpbmUgV09SS0VSX0lOQUNUSVZJVFlfVEhSRVNI T0xEX01TIDEwMDAwTAkvKiAxMCBzZWMgKi8KKworc3RhdGljIHZvaWQgUHJvY2Vzc1Nsb3RTeW5j SW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubik7CisKKy8qCisgKiBXYWl0IGZvciBy ZW1vdGUgc2xvdCB0byBwYXNzIGxvY2FsbHkgcmVzZXJ2ZWQgcG9zaXRpb24uCisgKgorICogUGlu ZyBhbmQgd2FpdCBmb3IgdGhlIHByaW1hcnkgc2VydmVyIGZvcgorICogV0FJVF9QUklNQVJZX0NB VENIVVBfQVRURU1QVFMgZHVyaW5nIGEgc2xvdCBjcmVhdGlvbiwgaWYgaXQgc3RpbGwKKyAqIGRv ZXMgbm90IGNhdGNoIHVwLCBhYm9ydCB0aGUgd2FpdC4gVGhlIG9uZXMgZm9yIHdoaWNoIHdhaXQg aXMgYWJvcnRlZCB3aWxsCisgKiBhdHRlbXB0IHRoZSB3YWl0IGFuZCBzeW5jIGluIHRoZSBuZXh0 IHN5bmMtY3ljbGUuCisgKgorICogSWYgcGFzc2VkLCAqd2FpdF9hdHRlbXB0c19leGNlZWRlZCB3 aWxsIGJlIHNldCB0byB0cnVlIG9ubHkgaWYgdGhpcworICogZnVuY3Rpb24gZXhpdHMgZHVlIHRv IGV4aGF1c3RpbmcgaXRzIHdhaXQgYXR0ZW1wdHMuIEl0IHdpbGwgYmUgZmFsc2UKKyAqIGluIGFs bCB0aGUgb3RoZXIgY2FzZXMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHJlbW90ZV9zbG90IGNv dWxkIGNhdGNoIHVwIHdpdGggdGhlIGxvY2FsbHkgcmVzZXJ2ZWQKKyAqIHBvc2l0aW9uLgorICov CitzdGF0aWMgYm9vbAord2FpdF9mb3JfcHJpbWFyeV9zbG90X2NhdGNodXAoV2FsUmVjZWl2ZXJD b25uICp3cmNvbm4sIFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90LAorCQkJCQkJCSAgYm9vbCAqd2Fp dF9hdHRlbXB0c19leGNlZWRlZCkKK3sKKyNkZWZpbmUgV0FJVF9PVVRQVVRfQ09MVU1OX0NPVU5U IDQKKyNkZWZpbmUgV0FJVF9QUklNQVJZX0NBVENIVVBfQVRURU1QVFMgNQorCisJU3RyaW5nSW5m b0RhdGEgY21kOworCWludAkJCXdhaXRfY291bnQgPSAwOworCisJQXNzZXJ0KHdhaXRfYXR0ZW1w dHNfZXhjZWVkZWQgPT0gTlVMTCB8fCAqd2FpdF9hdHRlbXB0c19leGNlZWRlZCA9PSBmYWxzZSk7 CisKKwllcmVwb3J0KExPRywKKwkJCWVycm1zZygid2FpdGluZyBmb3IgcmVtb3RlIHNsb3QgXCIl c1wiIExTTiAoJVgvJVgpIGFuZCBjYXRhbG9nIHhtaW4iCisJCQkJICAgIiAoJXUpIHRvIHBhc3Mg bG9jYWwgc2xvdCBMU04gKCVYLyVYKSBhbmQgY2F0YWxvZyB4bWluICgldSkiLAorCQkJCSAgIHJl bW90ZV9zbG90LT5uYW1lLAorCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhyZW1vdGVfc2xvdC0+cmVz dGFydF9sc24pLAorCQkJCSAgIHJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW4sCisJCQkJICAgTFNO X0ZPUk1BVF9BUkdTKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSwKKwkJCQkg ICBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pKTsKKworCWluaXRTdHJpbmdJ bmZvKCZjbWQpOworCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKKwkJCQkJICJTRUxFQ1QgY29uZmxp Y3RfcmVhc29uIElTIE5PVCBOVUxMLCByZXN0YXJ0X2xzbiwiCisJCQkJCSAiIGNvbmZpcm1lZF9m bHVzaF9sc24sIGNhdGFsb2dfeG1pbiIKKwkJCQkJICIgRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzIgorCQkJCQkgIiBXSEVSRSBzbG90X25hbWUgPSAlcyIsCisJCQkJCSBxdW90 ZV9saXRlcmFsX2NzdHIocmVtb3RlX3Nsb3QtPm5hbWUpKTsKKworCWZvciAoOzspCisJeworCQli b29sCQluZXdfaW52YWxpZGF0ZWQ7CisJCVhMb2dSZWNQdHIJbmV3X3Jlc3RhcnRfbHNuOworCQlY TG9nUmVjUHRyCW5ld19jb25maXJtZWRfbHNuOworCQlUcmFuc2FjdGlvbklkIG5ld19jYXRhbG9n X3htaW47CisJCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwkJVHVwbGVUYWJsZVNsb3QgKnR1cHNs b3Q7CisJCWludAkJCXJjOworCQlib29sCQlpc251bGw7CisJCU9pZAkJCXNsb3RSb3dbV0FJVF9P VVRQVVRfQ09MVU1OX0NPVU5UXSA9IHtCT09MT0lELCBMU05PSUQsIExTTk9JRCwKKwkJWElET0lE fTsKKworCQkvKiBIYW5kbGUgYW55IHRlcm1pbmF0aW9uIHJlcXVlc3QgaWYgYW55ICovCisJCVBy b2Nlc3NTbG90U3luY0ludGVycnVwdHMod3Jjb25uKTsKKworCQlyZXMgPSB3YWxyY3ZfZXhlYyh3 cmNvbm4sIGNtZC5kYXRhLCBXQUlUX09VVFBVVF9DT0xVTU5fQ09VTlQsIHNsb3RSb3cpOworCisJ CWlmIChyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJZXJybXNnKCJjb3VsZCBub3QgZmV0Y2ggc2xvdCBcIiVzXCIgaW5mbyBmcm9tIHRoZSIK KwkJCQkJCSAgICIgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwKKwkJCQkJCSAgIHJlbW90ZV9zbG90LT5u YW1lLCByZXMtPmVycikpOworCisJCXR1cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3Qo cmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFsVHVwbGUpOworCQlpZiAoIXR1cGxlc3RvcmVf Z2V0dHVwbGVzbG90KHJlcy0+dHVwbGVzdG9yZSwgdHJ1ZSwgZmFsc2UsIHR1cHNsb3QpKQorCQl7 CisJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCWVycm1zZygiYWJvcnRpbmcgaW5pdGlhbCBzeW5j IGZvciBzbG90IFwiJXNcIiIsCisJCQkJCQkgICByZW1vdGVfc2xvdC0+bmFtZSksCisJCQkJCWVy cmRldGFpbCgiVGhpcyBzbG90IHdhcyBub3QgZm91bmQgb24gdGhlIHByaW1hcnkgc2VydmVyLiIp KTsKKwkJCXBmcmVlKGNtZC5kYXRhKTsKKwkJCXdhbHJjdl9jbGVhcl9yZXN1bHQocmVzKTsKKwor CQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyoKKwkJICogSXQgaXMgcG9zc2libGUgdG8gZ2V0 IG51bGwgdmFsdWUgZm9yIHJlc3RhcnRfbHNuIGlmIHRoZSBzbG90IGlzCisJCSAqIGludmFsaWRh dGVkIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwgc28gaGFuZGxlIGFjY29yZGluZ2x5LgorCQkgKi8K KwkJbmV3X2ludmFsaWRhdGVkID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAx LCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQluZXdfcmVzdGFydF9sc24gPSAh c2xvdF9hdHRpc251bGwodHVwc2xvdCwgMikgPworCQkJRGF0dW1HZXRMU04oc2xvdF9nZXRhdHRy KHR1cHNsb3QsIDIsICZpc251bGwpKSA6CisJCQlJbnZhbGlkWExvZ1JlY1B0cjsKKworCQlpZiAo bmV3X2ludmFsaWRhdGVkIHx8IFhMb2dSZWNQdHJJc0ludmFsaWQobmV3X3Jlc3RhcnRfbHNuKSkK KwkJeworCQkJLyoKKwkJCSAqIElmIHRoZSBsb2NhbC1zbG90IGlzIGluICdSU19FUEhFTUVSQUwn IHN0YXRlLCBpdCB3aWxsIG5vdCBiZQorCQkJICogcGVyc2lzdGVkIGluIHRoZSBjYWxsZXIgYW5k IFJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKSB3aWxsIGRyb3AKKwkJCSAqIGl0LiBCdXQgaWYgdGhl IGxvY2FsIHNsb3QgaXMgYWxyZWFkeSBwZXJzaXN0ZWQgYW5kIGhhcyAnaScKKwkJCSAqIHN5bmNf c3RhdGUsIHRoZW4gaXQgd2lsbCBiZSBtYXJrZWQgYXMgaW52YWxpZGF0ZWQgaW4gdGhlIGNhbGxl cgorCQkJICogYW5kIG5leHQgdGltZSBvbndhcmRzIGl0cyBzeW5jIHdpbGwgYmUgc2tpcHBlZC4K KwkJCSAqLworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQllcnJtc2coImFib3J0aW5nIGluaXRp YWwgc3luYyBmb3Igc2xvdCBcIiVzXCIiLAorCQkJCQkJICAgcmVtb3RlX3Nsb3QtPm5hbWUpLAor CQkJCQllcnJkZXRhaWwoIlRoaXMgc2xvdCB3YXMgaW52YWxpZGF0ZWQgb24gdGhlIHByaW1hcnkg c2VydmVyLiIpKTsKKwkJCXBmcmVlKGNtZC5kYXRhKTsKKwkJCUV4ZWNDbGVhclR1cGxlKHR1cHNs b3QpOworCQkJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCisJCQlyZXR1cm4gZmFsc2U7CisJ CX0KKworCQkvKgorCQkgKiBJdCBpcyBwb3NzaWJsZSB0byBnZXQgbnVsbCB2YWx1ZXMgZm9yIGNv bmZpcm1lZF9sc24gYW5kCisJCSAqIGNhdGFsb2dfeG1pbiBpZiBvbiB0aGUgcHJpbWFyeSBzZXJ2 ZXIgdGhlIHNsb3QgaXMganVzdCBjcmVhdGVkIHdpdGgKKwkJICogYSB2YWxpZCByZXN0YXJ0X2xz biBhbmQgc2xvdC1zeW5jIHdvcmtlciBoYXMgZmV0Y2hlZCB0aGUgc2xvdAorCQkgKiBiZWZvcmUg dGhlIHByaW1hcnkgc2VydmVyIGNvdWxkIHNldCB2YWxpZCBjb25maXJtZWRfbHNuIGFuZAorCQkg KiBjYXRhbG9nX3htaW4uCisJCSAqLworCQluZXdfY29uZmlybWVkX2xzbiA9ICFzbG90X2F0dGlz bnVsbCh0dXBzbG90LCAzKSA/CisJCQlEYXR1bUdldExTTihzbG90X2dldGF0dHIodHVwc2xvdCwg MywgJmlzbnVsbCkpIDoKKwkJCUludmFsaWRYTG9nUmVjUHRyOworCisJCW5ld19jYXRhbG9nX3ht aW4gPSAhc2xvdF9hdHRpc251bGwodHVwc2xvdCwgNCkgPworCQkJRGF0dW1HZXRUcmFuc2FjdGlv bklkKHNsb3RfZ2V0YXR0cih0dXBzbG90LCA0LCAmaXNudWxsKSkgOgorCQkJSW52YWxpZFRyYW5z YWN0aW9uSWQ7CisKKwkJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJCXdhbHJjdl9jbGVhcl9y ZXN1bHQocmVzKTsKKworCQlpZiAobmV3X3Jlc3RhcnRfbHNuID49IE15UmVwbGljYXRpb25TbG90 LT5kYXRhLnJlc3RhcnRfbHNuICYmCisJCQkhWExvZ1JlY1B0cklzSW52YWxpZChuZXdfY29uZmly bWVkX2xzbikgJiYKKwkJCVRyYW5zYWN0aW9uSWRGb2xsb3dzT3JFcXVhbHMobmV3X2NhdGFsb2df eG1pbiwKKwkJCQkJCQkJCQkgTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY2F0YWxvZ194bWluKSkK KwkJeworCQkJLyogVXBkYXRlIG5ldyB2YWx1ZXMgaW4gcmVtb3RlX3Nsb3QgKi8KKwkJCXJlbW90 ZV9zbG90LT5yZXN0YXJ0X2xzbiA9IG5ld19yZXN0YXJ0X2xzbjsKKwkJCXJlbW90ZV9zbG90LT5j b25maXJtZWRfbHNuID0gbmV3X2NvbmZpcm1lZF9sc247CisJCQlyZW1vdGVfc2xvdC0+Y2F0YWxv Z194bWluID0gbmV3X2NhdGFsb2dfeG1pbjsKKworCQkJZXJlcG9ydChMT0csCisJCQkJCWVycm1z Zygid2FpdCBvdmVyIGZvciByZW1vdGUgc2xvdCBcIiVzXCIgYXMgaXRzIExTTiAoJVgvJVgpIgor CQkJCQkJICAgIiBhbmQgY2F0YWxvZyB4bWluICgldSkgaGFzIG5vdyBwYXNzZWQgbG9jYWwgc2xv dCBMU04iCisJCQkJCQkgICAiICglWC8lWCkgYW5kIGNhdGFsb2cgeG1pbiAoJXUpIiwKKwkJCQkJ CSAgIHJlbW90ZV9zbG90LT5uYW1lLAorCQkJCQkJICAgTFNOX0ZPUk1BVF9BUkdTKG5ld19yZXN0 YXJ0X2xzbiksCisJCQkJCQkgICBuZXdfY2F0YWxvZ194bWluLAorCQkJCQkJICAgTFNOX0ZPUk1B VF9BUkdTKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSwKKwkJCQkJCSAgIE15 UmVwbGljYXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpOworCQkJcGZyZWUoY21kLmRhdGEp OworCisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCisJCWlmICgrK3dhaXRfY291bnQgPj0gV0FJVF9Q UklNQVJZX0NBVENIVVBfQVRURU1QVFMpCisJCXsKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQllcnJt c2coImFib3J0aW5nIHRoZSB3YWl0IGZvciByZW1vdGUgc2xvdCBcIiVzXCIiLAorCQkJCQkJICAg cmVtb3RlX3Nsb3QtPm5hbWUpKTsKKwkJCXBmcmVlKGNtZC5kYXRhKTsKKworCQkJaWYgKHdhaXRf YXR0ZW1wdHNfZXhjZWVkZWQpCisJCQkJKndhaXRfYXR0ZW1wdHNfZXhjZWVkZWQgPSB0cnVlOwor CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKgorCQkgKiBYWFg6IElzIHdhaXRpbmcgZm9y IDIgc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmcgZW5vdWdoIG9yIG1vcmUgb3IKKwkJICogbGVzcz8K KwkJICovCisJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCSAgIFdMX0xBVENIX1NFVCB8 IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJCQkgICAyMDAwTCwKKwkJCQkJ ICAgV0FJVF9FVkVOVF9SRVBMX1NMT1RTWU5DX1BSSU1BUllfQ0FUQ0hVUCk7CisKKwkJaWYgKHJj ICYgV0xfTEFUQ0hfU0VUKQorCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwl9Cit9CisKKy8qCisg KiBVcGRhdGUgbG9jYWwgc2xvdCBtZXRhZGF0YSBhcyBwZXIgcmVtb3RlX3Nsb3QncyBwb3NpdGlv bnMKKyAqLworc3RhdGljIHZvaWQKK2xvY2FsX3Nsb3RfdXBkYXRlKFJlbW90ZVNsb3QgKnJlbW90 ZV9zbG90KQoreworCUFzc2VydChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9 PSBSU19JTlZBTF9OT05FKTsKKworCUxvZ2ljYWxDb25maXJtUmVjZWl2ZWRMb2NhdGlvbihyZW1v dGVfc2xvdC0+Y29uZmlybWVkX2xzbik7CisJTG9naWNhbEluY3JlYXNlWG1pbkZvclNsb3QocmVt b3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24sCisJCQkJCQkJICAgcmVtb3RlX3Nsb3QtPmNhdGFsb2df eG1pbik7CisJTG9naWNhbEluY3JlYXNlUmVzdGFydERlY29kaW5nRm9yU2xvdChyZW1vdGVfc2xv dC0+Y29uZmlybWVkX2xzbiwKKwkJCQkJCQkJCQkgIHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbik7 Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNsb3RzeW5jX2Ryb3BfaW5pdGlhdGVk X3Nsb3RzKCkgYW5kCisgKiBkcm9wX29ic29sZXRlX3Nsb3RzKCkKKyAqCisgKiBEcm9wcyBzeW5j ZWQgc2xvdCBpZGVudGlmaWVkIGJ5IHRoZSBwYXNzZWQgaW4gbmFtZS4KKyAqLworc3RhdGljIHZv aWQKK2Ryb3Bfc3luY2VkX3Nsb3RzX2ludGVybmFsKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93 YWl0KQoreworCUFzc2VydChNeVJlcGxpY2F0aW9uU2xvdCA9PSBOVUxMKTsKKworCVJlcGxpY2F0 aW9uU2xvdEFjcXVpcmUobmFtZSwgbm93YWl0KTsKKworCUFzc2VydChNeVJlcGxpY2F0aW9uU2xv dC0+ZGF0YS5zeW5jX3N0YXRlICE9IFNZTkNTTE9UX1NUQVRFX05PTkUpOworCisJUmVwbGljYXRp b25TbG90RHJvcEFjcXVpcmVkKCk7Cit9CisKKy8qCisgKiBEcm9wIHRoZSBzbG90cyBmb3Igd2hp Y2ggc3luYyBpcyBpbml0aWF0ZWQgYnV0IG5vdCB5ZXQgY29tcGxldGVkCisgKiBpLmUuIHRoZXkg YXJlIHN0aWxsIHdhaXRpbmcgZm9yIHRoZSBwcmltYXJ5IHNlcnZlciB0byBjYXRjaCB1cCAocmVm ZXIKKyAqIHRvIHRoZSBjb21tZW50IGF0b3AgdGhlIGZpbGUgZm9yIGRldGFpbHMgb24gdGhpcyB3 YWl0KQorICovCit2b2lkCitzbG90c3luY19kcm9wX2luaXRpYXRlZF9zbG90cyh2b2lkKQorewor CUxpc3QJICAgKmxvY2FsX3Nsb3RzID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCisJTFdMb2Nr QWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKTsKKworCWZvciAo aW50IGkgPSAwOyBpIDwgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOyBpKyspCisJeworCQlSZXBsaWNh dGlvblNsb3QgKnMgPSAmUmVwbGljYXRpb25TbG90Q3RsLT5yZXBsaWNhdGlvbl9zbG90c1tpXTsK KworCQlpZiAocy0+aW5fdXNlICYmIHMtPmRhdGEuc3luY19zdGF0ZSA9PSBTWU5DU0xPVF9TVEFU RV9JTklUSUFURUQpCisJCQlsb2NhbF9zbG90cyA9IGxhcHBlbmQobG9jYWxfc2xvdHMsIHMpOwor CX0KKworCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCisJZm9y ZWFjaChsYywgbG9jYWxfc2xvdHMpCisJeworCQlSZXBsaWNhdGlvblNsb3QgKnMgPSAoUmVwbGlj YXRpb25TbG90ICopIGxmaXJzdChsYyk7CisKKwkJZHJvcF9zeW5jZWRfc2xvdHNfaW50ZXJuYWwo TmFtZVN0cihzLT5kYXRhLm5hbWUpLCB0cnVlKTsKKworCQllcmVwb3J0KExPRywKKwkJCQllcnJt c2coImRyb3BwZWQgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb2YgZGJpZCAlZCIsCisJCQkJCSAg IE5hbWVTdHIocy0+ZGF0YS5uYW1lKSwgcy0+ZGF0YS5kYXRhYmFzZSksCisJCQkJZXJyZGV0YWls KCJJdCB3YXMgbm90IHN5bmMtcmVhZHkuIikpOworCX0KKworCWxpc3RfZnJlZShsb2NhbF9zbG90 cyk7Cit9CisKKy8qCisgKiBHZXQgbGlzdCBvZiBsb2NhbCBsb2dpY2FsIHNsb3RzIHdoaWNoIGFy ZSBzeW5jaHJvbml6ZWQgZnJvbQorICogdGhlIHByaW1hcnkgc2VydmVyLgorICovCitzdGF0aWMg TGlzdCAqCitnZXRfbG9jYWxfc3luY2VkX3Nsb3RzKHZvaWQpCit7CisJTGlzdAkgICAqbG9jYWxf c2xvdHMgPSBOSUw7CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2Nr LCBMV19TSEFSRUQpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xv dHM7IGkrKykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqcyA9ICZSZXBsaWNhdGlvblNsb3RDdGwt PnJlcGxpY2F0aW9uX3Nsb3RzW2ldOworCisJCS8qIENoZWNrIGlmIGl0IGlzIGxvZ2ljYWwgc3lu Y2hyb25pemVkIHNsb3QgKi8KKwkJaWYgKHMtPmluX3VzZSAmJiBTbG90SXNMb2dpY2FsKHMpICYm CisJCQkocy0+ZGF0YS5zeW5jX3N0YXRlICE9IFNZTkNTTE9UX1NUQVRFX05PTkUpKQorCQl7CisJ CQlsb2NhbF9zbG90cyA9IGxhcHBlbmQobG9jYWxfc2xvdHMsIHMpOworCQl9CisJfQorCisJTFdM b2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7CisKKwlyZXR1cm4gbG9jYWxf c2xvdHM7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgbG9jYWxfc2xv dCBpcyBwcmVzZW50IGluIHJlbW90ZV9zbG90cyBsaXN0LgorICoKKyAqIEl0IGFsc28gY2hlY2tz IGlmIGxvZ2ljYWwgc2xvdCBpcyBsb2NhbGx5IGludmFsaWRhdGVkIGkuZS4gaW52YWxpZGF0ZWQg b24KKyAqIHRoZSBzdGFuZGJ5IGJ1dCB2YWxpZCBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuIElmIGZv dW5kIHNvLCBpdCBzZXRzCisgKiBsb2NhbGx5X2ludmFsaWRhdGVkIHRvIHRydWUuCisgKi8KK3N0 YXRpYyBib29sCitjaGVja19zeW5jX3Nsb3Rfb25fcmVtb3RlKFJlcGxpY2F0aW9uU2xvdCAqbG9j YWxfc2xvdCwgTGlzdCAqcmVtb3RlX3Nsb3RzLAorCQkJCQkJICBib29sICpsb2NhbGx5X2ludmFs aWRhdGVkKQoreworCUxpc3RDZWxsICAgKmxjOworCisJZm9yZWFjaChsYywgcmVtb3RlX3Nsb3Rz KQorCXsKKwkJUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSAoUmVtb3RlU2xvdCAqKSBsZmlyc3Qo bGMpOworCisJCWlmIChzdHJjbXAocmVtb3RlX3Nsb3QtPm5hbWUsIE5hbWVTdHIobG9jYWxfc2xv dC0+ZGF0YS5uYW1lKSkgPT0gMCkKKwkJeworCQkJLyoKKwkJCSAqIElmIHJlbW90ZSBzbG90IGlz IG5vdCBpbnZhbGlkYXRlZCBidXQgbG9jYWwgc2xvdCBpcyBtYXJrZWQgYXMKKwkJCSAqIGludmFs aWRhdGVkLCB0aGVuIHNldCB0aGUgYm9vbC4KKwkJCSAqLworCQkJU3BpbkxvY2tBY3F1aXJlKCZs b2NhbF9zbG90LT5tdXRleCk7CisJCQkqbG9jYWxseV9pbnZhbGlkYXRlZCA9CisJCQkJKHJlbW90 ZV9zbG90LT5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKSAmJgorCQkJCShsb2NhbF9zbG90 LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpOworCQkJU3BpbkxvY2tSZWxlYXNl KCZsb2NhbF9zbG90LT5tdXRleCk7CisKKwkJCXJldHVybiB0cnVlOworCQl9CisJfQorCisJcmV0 dXJuIGZhbHNlOworfQorCisvKgorICogRHJvcCBvYnNvbGV0ZSBzbG90cworICoKKyAqIERyb3Ag dGhlIHNsb3RzIHRoYXQgbm8gbG9uZ2VyIG5lZWQgdG8gYmUgc3luY2VkIGkuZS4gdGhlc2UgZWl0 aGVyIGRvIG5vdAorICogZXhpc3Qgb24gdGhlIHByaW1hcnkgb3IgYXJlIG5vIGxvbmdlciBlbmFi bGVkIGZvciBmYWlsb3Zlci4KKyAqCisgKiBBZGRpdGlvbmFsbHksIGl0IGRyb3BzIHNsb3RzIHRo YXQgYXJlIHZhbGlkIG9uIHRoZSBwcmltYXJ5IGJ1dCBnb3QKKyAqIGludmFsaWRhdGVkIG9uIHRo ZSBzdGFuZGJ5LiBUaGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIgZHVlIHRvIHRoZSBmb2xsb3dpbmcK KyAqIHJlYXNvbnM6CisgKiAtIFRoZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplIG9uIHRoZSBzdGFu ZGJ5IGlzIGluc3VmZmljaWVudCB0byByZXRhaW4gV0FMCisgKiAgIHJlY29yZHMgZnJvbSB0aGUg cmVzdGFydF9sc24gb2YgdGhlIHNsb3QuCisgKiAtIHByaW1hcnlfc2xvdF9uYW1lIGlzIHRlbXBv cmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRoZSBwaHlzaWNhbCBzbG90IGlzCisgKiAgIHJlbW92 ZWQuCisgKiAtIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xldmVsIHRvIGEgbGV2ZWwgbG93ZXIg dGhhbiBsb2dpY2FsLgorICoKKyAqIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlc2UgZHJvcHBl ZCBzbG90cyB3aWxsIGdldCByZWNyZWF0ZWQgaW4gbmV4dAorICogc3luYy1jeWNsZSBhbmQgaXQg aXMgb2theSB0byBkcm9wIGFuZCByZWNyZWF0ZSBzdWNoIHNsb3RzIGFzIGxvbmcgYXMgdGhlc2UK KyAqIGFyZSBub3QgY29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAod2hpY2ggaXMgdGhlIGNhc2Ug Y3VycmVudGx5KS4KKyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfb2Jzb2xldGVfc2xvdHMoTGlzdCAq cmVtb3RlX3Nsb3RfbGlzdCkKK3sKKwlMaXN0CSAgICpsb2NhbF9zbG90cyA9IE5JTDsKKwlMaXN0 Q2VsbCAgICpsYzsKKworCWxvY2FsX3Nsb3RzID0gZ2V0X2xvY2FsX3N5bmNlZF9zbG90cygpOwor CisJZm9yZWFjaChsYywgbG9jYWxfc2xvdHMpCisJeworCQlSZXBsaWNhdGlvblNsb3QgKmxvY2Fs X3Nsb3QgPSAoUmVwbGljYXRpb25TbG90ICopIGxmaXJzdChsYyk7CisJCWJvb2wJCXJlbW90ZV9l eGlzdHMgPSBmYWxzZTsKKwkJYm9vbAkJbG9jYWxseV9pbnZhbGlkYXRlZCA9IGZhbHNlOworCisJ CXJlbW90ZV9leGlzdHMgPSBjaGVja19zeW5jX3Nsb3Rfb25fcmVtb3RlKGxvY2FsX3Nsb3QsIHJl bW90ZV9zbG90X2xpc3QsCisJCQkJCQkJCQkJCQkgICZsb2NhbGx5X2ludmFsaWRhdGVkKTsKKwor CQkvKgorCQkgKiBEcm9wIHRoZSBsb2NhbCBzbG90IGVpdGhlciBpZiBpdCBpcyBub3QgaW4gdGhl IHJlbW90ZSBzbG90cyBsaXN0IG9yCisJCSAqIGlzIGludmFsaWRhdGVkIHdoaWxlIHJlbW90ZSBz bG90IGlzIHN0aWxsIHZhbGlkLgorCQkgKi8KKwkJaWYgKCFyZW1vdGVfZXhpc3RzIHx8IGxvY2Fs bHlfaW52YWxpZGF0ZWQpCisJCXsKKwkJCWRyb3Bfc3luY2VkX3Nsb3RzX2ludGVybmFsKE5hbWVT dHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSwgdHJ1ZSk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJ CQllcnJtc2coImRyb3BwZWQgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb2YgZGJpZCAlZCIsCisJ CQkJCQkgICBOYW1lU3RyKGxvY2FsX3Nsb3QtPmRhdGEubmFtZSksCisJCQkJCQkgICBsb2NhbF9z bG90LT5kYXRhLmRhdGFiYXNlKSk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBTeW5jaHJvbml6ZSBz aW5nbGUgc2xvdCB0byBnaXZlbiBwb3NpdGlvbi4KKyAqCisgKiBUaGlzIGNyZWF0ZXMgYSBuZXcg c2xvdCBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBvbmUgYW5kIHVwZGF0ZXMgdGhlCisgKiBtZXRh ZGF0YSBvZiB0aGUgc2xvdCBhcyBwZXIgdGhlIGRhdGEgcmVjZWl2ZWQgZnJvbSB0aGUgcHJpbWFy eSBzZXJ2ZXIuCisgKgorICogVGhlICdzeW5jX3N0YXRlJyBpbiBzbG90LmRhdGEgaXMgc2V0IHRv IFNZTkNTTE9UX1NUQVRFX0lOSVRJQVRFRAorICogaW1tZWRpYXRlbHkgYWZ0ZXIgY3JlYXRpb24u IEl0IHN0YXlzIGluIHNhbWUgc3RhdGUgdW50aWwgdGhlCisgKiBpbml0aWFsaXphdGlvbiBpcyBj b21wbGV0ZS4gVGhlIGluaXRpYWxpemF0aW9uIGlzIGNvbnNpZGVyZWQgdG8KKyAqIGJlIGNvbXBs ZXRlZCBvbmNlIHRoZSByZW1vdGVfc2xvdCBjYXRjaGVzIHVwIHdpdGggbG9jYWxseSByZXNlcnZl ZAorICogcG9zaXRpb24gYW5kIGxvY2FsIHNsb3QgaXMgdXBkYXRlZC4gVGhlIHN5bmNfc3RhdGUg aXMgdGhlbiBjaGFuZ2VkCisgKiB0byBTWU5DU0xPVF9TVEFURV9SRUFEWS4KKyAqCisgKiBSZXR1 cm5zIFRSVUUgaWYgdGhlIGxvY2FsIHNsb3QgaXMgdXBkYXRlZC4KKyAqLworc3RhdGljIGJvb2wK K3N5bmNocm9uaXplX29uZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBSZW1vdGVTbG90 ICpyZW1vdGVfc2xvdCkKK3sKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3Q7CisJYm9vbAkJc2xvdF91 cGRhdGVkID0gZmFsc2U7CisKKwkvKgorCSAqIFNhbml0eSBjaGVjazogTWFrZSBzdXJlIHRoYXQg Y29uY2VybmVkIFdBTCBpcyByZWNlaXZlZCBiZWZvcmUgc3luY2luZworCSAqIHNsb3QgdG8gdGFy Z2V0IGxzbiByZWNlaXZlZCBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlci4KKwkgKgorCSAqIFRoaXMg Y2hlY2sgc2hvdWxkIG5ldmVyIHBhc3MgYXMgb24gdGhlIHByaW1hcnkgc2VydmVyLCB3ZSBoYXZl IHdhaXRlZAorCSAqIGZvciB0aGUgc3RhbmRieSdzIGNvbmZpcm1hdGlvbiBiZWZvcmUgdXBkYXRp bmcgdGhlIGxvZ2ljYWwgc2xvdC4KKwkgKi8KKwlTcGluTG9ja0FjcXVpcmUoJldhbFJjdi0+bXV0 ZXgpOworCWlmIChyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbiA+IFdhbFJjdi0+bGF0ZXN0V2Fs RW5kKQorCXsKKwkJU3BpbkxvY2tSZWxlYXNlKCZXYWxSY3YtPm11dGV4KTsKKwkJZWxvZyhFUlJP UiwgImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBhcyB0aGUgcmVjZWl2ZWQgc2xv dCBzeW5jIgorCQkJICIgTFNOICVYLyVYIGZvciBzbG90IFwiJXNcIiBpcyBhaGVhZCBvZiB0aGUg c3RhbmRieSBwb3NpdGlvbiAlWC8lWCIsCisJCQkgTFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9zbG90 LT5jb25maXJtZWRfbHNuKSwKKwkJCSByZW1vdGVfc2xvdC0+bmFtZSwKKwkJCSBMU05fRk9STUFU X0FSR1MoV2FsUmN2LT5sYXRlc3RXYWxFbmQpKTsKKwl9CisJU3BpbkxvY2tSZWxlYXNlKCZXYWxS Y3YtPm11dGV4KTsKKworCS8qIFNlYXJjaCBmb3IgdGhlIG5hbWVkIHNsb3QgKi8KKwlpZiAoKHNs b3QgPSBTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSkp KQorCXsKKwkJY2hhcgkJc3luY19zdGF0ZTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11 dGV4KTsKKwkJc3luY19zdGF0ZSA9IHNsb3QtPmRhdGEuc3luY19zdGF0ZTsKKwkJU3BpbkxvY2tS ZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogVXNlciBjcmVhdGVkIHNsb3Qgd2l0aCB0aGUg c2FtZSBuYW1lIGV4aXN0cywgcmFpc2UgRVJST1IuICovCisJCWlmIChzeW5jX3N0YXRlID09IFNZ TkNTTE9UX1NUQVRFX05PTkUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQllcnJtc2coImV4aXRp bmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBvbiByZWNlaXZpbmciCisJCQkJCQkgICAiIHRo ZSBmYWlsb3ZlciBzbG90IFwiJXNcIiBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciIsCisJCQkJCQkg ICByZW1vdGVfc2xvdC0+bmFtZSksCisJCQkJCWVycmRldGFpbCgiQSB1c2VyLWNyZWF0ZWQgc2xv dCB3aXRoIHRoZSBzYW1lIG5hbWUgYWxyZWFkeSIKKwkJCQkJCQkgICIgZXhpc3RzIG9uIHRoZSBz dGFuZGJ5LiIpKTsKKworCQkvKgorCQkgKiBTbG90IGNyZWF0ZWQgYnkgdGhlIHNsb3Qgc3luYyB3 b3JrZXIgZXhpc3RzLCBzeW5jIGl0LgorCQkgKgorCQkgKiBJdCBpcyBpbXBvcnRhbnQgdG8gYWNx dWlyZSB0aGUgc2xvdCBoZXJlIGJlZm9yZSBjaGVja2luZworCQkgKiBpbnZhbGlkYXRpb24uIElm IHdlIGRvbid0IGFjcXVpcmUgdGhlIHNsb3QgZmlyc3QsIHRoZXJlIGNvdWxkIGJlIGEKKwkJICog cmFjZSBjb25kaXRpb24gdGhhdCB0aGUgbG9jYWwgc2xvdCBjb3VsZCBiZSBpbnZhbGlkYXRlZCBq dXN0IGFmdGVyCisJCSAqIGNoZWNraW5nIHRoZSAnaW52YWxpZGF0ZWQnIGZsYWcgaGVyZSBhbmQg d2UgY291bGQgZW5kIHVwCisJCSAqIG92ZXJ3cml0aW5nICdpbnZhbGlkYXRlZCcgZmxhZyB0byBy ZW1vdGVfc2xvdCdzIHZhbHVlLiBTZWUKKwkJICogSW52YWxpZGF0ZVBvc3NpYmx5T2Jzb2xldGVT bG90KCkgd2hlcmUgaXQgaW52YWxpZGF0ZXMgc2xvdCBkaXJlY3RseQorCQkgKiBpZiB0aGUgc2xv dCBpcyBub3QgYWNxdWlyZWQgYnkgb3RoZXIgcHJvY2Vzc2VzLgorCQkgKi8KKwkJUmVwbGljYXRp b25TbG90QWNxdWlyZShyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSk7CisKKwkJQXNzZXJ0KHNsb3Qg PT0gTXlSZXBsaWNhdGlvblNsb3QpOworCisJCS8qCisJCSAqIENvcHkgdGhlIGludmFsaWRhdGlv biBjYXVzZSBmcm9tIHJlbW90ZSBvbmx5IGlmIGxvY2FsIHNsb3QgaXMgbm90CisJCSAqIGludmFs aWRhdGVkIGxvY2FsbHksIHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIG9uZS4K KwkJICovCisJCWlmIChzbG90LT5kYXRhLmludmFsaWRhdGVkID09IFJTX0lOVkFMX05PTkUpCisJ CXsKKwkJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQkJc2xvdC0+ZGF0YS5pbnZh bGlkYXRlZCA9IHJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZDsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgm c2xvdC0+bXV0ZXgpOworCisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFsaWRhdGVkIHN0YXRlIHBl cnNpc3RzIGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVwbGljYXRpb25TbG90TWFya0Rp cnR5KCk7CisJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJCQlzbG90X3VwZGF0ZWQgPSB0cnVl OworCQl9CisKKwkJLyogU2tpcCB0aGUgc3luYyBvZiBhbiBpbnZhbGlkYXRlZCBzbG90ICovCisJ CWlmIChzbG90LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpCisJCXsKKwkJCVJl cGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKwkJCXJldHVybiBzbG90X3VwZGF0ZWQ7CisJCX0KKwor CQkvKiBTbG90IG5vdCByZWFkeSB5ZXQsIGxldCdzIGF0dGVtcHQgdG8gbWFrZSBpdCBzeW5jLXJl YWR5IG5vdy4gKi8KKwkJaWYgKHN5bmNfc3RhdGUgPT0gU1lOQ1NMT1RfU1RBVEVfSU5JVElBVEVE KQorCQl7CisJCQkvKgorCQkJICogV2FpdCBmb3IgdGhlIHByaW1hcnkgc2VydmVyIHRvIGNhdGNo LXVwLiBSZWZlciB0byB0aGUgY29tbWVudAorCQkJICogYXRvcCB0aGUgZmlsZSBmb3IgZGV0YWls cyBvbiB0aGlzIHdhaXQuCisJCQkgKi8KKwkJCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24g PCBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIHx8CisJCQkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHJl bW90ZV9zbG90LT5jYXRhbG9nX3htaW4sCisJCQkJCQkJCQkgIHNsb3QtPmRhdGEuY2F0YWxvZ194 bWluKSkKKwkJCXsKKwkJCQlpZiAoIXdhaXRfZm9yX3ByaW1hcnlfc2xvdF9jYXRjaHVwKHdyY29u biwgcmVtb3RlX3Nsb3QsIE5VTEwpKQorCQkJCXsKKwkJCQkJUmVwbGljYXRpb25TbG90UmVsZWFz ZSgpOworCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQorCQkJfQorCisJCQkvKgorCQkJICogV2Fp dCBmb3IgcHJpbWFyeSBpcyBvdmVyLCB1cGRhdGUgdGhlIGxzbnMgYW5kIG1hcmsgdGhlIHNsb3Qg YXMKKwkJCSAqIFJFQURZIGZvciBmdXJ0aGVyIHN5bmNzLgorCQkJICovCisJCQlsb2NhbF9zbG90 X3VwZGF0ZShyZW1vdGVfc2xvdCk7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsK KwkJCXNsb3QtPmRhdGEuc3luY19zdGF0ZSA9IFNZTkNTTE9UX1NUQVRFX1JFQURZOworCQkJU3Bp bkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgc2xvdCBj aGFuZ2VzIHBlcnNpc3QgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJCQlSZXBsaWNhdGlvblNs b3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwkJCXNsb3RfdXBkYXRl ZCA9IHRydWU7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQllcnJtc2coIm5ld2x5IGxvY2FsbHkg Y3JlYXRlZCBzbG90IFwiJXNcIiBpcyBzeW5jLXJlYWR5IG5vdyIsCisJCQkJCQkgICByZW1vdGVf c2xvdC0+bmFtZSkpOworCQl9CisJCS8qIFNsb3QgcmVhZHkgZm9yIHN5bmMsIHNvIHN5bmMgaXQu ICovCisJCWVsc2UgaWYgKHN5bmNfc3RhdGUgPT0gU1lOQ1NMT1RfU1RBVEVfUkVBRFkpCisJCXsK KwkJCS8qCisJCQkgKiBTYW5pdHkgY2hlY2s6IFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgZW5h YmxlZCBhbmQKKwkJCSAqIGludmFsaWRhdGlvbnMgaGFuZGxlZCBhcHByb3ByaWF0ZWx5IGFzIGFi b3ZlLCB0aGlzIHNob3VsZCBuZXZlcgorCQkJICogaGFwcGVuLgorCQkJICovCisJCQlpZiAocmVt b3RlX3Nsb3QtPnJlc3RhcnRfbHNuIDwgc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJCQllbG9n KEVSUk9SLAorCQkJCQkgImNhbm5vdCBzeW5jaHJvbml6ZSBsb2NhbCBzbG90IFwiJXNcIiBMU04o JVgvJVgpIgorCQkJCQkgIiB0byByZW1vdGUgc2xvdCdzIExTTiglWC8lWCkgYXMgc3luY2hyb25p emF0aW9uIgorCQkJCQkgIiB3b3VsZCBtb3ZlIGl0IGJhY2t3YXJkcyIsIHJlbW90ZV9zbG90LT5u YW1lLAorCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHNsb3QtPmRhdGEucmVzdGFydF9sc24pLAorCQkJ CQkgTFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbikpOworCisJCQlpZiAo cmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24gIT0gc2xvdC0+ZGF0YS5jb25maXJtZWRfZmx1c2gg fHwKKwkJCQlyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gIT0gc2xvdC0+ZGF0YS5yZXN0YXJ0X2xz biB8fAorCQkJCXJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW4gIT0gc2xvdC0+ZGF0YS5jYXRhbG9n X3htaW4pCisJCQl7CisJCQkJLyogVXBkYXRlIExTTiBvZiBzbG90IHRvIHJlbW90ZSBzbG90J3Mg Y3VycmVudCBwb3NpdGlvbiAqLworCQkJCWxvY2FsX3Nsb3RfdXBkYXRlKHJlbW90ZV9zbG90KTsK KworCQkJCS8qIE1ha2Ugc3VyZSB0aGUgc2xvdCBjaGFuZ2VzIHBlcnNpc3QgYWNyb3NzIHNlcnZl ciByZXN0YXJ0ICovCisJCQkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCQkJUmVwbGlj YXRpb25TbG90U2F2ZSgpOworCQkJCXNsb3RfdXBkYXRlZCA9IHRydWU7CisJCQl9CisJCX0KKwl9 CisJLyogT3RoZXJ3aXNlIGNyZWF0ZSB0aGUgc2xvdCBmaXJzdC4gKi8KKwllbHNlCisJeworCQlU cmFuc2FjdGlvbklkIHhtaW5faG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCisJCS8q IFNraXAgY3JlYXRpbmcgdGhlIGxvY2FsIHNsb3QgaWYgcmVtb3RlX3Nsb3QgaXMgaW52YWxpZGF0 ZWQgYWxyZWFkeSAqLworCQlpZiAocmVtb3RlX3Nsb3QtPmludmFsaWRhdGVkICE9IFJTX0lOVkFM X05PTkUpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogRW5zdXJlIHRoYXQgd2UgaGF2ZSB0cmFu c2FjdGlvbiBlbnYgbmVlZGVkIGJ5IGdldF9kYXRhYmFzZV9vaWQoKSAqLworCQlBc3NlcnQoSXNU cmFuc2FjdGlvblN0YXRlKCkpOworCisJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShyZW1vdGVfc2xv dC0+bmFtZSwgdHJ1ZSwgUlNfRVBIRU1FUkFMLAorCQkJCQkJCSAgcmVtb3RlX3Nsb3QtPnR3b19w aGFzZSwKKwkJCQkJCQkgIHJlbW90ZV9zbG90LT5mYWlsb3ZlciwKKwkJCQkJCQkgIFNZTkNTTE9U X1NUQVRFX0lOSVRJQVRFRCk7CisKKwkJLyogRm9yIHNob3J0ZXIgbGluZXMuICovCisJCXNsb3Qg PSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsK KwkJc2xvdC0+ZGF0YS5kYXRhYmFzZSA9IGdldF9kYXRhYmFzZV9vaWQocmVtb3RlX3Nsb3QtPmRh dGFiYXNlLCBmYWxzZSk7CisJCW5hbWVzdHJjcHkoJnNsb3QtPmRhdGEucGx1Z2luLCByZW1vdGVf c2xvdC0+cGx1Z2luKTsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJUmVw bGljYXRpb25TbG90UmVzZXJ2ZVdhbCgpOworCisJCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9j aywgTFdfRVhDTFVTSVZFKTsKKwkJeG1pbl9ob3Jpem9uID0gR2V0T2xkZXN0U2FmZURlY29kaW5n VHJhbnNhY3Rpb25JZCh0cnVlKTsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJ CXNsb3QtPmVmZmVjdGl2ZV9jYXRhbG9nX3htaW4gPSB4bWluX2hvcml6b247CisJCXNsb3QtPmRh dGEuY2F0YWxvZ194bWluID0geG1pbl9ob3Jpem9uOworCQlTcGluTG9ja1JlbGVhc2UoJnNsb3Qt Pm11dGV4KTsKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZFhtaW4odHJ1ZSk7CisJ CUxXTG9ja1JlbGVhc2UoUHJvY0FycmF5TG9jayk7CisKKwkJLyoKKwkJICogV2FpdCBmb3IgdGhl IHByaW1hcnkgc2VydmVyIHRvIGNhdGNoLXVwLiBSZWZlciB0byB0aGUgY29tbWVudCBhdG9wCisJ CSAqIHRoZSBmaWxlIGZvciBkZXRhaWxzIG9uIHRoaXMgd2FpdC4KKwkJICoKKwkJICogV2UgYWxz byBuZWVkIHRvIHdhaXQgdW50aWwgcmVtb3RlX3Nsb3QncyBjb25maXJtZWRfbHNuIGJlY29tZXMK KwkJICogdmFsaWQuIEl0IGlzIHBvc3NpYmxlIHRvIGdldCBudWxsIHZhbHVlcyBmb3IgY29uZmly bWVkX2xzbiBhbmQKKwkJICogY2F0YWxvZ194bWluIGlmIG9uIHRoZSBwcmltYXJ5IHNlcnZlciB0 aGUgc2xvdCBpcyBqdXN0IGNyZWF0ZWQgd2l0aAorCQkgKiBhIHZhbGlkIHJlc3RhcnRfbHNuIGFu ZCBzbG90LXN5bmMgd29ya2VyIGhhcyBmZXRjaGVkIHRoZSBzbG90CisJCSAqIGJlZm9yZSB0aGUg cHJpbWFyeSBzZXJ2ZXIgY291bGQgc2V0IHZhbGlkIGNvbmZpcm1lZF9sc24gYW5kCisJCSAqIGNh dGFsb2dfeG1pbi4KKwkJICovCisJCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gPCBzbG90 LT5kYXRhLnJlc3RhcnRfbHNuIHx8CisJCQlYTG9nUmVjUHRySXNJbnZhbGlkKHJlbW90ZV9zbG90 LT5jb25maXJtZWRfbHNuKSB8fAorCQkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHJlbW90ZV9zbG90 LT5jYXRhbG9nX3htaW4sCisJCQkJCQkJCSAgc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pKQorCQl7 CisJCQlib29sCQl3YWl0X2F0dGVtcHRzX2V4Y2VlZGVkID0gZmFsc2U7CisKKwkJCWlmICghd2Fp dF9mb3JfcHJpbWFyeV9zbG90X2NhdGNodXAod3Jjb25uLCByZW1vdGVfc2xvdCwgJndhaXRfYXR0 ZW1wdHNfZXhjZWVkZWQpKQorCQkJeworCQkJCS8qCisJCQkJICogVGhlIHJlbW90ZSBzbG90IGRp ZG4ndCBjYXRjaCB1cCB0byBsb2NhbGx5IHJlc2VydmVkCisJCQkJICogcG9zaXRpb24uCisJCQkJ ICoKKwkJCQkgKiBXZSBkbyBub3QgZHJvcCB0aGUgc2xvdCBiZWNhdXNlIHRoZSByZXN0YXJ0X2xz biBjYW4gYmUKKwkJCQkgKiBhaGVhZCBvZiB0aGUgY3VycmVudCBsb2NhdGlvbiB3aGVuIHJlY3Jl YXRpbmcgdGhlIHNsb3QgaW4KKwkJCQkgKiB0aGUgbmV4dCBjeWNsZS4gSXQgbWF5IHRha2UgbW9y ZSB0aW1lIHRvIGNyZWF0ZSBzdWNoIGEKKwkJCQkgKiBzbG90LiBUaGVyZWZvcmUsIHdlIHBlcnNp c3QgaXQgKHByb3ZpZGVkIHJlbW90ZS1zbG90IGlzCisJCQkJICogc3RpbGwgdmFsaWQgaS5lIHdh aXRfYXR0ZW1wdHNfZXhjZWVkZWQgaXMgdHJ1ZSkgYW5kIGF0dGVtcHQKKwkJCQkgKiB0aGUgd2Fp dCBhbmQgc3luY2hyb25pemF0aW9uIGluIHRoZSBuZXh0IGN5Y2xlLgorCQkJCSAqLworCQkJCWlm ICh3YWl0X2F0dGVtcHRzX2V4Y2VlZGVkKQorCQkJCXsKKwkJCQkJUmVwbGljYXRpb25TbG90UGVy c2lzdCgpOworCQkJCQlzbG90X3VwZGF0ZWQgPSB0cnVlOworCQkJCX0KKworCQkJCVJlcGxpY2F0 aW9uU2xvdFJlbGVhc2UoKTsKKwkJCQlyZXR1cm4gc2xvdF91cGRhdGVkOworCQkJfQorCQl9CisK KwkJLyoKKwkJICogV2FpdCBmb3IgcHJpbWFyeSBpcyBlaXRoZXIgbm90IG5lZWRlZCBvciBpcyBv dmVyLiBVcGRhdGUgdGhlIGxzbnMKKwkJICogYW5kIG1hcmsgdGhlIHNsb3QgYXMgUkVBRFkgZm9y IGZ1cnRoZXIgc3luY3MuCisJCSAqLworCQlsb2NhbF9zbG90X3VwZGF0ZShyZW1vdGVfc2xvdCk7 CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzbG90LT5kYXRhLnN5bmNfc3Rh dGUgPSBTWU5DU0xPVF9TVEFURV9SRUFEWTsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRl eCk7CisKKwkJLyogTWFyayB0aGUgc2xvdCBhcyBQRVJTSVNURU5UIGFuZCBzYXZlIHRoZSBjaGFu Z2VzIHRvIGRpc2sgKi8KKwkJUmVwbGljYXRpb25TbG90UGVyc2lzdCgpOworCQlzbG90X3VwZGF0 ZWQgPSB0cnVlOworCisJCWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygibmV3bHkgbG9jYWxseSBj cmVhdGVkIHNsb3QgXCIlc1wiIGlzIHN5bmMtcmVhZHkgbm93IiwKKwkJCQkJICAgcmVtb3RlX3Ns b3QtPm5hbWUpKTsKKwl9CisKKwlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisKKwlyZXR1cm4g c2xvdF91cGRhdGVkOworfQorCisvKgorICogTWFwcyB0aGUgcGdfcmVwbGljYXRpb25fc2xvdHMu Y29uZmxpY3RfcmVhc29uIHRleHQgdmFsdWUgdG8KKyAqIFJlcGxpY2F0aW9uU2xvdEludmFsaWRh dGlvbkNhdXNlIGVudW0gdmFsdWUKKyAqLworc3RhdGljIFJlcGxpY2F0aW9uU2xvdEludmFsaWRh dGlvbkNhdXNlCitnZXRfc2xvdF9pbnZhbGlkYXRpb25fY2F1c2UoY2hhciAqY29uZmxpY3RfcmVh c29uKQoreworCUFzc2VydChjb25mbGljdF9yZWFzb24pOworCisJaWYgKHN0cmNtcChjb25mbGlj dF9yZWFzb24sIFNMT1RfSU5WQUxfV0FMX1JFTU9WRURfVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJT X0lOVkFMX1dBTF9SRU1PVkVEOworCisJaWYgKHN0cmNtcChjb25mbGljdF9yZWFzb24sIFNMT1Rf SU5WQUxfSE9SSVpPTl9URVhUKSA9PSAwKQorCQlyZXR1cm4gUlNfSU5WQUxfSE9SSVpPTjsKKwor CWlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFMX1dBTF9MRVZFTF9URVhUKSA9 PSAwKQorCQlyZXR1cm4gUlNfSU5WQUxfV0FMX0xFVkVMOworCisJLyogQ2Fubm90IGdldCBoZXJl ICovCisJQXNzZXJ0KDApOworfQorCisvKgorICogU3luY2hyb25pemUgc2xvdHMuCisgKgorICog R2V0cyB0aGUgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBpbmZvIGZyb20gdGhlIHByaW1hcnkgc2Vy dmVyIGFuZCB1cGRhdGVzCisgKiB0aGUgc2xvdHMgbG9jYWxseS4gQ3JlYXRlcyB0aGUgc2xvdHMg aWYgbm90IHByZXNlbnQgb24gdGhlIHN0YW5kYnkuCisgKgorICogUmV0dXJucyBUUlVFIGlmIGFu eSBvZiB0aGUgc2xvdHMgZ2V0cyB1cGRhdGVkIGluIHRoaXMgc3luYy1jeWNsZS4KKyAqLworc3Rh dGljIGJvb2wKK3N5bmNocm9uaXplX3Nsb3RzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQorewor I2RlZmluZSBTTE9UU1lOQ19DT0xVTU5fQ09VTlQgOQorCU9pZAkJCXNsb3RSb3dbU0xPVFNZTkNf Q09MVU1OX0NPVU5UXSA9IHtURVhUT0lELCBURVhUT0lELCBMU05PSUQsCisJTFNOT0lELCBYSURP SUQsIEJPT0xPSUQsIEJPT0xPSUQsIFRFWFRPSUQsIFRFWFRPSUR9OworCisJV2FsUmN2RXhlY1Jl c3VsdCAqcmVzOworCVR1cGxlVGFibGVTbG90ICp0dXBzbG90OworCVN0cmluZ0luZm9EYXRhIHM7 CisJTGlzdAkgICAqcmVtb3RlX3Nsb3RfbGlzdCA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwli b29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9IGZhbHNlOworCisJLyogV2FsUmN2IHNoYXJlZCBtZW1v cnkgbm90IHNldCB5ZXQgKi8KKwlpZiAoIVdhbFJjdikKKwkJcmV0dXJuIGZhbHNlOworCisJLyoK KwkgKiBUaGUgcHJpbWFyeV9zbG90X25hbWUgaXMgbm90IHNldCB5ZXQgb3IgV0FMcyBub3QgcmVj ZWl2ZWQgeWV0LgorCSAqIFN5bmNocm9uaXphdGlvbiBpcyBub3QgcG9zc2libGUgaWYgdGhlIHdh bHJlY2VpdmVyIGlzIG5vdCBzdGFydGVkLgorCSAqLworCVNwaW5Mb2NrQWNxdWlyZSgmV2FsUmN2 LT5tdXRleCk7CisJaWYgKChXYWxSY3YtPnNsb3RuYW1lWzBdID09ICdcMCcpIHx8CisJCVhMb2dS ZWNQdHJJc0ludmFsaWQoV2FsUmN2LT5sYXRlc3RXYWxFbmQpKQorCXsKKwkJU3BpbkxvY2tSZWxl YXNlKCZXYWxSY3YtPm11dGV4KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlTcGluTG9ja1JlbGVh c2UoJldhbFJjdi0+bXV0ZXgpOworCisJLyogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiB3YWxyY3Zf ZXhlYygpIG5lZWRzIGEgdHJhbnNhY3Rpb24gZW52LiAqLworCVN0YXJ0VHJhbnNhY3Rpb25Db21t YW5kKCk7CisKKwlpbml0U3RyaW5nSW5mbygmcyk7CisKKwkvKiBDb25zdHJ1Y3QgcXVlcnkgdG8g ZmV0Y2ggc2xvdHMgd2l0aCBmYWlsb3ZlciBlbmFibGVkLiAqLworCWFwcGVuZFN0cmluZ0luZm8o JnMsCisJCQkJCSAiU0VMRUNUIHNsb3RfbmFtZSwgcGx1Z2luLCBjb25maXJtZWRfZmx1c2hfbHNu LCIKKwkJCQkJICIgcmVzdGFydF9sc24sIGNhdGFsb2dfeG1pbiwgdHdvX3BoYXNlLCBmYWlsb3Zl ciwiCisJCQkJCSAiIGRhdGFiYXNlLCBjb25mbGljdF9yZWFzb24iCisJCQkJCSAiIEZST00gcGdf Y2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyIKKwkJCQkJICIgV0hFUkUgZmFpbG92ZXIiKTsK KworCS8qIEV4ZWN1dGUgdGhlIHF1ZXJ5ICovCisJcmVzID0gd2FscmN2X2V4ZWMod3Jjb25uLCBz LmRhdGEsIFNMT1RTWU5DX0NPTFVNTl9DT1VOVCwgc2xvdFJvdyk7CisJcGZyZWUocy5kYXRhKTsK KworCWlmIChyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCWVycm1zZygiY291bGQgbm90IGZldGNoIGZhaWxvdmVyIGxvZ2ljYWwgc2xvdHMgaW5m byIKKwkJCQkJICAgIiBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlcjogJXMiLCByZXMtPmVycikpOwor CisKKwkvKiBDb25zdHJ1Y3QgdGhlIHJlbW90ZV9zbG90IHR1cGxlIGFuZCBzeW5jaHJvbml6ZSBl YWNoIHNsb3QgbG9jYWxseSAqLworCXR1cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3Qo cmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFsVHVwbGUpOworCXdoaWxlICh0dXBsZXN0b3Jl X2dldHR1cGxlc2xvdChyZXMtPnR1cGxlc3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KSkKKwl7 CisJCWJvb2wJCWlzbnVsbDsKKwkJUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSBwYWxsb2MwKHNp emVvZihSZW1vdGVTbG90KSk7CisKKwkJcmVtb3RlX3Nsb3QtPm5hbWUgPSBUZXh0RGF0dW1HZXRD U3RyaW5nKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNu dWxsKTsKKworCQlyZW1vdGVfc2xvdC0+cGx1Z2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90 X2dldGF0dHIodHVwc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJ LyoKKwkJICogSXQgaXMgcG9zc2libGUgdG8gZ2V0IG51bGwgdmFsdWVzIGZvciBMU04gYW5kIFht aW4gaWYgc2xvdCBpcworCQkgKiBpbnZhbGlkYXRlZCBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHNv IGhhbmRsZSBhY2NvcmRpbmdseS4KKwkJICovCisJCXJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNu ID0gIXNsb3RfYXR0aXNudWxsKHR1cHNsb3QsIDMpID8KKwkJCURhdHVtR2V0TFNOKHNsb3RfZ2V0 YXR0cih0dXBzbG90LCAzLCAmaXNudWxsKSkgOgorCQkJSW52YWxpZFhMb2dSZWNQdHI7CisKKwkJ cmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuID0gIXNsb3RfYXR0aXNudWxsKHR1cHNsb3QsIDQpID8K KwkJCURhdHVtR2V0TFNOKHNsb3RfZ2V0YXR0cih0dXBzbG90LCA0LCAmaXNudWxsKSkgOgorCQkJ SW52YWxpZFhMb2dSZWNQdHI7CisKKwkJcmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiA9ICFzbG90 X2F0dGlzbnVsbCh0dXBzbG90LCA1KSA/CisJCQlEYXR1bUdldFRyYW5zYWN0aW9uSWQoc2xvdF9n ZXRhdHRyKHR1cHNsb3QsIDUsICZpc251bGwpKSA6CisJCQlJbnZhbGlkVHJhbnNhY3Rpb25JZDsK KworCQlyZW1vdGVfc2xvdC0+dHdvX3BoYXNlID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0 dXBzbG90LCA2LCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xv dC0+ZmFpbG92ZXIgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDcsICZpc251 bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5kYXRhYmFzZSA9IFRl eHREYXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHR1cHNsb3QsCisJCQkJCQkJCQkJCQkJCQkJ IDgsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5pbnZh bGlkYXRlZCA9ICFzbG90X2F0dGlzbnVsbCh0dXBzbG90LCA5KSA/CisJCQlnZXRfc2xvdF9pbnZh bGlkYXRpb25fY2F1c2UoVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwg OSwgJmlzbnVsbCkpKSA6CisJCQlSU19JTlZBTF9OT05FOworCisJCS8qIENyZWF0ZSBsaXN0IG9m IHJlbW90ZSBzbG90cyAqLworCQlyZW1vdGVfc2xvdF9saXN0ID0gbGFwcGVuZChyZW1vdGVfc2xv dF9saXN0LCByZW1vdGVfc2xvdCk7CisKKwkJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJfQor CisJLyogRHJvcCBsb2NhbCBzbG90cyB0aGF0IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN5bmNlZC4g Ki8KKwlkcm9wX29ic29sZXRlX3Nsb3RzKHJlbW90ZV9zbG90X2xpc3QpOworCisJLyogTm93IHN5 bmMgdGhlIHNsb3RzIGxvY2FsbHkgKi8KKwlmb3JlYWNoKGxjLCByZW1vdGVfc2xvdF9saXN0KQor CXsKKwkJUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSAoUmVtb3RlU2xvdCAqKSBsZmlyc3QobGMp OworCisJCXNvbWVfc2xvdF91cGRhdGVkIHw9IHN5bmNocm9uaXplX29uZV9zbG90KHdyY29ubiwg cmVtb3RlX3Nsb3QpOworCX0KKworCS8qIFdlIGFyZSBkb25lLCBmcmVlIHJlbW90ZV9zbG90X2xp c3QgZWxlbWVudHMgKi8KKwlsaXN0X2ZyZWVfZGVlcChyZW1vdGVfc2xvdF9saXN0KTsKKworCXdh bHJjdl9jbGVhcl9yZXN1bHQocmVzKTsKKworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwor CisJcmV0dXJuIHNvbWVfc2xvdF91cGRhdGVkOworfQorCisvKgorICogQ2hlY2tzIHRoZSBwcmlt YXJ5IHNlcnZlciBpbmZvLgorICoKKyAqIFVzaW5nIHRoZSBzcGVjaWZpZWQgcHJpbWFyeSBzZXJ2 ZXIgY29ubmVjdGlvbiwgY2hlY2sgd2hldGhlciB3ZSBhcmUgYQorICogY2FzY2FkaW5nIHN0YW5k YnkuIEl0IGFsc28gdmFsaWRhdGVzIHByaW1hcnlfc2xvdF9uYW1lIGZvciBub24tY2FzY2FkaW5n CisgKiBzdGFuZGJ5cy4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX3ByaW1hcnlfaW5mbyhXYWxS ZWNlaXZlckNvbm4gKndyY29ubiwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCit7CisjZGVm aW5lIFBSSU1BUllfSU5GT19PVVRQVVRfQ09MX0NPVU5UIDIKKwlXYWxSY3ZFeGVjUmVzdWx0ICpy ZXM7CisJT2lkCQkJc2xvdFJvd1tQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9DT1VOVF0gPSB7Qk9P TE9JRCwgQk9PTE9JRH07CisJU3RyaW5nSW5mb0RhdGEgY21kOworCWJvb2wJCWlzbnVsbDsKKwlU dXBsZVRhYmxlU2xvdCAqdHVwc2xvdDsKKwlib29sCQl2YWxpZDsKKwlib29sCQlyZW1vdGVfaW5f cmVjb3Zlcnk7CisJYm9vbAkJdHVwbGVfb2sgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCisJ LyogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiB3YWxyY3ZfZXhlYygpIG5lZWRzIGEgdHJhbnNhY3Rp b24gZW52LiAqLworCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlBc3NlcnQoYW1fY2Fz Y2FkaW5nX3N0YW5kYnkgIT0gTlVMTCk7CisKKwkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBmYWxz ZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgY2FzY2FkaW5nICovCisKKwlpbml0U3RyaW5nSW5m bygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCisJCQkJCSAiU0VMRUNUIHBnX2lzX2lu X3JlY292ZXJ5KCksIGNvdW50KCopID0gMSIKKwkJCQkJICIgRlJPTSBwZ19yZXBsaWNhdGlvbl9z bG90cyIKKwkJCQkJICIgV0hFUkUgc2xvdF90eXBlPSdwaHlzaWNhbCcgQU5EIHNsb3RfbmFtZT0l cyIsCisJCQkJCSBxdW90ZV9saXRlcmFsX2NzdHIoUHJpbWFyeVNsb3ROYW1lKSk7CisKKwlyZXMg PSB3YWxyY3ZfZXhlYyh3cmNvbm4sIGNtZC5kYXRhLCBQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9D T1VOVCwgc2xvdFJvdyk7CisJcGZyZWUoY21kLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9 IFdBTFJDVl9PS19UVVBMRVMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBu b3QgZmV0Y2ggcHJpbWFyeV9zbG90X25hbWUgXCIlc1wiIGluZm8gZnJvbSB0aGUiCisJCQkJCSAg ICIgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwgUHJpbWFyeVNsb3ROYW1lLCByZXMtPmVycikpOworCisJ dHVwc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChyZXMtPnR1cGxlZGVzYywgJlRUU09w c01pbmltYWxUdXBsZSk7CisJdHVwbGVfb2sgPSB0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMt PnR1cGxlc3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KTsKKwlBc3NlcnQodHVwbGVfb2spOwkJ CS8qIEl0IG11c3QgcmV0dXJuIG9uZSB0dXBsZSAqLworCisJcmVtb3RlX2luX3JlY292ZXJ5ID0g RGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNudWxsKSk7CisJQXNzZXJ0 KCFpc251bGwpOworCisJaWYgKHJlbW90ZV9pbl9yZWNvdmVyeSkKKwl7CisJCS8qIE5vIG5lZWQg dG8gY2hlY2sgZnVydGhlciwgcmV0dXJuIHRoYXQgd2UgYXJlIGNhc2NhZGluZyBzdGFuZGJ5ICov CisJCSphbV9jYXNjYWRpbmdfc3RhbmRieSA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCS8qIFdl IGFyZSBhIG5vcm1hbCBzdGFuZGJ5LiAqLworCQl2YWxpZCA9IERhdHVtR2V0Qm9vbChzbG90X2dl dGF0dHIodHVwc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJaWYg KCF2YWxpZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hy b25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJLyogdHJhbnNsYXRvcjog c2Vjb25kICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQkJZXJyZGV0YWlsKCJUaGUg cHJpbWFyeSBzZXJ2ZXIgc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGJ5ICVzIGlzIG5vdCB2YWxpZC4i LAorCQkJCQkJCSAgUHJpbWFyeVNsb3ROYW1lLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJfQor CisJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOwor CUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworfQorCisvKgorICogQ2hlY2sgdGhhdCBhbGwg bmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBzZXQKKyAqIGFwcHJv cHJpYXRlbHkuIElmIG5vdCwgcmFpc2UgYW4gRVJST1IuCisgKi8KK3N0YXRpYyB2b2lkCit2YWxp ZGF0ZV9zbG90c3luY19wYXJhbWV0ZXJzKGNoYXIgKipkYm5hbWUpCit7CisJLyogU2FuaXR5IGNo ZWNrLiAqLworCUFzc2VydChlbmFibGVfc3luY3Nsb3QpOworCisJLyoKKwkgKiBBIHBoeXNpY2Fs IHJlcGxpY2F0aW9uIHNsb3QocHJpbWFyeV9zbG90X25hbWUpIGlzIHJlcXVpcmVkIG9uIHRoZQor CSAqIHByaW1hcnkgdG8gZW5zdXJlIHRoYXQgdGhlIHJvd3MgbmVlZGVkIGJ5IHRoZSBzdGFuZGJ5 IGFyZSBub3QgcmVtb3ZlZAorCSAqIGFmdGVyIHJlc3RhcnRpbmcsIHNvIHRoYXQgdGhlIHN5bmNo cm9uaXplZCBzbG90IG9uIHRoZSBzdGFuZGJ5IHdpbGwgbm90CisJICogYmUgaW52YWxpZGF0ZWQu CisJICovCisJaWYgKFByaW1hcnlTbG90TmFtZSA9PSBOVUxMIHx8IHN0cmNtcChQcmltYXJ5U2xv dE5hbWUsICIiKSA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBp cyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBz eW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgi JXMgbXVzdCBiZSBkZWZpbmVkLiIsICJwcmltYXJ5X3Nsb3RfbmFtZSIpKTsKKworCS8qCisJICog SG90X3N0YW5kYnlfZmVlZGJhY2sgbXVzdCBiZSBlbmFibGVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRo ZSBwaHlzaWNhbAorCSAqIHJlcGxpY2F0aW9uIHNsb3QsIHdoaWNoIGFsbG93cyBpbmZvcm1pbmcg dGhlIHByaW1hcnkgYWJvdXQgdGhlIHhtaW4gYW5kCisJICogY2F0YWxvZ194bWluIHZhbHVlcyBv biB0aGUgc3RhbmRieS4KKwkgKi8KKwlpZiAoIWhvdF9zdGFuZGJ5X2ZlZWRiYWNrKQorCQllcmVw b3J0KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICov CisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJh ZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiJXMgbXVzdCBiZSBlbmFibGVkLiIsICJo b3Rfc3RhbmRieV9mZWVkYmFjayIpKTsKKworCS8qCisJICogTG9naWNhbCBkZWNvZGluZyByZXF1 aXJlcyB3YWxfbGV2ZWwgPj0gbG9naWNhbCBhbmQgd2UgY3VycmVudGx5IG9ubHkKKwkgKiBzeW5j aHJvbml6ZSBsb2dpY2FsIHNsb3RzLgorCSAqLworCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxf TE9HSUNBTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMg dmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25p emF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIndhbF9sZXZl bCBtdXN0IGJlID49IGxvZ2ljYWwuIikpOworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9jb25uaW5m byBpcyByZXF1aXJlZCB0byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKKwkgKiBnZXR0 aW5nIHNsb3RzIGluZm9ybWF0aW9uLgorCSAqLworCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVM TCB8fCBzdHJjbXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwK KwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1z ZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJh dGlvbiIpLAorCQkJCWVycmhpbnQoIiVzIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9jb25u aW5mbyIpKTsKKworCS8qCisJICogVGhlIHNsb3Qgc3luYyB3b3JrZXIgbmVlZHMgYSBkYXRhYmFz ZSBjb25uZWN0aW9uIGZvciB3YWxyY3ZfZXhlYyB0bworCSAqIHdvcmsuCisJICovCisJKmRibmFt ZSA9IHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oUHJpbWFyeUNvbm5JbmZvKTsKKwlp ZiAoKmRibmFtZSA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCisJCS8qCisJCSAqIHRyYW5z bGF0b3I6ICdkYm5hbWUnIGlzIGEgc3BlY2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJs ZQorCQkgKiBuYW1lCisJCSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hy b25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIidkYm5h bWUnIG11c3QgYmUgc3BlY2lmaWVkIGluICVzLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworfQor CisvKgorICogUmUtcmVhZCB0aGUgY29uZmlnIGZpbGUuCisgKgorICogSWYgYW55IG9mIHRoZSBz bG90IHN5bmMgR1VDcyBoYXZlIGNoYW5nZWQsIGV4aXQgdGhlIHdvcmtlciBhbmQKKyAqIGxldCBp dCBnZXQgcmVzdGFydGVkIGJ5IHRoZSBwb3N0bWFzdGVyLgorICovCitzdGF0aWMgdm9pZAorc2xv dHN5bmNfcmVyZWFkX2NvbmZpZyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKwljaGFyCSAg ICpvbGRfcHJpbWFyeV9jb25uaW5mbyA9IHBzdHJkdXAoUHJpbWFyeUNvbm5JbmZvKTsKKwljaGFy CSAgICpvbGRfcHJpbWFyeV9zbG90bmFtZSA9IHBzdHJkdXAoUHJpbWFyeVNsb3ROYW1lKTsKKwli b29sCQlvbGRfaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBob3Rfc3RhbmRieV9mZWVkYmFjazsKKwli b29sCQljb25uaW5mb19jaGFuZ2VkOworCWJvb2wJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZDsK KworCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0Nf U0lHSFVQKTsKKworCWNvbm5pbmZvX2NoYW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfY29ubmlu Zm8sIFByaW1hcnlDb25uSW5mbykgIT0gMDsKKwlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQgPSBz dHJjbXAob2xkX3ByaW1hcnlfc2xvdG5hbWUsIFByaW1hcnlTbG90TmFtZSkgIT0gMDsKKworCWlm IChjb25uaW5mb19jaGFuZ2VkIHx8CisJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZCB8fAorCQko b2xkX2hvdF9zdGFuZGJ5X2ZlZWRiYWNrICE9IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrKSkKKwl7CisJ CWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygic2xvdCBzeW5jIHdvcmtlciB3aWxsIHJlc3RhcnQg YmVjYXVzZSBvZiIKKwkJCQkJICAgIiBhIHBhcmFtZXRlciBjaGFuZ2UiKSk7CisJCS8qIFRoZSBl eGl0IGNvZGUgMSB3aWxsIG1ha2UgcG9zdG1hc3RlciByZXN0YXJ0IHRoaXMgd29ya2VyICovCisJ CXByb2NfZXhpdCgxKTsKKwl9CisKKwlwZnJlZShvbGRfcHJpbWFyeV9jb25uaW5mbyk7CisJcGZy ZWUob2xkX3ByaW1hcnlfc2xvdG5hbWUpOworfQorCisvKgorICogSW50ZXJydXB0IGhhbmRsZXIg Zm9yIG1haW4gbG9vcCBvZiBzbG90IHN5bmMgd29ya2VyLgorICovCitzdGF0aWMgdm9pZAorUHJv Y2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKwlDSEVD S19GT1JfSU5URVJSVVBUUygpOworCisJaWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCisJewor CQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOworCQllcmVwb3J0KExPRywKKwkJCQllcnJtc2co InJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIgaXMgc2h1dHRpbmcgZG93biIKKwkJCQkJICAg IiBvbiByZWNlaXZpbmcgU0lHSU5UIikpOworCQlwcm9jX2V4aXQoMCk7CisJfQorCisJaWYgKENv bmZpZ1JlbG9hZFBlbmRpbmcpCisJCXNsb3RzeW5jX3JlcmVhZF9jb25maWcod3Jjb25uKTsKK30K KworLyoKKyAqIENsZWFudXAgZnVuY3Rpb24gZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gbGF1bmNo ZXIuCisgKgorICogQ2FsbGVkIG9uIGxvZ2ljYWwgcmVwbGljYXRpb24gbGF1bmNoZXIgZXhpdC4K KyAqLworc3RhdGljIHZvaWQKK3Nsb3RzeW5jX3dvcmtlcl9vbmV4aXQoaW50IGNvZGUsIERhdHVt IGFyZykKK3sKKwlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJU2xv dFN5bmNXb3JrZXItPnBpZCA9IEludmFsaWRQaWQ7CisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3lu Y1dvcmtlci0+bXV0ZXgpOworfQorCisvKgorICogVGhlIG1haW4gbG9vcCBvZiBvdXIgd29ya2Vy IHByb2Nlc3MuCisgKgorICogSXQgY29ubmVjdHMgdG8gdGhlIHByaW1hcnkgc2VydmVyLCBmZXRj aGVzIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMKKyAqIGluZm9ybWF0aW9uIHBlcmlvZGljYWxseSBp biBvcmRlciB0byBjcmVhdGUgYW5kIHN5bmMgdGhlIHNsb3RzLgorICovCit2b2lkCitSZXBsU2xv dFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQoreworCVdhbFJlY2VpdmVyQ29ubiAqd3Jj b25uID0gTlVMTDsKKwljaGFyCSAgICpkYm5hbWU7CisJYm9vbAkJYW1fY2FzY2FkaW5nX3N0YW5k Ynk7CisJY2hhcgkgICAqZXJyOworCisJZXJlcG9ydChMT0csIGVycm1zZygicmVwbGljYXRpb24g c2xvdCBzeW5jIHdvcmtlciBzdGFydGVkIikpOworCisJb25fc2htZW1fZXhpdChzbG90c3luY193 b3JrZXJfb25leGl0LCAoRGF0dW0pIDApOworCisJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3luY1dv cmtlci0+bXV0ZXgpOworCisJQXNzZXJ0KFNsb3RTeW5jV29ya2VyLT5waWQgPT0gSW52YWxpZFBp ZCk7CisKKwkvKiBBZHZlcnRpc2Ugb3VyIFBJRCBzbyB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mg Y2FuIGtpbGwgdXMgb24gcHJvbW90aW9uICovCisJU2xvdFN5bmNXb3JrZXItPnBpZCA9IE15UHJv Y1BpZDsKKworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKworCS8q IFNldHVwIHNpZ25hbCBoYW5kbGluZyAqLworCXBxc2lnbmFsKFNJR0hVUCwgU2lnbmFsSGFuZGxl ckZvckNvbmZpZ1JlbG9hZCk7CisJcHFzaWduYWwoU0lHSU5ULCBTaWduYWxIYW5kbGVyRm9yU2h1 dGRvd25SZXF1ZXN0KTsKKwlwcXNpZ25hbChTSUdURVJNLCBkaWUpOworCUJhY2tncm91bmRXb3Jr ZXJVbmJsb2NrU2lnbmFscygpOworCisJLyogTG9hZCB0aGUgbGlicHEtc3BlY2lmaWMgZnVuY3Rp b25zICovCisJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJdmFsaWRh dGVfc2xvdHN5bmNfcGFyYW1ldGVycygmZGJuYW1lKTsKKworCS8qCisJICogQ29ubmVjdCB0byB0 aGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGJ5IHVzZXIgaW4gcHJpbWFyeV9jb25uaW5mby4gV2UgbmVl ZAorCSAqIGEgZGF0YWJhc2UgY29ubmVjdGlvbiBmb3Igd2FscmN2X2V4ZWMgdG8gd29yay4gUGxl YXNlIHNlZSBjb21tZW50cyBhdG9wCisJICogbGlicHFyY3ZfZXhlYy4KKwkgKi8KKwlCYWNrZ3Jv dW5kV29ya2VySW5pdGlhbGl6ZUNvbm5lY3Rpb24oZGJuYW1lLCBOVUxMLCAwKTsKKworCS8qCisJ ICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3Igc2xv dHMKKwkgKiBzeW5jaHJvbml6YXRpb24uCisJICovCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qo UHJpbWFyeUNvbm5JbmZvLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQljbHVzdGVyX25hbWVbMF0gPyBj bHVzdGVyX25hbWUgOiAic2xvdHN5bmN3b3JrZXIiLAorCQkJCQkJCSZlcnIpOworCWlmICh3cmNv bm4gPT0gTlVMTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ09OTkVD VElPTl9GQUlMVVJFKSwKKwkJCQllcnJtc2coImNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwcmlt YXJ5IHNlcnZlcjogJXMiLCBlcnIpKTsKKworCS8qCisJICogVXNpbmcgdGhlIHNwZWNpZmllZCBw cmltYXJ5IHNlcnZlciBjb25uZWN0aW9uLCBjaGVjayB3aGV0aGVyIHdlIGFyZQorCSAqIGNhc2Nh ZGluZyBzdGFuZGJ5IGFuZCB2YWxpZGF0ZXMgcHJpbWFyeV9zbG90X25hbWUgZm9yCisJICogbm9u LWNhc2NhZGluZy1zdGFuZGJ5cy4KKwkgKi8KKwljaGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAm YW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCisJLyogTWFpbiB3YWl0IGxvb3AuICovCisJZm9yICg7 OykKKwl7CisJCWludAkJCXJjOworCQlsb25nCQluYXB0aW1lID0gV09SS0VSX0RFRkFVTFRfTkFQ VElNRV9NUzsKKwkJVGltZXN0YW1wVHogbm93OworCQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZDsK KworCQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CisKKwkJaWYgKGFtX2Nhc2Nh ZGluZ19zdGFuZGJ5KQorCQl7CisJCQkvKgorCQkJICogU2xvdCBzeW5jaHJvbml6YXRpb24gaXMg Y3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5nCisJCQkgKiBzdGFuZGJ5LiBTbyBp ZiB3ZSBhcmUgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5LCBza2lwIHRoZSBzeW5jCisJCQkgKiBh bmQgdGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdlIGNoZWNrIGFnYWluIHdoZXRoZXIgd2UgYXJl CisJCQkgKiBzdGlsbCBjYXNjYWRpbmcgc3RhbmRieSBvciBub3QuCisJCQkgKi8KKwkJCW5hcHRp bWUgPSA2ICogV09SS0VSX0lOQUNUSVZJVFlfTkFQVElNRV9NUzsgLyogNjAgc2VjICovCisJCX0K KwkJZWxzZQorCQl7CisJCQlzb21lX3Nsb3RfdXBkYXRlZCA9IHN5bmNocm9uaXplX3Nsb3RzKHdy Y29ubik7CisKKwkJCS8qCisJCQkgKiBJZiBhbnkgb2YgdGhlIHNsb3RzIGdldCB1cGRhdGVkIGlu IHRoaXMgc3luYy1jeWNsZSwgdXNlIGRlZmF1bHQKKwkJCSAqIG5hcHRpbWUgYW5kIHVwZGF0ZSAn bGFzdF91cGRhdGVfdGltZScuIEJ1dCBpZiBubyBhY3Rpdml0eSBpcworCQkJICogb2JzZXJ2ZWQg aW4gdGhpcyBzeW5jLWN5Y2xlLCB0aGVuIGluY3JlYXNlIG5hcHRpbWUgcHJvdmlkZWQKKwkJCSAq IGluYWN0aXZpdHkgdGltZSByZWFjaGVzIHRocmVzaG9sZC4KKwkJCSAqLworCQkJbm93ID0gR2V0 Q3VycmVudFRpbWVzdGFtcCgpOworCQkJaWYgKHNvbWVfc2xvdF91cGRhdGVkKQorCQkJCWxhc3Rf dXBkYXRlX3RpbWUgPSBub3c7CisJCQllbHNlIGlmIChUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVk cyhsYXN0X3VwZGF0ZV90aW1lLAorCQkJCQkJCQkJCQkJbm93LCBXT1JLRVJfSU5BQ1RJVklUWV9U SFJFU0hPTERfTVMpKQorCQkJCW5hcHRpbWUgPSBXT1JLRVJfSU5BQ1RJVklUWV9OQVBUSU1FX01T OworCQl9CisKKwkJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJICAgV0xfTEFUQ0hfU0VU IHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCSAgIG5hcHRpbWUsCisJ CQkJCSAgIFdBSVRfRVZFTlRfUkVQTF9TTE9UU1lOQ19NQUlOKTsKKworCQlpZiAocmMgJiBXTF9M QVRDSF9TRVQpCisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCisJCS8qCisJCSAqIElmIHRoZSBz dGFuZGJ5IHdhcyBwcm9tb3RlZCB0aGVuIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBjYXNjYWRpbmcK KwkJICogc3RhbmRieSBtaWdodCBubyBsb25nZXIgYmUgb25lLCBzbyByZWNoZWNrIGVhY2ggdGlt ZS4KKwkJICovCisJCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwkJCWNoZWNrX3ByaW1hcnlf aW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJfQorCisJLyoKKwkgKiBUaGUg c2xvdCBzeW5jIHdvcmtlciBjYW4gbm90IGdldCBoZXJlIGJlY2F1c2UgaXQgd2lsbCBvbmx5IHN0 b3Agd2hlbiBpdAorCSAqIHJlY2VpdmVzIGEgU0lHSU5UIGZyb20gdGhlIGxvZ2ljYWwgcmVwbGlj YXRpb24gbGF1bmNoZXIsIG9yIHdoZW4gdGhlcmUKKwkgKiBpcyBhbiBlcnJvci4KKwkgKi8KKwlB c3NlcnQoZmFsc2UpOworfQorCisvKgorICogSXMgY3VycmVudCBwcm9jZXNzIHRoZSBzbG90IHN5 bmMgd29ya2VyPworICovCitib29sCitJc0xvZ2ljYWxTbG90U3luY1dvcmtlcih2b2lkKQorewor CXJldHVybiBTbG90U3luY1dvcmtlci0+cGlkID09IE15UHJvY1BpZDsKK30KKworLyoKKyAqIFNo dXQgZG93biB0aGUgc2xvdCBzeW5jIHdvcmtlci4KKyAqLwordm9pZAorU2h1dERvd25TbG90U3lu Yyh2b2lkKQoreworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwlp ZiAoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKQorCXsKKwkJU3BpbkxvY2tSZWxl YXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCQlyZXR1cm47CisJfQorCisJa2lsbChTbG90 U3luY1dvcmtlci0+cGlkLCBTSUdJTlQpOworCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dv cmtlci0+bXV0ZXgpOworCisJLyogV2FpdCBmb3IgaXQgdG8gZGllLiAqLworCWZvciAoOzspCisJ eworCQlpbnQJCQlyYzsKKworCQkvKiBXYWl0IGEgYml0LCB3ZSBkb24ndCBleHBlY3QgdG8gaGF2 ZSB0byB3YWl0IGxvbmcuICovCisJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCSAgIFdM X0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJCQkgICAx MEwsIFdBSVRfRVZFTlRfQkdXT1JLRVJfU0hVVERPV04pOworCisJCWlmIChyYyAmIFdMX0xBVENI X1NFVCkKKwkJeworCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJV UFRTKCk7CisJCX0KKworCQlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7 CisKKwkJLyogSXMgaXQgZ29uZT8gKi8KKwkJaWYgKFNsb3RTeW5jV29ya2VyLT5waWQgPT0gSW52 YWxpZFBpZCkKKwkJCWJyZWFrOworCisJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXIt Pm11dGV4KTsKKwl9CisKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7 Cit9CisKKy8qCisgKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBzbG90IHN5bmMgd29ya2VyIHNo YXJlZCBtZW1vcnkKKyAqLwordm9pZAorU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQodm9pZCkKK3sK KwlTaXplCQlzaXplOworCWJvb2wJCWZvdW5kOworCisJc2l6ZSA9IHNpemVvZihTbG90U3luY1dv cmtlckN0eFN0cnVjdCk7CisJc2l6ZSA9IE1BWEFMSUdOKHNpemUpOworCisJU2xvdFN5bmNXb3Jr ZXIgPSAoU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKikKKwkJU2htZW1Jbml0U3RydWN0KCJTbG90 IFN5bmMgV29ya2VyIERhdGEiLCBzaXplLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJ CW1lbXNldChTbG90U3luY1dvcmtlciwgMCwgc2l6ZSk7CisJCVNsb3RTeW5jV29ya2VyLT5waWQg PSBJbnZhbGlkUGlkOworCQlTcGluTG9ja0luaXQoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJ fQorfQorCisvKgorICogUmVnaXN0ZXIgdGhlIGJhY2tncm91bmQgd29ya2VyIGZvciBzbG90cyBz eW5jaHJvbml6YXRpb24gcHJvdmlkZWQKKyAqIGVuYWJsZV9zeW5jc2xvdCBpcyBPTi4KKyAqLwor dm9pZAorU2xvdFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKQoreworCUJhY2tncm91bmRXb3JrZXIg Ymd3OworCisJaWYgKCFlbmFibGVfc3luY3Nsb3QpCisJeworCQllcmVwb3J0KExPRywKKwkJCQll cnJtc2coInNraXBwaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCisJCQkJZXJyZGV0YWlsKCJl bmFibGVfc3luY3Nsb3QgaXMgZGlzYWJsZWQuIikpOworCQlyZXR1cm47CisJfQorCisJbWVtc2V0 KCZiZ3csIDAsIHNpemVvZihiZ3cpKTsKKworCS8qIFdlIG5lZWQgZGF0YWJhc2UgY29ubmVjdGlv biB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsLiAqLworCWJndy5iZ3df ZmxhZ3MgPSBCR1dPUktFUl9TSE1FTV9BQ0NFU1MgfAorCQlCR1dPUktFUl9CQUNLRU5EX0RBVEFC QVNFX0NPTk5FQ1RJT047CisKKwkvKiBTdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0 ZSBoYXMgYmVlbiByZWFjaGVkIGluIGEgaG90IHN0YW5kYnkgKi8KKwliZ3cuYmd3X3N0YXJ0X3Rp bWUgPSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5OworCisJc25wcmlu dGYoYmd3LmJnd19saWJyYXJ5X25hbWUsIE1BWFBHUEFUSCwgInBvc3RncmVzIik7CisJc25wcmlu dGYoYmd3LmJnd19mdW5jdGlvbl9uYW1lLCBCR1dfTUFYTEVOLCAiUmVwbFNsb3RTeW5jV29ya2Vy TWFpbiIpOworCXNucHJpbnRmKGJndy5iZ3dfbmFtZSwgQkdXX01BWExFTiwKKwkJCSAicmVwbGlj YXRpb24gc2xvdCBzeW5jIHdvcmtlciIpOworCXNucHJpbnRmKGJndy5iZ3dfdHlwZSwgQkdXX01B WExFTiwKKwkJCSAic2xvdCBzeW5jIHdvcmtlciIpOworCisJYmd3LmJnd19yZXN0YXJ0X3RpbWUg PSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMOworCWJndy5iZ3dfbm90aWZ5X3BpZCA9IDA7 CisJYmd3LmJnd19tYWluX2FyZyA9IChEYXR1bSkgMDsKKworCVJlZ2lzdGVyQmFja2dyb3VuZFdv cmtlcigmYmd3KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmlu ZGV4IDNmZTFmOTk1M2IuLjI4NzQxMmUxYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC93b3JrZXIuYwpAQCAtMTQxLDcgKzE0MSwyMCBAQAogICogc3Vic2NyaWJlIHRvIHRoZSBu ZXcgcHJpbWFyeSB3aXRob3V0IGxvc2luZyBhbnkgZGF0YS4KICAqCiAgKiBIb3dldmVyLCB3ZSBk byBub3QgZW5hYmxlIGZhaWxvdmVyIGZvciBzbG90cyBjcmVhdGVkIGJ5IHRoZSB0YWJsZSBzeW5j Ci0gKiB3b3JrZXIuCisgKiB3b3JrZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgdGFibGUgc3luYyBz bG90IG1pZ2h0IG5vdCBiZSBmdWxseSBzeW5jZWQgb24gdGhlCisgKiBzdGFuZGJ5IGR1ZSB0byB0 aGUgZm9sbG93aW5nIHJlYXNvbnM6CisgKgorICogLSBUaGUgc3RhbmRieSBuZWVkcyB0byB3YWl0 IGZvciB0aGUgcHJpbWFyeSBzZXJ2ZXIgdG8gY2F0Y2ggdXAgYmVjYXVzZSB0aGUKKyAqICAgbG9j YWwgcmVzdGFydF9sc24gb2YgdGhlIG5ld2x5IGNyZWF0ZWQgc2xvdCBvbiB0aGUgc3RhbmRieSBp cyBzZXQgdXNpbmcKKyAqICAgdGhlIGxhdGVzdCByZWRvIHBvc2l0aW9uIChHZXRYTG9nUmVwbGF5 UmVjUHRyKCkpLCB3aGljaCBpcyB0eXBpY2FsbHkgYWhlYWQKKyAqICAgb2YgdGhlIHByaW1hcnkn cyByZXN0YXJ0X2xzbi4KKyAqIC0gVGhlIHRhYmxlIHN5bmMgc2xvdCdzIHJlc3RhcnRfbHNuIHdv bid0IGJlIGFkdmFuY2VkIHVudGlsIHRoZSBzdGF0ZQorICogICBiZWNvbWVzIFNVQlJFTF9TVEFU RV9DQVRDSFVQLgorICoKKyAqIFRoZXJlZm9yZSwgaWYgYSBmYWlsb3ZlciBoYXBwZW5zIGJlZm9y ZSB0aGUgcmVzdGFydF9sc24gYWR2YW5jZXMsIHRoZSB0YWJsZQorICogc3luYyBzbG90IHdpbGwg bm90IGJlIHN5bmNlZCB0byB0aGUgc3RhbmRieS4gQ29uc2VxdWVudGx5LCB3ZSB3aWxsIG5vdCBi ZQorICogYWJsZSB0byBzdWJzY3JpYmUgdG8gdGhlIHByb21vdGVkIHN0YW5kYnkgZHVlIHRvIHRo ZSBhYnNlbmNlIG9mIHRoZQorICogbmVjZXNzYXJ5IHRhYmxlIHN5bmMgc2xvdC4KICAqCiAgKiBB ZGRpdGlvbmFsbHksIGZhaWxvdmVyIGlzIG5vdCBlbmFibGVkIGZvciB0aGUgbWFpbiBzbG90IGlm IHRoZSB0YWJsZSBzeW5jIGlzCiAgKiBpbiBwcm9ncmVzcy4gVGhpcyBpcyBiZWNhdXNlIGlmIGEg ZmFpbG92ZXIgb2NjdXJzIHdoaWxlIHRoZSB0YWJsZSBzeW5jCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMK aW5kZXggNjk2Mzc2NDAwZS4uOWQyNzU5Mzk3OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5o IgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93 YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9p cGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTEwMyw3ICsxMDQsNiBAQCBpbnQJ CQltYXhfcmVwbGljYXRpb25fc2xvdHMgPSAxMDsgLyogdGhlIG1heGltdW0gbnVtYmVyIG9mIHJl cGxpY2F0aW9uCiAJCQkJCQkJCQkJICogc2xvdHMgKi8KIAogc3RhdGljIHZvaWQgUmVwbGljYXRp b25TbG90U2htZW1FeGl0KGludCBjb2RlLCBEYXR1bSBhcmcpOwotc3RhdGljIHZvaWQgUmVwbGlj YXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90 RHJvcFB0cihSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwogCiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5j eSBmdW5jdGlvbnMgKi8KQEAgLTI1MCwxNiArMjUwLDIyIEBAIFJlcGxpY2F0aW9uU2xvdFZhbGlk YXRlTmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQgZWxldmVsKQogICogICAgIHVzZXIgd2lsbCBv bmx5IGdldCBjb21taXQgcHJlcGFyZWQuCiAgKiBmYWlsb3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dz IHRoZSBzbG90IHRvIGJlIHN5bmNlZCB0byBwaHlzaWNhbCBzdGFuZGJ5cyBzbwogICogICAgIHRo YXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KKyAq IHN5bmNfc3RhdGU6IERlZmluZXMgc2xvdCBzeW5jaHJvbml6YXRpb24gc3RhdGUuIFRoaXMgZnVu Y3Rpb24gaXMgZXhwZWN0ZWQKKyAqICAgICB0byByZWNlaXZlIGVpdGhlciBTWU5DU0xPVF9TVEFU RV9OT05FIGZvciB0aGUgdXNlciBjcmVhdGVkIHNsb3RzIG9yCisgKiAgICAgU1lOQ1NMT1RfU1RB VEVfSU5JVElBVEVEIGZvciB0aGUgc2xvdHMgYmVpbmcgc3luY2hyb25pemVkIG9uIHRoZSBwaHlz aWNhbAorICogICAgIHN0YW5kYnkuCiAgKi8KIHZvaWQKIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShj b25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkgIFJlcGxpY2F0aW9uU2xv dFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29sIGZh aWxvdmVyKQorCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyLCBjaGFyIHN5bmNf c3RhdGUpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTlVMTDsKIAlpbnQJCQlpOwogCiAJ QXNzZXJ0KE15UmVwbGljYXRpb25TbG90ID09IE5VTEwpOworCUFzc2VydChzeW5jX3N0YXRlID09 IFNZTkNTTE9UX1NUQVRFX05PTkUgfHwKKwkJICAgc3luY19zdGF0ZSA9PSBTWU5DU0xPVF9TVEFU RV9JTklUSUFURUQpOwogCiAJUmVwbGljYXRpb25TbG90VmFsaWRhdGVOYW1lKG5hbWUsIEVSUk9S KTsKIApAQCAtMzE1LDYgKzMyMSw3IEBAIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFy ICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCXNsb3QtPmRhdGEudHdvX3BoYXNlID0gdHdvX3Bo YXNlOwogCXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxpZFhMb2dSZWNQdHI7CiAJc2xv dC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCXNsb3QtPmRhdGEuc3luY19zdGF0ZSA9IHN5 bmNfc3RhdGU7CiAKIAkvKiBhbmQgdGhlbiBkYXRhIG9ubHkgcHJlc2VudCBpbiBzaGFyZWQgbWVt b3J5ICovCiAJc2xvdC0+anVzdF9kaXJ0aWVkID0gZmFsc2U7CkBAIC02ODAsNiArNjg3LDE3IEBA IFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpCiAKIAlS ZXBsaWNhdGlvblNsb3RBY3F1aXJlKG5hbWUsIG5vd2FpdCk7CiAKKwkvKgorCSAqIERvIG5vdCBh bGxvdyB1c2VycyB0byBkcm9wIHRoZSBzbG90cyB3aGljaCBhcmUgY3VycmVudGx5IGJlaW5nIHN5 bmNlZAorCSAqIGZyb20gdGhlIHByaW1hcnkgdG8gdGhlIHN0YW5kYnkuCisJICovCisJaWYgKFJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmCisJCU15UmVwbGljYXRpb25TbG90LT5kYXRhLnN5bmNfc3Rh dGUgIT0gU1lOQ1NMT1RfU1RBVEVfTk9ORSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCWVycm1zZygi Y2Fubm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLCBuYW1lKSwKKwkJCQllcnJkZXRh aWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuIikp OworCiAJUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7CiB9CiAKQEAgLTY5OSw2ICs3MTcs MTcgQEAgUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3Zl cikKIAkJCQllcnJtc2coImNhbm5vdCB1c2UgJXMgd2l0aCBhIHBoeXNpY2FsIHJlcGxpY2F0aW9u IHNsb3QiLAogCQkJCQkgICAiQUxURVJfUkVQTElDQVRJT05fU0xPVCIpKTsKIAorCS8qCisJICog RG8gbm90IGFsbG93IHVzZXJzIHRvIGFsdGVyIHRoZSBzbG90cyB3aGljaCBhcmUgY3VycmVudGx5 IGJlaW5nIHN5bmNlZAorCSAqIGZyb20gdGhlIHByaW1hcnkgdG8gdGhlIHN0YW5kYnkuCisJICov CisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpICYmCisJCU15UmVwbGljYXRpb25TbG90LT5kYXRh LnN5bmNfc3RhdGUgIT0gU1lOQ1NMT1RfU1RBVEVfTk9ORSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJ CWVycm1zZygiY2Fubm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwgbmFtZSksCisJ CQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1hcnkg c2VydmVyLiIpKTsKKwogCVNwaW5Mb2NrQWNxdWlyZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4 KTsKIAlNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOwogCVNwaW5M b2NrUmVsZWFzZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKQEAgLTcxMSw3ICs3NDAsNyBA QCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKQog LyoKICAqIFBlcm1hbmVudGx5IGRyb3AgdGhlIGN1cnJlbnRseSBhY3F1aXJlZCByZXBsaWNhdGlv biBzbG90LgogICovCi1zdGF0aWMgdm9pZAordm9pZAogUmVwbGljYXRpb25TbG90RHJvcEFjcXVp cmVkKHZvaWQpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCmluZGV4IGViNjg1MDg5YjMuLmI1OWQ2ZTYy ZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC00Myw3ICs0Myw3IEBAIGNy ZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGJvb2wgaW1tZWRpYXRl bHlfcmVzZXJ2ZSwKIAkvKiBhY3F1aXJlIHJlcGxpY2F0aW9uIHNsb3QsIHRoaXMgd2lsbCBjaGVj ayBmb3IgY29uZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFtZSwg ZmFsc2UsCiAJCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQs IGZhbHNlLAotCQkJCQkJICBmYWxzZSk7CisJCQkJCQkgIGZhbHNlLCBTWU5DU0xPVF9TVEFURV9O T05FKTsKIAogCWlmIChpbW1lZGlhdGVseV9yZXNlcnZlKQogCXsKQEAgLTEzNiw3ICsxMzYsNyBA QCBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdp biwKIAkgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFtZSwgdHJ1ZSwKIAkJCQkJCSAgdGVt cG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2UsCi0JCQkJCQkg IGZhaWxvdmVyKTsKKwkJCQkJCSAgZmFpbG92ZXIsIFNZTkNTTE9UX1NUQVRFX05PTkUpOwogCiAJ LyoKIAkgKiBDcmVhdGUgbG9naWNhbCBkZWNvZGluZyBjb250ZXh0IHRvIGZpbmQgc3RhcnQgcG9p bnQgb3IsIGlmIHdlIGRvbid0CkBAIC0yMzcsNyArMjM3LDcgQEAgcGdfZHJvcF9yZXBsaWNhdGlv bl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3Rz KFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19D T0xTIDE2CisjZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE3CiAJUmV0dXJu U2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOwog CVhMb2dSZWNQdHIJY3VycmxzbjsKIAlpbnQJCQlzbG90bm87CkBAIC00MTgsMjEgKzQxOCwzNiBA QCBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJYnJlYWs7 CiAKIAkJCQljYXNlIFJTX0lOVkFMX1dBTF9SRU1PVkVEOgotCQkJCQl2YWx1ZXNbaSsrXSA9IENT dHJpbmdHZXRUZXh0RGF0dW0oIndhbF9yZW1vdmVkIik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0 cmluZ0dldFRleHREYXR1bShTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQpOwogCQkJCQlicmVh azsKIAogCQkJCWNhc2UgUlNfSU5WQUxfSE9SSVpPTjoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3Ry aW5nR2V0VGV4dERhdHVtKCJyb3dzX3JlbW92ZWQiKTsKKwkJCQkJdmFsdWVzW2krK10gPSBDU3Ry aW5nR2V0VGV4dERhdHVtKFNMT1RfSU5WQUxfSE9SSVpPTl9URVhUKTsKIAkJCQkJYnJlYWs7CiAK IAkJCQljYXNlIFJTX0lOVkFMX1dBTF9MRVZFTDoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5n R2V0VGV4dERhdHVtKCJ3YWxfbGV2ZWxfaW5zdWZmaWNpZW50Iik7CisJCQkJCXZhbHVlc1tpKytd ID0gQ1N0cmluZ0dldFRleHREYXR1bShTTE9UX0lOVkFMX1dBTF9MRVZFTF9URVhUKTsKIAkJCQkJ YnJlYWs7CiAJCQl9CiAJCX0KIAogCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2Nv bnRlbnRzLmRhdGEuZmFpbG92ZXIpOwogCisJCXN3aXRjaCAoc2xvdF9jb250ZW50cy5kYXRhLnN5 bmNfc3RhdGUpCisJCXsKKwkJCWNhc2UgU1lOQ1NMT1RfU1RBVEVfTk9ORToKKwkJCQl2YWx1ZXNb aSsrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oIm5vbmUiKTsKKwkJCQlicmVhazsKKworCQkJY2Fz ZSBTWU5DU0xPVF9TVEFURV9JTklUSUFURUQ6CisJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0 VGV4dERhdHVtKCJpbml0aWF0ZWQiKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBTWU5DU0xPVF9T VEFURV9SRUFEWToKKwkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oInJlYWR5 Iik7CisJCQkJYnJlYWs7CisJCX0KKwogCQlBc3NlcnQoaSA9PSBQR19HRVRfUkVQTElDQVRJT05f U0xPVFNfQ09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQs IHJzaW5mby0+c2V0RGVzYywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggNTgx NjVlYTYxNC4uOWQ4NzEwZjkwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAg LTEyMjQsNyArMTIyNCw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlv blNsb3RDbWQgKmNtZCkKIAl7CiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1l LCBmYWxzZSwKIAkJCQkJCQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVS U0lTVEVOVCwKLQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCQkJCQkJICBmYWxzZSwgZmFsc2Us IFNZTkNTTE9UX1NUQVRFX05PTkUpOwogCiAJCWlmIChyZXNlcnZlX3dhbCkKIAkJewpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xv dENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUs IHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVN RVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIpOworCQkJCQkJCSAgdHdvX3BoYXNl LCBmYWlsb3ZlciwgU1lOQ1NMT1RfU1RBVEVfTk9ORSk7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9u cyBjaGVjayBlYXJseSBzbyB0aGF0IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvaXBjaS5jCmluZGV4IGU1MTE5ZWQ1NWQuLjA0ZmVkMTAwN2UgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9pcGNpLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90 LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJu YWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZHNt LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKQEAgLTM0Miw2ICszNDMsNyBAQCBDcmVhdGVP ckF0dGFjaFNobWVtU3RydWN0cyh2b2lkKQogCVdhbFN1bW1hcml6ZXJTaG1lbUluaXQoKTsKIAlQ Z0FyY2hTaG1lbUluaXQoKTsKIAlBcHBseUxhdW5jaGVyU2htZW1Jbml0KCk7CisJU2xvdFN5bmNX b3JrZXJTaG1lbUluaXQoKTsKIAogCS8qCiAJICogU2V0IHVwIG90aGVyIG1vZHVsZXMgdGhhdCBu ZWVkIHNvbWUgc2hhcmVkIG1lbW9yeSBzcGFjZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDFlYWFmM2M2 YzUuLjE5YjA4YzFiNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwor KysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTMyODYsNiArMzI4NiwxNyBAQCBQ cm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCQkJICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJCX0KKwkJ ZWxzZSBpZiAoSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSkKKwkJeworCQkJZWxvZyhERUJVRzEs CisJCQkJICJyZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gZHVl IHRvIGFkbWluaXN0cmF0b3IgY29tbWFuZCIpOworCisJCQkvKgorCQkJICogU2xvdCBzeW5jIHdv cmtlciBjYW4gYmUgc3RvcHBlZCBhdCBhbnkgdGltZS4gVXNlIGV4aXQgc3RhdHVzIDEKKwkJCSAq IHNvIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBpcyByZXN0YXJ0ZWQuCisJCQkgKi8KKwkJCXByb2Nf ZXhpdCgxKTsKKwkJfQogCQllbHNlIGlmIChJc0JhY2tncm91bmRXb3JrZXIpCiAJCQllcmVwb3J0 KEZBVEFMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FETUlOX1NIVVRET1dOKSwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggMDg4ZWI5 NzdkNC4uYWVlNWZlNzMxNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKQEAgLTUzLDYgKzUzLDggQEAgTE9HSUNBTF9BUFBMWV9NQUlOCSJX YWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IHByb2Nlc3Mu IgogTE9HSUNBTF9MQVVOQ0hFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2Fs IHJlcGxpY2F0aW9uIGxhdW5jaGVyIHByb2Nlc3MuIgogTE9HSUNBTF9QQVJBTExFTF9BUFBMWV9N QUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVs IGFwcGx5IHByb2Nlc3MuIgogUkVDT1ZFUllfV0FMX1NUUkVBTQkiV2FpdGluZyBpbiBtYWluIGxv b3Agb2Ygc3RhcnR1cCBwcm9jZXNzIGZvciBXQUwgdG8gYXJyaXZlLCBkdXJpbmcgc3RyZWFtaW5n IHJlY292ZXJ5LiIKK1JFUExfU0xPVFNZTkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Yg c2xvdCBzeW5jIHdvcmtlci4iCitSRVBMX1NMT1RTWU5DX1BSSU1BUllfQ0FUQ0hVUAkiV2FpdGlu ZyBmb3IgdGhlIHByaW1hcnkgdG8gY2F0Y2gtdXAsIGluIHNsb3Qgc3luYyB3b3JrZXIuIgogU1lT TE9HR0VSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIHN5c2xvZ2dlciBwcm9jZXNzLiIK IFdBTF9SRUNFSVZFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBXQUwgcmVjZWl2ZXIg cHJvY2Vzcy4iCiBXQUxfU0VOREVSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCBz ZW5kZXIgcHJvY2Vzcy4iCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGU1M2Vi YzZkYzIuLjBmNWVjNjNkZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC02 OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNy ZXAuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbGFyZ2Vfb2JqZWN0LmgiCiAj aW5jbHVkZSAic3RvcmFnZS9wZ19zaG1lbS5oIgpAQCAtMjA0NCw2ICsyMDQ1LDE1IEBAIHN0cnVj dCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwK IAl9LAogCisJeworCQl7ImVuYWJsZV9zeW5jc2xvdCIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNB VElPTl9TVEFOREJZLAorCQkJZ2V0dGV4dF9ub29wKCJFbmFibGVzIGEgcGh5c2ljYWwgc3RhbmRi eSB0byBzeW5jaHJvbml6ZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGZyb20gdGhlIHByaW1hcnkg c2VydmVyLiIpLAorCQl9LAorCQkmZW5hYmxlX3N5bmNzbG90LAorCQlmYWxzZSwKKwkJTlVMTCwg TlVMTCwgTlVMTAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxM LCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIE5VTEwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBiMjgwOWM3 MTFhLi4xMzZiZTkxMmU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCkBAIC0zNjEsNiArMzYxLDcgQEAKICN3YWxfcmV0cmlldmVfcmV0cnlfaW50 ZXJ2YWwgPSA1cwkjIHRpbWUgdG8gd2FpdCBiZWZvcmUgcmV0cnlpbmcgdG8KIAkJCQkJIyByZXRy aWV2ZSBXQUwgYWZ0ZXIgYSBmYWlsZWQgYXR0ZW1wdAogI3JlY292ZXJ5X21pbl9hcHBseV9kZWxh eSA9IDAJCSMgbWluaW11bSBkZWxheSBmb3IgYXBwbHlpbmcgY2hhbmdlcyBkdXJpbmcgcmVjb3Zl cnkKKyNlbmFibGVfc3luY3Nsb3QgPSBvZmYJCQkjIGVuYWJsZXMgc2xvdCBzeW5jaHJvbml6YXRp b24gb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkgZnJvbSB0aGUgcHJpbWFyeQogCiAjIC0gU3Vic2Ny aWJlcnMgLQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBmNDA3MjZjNGY3Li5kN2M5ZmUz MWY4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExMTE1LDkgKzExMTE1LDkgQEAKICAg cHJvbmFtZSA9PiAncGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzJywgcHJvcm93cyA9PiAnMTAnLCBw cm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2Fs bGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQs cGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2x9JywKLSAgcHJvYXJnbW9kZXMg PT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0 aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNu LHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVhc29uLGZhaWxv dmVyfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9v bCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2wsdGV4 dH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s b30nLAorICBwcm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9p ZCx0ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9s c24sY29uZmlybWVkX2ZsdXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNl LGNvbmZsaWN0X3JlYXNvbixmYWlsb3ZlcixzeW5jX3N0YXRlfScsCiAgIHByb3NyYyA9PiAncGdf Z2V0X3JlcGxpY2F0aW9uX3Nsb3RzJyB9LAogeyBvaWQgPT4gJzM3ODYnLCBkZXNjciA9PiAnc2V0 IHVwIGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKICAgcHJvbmFtZSA9PiAncGdfY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCcsIHByb3ZvbGF0aWxlID0+ICd2JywKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCBiL3NyYy9pbmNsdWRlL3Bvc3Rt YXN0ZXIvYmd3b3JrZXIuaAppbmRleCAyMmZjNDllYzI3Li43MDkyZmM3MmM2IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9iZ3dvcmtlci5oCkBAIC03OSw2ICs3OSw3IEBAIHR5cGVkZWYgZW51bQogCUJnV29y a2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0LAogCUJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRl LAogCUJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZCwKKwlCZ1dvcmtlclN0YXJ0X0NvbnNp c3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5LAogfSBCZ1dvcmtlclN0YXJ0VGltZTsKIAogI2RlZmluZSBC R1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMCTYwCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dp Y2Fsd29ya2VyLmgKaW5kZXggYTE4ZDc5ZDFiMi4uYmJlMDQyMjZkYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaApAQCAtMjIsNiArMjIsNyBAQCBleHRlcm4gdm9pZCBU YWJsZXN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKIAogZXh0ZXJuIGJvb2wgSXNMb2dp Y2FsV29ya2VyKHZvaWQpOwogZXh0ZXJuIGJvb2wgSXNMb2dpY2FsUGFyYWxsZWxBcHBseVdvcmtl cih2b2lkKTsKK2V4dGVybiBib29sIElzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpOwogCiBl eHRlcm4gdm9pZCBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZUludGVycnVwdCh2b2lkKTsKIGV4 dGVybiB2b2lkIEhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdlcyh2b2lkKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Nsb3QuaAppbmRleCA1ODVjY2JiNTA0Li5iMzEwYjgwOWM0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xv dC5oCkBAIC01Miw2ICs1MiwyMiBAQCB0eXBlZGVmIGVudW0gUmVwbGljYXRpb25TbG90SW52YWxp ZGF0aW9uQ2F1c2UKIAlSU19JTlZBTF9XQUxfTEVWRUwsCiB9IFJlcGxpY2F0aW9uU2xvdEludmFs aWRhdGlvbkNhdXNlOwogCisvKgorICogVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJ2NvbmZsaWN0 X3JlYXNvbicgcmV0dXJuZWQgaW4KKyAqIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cy4KKyAqLwor I2RlZmluZSBTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQgIndhbF9yZW1vdmVkIgorI2RlZmlu ZSBTTE9UX0lOVkFMX0hPUklaT05fVEVYVCAgICAgInJvd3NfcmVtb3ZlZCIKKyNkZWZpbmUgU0xP VF9JTlZBTF9XQUxfTEVWRUxfVEVYVCAgICJ3YWxfbGV2ZWxfaW5zdWZmaWNpZW50IgorCisvKiBU aGUgcG9zc2libGUgdmFsdWVzIGZvciAnc3luY19zdGF0ZScgaW4gUmVwbGljYXRpb25TbG90UGVy c2lzdGVudERhdGEgKi8KKyNkZWZpbmUgU1lOQ1NMT1RfU1RBVEVfTk9ORSAgICAgICAgICAnbicJ LyogTm9uZSBmb3IgdXNlciBjcmVhdGVkIHNsb3RzICovCisjZGVmaW5lIFNZTkNTTE9UX1NUQVRF X0lOSVRJQVRFRCAgICAgJ2knCS8qIFN5bmMgaW5pdGlhdGVkIGZvciB0aGUgc2xvdCBidXQKKwkJ CQkJCQkJCQkJICogbm90IGNvbXBsZXRlZCB5ZXQsIHdhaXRpbmcgZm9yCisJCQkJCQkJCQkJCSAq IHRoZSBwcmltYXJ5IHNlcnZlciB0byBjYXRjaC11cCAqLworI2RlZmluZSBTWU5DU0xPVF9TVEFU RV9SRUFEWSAgICAgICAgICdyJwkvKiBJbml0aWFsaXphdGlvbiBjb21wbGV0ZSwgcmVhZHkKKwkJ CQkJCQkJCQkJICogdG8gYmUgc3luY2VkIGZ1cnRoZXIgKi8KKwogLyoKICAqIE9uLURpc2sgZGF0 YSBvZiBhIHJlcGxpY2F0aW9uIHNsb3QsIHByZXNlcnZlZCBhY3Jvc3MgcmVzdGFydHMuCiAgKi8K QEAgLTExMiw2ICsxMjgsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90UGVyc2lz dGVudERhdGEKIAkvKiBwbHVnaW4gbmFtZSAqLwogCU5hbWVEYXRhCXBsdWdpbjsKIAorCS8qCisJ ICogU3luY2hyb25pemF0aW9uIHN0YXRlIGZvciBhIGxvZ2ljYWwgc2xvdC4KKwkgKgorCSAqIFRo ZSBzdGFuZGJ5IGNhbiBoYXZlIGFueSB2YWx1ZSBhbW9uZyB0aGUgcG9zc2libGUgdmFsdWVzIG9m ICdpJywncicgYW5kCisJICogJ24nLiBGb3IgcHJpbWFyeSwgdGhlIGRlZmF1bHQgaXMgJ24nIGZv ciBhbGwgc2xvdHMgYnV0IG1heSBhbHNvIGJlICdyJworCSAqIGlmIGxlZnRvdmVyIGZyb20gYSBw cm9tb3RlZCBzdGFuZGJ5LgorCSAqLworCWNoYXIJCXN5bmNfc3RhdGU7CisKIAkvKgogCSAqIElz IHRoaXMgYSBmYWlsb3ZlciBzbG90IChzeW5jIGNhbmRpZGF0ZSBmb3IgcGh5c2ljYWwgc3RhbmRi eXMpPyBPbmx5CiAJICogcmVsZXZhbnQgZm9yIGxvZ2ljYWwgc2xvdHMgb24gdGhlIHByaW1hcnkg c2VydmVyLgpAQCAtMjI0LDkgKzI0OSwxMSBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3Rz U2htZW1Jbml0KHZvaWQpOwogLyogbWFuYWdlbWVudCBvZiBpbmRpdmlkdWFsIHNsb3RzICovCiBl eHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBk Yl9zcGVjaWZpYywKIAkJCQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0 ZW5jeSwKLQkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CisJCQkJCQkJ CSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIsCisJCQkJCQkJCSAgY2hhciBzeW5jX3N0 YXRlKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3Qodm9pZCk7CiBleHRlcm4g dm9pZCBSZXBsaWNhdGlvblNsb3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KTsK K2V4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKTsKIGV4dGVybiB2 b2lkIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92ZXIp OwogCiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBY3F1aXJlKGNvbnN0IGNoYXIgKm5hbWUs IGJvb2wgbm93YWl0KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJl Y2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCmluZGV4IGY1 NjZhOTliYTEuLjlmNzhmZDFlNWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIu aApAQCAtMjc5LDYgKzI3OSwyMSBAQCB0eXBlZGVmIHZvaWQgKCp3YWxyY3ZfZ2V0X3NlbmRlcmlu Zm9fZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiB0eXBlZGVmIGNoYXIgKigqd2FscmN2X2lk ZW50aWZ5X3N5c3RlbV9mbikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJCQkJVGlt ZUxpbmVJRCAqcHJpbWFyeV90bGkpOwogCisvKgorICogd2FscmN2X2dldF9kYmluZm9fZm9yX2Zh aWxvdmVyX3Nsb3RzX2ZuCisgKgorICogUnVuIExJU1RfREJJRF9GT1JfRkFJTE9WRVJfU0xPVFMg b24gcHJpbWFyeSBzZXJ2ZXIgdG8gZ2V0IHRoZQorICogbGlzdCBvZiB1bmlxdWUgREJJRHMgZm9y IGZhaWxvdmVyIGxvZ2ljYWwgc2xvdHMKKyAqLwordHlwZWRlZiBMaXN0ICooKndhbHJjdl9nZXRf ZGJpbmZvX2Zvcl9mYWlsb3Zlcl9zbG90c19mbikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubik7CisK Ky8qCisgKiB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvX2ZuCisgKgorICogUmV0dXJu cyB0aGUgZGJpZCBmcm9tIHRoZSBwcmltYXJ5X2Nvbm5pbmZvCisgKi8KK3R5cGVkZWYgY2hhciAq KCp3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvX2ZuKSAoY29uc3QgY2hhciAqY29ubmlu Zm8pOworCiAvKgogICogd2FscmN2X3NlcnZlcl92ZXJzaW9uX2ZuCiAgKgpAQCAtNDAzLDYgKzQx OCw3IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCXdhbHJjdl9n ZXRfY29ubmluZm9fZm4gd2FscmN2X2dldF9jb25uaW5mbzsKIAl3YWxyY3ZfZ2V0X3NlbmRlcmlu Zm9fZm4gd2FscmN2X2dldF9zZW5kZXJpbmZvOwogCXdhbHJjdl9pZGVudGlmeV9zeXN0ZW1fZm4g d2FscmN2X2lkZW50aWZ5X3N5c3RlbTsKKwl3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZv X2ZuIHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm87CiAJd2FscmN2X3NlcnZlcl92ZXJz aW9uX2ZuIHdhbHJjdl9zZXJ2ZXJfdmVyc2lvbjsKIAl3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9y eWZpbGVfZm4gd2FscmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxlOwogCXdhbHJjdl9zdGFydHN0 cmVhbWluZ19mbiB3YWxyY3Zfc3RhcnRzdHJlYW1pbmc7CkBAIC00MjgsNiArNDQ0LDggQEAgZXh0 ZXJuIFBHRExMSU1QT1JUIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSAqV2FsUmVjZWl2ZXJGdW5j dGlvbnM7CiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9nZXRfc2VuZGVyaW5mbyhjb25u LCBzZW5kZXJfaG9zdCwgc2VuZGVyX3BvcnQpCiAjZGVmaW5lIHdhbHJjdl9pZGVudGlmeV9zeXN0 ZW0oY29ubiwgcHJpbWFyeV90bGkpIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2lk ZW50aWZ5X3N5c3RlbShjb25uLCBwcmltYXJ5X3RsaSkKKyNkZWZpbmUgd2FscmN2X2dldF9kYm5h bWVfZnJvbV9jb25uaW5mbyhjb25uaW5mbykgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxy Y3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKGNvbm5pbmZvKQogI2RlZmluZSB3YWxyY3Zfc2Vy dmVyX3ZlcnNpb24oY29ubikgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3Zfc2VydmVy X3ZlcnNpb24oY29ubikKICNkZWZpbmUgd2FscmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxlKGNv bm4sIHRsaSwgZmlsZW5hbWUsIGNvbnRlbnQsIHNpemUpIFwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd29ya2VyX2ludGVybmFsLmgKaW5kZXggNGUxZjZlN2RmOS4uZTA4ZTQ4ZGViYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTIzNyw2ICsyMzcsMTEg QEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgaW5fcmVtb3RlX3RyYW5zYWN0aW9uOwogCiBleHRl cm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFsaXppbmdBcHBseVdvcmtlcjsKIAorLyogU2xvdCBz eW5jIHdvcmtlciBvYmplY3RzICovCitleHRlcm4gUEdETExJTVBPUlQgY2hhciAqUHJpbWFyeUNv bm5JbmZvOworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKlByaW1hcnlTbG90TmFtZTsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9zeW5jc2xvdDsKKwogZXh0ZXJuIHZvaWQgbG9naWNh bHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICps b2dpY2FscmVwX3dvcmtlcl9maW5kKE9pZCBzdWJpZCwgT2lkIHJlbGlkLAogCQkJCQkJCQkJCQkJ Ym9vbCBvbmx5X3J1bm5pbmcpOwpAQCAtMzI2LDYgKzMzMSwxMiBAQCBleHRlcm4gdm9pZCBwYV9k ZWNyX2FuZF93YWl0X3N0cmVhbV9ibG9jayh2b2lkKTsKIGV4dGVybiB2b2lkIHBhX3hhY3RfZmlu aXNoKFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZvICp3aW5mbywKIAkJCQkJCSAgIFhMb2dSZWNQdHIg cmVtb3RlX2xzbik7CiAKK2V4dGVybiB2b2lkIFJlcGxTbG90U3luY1dvcmtlck1haW4oRGF0dW0g bWFpbl9hcmcpOworZXh0ZXJuIHZvaWQgU2xvdFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKTsKK2V4 dGVybiB2b2lkIFNodXREb3duU2xvdFN5bmModm9pZCk7CitleHRlcm4gdm9pZCBzbG90c3luY19k cm9wX2luaXRpYXRlZF9zbG90cyh2b2lkKTsKK2V4dGVybiB2b2lkIFNsb3RTeW5jV29ya2VyU2ht ZW1Jbml0KHZvaWQpOworCiAjZGVmaW5lIGlzUGFyYWxsZWxBcHBseVdvcmtlcih3b3JrZXIpICgo d29ya2VyKS0+aW5fdXNlICYmIFwKIAkJCQkJCQkJCSAgICh3b3JrZXIpLT50eXBlID09IFdPUktF UlRZUEVfUEFSQUxMRUxfQVBQTFkpCiAjZGVmaW5lIGlzVGFibGVzeW5jV29ya2VyKHdvcmtlcikg KCh3b3JrZXIpLT5pbl91c2UgJiYgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w NTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w NTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCmluZGV4IDc5NmJmMGE0YWYuLmM1NWEy ODVjYTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92 ZXJfc2xvdHNfc3luYy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2Zh aWxvdmVyX3Nsb3RzX3N5bmMucGwKQEAgLTk3LDYgKzk3LDE4OSBAQCBvayggJHB1Ymxpc2hlci0+ cG9sbF9xdWVyeV91bnRpbCgKIAkJIlNFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9u X3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JzsiKSwKIAknbG9naWNhbCBzbG90 IGhhcyBmYWlsb3ZlciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsKIAotJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIik7 CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKKyMgQ29uZmlndXJlIHN0 YW5kYnkxIHRvIHJlcGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1 cmVkCisjIGZvciBmYWlsb3ZlciBvbiB0aGUgcHJpbWFyeQorIworIyAgICAgICAgICAgICAgZmFp bG92ZXIgc2xvdCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlh IGxvZ2ljYWwgcmVwbGljYXRpb24pCisjIHByaW1hcnkgLS0tPiAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyMgICAgICAgICAgICAgIHBoeXNpY2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0t PiBzdGFuZGJ5MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24pCisjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGxzdWIx X3Nsb3Qoc3luY2VkX3Nsb3QpCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitteSAkcHJpbWFyeSA9ICRwdWJsaXNoZXI7CitteSAkYmFja3VwX25h bWUgPSAnYmFja3VwJzsKKyRwcmltYXJ5LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyBDcmVh dGUgYSBzdGFuZGJ5CitteSAkc3RhbmRieTEgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5u ZXcoJ3N0YW5kYnkxJyk7Ciskc3RhbmRieTEtPmluaXRfZnJvbV9iYWNrdXAoCisJJHByaW1hcnks ICRiYWNrdXBfbmFtZSwKKwloYXNfc3RyZWFtaW5nID0+IDEsCisJaGFzX3Jlc3RvcmluZyA9PiAx KTsKKworbXkgJGNvbm5zdHJfMSA9ICRwcmltYXJ5LT5jb25uc3RyOworJHN0YW5kYnkxLT5hcHBl bmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitlbmFibGVfc3luY3Nsb3QgPSB0cnVl Citob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCitwcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFfc2xv dCcKK3ByaW1hcnlfY29ubmluZm8gPSAnJGNvbm5zdHJfMSBkYm5hbWU9cG9zdGdyZXMnCispKTsK KworJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2lj YWxfcmVwbGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9KTsKKworbXkgJHN0YW5kYnkxX2Nvbm5p bmZvID0gJHN0YW5kYnkxLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIFdhaXQg Zm9yIHRoZSBzdGFuZGJ5IHRvIHN0YXJ0IHN5bmMKK215ICRvZmZzZXQgPSAtcyAkc3RhbmRieTEt PmxvZ2ZpbGU7Ciskc3RhbmRieTEtPnN0YXJ0OworJHN0YW5kYnkxLT53YWl0X2Zvcl9sb2coCisJ cXIvTE9HOiAoIFtBLVowLTldKzopPyB3YWl0aW5nIGZvciByZW1vdGUgc2xvdCBcImxzdWIxX3Ns b3RcIi8sCisJJG9mZnNldCk7CisKKyMgQWR2YW5jZSBsc24gb24gdGhlIHByaW1hcnkKKyRwcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBnX2xvZ19zdGFuZGJ5X3NuYXBz aG90KCk7CisJIFNFTEVDVCBwZ19sb2dfc3RhbmRieV9zbmFwc2hvdCgpOworCSBTRUxFQ1QgcGdf bG9nX3N0YW5kYnlfc25hcHNob3QoKTsiKTsKKworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0byBm aW5pc2ggc3luYworJG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRzdGFuZGJ5MS0+ d2FpdF9mb3JfbG9nKAorCXFyL0xPRzogKCBbQS1aMC05XSs6KT8gd2FpdCBvdmVyIGZvciByZW1v dGUgc2xvdCBcImxzdWIxX3Nsb3RcIi8sCisJJG9mZnNldCk7CisKKyMgQ29uZmlybSB0aGF0IGxv Z2ljYWwgZmFpbG92ZXIgc2xvdCBpcyBjcmVhdGVkIG9uIHRoZSBzdGFuZGJ5IGFuZCBpcyBzeW5j CisjIHJlYWR5LgoraXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVD VCBmYWlsb3Zlciwgc3luY19zdGF0ZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNs b3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9KSwKKwkidHxyZWFkeSIsCisJJ2xvZ2ljYWwgc2xvdCBo YXMgZmFpbG92ZXIgYXMgdHJ1ZSBhbmQgc3luY19zdGF0ZSBhcyByZWFkeSBvbiBzdGFuZGJ5Jyk7 CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IFRlc3QgdG8gY29uZmlybSB0aGF0IHJlc3RhcnRfbHNuIGFuZCBjb25maXJtZWRfZmx1c2hfbHNu IG9mIHRoZSBsb2dpY2FsIHNsb3QKKyMgb24gdGhlIHByaW1hcnkgaXMgc3luY2VkIHRvIHRoZSBz dGFuZGJ5CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCisjIEluc2VydCBkYXRhIG9uIHRoZSBwcmltYXJ5CiskcHJpbWFyeS0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxWworCVRSVU5DQVRFIFRBQkxFIHRhYl9pbnQ7CisJSU5TRVJUIElOVE8g dGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKTsKK10pOworCiskcHJpbWFyeS0+ d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKworIyBEbyBub3QgYWxsb3cgYW55 IGZ1cnRoZXIgYWR2YW5jZW1lbnQgb2YgdGhlIHJlc3RhcnRfbHNuIGFuZAorIyBjb25maXJtZWRf Zmx1c2hfbHNuIGZvciB0aGUgbHN1YjFfc2xvdC4KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgRElTQUJMRSIpOwor CisjIFdhaXQgZm9yIHRoZSByZXBsaWNhdGlvbiBzbG90IHRvIGJlY29tZSBpbmFjdGl2ZSBvbiB0 aGUgcHVibGlzaGVyCiskcHJpbWFyeS0+cG9sbF9xdWVyeV91bnRpbCgKKwkncG9zdGdyZXMnLAor CSJTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdI RVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JyBBTkQgYWN0aXZlPSdmJyIsCisJMSk7CisKKyMg R2V0IHRoZSByZXN0YXJ0X2xzbiBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBsc3ViMV9zbG90IG9uIHRo ZSBwcmltYXJ5CitteSAkcHJpbWFyeV9yZXN0YXJ0X2xzbiA9ICRwcmltYXJ5LT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUIHJlc3RhcnRfbHNuIGZyb20gcGdfcmVwbGljYXRpb25fc2xv dHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnOyIpOworCisjIEdldCB0aGUgY29uZmly bWVkX2ZsdXNoX2xzbiBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBsc3ViMV9zbG90IG9uIHRoZSBwcmlt YXJ5CitteSAkcHJpbWFyeV9mbHVzaF9sc24gPSAkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb25maXJtZWRfZmx1c2hfbHNuIGZyb20gcGdfcmVwbGljYXRpb25fc2xv dHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnOyIpOworCisjIENvbmZpcm0gdGhhdCBy ZXN0YXJ0X2xzbiBhbmQgb2YgY29uZmlybWVkX2ZsdXNoX2xzbiBsc3ViMV9zbG90IHNsb3QgYXJl IHN5bmNlZAorIyB0byB0aGUgc3RhbmRieQorb2soICRzdGFuZGJ5MS0+cG9sbF9xdWVyeV91bnRp bCgKKwkJJ3Bvc3RncmVzJywKKwkJIlNFTEVDVCAnJHByaW1hcnlfcmVzdGFydF9sc24nID0gcmVz dGFydF9sc24gQU5EICckcHJpbWFyeV9mbHVzaF9sc24nID0gY29uZmlybWVkX2ZsdXNoX2xzbiBm cm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzsi KSwKKwkncmVzdGFydF9sc24gYW5kIGNvbmZpcm1lZF9mbHVzaF9sc24gb2Ygc2xvdCBsc3ViMV9z bG90IHN5bmNlZCB0byBzdGFuZGJ5Jyk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgdGhhdCBhIHN5bmNocm9uaXplZCBzbG90IGNh biBub3QgYmUgZGVjb2RlZCwgYWx0ZXJlZCBvciBkcm9wcGVkIGJ5IHRoZSB1c2VyCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIERpc2FibGUg aG90X3N0YW5kYnlfZmVlZGJhY2sgdGVtcG9yYXJpbHkgdG8gc3RvcCBzbG90IHN5bmMgd29ya2Vy IG90aGVyd2lzZQorIyB0aGUgY29uY2VybmVkIHRlc3Rpbmcgc2NlbmFyaW9zIGhlcmUgbWF5IGJl IGludGVycnVwdGVkIGJ5IGRpZmZlcmVudCBlcnJvcjoKKyMgJ0VSUk9SOiAgcmVwbGljYXRpb24g c2xvdCBpcyBhY3RpdmUgZm9yIFBJRCAuLicKKworJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmY7Jyk7Cisk c3RhbmRieTEtPnJlc3RhcnQ7CisKKyMgQXR0ZW1wdGluZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVj b2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCitteSAoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKKwki c2VsZWN0ICogZnJvbSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2xzdWIxX3Nsb3QnLE5V TEwsTlVMTCk7Iik7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNhbm5vdCB1c2UgcmVwbGljYXRp b24gc2xvdCAibHN1YjFfc2xvdCIgZm9yIGxvZ2ljYWwgZGVjb2RpbmcvLAorCSJsb2dpY2FsIGRl Y29kaW5nIGlzIG5vdCBhbGxvd2VkIG9uIHN5bmNlZCBzbG90Iik7CisKKyMgQXR0ZW1wdGluZyB0 byBhbHRlciBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IKKygkcmVzdWx0 LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgKKyAgICAncG9zdGdyZXMnLAor ICAgIHFxW0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QgbHN1YjFfc2xvdCAoZmFpbG92ZXIpO10sCisg ICAgcmVwbGljYXRpb24gPT4gJ2RhdGFiYXNlJyk7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNh bm5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8sCisJInN5bmNlZCBzbG90 IG9uIHN0YW5kYnkgY2Fubm90IGJlIGFsdGVyZWQiKTsKKworIyBBdHRlbXB0aW5nIHRvIGRyb3Ag YSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCisoJHJlc3VsdCwgJHN0ZG91 dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBnX2Ry b3BfcmVwbGljYXRpb25fc2xvdCgnbHN1YjFfc2xvdCcpOyIpOworb2soJHN0ZGVyciA9fiAvRVJS T1I6ICBjYW5ub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8sCisJInN5bmNl ZCBzbG90IG9uIHN0YW5kYnkgY2Fubm90IGJlIGRyb3BwZWQiKTsKKworIyBFbmFibGUgaG90X3N0 YW5kYnlfZmVlZGJhY2sgYW5kIHJlc3RhcnQgc3RhbmRieQorJHN0YW5kYnkxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbjsn KTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ3JlYXRlIGFub3RoZXIgc2xvdCB3aGljaCBzdGF5cyBp biBzeW5jX3N0YXRlIGFzICdpbml0aWF0ZWQnCisjIGJlY2F1c2UgaXQncyBhIG1hbnVhbGx5IGNy ZWF0ZWQgc2xvdCBhbmQgaXRzIGxzbiBpcyBub3QgYWR2YW5jZWQuCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENyZWF0ZSBhIGxvZ2ljYWwg c2xvdCB3aXRoIGZhaWxvdmVyID0gdHJ1ZQorJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKKwkJ cXtTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnbG9naWNhbF9zbG90 JywncGdvdXRwdXQnLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7fSk7CisKKyMgV2FpdCBmb3IgdGhlIHN0 YW5kYnkgdG8gc3RhcnQgc3luYworJG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRz dGFuZGJ5MS0+d2FpdF9mb3JfbG9nKAorCXFyL0xPRzogKCBbQS1aMC05XSs6KT8gd2FpdGluZyBm b3IgcmVtb3RlIHNsb3QgXCJsb2dpY2FsX3Nsb3RcIi8sCisJJG9mZnNldCk7CisKKyMgQ29uZmly bSB0aGF0IHRoZSBsb2dpY2FsIHNsb3QgaXMgY3JlYXRlZCBvbiB0aGUgc3RhbmRieSBhbmQgaXMg aW4gc3luYyBpbml0aWF0ZWQgc3RhdGUKKyAgaXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwlxe1NFTEVDVCBmYWlsb3Zlciwgc3luY19zdGF0ZSBGUk9NIHBnX3JlcGxpY2F0aW9u X3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsb2dpY2FsX3Nsb3QnO30pLAorCSJ0fGluaXRpYXRl ZCIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgYXMgdHJ1ZSBhbmQgc3luY19zdGF0ZSBh cyBpbml0aWF0ZWQgb24gc3RhbmRieScpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBQcm9tb3RlIHRoZSBzdGFuZGJ5MSB0byBwcmltYXJ5 LiBDb25maXJtIHRoYXQ6CisjIGEpIHRoZSAncmVhZHknIHNsb3QgJ2xzdWIxX3Nsb3QnIGlzIHJl dGFpbmVkIG9uIHRoZSBuZXcgcHJpbWFyeQorIyBiKSB0aGUgJ2luaXRpYXRlZCcgc2xvdCAnbG9n aWNhbF9zbG90JyBpcyBkcm9wcGVkIG9uIHByb21vdGlvbgorIyBjKSBsb2dpY2FsIHJlcGxpY2F0 aW9uIGZvciByZWdyZXNzX215c3ViMSBpcyByZXN1bWVkIHN1Y2Nlc3NmdWxseSBhZnRlciBmYWls b3ZlcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyRzdGFuZGJ5MS0+cHJvbW90ZTsKKworIyBVcGRhdGUgc3Vic2NyaXB0aW9uIHdpdGggdGhlIG5l dyBwcmltYXJ5J3MgY29ubmVjdGlvbiBpbmZvCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAn JHN0YW5kYnkxX2Nvbm5pbmZvJzsKKwkgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIx IEVOQUJMRTsgIik7CisKK2lzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtT RUxFQ1Qgc2xvdF9uYW1lIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1l IGluICgnbG9naWNhbF9zbG90JywnbHN1YjFfc2xvdCcpO30pLAorCSdsc3ViMV9zbG90JywKKwkn c3luY2VkIHNsb3QgcmV0YWluZWQgb24gdGhlIG5ldyBwcmltYXJ5Jyk7CisKKyMgSW5zZXJ0IGRh dGEgb24gdGhlIG5ldyBwcmltYXJ5Ciskc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTEsIDIwKTsiKTsK KyRzdGFuZGJ5MS0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKworIyBDb25m aXJtIHRoYXQgZGF0YSBpbiB0YWJfaW50IHJlcGxpY2F0ZWQgb24gc3Vic2NyaWJlcgoraXMoICRz dWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGNvdW50KCopIEZST00g dGFiX2ludDt9KSwKKwkiMjAiLAorCSdkYXRhIHJlcGxpY2F0ZWQgZnJvbSB0aGUgbmV3IHByaW1h cnknKTsKIAogZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cmlu ZGV4IGFjYzIzMzliNDkuLmY1Y2NiZjljY2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0CkBAIC0xNDc0LDggKzE0NzQsOSBAQCBwZ19yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIGwu c2xvdF9uYW1lLAogICAgIGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKICAgICBs LmNvbmZsaWN0X3JlYXNvbiwKLSAgICBsLmZhaWxvdmVyCi0gICBGUk9NIChwZ19nZXRfcmVwbGlj YXRpb25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVt cG9yYXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9s c24sIGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19w aGFzZSwgY29uZmxpY3RfcmVhc29uLCBmYWlsb3ZlcikKKyAgICBsLmZhaWxvdmVyLAorICAgIGwu c3luY19zdGF0ZQorICAgRlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25h bWUsIHBsdWdpbiwgc2xvdF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVf cGlkLCB4bWluLCBjYXRhbG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNu LCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbiwg ZmFpbG92ZXIsIHN5bmNfc3RhdGUpCiAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBkIE9OICgo bC5kYXRvaWQgPSBkLm9pZCkpKTsKIHBnX3JvbGVzfCBTRUxFQ1QgcGdfYXV0aGlkLnJvbG5hbWUs CiAgICAgcGdfYXV0aGlkLnJvbHN1cGVyLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdz Lm91dAppbmRleCAyNzEzMTNlYmY4Li5hYWM4Mzc1NWRlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N5c3ZpZXdzLm91dApAQCAtMTMyLDggKzEzMiw5IEBAIHNlbGVjdCBuYW1lLCBzZXR0aW5n IGZyb20gcGdfc2V0dGluZ3Mgd2hlcmUgbmFtZSBsaWtlICdlbmFibGUlJzsKICBlbmFibGVfc2Vs Zl9qb2luX3JlbW92YWwgICAgICAgfCBvbgogIGVuYWJsZV9zZXFzY2FuICAgICAgICAgICAgICAg ICB8IG9uCiAgZW5hYmxlX3NvcnQgICAgICAgICAgICAgICAgICAgIHwgb24KKyBlbmFibGVfc3lu Y3Nsb3QgICAgICAgICAgICAgICAgfCBvZmYKICBlbmFibGVfdGlkc2NhbiAgICAgICAgICAgICAg ICAgfCBvbgotKDIyIHJvd3MpCisoMjMgcm93cykKIAogLS0gVGhlcmUgYXJlIGFsd2F5cyB3YWl0 IGV2ZW50IGRlc2NyaXB0aW9ucyBmb3IgdmFyaW91cyB0eXBlcy4KIHNlbGVjdCB0eXBlLCBjb3Vu dCgqKSA+IDAgYXMgb2sgRlJPTSBwZ193YWl0X2V2ZW50cwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAppbmRleCA5YjY3OTg2OTE0Li5iODNmMjE0M2NkIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dApAQCAtMjMyMSw2ICsyMzIxLDcgQEAgUmVsb2NhdGlvbkJ1ZmZlckluZm8KIFJlbHB0ckZyZWVQ YWdlQnRyZWUKIFJlbHB0ckZyZWVQYWdlTWFuYWdlcgogUmVscHRyRnJlZVBhZ2VTcGFuTGVhZGVy CitSZW1vdGVTbG90CiBSZW5hbWVTdG10CiBSZW9wZW5QdHJUeXBlCiBSZW9yZGVyQnVmZmVyCkBA IC0yNTgxLDYgKzI1ODIsNyBAQCBTbGFiQmxvY2sKIFNsYWJDb250ZXh0CiBTbGFiU2xvdAogU2xv dE51bWJlcgorU2xvdFN5bmNXb3JrZXJDdHgKIFNscnVDdGwKIFNscnVDdGxEYXRhCiBTbHJ1RXJy b3JDYXVzZQotLSAKMi4zNC4xCgo= --000000000000705ebc060e1792db--