Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnseu-00CxOp-0P for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 06:16:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnset-00FZpm-0E for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 06:16:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnses-00FZpe-1B for pgsql-hackers@lists.postgresql.org; Thu, 05 Feb 2026 06:16:06 +0000 Received: from mail-vs1-xe36.google.com ([2607:f8b0:4864:20::e36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vnseo-00000000dg9-1AJ4 for pgsql-hackers@postgresql.org; Thu, 05 Feb 2026 06:16:05 +0000 Received: by mail-vs1-xe36.google.com with SMTP id ada2fe7eead31-5f9d5b8bb49so73500137.2 for ; Wed, 04 Feb 2026 22:16:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770272161; cv=none; d=google.com; s=arc-20240605; b=NiOdzWTACP/xzXm6EoLRK24Xa41SnnjXU4oNV8oNr+L75frT5Fdi76hnxpFXXl0W0O lhSAjiDURZhtlVJre5xJwLRaIcY6Bv4kaquDc8sD8Zljx0S96ScV0w8X8iijU/9Tz8CJ VIegXyJzrUNWgGDCQfBzJ+9Q8vvA405ISGnqHdjNfuqXxF82Kn7LCyIODdDgtnF/hFZ4 dNEcfiRgO/W+pa9WmX5U/4ls/8Dnq/jkK7tnfDbrg5dLdIuOONTUintaNoE9RrTa74xW yrW21Y9sbQyynIvZq4/G12fbkpeZe4Pa6vn1rkyK5p55OaIQ9D9BCOVbL6ByeFZIWJN6 YH4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=om6Fa+RE4cUVLNOKyJa/EKN1y9Wk84OFlNoxQWU+Fuk=; fh=jYGBR3BPoE7WZqiAM+PfF+QUk/osH7cq6PCxXONt75w=; b=lXoNnet5IRWy5fqXYrfK/NmGNtr/fkBxY01DHaPQEFZz+r0uycxTF2V9KECR+XSnvL /YDNmzG/QyvhobDUw4vvBDY5/oPGH/G5SSPWS990vNSHqvDkbUAiODC9UNjXqA/aG7zD +3oo46hfEhq7ymHBG7YAEJtOLX6O5Yghin3BCUVh5KaT1RXrr/iLN6QZHHObdZw9RECS tZwS1vrg2VH1pEZUhu0TxeRI/M499Ll5b4ckjvTsWo+uV5i4Smp+2I4Lfgv2uIJPRQyc xisejN9drWHMuDCjTNnIaz6GiizVign9opfNK07EPXpWBXwrmx/hVRkTM3EItggxkZNm +5dQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770272161; x=1770876961; 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=om6Fa+RE4cUVLNOKyJa/EKN1y9Wk84OFlNoxQWU+Fuk=; b=SeAlHDbj3mU11bXNu6xKkL6EgWWWnJaSNq8abWrU39ZW4Ri03NcI5SVo5XEZF3vJ7l l2yCCLglYPNY3IJCu4maCHQKAVTFcQwCFQI8JUQXE5Ax/I+RfDcu/WDibTHQIPsIlV4O oWxXwj2n7syeV5WwrrXHt8p/MPbEnlEmGt5GR90mnRZeszTig0vI+tOGWED4ZHYbiGQy K/st1GCG1C5WZMLnSLeK3OtTfDRPRcS7zruVdRqF2IrwjgWcsuaAX780rNfcH2N4eGWu 0WtYa2c/jK4SI+WkaTase+fsgA5zOa5hFOarD7DgXe+WUq3+I7IR1VY4wBDjLzkdPM0k prsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770272161; x=1770876961; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=om6Fa+RE4cUVLNOKyJa/EKN1y9Wk84OFlNoxQWU+Fuk=; b=tHi+g8oolfV9GYNyU9SVbWaMUoznVYYvF2ECkwjMwmaF5rbflgB2gXFBW2Sz2Eo0hb 74unonBFimxwO/S9W8CzcDM+5iX1kxhMzZwHsszPlrmrm5MObHs/Y+PqHGThrsppECWn baf+ewtmWEmqSOZuJzuYbgP55g6JPyFAIFGs8kOrjXPsKBXCh+Zx2ueYpQicFuSS+ZTO iE6UaY1i27oyc+CWOilz6O5ujmJJu6xBWZFLpUZwm5h7DloKKjrsLTRzDpwgMo0OEqAX 4GXnETLiIdzSWyketCPIJg1HhHkMOlqm7PAc/B0h/I/850PjXTvNDN+teAU+pADYn1BC moSA== X-Forwarded-Encrypted: i=1; AJvYcCXHQDaOHdyRHaMB6CqYRKZpgHc0ZQZIaMaCfQ38fphlzheXSqZe1tNxN7JXfj6PPMP+JneAG1Rji4xP+JdK@postgresql.org X-Gm-Message-State: AOJu0YwSosz39GeeifHKrB+BhGon5PH1a+6f44hwQfPoUj7TvmQ2ff1l UphmCJGGHtKVRFE5tFli1FTqLuiuQnbQ/EHMkpK5yMu+MxrQDYErnfFj0o89rr+b7LJgjo7deAu HLtkuEkiHvHcjWqizZO/3iJqJittzAGs= X-Gm-Gg: AZuq6aIkFEpUxqM3kZm33SoYrhGnSxB+0Bg/HAY6BXQbejsgKgkIYuvSsUp2ckU41P3 Isv88JcAPCVUzCFcLLcHDTaojVLexIdnLeaok9cCngPREWdOLZXqFAJv4WF54Bog5+olxhV9MVQ +oPVPTI2cxSgymKjWBSvnwydAvJuHmBJQzUHHLvJmcXcliscvdNyDYD/E64ykRu5x4JkQSJAbsS Tviuk2i8XPzmXhJw4LCUu34TluFBgPGma5oH3OLiAYWD1j5cQkzhoFnMvcAEWc7XaBtGrEM91Bq S3G2c4QmhwRy4LflQ8C1xzMLN9Blxxl+EU6wKZW/fp8y2aErhT35XDFKO8+PPy980XVWKxcoOro 6Zyunf8l99/NvxHekviIxFF/kLbm9gL67ytFThKTReeqtmHYioYjCfNfrupGy9uxn64abN7i8Kc c3xGd2aUs/1A== X-Received: by 2002:a05:6102:3f16:b0:5f5:328e:73a6 with SMTP id ada2fe7eead31-5f9395e3008mr1658255137.35.1770272161467; Wed, 04 Feb 2026 22:16:01 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Thu, 5 Feb 2026 14:15:25 +0800 X-Gm-Features: AZwV_QiaqMrD-ux_4Ff3V1pmtUwb3FMa7AfgAaQrQmDxi4Qh6KOs-DmeOqhP9u0 Message-ID: Subject: Re: CREATE TABLE LIKE INCLUDING TRIGGERS To: Zsolt Parragi Cc: Andrey Borodin , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000573bd0064a0d9bcb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000573bd0064a0d9bcb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 22, 2026 at 10:20=E2=80=AFPM Zsolt Parragi wrote: > > After looking into this a bit more, I am more on the side of copying > this setting properly. > > The already existing INCLUDING CONSTRAINTS copies the constraints, > including their enabled/disabled status, correctly marking them > disabled if a CHECK constraint is defined but not enforced. Wouldn't > it be strange for INCLUDING TRIGGERS to work differently? > hi. please check the attached. v6-0001 is the same as v5-0001. v6-0002 ensures that CREATE TABLE ... LIKE ... INCLUDING TRIGGERS correctly copies the tgenabled status from the source table's triggers to the new table -- jian https://www.enterprisedb.com/ --000000000000573bd0064a0d9bcb Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-create-table-like-including-triggers-copies-tgenabled.patch" Content-Disposition: attachment; filename="v6-0002-create-table-like-including-triggers-copies-tgenabled.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml92am9m0 RnJvbSA2NzY4OWM5Mjg0ZTYwNzdkNjliOWRkNWQ4MTQ3ZDMwN2I4MGM2ODIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgNSBGZWIgMjAyNiAxMzo1OTozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg Mi8yXSBjcmVhdGUgdGFibGUgbGlrZSBpbmNsdWRpbmcgdHJpZ2dlcnMgY29waWVzIHRnZW5hYmxl ZAoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SEpBcjJGamJlQjZnaGdf LU41ZHhYNUpWbmpLU0xPVXhPeXQ0VGVhQVdRa2dAbWFpbC5nbWFpbC5jb20KY29tbWl0ZmVzdDog aHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzYwODcKLS0tCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgIHwgIDQgKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJp Z2dlci5jICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICB8ICAyICsrCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICB8IDEy ICsrKysrKysrLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgfCAg MSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJzLm91dCB8ICA5ICsrKysrKyst LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsICAgICAgfCAgMyArKysKIDggZmls ZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4 LmMKaW5kZXggYjBiNWE4ODZmYTEuLmQ0NTcwNjI2ZTBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0y MDIxLDYgKzIwMjEsNyBAQCBpbmRleF9jb25zdHJhaW50X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVs YXRpb24sCiAJCUNyZWF0ZVRyaWdTdG10ICp0cmlnZ2VyID0gbWFrZU5vZGUoQ3JlYXRlVHJpZ1N0 bXQpOwogCiAJCXRyaWdnZXItPnJlcGxhY2UgPSBmYWxzZTsKKwkJdHJpZ2dlci0+dGdlbmFibGVk ID0gVFJJR0dFUl9GSVJFU19PTl9PUklHSU47CiAJCXRyaWdnZXItPmlzY29uc3RyYWludCA9IHRy dWU7CiAJCXRyaWdnZXItPnRyaWduYW1lID0gKGNvbnN0cmFpbnRUeXBlID09IENPTlNUUkFJTlRf UFJJTUFSWSkgPwogCQkJIlBLX0NvbnN0cmFpbnRUcmlnZ2VyIiA6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IDZhMjVmNmI3NTUzLi42YzUzZGYxZTU0YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTEzODM5LDYgKzEzODM5LDcgQEAgQ3JlYXRlRktDaGVja1RyaWdnZXIoT2lk IG15UmVsT2lkLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJICov CiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAlma190cmlnZ2VyLT5y ZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVkID0gVFJJR0dFUl9GSVJFU19P Tl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0gdHJ1ZTsKIAlma190cmlnZ2Vy LT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9jIjsKIAlma190cmlnZ2VyLT5yZWxh dGlvbiA9IE5VTEw7CkBAIC0xMzkwMCw2ICsxMzkwMSw3IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rp b25UcmlnZ2VycyhPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29u c3RyCiAJICovCiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAlma190 cmlnZ2VyLT5yZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVkID0gVFJJR0dF Ul9GSVJFU19PTl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0gdHJ1ZTsKIAlm a190cmlnZ2VyLT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9hIjsKIAlma190cmln Z2VyLT5yZWxhdGlvbiA9IE5VTEw7CkBAIC0xMzk2Miw2ICsxMzk2NCw3IEBAIGNyZWF0ZUZvcmVp Z25LZXlBY3Rpb25UcmlnZ2VycyhPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFp bnQgKmZrY29uc3RyCiAJICovCiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10 KTsKIAlma190cmlnZ2VyLT5yZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVk ID0gVFJJR0dFUl9GSVJFU19PTl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0g dHJ1ZTsKIAlma190cmlnZ2VyLT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9hIjsK IAlma190cmlnZ2VyLT5yZWxhdGlvbiA9IE5VTEw7CkBAIC0yMDkxMSw2ICsyMDkxNCw3IEBAIENs b25lUm93VHJpZ2dlcnNUb1BhcnRpdGlvbihSZWxhdGlvbiBwYXJlbnQsIFJlbGF0aW9uIHBhcnRp dGlvbikKIAogCQl0cmlnU3RtdCA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAkJdHJpZ1N0 bXQtPnJlcGxhY2UgPSBmYWxzZTsKKwkJdHJpZ1N0bXQtPnRnZW5hYmxlZCA9IHRyaWdGb3JtLT50 Z2VuYWJsZWQ7CiAJCXRyaWdTdG10LT5pc2NvbnN0cmFpbnQgPSBPaWRJc1ZhbGlkKHRyaWdGb3Jt LT50Z2NvbnN0cmFpbnQpOwogCQl0cmlnU3RtdC0+dHJpZ25hbWUgPSBOYW1lU3RyKHRyaWdGb3Jt LT50Z25hbWUpOwogCQl0cmlnU3RtdC0+cmVsYXRpb24gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dl ci5jCmluZGV4IGU5NDQyNjViZDlmLi4yODA0Mjc1NTlkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwpAQCAtNjk0Nyw2ICs2OTQ3LDcgQEAgZ2VuZXJhdGVDbG9uZWRUcmlnZ2VyU3RtdChSYW5nZVZh ciAqaGVhcFJlbCwgT2lkIHNvdXJjZV90cmlnaWQsCiAKIAl0cmlnU3RtdCA9IG1ha2VOb2RlKENy ZWF0ZVRyaWdTdG10KTsKIAl0cmlnU3RtdC0+cmVwbGFjZSA9IGZhbHNlOworCXRyaWdTdG10LT50 Z2VuYWJsZWQgPSB0cmlnRm9ybS0+dGdlbmFibGVkOwogCXRyaWdTdG10LT5pc2NvbnN0cmFpbnQg PSBPaWRJc1ZhbGlkKHRyaWdGb3JtLT50Z2NvbnN0cmFpbnQpOwogCXRyaWdTdG10LT50cmlnbmFt ZSA9IHBzdHJkdXAoTmFtZVN0cih0cmlnRm9ybS0+dGduYW1lKSk7CiAJdHJpZ1N0bXQtPnJlbGF0 aW9uID0gaGVhcFJlbDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGVlOWNiYmZjNmM0Li4yNGIyN2QyYzQ3ZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC02MTM3LDYgKzYxMzcsNyBAQCBDcmVhdGVUcmlnU3RtdDoKIAkJCQkJ Q3JlYXRlVHJpZ1N0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVUcmlnU3RtdCk7CiAKIAkJCQkJbi0+ cmVwbGFjZSA9ICQyOworCQkJCQluLT50Z2VuYWJsZWQgPSBUUklHR0VSX0ZJUkVTX09OX09SSUdJ TjsKIAkJCQkJbi0+aXNjb25zdHJhaW50ID0gZmFsc2U7CiAJCQkJCW4tPnRyaWduYW1lID0gJDQ7 CiAJCQkJCW4tPnJlbGF0aW9uID0gJDg7CkBAIC02MTg4LDYgKzYxODksNyBAQCBDcmVhdGVUcmln U3RtdDoKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAog CQkJCQkJCQkgZXJybXNnKCJDUkVBVEUgT1IgUkVQTEFDRSBDT05TVFJBSU5UIFRSSUdHRVIgaXMg bm90IHN1cHBvcnRlZCIpLAogCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKEAxKSkpOworCQkJ CQluLT50Z2VuYWJsZWQgPSBUUklHR0VSX0ZJUkVTX09OX09SSUdJTjsKIAkJCQkJbi0+aXNjb25z dHJhaW50ID0gdHJ1ZTsKIAkJCQkJbi0+dHJpZ25hbWUgPSAkNTsKIAkJCQkJbi0+cmVsYXRpb24g PSAkOTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMzRkZDZlMThkZjUuLmQyNDBlY2Q0MDc3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYwpAQCAtMTcwMSwxMCArMTcwMSwxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCWJyZWFrOwogCiAJCQljYXNlIFRfQ3JlYXRlVHJpZ1N0bXQ6Ci0J CQkJYWRkcmVzcyA9IENyZWF0ZVRyaWdnZXIoKENyZWF0ZVRyaWdTdG10ICopIHBhcnNldHJlZSwK LQkJCQkJCQkJCQlxdWVyeVN0cmluZywgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKLQkJCQkJCQkJ CQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAotCQkJCQkJCQkJCUludmFsaWRP aWQsIE5VTEwsIGZhbHNlLCBmYWxzZSk7CisJCQkJeworCQkJCQlDcmVhdGVUcmlnU3RtdCAqc3Rt dCA9IChDcmVhdGVUcmlnU3RtdCAqKSBwYXJzZXRyZWU7CisKKwkJCQkJYWRkcmVzcyA9IENyZWF0 ZVRyaWdnZXJGaXJpbmdPbihzdG10LCBxdWVyeVN0cmluZywgSW52YWxpZE9pZCwgSW52YWxpZE9p ZCwKKwkJCQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAorCQkJ CQkJCQkJCQkJCUludmFsaWRPaWQsIE5VTEwsIGZhbHNlLAorCQkJCQkJCQkJCQkJCWZhbHNlLCBz dG10LT50Z2VuYWJsZWQpOworCQkJCX0KIAkJCQlicmVhazsKIAogCQkJY2FzZSBUX0NyZWF0ZVBM YW5nU3RtdDoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA1YzNkNTc5ODJkZS4uNjk0NzViZWZm YWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTMxMzcsNiArMzEzNyw3IEBAIHR5cGVkZWYg c3RydWN0IENyZWF0ZVRyaWdTdG10CiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlib29sCQlyZXBsYWNl OwkJLyogcmVwbGFjZSB0cmlnZ2VyIGlmIGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJdGdlbmFi bGVkOwkJLyogdHJpZ2dlcidzIGZpcmluZyBjb25maWd1cmF0aW9uICovCiAJYm9vbAkJaXNjb25z dHJhaW50OwkvKiBUaGlzIGlzIGEgY29uc3RyYWludCB0cmlnZ2VyICovCiAJY2hhcgkgICAqdHJp Z25hbWU7CQkvKiBUUklHR0VSJ3MgbmFtZSAqLwogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gdHJpZ2dlciBpcyBvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmlnZ2Vycy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJz Lm91dAppbmRleCA3ZTU0MTMwNTBiZS4uNmU2NTg3OTE4OTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHJpZ2dlcnMub3V0CkBAIC00NzUsNiArNDc1LDkgQEAgTk9USUNFOiAgZHVtbXlfdXBk YXRlX2Z1bmMoYWZ0ZXJiKSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwgb2xkID0gKHQpLCBuZXcg PSAoZikKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsKIE5PVElDRTogIGR1bW15 X3VwZGF0ZV9mdW5jKGJlZm9yZSkgY2FsbGVkOiBhY3Rpb24gPSBVUERBVEUsIG9sZCA9IChmKSwg bmV3ID0gKHQpCiBOT1RJQ0U6ICBkdW1teV91cGRhdGVfZnVuYyhhZnRlcmEpIGNhbGxlZDogYWN0 aW9uID0gVVBEQVRFLCBvbGQgPSAoZiksIG5ldyA9ICh0KQorQUxURVIgVEFCTEUgc29tZV90IEVO QUJMRSBSRVBMSUNBIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYTsKK0FMVEVSIFRBQkxFIHNvbWVf dCBESVNBQkxFIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYjsKK0FMVEVSIFRBQkxFIHNvbWVfdCBF TkFCTEUgQUxXQVlTIFRSSUdHRVIgc29tZV90cmlnX2JlZm9yZTsKIENSRUFURSBUQUJMRSBzb21l X3QxIChjIElOVCwgTElLRSBzb21lX3QgSU5DTFVESU5HIFRSSUdHRVJTIElOQ0xVRElORyBDT01N RU5UUyk7CiBcZCsgc29tZV90MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnNvbWVfdDEiCkBAIC00ODQsMTAgKzQ4NywxMiBAQCBDUkVBVEUgVEFCTEUg c29tZV90MSAoYyBJTlQsIExJS0Ugc29tZV90IElOQ0xVRElORyBUUklHR0VSUyBJTkNMVURJTkcg Q09NTUVOVFMpOwogIHNvbWVfY29sIHwgYm9vbGVhbiB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKIE5vdC1udWxsIGNvbnN0cmFpbnRz OgogICAgICJzb21lX3Rfc29tZV9jb2xfbm90X251bGwiIE5PVCBOVUxMICJzb21lX2NvbCIKLVRy aWdnZXJzOgotICAgIHNvbWVfdHJpZ19hZnRlcmEgQUZURVIgVVBEQVRFIE9OIHNvbWVfdDEgRk9S IEVBQ0ggUk9XIFdIRU4gKE5PVCBvbGQuc29tZV9jb2wgQU5EIG5ldy5zb21lX2NvbCkgRVhFQ1VU RSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYWZ0ZXJhJykKK0Rpc2FibGVkIHVzZXIgdHJp Z2dlcnM6CiAgICAgc29tZV90cmlnX2FmdGVyYiBBRlRFUiBVUERBVEUgT04gc29tZV90MSBGT1Ig RUFDSCBST1cgV0hFTiAoTk9UIG5ldy5zb21lX2NvbCkgRVhFQ1VURSBGVU5DVElPTiBkdW1teV91 cGRhdGVfZnVuYygnYWZ0ZXJiJykKK1RyaWdnZXJzIGZpcmluZyBhbHdheXM6CiAgICAgc29tZV90 cmlnX2JlZm9yZSBCRUZPUkUgVVBEQVRFIE9OIHNvbWVfdDEgRk9SIEVBQ0ggUk9XIEVYRUNVVEUg RlVOQ1RJT04gZHVtbXlfdXBkYXRlX2Z1bmMoJ2JlZm9yZScpCitUcmlnZ2VycyBmaXJpbmcgb24g cmVwbGljYSBvbmx5OgorICAgIHNvbWVfdHJpZ19hZnRlcmEgQUZURVIgVVBEQVRFIE9OIHNvbWVf dDEgRk9SIEVBQ0ggUk9XIFdIRU4gKE5PVCBvbGQuc29tZV9jb2wgQU5EIG5ldy5zb21lX2NvbCkg RVhFQ1VURSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYWZ0ZXJhJykKIAogRFJPUCBUQUJM RSBzb21lX3Q7CiAtLSBib2d1cyBjYXNlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdHJpZ2dlcnMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsCmluZGV4 IDA2NGRjMjIzMTRjLi44MTY5NDAwMjE2ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdHJpZ2dlcnMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbApA QCAtMjg0LDYgKzI4NCw5IEBAIElOU0VSVCBJTlRPIHNvbWVfdCBWQUxVRVMgKFRSVUUpOwogVVBE QVRFIHNvbWVfdCBTRVQgc29tZV9jb2wgPSBUUlVFOwogVVBEQVRFIHNvbWVfdCBTRVQgc29tZV9j b2wgPSBGQUxTRTsKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsKK0FMVEVSIFRB QkxFIHNvbWVfdCBFTkFCTEUgUkVQTElDQSBUUklHR0VSIHNvbWVfdHJpZ19hZnRlcmE7CitBTFRF UiBUQUJMRSBzb21lX3QgRElTQUJMRSBUUklHR0VSIHNvbWVfdHJpZ19hZnRlcmI7CitBTFRFUiBU QUJMRSBzb21lX3QgRU5BQkxFIEFMV0FZUyBUUklHR0VSIHNvbWVfdHJpZ19iZWZvcmU7CiBDUkVB VEUgVEFCTEUgc29tZV90MSAoYyBJTlQsIExJS0Ugc29tZV90IElOQ0xVRElORyBUUklHR0VSUyBJ TkNMVURJTkcgQ09NTUVOVFMpOwogXGQrIHNvbWVfdDEKIERST1AgVEFCTEUgc29tZV90OwotLSAK Mi4zNC4xCgo= --000000000000573bd0064a0d9bcb Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS.patch" Content-Disposition: attachment; filename="v6-0001-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ml92am9t1 RnJvbSA4MjU4ZTBiMTY3NDUwYTZiY2Y4MzhhMjM5OGY2NGE3NWVkZDRlMmM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTYgSmFuIDIwMjYgMTU6MzE6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDEvMl0gQ1JFQVRFIFRBQkxFIExJS0UgSU5DTFVESU5HIFRSSUdHRVJTCgpUaGlzIHdpbGwgY29w eSBhbGwgc291cmNlIHRhYmxlJ3MgdHJpZ2dlciB0byB0aGUgbmV3IHRhYmxlLiBUaGlzIGZ1bmN0 aW9uYWxpdHkKYWxzbyBleHRlbmRzIHRvIENSRUFURSBGT1JFSUdOIFRBQkxFIExJS0Ugc3RhdGVt ZW50cy4KCkludGVybmFsIHRyaWdnZXIgKHN1Y2ggYXMgZm9yZWlnbiBrZXkgYXNzb2NpYXRlZCB0 cmlnZ2VyKSB3b24ndCBiZWluZyBjb3BpZWQgdG8KbmV3IHRhYmxlLiAgSG93ZXZlciB0aGlzIGNv bW1hbmQgd2lsbCBmYWlsIGlmIHRoZSBzb3VyY2UgdGFibGUncyB0cmlnZ2VyIGNvbnRhaW4Kd2hv bGUtcm93IHJlZmVyZW5jZS4KCklmIElOQ0xVRElORyBDT01NRU5UUyBpcyBzcGVjaWZpZWQsIHRy aWdnZXIgY29tbWVudHMgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIG5ldwp0YWJsZS4KCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEhKQXIyRmpiZUI2Z2hnXy1ONWR4WDVKVm5q S1NMT1V4T3l0NFRlYUFXUWtnQG1haWwuZ21haWwuY29tCmNvbW1pdGZlc3Q6IGh0dHBzOi8vY29t bWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC82MDg3Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv aW5kZXguYyAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJp Z2dlci5jICAgICAgICAgICAgICAgIHwgMjMwICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMzcgKystCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy90cmlnZ2VyLmggICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQgICAgfCAgMTAgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmlnZ2Vycy5vdXQgICAgICAgIHwgMTMwICsrKysrKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC90cmlnZ2Vycy5zcWwgICAgICAgICAgICAgfCAgNjcgKysrKy0KIDE0IGZpbGVzIGNo YW5nZWQsIDUxOSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKaW5kZXggMDhhOGNlZWFlNzUuLjY4ZDA2MDhi MGEzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCkBAIC02 MCw3ICs2MCw3IEBAIENSRUFURSBGT1JFSUdOIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lCiAKIDxwaHJhc2U+YW5kIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwv cGhyYXNlPgogCi17IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT05TVFJB SU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVEIHwgU1RBVElTVElDUyB8IEFMTCB9Cit7IElOQ0xV RElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwg R0VORVJBVEVEIHwgU1RBVElTVElDUyB8IFRSSUdHRVJTIHwgQUxMIH0KIAogPHBocmFzZT5hbmQg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3VuZF9zcGVjPC9yZXBs YWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKQEAgLTI4NCw2ICsyODQsMTUgQEAgV0lUSCAoIE1PRFVM VVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFj ZWFibGU+LCBSRU0KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElO RyBUUklHR0VSUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg IDxwYXJhPgorICAgICAgICAgIEFsbCBub24taW50ZXJuYWwgdHJpZ2dlcnMgYXJlIGNvcGllZCB0 byB0aGUgbmV3IHRhYmxlLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAg PHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIEFMTDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxs aXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDc3YzVhNzYzZDQ1Li5j NmEwZjZkYWU5YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC04OCw3ICs4OCw3 IEBAIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0g WyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgog Ci17IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENP TlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBT VEFUSVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9Cit7IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsg Q09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5FUkFU RUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFUSVNUSUNTIHwgU1RPUkFHRSB8IFRSSUdHRVJT IHwgQUxMIH0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBh cnRpdGlvbl9ib3VuZF9zcGVjPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKQEAgLTY3Miw3 ICs2NzIsNyBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICA8dGVybT48bGl0ZXJh bD5JTkNMVURJTkcgQ09NTUVOVFM8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+ CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICBDb21tZW50cyBmb3IgdGhlIGNvcGllZCBjb2x1 bW5zLCBjb25zdHJhaW50cywgYW5kIGluZGV4ZXMgd2lsbCBiZQorICAgICAgICAgIENvbW1lbnRz IGZvciB0aGUgY29waWVkIGNvbHVtbnMsIGNvbnN0cmFpbnRzLCBpbmRleGVzIGFuZCB0cmlnZ2Vy cyB3aWxsIGJlCiAgICAgICAgICAgY29waWVkLiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8g ZXhjbHVkZSBjb21tZW50cywgcmVzdWx0aW5nIGluCiAgICAgICAgICAgdGhlIGNvcGllZCBjb2x1 bW5zIGFuZCBjb25zdHJhaW50cyBpbiB0aGUgbmV3IHRhYmxlIGhhdmluZyBubwogICAgICAgICAg IGNvbW1lbnRzLgpAQCAtNzc2LDYgKzc3NiwxNSBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICAgPHZh cmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LXRyaWdnZXJzIj4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIFRSSUdHRVJTPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgQWxsIG5v bi1pbnRlcm5hbCB0cmlnZ2VycyBvbiB0aGUgb3JpZ2luYWwgdGFibGUgd2lsbCBiZSBjcmVhdGVk IG9uIHRoZSBuZXcgdGFibGUuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwt Y3JlYXRldGFibGUtcGFybXMtbGlrZS1vcHQtYWxsIj4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+ SU5DTFVESU5HIEFMTDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv aW5kZXguYwppbmRleCA0M2RlNDJjZTM5ZS4uYjBiNWE4ODZmYTEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMK QEAgLTIwMzcsNiArMjAzNyw4IEBAIGluZGV4X2NvbnN0cmFpbnRfY3JlYXRlKFJlbGF0aW9uIGhl YXBSZWxhdGlvbiwKIAkJdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IHRydWU7CiAJCXRyaWdnZXItPmlu aXRkZWZlcnJlZCA9IGluaXRkZWZlcnJlZDsKIAkJdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsK KwkJdHJpZ2dlci0+dHJpZ2NvbW1lbnQgPSBOVUxMOworCQl0cmlnZ2VyLT50cmFuc2Zvcm1lZCA9 IHRydWU7CiAKIAkJKHZvaWQpIENyZWF0ZVRyaWdnZXIodHJpZ2dlciwgTlVMTCwgUmVsYXRpb25H ZXRSZWxpZChoZWFwUmVsYXRpb24pLAogCQkJCQkJCSBJbnZhbGlkT2lkLCBjb25PaWQsIGluZGV4 UmVsYXRpb25JZCwgSW52YWxpZE9pZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZjk3 NmMwZTVjN2UuLjZhMjVmNmI3NTUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTM4 NjQsNiArMTM4NjQsOCBAQCBDcmVhdGVGS0NoZWNrVHJpZ2dlcihPaWQgbXlSZWxPaWQsIE9pZCBy ZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwKIAlma190cmlnZ2VyLT5kZWZlcnJh YmxlID0gZmtjb25zdHJhaW50LT5kZWZlcnJhYmxlOwogCWZrX3RyaWdnZXItPmluaXRkZWZlcnJl ZCA9IGZrY29uc3RyYWludC0+aW5pdGRlZmVycmVkOwogCWZrX3RyaWdnZXItPmNvbnN0cnJlbCA9 IE5VTEw7CisJZmtfdHJpZ2dlci0+dHJpZ2NvbW1lbnQgPSBOVUxMOworCWZrX3RyaWdnZXItPnRy YW5zZm9ybWVkID0gdHJ1ZTsKIAogCXRyaWdBZGRyZXNzID0gQ3JlYXRlVHJpZ2dlcihma190cmln Z2VyLCBOVUxMLCBteVJlbE9pZCwgcmVmUmVsT2lkLAogCQkJCQkJCQljb25zdHJhaW50T2lkLCBp bmRleE9pZCwgSW52YWxpZE9pZCwKQEAgLTEzOTA5LDYgKzEzOTExLDggQEAgY3JlYXRlRm9yZWln bktleUFjdGlvblRyaWdnZXJzKE9pZCBteVJlbE9pZCwgT2lkIHJlZlJlbE9pZCwgQ29uc3RyYWlu dCAqZmtjb25zdHIKIAlma190cmlnZ2VyLT53aGVuQ2xhdXNlID0gTlVMTDsKIAlma190cmlnZ2Vy LT50cmFuc2l0aW9uUmVscyA9IE5JTDsKIAlma190cmlnZ2VyLT5jb25zdHJyZWwgPSBOVUxMOwor CWZrX3RyaWdnZXItPnRyaWdjb21tZW50ID0gTlVMTDsKKwlma190cmlnZ2VyLT50cmFuc2Zvcm1l ZCA9IHRydWU7CiAKIAlzd2l0Y2ggKGZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbikKIAl7CkBA IC0xMzk2OSw2ICsxMzk3Myw4IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhPaWQg bXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dl ci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtfdHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7 CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsKKwlma190cmlnZ2VyLT50cmlnY29tbWVu dCA9IE5VTEw7CisJZmtfdHJpZ2dlci0+dHJhbnNmb3JtZWQgPSB0cnVlOwogCiAJc3dpdGNoIChm a2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24pCiAJewpAQCAtMjA5MTksNiArMjA5MjUsOCBAQCBD bG9uZVJvd1RyaWdnZXJzVG9QYXJ0aXRpb24oUmVsYXRpb24gcGFyZW50LCBSZWxhdGlvbiBwYXJ0 aXRpb24pCiAJCXRyaWdTdG10LT5kZWZlcnJhYmxlID0gdHJpZ0Zvcm0tPnRnZGVmZXJyYWJsZTsK IAkJdHJpZ1N0bXQtPmluaXRkZWZlcnJlZCA9IHRyaWdGb3JtLT50Z2luaXRkZWZlcnJlZDsKIAkJ dHJpZ1N0bXQtPmNvbnN0cnJlbCA9IE5VTEw7IC8qIHBhc3NlZCBzZXBhcmF0ZWx5ICovCisJCXRy aWdTdG10LT50cmlnY29tbWVudCA9IE5VTEw7CisJCXRyaWdTdG10LT50cmFuc2Zvcm1lZCA9IHRy dWU7CiAKIAkJQ3JlYXRlVHJpZ2dlckZpcmluZ09uKHRyaWdTdG10LCBOVUxMLCBSZWxhdGlvbkdl dFJlbGlkKHBhcnRpdGlvbiksCiAJCQkJCQkJICB0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCwgSW52 YWxpZE9pZCwgSW52YWxpZE9pZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Ry aWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCA4ZGY5MTVmNjNm Yi4uZTk0NDI2NWJkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTMwLDYgKzMwLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdn ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9j b21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1 dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCkBAIC01ODksMTMgKzU5MCwy MSBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNo YXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJCQkJCQkgICBmYWxzZSwgZmFsc2UpOwogCQlhZGROU0l0 ZW1Ub1F1ZXJ5KHBzdGF0ZSwgbnNpdGVtLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CiAKLQkJLyogVHJh bnNmb3JtIGV4cHJlc3Npb24uICBDb3B5IHRvIGJlIHN1cmUgd2UgZG9uJ3QgbW9kaWZ5IG9yaWdp bmFsICovCi0JCXdoZW5DbGF1c2UgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsCi0JCQkJ CQkJCQkJICBjb3B5T2JqZWN0KHN0bXQtPndoZW5DbGF1c2UpLAotCQkJCQkJCQkJCSAgRVhQUl9L SU5EX1RSSUdHRVJfV0hFTiwKLQkJCQkJCQkJCQkgICJXSEVOIik7Ci0JCS8qIHdlIGhhdmUgdG8g Zml4IGl0cyBjb2xsYXRpb25zIHRvbyAqLwotCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0 ZSwgd2hlbkNsYXVzZSk7CisJCWlmIChzdG10LT50cmFuc2Zvcm1lZCkKKwkJCXdoZW5DbGF1c2Ug PSBzdG10LT53aGVuQ2xhdXNlOworCQllbHNlCisJCXsKKwkJCS8qIFRyYW5zZm9ybSBleHByZXNz aW9uLiAgQ29weSB0byBiZSBzdXJlIHdlIGRvbid0IG1vZGlmeSBvcmlnaW5hbCAqLworCQkJd2hl bkNsYXVzZSA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICBjb3B5 T2JqZWN0KHN0bXQtPndoZW5DbGF1c2UpLAorCQkJCQkJCQkJCQkgIEVYUFJfS0lORF9UUklHR0VS X1dIRU4sCisJCQkJCQkJCQkJCSAgIldIRU4iKTsKKworCQkJLyogd2UgaGF2ZSB0byBmaXggaXRz IGNvbGxhdGlvbnMgdG9vICovCisJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgd2hl bkNsYXVzZSk7CisKKwkJCXN0bXQtPnRyYW5zZm9ybWVkID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJ CSAqIENoZWNrIGZvciBkaXNhbGxvd2VkIHJlZmVyZW5jZXMgdG8gT0xEL05FVy4KQEAgLTEyMDQs NiArMTIxMywxMSBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3JlYXRlVHJpZ1N0bXQgKnN0bXQs IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCS8qIEtlZXAgbG9jayBvbiB0YXJnZXQgcmVsIHVu dGlsIGVuZCBvZiB4YWN0ICovCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCisJLyogQWRk IGFueSByZXF1ZXN0ZWQgY29tbWVudCAqLworCWlmIChzdG10LT50cmlnY29tbWVudCAhPSBOVUxM KQorCQlDcmVhdGVDb21tZW50cyh0cmlnb2lkLCBUcmlnZ2VyUmVsYXRpb25JZCwgMCwKKwkJCQkJ ICAgc3RtdC0+dHJpZ2NvbW1lbnQpOworCiAJcmV0dXJuIG15c2VsZjsKIH0KIApAQCAtNjc1Mywz ICs2NzY3LDIwNSBAQCBjaGVja19tb2RpZmllZF92aXJ0dWFsX2dlbmVyYXRlZChUdXBsZURlc2Mg dHVwZGVzYywgSGVhcFR1cGxlIHR1cGxlKQogCiAJcmV0dXJuIHR1cGxlOwogfQorCisvKgorICog RHVwbGljYXRlIHRoZSB0cmlnZ2VyIGRlZmluaXRpb24gZm9yIHRoZSBuZXcgcmVsYXRpb246IFVz ZSB0aGUgc291cmNlIHRyaWdnZXIKKyAqIChzb3VyY2VfdHJpZ2lkIGZyb20gc291cmNlX3JlbCkg dG8gaW5pdGlhbGl6ZSBhIENyZWF0ZVRyaWdTdG10IGZvciB0aGUgdGFyZ2V0CisgKiByZWxhdGlv biAoaGVhcFJlbCkuCisgKgorICogQXR0cmlidXRlIG51bWJlcnMgaW4gZXhwcmVzc2lvbiBWYXJz IGFyZSBhZGp1c3RlZCBhY2NvcmRpbmcgdG8gYXR0bWFwLgorICovCitDcmVhdGVUcmlnU3RtdCAq CitnZW5lcmF0ZUNsb25lZFRyaWdnZXJTdG10KFJhbmdlVmFyICpoZWFwUmVsLCBPaWQgc291cmNl X3RyaWdpZCwKKwkJCQkJCSAgUmVsYXRpb24gc291cmNlX3JlbCwgY29uc3QgQXR0ck1hcCAqYXR0 bWFwKQoreworCUhlYXBUdXBsZQl0cmlnZ2VyVHVwbGU7CisJSGVhcFR1cGxlCXByb2N0dXA7CisJ Rm9ybV9wZ190cmlnZ2VyIHRyaWdGb3JtOworCUZvcm1fcGdfcHJvYyBwcm9jZm9ybTsKKwlSZWxh dGlvbglwZ190cmlnZ2VyOworCVJhbmdlVmFyICAgKmNvbnN0cnJlbCA9IE5VTEw7CisJU3lzU2Nh bkRlc2MgdGdzY2FuOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisJRGF0dW0JCXZhbHVlOworCWJv b2wJCWlzbnVsbDsKKwlOb2RlCSAgICpxdWFsID0gTlVMTDsKKwlMaXN0CSAgICp0cmlnYXJncyA9 IE5JTDsKKwlMaXN0CSAgICpjb2xzID0gTklMOworCUxpc3QJICAgKmZ1bmNuYW1lID0gTklMOwor CUxpc3QJICAgKnRyYW5zaXRpb25SZWxzID0gTklMOworCWNoYXIJICAgKmZ1bmNzY2hlbWE7CisJ Q3JlYXRlVHJpZ1N0bXQgKnRyaWdTdG10OworCisJcGdfdHJpZ2dlciA9IHRhYmxlX29wZW4oVHJp Z2dlclJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkvKiBGaW5kIHRoZSB0cmlnZ2Vy IHRvIGNvcHkgKi8KKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3RyaWdnZXJf b2lkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdl dERhdHVtKHNvdXJjZV90cmlnaWQpKTsKKworCXRnc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nhbihw Z190cmlnZ2VyLCBUcmlnZ2VyT2lkSW5kZXhJZCwgdHJ1ZSwKKwkJCQkJCQkJTlVMTCwgMSwgc2tl eSk7CisKKwl0cmlnZ2VyVHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHRnc2Nhbik7CisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHRyaWdnZXJUdXBsZSkpCisJCWVsb2coRVJST1IsICJjb3VsZCBub3Qg ZmluZCB0dXBsZSBmb3IgdHJpZ2dlciAldSIsIHNvdXJjZV90cmlnaWQpOworCisJdHJpZ0Zvcm0g PSAoRm9ybV9wZ190cmlnZ2VyKSBHRVRTVFJVQ1QodHJpZ2dlclR1cGxlKTsKKworCS8qIFJlY29u c3RydWN0IHRyaWdnZXIgZnVuY3Rpb24gU3RyaW5nIGxpc3QgKi8KKwlwcm9jdHVwID0gU2VhcmNo U3lzQ2FjaGUxKFBST0NPSUQsIE9iamVjdElkR2V0RGF0dW0odHJpZ0Zvcm0tPnRnZm9pZCkpOwor CWlmICghSGVhcFR1cGxlSXNWYWxpZChwcm9jdHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgdHJpZ0Zvcm0tPnRnZm9pZCk7CisJcHJvY2Zv cm0gPSAoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QocHJvY3R1cCk7CisKKwlmdW5jc2NoZW1hID0g Z2V0X25hbWVzcGFjZV9uYW1lKHByb2Nmb3JtLT5wcm9uYW1lc3BhY2UpOworCWZ1bmNuYW1lID0g bGlzdF9tYWtlMihtYWtlU3RyaW5nKGZ1bmNzY2hlbWEpLAorCQkJCQkJICBtYWtlU3RyaW5nKHBz dHJkdXAoTmFtZVN0cihwcm9jZm9ybS0+cHJvbmFtZSkpKSk7CisJUmVsZWFzZVN5c0NhY2hlKHBy b2N0dXApOworCisJLyoKKwkgKiBJZiB0aGVyZSBpcyBhIGNvbHVtbiBsaXN0LCB0cmFuc2Zvcm0g aXQgdG8gYSBsaXN0IG9mIGNvbHVtbiBuYW1lcy4gTm90ZQorCSAqIHdlIGRvbid0IG5lZWQgdG8g bWFwIHRoaXMgbGlzdCBpbiBhbnkgd2F5IC4uLgorCSAqLworCWlmICh0cmlnRm9ybS0+dGdhdHRy LmRpbTEgPiAwKQorCXsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0cmlnRm9ybS0+dGdhdHRyLmRp bTE7IGkrKykKKwkJeworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgY29sOworCisJCQljb2wgPSBUdXBs ZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3Ioc291cmNlX3JlbCksCisJCQkJCQkJCXRyaWdGb3Jt LT50Z2F0dHIudmFsdWVzW2ldIC0gMSk7CisJCQljb2xzID0gbGFwcGVuZChjb2xzLAorCQkJCQkJ ICAgbWFrZVN0cmluZyhwc3RyZHVwKE5hbWVTdHIoY29sLT5hdHRuYW1lKSkpKTsKKwkJfQorCX0K KworCS8qIFJlY29uc3RydWN0IHRyaWdnZXIgYXJndW1lbnRzIGxpc3QgKi8KKwlpZiAodHJpZ0Zv cm0tPnRnbmFyZ3MgPiAwKQorCXsKKwkJYnl0ZWEJICAgKnZhbDsKKwkJY2hhcgkgICAqcDsKKwor CQl2YWwgPSBEYXR1bUdldEJ5dGVhUFAoZmFzdGdldGF0dHIodHJpZ2dlclR1cGxlLAorCQkJCQkJ CQkJCSAgQW51bV9wZ190cmlnZ2VyX3RnYXJncywKKwkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0RGVz Y3IocGdfdHJpZ2dlciksCisJCQkJCQkJCQkJICAmaXNudWxsKSk7CisJCWlmIChpc251bGwpCisJ CQllbG9nKEVSUk9SLCAidGdhcmdzIGlzIG51bGwgaW4gdHJpZ2dlciBcIiVzXCIgZm9yIHJlbGF0 aW9uIFwiJXNcIiIsCisJCQkJIE5hbWVTdHIodHJpZ0Zvcm0tPnRnbmFtZSksCisJCQkJIFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHNvdXJjZV9yZWwpKTsKKworCQlwID0gKGNoYXIgKikgVkFSREFU QV9BTlkodmFsKTsKKworCQlmb3IgKGludCBpID0gMDsgaSA8IHRyaWdGb3JtLT50Z25hcmdzOyBp KyspCisJCXsKKwkJCXRyaWdhcmdzID0gbGFwcGVuZCh0cmlnYXJncywgbWFrZVN0cmluZyhwc3Ry ZHVwKHApKSk7CisJCQlwICs9IHN0cmxlbihwKSArIDE7CisJCX0KKwl9CisKKwkvKiBJZiB0aGUg dHJpZ2dlciBoYXMgYSBXSEVOIHF1YWxpZmljYXRpb24sIGFkZCB0aGF0ICovCisJdmFsdWUgPSBm YXN0Z2V0YXR0cih0cmlnZ2VyVHVwbGUsIEFudW1fcGdfdHJpZ2dlcl90Z3F1YWwsCisJCQkJCQlS ZWxhdGlvbkdldERlc2NyKHBnX3RyaWdnZXIpLCAmaXNudWxsKTsKKwlpZiAoIWlzbnVsbCkKKwl7 CisJCWJvb2wJCWZvdW5kX3dob2xlX3JvdzsKKworCQlxdWFsID0gc3RyaW5nVG9Ob2RlKFRleHRE YXR1bUdldENTdHJpbmcodmFsdWUpKTsKKworCQkvKiBBZGp1c3QgVmFycyB0byBtYXRjaCBuZXcg dGFibGUncyBjb2x1bW4gbnVtYmVyaW5nICovCisJCXF1YWwgPSBtYXBfdmFyaWFibGVfYXR0bm9z KHF1YWwsIFBSUzJfTkVXX1ZBUk5PLCAwLAorCQkJCQkJCQkgICBhdHRtYXAsCisJCQkJCQkJCSAg IEludmFsaWRPaWQsCisJCQkJCQkJCSAgICZmb3VuZF93aG9sZV9yb3cpOworCisJCS8qIEFzIGlu IGV4cGFuZFRhYmxlTGlrZUNsYXVzZSwgcmVqZWN0IHdob2xlLXJvdyB2YXJpYWJsZXMgKi8KKwkJ aWYgKGZvdW5kX3dob2xlX3JvdykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coImNhbm5vdCBjb252ZXJ0 IHdob2xlLXJvdyB0YWJsZSByZWZlcmVuY2UiKSwKKwkJCQkJZXJyZGV0YWlsKCJUcmlnZ2VyIFwi JXNcIiBjb250YWlucyBhIHdob2xlLXJvdyB0YWJsZSByZWZlcmVuY2UuIiwKKwkJCQkJCQkgIE5h bWVTdHIodHJpZ0Zvcm0tPnRnbmFtZSkpKTsKKworCQlxdWFsID0gbWFwX3ZhcmlhYmxlX2F0dG5v cyhxdWFsLCBQUlMyX09MRF9WQVJOTywgMCwKKwkJCQkJCQkJICAgYXR0bWFwLAorCQkJCQkJCQkg ICBJbnZhbGlkT2lkLAorCQkJCQkJCQkgICAmZm91bmRfd2hvbGVfcm93KTsKKworCQkvKiBBcyBp biBleHBhbmRUYWJsZUxpa2VDbGF1c2UsIHJlamVjdCB3aG9sZS1yb3cgdmFyaWFibGVzICovCisJ CWlmIChmb3VuZF93aG9sZV9yb3cpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgY29udmVy dCB3aG9sZS1yb3cgdGFibGUgcmVmZXJlbmNlIiksCisJCQkJCWVycmRldGFpbCgiVHJpZ2dlciBc IiVzXCIgY29udGFpbnMgYSB3aG9sZS1yb3cgdGFibGUgcmVmZXJlbmNlLiIsCisJCQkJCQkJICBO YW1lU3RyKHRyaWdGb3JtLT50Z25hbWUpKSk7CisJfQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dl ciBvbGQgdHJhbnNpdGlvbiB0YWJsZSAqLworCXZhbHVlID0gZmFzdGdldGF0dHIodHJpZ2dlclR1 cGxlLCBBbnVtX3BnX3RyaWdnZXJfdGdvbGR0YWJsZSwKKwkJCQkJCVJlbGF0aW9uR2V0RGVzY3Io cGdfdHJpZ2dlciksICZpc251bGwpOworCWlmICghaXNudWxsKQorCXsKKwkJVHJpZ2dlclRyYW5z aXRpb24gKm9sZCA9IG1ha2VOb2RlKFRyaWdnZXJUcmFuc2l0aW9uKTsKKworCQlvbGQtPmlzTmV3 ID0gZmFsc2U7CisJCW9sZC0+bmFtZSA9IHBzdHJkdXAoTmFtZVN0cigqRGF0dW1HZXROYW1lKHZh bHVlKSkpOworCQlvbGQtPmlzVGFibGUgPSB0cnVlOworCQl0cmFuc2l0aW9uUmVscyA9IGxhcHBl bmQodHJhbnNpdGlvblJlbHMsIG9sZCk7CisJfQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dlciBu ZXcgdHJhbnNpdGlvbiB0YWJsZSAqLworCXZhbHVlID0gZmFzdGdldGF0dHIodHJpZ2dlclR1cGxl LCBBbnVtX3BnX3RyaWdnZXJfdGduZXd0YWJsZSwKKwkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocGdf dHJpZ2dlciksCisJCQkJCQkmaXNudWxsKTsKKwlpZiAoIWlzbnVsbCkKKwl7CisJCVRyaWdnZXJU cmFuc2l0aW9uICpuZXcgPSBtYWtlTm9kZShUcmlnZ2VyVHJhbnNpdGlvbik7CisKKwkJbmV3LT5p c05ldyA9IHRydWU7CisJCW5ldy0+bmFtZSA9IHBzdHJkdXAoTmFtZVN0cigqRGF0dW1HZXROYW1l KHZhbHVlKSkpOworCQluZXctPmlzVGFibGUgPSB0cnVlOworCQl0cmFuc2l0aW9uUmVscyA9IGxh cHBlbmQodHJhbnNpdGlvblJlbHMsIG5ldyk7CisJfQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dl ciBjb25zdHJhaW50J3MgRlJPTSB0YWJsZSAqLworCWlmIChPaWRJc1ZhbGlkKHRyaWdGb3JtLT50 Z2NvbnN0cnJlbGlkKSkKKwl7CisJCS8qCisJCSAqIEFjcXVpcmUgdGhlIEFjY2Vzc1NoYXJlTG9j ayBsb2NrIG9uIHRnY29uc3RycmVsaWQgbm93LCBhcyBpdCB3aWxsCisJCSAqIGJlIHJlcXVpcmVk IGxhdGVyIGluIENyZWF0ZVRyaWdnZXJGaXJpbmdPbi4KKwkJICovCisJCUxvY2tSZWxhdGlvbk9p ZCh0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQljb25zdHJy ZWwgPQorCQkJbWFrZVJhbmdlVmFyKGdldF9uYW1lc3BhY2VfbmFtZShnZXRfcmVsX25hbWVzcGFj ZSh0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCkpLAorCQkJCQkJIGdldF9yZWxfbmFtZSh0cmlnRm9y bS0+dGdjb25zdHJyZWxpZCksCisJCQkJCQkgLTEpOworCX0KKworCXRyaWdTdG10ID0gbWFrZU5v ZGUoQ3JlYXRlVHJpZ1N0bXQpOworCXRyaWdTdG10LT5yZXBsYWNlID0gZmFsc2U7CisJdHJpZ1N0 bXQtPmlzY29uc3RyYWludCA9IE9pZElzVmFsaWQodHJpZ0Zvcm0tPnRnY29uc3RyYWludCk7CisJ dHJpZ1N0bXQtPnRyaWduYW1lID0gcHN0cmR1cChOYW1lU3RyKHRyaWdGb3JtLT50Z25hbWUpKTsK Kwl0cmlnU3RtdC0+cmVsYXRpb24gPSBoZWFwUmVsOworCXRyaWdTdG10LT5mdW5jbmFtZSA9IGZ1 bmNuYW1lOworCXRyaWdTdG10LT5hcmdzID0gdHJpZ2FyZ3M7CisJdHJpZ1N0bXQtPnJvdyA9IFRS SUdHRVJfRk9SX1JPVyh0cmlnRm9ybS0+dGd0eXBlKTsKKwl0cmlnU3RtdC0+dGltaW5nID0gdHJp Z0Zvcm0tPnRndHlwZSAmIFRSSUdHRVJfVFlQRV9USU1JTkdfTUFTSzsKKwl0cmlnU3RtdC0+ZXZl bnRzID0gdHJpZ0Zvcm0tPnRndHlwZSAmIFRSSUdHRVJfVFlQRV9FVkVOVF9NQVNLOworCXRyaWdT dG10LT5jb2x1bW5zID0gY29sczsKKwl0cmlnU3RtdC0+d2hlbkNsYXVzZSA9IHF1YWw7CisJdHJp Z1N0bXQtPnRyYW5zaXRpb25SZWxzID0gdHJhbnNpdGlvblJlbHM7CisJdHJpZ1N0bXQtPmRlZmVy cmFibGUgPSB0cmlnRm9ybS0+dGdkZWZlcnJhYmxlOworCXRyaWdTdG10LT5pbml0ZGVmZXJyZWQg PSB0cmlnRm9ybS0+dGdpbml0ZGVmZXJyZWQ7CisJdHJpZ1N0bXQtPmNvbnN0cnJlbCA9IGNvbnN0 cnJlbDsKKwl0cmlnU3RtdC0+dHJpZ2NvbW1lbnQgPSBOVUxMOworCXRyaWdTdG10LT50cmFuc2Zv cm1lZCA9IHRydWU7CisKKwlzeXN0YWJsZV9lbmRzY2FuKHRnc2Nhbik7CisJdGFibGVfY2xvc2Uo cGdfdHJpZ2dlciwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiB0cmlnU3RtdDsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IDcxM2VlNWMxMGEyLi5lZTljYmJmYzZjNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC03 ODYsNyArNzg2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogCVRBQkxFIFRBQkxFUyBU QUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBURU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBURVhU X1AgVEhFTgogCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJB TlNGT1JNCi0JVFJFQVQgVFJJR0dFUiBUUklNIFRSVUVfUAorCVRSRUFUIFRSSUdHRVIgVFJJR0dF UlMgVFJJTSBUUlVFX1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKIAlVRVND QVBFIFVOQk9VTkRFRCBVTkNPTkRJVElPTkFMIFVOQ09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9O IFVOSVFVRSBVTktOT1dOCkBAIC00Mjk2LDYgKzQyOTYsNyBAQCBUYWJsZUxpa2VPcHRpb246CiAJ CQkJfCBJTkRFWEVTCQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0lOREVYRVM7IH0KIAkJCQl8 IFNUQVRJU1RJQ1MJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9TVEFUSVNUSUNTOyB9CiAJCQkJ fCBTVE9SQUdFCQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0U7IH0KKwkJCQl8IFRS SUdHRVJTCQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX1RSSUdHRVJTOyB9CiAJCQkJfCBBTEwJ CQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0FMTDsgfQogCQk7CiAKQEAgLTYxNTAsNiArNjE1 MSw4IEBAIENyZWF0ZVRyaWdTdG10OgogCQkJCQluLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQkJ CW4tPmluaXRkZWZlcnJlZCA9IGZhbHNlOwogCQkJCQluLT5jb25zdHJyZWwgPSBOVUxMOworCQkJ CQluLT50cmlnY29tbWVudCA9IE5VTEw7CisJCQkJCW4tPnRyYW5zZm9ybWVkID0gZmFsc2U7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCSAgfCBDUkVBVEUgb3B0X29yX3JlcGxhY2Ug Q09OU1RSQUlOVCBUUklHR0VSIG5hbWUgQUZURVIgVHJpZ2dlckV2ZW50cyBPTgpAQCAtNjIwMCw2 ICs2MjAzLDggQEAgQ3JlYXRlVHJpZ1N0bXQ6CiAJCQkJCQkJCSAgICZuLT5kZWZlcnJhYmxlLCAm bi0+aW5pdGRlZmVycmVkLCAmZHVtbXksCiAJCQkJCQkJCSAgIE5VTEwsIE5VTEwsIHl5c2Nhbm5l cik7CiAJCQkJCW4tPmNvbnN0cnJlbCA9ICQxMDsKKwkJCQkJbi0+dHJpZ2NvbW1lbnQgPSBOVUxM OworCQkJCQluLT50cmFuc2Zvcm1lZCA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQogCQk7CkBAIC0xODE5NCw2ICsxODE5OSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJ CXwgVFJBTlNBQ1RJT04KIAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSSUdHRVIKKwkJCXwgVFJJR0dF UlMKIAkJCXwgVFJVTkNBVEUKIAkJCXwgVFJVU1RFRAogCQkJfCBUWVBFX1AKQEAgLTE4ODQ3LDYg KzE4ODUzLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJF QVQKIAkJCXwgVFJJR0dFUgorCQkJfCBUUklHR0VSUwogCQkJfCBUUklNCiAJCQl8IFRSVUVfUAog CQkJfCBUUlVOQ0FURQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggYjVmNGM3MjQ1 OWQuLmNhNDQ2ZDVlMmQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTM5LDEy ICszOSwxNCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJj b21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpA QCAtMTMyMSw3ICsxMzIzLDggQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRD b250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAkJIENSRUFURV9U QUJMRV9MSUtFX0dFTkVSQVRFRCB8CiAJCSBDUkVBVEVfVEFCTEVfTElLRV9DT05TVFJBSU5UUyB8 CiAJCSBDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTIHwKLQkJIENSRUFURV9UQUJMRV9MSUtFX1NU QVRJU1RJQ1MpKQorCQkgQ1JFQVRFX1RBQkxFX0xJS0VfU1RBVElTVElDUyB8CisJCSBDUkVBVEVf VEFCTEVfTElLRV9UUklHR0VSUykpCiAJewogCQl0YWJsZV9saWtlX2NsYXVzZS0+cmVsYXRpb25P aWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKIAkJY3h0LT5saWtlY2xhdXNlcyA9IGxh cHBlbmQoY3h0LT5saWtlY2xhdXNlcywgdGFibGVfbGlrZV9jbGF1c2UpOwpAQCAtMTYyNSw2ICsx NjI4LDM4IEBAIGV4cGFuZFRhYmxlTGlrZUNsYXVzZShSYW5nZVZhciAqaGVhcFJlbCwgVGFibGVM aWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYXVzZSkKIAkJbGlzdF9mcmVlKHBhcmVudF9leHRzdGF0 cyk7CiAJfQogCisJLyogUHJvY2VzcyB0cmlnZ2VycyBpZiByZXF1aXJlZCAqLworCWlmICgodGFi bGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9UUklHR0VSUykgJiYK KwkJcmVsYXRpb24tPnRyaWdkZXNjICE9IE5VTEwpCisJeworCQlib29sCQlpbmNsdWRlX2NvbW1l bnRzID0gKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09N TUVOVFMpOworCisJCWZvciAoaW50IG50ID0gMDsgbnQgPCByZWxhdGlvbi0+dHJpZ2Rlc2MtPm51 bXRyaWdnZXJzOyBudCsrKQorCQl7CisJCQlUcmlnZ2VyICAgICp0cmlnID0gcmVsYXRpb24tPnRy aWdkZXNjLT50cmlnZ2VycyArIG50OworCQkJT2lkCQkJdHJpZ29pZCA9IHRyaWctPnRnb2lkOwor CQkJQ3JlYXRlVHJpZ1N0bXQgKnRyaWdfc3RtdDsKKworCQkJLyogV2UgZG8gbm90IGNvcHkgaW50 ZXJuYWwgdHJpZ2dlciB0byB0aGUgbmV3IHRhYmxlICovCisJCQlpZiAodHJpZy0+dGdpc2ludGVy bmFsKQorCQkJCWNvbnRpbnVlOworCisJCQl0cmlnX3N0bXQgPSBnZW5lcmF0ZUNsb25lZFRyaWdn ZXJTdG10KGhlYXBSZWwsIHRyaWdvaWQsCisJCQkJCQkJCQkJCQkgIHJlbGF0aW9uLCBhdHRtYXAp OworCisJCQkvKiBDb3B5IGNvbW1lbnQgb24gdHJpZ2dlciwgaWYgcmVxdWVzdGVkICovCisJCQlp ZiAoaW5jbHVkZV9jb21tZW50cykKKwkJCXsKKwkJCQljb21tZW50ID0gR2V0Q29tbWVudCh0cmln b2lkLCBUcmlnZ2VyUmVsYXRpb25JZCwgMCk7CisKKwkJCQkvKiBXZSBtYWtlIHVzZSBvZiBDcmVh dGVUcmlnU3RtdCdzIHRyaWdjb21tZW50IG9wdGlvbiAqLworCQkJCXRyaWdfc3RtdC0+dHJpZ2Nv bW1lbnQgPSBjb21tZW50OworCQkJfQorCisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgdHJp Z19zdG10KTsKKwkJfQorCX0KKwogCS8qIERvbmUgd2l0aCBjaGlsZCByZWwgKi8KIAl0YWJsZV9j bG9zZShjaGlsZHJlbCwgTm9Mb2NrKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdHJpZ2dlci5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCmluZGV4IDU1NmM4 NmJmNWUxLi44NzBiYzIwNjgyMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaApAQCAtMjY4LDYgKzI2 OCwxMCBAQCBleHRlcm4gdm9pZCBBZnRlclRyaWdnZXJCZWdpblN1YlhhY3Qodm9pZCk7CiBleHRl cm4gdm9pZCBBZnRlclRyaWdnZXJFbmRTdWJYYWN0KGJvb2wgaXNDb21taXQpOwogZXh0ZXJuIHZv aWQgQWZ0ZXJUcmlnZ2VyU2V0U3RhdGUoQ29uc3RyYWludHNTZXRTdG10ICpzdG10KTsKIGV4dGVy biBib29sIEFmdGVyVHJpZ2dlclBlbmRpbmdPblJlbChPaWQgcmVsaWQpOworZXh0ZXJuIENyZWF0 ZVRyaWdTdG10ICpnZW5lcmF0ZUNsb25lZFRyaWdnZXJTdG10KFJhbmdlVmFyICpoZWFwUmVsLAor CQkJCQkJCQkJCQkJIE9pZCBzb3VyY2VfdHJpZ2lkLAorCQkJCQkJCQkJCQkJIFJlbGF0aW9uIHNv dXJjZV9yZWwsCisJCQkJCQkJCQkJCQkgY29uc3QgQXR0ck1hcCAqYXR0bWFwKTsKIAogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDY0NmQ2Y2VkNzYzLi41YzNkNTc5ODJkZSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtNzk1LDYgKzc5NSw3IEBAIHR5cGVkZWYgZW51bSBUYWJsZUxp a2VPcHRpb24KIAlDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTID0gMSA8PCA2LAogCUNSRUFURV9U QUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8IDcsCiAJQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFH RSA9IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVfTElLRV9UUklHR0VSUyA9IDEgPDwgOSwKIAlDUkVB VEVfVEFCTEVfTElLRV9BTEwgPSBQR19JTlQzMl9NQVgKIH0gVGFibGVMaWtlT3B0aW9uOwogCkBA IC0zMTU0LDYgKzMxNTUsOSBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVUcmlnU3RtdAogCWJvb2wJ CWRlZmVycmFibGU7CQkvKiBbTk9UXSBERUZFUlJBQkxFICovCiAJYm9vbAkJaW5pdGRlZmVycmVk OwkvKiBJTklUSUFMTFkge0RFRkVSUkVEfElNTUVESUFURX0gKi8KIAlSYW5nZVZhciAgICpjb25z dHJyZWw7CQkvKiBvcHBvc2l0ZSByZWxhdGlvbiwgaWYgUkkgdHJpZ2dlciAqLworCWNoYXIJICAg KnRyaWdjb21tZW50OwkvKiBjb21tZW50IHRvIGFwcGx5IHRvIHRyaWdnZXIsIG9yIE5VTEwgKi8K Kwlib29sCQl0cmFuc2Zvcm1lZDsJLyogdHJ1ZSBtZWFucyBubyBuZWVkIGRvIHBhcnNlIGFuYWx5 c2lzIGZvcgkJCQkJCQkgKgorCQkJCQkJCQkgKiB3aGVuQ2xhdXNlICovCiB9IENyZWF0ZVRyaWdT dG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjc3 NTNjNWM4YTguLjAwYjg4MDNmNWFhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00NjQsNiArNDY0LDcg QEAgUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFOU0FDVElPTiwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNmb3JtIiwgVFJBTlNGT1JNLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmVhdCIsIFRSRUFULCBD T0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJpZ2dlciIsIFRSSUdH RVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInRyaWdnZXJz IiwgVFJJR0dFUlMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InRyaW0iLCBUUklNLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dHJ1ZSIsIFRSVUVfUCwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InRydW5jYXRlIiwgVFJVTkNBVEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXgg ZDNjMzVjMTQ4NDcuLjA2NjY1NTZlNWU2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApAQCAtNjMxLDYgKzYzMSwxMyBAQCBOb3QtbnVsbCBj b25zdHJhaW50czoKICAgICAiY3RsX3RhYmxlX2Ffbm90X251bGwiIE5PVCBOVUxMICJhIgogICAg ICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCiAKKy0tIHRyaWdnZXJfZnVuYyB3 YXMgY3JlYXRlZCBpbiB0cmlnZ2Vycy5zcWwKK0NSRUFURSBUUklHR0VSIHRyaWd0ZXN0X2JlZm9y ZV9zdG10IEJFRk9SRSBERUxFVEUgT1IgVVBEQVRFIE9OIGN0bF90YWJsZQorRk9SIEVBQ0ggUk9X IFdIRU4gKE9MRC5hID4gMCkKK0VYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygndHJpZ3Rl c3RfYmVmb3JlX3N0bXQnKTsKK0NSRUFURSBUUklHR0VSIHRyaWd0ZXN0X2FmdGVyX3N0bXQgQUZU RVIgVVBEQVRFIE9GIGEsIGIgT04gY3RsX3RhYmxlCitGT1IgRUFDSCBTVEFURU1FTlQKK0VYRUNV VEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygndHJpZ3Rlc3RfYmVmb3JlX3N0bXQnKTsKIC0tIFRl c3QgRVhDTFVESU5HIEFMTAogQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUx KExJS0UgY3RsX3RhYmxlIEVYQ0xVRElORyBBTEwpIFNFUlZFUiBjdGxfczA7CiBcZCsgY3RsX2Zv cmVpZ25fdGFibGUxCkBAIC02NzksNiArNjg2LDkgQEAgU3RhdGlzdGljcyBvYmplY3RzOgogTm90 LW51bGwgY29uc3RyYWludHM6CiAgICAgImN0bF90YWJsZV9hX25vdF9udWxsIiBOT1QgTlVMTCAi YSIKICAgICAiY3RsX3RhYmxlX2Rfbm90X251bGwiIE5PVCBOVUxMICJkIgorVHJpZ2dlcnM6Cisg ICAgdHJpZ3Rlc3RfYWZ0ZXJfc3RtdCBBRlRFUiBVUERBVEUgT0YgYSwgYiBPTiBjdGxfZm9yZWln bl90YWJsZTIgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5j KCd0cmlndGVzdF9iZWZvcmVfc3RtdCcpCisgICAgdHJpZ3Rlc3RfYmVmb3JlX3N0bXQgQkVGT1JF IERFTEVURSBPUiBVUERBVEUgT04gY3RsX2ZvcmVpZ25fdGFibGUyIEZPUiBFQUNIIFJPVyBXSEVO IChvbGQuYSA+IDApIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCd0cmlndGVzdF9iZWZv cmVfc3RtdCcpCiBTZXJ2ZXI6IGN0bF9zMAogCiAtLSBcZCsgZG9lcyBub3QgcmVwb3J0IHRoZSB2 YWx1ZSBvZiBhdHRjb21wcmVzc2lvbiBmb3IgYSBmb3JlaWduIHRhYmxlLCBzbwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmlnZ2Vycy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3RyaWdnZXJzLm91dAppbmRleCAxYWNkZDEyZDI5ZS4uN2U1NDEzMDUwYmUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CkBAIC0xNjUsNiArMTY1LDcg QEAgZHJvcCB0YWJsZSB0cmlndGVzdDsKIENSRUFURSBUQUJMRSBsb2dfdGFibGUgKHRzdGFtcCB0 aW1lc3RhbXAgZGVmYXVsdCB0aW1lb2ZkYXkoKTo6dGltZXN0YW1wKTsKIENSRUFURSBUQUJMRSBt YWluX3RhYmxlIChhIGludCB1bmlxdWUsIGIgaW50KTsKIENPUFkgbWFpbl90YWJsZSAoYSxiKSBG Uk9NIHN0ZGluOworLS0gVGhpcyBmdW5jdGlvbiBhbHNvIHVzZWQgaW4gY3JlYXRlX3RhYmxlX2xp a2Uuc3FsLCBkb24ndCBkcm9wIGl0LgogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygpIFJF VFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFTICcKIEJFR0lOCiAJUkFJU0UgTk9USUNF ICcndHJpZ2dlcl9mdW5jKCUpIGNhbGxlZDogYWN0aW9uID0gJSwgd2hlbiA9ICUsIGxldmVsID0g JScnLCBUR19BUkdWWzBdLCBUR19PUCwgVEdfV0hFTiwgVEdfTEVWRUw7CkBAIC0xNzQsNiArMTc1 LDIwIEBAIENSRUFURSBUUklHR0VSIGJlZm9yZV9pbnNfc3RtdF90cmlnIEJFRk9SRSBJTlNFUlQg T04gbWFpbl90YWJsZQogRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdn ZXJfZnVuYygnYmVmb3JlX2luc19zdG10Jyk7CiBDUkVBVEUgVFJJR0dFUiBhZnRlcl9pbnNfc3Rt dF90cmlnIEFGVEVSIElOU0VSVCBPTiBtYWluX3RhYmxlCiBGT1IgRUFDSCBTVEFURU1FTlQgRVhF Q1VURSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCdhZnRlcl9pbnNfc3RtdCcpOworQ1JFQVRFIFRS SUdHRVIgd2hvbGV0cmlnIEJFRk9SRSBVUERBVEUgT04gbWFpbl90YWJsZSBGT1IgRUFDSCBST1cK K1dIRU4gKE9MRCBJUyBOT1QgTlVMTCkKK0VYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygn bW9kaWZpZWRfYScpOworQ1JFQVRFIFRBQkxFIG1haW5fdGFibGUxKExJS0UgbWFpbl90YWJsZSBJ TkNMVURJTkcgVFJJR0dFUlMpOyAtLWVycm9yLCB3aG9sZXJvdyByZWZlcmVuY2UKK0VSUk9SOiAg Y2Fubm90IGNvbnZlcnQgd2hvbGUtcm93IHRhYmxlIHJlZmVyZW5jZQorREVUQUlMOiAgVHJpZ2dl ciAid2hvbGV0cmlnIiBjb250YWlucyBhIHdob2xlLXJvdyB0YWJsZSByZWZlcmVuY2UuCitEUk9Q IFRSSUdHRVIgd2hvbGV0cmlnIE9OIG1haW5fdGFibGU7CitDUkVBVEUgVFJJR0dFUiB3aG9sZXRy aWcgQkVGT1JFIFVQREFURSBPTiBtYWluX3RhYmxlIEZPUiBFQUNIIFJPVworV0hFTiAoTkVXIElT IE5PVCBOVUxMKQorRVhFQ1VURSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCdtb2RpZmllZF9hJyk7 CitDUkVBVEUgVEFCTEUgbWFpbl90YWJsZTEoTElLRSBtYWluX3RhYmxlIElOQ0xVRElORyBUUklH R0VSUyk7IC0tZXJyb3IsIHdob2xlcm93IHJlZmVyZW5jZQorRVJST1I6ICBjYW5ub3QgY29udmVy dCB3aG9sZS1yb3cgdGFibGUgcmVmZXJlbmNlCitERVRBSUw6ICBUcmlnZ2VyICJ3aG9sZXRyaWci IGNvbnRhaW5zIGEgd2hvbGUtcm93IHRhYmxlIHJlZmVyZW5jZS4KK0RST1AgVFJJR0dFUiB3aG9s ZXRyaWcgT04gbWFpbl90YWJsZTsKIC0tCiAtLSBpZiBuZWl0aGVyICdGT1IgRUFDSCBST1cnIG5v ciAnRk9SIEVBQ0ggU1RBVEVNRU5UJyB3YXMgc3BlY2lmaWVkLAogLS0gQ1JFQVRFIFRSSUdHRVIg c2hvdWxkIGRlZmF1bHQgdG8gJ0ZPUiBFQUNIIFNUQVRFTUVOVCcKQEAgLTM5NCw2ICs0MDksNDQg QEAgTk9USUNFOiAgdHJpZ2dlcl9mdW5jKGFmdGVyX3VwZF9hX2Jfcm93KSBjYWxsZWQ6IGFjdGlv biA9IFVQREFURSwgd2hlbiA9IEFGVEVSLAogTk9USUNFOiAgdHJpZ2dlcl9mdW5jKGFmdGVyX3Vw ZF9iX3JvdykgY2FsbGVkOiBhY3Rpb24gPSBVUERBVEUsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBS T1cKIE5PVElDRTogIHRyaWdnZXJfZnVuYyhhZnRlcl91cGRfYl9zdG10KSBjYWxsZWQ6IGFjdGlv biA9IFVQREFURSwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAogTk9USUNFOiAgdHJp Z2dlcl9mdW5jKGFmdGVyX3VwZF9zdG10KSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwgd2hlbiA9 IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAorLS1DUkVBVEUgVEFCTEUgTElLRSBJTkNMVURJTkcg VFJJR0dFUlMgdGVzdHMKK0NPTU1FTlQgT04gVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBP TiBtYWluX3RhYmxlIElTICd0cmlnZ2VyIGJlZm9yZV9pbnNfc3RtdF90cmlnJzsKK0NSRUFURSBU QUJMRSBtYWluX3RhYmxlMShjIGludCwgTElLRSBtYWluX3RhYmxlIElOQ0xVRElORyBUUklHR0VS UyBJTkNMVURJTkcgQ09NTUVOVFMpOworU0VMRUNUICBwZ19nZXRfdHJpZ2dlcmRlZihvaWQpCitG Uk9NICAgIHBnX3RyaWdnZXIKK1dIRVJFIE5PVCB0Z2lzaW50ZXJuYWwgQU5EIHRncmVsaWQgSU4g KCdtYWluX3RhYmxlJzo6cmVnY2xhc3MsICdtYWluX3RhYmxlMSc6OnJlZ2NsYXNzKQorT1JERVIg QlkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4dCBDT0xMQVRFICJDIjsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF90cmlnZ2VyZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfaW5zX3N0bXRfdHJpZyBBRlRFUiBJTlNF UlQgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgRlVOQ1RJ T04gdHJpZ2dlcl9mdW5jKCdhZnRlcl9pbnNfc3RtdCcpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJf aW5zX3N0bXRfdHJpZyBBRlRFUiBJTlNFUlQgT04gcHVibGljLm1haW5fdGFibGUxIEZPUiBFQUNI IFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYWZ0ZXJfaW5zX3N0bXQn KQorIENSRUFURSBUUklHR0VSIGFmdGVyX3VwZF9hX2Jfcm93X3RyaWcgQUZURVIgVVBEQVRFIE9G IGEsIGIgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04g dHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRfYV9iX3JvdycpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJf dXBkX2FfYl9yb3dfdHJpZyBBRlRFUiBVUERBVEUgT0YgYSwgYiBPTiBwdWJsaWMubWFpbl90YWJs ZTEgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRf YV9iX3JvdycpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfdXBkX2Jfcm93X3RyaWcgQUZURVIgVVBE QVRFIE9GIGIgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJ T04gdHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRfYl9yb3cnKQorIENSRUFURSBUUklHR0VSIGFmdGVy X3VwZF9iX3Jvd190cmlnIEFGVEVSIFVQREFURSBPRiBiIE9OIHB1YmxpYy5tYWluX3RhYmxlMSBG T1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX2Z1bmMoJ2FmdGVyX3VwZF9iX3Jv dycpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfdXBkX2Jfc3RtdF90cmlnIEFGVEVSIFVQREFURSBP RiBiIE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNU SU9OIHRyaWdnZXJfZnVuYygnYWZ0ZXJfdXBkX2Jfc3RtdCcpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0 ZXJfdXBkX2Jfc3RtdF90cmlnIEFGVEVSIFVQREFURSBPRiBiIE9OIHB1YmxpYy5tYWluX3RhYmxl MSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX2Z1bmMoJ2FmdGVy X3VwZF9iX3N0bXQnKQorIENSRUFURSBUUklHR0VSIGFmdGVyX3VwZF9zdG10X3RyaWcgQUZURVIg VVBEQVRFIE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZV TkNUSU9OIHRyaWdnZXJfZnVuYygnYWZ0ZXJfdXBkX3N0bXQnKQorIENSRUFURSBUUklHR0VSIGFm dGVyX3VwZF9zdG10X3RyaWcgQUZURVIgVVBEQVRFIE9OIHB1YmxpYy5tYWluX3RhYmxlMSBGT1Ig RUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX2Z1bmMoJ2FmdGVyX3VwZF9z dG10JykKKyBDUkVBVEUgVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJU IE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9O IHRyaWdnZXJfZnVuYygnYmVmb3JlX2luc19zdG10JykKKyBDUkVBVEUgVFJJR0dFUiBiZWZvcmVf aW5zX3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHB1YmxpYy5tYWluX3RhYmxlMSBGT1IgRUFD SCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX2Z1bmMoJ2JlZm9yZV9pbnNfc3Rt dCcpCisgQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX3VwZF9hX3Jvd190cmlnIEJFRk9SRSBVUERBVEUg T0YgYSBPTiBwdWJsaWMubWFpbl90YWJsZSBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiB0 cmlnZ2VyX2Z1bmMoJ2JlZm9yZV91cGRfYV9yb3cnKQorIENSRUFURSBUUklHR0VSIGJlZm9yZV91 cGRfYV9yb3dfdHJpZyBCRUZPUkUgVVBEQVRFIE9GIGEgT04gcHVibGljLm1haW5fdGFibGUxIEZP UiBFQUNIIFJPVyBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYmVmb3JlX3VwZF9hX3Jv dycpCisgQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX3VwZF9hX3N0bXRfdHJpZyBCRUZPUkUgVVBEQVRF IE9GIGEgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgRlVO Q1RJT04gdHJpZ2dlcl9mdW5jKCdiZWZvcmVfdXBkX2Ffc3RtdCcpCisgQ1JFQVRFIFRSSUdHRVIg YmVmb3JlX3VwZF9hX3N0bXRfdHJpZyBCRUZPUkUgVVBEQVRFIE9GIGEgT04gcHVibGljLm1haW5f dGFibGUxIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygn YmVmb3JlX3VwZF9hX3N0bXQnKQorKDE2IHJvd3MpCisKK1NFTEVDVCAgcGMucmVsbmFtZSwgcGQu dGduYW1lLCBvYmpfZGVzY3JpcHRpb24ocGQub2lkLCAncGdfdHJpZ2dlcicpCitGUk9NICAgIHBn X3RyaWdnZXIgcGQgSk9JTiBwZ19jbGFzcyBwYworT04gICAgICBwYy5vaWQgPSBwZC50Z3JlbGlk IEFORCBwZC50Z25hbWUgPSAnYmVmb3JlX2luc19zdG10X3RyaWcnCitPUkRFUiBCWSAxOworICAg cmVsbmFtZSAgIHwgICAgICAgIHRnbmFtZSAgICAgICAgfCAgICAgICBvYmpfZGVzY3JpcHRpb24g ICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIG1haW5fdGFibGUgIHwgYmVmb3JlX2luc19zdG10X3RyaWcg fCB0cmlnZ2VyIGJlZm9yZV9pbnNfc3RtdF90cmlnCisgbWFpbl90YWJsZTEgfCBiZWZvcmVfaW5z X3N0bXRfdHJpZyB8IHRyaWdnZXIgYmVmb3JlX2luc19zdG10X3RyaWcKKygyIHJvd3MpCisKK0NP TU1FTlQgT04gVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBPTiBtYWluX3RhYmxlIElTIE5V TEw7CiAtLQogLS0gVGVzdCBjYXNlIGZvciBidWcgd2l0aCBCRUZPUkUgdHJpZ2dlciBmb2xsb3dl ZCBieSBBRlRFUiB0cmlnZ2VyIHdpdGggV0hFTgogLS0KQEAgLTQyMiw2ICs0NzUsMjAgQEAgTk9U SUNFOiAgZHVtbXlfdXBkYXRlX2Z1bmMoYWZ0ZXJiKSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwg b2xkID0gKHQpLCBuZXcgPSAoZikKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsK IE5PVElDRTogIGR1bW15X3VwZGF0ZV9mdW5jKGJlZm9yZSkgY2FsbGVkOiBhY3Rpb24gPSBVUERB VEUsIG9sZCA9IChmKSwgbmV3ID0gKHQpCiBOT1RJQ0U6ICBkdW1teV91cGRhdGVfZnVuYyhhZnRl cmEpIGNhbGxlZDogYWN0aW9uID0gVVBEQVRFLCBvbGQgPSAoZiksIG5ldyA9ICh0KQorQ1JFQVRF IFRBQkxFIHNvbWVfdDEgKGMgSU5ULCBMSUtFIHNvbWVfdCBJTkNMVURJTkcgVFJJR0dFUlMgSU5D TFVESU5HIENPTU1FTlRTKTsKK1xkKyBzb21lX3QxCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMuc29tZV90MSIKKyAgQ29sdW1uICB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwg RGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGMgICAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAg fCAgICAgICAgICAgICAgfCAKKyBzb21lX2NvbCB8IGJvb2xlYW4gfCAgICAgICAgICAgfCBub3Qg bnVsbCB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitOb3QtbnVsbCBjb25z dHJhaW50czoKKyAgICAic29tZV90X3NvbWVfY29sX25vdF9udWxsIiBOT1QgTlVMTCAic29tZV9j b2wiCitUcmlnZ2VyczoKKyAgICBzb21lX3RyaWdfYWZ0ZXJhIEFGVEVSIFVQREFURSBPTiBzb21l X3QxIEZPUiBFQUNIIFJPVyBXSEVOIChOT1Qgb2xkLnNvbWVfY29sIEFORCBuZXcuc29tZV9jb2wp IEVYRUNVVEUgRlVOQ1RJT04gZHVtbXlfdXBkYXRlX2Z1bmMoJ2FmdGVyYScpCisgICAgc29tZV90 cmlnX2FmdGVyYiBBRlRFUiBVUERBVEUgT04gc29tZV90MSBGT1IgRUFDSCBST1cgV0hFTiAoTk9U IG5ldy5zb21lX2NvbCkgRVhFQ1VURSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYWZ0ZXJi JykKKyAgICBzb21lX3RyaWdfYmVmb3JlIEJFRk9SRSBVUERBVEUgT04gc29tZV90MSBGT1IgRUFD SCBST1cgRVhFQ1VURSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYmVmb3JlJykKKwogRFJP UCBUQUJMRSBzb21lX3Q7CiAtLSBib2d1cyBjYXNlcwogQ1JFQVRFIFRSSUdHRVIgZXJyb3JfdXBk X2FuZF9jb2wgQkVGT1JFIFVQREFURSBPUiBVUERBVEUgT0YgYSBPTiBtYWluX3RhYmxlCkBAIC04 NjEsNiArOTI4LDkgQEAgQ1JFQVRFIFRSSUdHRVIgaW5zdGVhZF9vZl91cGRhdGVfdHJpZyBJTlNU RUFEIE9GIFVQREFURSBPTiBtYWluX3ZpZXcKIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVS RSB2aWV3X3RyaWdnZXIoJ2luc3RlYWRfb2ZfdXBkJyk7CiBDUkVBVEUgVFJJR0dFUiBpbnN0ZWFk X29mX2RlbGV0ZV90cmlnIElOU1RFQUQgT0YgREVMRVRFIE9OIG1haW5fdmlldwogRk9SIEVBQ0gg Uk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHZpZXdfdHJpZ2dlcignaW5zdGVhZF9vZl9kZWwnKTsKK0NS RUFURSBUQUJMRSBtYWluX3ZpZXdfdGFibGUoTElLRSBtYWluX3ZpZXcgSU5DTFVESU5HIFRSSUdH RVJTKTsgLS1lcnJvcgorRVJST1I6ICAibWFpbl92aWV3X3RhYmxlIiBpcyBhIHRhYmxlCitERVRB SUw6ICBUYWJsZXMgY2Fubm90IGhhdmUgSU5TVEVBRCBPRiB0cmlnZ2Vycy4KIC0tIFZhbGlkIEJF Rk9SRSBzdGF0ZW1lbnQgVklFVyB0cmlnZ2VycwogQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX2luc19z dG10X3RyaWcgQkVGT1JFIElOU0VSVCBPTiBtYWluX3ZpZXcKIEZPUiBFQUNIIFNUQVRFTUVOVCBF WEVDVVRFIFBST0NFRFVSRSB2aWV3X3RyaWdnZXIoJ2JlZm9yZV92aWV3X2luc19zdG10Jyk7CkBA IC0xNzY5LDkgKzE4MzksMjEgQEAgY3JlYXRlIHRyaWdnZXIgbXlfdHJpZ2dlciBhZnRlciB1cGRh dGUgb24gbXlfdmlldyByZWZlcmVuY2luZyBvbGQgdGFibGUgYXMgb2xkX3QKICAgIGZvciBlYWNo IHN0YXRlbWVudCBleGVjdXRlIHByb2NlZHVyZSBteV90cmlnZ2VyX2Z1bmN0aW9uKCk7CiBFUlJP UjogICJteV92aWV3IiBpcyBhIHZpZXcKIERFVEFJTDogIFRyaWdnZXJzIG9uIHZpZXdzIGNhbm5v dCBoYXZlIHRyYW5zaXRpb24gdGFibGVzLgotZHJvcCBmdW5jdGlvbiBteV90cmlnZ2VyX2Z1bmN0 aW9uKCk7CitjcmVhdGUgdHJpZ2dlciBteV90cmlnZ2VyMSBiZWZvcmUgdXBkYXRlIG9mIGkgb24g bXlfdmlldworICAgZm9yIGVhY2ggc3RhdGVtZW50IGV4ZWN1dGUgcHJvY2VkdXJlIG15X3RyaWdn ZXJfZnVuY3Rpb24oKTsKK2NyZWF0ZSB0YWJsZSBteV92aWV3X2NvcHkoTElLRSBteV92aWV3IGlu Y2x1ZGluZyB0cmlnZ2Vycyk7CitcZCBteV92aWV3X2NvcHkKKyAgICAgICAgICAgIFRhYmxlICJw dWJsaWMubXlfdmlld19jb3B5IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1RyaWdnZXJzOgorICAgIG15X3RyaWdnZXIxIEJFRk9SRSBVUERBVEUgT0YgaSBPTiBteV92aWV3 X2NvcHkgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgRlVOQ1RJT04gbXlfdHJpZ2dlcl9mdW5j dGlvbigpCisKIGRyb3AgdmlldyBteV92aWV3OwogZHJvcCB0YWJsZSBteV90YWJsZTsKK2Ryb3Ag dGFibGUgbXlfdmlld19jb3B5OworZHJvcCBmdW5jdGlvbiBteV90cmlnZ2VyX2Z1bmN0aW9uKCk7 CiAtLQogLS0gVmVyaWZ5IGNhc2VzIHRoYXQgYXJlIHVuc3VwcG9ydGVkIHdpdGggcGFydGl0aW9u ZWQgdGFibGVzCiAtLQpAQCAtMjMxOCw2ICsyNDAwLDIwIEBAIGNyZWF0ZSBjb25zdHJhaW50IHRy aWdnZXIgcGFydGVkX3RyaWdfdHdvIGFmdGVyIGluc2VydCBvbiBwYXJ0ZWRfY29uc3RyCiAgIGRl ZmVycmFibGUgaW5pdGlhbGx5IGRlZmVycmVkIGVuZm9yY2VkCiAgIGZvciBlYWNoIHJvdyB3aGVu IChiYXJrKG5ldy5iKSBBTkQgbmV3LmEgJSAyID0gMSkKICAgZXhlY3V0ZSBwcm9jZWR1cmUgdHJp Z2dlcl9ub3RpY2VfYWIoKTsKK2NyZWF0ZSB0YWJsZSBwYXJ0ZWRfY29uc3RyX2NvcHkgKGxpa2Ug cGFydGVkX2NvbnN0ciBpbmNsdWRpbmcgYWxsKTsKK3NlbGVjdCAgcGdfZ2V0X3RyaWdnZXJkZWYo b2lkKQorZnJvbSAgICBwZ190cmlnZ2VyCit3aGVyZSAgIG5vdCB0Z2lzaW50ZXJuYWwgYW5kIHRn cmVsaWQgaW4gKCdwYXJ0ZWRfY29uc3RyX2NvcHknOjpyZWdjbGFzcywgJ3BhcnRlZF9jb25zdHIn OjpyZWdjbGFzcykKK29yZGVyIGJ5IHRnbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdfZ2V0X3RyaWdnZXJkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVB VEUgQ09OU1RSQUlOVCBUUklHR0VSIHBhcnRlZF90cmlnIEFGVEVSIElOU0VSVCBPTiBwdWJsaWMu cGFydGVkX2NvbnN0ciBERUZFUlJBQkxFIElOSVRJQUxMWSBJTU1FRElBVEUgRk9SIEVBQ0ggUk9X IEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9ub3RpY2VfYWIoKQorIENSRUFURSBDT05TVFJBSU5U IFRSSUdHRVIgcGFydGVkX3RyaWcgQUZURVIgSU5TRVJUIE9OIHB1YmxpYy5wYXJ0ZWRfY29uc3Ry X2NvcHkgREVGRVJSQUJMRSBJTklUSUFMTFkgSU1NRURJQVRFIEZPUiBFQUNIIFJPVyBFWEVDVVRF IEZVTkNUSU9OIHRyaWdnZXJfbm90aWNlX2FiKCkKKyBDUkVBVEUgQ09OU1RSQUlOVCBUUklHR0VS IHBhcnRlZF90cmlnX3R3byBBRlRFUiBJTlNFUlQgT04gcHVibGljLnBhcnRlZF9jb25zdHIgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQgRk9SIEVBQ0ggUk9XIFdIRU4gKChiYXJrKG5ldy5i KSBBTkQgKChuZXcuYSAlIDIpID0gMSkpKSBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfbm90aWNl X2FiKCkKKyBDUkVBVEUgQ09OU1RSQUlOVCBUUklHR0VSIHBhcnRlZF90cmlnX3R3byBBRlRFUiBJ TlNFUlQgT04gcHVibGljLnBhcnRlZF9jb25zdHJfY29weSBERUZFUlJBQkxFIElOSVRJQUxMWSBE RUZFUlJFRCBGT1IgRUFDSCBST1cgV0hFTiAoKGJhcmsobmV3LmIpIEFORCAoKG5ldy5hICUgMikg PSAxKSkpIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9ub3RpY2VfYWIoKQorKDQgcm93cykKKwor ZHJvcCB0YWJsZSBwYXJ0ZWRfY29uc3RyX2NvcHk7CiAtLSBUaGUgaW1tZWRpYXRlIGNvbnN0cmFp bnQgaXMgZmlyZWQgaW1tZWRpYXRlbHk7IHRoZSBXSEVOIGNsYXVzZSBvZiB0aGUKIC0tIGRlZmVy cmVkIGNvbnN0cmFpbnQgaXMgYWxzbyBjYWxsZWQgaW1tZWRpYXRlbHkuICBUaGUgZGVmZXJyZWQg Y29uc3RyYWludAogLS0gaXMgZmlyZWQgYXQgY29tbWl0IHRpbWUuCkBAIC0zMDk4LDYgKzMxOTQs MTggQEAgY3JlYXRlIHRyaWdnZXIgaW9jZHVfdHRfcGFydGVkX2luc2VydF90cmlnCiBjcmVhdGUg dHJpZ2dlciBpb2NkdV90dF9wYXJ0ZWRfdXBkYXRlX3RyaWcKICAgYWZ0ZXIgdXBkYXRlIG9uIGlv Y2R1X3R0X3BhcnRlZCByZWZlcmVuY2luZyBvbGQgdGFibGUgYXMgb2xkX3RhYmxlIG5ldyB0YWJs ZSBhcyBuZXdfdGFibGUKICAgZm9yIGVhY2ggc3RhdGVtZW50IGV4ZWN1dGUgcHJvY2VkdXJlIGR1 bXBfdXBkYXRlKCk7CitDUkVBVEUgVEFCTEUgaW9jZHVfdHRfcGFydGVkX2NvcHkoTElLRSBpb2Nk dV90dF9wYXJ0ZWQgSU5DTFVESU5HIFRSSUdHRVJTKTsKK1xkIGlvY2R1X3R0X3BhcnRlZF9jb3B5 CisgICAgICAgIFRhYmxlICJwdWJsaWMuaW9jZHVfdHRfcGFydGVkX2NvcHkiCisgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorVHJpZ2dlcnM6CisgICAgaW9jZHVfdHRfcGFydGVkX2luc2VydF90cmln IEFGVEVSIElOU0VSVCBPTiBpb2NkdV90dF9wYXJ0ZWRfY29weSBSRUZFUkVOQ0lORyBORVcgVEFC TEUgQVMgbmV3X3RhYmxlIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIGR1bXBf aW5zZXJ0KCkKKyAgICBpb2NkdV90dF9wYXJ0ZWRfdXBkYXRlX3RyaWcgQUZURVIgVVBEQVRFIE9O IGlvY2R1X3R0X3BhcnRlZF9jb3B5IFJFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUg TkVXIFRBQkxFIEFTIG5ld190YWJsZSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElP TiBkdW1wX3VwZGF0ZSgpCisKK0RST1AgVEFCTEUgaW9jZHVfdHRfcGFydGVkX2NvcHk7CiAtLSBp bnNlcnRzIG9ubHkKIGluc2VydCBpbnRvIGlvY2R1X3R0X3BhcnRlZCB2YWx1ZXMgKDEsICdBQUEn KSwgKDIsICdCQkInKQogICBvbiBjb25mbGljdCAoYSkgZG8KQEAgLTM1ODAsNiArMzY4OCwyNiBA QCBiZWdpbgogZW5kOwogJCQ7CiBhbHRlciBmdW5jdGlvbiB3aG9hbWkoKSBvd25lciB0byByZWdy ZXNzX2ZuX293bmVyOworLS0gQ1JFQVRFIFRBQkxFIExJS0UgSU5DTFVESU5HIFRSSUdHRVJTIGZv ciBjb25zdHJhaW50IHRyaWdnZXIKK2NyZWF0ZSBzY2hlbWEgdGVzdF90cmlnOworY3JlYXRlIHRh YmxlIHRlc3RfdHJpZy50cmlnX3QxIChpZCBpbnRlZ2VyKTsKK2NyZWF0ZSB0YWJsZSB0ZXN0X3Ry aWcudHJpZ190MiAoaWQgaW50ZWdlcik7CithbHRlciBmdW5jdGlvbiB3aG9hbWkoKSBzZXQgc2No ZW1hIHRlc3RfdHJpZzsKK2NyZWF0ZSBjb25zdHJhaW50IHRyaWdnZXIgY29uX3RyaWdfdGVzdCBh ZnRlciBpbnNlcnQgb24gdGVzdF90cmlnLnRyaWdfdDEKK2Zyb20gdGVzdF90cmlnLnRyaWdfdDIK K2RlZmVycmFibGUgaW5pdGlhbGx5IGRlZmVycmVkCitmb3IgZWFjaCByb3cKK2V4ZWN1dGUgZnVu Y3Rpb24gdGVzdF90cmlnLndob2FtaSgpOworY3JlYXRlIHRhYmxlIHRyaWdfdDFfY29weShsaWtl IHRlc3RfdHJpZy50cmlnX3QxIGluY2x1ZGluZyB0cmlnZ2Vycyk7CitzZWxlY3QgcGdfZ2V0X3Ry aWdnZXJkZWYob2lkKSBmcm9tIHBnX3RyaWdnZXIgd2hlcmUgdGdyZWxpZCA9ICd0cmlnX3QxX2Nv cHknOjpyZWdjbGFzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF90cmlnZ2VyZGVm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBDT05TVFJBSU5UIFRS SUdHRVIgY29uX3RyaWdfdGVzdCBBRlRFUiBJTlNFUlQgT04gcHVibGljLnRyaWdfdDFfY29weSBG Uk9NIHRlc3RfdHJpZy50cmlnX3QyIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEIEZPUiBF QUNIIFJPVyBFWEVDVVRFIEZVTkNUSU9OIHRlc3RfdHJpZy53aG9hbWkoKQorKDEgcm93KQorCith bHRlciBmdW5jdGlvbiB0ZXN0X3RyaWcud2hvYW1pKCkgc2V0IHNjaGVtYSBwdWJsaWM7Citkcm9w IHRhYmxlIHRlc3RfdHJpZy50cmlnX3QxLCB0ZXN0X3RyaWcudHJpZ190MiwgdHJpZ190MV9jb3B5 OworZHJvcCBzY2hlbWEgdGVzdF90cmlnOwogY3JlYXRlIHRhYmxlIGRlZmVyX3RyaWcgKGlkIGlu dGVnZXIpOwogZ3JhbnQgaW5zZXJ0IG9uIGRlZmVyX3RyaWcgdG8gcHVibGljOwogY3JlYXRlIGNv bnN0cmFpbnQgdHJpZ2dlciB3aG9hbWkgYWZ0ZXIgaW5zZXJ0IG9uIGRlZmVyX3RyaWcKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCA5MzM4OWI1N2RiZi4u NzQ1N2U3ZDk2MWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJs ZV9saWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5z cWwKQEAgLTI1OCw2ICsyNTgsMTMgQEAgQUxURVIgVEFCTEUgY3RsX3RhYmxlIEFERCBDT05TVFJB SU5UIGZvbyBDSEVDSyAoYiA9ICd0ZXh0Jyk7CiBBTFRFUiBUQUJMRSBjdGxfdGFibGUgQUxURVIg Q09MVU1OIGIgU0VUIFNUT1JBR0UgTUFJTjsKIAogXGQrIGN0bF90YWJsZQorLS0gdHJpZ2dlcl9m dW5jIHdhcyBjcmVhdGVkIGluIHRyaWdnZXJzLnNxbAorQ1JFQVRFIFRSSUdHRVIgdHJpZ3Rlc3Rf YmVmb3JlX3N0bXQgQkVGT1JFIERFTEVURSBPUiBVUERBVEUgT04gY3RsX3RhYmxlCitGT1IgRUFD SCBST1cgV0hFTiAoT0xELmEgPiAwKQorRVhFQ1VURSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCd0 cmlndGVzdF9iZWZvcmVfc3RtdCcpOworQ1JFQVRFIFRSSUdHRVIgdHJpZ3Rlc3RfYWZ0ZXJfc3Rt dCBBRlRFUiBVUERBVEUgT0YgYSwgYiBPTiBjdGxfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVAor RVhFQ1VURSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCd0cmlndGVzdF9iZWZvcmVfc3RtdCcpOwog CiAtLSBUZXN0IEVYQ0xVRElORyBBTEwKIENSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWdu X3RhYmxlMShMSUtFIGN0bF90YWJsZSBFWENMVURJTkcgQUxMKSBTRVJWRVIgY3RsX3MwOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdHJpZ2dlcnMuc3FsCmluZGV4IGNjODc4NDU1YWNlLi4wNjRkYzIyMzE0YyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbApAQCAtMTA4LDYgKzEwOCw3IEBAIENPUFkgbWFpbl90 YWJsZSAoYSxiKSBGUk9NIHN0ZGluOwogODAJMTUKIFwuCiAKKy0tIFRoaXMgZnVuY3Rpb24gYWxz byB1c2VkIGluIGNyZWF0ZV90YWJsZV9saWtlLnNxbCwgZG9uJ3QgZHJvcCBpdC4KIENSRUFURSBG VU5DVElPTiB0cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZ3NxbCBB UyAnCiBCRUdJTgogCVJBSVNFIE5PVElDRSAnJ3RyaWdnZXJfZnVuYyglKSBjYWxsZWQ6IGFjdGlv biA9ICUsIHdoZW4gPSAlLCBsZXZlbCA9ICUnJywgVEdfQVJHVlswXSwgVEdfT1AsIFRHX1dIRU4s IFRHX0xFVkVMOwpAQCAtMTIwLDYgKzEyMSwxOCBAQCBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VU RSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCdiZWZvcmVfaW5zX3N0bXQnKTsKIENSRUFURSBUUklH R0VSIGFmdGVyX2luc19zdG10X3RyaWcgQUZURVIgSU5TRVJUIE9OIG1haW5fdGFibGUKIEZPUiBF QUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2Z1bmMoJ2FmdGVyX2luc19z dG10Jyk7CiAKK0NSRUFURSBUUklHR0VSIHdob2xldHJpZyBCRUZPUkUgVVBEQVRFIE9OIG1haW5f dGFibGUgRk9SIEVBQ0ggUk9XCitXSEVOIChPTEQgSVMgTk9UIE5VTEwpCitFWEVDVVRFIFBST0NF RFVSRSB0cmlnZ2VyX2Z1bmMoJ21vZGlmaWVkX2EnKTsKK0NSRUFURSBUQUJMRSBtYWluX3RhYmxl MShMSUtFIG1haW5fdGFibGUgSU5DTFVESU5HIFRSSUdHRVJTKTsgLS1lcnJvciwgd2hvbGVyb3cg cmVmZXJlbmNlCitEUk9QIFRSSUdHRVIgd2hvbGV0cmlnIE9OIG1haW5fdGFibGU7CisKK0NSRUFU RSBUUklHR0VSIHdob2xldHJpZyBCRUZPUkUgVVBEQVRFIE9OIG1haW5fdGFibGUgRk9SIEVBQ0gg Uk9XCitXSEVOIChORVcgSVMgTk9UIE5VTEwpCitFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2Z1 bmMoJ21vZGlmaWVkX2EnKTsKK0NSRUFURSBUQUJMRSBtYWluX3RhYmxlMShMSUtFIG1haW5fdGFi bGUgSU5DTFVESU5HIFRSSUdHRVJTKTsgLS1lcnJvciwgd2hvbGVyb3cgcmVmZXJlbmNlCitEUk9Q IFRSSUdHRVIgd2hvbGV0cmlnIE9OIG1haW5fdGFibGU7CisKIC0tCiAtLSBpZiBuZWl0aGVyICdG T1IgRUFDSCBST1cnIG5vciAnRk9SIEVBQ0ggU1RBVEVNRU5UJyB3YXMgc3BlY2lmaWVkLAogLS0g Q1JFQVRFIFRSSUdHRVIgc2hvdWxkIGRlZmF1bHQgdG8gJ0ZPUiBFQUNIIFNUQVRFTUVOVCcKQEAg LTIzNCw2ICsyNDcsMTkgQEAgU0VMRUNUIHBnX2dldF90cmlnZ2VyZGVmKG9pZCkgRlJPTSBwZ190 cmlnZ2VyIFdIRVJFIHRncmVsaWQgPSAnbWFpbl90YWJsZSc6OnJlZ2MKIFVQREFURSBtYWluX3Rh YmxlIFNFVCBhID0gNTA7CiBVUERBVEUgbWFpbl90YWJsZSBTRVQgYiA9IDEwOwogCistLUNSRUFU RSBUQUJMRSBMSUtFIElOQ0xVRElORyBUUklHR0VSUyB0ZXN0cworQ09NTUVOVCBPTiBUUklHR0VS IGJlZm9yZV9pbnNfc3RtdF90cmlnIE9OIG1haW5fdGFibGUgSVMgJ3RyaWdnZXIgYmVmb3JlX2lu c19zdG10X3RyaWcnOworQ1JFQVRFIFRBQkxFIG1haW5fdGFibGUxKGMgaW50LCBMSUtFIG1haW5f dGFibGUgSU5DTFVESU5HIFRSSUdHRVJTIElOQ0xVRElORyBDT01NRU5UUyk7CitTRUxFQ1QgIHBn X2dldF90cmlnZ2VyZGVmKG9pZCkKK0ZST00gICAgcGdfdHJpZ2dlcgorV0hFUkUgTk9UIHRnaXNp bnRlcm5hbCBBTkQgdGdyZWxpZCBJTiAoJ21haW5fdGFibGUnOjpyZWdjbGFzcywgJ21haW5fdGFi bGUxJzo6cmVnY2xhc3MpCitPUkRFUiBCWSB0Z25hbWUsIHRncmVsaWQ6OnJlZ2NsYXNzOjp0ZXh0 IENPTExBVEUgIkMiOworU0VMRUNUICBwYy5yZWxuYW1lLCBwZC50Z25hbWUsIG9ial9kZXNjcmlw dGlvbihwZC5vaWQsICdwZ190cmlnZ2VyJykKK0ZST00gICAgcGdfdHJpZ2dlciBwZCBKT0lOIHBn X2NsYXNzIHBjCitPTiAgICAgIHBjLm9pZCA9IHBkLnRncmVsaWQgQU5EIHBkLnRnbmFtZSA9ICdi ZWZvcmVfaW5zX3N0bXRfdHJpZycKK09SREVSIEJZIDE7CitDT01NRU5UIE9OIFRSSUdHRVIgYmVm b3JlX2luc19zdG10X3RyaWcgT04gbWFpbl90YWJsZSBJUyBOVUxMOworCiAtLQogLS0gVGVzdCBj YXNlIGZvciBidWcgd2l0aCBCRUZPUkUgdHJpZ2dlciBmb2xsb3dlZCBieSBBRlRFUiB0cmlnZ2Vy IHdpdGggV0hFTgogLS0KQEAgLTI1OCw2ICsyODQsOCBAQCBJTlNFUlQgSU5UTyBzb21lX3QgVkFM VUVTIChUUlVFKTsKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsKIFVQREFURSBz b21lX3QgU0VUIHNvbWVfY29sID0gRkFMU0U7CiBVUERBVEUgc29tZV90IFNFVCBzb21lX2NvbCA9 IFRSVUU7CitDUkVBVEUgVEFCTEUgc29tZV90MSAoYyBJTlQsIExJS0Ugc29tZV90IElOQ0xVRElO RyBUUklHR0VSUyBJTkNMVURJTkcgQ09NTUVOVFMpOworXGQrIHNvbWVfdDEKIERST1AgVEFCTEUg c29tZV90OwogCiAtLSBib2d1cyBjYXNlcwpAQCAtNjIxLDYgKzY0OSw4IEBAIEZPUiBFQUNIIFJP VyBFWEVDVVRFIFBST0NFRFVSRSB2aWV3X3RyaWdnZXIoJ2luc3RlYWRfb2ZfdXBkJyk7CiBDUkVB VEUgVFJJR0dFUiBpbnN0ZWFkX29mX2RlbGV0ZV90cmlnIElOU1RFQUQgT0YgREVMRVRFIE9OIG1h aW5fdmlldwogRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHZpZXdfdHJpZ2dlcignaW5z dGVhZF9vZl9kZWwnKTsKIAorQ1JFQVRFIFRBQkxFIG1haW5fdmlld190YWJsZShMSUtFIG1haW5f dmlldyBJTkNMVURJTkcgVFJJR0dFUlMpOyAtLWVycm9yCisKIC0tIFZhbGlkIEJFRk9SRSBzdGF0 ZW1lbnQgVklFVyB0cmlnZ2VycwogQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX2luc19zdG10X3RyaWcg QkVGT1JFIElOU0VSVCBPTiBtYWluX3ZpZXcKIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBS T0NFRFVSRSB2aWV3X3RyaWdnZXIoJ2JlZm9yZV92aWV3X2luc19zdG10Jyk7CkBAIC0xMjE0LDkg KzEyNDQsMTQgQEAgY3JlYXRlIHZpZXcgbXlfdmlldyBhcyBzZWxlY3QgKiBmcm9tIG15X3RhYmxl OwogY3JlYXRlIGZ1bmN0aW9uIG15X3RyaWdnZXJfZnVuY3Rpb24oKSByZXR1cm5zIHRyaWdnZXIg YXMgJCQgYmVnaW4gZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogY3JlYXRlIHRyaWdnZXIgbXlf dHJpZ2dlciBhZnRlciB1cGRhdGUgb24gbXlfdmlldyByZWZlcmVuY2luZyBvbGQgdGFibGUgYXMg b2xkX3RhYmxlCiAgICBmb3IgZWFjaCBzdGF0ZW1lbnQgZXhlY3V0ZSBwcm9jZWR1cmUgbXlfdHJp Z2dlcl9mdW5jdGlvbigpOwotZHJvcCBmdW5jdGlvbiBteV90cmlnZ2VyX2Z1bmN0aW9uKCk7Citj cmVhdGUgdHJpZ2dlciBteV90cmlnZ2VyMSBiZWZvcmUgdXBkYXRlIG9mIGkgb24gbXlfdmlldwor ICAgZm9yIGVhY2ggc3RhdGVtZW50IGV4ZWN1dGUgcHJvY2VkdXJlIG15X3RyaWdnZXJfZnVuY3Rp b24oKTsKK2NyZWF0ZSB0YWJsZSBteV92aWV3X2NvcHkoTElLRSBteV92aWV3IGluY2x1ZGluZyB0 cmlnZ2Vycyk7CitcZCBteV92aWV3X2NvcHkKIGRyb3AgdmlldyBteV92aWV3OwogZHJvcCB0YWJs ZSBteV90YWJsZTsKK2Ryb3AgdGFibGUgbXlfdmlld19jb3B5OworZHJvcCBmdW5jdGlvbiBteV90 cmlnZ2VyX2Z1bmN0aW9uKCk7CiAKIC0tCiAtLSBWZXJpZnkgY2FzZXMgdGhhdCBhcmUgdW5zdXBw b3J0ZWQgd2l0aCBwYXJ0aXRpb25lZCB0YWJsZXMKQEAgLTE2MDgsNiArMTY0MywxMyBAQCBjcmVh dGUgY29uc3RyYWludCB0cmlnZ2VyIHBhcnRlZF90cmlnX3R3byBhZnRlciBpbnNlcnQgb24gcGFy dGVkX2NvbnN0cgogICBmb3IgZWFjaCByb3cgd2hlbiAoYmFyayhuZXcuYikgQU5EIG5ldy5hICUg MiA9IDEpCiAgIGV4ZWN1dGUgcHJvY2VkdXJlIHRyaWdnZXJfbm90aWNlX2FiKCk7CiAKK2NyZWF0 ZSB0YWJsZSBwYXJ0ZWRfY29uc3RyX2NvcHkgKGxpa2UgcGFydGVkX2NvbnN0ciBpbmNsdWRpbmcg YWxsKTsKK3NlbGVjdCAgcGdfZ2V0X3RyaWdnZXJkZWYob2lkKQorZnJvbSAgICBwZ190cmlnZ2Vy Cit3aGVyZSAgIG5vdCB0Z2lzaW50ZXJuYWwgYW5kIHRncmVsaWQgaW4gKCdwYXJ0ZWRfY29uc3Ry X2NvcHknOjpyZWdjbGFzcywgJ3BhcnRlZF9jb25zdHInOjpyZWdjbGFzcykKK29yZGVyIGJ5IHRn bmFtZTsKK2Ryb3AgdGFibGUgcGFydGVkX2NvbnN0cl9jb3B5OworCiAtLSBUaGUgaW1tZWRpYXRl IGNvbnN0cmFpbnQgaXMgZmlyZWQgaW1tZWRpYXRlbHk7IHRoZSBXSEVOIGNsYXVzZSBvZiB0aGUK IC0tIGRlZmVycmVkIGNvbnN0cmFpbnQgaXMgYWxzbyBjYWxsZWQgaW1tZWRpYXRlbHkuICBUaGUg ZGVmZXJyZWQgY29uc3RyYWludAogLS0gaXMgZmlyZWQgYXQgY29tbWl0IHRpbWUuCkBAIC0yMjgy LDYgKzIzMjQsMTAgQEAgY3JlYXRlIHRyaWdnZXIgaW9jZHVfdHRfcGFydGVkX3VwZGF0ZV90cmln CiAgIGFmdGVyIHVwZGF0ZSBvbiBpb2NkdV90dF9wYXJ0ZWQgcmVmZXJlbmNpbmcgb2xkIHRhYmxl IGFzIG9sZF90YWJsZSBuZXcgdGFibGUgYXMgbmV3X3RhYmxlCiAgIGZvciBlYWNoIHN0YXRlbWVu dCBleGVjdXRlIHByb2NlZHVyZSBkdW1wX3VwZGF0ZSgpOwogCitDUkVBVEUgVEFCTEUgaW9jZHVf dHRfcGFydGVkX2NvcHkoTElLRSBpb2NkdV90dF9wYXJ0ZWQgSU5DTFVESU5HIFRSSUdHRVJTKTsK K1xkIGlvY2R1X3R0X3BhcnRlZF9jb3B5CitEUk9QIFRBQkxFIGlvY2R1X3R0X3BhcnRlZF9jb3B5 OworCiAtLSBpbnNlcnRzIG9ubHkKIGluc2VydCBpbnRvIGlvY2R1X3R0X3BhcnRlZCB2YWx1ZXMg KDEsICdBQUEnKSwgKDIsICdCQkInKQogICBvbiBjb25mbGljdCAoYSkgZG8KQEAgLTI3MzksNiAr Mjc4NSwyNSBAQCBlbmQ7CiAkJDsKIGFsdGVyIGZ1bmN0aW9uIHdob2FtaSgpIG93bmVyIHRvIHJl Z3Jlc3NfZm5fb3duZXI7CiAKKy0tIENSRUFURSBUQUJMRSBMSUtFIElOQ0xVRElORyBUUklHR0VS UyBmb3IgY29uc3RyYWludCB0cmlnZ2VyCitjcmVhdGUgc2NoZW1hIHRlc3RfdHJpZzsKK2NyZWF0 ZSB0YWJsZSB0ZXN0X3RyaWcudHJpZ190MSAoaWQgaW50ZWdlcik7CitjcmVhdGUgdGFibGUgdGVz dF90cmlnLnRyaWdfdDIgKGlkIGludGVnZXIpOworYWx0ZXIgZnVuY3Rpb24gd2hvYW1pKCkgc2V0 IHNjaGVtYSB0ZXN0X3RyaWc7CisKK2NyZWF0ZSBjb25zdHJhaW50IHRyaWdnZXIgY29uX3RyaWdf dGVzdCBhZnRlciBpbnNlcnQgb24gdGVzdF90cmlnLnRyaWdfdDEKK2Zyb20gdGVzdF90cmlnLnRy aWdfdDIKK2RlZmVycmFibGUgaW5pdGlhbGx5IGRlZmVycmVkCitmb3IgZWFjaCByb3cKK2V4ZWN1 dGUgZnVuY3Rpb24gdGVzdF90cmlnLndob2FtaSgpOworCitjcmVhdGUgdGFibGUgdHJpZ190MV9j b3B5KGxpa2UgdGVzdF90cmlnLnRyaWdfdDEgaW5jbHVkaW5nIHRyaWdnZXJzKTsKK3NlbGVjdCBw Z19nZXRfdHJpZ2dlcmRlZihvaWQpIGZyb20gcGdfdHJpZ2dlciB3aGVyZSB0Z3JlbGlkID0gJ3Ry aWdfdDFfY29weSc6OnJlZ2NsYXNzOworCithbHRlciBmdW5jdGlvbiB0ZXN0X3RyaWcud2hvYW1p KCkgc2V0IHNjaGVtYSBwdWJsaWM7Citkcm9wIHRhYmxlIHRlc3RfdHJpZy50cmlnX3QxLCB0ZXN0 X3RyaWcudHJpZ190MiwgdHJpZ190MV9jb3B5OworZHJvcCBzY2hlbWEgdGVzdF90cmlnOworCiBj cmVhdGUgdGFibGUgZGVmZXJfdHJpZyAoaWQgaW50ZWdlcik7CiBncmFudCBpbnNlcnQgb24gZGVm ZXJfdHJpZyB0byBwdWJsaWM7CiBjcmVhdGUgY29uc3RyYWludCB0cmlnZ2VyIHdob2FtaSBhZnRl ciBpbnNlcnQgb24gZGVmZXJfdHJpZwotLSAKMi4zNC4xCgo= --000000000000573bd0064a0d9bcb--