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 1tg3FL-007J3L-SF for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Feb 2025 14:52:52 +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 1tg3FK-008M4d-Tp for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Feb 2025 14:52:50 +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 1tg3FK-008M4U-CH for pgsql-hackers@lists.postgresql.org; Thu, 06 Feb 2025 14:52:50 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tg3FH-003Xyk-1Y for pgsql-hackers@postgresql.org; Thu, 06 Feb 2025 14:52:49 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-5dccaaca646so1989472a12.0 for ; Thu, 06 Feb 2025 06:52:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738853565; x=1739458365; 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=VLMM05pN6uDJ8QHwYQa7F/gruDRvMS5SOo4/bPnZHbU=; b=FSJNCsPqduLzfvDbWw4qVlbuFw/gkpCW8R+zx1qGmsd4xNyc4qUSLKe/kYanFmIx/z tO02vXP4NZh9S918c2QhDGd5paLPJFgScRlbsZGQpaBtc7wVZhOEzC+eDP6ltLzB/o6S WN6jehV06yIZOKAWxZqzNyHmLG/p7LksjxBssWaHrZ2tW6PbFHr5VoUTqFA6MHlAuqTG 5mClJ+mer6A9F6+HE8BN9g7HXW92qgaqsWz1bAndAixJQT395vSXPPekMaieyMJ+sckM oD0QY3Z+r9mq0pSl1HgtQEBDq4Vjktjoqae2cjQq1DadLa5KpCRb+0nG5g3Fq1Z4DXjZ uuUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738853565; x=1739458365; 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=VLMM05pN6uDJ8QHwYQa7F/gruDRvMS5SOo4/bPnZHbU=; b=FqZ2R5xgSwwgQwHnobM3vJjmMkcMUCWcRpbx2SoHlOQtMn4f6HYs6XUZU3ZriGOWi4 wwcmg/ORQEdEFOmBlAycPCNhjaojmd7+CjCwbUmP4h1RlOwrMITF5w63Azn8x5IBLMDQ Fkfu+r9NpovjRDrNcDNY05X5wp+1YONvC2yvfePfjIo/69LFbzZxKKhHc7uQCeuHfOW2 c7iDyw/FpnNtvKd6Pa7xqUWjAXHRubOWAoXcgkPxdtF2AvbbgONMgxgncNspGweVl6qt PrTUAlWJ9ayciF6dk7Nh3FznlqudsYGq/GE65LZ7pEtBPtxITQpfzq7bCIXfhRmsQKvj fuBA== X-Forwarded-Encrypted: i=1; AJvYcCXsbbpHTe2jpUoD/XNL0DZ1dkfI4YmjUjv+AHK7z0gROOJwWqw+jpTik6hUbYuRV2ylLHnZggeDETirgAnb@postgresql.org X-Gm-Message-State: AOJu0YyJC08OlACfryiexb8xLsB25Ik51slY+YI09Iy/glovP0uni99U 00uq7qpwzB+0M/u/JnIfIEK2neuB7AimlsoeBuzYfohveC/jEZU8yDppJq6ob6B4ngk6WEU9uO8 RpM+47zhIBRm/X6dM6iW6FNl88lg= X-Gm-Gg: ASbGncvGFS3mVH2UI9p8d3psg1eSfYnc8NzYCJ7wL9kLA4Q8HJllhbSVsWaZABdsUSz z3qaGrFNOpnz6Gdtip4MyoSZifN2lvn4nNoR4SqDQb/0MiqW1fcBOKXeXtRGKY7TLquWG+lW2VY zHDlaYXWMf8jImDQOhezt9ZzpmDYqJ X-Google-Smtp-Source: AGHT+IG0Ht/PXPVAxpSTzMzXf17wRQyBlnNRJ/IOXNemoqE9Po/gKJFsv3xKVWUb+fLY/6A/Yk/9bsB9/IqVqrnXylg= X-Received: by 2002:a05:6402:5251:b0:5dc:e3e8:20f9 with SMTP id 4fb4d7f45d1cf-5dcecd16f3dmr4191745a12.10.1738853565198; Thu, 06 Feb 2025 06:52:45 -0800 (PST) MIME-Version: 1.0 References: <04c0abe2-e9c5-4ffc-97b2-bedc1e3cd178@eisentraut.org> <3b190de8-910a-4091-82f9-e98cf562d832@postgresfriends.org> In-Reply-To: From: Junwang Zhao Date: Thu, 6 Feb 2025 22:52:32 +0800 X-Gm-Features: AWEUYZnWm042ace-DW3gZ0ED63o5YEQlK_XB-zKDZ-l9KelHBFOBG78RAYL-sm4 Message-ID: Subject: Re: SQL Property Graph Queries (SQL/PGQ) To: Ashutosh Bapat Cc: Vik Fearing , Ajay Pal , Imran Zaheer , Peter Eisentraut , pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000122e79062d7a6530" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000122e79062d7a6530 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Ashutosh, On Tue, Jan 28, 2025 at 6:17=E2=80=AFPM Ashutosh Bapat wrote: > > On Fri, Jan 24, 2025 at 9:16=E2=80=AFPM Junwang Zhao = wrote: > > > > I figured out it's because I have `-DWRITE_READ_PARSE_PLAN_TREES` this = option, > > removing this option clears the warning, but I'm not sure if this is a > > hidden issue. > > > > Thanks for the hint. I found the issue and the fix appears in 0004. > Some members of RangeTblEntry were not being handled in read/out > functions. > > > > > > > 0001-0009 patches are the same as the previous set sans mergeconflict= fixes. > > > 0010 - is test for \dGx - to make sure that the extended format outpu= t > > > works with \dG. We may decide not to have this patch in the final > > > commit. But no harm in being there til that point. > > > > I have some changes based on the latest patch set. I attached two patch= es with > > the following summary. > > > > 0001: > > - doc: some of the query in ddl.sgml can not be executed > > The standard seems to require a property reference to be qualified by > element pattern variable, even if the property is referenced within > the same element pattern bound to the variable. Hence I accepted your > document fixes which qualify property reference with element pattern > variable. > > However, I didn't understand why you changed a LABEL name from order to o= rder_. > > > - after path factor was introduced, some comments doesn't apply > > Thanks pointing those out. Accepted after rephrasing those and also > correcting some related comments. > > > > > 0002: > > - add a get_propgraph_element_alias_name function and do some trivial r= efactor > > > > I see you have added some negative tests - object not found tests, but > I didn't see positive tests. Hence I haven't added those changes in > the attached patchset. But we certainly need those changes. You may > want to submit a patch with positive tests. That code needs to be > fixed before committing anyway. The attached file adds the positive tests. > > -- > Best Wishes, > Ashutosh Bapat --=20 Regards Junwang Zhao --000000000000122e79062d7a6530 Content-Type: text/plain; charset="US-ASCII"; name="0001-trivial-refactor-of-property-graph-object-address.txt" Content-Disposition: attachment; filename="0001-trivial-refactor-of-property-graph-object-address.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6tgggrr0 RnJvbSA1ZGZlNWYwYzdjN2E3MmI3NTY0YjE5YzFkMWU1Mzk2YzY2ZDUwMzlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIxIERlYyAyMDI0IDEyOjEzOjQwICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MV0gdHJp dmlhbCByZWZhY3RvciBvZiBwcm9wZXJ0eSBncmFwaCBvYmplY3QgYWRkcmVzcwoKLS0tCiBzcmMv YmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAgICAgfCA1NCArKysrKysrKysr KysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAg fCAgOCArLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8 ICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgICAgICAgfCAg NCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDgg Ky0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAzMCAr KysrKysrKystLQogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgICAg IHwgIDUgKy0KIC4uLi9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0ICAgICAgICB8 IDM2ICsrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJl c3Mub3V0ICB8ICA2ICsrKwogLi4uL3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5z cWwgICAgIHwgIDUgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCAg ICAgICB8ICAzICsrCiAxMSBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgMjcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA2ZWFlZTM0NWFk Mi4uMDNlZDgzMGQ1YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00MDcw LDggKzQwNzAsMTIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAKIAkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUFJP UEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOwogCQkJCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQotCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsCi0JCQkJCQkgb2JqZWN0LT5v YmplY3RJZCk7CisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsCisJ CQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CiAKIAkJCQlwZ2Vm b3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXApOwogCkBAIC00 MTE4LDcgKzQxMjIsNyBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNz ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAogCQkJCXBnZWxmb3JtID0gKEZvcm1fcGdfcHJv cGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSk7CiAKLQkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWZmZXIsIF8oImxhYmVsICVzIG9mICIpLCBnZXRfcHJvcGdyYXBoX2xhYmVsX25h bWUocGdlbGZvcm0tPnBnZWxsYWJlbGlkKSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCBfKCJsYWJlbCAlcyBvZiAiKSwgZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKHBnZWxmb3JtLT5w Z2VsbGFiZWxpZCwgZmFsc2UpKTsKIAkJCQlPYmplY3RBZGRyZXNzU2V0KG9hLCBQcm9wZ3JhcGhF bGVtZW50UmVsYXRpb25JZCwgcGdlbGZvcm0tPnBnZWxlbGlkKTsKIAkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWZmZXIsIGdldE9iamVjdERlc2NyaXB0aW9uKCZvYSwgZmFsc2UpKTsKIApA QCAtNDE5Myw3ICs0MTk3LDcgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAKIAkJCQlwbHBmb3JtID0gKEZvcm1fcGdf cHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5KSBHRVRTVFJVQ1QodHVwbGUpOwogCi0JCQkJYXBwZW5k U3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwcm9wZXJ0eSAlcyBvZiAiKSwgZ2V0X3Byb3BncmFwaF9w cm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCkpOworCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwgXygicHJvcGVydHkgJXMgb2YgIiksIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFt ZShwbHBmb3JtLT5wbHBwcm9waWQsIGZhbHNlKSk7CiAJCQkJT2JqZWN0QWRkcmVzc1NldChvYSwg UHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgcGxwZm9ybS0+cGxwZWxsYWJlbGlkKTsK IAkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsIGdldE9iamVjdERlc2NyaXB0aW9u KCZvYSwgZmFsc2UpKTsKIApAQCAtNjE3NCwxNiArNjE3OCw0NiBAQCBnZXRPYmplY3RJZGVudGl0 eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAogCQljYXNlIFByb3Bn cmFwaEVsZW1lbnRSZWxhdGlvbklkOgotCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUg VE9ETyIsIG9iamVjdC0+b2JqZWN0SWQpOwotCQkJYnJlYWs7CisJCQl7CisJCQkJY2hhcgkgICAq ZWxlbW5hbWU7CisKKwkJCQllbGVtbmFtZSA9IGdldF9wcm9wZ3JhcGhfZWxlbWVudF9hbGlhc19u YW1lKG9iamVjdC0+b2JqZWN0SWQsIG1pc3Npbmdfb2spOworCQkJCWlmIChlbGVtbmFtZSkKKwkJ CQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgcXVvdGVfaWRlbnRpZmll cihlbGVtbmFtZSkpOworCQkJCQlpZiAob2JqbmFtZSkKKwkJCQkJCSpvYmpuYW1lID0gbGlzdF9t YWtlMShlbGVtbmFtZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQogCiAJCWNhc2UgUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkOgotCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUgVE9E TyIsIG9iamVjdC0+b2JqZWN0SWQpOwotCQkJYnJlYWs7CisJCQl7CisJCQkJY2hhcgkgICAqbGFi ZWxuYW1lOworCisJCQkJbGFiZWxuYW1lID0gZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKG9iamVj dC0+b2JqZWN0SWQsIG1pc3Npbmdfb2spOworCQkJCWlmIChsYWJlbG5hbWUpCisJCQkJeworCQkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsIHF1b3RlX2lkZW50aWZpZXIobGFiZWxu YW1lKSk7CisJCQkJCWlmIChvYmpuYW1lKQorCQkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UxKGxh YmVsbmFtZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQogCiAJCWNhc2UgUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkOgotCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUgVE9ETyIs IG9iamVjdC0+b2JqZWN0SWQpOwotCQkJYnJlYWs7CisJCQl7CisJCQkJY2hhcgkgICAqcHJvcG5h bWU7CisKKwkJCQlwcm9wbmFtZSA9IGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShvYmplY3Qt Pm9iamVjdElkLCBtaXNzaW5nX29rKTsKKwkJCQlpZiAocHJvcG5hbWUpCisJCQkJeworCQkJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsIHF1b3RlX2lkZW50aWZpZXIocHJvcG5hbWUp KTsKKwkJCQkJaWYgKG9iam5hbWUpCisJCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTEocHJvcG5h bWUpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KIAogCQljYXNlIFB1YmxpY2F0aW9uUmVsYXRp b25JZDoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuYwppbmRleCBjMjY5NzZi MmEyYS4uNjhiODFlMWM4MDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Byb3Bn cmFwaGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKQEAg LTExNjYsNyArMTE2Niw3IEBAIGNoZWNrX2VsZW1lbnRfcHJvcGVydGllcyhPaWQgcGVvaWQpCiAJ CQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKIAkJCQkJCQkJZXJybXNnKCJlbGVtZW50IFwiJXNcIiBwcm9wZXJ0eSBcIiVzXCIgZXhwcmVz c2lvbiBtaXNtYXRjaDogJXMgdnMuICVzIiwKLQkJCQkJCQkJCSAgIE5hbWVTdHIoZWxmb3JtLT5w Z2VhbGlhcyksIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShwcm9wb2lkKSwgZHBhLCBkcGIp LAorCQkJCQkJCQkJICAgTmFtZVN0cihlbGZvcm0tPnBnZWFsaWFzKSwgZ2V0X3Byb3BncmFwaF9w cm9wZXJ0eV9uYW1lKHByb3BvaWQsIGZhbHNlKSwgZHBhLCBkcGIpLAogCQkJCQkJCQllcnJkZXRh aWwoIkluIGEgcHJvcGVydHkgZ3JhcGggZWxlbWVudCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBu YW1lIGhhcyB0byBoYXZlIHRoZSBzYW1lIGV4cHJlc3Npb24gaW4gZWFjaCBsYWJlbC4iKSk7CiAK IAkJCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZTMpOwpAQCAtMTI4Myw3ICsxMjgzLDcgQEAgY2hl Y2tfZWxlbWVudF9sYWJlbF9wcm9wZXJ0aWVzKE9pZCBlbGxhYmVsb2lkKQogCWlmIChsaXN0X2xl bmd0aChyZWZwcm9wcykgIT0gbGlzdF9sZW5ndGgobXlwcm9wcykpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAotCQkJCWVy cm1zZygibWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgaW4gZGVmaW5pdGlvbiBvZiBs YWJlbCBcIiVzXCIiLCBnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUobGFiZWxpZCkpKTsKKwkJCQll cnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVzIGluIGRlZmluaXRpb24gb2Yg bGFiZWwgXCIlc1wiIiwgZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKGxhYmVsaWQsIGZhbHNlKSkp OwogCiAJZGlmZjEgPSBsaXN0X2RpZmZlcmVuY2UobXlwcm9wcywgcmVmcHJvcHMpOwogCWRpZmYy ID0gbGlzdF9kaWZmZXJlbmNlKHJlZnByb3BzLCBteXByb3BzKTsKQEAgLTEyOTEsNyArMTI5MSw3 IEBAIGNoZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCkKIAlpZiAo ZGlmZjEgfHwgZGlmZjIpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAotCQkJCWVycm1zZygibWlzbWF0Y2hpbmcgcHJvcGVy dGllcyBuYW1lcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsIFwiJXNcIiIsIGdldF9wcm9wZ3JhcGhf bGFiZWxfbmFtZShsYWJlbGlkKSkpOworCQkJCWVycm1zZygibWlzbWF0Y2hpbmcgcHJvcGVydGll cyBuYW1lcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsIFwiJXNcIiIsIGdldF9wcm9wZ3JhcGhfbGFi ZWxfbmFtZShsYWJlbGlkLCBmYWxzZSkpKTsKIH0KIAogLyoKQEAgLTE4NDQsNyArMTg0NCw3IEBA IGdldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVzKE9pZCBlbGxhYmVsb2lkKQogCXsKIAkJ Rm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwZm9ybSA9IChGb3JtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQlyZXN1bHQgPSBsYXBw ZW5kKHJlc3VsdCwgbWFrZVN0cmluZyhnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocGxwZm9y bS0+cGxwcHJvcGlkKSkpOworCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbWFrZVN0cmluZyhn ZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocGxwZm9ybS0+cGxwcHJvcGlkLCBmYWxzZSkpKTsK IAl9CiAKIAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2NsYXVzZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5j CmluZGV4IDI5ZjUxOGY2YWRhLi5iOWM0OTM0ZjM5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2NsYXVzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1 c2UuYwpAQCAtOTU5LDcgKzk1OSw3IEBAIHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0 YXRlICpwc3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAqcmd0KQogCQllbHNlCiAJCXsKIAkJCWlmIChJ c0EoY29sZXhwciwgR3JhcGhQcm9wZXJ0eVJlZikpCi0JCQkJY29sbmFtZSA9IGdldF9wcm9wZ3Jh cGhfcHJvcGVydHlfbmFtZShjYXN0Tm9kZShHcmFwaFByb3BlcnR5UmVmLCBjb2xleHByKS0+cHJv cGlkKTsKKwkJCQljb2xuYW1lID0gZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGNhc3ROb2Rl KEdyYXBoUHJvcGVydHlSZWYsIGNvbGV4cHIpLT5wcm9waWQsIGZhbHNlKTsKIAkJCWVsc2UKIAkJ CXsKIAkJCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9y ZXdyaXRlR3JhcGhUYWJsZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJs ZS5jCmluZGV4IGEzM2FkNWJhN2ZkLi42OTM4ZDExOGYxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUv cmV3cml0ZUdyYXBoVGFibGUuYwpAQCAtOTU4LDcgKzk1OCw3IEBAIGdldF9wYXRoX2VsZW1lbnRz X2Zvcl9wYXRoX2ZhY3RvcihPaWQgcHJvcGdyYXBoaWQsIHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYp CiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09C SkVDVCksCiAJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZpbmQgbGFiZWwgXCIlc1wiIGluIHByb3Bl cnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVudCB0eXBlIFwiJXNcIiIsCi0JCQkJCQkJCWdldF9w cm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9pZCksCisJCQkJCQkJCWdldF9wcm9wZ3JhcGhfbGFi ZWxfbmFtZShsYWJlbG9pZCwgZmFsc2UpLAogCQkJCQkJCQlnZXRfcmVsX25hbWUocHJvcGdyYXBo aWQpLAogCQkJCQkJCQlnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUocGYtPmtpbmQpKSkpOwogCQl9 CkBAIC0xMTI3LDcgKzExMjcsNyBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2Rl ICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKgogCiAJCWlmICgh bikKIAkJCWVsb2coRVJST1IsICJwcm9wZXJ0eSBcIiVzXCIgb2YgZWxlbWVudCB2YXJpYWJsZSBc IiVzXCIgbm90IGZvdW5kIiwKLQkJCQkgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+ cHJvcGlkKSwgbWFwcGluZ19mYWN0b3ItPnZhcmlhYmxlKTsKKwkJCQkgZ2V0X3Byb3BncmFwaF9w cm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlkLCBmYWxzZSksIG1hcHBpbmdfZmFjdG9yLT52YXJpYWJs ZSk7CiAKIAkJcmV0dXJuIG47CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDJl MjM3MDIzZDk1Li5jYTI5Y2U3NDYwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAt MTgwOSw3ICsxODA5LDcgQEAgbWFrZV9wcm9wZ3JhcGhkZWZfbGFiZWxzKFN0cmluZ0luZm8gYnVm LCBPaWQgZWxpZCwgY29uc3QgY2hhciAqZWxhbGlhcywgT2lkIGVscmUKIAkJRm9ybV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9sYWJlbCBwZ2VsZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsKSBHRVRTVFJVQ1QodHVwKTsKIAkJY29uc3QgY2hhciAqbGFiZWxuYW1lOwogCi0JCWxh YmVsbmFtZSA9IGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShwZ2VsZm9ybS0+cGdlbGxhYmVsaWQp OworCQlsYWJlbG5hbWUgPSBnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUocGdlbGZvcm0tPnBnZWxs YWJlbGlkLCBmYWxzZSk7CiAKIAkJaWYgKHN0cmNtcChsYWJlbG5hbWUsIGVsYWxpYXMpID09IDAp CiAJCXsKQEAgLTE4ODUsNyArMTg4NSw3IEBAIG1ha2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMo U3RyaW5nSW5mbyBidWYsIE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKQogCQlleHByID0gc3Ry aW5nVG9Ob2RlKHRtcCk7CiAJCXBmcmVlKHRtcCk7CiAKLQkJcHJvcG5hbWUgPSBnZXRfcHJvcGdy YXBoX3Byb3BlcnR5X25hbWUocGxwZm9ybS0+cGxwcHJvcGlkKTsKKwkJcHJvcG5hbWUgPSBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocGxwZm9ybS0+cGxwcHJvcGlkLCBmYWxzZSk7CiAKIAkJ b3V0bGlzdCA9IGxhcHBlbmQob3V0bGlzdCwgbGlzdF9tYWtlMihtYWtlU3RyaW5nKHByb3BuYW1l KSwgZXhwcikpOwogCX0KQEAgLTc4NzEsNyArNzg3MSw3IEBAIGdldF9ncmFwaF9sYWJlbF9leHBy KE5vZGUgKmxhYmVsX2V4cHIsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCXsKIAkJCQlH cmFwaExhYmVsUmVmICpscmVmID0gKEdyYXBoTGFiZWxSZWYgKikgbGFiZWxfZXhwcjsKIAotCQkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlmaWVyKGdldF9wcm9wZ3Jh cGhfbGFiZWxfbmFtZShscmVmLT5sYWJlbGlkKSkpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCBxdW90ZV9pZGVudGlmaWVyKGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShscmVmLT5s YWJlbGlkLCBmYWxzZSkpKTsKIAkJCQlicmVhazsKIAkJCX0KIApAQCAtMTEwNDgsNyArMTEwNDgs NyBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwK IAkJCXsKIAkJCQlHcmFwaFByb3BlcnR5UmVmICpncHIgPSAoR3JhcGhQcm9wZXJ0eVJlZiAqKSBu b2RlOwogCi0JCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcy4lcyIsIHF1b3RlX2lkZW50aWZp ZXIoZ3ByLT5lbHZhcm5hbWUpLCBxdW90ZV9pZGVudGlmaWVyKGdldF9wcm9wZ3JhcGhfcHJvcGVy dHlfbmFtZShncHItPnByb3BpZCkpKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzLiVz IiwgcXVvdGVfaWRlbnRpZmllcihncHItPmVsdmFybmFtZSksIHF1b3RlX2lkZW50aWZpZXIoZ2V0 X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlkLCBmYWxzZSkpKTsKIAkJCQlicmVh azsKIAkJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBiNjE1MzNmZDI2 Ni4uOTg4MzNjNzcyMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zMiw2 ICszMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9sYWJlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3Bl cnR5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtMzcxOCw3ICsz NzE5LDI2IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19v aykKIH0KIAogY2hhciAqCi1nZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUoT2lkIGxhYmVsb2lkKQor Z2V0X3Byb3BncmFwaF9lbGVtZW50X2FsaWFzX25hbWUoT2lkIGVsZW1vaWQsIGJvb2wgbWlzc2lu Z19vaykKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJY2hhcgkgICAqZWxlbW5hbWU7CisKKwl0dXBs ZSA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgZWxlbW9pZCk7CisJaWYgKCF0dXBs ZSkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBlbGVtZW50ICV1IiwgZWxlbW9pZCk7CisJCXJldHVybiBOVUxMOworCX0KKwll bGVtbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdF VFNUUlVDVCh0dXBsZSkpLT5wZ2VhbGlhcykpOworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisK KwlyZXR1cm4gZWxlbW5hbWU7Cit9CisKK2NoYXIgKgorZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1l KE9pZCBsYWJlbG9pZCwgYm9vbCBtaXNzaW5nX29rKQogewogCUhlYXBUdXBsZQl0dXBsZTsKIAlj aGFyCSAgICpsYWJlbG5hbWU7CkBAIC0zNzI2LDcgKzM3NDYsOCBAQCBnZXRfcHJvcGdyYXBoX2xh YmVsX25hbWUoT2lkIGxhYmVsb2lkKQogCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQ SExBQkVMT0lELCBsYWJlbG9pZCk7CiAJaWYgKCF0dXBsZSkKIAl7Ci0JCWVsb2coRVJST1IsICJj YWNoZSBsb29rdXAgZmFpbGVkIGZvciBsYWJlbCAldSIsIGxhYmVsb2lkKTsKKwkJaWYgKCFtaXNz aW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGxhYmVsICV1 IiwgbGFiZWxvaWQpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAJbGFiZWxuYW1lID0gcHN0cmR1cChO YW1lU3RyKCgoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSkpLT5wZ2xs YWJlbCkpOwpAQCAtMzczNiw3ICszNzU3LDcgQEAgZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKE9p ZCBsYWJlbG9pZCkKIH0KIAogY2hhciAqCi1nZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoT2lk IHByb3BvaWQpCitnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoT2lkIHByb3BvaWQsIGJvb2wg bWlzc2luZ19vaykKIHsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJY2hhcgkgICAqcHJvcG5hbWU7CkBA IC0zNzQ0LDcgKzM3NjUsOCBAQCBnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoT2lkIHByb3Bv aWQpCiAJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIUFJPUE9JRCwgcHJvcG9pZCk7 CiAJaWYgKCF0dXBsZSkKIAl7Ci0JCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBwcm9wZXJ0eSAldSIsIHByb3BvaWQpOworCQlpZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgJXUiLCBwcm9wb2lkKTsKIAkJ cmV0dXJuIE5VTEw7CiAJfQogCXByb3BuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19w cm9wZ3JhcGhfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5wZ3BuYW1lKSk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oCmluZGV4IDVkMzQ0NGJlYzI0Li42ZjEyYWQwZWExZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKQEAgLTIwNiw4ICsyMDYsOSBAQCBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25h bWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0 aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNo YXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CiAK LWV4dGVybiBjaGFyICpnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUoT2lkIGxhYmVsb2lkKTsKLWV4 dGVybiBjaGFyICpnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoT2lkIHByb3BvaWQpOworZXh0 ZXJuIGNoYXIgKmdldF9wcm9wZ3JhcGhfZWxlbWVudF9hbGlhc19uYW1lKE9pZCBlbGVtb2lkLCBi b29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGNoYXIgKmdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShP aWQgbGFiZWxvaWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X3Byb3BncmFw aF9wcm9wZXJ0eV9uYW1lKE9pZCBwcm9wb2lkLCBib29sIG1pc3Npbmdfb2spOwogCiAjZGVmaW5l IHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxp ZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMg YW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAppbmRleCAxMDFiZGVhZWI1NC4uZmQ5MGEy NWM2YmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3Bl cnR5X2dyYXBoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9w ZXJ0eV9ncmFwaC5vdXQKQEAgLTIyLDYgKzIyLDQyIEBAIENSRUFURSBQUk9QRVJUWSBHUkFQSCBn MgogICAgICAgICAgICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKICAgICAgICAg ICAgIERFU1RJTkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKICAgICApOwor LS0gdGVzdCBvYmplY3QgYWRkcmVzc2VzCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2Fk ZHJlc3MoJ3BnX3Byb3BncmFwaF9lbGVtZW50Jzo6cmVnY2xhc3MsIG9pZCwgMCkgRlJPTSBwZ19w cm9wZ3JhcGhfZWxlbWVudDsKKyAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCJwcm9wZXJ0eSBncmFwaCBl bGVtZW50Iix7dDF9LHt9KQorICgicHJvcGVydHkgZ3JhcGggZWxlbWVudCIse3QyfSx7fSkKKyAo InByb3BlcnR5IGdyYXBoIGVsZW1lbnQiLHt0M30se30pCisgKCJwcm9wZXJ0eSBncmFwaCBlbGVt ZW50Iix7ZTF9LHt9KQorICgicHJvcGVydHkgZ3JhcGggZWxlbWVudCIse2UyfSx7fSkKKyg1IHJv d3MpCisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfcHJvcGdyYXBo X2xhYmVsJzo6cmVnY2xhc3MsIG9pZCwgMCkgRlJPTSBwZ19wcm9wZ3JhcGhfbGFiZWw7CisgICBw Z19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICgicHJvcGVydHkgZ3JhcGggbGFiZWwiLHt0MX0se30pCisgKCJwcm9w ZXJ0eSBncmFwaCBsYWJlbCIse3QyfSx7fSkKKyAoInByb3BlcnR5IGdyYXBoIGxhYmVsIix7dDNs MX0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBsYWJlbCIse3QzbDJ9LHt9KQorICgicHJvcGVydHkg Z3JhcGggbGFiZWwiLHtlMX0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBsYWJlbCIse2UyfSx7fSkK Kyg2IHJvd3MpCisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfcHJv cGdyYXBoX3Byb3BlcnR5Jzo6cmVnY2xhc3MsIG9pZCwgMCkgRlJPTSBwZ19wcm9wZ3JhcGhfcHJv cGVydHk7CisgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHth fSx7fSkKKyAoInByb3BlcnR5IGdyYXBoIHByb3BlcnR5Iix7Yn0se30pCisgKCJwcm9wZXJ0eSBn cmFwaCBwcm9wZXJ0eSIse2l9LHt9KQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHtqfSx7 fSkKKyAoInByb3BlcnR5IGdyYXBoIHByb3BlcnR5Iix7a30se30pCisgKCJwcm9wZXJ0eSBncmFw aCBwcm9wZXJ0eSIse3h9LHt9KQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHt5fSx7fSkK KyAoInByb3BlcnR5IGdyYXBoIHByb3BlcnR5Iix7en0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBw cm9wZXJ0eSIse3R9LHt9KQorKDkgcm93cykKKwogLS0gdGVzdCBkZXBlbmRlbmNpZXMvb2JqZWN0 IGRlc2NyaXB0aW9ucwogRFJPUCBUQUJMRSB0MTsgIC0tIGZhaWwKIEVSUk9SOiAgY2Fubm90IGRy b3AgdGFibGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCA0MzJiYTQ3MWZlMy4u M2FiYjY1OGRlMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0 X2FkZHJlc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJl c3Mub3V0CkBAIC01ODgsNiArNTg4LDkgQEAgV0lUSCBvYmplY3RzIChjbGFzc2lkLCBvYmppZCwg b2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX2V2ZW50X3RyaWdnZXInOjpyZWdjbGFzcywg MCwgMCksIC0tIG5vIGV2ZW50IHRyaWdnZXIKICAgICAoJ3BnX3BhcmFtZXRlcl9hY2wnOjpyZWdj bGFzcywgMCwgMCksIC0tIG5vIHBhcmFtZXRlciBBQ0wKICAgICAoJ3BnX3BvbGljeSc6OnJlZ2Ns YXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CisgICAgKCdwZ19wcm9wZ3JhcGhfZWxlbWVudCc6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gcHJvcGVydHkgZ3JhcGggZWxlbWVudAorICAgICgncGdfcHJv cGdyYXBoX2xhYmVsJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwcm9wZXJ0eSBncmFwaCBsYWJl bAorICAgICgncGdfcHJvcGdyYXBoX3Byb3BlcnR5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBw cm9wZXJ0eSBncmFwaCBwcm9wZXJ0eQogICAgICgncGdfcHVibGljYXRpb24nOjpyZWdjbGFzcywg MCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Un OjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIG5hbWVzcGFjZQogICAgICgncGdf cHVibGljYXRpb25fcmVsJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwdWJsaWNhdGlvbiByZWxh dGlvbgpAQCAtNjQ0LDUgKzY0Nyw4IEBAIE9SREVSIEJZIG9iamVjdHMuY2xhc3NpZCwgb2JqZWN0 cy5vYmppZCwgb2JqZWN0cy5vYmpzdWJpZDsKICgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiws LCkiKXwoIigiInB1YmxpY2F0aW9uIHJlbGF0aW9uIiIsLCkiKXxOVUxMCiAoIigiInB1YmxpY2F0 aW9uIG5hbWVzcGFjZSIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCkiKXxO VUxMCiAoIigiInBhcmFtZXRlciBBQ0wiIiwsLCkiKXwoIigiInBhcmFtZXRlciBBQ0wiIiwsKSIp fE5VTEwKKygiKCIicHJvcGVydHkgZ3JhcGggZWxlbWVudCIiLCwsKSIpfCgiKCIicHJvcGVydHkg Z3JhcGggZWxlbWVudCIiLCwpIil8TlVMTAorKCIoIiJwcm9wZXJ0eSBncmFwaCBsYWJlbCIiLCws KSIpfCgiKCIicHJvcGVydHkgZ3JhcGggbGFiZWwiIiwsKSIpfE5VTEwKKygiKCIicHJvcGVydHkg Z3JhcGggcHJvcGVydHkiIiwsLCkiKXwoIigiInByb3BlcnR5IGdyYXBoIHByb3BlcnR5IiIsLCki KXxOVUxMCiAtLSByZXN0b3JlIG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKaW5kZXggMWUzMDliOWY5MzUu LjAwODFiZWRhYjRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJv cGVydHlfZ3JhcGguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0 eV9ncmFwaC5zcWwKQEAgLTI5LDYgKzI5LDExIEBAIENSRUFURSBQUk9QRVJUWSBHUkFQSCBnMgog ICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQog ICAgICk7CiAKKy0tIHRlc3Qgb2JqZWN0IGFkZHJlc3NlcworU0VMRUNUIHBnX2lkZW50aWZ5X29i amVjdF9hc19hZGRyZXNzKCdwZ19wcm9wZ3JhcGhfZWxlbWVudCc6OnJlZ2NsYXNzLCBvaWQsIDAp IEZST00gcGdfcHJvcGdyYXBoX2VsZW1lbnQ7CitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2Fz X2FkZHJlc3MoJ3BnX3Byb3BncmFwaF9sYWJlbCc6OnJlZ2NsYXNzLCBvaWQsIDApIEZST00gcGdf cHJvcGdyYXBoX2xhYmVsOworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKCdw Z19wcm9wZ3JhcGhfcHJvcGVydHknOjpyZWdjbGFzcywgb2lkLCAwKSBGUk9NIHBnX3Byb3BncmFw aF9wcm9wZXJ0eTsKKwogLS0gdGVzdCBkZXBlbmRlbmNpZXMvb2JqZWN0IGRlc2NyaXB0aW9ucwog CiBEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJl c3Muc3FsCmluZGV4IDkzZjlmOWM3MDRmLi5lNjAxMGIzYmYzZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL29iamVjdF9hZGRyZXNzLnNxbApAQCAtMjgwLDYgKzI4MCw5IEBAIFdJVEggb2JqZWN0cyAo Y2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBBUyAoVkFMVUVTCiAgICAgKCdwZ19ldmVudF90cmln Z2VyJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBldmVudCB0cmlnZ2VyCiAgICAgKCdwZ19wYXJh bWV0ZXJfYWNsJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwYXJhbWV0ZXIgQUNMCiAgICAgKCdw Z19wb2xpY3knOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHBvbGljeQorICAgICgncGdfcHJvcGdy YXBoX2VsZW1lbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHByb3BlcnR5IGdyYXBoIGVsZW1l bnQKKyAgICAoJ3BnX3Byb3BncmFwaF9sYWJlbCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHJv cGVydHkgZ3JhcGggbGFiZWwKKyAgICAoJ3BnX3Byb3BncmFwaF9wcm9wZXJ0eSc6OnJlZ2NsYXNz LCAwLCAwKSwgLS0gbm8gcHJvcGVydHkgZ3JhcGggcHJvcGVydHkKICAgICAoJ3BnX3B1YmxpY2F0 aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwdWJsaWNhdGlvbgogICAgICgncGdfcHVibGlj YXRpb25fbmFtZXNwYWNlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwdWJsaWNhdGlvbiBuYW1l c3BhY2UKICAgICAoJ3BnX3B1YmxpY2F0aW9uX3JlbCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g cHVibGljYXRpb24gcmVsYXRpb24KLS0gCjIuMzkuNQoK --000000000000122e79062d7a6530--