<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>199065</bug_id>
          
          <creation_ts>2019-06-20 02:43:06 -0700</creation_ts>
          <short_desc>[GTK] Remove support for GTK2 plugins</short_desc>
          <delta_ts>2019-06-20 06:39:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1546482</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 02:43:06 -0700</bug_when>
    <thetext>Because we are in 2019.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546483</commentid>
    <comment_count>1</comment_count>
      <attachid>372549</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 02:46:17 -0700</bug_when>
    <thetext>Created attachment 372549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546487</commentid>
    <comment_count>2</comment_count>
      <attachid>372549</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-06-20 03:35:50 -0700</bug_when>
    <thetext>Comment on attachment 372549
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review

Informally reviewing... Looks good to me, with a small question.

Indeed it&apos;s 2019 — it makes me smile to see this go away.

&gt; Source/WTF/wtf/glib/GTypedefs.h:-82
&gt; -

Kinda amazing that this slipped in and stayed around so long.
Good catch.

&gt; Source/WebKit/PlatformGTK.cmake:-469
&gt; -    PRIVATE

Is there any reason to remove the “PRIVATE” here? IIUC the GTK
Unix printing library would be still fine linked as such.

&gt; Source/WebKit/SourcesGTK.txt:-27
&gt; -

Great to see more sources built unified, yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546488</commentid>
    <comment_count>3</comment_count>
      <attachid>372549</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 03:39:37 -0700</bug_when>
    <thetext>Comment on attachment 372549
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review

&gt;&gt; Source/WebKit/PlatformGTK.cmake:-469
&gt;&gt; -    PRIVATE
&gt; 
&gt; Is there any reason to remove the “PRIVATE” here? IIUC the GTK
&gt; Unix printing library would be still fine linked as such.

Michael told me this is useless in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546489</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 03:55:01 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebKit/PlatformGTK.cmake:479
&gt; &gt; &gt; +if (USE_WPE_RENDERER)
&gt; &gt; &gt; +    list(APPEND WebKit_LIBRARIES
&gt; &gt; &gt; +        PRIVATE
&gt; &gt; 
&gt; &gt; Oops! (PRIVATE doesn&apos;t work here.)
&gt; 
&gt; What doesn&apos;t work? What should I do then, just remove it?

Yeah, just remove it. PRIVATE is not a library and cannot be appended to WebKit_LIBRARIES.
[tag] [reply] [−] Comment 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546490</commentid>
    <comment_count>5</comment_count>
      <attachid>372549</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2019-06-20 04:01:17 -0700</bug_when>
    <thetext>Comment on attachment 372549
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review

&gt; Source/WebKit/Shared/gtk/WebEventFactory.cpp:46
&gt; +    return keyval &gt;= GDK_KEY_KP_Space &amp;&amp; keyval &lt;= GDK_KEY_KP_9;

A bit unrelated bug OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546491</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 04:06:56 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #5)
&gt; Comment on attachment 372549 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/gtk/WebEventFactory.cpp:46
&gt; &gt; +    return keyval &gt;= GDK_KEY_KP_Space &amp;&amp; keyval &lt;= GDK_KEY_KP_9;
&gt; 
&gt; A bit unrelated bug OK

Not unrelated, it doesn&apos;t build because I have removed the compatibility header too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546492</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-20 04:08:46 -0700</bug_when>
    <thetext>Committed r246632: &lt;https://trac.webkit.org/changeset/246632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546495</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-06-20 04:24:12 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 372549 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/PlatformGTK.cmake:-469
&gt; &gt;&gt; -    PRIVATE
&gt; &gt; 
&gt; &gt; Is there any reason to remove the “PRIVATE” here? IIUC the GTK
&gt; &gt; Unix printing library would be still fine linked as such.
&gt; 
&gt; Michael told me this is useless in another patch.

As far as I understand the documentation, the following:

  target_link_libraries(a PUBLIC b PRIVATE c)

Will cause code that links against library “a” will be able to use
*also* symbols from “b”, but not symbols from “c” (unless it explicitly
links to “c” as well).

If the above is the case (I am not 100% sure, because the CMake
documentation is not particularly good), then it looks useful to
me, because it allows for containment of symbols from other libraries
used internally without exposing the transitively as part of the ABI
of the ABI of the “a” library. It also avoids overlinking… I suppose
this needs some support from the linker and that CMake can figure out
by itself how to put it to use.

So I wouldn&apos;t consider “PRIVATE” useless ;-)

(Of couse, “PRIVATE” should not be part of a list-variable, only
passed directly to “target_link_libraries”, so it&apos;s of course a
good thing that you removed it here.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546497</commentid>
    <comment_count>9</comment_count>
      <attachid>372549</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 06:39:52 -0700</bug_when>
    <thetext>Comment on attachment 372549
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372549&amp;action=review

Nice! Especially good job removing @no-unify from SourcesGTK.txt; it looks like that was easier than I expected.

And now Adrian, you see why I didn&apos;t want you to remove the GDK_API_VERSION_2 guards yesterday.

&gt;&gt;&gt;&gt; Source/WebKit/PlatformGTK.cmake:-469
&gt;&gt;&gt;&gt; -    PRIVATE
&gt;&gt;&gt; 
&gt;&gt;&gt; Is there any reason to remove the “PRIVATE” here? IIUC the GTK
&gt;&gt;&gt; Unix printing library would be still fine linked as such.
&gt;&gt; 
&gt;&gt; Michael told me this is useless in another patch.
&gt; 
&gt; As far as I understand the documentation, the following:
&gt; 
&gt;   target_link_libraries(a PUBLIC b PRIVATE c)
&gt; 
&gt; Will cause code that links against library “a” will be able to use
&gt; *also* symbols from “b”, but not symbols from “c” (unless it explicitly
&gt; links to “c” as well).
&gt; 
&gt; If the above is the case (I am not 100% sure, because the CMake
&gt; documentation is not particularly good), then it looks useful to
&gt; me, because it allows for containment of symbols from other libraries
&gt; used internally without exposing the transitively as part of the ABI
&gt; of the ABI of the “a” library. It also avoids overlinking… I suppose
&gt; this needs some support from the linker and that CMake can figure out
&gt; by itself how to put it to use.
&gt; 
&gt; So I wouldn&apos;t consider “PRIVATE” useless ;-)
&gt; 
&gt; (Of couse, “PRIVATE” should not be part of a list-variable, only
&gt; passed directly to “target_link_libraries”, so it&apos;s of course a
&gt; good thing that you removed it here.)

Yeah, it has to be used directly in target_link_libraries. What we had here was just a bug.

Don has been working on replacing PUBLIC include directories with PRIVATE to simplify our build. But for now, we&apos;re still using PUBLIC for libraries everywhere. To change this, we&apos;d need to add a *_PRIVATE_LIBRARIES variable to the _WEBKIT_TARGET macros. This would be of limited value and cleaning up include directories seems a lot more important.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372549</attachid>
            <date>2019-06-20 02:46:17 -0700</date>
            <delta_ts>2019-06-20 04:01:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-remove-flash.diff</filename>
            <type>text/plain</type>
            <size>82747</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyYWZlODljZDJmOC4uZWFk
MWM4OWI0NmEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0wNi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIHN1cHBvcnQgZm9yIEdUSzIgcGx1Z2lucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvRmluZEdESzIuY21ha2U6IFJlbW92ZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0Zp
bmRHVEsyLmNtYWtlOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlOgorCiAyMDE5LTA2LTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNXUEUuY21ha2Ug
YW5kIE5FV1MgZm9yIHRoZSAyLjI1LjEgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBlMzU1MTZm
YzBmNS4uZWUxOWFlMjNlYjcgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTkt
MDYtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHVEtdIFJlbW92ZSBzdXBwb3J0IGZvciBHVEsyIHBsdWdpbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTA2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RpdGNoTWFya2VyL3d0Zi9QbGF0
Zm9ybS5oOgorCiAyMDE5LTA1LTA4ICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4K
IAogICAgICAgICBbQmlnSW50XSBBZGQgVmFsdWVNb2QgaW50byBERkcKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvU3RpdGNoTWFya2VyL3d0Zi9QbGF0Zm9ybS5oIGIvUGVyZm9ybWFuY2VU
ZXN0cy9TdGl0Y2hNYXJrZXIvd3RmL1BsYXRmb3JtLmgKaW5kZXggNDRiMTg0MGZjNmMuLjA3MmJi
OWJlYTA1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL1N0aXRjaE1hcmtlci93dGYvUGxh
dGZvcm0uaAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1N0aXRjaE1hcmtlci93dGYvUGxhdGZvcm0u
aApAQCAtNTI0LDkgKzUyNCw2IEBACiAKICNpZiBQTEFURk9STShHVEspCiAjZGVmaW5lIEdMSUJf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgR0xJQl9WRVJTSU9OXzJfMzYKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oR1RLKSAmJiAhZGVmaW5lZChHVEtfQVBJX1ZFUlNJT05fMikKICNkZWZpbmUgR0RLX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIEdES19WRVJTSU9OXzNfNgogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYTU5MWFk
ZDkxMTMuLmU4Mzg3N2RhZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA2LTIwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBS
ZW1vdmUgc3VwcG9ydCBmb3IgR1RLMiBwbHVnaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9n
bGliL0dUeXBlZGVmcy5oOgorCiAyMDE5LTA2LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW2JtYWxsb2NdIElzb0hlYXAncyBpbml0aWFsaXphdGlvbiBp
cyByYWN5IHdpdGggSXNvSGVhcDo6aXNJbml0aWFsaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNWQyMzZl
MDM0YjAuLjVhNmVmM2FkYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTU4MywxNiArNTgzLDEzIEBACiAK
ICNpZiBQTEFURk9STShHVEspCiAjZGVmaW5lIEdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQgR0xJ
Ql9WRVJTSU9OXzJfMzYKKyNkZWZpbmUgR0RLX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdES19WRVJT
SU9OXzNfNgogI2VuZGlmCiAKICNpZiBQTEFURk9STShXUEUpCiAjZGVmaW5lIEdMSUJfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgR0xJQl9WRVJTSU9OXzJfNDAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
R1RLKSAmJiAhZGVmaW5lZChHVEtfQVBJX1ZFUlNJT05fMikKLSNkZWZpbmUgR0RLX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIEdES19WRVJTSU9OXzNfNgotI2VuZGlmCi0KICNpZiBVU0UoU09VUCkKICNk
ZWZpbmUgU09VUF9WRVJTSU9OX01JTl9SRVFVSVJFRCBTT1VQX1ZFUlNJT05fMl80MgogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dUeXBlZGVmcy5oIGIvU291cmNlL1dU
Ri93dGYvZ2xpYi9HVHlwZWRlZnMuaAppbmRleCA1MTA1M2MwM2Q4Ni4uZTk0NzkwZTczZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1R5cGVkZWZzLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvZ2xpYi9HVHlwZWRlZnMuaApAQCAtNzUsMTEgKzc1LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3Jl
Y3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwogI2VuZGlmCiAKLSNpZiBVU0UoQ0xV
VFRFUikKLXR5cGVkZWYgc3RydWN0IF9DbHV0dGVyQWN0b3IgQ2x1dHRlckFjdG9yOwotdHlwZWRl
ZiBzdHJ1Y3QgX0dyYXBoaWNzTGF5ZXJBY3RvciBHcmFwaGljc0xheWVyQWN0b3I7Ci0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HdGtBY3Rpb24gR3RrQWN0aW9u
OwogdHlwZWRlZiBzdHJ1Y3QgX0d0a0FkanVzdG1lbnQgR3RrQWRqdXN0bWVudDsKQEAgLTk2LDE2
ICs5MSw5IEBAIHR5cGVkZWYgc3RydWN0IF9HdGtUYXJnZXRMaXN0IEd0a1RhcmdldExpc3Q7CiB0
eXBlZGVmIHN0cnVjdCBfR3RrVGhlbWVQYXJ0cyBHdGtUaGVtZVBhcnRzOwogdHlwZWRlZiBzdHJ1
Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7CiB0eXBlZGVmIHN0cnVjdCBfR3RrV2luZG93IEd0a1dp
bmRvdzsKLQotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi10eXBlZGVmIHN0cnVjdCBfR2RrUmVj
dGFuZ2xlIEdka1JlY3RhbmdsZTsKLXR5cGVkZWYgc3RydWN0IF9HZGtEcmF3YWJsZSBHZGtXaW5k
b3c7Ci0jZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0dka1dpbmRvdyBHZGtXaW5kb3c7CiB0eXBlZGVm
IHN0cnVjdCBfR3RrU3R5bGVDb250ZXh0IEd0a1N0eWxlQ29udGV4dDsKICNlbmRpZgogCi0jZW5k
aWYKLQogI2VuZGlmCiAjZW5kaWYgLy8gV1RGX0dUeXBlZGVmc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZm
NGYyYWJhY2YuLmYxNDg0YzExZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTkt
MDYtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHVEtdIFJlbW92ZSBzdXBwb3J0IGZvciBHVEsyIHBsdWdpbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTA2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6Cisg
ICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vRnJlZVR5cGUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vU291cmNl
c0dMaWIudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29s
b3I6Om9wZXJhdG9yIEdka1JHQkEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b25G
cmFtZUNsb2NrVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRv
ckd0azo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheVJlZnJlc2hNb25pdG9yR3RrOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2d0ay9HZGtDYWlyb1V0aWxpdGllcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dS
ZWZQdHJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmRI
ZWxwZXI6OmdldENsaXBib2FyZENvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxh
dGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1vZGlmaWVyc0Zv
ckdka0tleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1N
b3VzZUV2ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6
UGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3Jl
ZW5HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERl
dmljZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvV2lkZ2V0R3RrLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsu
Y3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5oOgorCiAyMDE5LTA2LTE5
ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBD
cmVhdGUgYSBzaGFkaW5nIGxhbmd1YWdlIHRlc3QgaGFybmVzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCBkOWVkZjAxOWQxNS4uMmYwZGE1Yjc2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCkBAIC00Miw0MSArNDIsNiBAQCBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICApCiBl
bmRpZiAoKQogCi1saXN0KEFQUEVORCBXZWJDb3JlUGxhdGZvcm1HVEtfU09VUkNFUwotICAgIGVk
aXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKLQotICAgIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3Rr
LmNwcAotCi0gICAgcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAotCi0gICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAotCi0gICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL0NvbG9yR3RrLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVm
cmVzaE1vbml0b3JHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJvVXRp
bGl0aWVzLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9JY29uR3RrLmNwcAotICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHAKLSAgICBwbGF0Zm9ybS9ncmFw
aGljcy9ndGsvSW1hZ2VHdGsuY3BwCi0KLSAgICBwbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcAot
ICAgIHBsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL0dSZWZQ
dHJHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAKLSAgICBwbGF0Zm9y
bS9ndGsvR3RrVmVyc2lvbmluZy5jCi0gICAgcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIu
Y3BwCi0gICAgcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKLSAgICBw
bGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAotICAgIHBsYXRmb3JtL2d0ay9Q
bGF0Zm9ybVBhc3RlYm9hcmRHdGsuY3BwCi0gICAgcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVu
R3RrLmNwcAotICAgIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCi0gICAg
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR2FkZ2V0LmNwcAotICAgIHBsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZVdpZGdldC5jcHAKLSAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3Bw
Ci0gICAgcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKLQotICAgIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUd0ay5jcHAKLSkKLQogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1hFcnJvclRyYXBwZXIuaApAQCAtODcsNyArNTIsNiBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCiAgICAgcGxhdGZvcm0vZ3RrL0dVbmlxdWVQdHJHdGsuaAog
ICAgIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaAotICAgIHBsYXRmb3JtL2d0ay9HdGtWZXJz
aW9uaW5nLmgKICAgICBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCiAgICAgcGxhdGZv
cm0vZ3RrL1NlbGVjdGlvbkRhdGEuaAogCkBAIC0xMDksMTAgKzczLDEyIEBAIHNldChXZWJDb3Jl
X1VTRVJfQUdFTlRfU0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3RrL1JlbmRlclRoCiBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUwogICAgICR7QVRLX0xJ
QlJBUklFU30KICAgICAke0VOQ0hBTlRfTElCUkFSSUVTfQorICAgICR7R0RLX0xJQlJBUklFU30K
ICAgICAke0dMSUJfR0lPX0xJQlJBUklFU30KICAgICAke0dMSUJfR01PRFVMRV9MSUJSQVJJRVN9
CiAgICAgJHtHTElCX0dPQkpFQ1RfTElCUkFSSUVTfQogICAgICR7R0xJQl9MSUJSQVJJRVN9Cisg
ICAgJHtHVEtfTElCUkFSSUVTfQogICAgICR7TElCU0VDQ09NUF9MSUJSQVJJRVN9CiAgICAgJHtM
SUJTRUNSRVRfTElCUkFSSUVTfQogICAgICR7TElCVEFTTjFfTElCUkFSSUVTfQpAQCAtMTM1LDgg
KzEwMSwxMCBAQCBlbmRpZiAoKQogbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICR7QVRLX0lOQ0xVREVfRElSU30KICAgICAke0VOQ0hBTlRfSU5DTFVE
RV9ESVJTfQorICAgICR7R0RLX0lOQ0xVREVfRElSU30KICAgICAke0dJT19VTklYX0lOQ0xVREVf
RElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R1RLX0lOQ0xVREVfRElSU30K
ICAgICAke0xJQlNFQ0NPTVBfSU5DTFVERV9ESVJTfQogICAgICR7TElCU0VDUkVUX0lOQ0xVREVf
RElSU30KICAgICAke0xJQlRBU04xX0lOQ0xVREVfRElSU30KQEAgLTE2NiwzMSArMTM0LDYgQEAg
aWYgKFVTRV9PUEVOR0wpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKEVOQUJMRV9QTFVHSU5fUFJP
Q0VTU19HVEsyKQotICAgICMgV2ViS2l0UGx1Z2luUHJvY2VzczIgbmVlZHMgYSB2ZXJzaW9uIG9m
IFdlYkNvcmUgY29tcGlsZWQgYWdhaW5zdCBHVEsrMiwgc28gd2UndmUgaXNvbGF0ZWQgYWxsIHRo
ZSBHVEsrCi0gICAgIyBkZXBlbmRlbnQgZmlsZXMgaW50byBhIHNlcGFyYXRlIGxpYnJhcnkgd2hp
Y2ggY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGEgR1RLKzIgV2ViQ29yZQotICAgICMgZm9yIHRo
ZSBwbHVnaW4gcHJvY2Vzcy4KLSAgICBhZGRfbGlicmFyeShXZWJDb3JlUGxhdGZvcm1HVEsyICR7
V2ViQ29yZV9MSUJSQVJZX1RZUEV9ICR7V2ViQ29yZVBsYXRmb3JtR1RLX1NPVVJDRVN9KQotICAg
IGFkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVBsYXRmb3JtR1RLMiBXZWJDb3JlKQotICAgIHNldF9w
cm9wZXJ0eShUQVJHRVQgV2ViQ29yZVBsYXRmb3JtR1RLMgotICAgICAgICBBUFBFTkQKLSAgICAg
ICAgUFJPUEVSVFkgQ09NUElMRV9ERUZJTklUSU9OUyBHVEtfQVBJX1ZFUlNJT05fMj0xCi0gICAg
KQotICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdlYkNvcmVQbGF0Zm9ybUdUSzIgUFJJ
VkFURQotICAgICAgICAke1dlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFU30KLSAgICApCi0gICAg
dGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtR1RLMiBTWVNURU0gUFJJ
VkFURQotICAgICAgICAke1dlYkNvcmVfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9Ci0gICAg
ICAgICR7R1RLMl9JTkNMVURFX0RJUlN9Ci0gICAgICAgICR7R0RLMl9JTkNMVURFX0RJUlN9Ci0g
ICAgKQotICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJDb3JlUGxhdGZvcm1HVEsyCi0gICAg
ICAgICAke1dlYkNvcmVfTElCUkFSSUVTfQotICAgICAgICAgJHtHVEsyX0xJQlJBUklFU30KLSAg
ICAgICAgICR7R0RLMl9MSUJSQVJJRVN9Ci0gICAgKQotZW5kaWYgKCkKLQogaWYgKEVOQUJMRV9X
QVlMQU5EX1RBUkdFVCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kLmgKQEAgLTIwNCwyOSArMTQ3LDYgQEAgaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdF
VCkKICAgICApCiBlbmRpZiAoKQogCi1hZGRfbGlicmFyeShXZWJDb3JlUGxhdGZvcm1HVEsgJHtX
ZWJDb3JlX0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlUGxhdGZvcm1HVEtfU09VUkNFU30pCi1hZGRf
ZGVwZW5kZW5jaWVzKFdlYkNvcmVQbGF0Zm9ybUdUSyBXZWJDb3JlKQotdGFyZ2V0X2luY2x1ZGVf
ZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtR1RLIFBSSVZBVEUKLSAgICAke1dlYkNvcmVfSU5D
TFVERV9ESVJFQ1RPUklFU30KLSAgICAke1dlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9S
SUVTfQotKQotdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtR1RLIFNZ
U1RFTSBQUklWQVRFCi0gICAgJHtXZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTfQot
ICAgICR7R1RLX0lOQ0xVREVfRElSU30KLSAgICAke0dES19JTkNMVURFX0RJUlN9Ci0pCi10YXJn
ZXRfbGlua19saWJyYXJpZXMoV2ViQ29yZVBsYXRmb3JtR1RLCi0gICAgJHtXZWJDb3JlX0xJQlJB
UklFU30KLSAgICAke0dUS19MSUJSQVJJRVN9Ci0gICAgJHtHREtfTElCUkFSSUVTfQotKQotCi1p
bmNsdWRlX2RpcmVjdG9yaWVzKAotICAgICR7V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTfQot
ICAgICR7V2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVN9Ci0gICAgIiR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL2dvYmplY3QvIgotKQotCiBpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RF
TQogICAgICR7V2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFU30KICkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0dUSy50eHQKaW5kZXggOWNlNjY5YTU1OGIuLjMzNDMwZjkwM2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RL
LnR4dApAQCAtNDEsOCArNDEsMTIgQEAgYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVV0aWwuY3BwCiAKIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAogCitlZGl0aW5n
L2d0ay9FZGl0b3JHdGsuY3BwCisKIGxvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAK
IAorcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisKIHBhZ2UvbGludXgvUmVzb3VyY2VV
c2FnZU92ZXJsYXlMaW51eC5jcHAKIHBhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExpbnV4
LmNwcAogCkBAIC02Myw2ICs2Nyw3IEBAIHBsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JH
ZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwIEBuby11bmlmeQog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9C
YWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwIEBuby11bmlmeQogCkBAIC03Myw2ICs3OCwx
MyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMWDExLmNwcCBAbm8tdW5pZnkK
IAogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKIAorcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0NvbG9yR3RrLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvckd0ay5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9HZGtDYWlyb1V0aWxpdGll
cy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JY29uR3RrLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL0ltYWdlQnVmZmVyR3RrLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlR3Rr
LmNwcAorCiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5j
cHAKIAogcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3BlL1BsYXRmb3JtRGlzcGxheUxpYldQRS5jcHAK
QEAgLTg5LDEwICsxMDEsMjQgQEAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxh
eVgxMS5jcHAgQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWEVycm9yVHJhcHBlci5j
cHAgQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWFVuaXF1ZVJlc291cmNlLmNwcCBA
bm8tdW5pZnkKIAorcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKIHBsYXRmb3JtL2d0ay9EcmFn
RGF0YUd0ay5jcHAKK3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCitwbGF0Zm9ybS9ndGsv
R1JlZlB0ckd0ay5jcHAKK3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9n
dGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNw
cAorcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCitwbGF0Zm9ybS9ndGsvUGxhdGZv
cm1LZXlib2FyZEV2ZW50R3RrLmNwcAorcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0
ay5jcHAKK3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVBhc3RlYm9hcmRHdGsuY3BwCitwbGF0Zm9ybS9n
dGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCitwbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50
R3RrLmNwcAorcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR2FkZ2V0LmNwcAorcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lV2lkZ2V0LmNwcAorcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNw
cAogcGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwCitwbGF0Zm9ybS9ndGsvV2lkZ2V0R3Rr
LmNwcAogCiBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAogcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCkBAIC0xMDQsMyArMTMwLDUgQEAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVu
YXRpb25MaWJIeXBoZW4uY3BwCiBwbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAogCiBwbGF0
Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKworcmVuZGVyaW5nL1JlbmRlclRoZW1l
R3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc1dQRS50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzV1BFLnR4dAppbmRleCBkYmJkOTk1YWU0OS4uMmY5OGZmZWJmMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNXUEUudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNXUEUudHh0CkBAIC01OCw5ICs1OCw2IEBAIHBhZ2Uvc2Nyb2xsaW5nL2dl
bmVyaWMvU2Nyb2xsaW5nVGhyZWFkR2VuZXJpYy5jcHAKIAogcGxhdGZvcm0vVXNlckFnZW50UXVp
cmtzLmNwcAogCi0vLyBUaGlzIGNhbid0IGdvIGludG8gU291cmNlc0dMaWIudHh0IGJlY2F1c2Ug
aXQgaGFzIHRvIGdvIGludG8gV2ViQ29yZVBsYXRmb3JtR1RLLgotcGxhdGZvcm0vZ2xpYi9FdmVu
dEhhbmRsZXJHTGliLmNwcAotCiBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GcmVlVHlwZS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyZWVUeXBlLmNt
YWtlCmluZGV4IGYxZDNhMTYyZTI4Li5kMGMyYmUyN2FhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRnJlZVR5cGUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRnJlZVR5cGUuY21ha2UKQEAgLTUsNiArNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJ
VkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVl
VHlwZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRh
RnJlZVR5cGUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvR2x5cGhQYWdlVHJl
ZU5vZGVGcmVlVHlwZS5jcHAKQEAgLTIxLDE2ICsyMiw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hiVW5pcXVlUHRyLmgKICkKIAotaWYgKFBPUlQgU1RSRVFVQUwgIkdUSyIpCi0gICAgbGlzdChB
UFBFTkQgV2ViQ29yZVBsYXRmb3JtR1RLX1NPVVJDRVMKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCi0pCi1lbHNlICgpCi0gICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
L0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAotKQotZW5kaWYgKCkKLQogaWYgKFVTRV9DQUlSTykKICAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJj
ZXNHTGliLnR4dAppbmRleCAwOTBiODRhNDhjMS4uNzU2ZDA3MDI4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKQEAgLTIzLDYgKzIzLDcgQEAKIAogcGxhdGZvcm0v
YXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCiAKK3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIv
RmlsZU1vbml0b3JHTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKaW5kZXggZDY5MTVjMGNjN2Eu
LmE3NWU3ZDEwNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgK
QEAgLTQ5LDExICs0OSw4IEBAIHR5cGVkZWYgRDJEX1ZFQ1RPUl80RiBEMkQxX1ZFQ1RPUl80RjsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQotdHlwZWRlZiBzdHJ1Y3QgX0dka0NvbG9yIEdk
a0NvbG9yOwotI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogdHlwZWRlZiBzdHJ1Y3QgX0dka1JH
QkEgR2RrUkdCQTsKICNlbmRpZgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgVGV4
dFN0cmVhbTsKQEAgLTI1MiwxMyArMjQ5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNTZW1hbnRp
YygpIGNvbnN0IHsgcmV0dXJuICFpc0V4dGVuZGVkKCkgJiYgKG1fY29sb3JEYXRhLnJnYmFBbmRG
bGFncyAmIGlzU2VtYW50aWNSQkdBQ29sb3JCaXQpOyB9CiAKICNpZiBQTEFURk9STShHVEspCi0g
ICAgQ29sb3IoY29uc3QgR2RrQ29sb3ImKTsKLSAgICAvLyBXZSBjYW4ndCBzZW5zaWJseSBnbyBi
YWNrIHRvIEdka0NvbG9yIHdpdGhvdXQgbG9zaW5nIHRoZSBhbHBoYSB2YWx1ZQotI2lmbmRlZiBH
VEtfQVBJX1ZFUlNJT05fMgogICAgIENvbG9yKGNvbnN0IEdka1JHQkEmKTsKICAgICBvcGVyYXRv
ciBHZGtSR0JBKCkgY29uc3Q7CiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgVVNFKENHKQogICAgIFdF
QkNPUkVfRVhQT1JUIENvbG9yKENHQ29sb3JSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNmY5YTAzOWYzMzQu
LjAyOGJlMWE4MDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAKICNpbmNsdWRlIDxnZGsv
Z2RreC5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFdBWUxBTkQp
ICYmICFkZWZpbmVkKEdUS19BUElfVkVSU0lPTl8yKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgUExB
VEZPUk0oV0FZTEFORCkKICNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgogI2VuZGlmCiAKQEAg
LTc0LDkgKzc0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQogewog
I2lmIFBMQVRGT1JNKEdUSykKLSNpZiBkZWZpbmVkKEdUS19BUElfVkVSU0lPTl8yKQotICAgIHJl
dHVybiBQbGF0Zm9ybURpc3BsYXlYMTE6OmNyZWF0ZShHREtfRElTUExBWV9YRElTUExBWShnZGtf
ZGlzcGxheV9nZXRfZGVmYXVsdCgpKSk7Ci0jZWxzZQogICAgIGlmIChndGtfaW5pdF9jaGVjayhu
dWxscHRyLCBudWxscHRyKSkgewogICAgICAgICBHZGtEaXNwbGF5KiBkaXNwbGF5ID0gZ2RrX2Rp
c3BsYXlfbWFuYWdlcl9nZXRfZGVmYXVsdF9kaXNwbGF5KGdka19kaXNwbGF5X21hbmFnZXJfZ2V0
KCkpOwogI2lmIFBMQVRGT1JNKFgxMSkKQEAgLTg4LDcgKzg1LDYgQEAgc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXko
KQogICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZShnZGtf
d2F5bGFuZF9kaXNwbGF5X2dldF93bF9kaXNwbGF5KGRpc3BsYXkpKTsKICNlbmRpZgogICAgIH0K
LSNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAogI2lmIFVTRShXUEVfUkVOREVSRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNw
cAppbmRleCA0ZDk0YTY5NDcwZC4uZDY2ODRhNzIxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcApAQCAtMjUsMTIgKzI1LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db2xvcjo6Q29sb3IoY29uc3QgR2RrQ29sb3ImIGMp
Ci17Ci0gICAgc2V0UkdCKG1ha2VSR0IoYy5yZWQgPj4gOCwgYy5ncmVlbiA+PiA4LCBjLmJsdWUg
Pj4gOCkpOwotfQotCi0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCiBDb2xvcjo6Q29sb3IoY29u
c3QgR2RrUkdCQSYgYykKIHsKICAgICBzZXRSR0IobWFrZVJHQkEoc3RhdGljX2Nhc3Q8aW50Pihj
LnJlZCAqIDI1NSksCkBAIC00OCw3ICs0Miw2IEBAIENvbG9yOjpvcGVyYXRvciBHZGtSR0JBKCkg
Y29uc3QKICAgICBnZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKICAgICByZXR1cm4g
eyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9OwogfQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxh
eVJlZnJlc2hNb25pdG9yR3RrLmNwcAppbmRleCAxMDUyYTYyOGY5Zi4uMTI1ZmU0YjUzNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVm
cmVzaE1vbml0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCkBAIC00NCwxOSArNDQsMTYgQEAgRGlz
cGxheVJlZnJlc2hNb25pdG9yR3RrOjp+RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKCkKICAgICAg
ICAgZ3RrX3dpZGdldF9kZXN0cm95KG1fd2luZG93KTsKIH0KIAotI2lmbmRlZiBHVEtfQVBJX1ZF
UlNJT05fMgogc3RhdGljIHZvaWQgb25GcmFtZUNsb2NrVXBkYXRlKEdka0ZyYW1lQ2xvY2sqLCBE
aXNwbGF5UmVmcmVzaE1vbml0b3JHdGsqIG1vbml0b3IpCiB7CiAgICAgbW9uaXRvci0+ZGlzcGxh
eUxpbmtGaXJlZCgpOwogfQotI2VuZGlmCiAKIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yR3Rr
OjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkKIHsKICAgICBpZiAoIWlzQWN0aXZlKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIGlmICgh
bV93aW5kb3cpIHsKICAgICAgICAgLy8gR2RrRnJhbWVDbG9ja0lkbGUgaXMgcHJpdmF0ZSBpbiBH
REssIHNvIHdlIG5lZWQgdG8gY3JlYXRlIGEgdG9wbGV2ZWwgdG8gZ2V0IGl0cyBmcmFtZSBjbG9j
ay4KICAgICAgICAgbV93aW5kb3cgPSBndGtfb2Zmc2NyZWVuX3dpbmRvd19uZXcoKTsKQEAgLTc1
LDkgKzcyLDYgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OnJlcXVlc3RSZWZyZXNo
Q2FsbGJhY2soKQogICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBzZXRJc1NjaGVk
dWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwot
I2VuZGlmCiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpkaXNwbGF5TGlua0Zp
cmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9E
aXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaAppbmRleCAxNTk2Mzc1ODAzOS4uOWJk
MTM1N2FhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgKQEAgLTM3LDEyICszNyw3
IEBAIGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayA6IHB1YmxpYyBEaXNwbGF5UmVmcmVz
aE1vbml0b3IgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25p
dG9yR3RrPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIHsKLSNpZm5k
ZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxh
eVJlZnJlc2hNb25pdG9yR3RrKGRpc3BsYXlJRCkpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BB
UkFNKGRpc3BsYXlJRCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCiAgICAgfQog
CiAgICAgdmlydHVhbCB+RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvR2RrQ2Fpcm9VdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJvVXRpbGl0aWVz
LmNwcAppbmRleCBlZjUwODllY2JiNi4uZDJiNDBjYWFkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9HZGtDYWlyb1V0aWxpdGllcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0dka0NhaXJvVXRpbGl0aWVzLmNw
cApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAKICNpbmNs
dWRlICJHZGtDYWlyb1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNp
bmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5jcHAKaW5kZXggZmVk
N2E4ZjAwOTEuLmI3NjhjOGZkZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR1JlZlB0ckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dS
ZWZQdHJHdGsuY3BwCkBAIC01OSwyMiArNTksNiBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0
cihTZWNyZXRWYWx1ZSogcHRyKQogfQogI2VuZGlmCiAKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05f
MgotdGVtcGxhdGUgPD4gR2RrQ3Vyc29yKiByZWZHUHRyKEdka0N1cnNvciogcHRyKQotewotICAg
IGlmIChwdHIpCi0gICAgICAgIGdka19jdXJzb3JfcmVmKHB0cik7Ci0gICAgcmV0dXJuIHB0cjsK
LX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR2RrQ3Vyc29yKiBwdHIpCi17Ci0gICAg
aWYgKHB0cikKLSAgICAgICAgZ2RrX2N1cnNvcl91bnJlZihwdHIpOwotfQotCi0jZWxzZQotCiB0
ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiByZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cikKIHsK
ICAgICBpZiAocHRyKQpAQCAtODgsNiArNzIsNCBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0
cihHdGtXaWRnZXRQYXRoKiBwdHIpCiAgICAgICAgIGd0a193aWRnZXRfcGF0aF91bnJlZihwdHIp
OwogfQogCi0jZW5kaWYKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0dSZWZQdHJHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3Rr
LmgKaW5kZXggYmExZDZkMTIwN2IuLmQyNmIwNTVkYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HUmVmUHRyR3RrLmgKQEAgLTE4LDggKzE4LDcgQEAKICAqICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIEdSZWZQdHJHdGtfaAotI2RlZmluZSBHUmVm
UHRyR3RrX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgog
CkBAIC0zNiwxNCArMzUsOCBAQCB0ZW1wbGF0ZSA8PiBTZWNyZXRWYWx1ZSogcmVmR1B0cihTZWNy
ZXRWYWx1ZSogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKFNlY3JldFZhbHVlKiBw
dHIpOwogI2VuZGlmCiAKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotdGVtcGxhdGUgPD4gR2Rr
Q3Vyc29yKiByZWZHUHRyKEdka0N1cnNvciogcHRyKTsKLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZH
UHRyKEdka0N1cnNvciogcHRyKTsKLSNlbHNlCiB0ZW1wbGF0ZSA8PiBHdGtXaWRnZXRQYXRoKiBy
ZWZHUHRyKEd0a1dpZGdldFBhdGgqIHB0cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihH
dGtXaWRnZXRQYXRoKiBwdHIpOwotI2VuZGlmCiAKIH0KIAotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5jIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDFlNTg2MzE5ZjEuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HdGtWZXJzaW9uaW5nLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyODcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSwgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiR3RrVmVyc2lvbmluZy5oIgotCi0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi0jaWYgUExB
VEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKQotI2luY2x1ZGUgPFgxMS9Y
YXRvbS5oPgotI2luY2x1ZGUgPGdkay9nZGt4Lmg+Ci0jZW5kaWYKLQotR2RrRGV2aWNlICpnZXRE
ZWZhdWx0R0RLUG9pbnRlckRldmljZShHZGtXaW5kb3cqIHdpbmRvdykKLXsKLSNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAyMCwgMCkKLSAgICByZXR1cm4gZ2RrX3NlYXRfZ2V0X3BvaW50ZXIoZ2Rr
X2Rpc3BsYXlfZ2V0X2RlZmF1bHRfc2VhdChnZGtfd2luZG93X2dldF9kaXNwbGF5KHdpbmRvdykp
KTsKLSNlbGlmICFkZWZpbmVkKEdUS19BUElfVkVSU0lPTl8yKQotICAgIEdka0RldmljZU1hbmFn
ZXIgKm1hbmFnZXIgPSAgZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGdka193aW5kb3df
Z2V0X2Rpc3BsYXkod2luZG93KSk7Ci0gICAgcmV0dXJuIGdka19kZXZpY2VfbWFuYWdlcl9nZXRf
Y2xpZW50X3BvaW50ZXIobWFuYWdlcik7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh3aW5kb3cp
OwotICAgIHJldHVybiBnZGtfZGV2aWNlX2dldF9jb3JlX3BvaW50ZXIoKTsKLSNlbmRpZiAvLyBH
VEtfQVBJX1ZFUlNJT05fMgotfQotCi0jaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLXN0YXRpYyBj
YWlyb19mb3JtYXRfdAotZ2RrX2NhaXJvX2Zvcm1hdF9mb3JfY29udGVudChjYWlyb19jb250ZW50
X3QgY29udGVudCkKLXsKLSAgICBzd2l0Y2ggKGNvbnRlbnQpIHsKLSAgICBjYXNlIENBSVJPX0NP
TlRFTlRfQ09MT1I6Ci0gICAgICAgIHJldHVybiBDQUlST19GT1JNQVRfUkdCMjQ7Ci0gICAgY2Fz
ZSBDQUlST19DT05URU5UX0FMUEhBOgotICAgICAgICByZXR1cm4gQ0FJUk9fRk9STUFUX0E4Owot
ICAgIGNhc2UgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQToKLSAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gQ0FJUk9fRk9STUFUX0FSR0IzMjsKLSAgICB9Ci19Ci0KLXN0YXRpYyBjYWlyb19z
dXJmYWNlX3QqCi1nZGtfY2Fpcm9fc3VyZmFjZV9jb2VyY2VfdG9faW1hZ2UoY2Fpcm9fc3VyZmFj
ZV90KiBzdXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhaXJvX2Nv
bnRlbnRfdCBjb250ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3
aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGVpZ2h0KQotewot
ICAgIGNhaXJvX3N1cmZhY2VfdCAqIGNvcHk7Ci0gICAgY2Fpcm9fdCAqIGNyOwotCi0gICAgaWYg
KGNhaXJvX3N1cmZhY2VfZ2V0X3R5cGUoc3VyZmFjZSkgPT0gQ0FJUk9fU1VSRkFDRV9UWVBFX0lN
QUdFCi0gICAgICAgICYmIGNhaXJvX3N1cmZhY2VfZ2V0X2NvbnRlbnQoc3VyZmFjZSkgPT0gY29u
dGVudAotICAgICAgICAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlKSA+
PSB3aWR0aAotICAgICAgICAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoc3VyZmFj
ZSkgPj0gaGVpZ2h0KQotICAgICAgICByZXR1cm4gY2Fpcm9fc3VyZmFjZV9yZWZlcmVuY2Uoc3Vy
ZmFjZSk7Ci0KLSAgICBjb3B5ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGUoZ2RrX2NhaXJv
X2Zvcm1hdF9mb3JfY29udGVudChjb250ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodCk7Ci0KLSAgICBjciA9IGNhaXJvX2NyZWF0ZShjb3B5KTsKLSAgICBjYWlyb19zZXRf
b3BlcmF0b3IoY3IsIENBSVJPX09QRVJBVE9SX1NPVVJDRSk7Ci0gICAgY2Fpcm9fc2V0X3NvdXJj
ZV9zdXJmYWNlKGNyLCBzdXJmYWNlLCAwLCAwKTsKLSAgICBjYWlyb19wYWludChjcik7Ci0gICAg
Y2Fpcm9fZGVzdHJveShjcik7Ci0KLSAgICByZXR1cm4gY29weTsKLX0KLQotc3RhdGljIHZvaWQK
LWNvbnZlcnRfYWxwaGEoZ3VjaGFyICogZGVzdERhdGEsIGludCBkZXN0U3RyaWRlLAotICAgICAg
ICAgICAgICBndWNoYXIgKiBzcmNEYXRhLCBpbnQgc3JjU3RyaWRlLAotICAgICAgICAgICAgICBp
bnQgc3JjWCwgaW50IHNyY1ksIGludCB3aWR0aCwgaW50IGhlaWdodCkKLXsKLSAgICBVTlVTRURf
UEFSQU0oc3JjWCk7Ci0KLSAgICBpbnQgeCwgeTsKLQotICAgIHNyY0RhdGEgKz0gc3JjU3RyaWRl
ICogc3JjWSArIHNyY1kgKiA0OwotCi0gICAgZm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7
Ci0gICAgICAgIGd1aW50MzIgKiBzcmMgPSAoZ3VpbnQzMiAqKSBzcmNEYXRhOwotCi0gICAgICAg
IGZvciAoeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7Ci0gICAgICAgICAgICBndWludCBhbHBoYSA9
IHNyY1t4XSA+PiAyNDsKLQotICAgICAgICAgICAgaWYgKCFhbHBoYSkgewotICAgICAgICAgICAg
ICAgIGRlc3REYXRhW3ggKiA0ICsgMF0gPSAwOwotICAgICAgICAgICAgICAgIGRlc3REYXRhW3gg
KiA0ICsgMV0gPSAwOwotICAgICAgICAgICAgICAgIGRlc3REYXRhW3ggKiA0ICsgMl0gPSAwOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkZXN0RGF0YVt4ICogNCArIDBd
ID0gKCgoc3JjW3hdICYgMHhmZjAwMDApID4+IDE2KSAqIDI1NSArIGFscGhhIC8gMikgLyBhbHBo
YTsKLSAgICAgICAgICAgICAgICBkZXN0RGF0YVt4ICogNCArIDFdID0gKCgoc3JjW3hdICYgMHgw
MGZmMDApID4+ICA4KSAqIDI1NSArIGFscGhhIC8gMikgLyBhbHBoYTsKLSAgICAgICAgICAgICAg
ICBkZXN0RGF0YVt4ICogNCArIDJdID0gKCgoc3JjW3hdICYgMHgwMDAwZmYpID4+ICAwKSAqIDI1
NSArIGFscGhhIC8gMikgLyBhbHBoYTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlc3RE
YXRhW3ggKiA0ICsgM10gPSBhbHBoYTsKLSAgICAgICAgfQotCi0gICAgICAgIHNyY0RhdGEgKz0g
c3JjU3RyaWRlOwotICAgICAgICBkZXN0RGF0YSArPSBkZXN0U3RyaWRlOwotICAgIH0KLX0KLQot
c3RhdGljIHZvaWQKLWNvbnZlcnRfbm9fYWxwaGEoZ3VjaGFyICogZGVzdERhdGEsIGludCBkZXN0
U3RyaWRlLCBndWNoYXIgKiBzcmNEYXRhLAotICAgICAgICAgICAgICAgICBpbnQgc3JjU3RyaWRl
LCBpbnQgc3JjWCwgaW50IHNyY1ksCi0gICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhl
aWdodCkKLXsKLSAgICBpbnQgeCwgeTsKLQotICAgIHNyY0RhdGEgKz0gc3JjU3RyaWRlICogc3Jj
WSArIHNyY1ggKiA0OwotCi0gICAgZm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7Ci0gICAg
ICAgIGd1aW50MzIgKiBzcmMgPSAoZ3VpbnQzMiAqKSBzcmNEYXRhOwotCi0gICAgICAgIGZvciAo
eCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7Ci0gICAgICAgICAgICBkZXN0RGF0YVt4ICogMyArIDBd
ID0gc3JjW3hdID4+IDE2OwotICAgICAgICAgICAgZGVzdERhdGFbeCAqIDMgKyAxXSA9IHNyY1t4
XSA+PiAgODsKLSAgICAgICAgICAgIGRlc3REYXRhW3ggKiAzICsgMl0gPSBzcmNbeF07Ci0gICAg
ICAgIH0KLQotICAgICAgICBzcmNEYXRhICs9IHNyY1N0cmlkZTsKLSAgICAgICAgZGVzdERhdGEg
Kz0gZGVzdFN0cmlkZTsKLSAgICB9Ci19Ci0KLS8qKgotICogZ2RrX3BpeGJ1Zl9nZXRfZnJvbV9z
dXJmYWNlOgotICogQHN1cmZhY2U6IHN1cmZhY2UgdG8gY29weSBmcm9tCi0gKiBAc3JjX3g6IFNv
dXJjZSBYIGNvb3JkaW5hdGUgd2l0aGluIEBzdXJmYWNlCi0gKiBAc3JjX3k6IFNvdXJjZSBZIGNv
b3JkaW5hdGUgd2l0aGluIEBzdXJmYWNlCi0gKiBAd2lkdGg6IFdpZHRoIGluIHBpeGVscyBvZiBy
ZWdpb24gdG8gZ2V0Ci0gKiBAaGVpZ2h0OiBIZWlnaHQgaW4gcGl4ZWxzIG9mIHJlZ2lvbiB0byBn
ZXQKLSAqCi0gKiBUcmFuc2ZlcnMgaW1hZ2UgZGF0YSBmcm9tIGEgI2NhaXJvX3N1cmZhY2VfdCBh
bmQgY29udmVydHMgaXQgdG8gYW4gUkdCKEEpCi0gKiByZXByZXNlbnRhdGlvbiBpbnNpZGUgYSAj
R2RrUGl4YnVmLiBUaGlzIGFsbG93cyB5b3UgdG8gZWZmaWNpZW50bHkgcmVhZAotICogaW5kaXZp
ZHVhbCBwaXhlbHMgZnJvbSBjYWlybyBzdXJmYWNlcy4gRm9yICNHZGtXaW5kb3dzLCB1c2UKLSAq
IGdka19waXhidWZfZ2V0X2Zyb21fd2luZG93KCkgaW5zdGVhZC4KLSAqCi0gKiBUaGlzIGZ1bmN0
aW9uIHdpbGwgY3JlYXRlIGFuIFJHQiBwaXhidWYgd2l0aCA4IGJpdHMgcGVyIGNoYW5uZWwuIFRo
ZSBwaXhidWYKLSAqIHdpbGwgY29udGFpbiBhbiBhbHBoYSBjaGFubmVsIGlmIHRoZSBAc3VyZmFj
ZSBjb250YWlucyBvbmUuCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgZnVsbCk6IEEg
bmV3bHktY3JlYXRlZCBwaXhidWYgd2l0aCBhIHJlZmVyZW5jZSBjb3VudAotICogb2YgMSwgb3Ig
JU5VTEwgb24gZXJyb3IKLSAqKi8KLUdka1BpeGJ1ZioKLWdka19waXhidWZfZ2V0X2Zyb21fc3Vy
ZmFjZShjYWlyb19zdXJmYWNlX3QgKiBzdXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBzcmNYLCBpbnQgc3JjWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
d2lkdGgsIGludCBoZWlnaHQpCi17Ci0gICAgY2Fpcm9fY29udGVudF90IGNvbnRlbnQ7Ci0gICAg
R2RrUGl4YnVmICogZGVzdDsKLQotICAgIC8qIEdlbmVyYWwgc2FuaXR5IGNoZWNrcyAqLwotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN1cmZhY2UsIE5VTEwpOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHNyY1ggPj0gMCAmJiBzcmNZID49IDAsIE5VTEwpOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwLCBOVUxMKTsKLQotICAgIGNvbnRlbnQgPSBj
YWlyb19zdXJmYWNlX2dldF9jb250ZW50KHN1cmZhY2UpIHwgQ0FJUk9fQ09OVEVOVF9DT0xPUjsK
LSAgICBkZXN0ID0gZ2RrX3BpeGJ1Zl9uZXcoR0RLX0NPTE9SU1BBQ0VfUkdCLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAhIShjb250ZW50ICYgQ0FJUk9fQ09OVEVOVF9BTFBIQSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIDgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LCBoZWlnaHQpOwotCi0gICAgc3VyZmFjZSA9IGdka19jYWlyb19zdXJmYWNlX2NvZXJjZV90b19p
bWFnZShzdXJmYWNlLCBjb250ZW50LCBzcmNYICsgd2lkdGgsIHNyY1kgKyBoZWlnaHQpOwotICAg
IGNhaXJvX3N1cmZhY2VfZmx1c2goc3VyZmFjZSk7Ci0gICAgaWYgKGNhaXJvX3N1cmZhY2Vfc3Rh
dHVzKHN1cmZhY2UpIHx8ICFkZXN0KSB7Ci0gICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShz
dXJmYWNlKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgaWYgKGdka19waXhi
dWZfZ2V0X2hhc19hbHBoYShkZXN0KSkKLSAgICAgICAgY29udmVydF9hbHBoYShnZGtfcGl4YnVm
X2dldF9waXhlbHMoZGVzdCksCi0gICAgICAgICAgICAgICAgICAgICAgIGdka19waXhidWZfZ2V0
X3Jvd3N0cmlkZShkZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfZGF0YShzdXJmYWNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHN1cmZhY2UpLAotICAgICAgICAgICAgICAgICAgICAgICBz
cmNYLCBzcmNZLAotICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0KTsKLSAgICBl
bHNlCi0gICAgICAgIGNvbnZlcnRfbm9fYWxwaGEoZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzKGRlc3Qp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoZGVz
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Rh
dGEoc3VyZmFjZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhaXJvX2ltYWdlX3N1cmZh
Y2VfZ2V0X3N0cmlkZShzdXJmYWNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjWCwg
c3JjWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCk7Ci0KLSAgICBj
YWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFjZSk7Ci0gICAgcmV0dXJuIGRlc3Q7Ci19Ci0KLSNp
ZiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19YMTEpCi1zdGF0aWMgaW50
IGdldFNjcmVlbkN1cnJlbnREZXNrdG9wKEdka1NjcmVlbiAqc2NyZWVuKQotewotICAgIERpc3Bs
YXkgKmRpc3BsYXkgPSBHREtfRElTUExBWV9YRElTUExBWShnZGtfc2NyZWVuX2dldF9kaXNwbGF5
KHNjcmVlbikpOwotICAgIFdpbmRvdyByb290V2luZG93ID0gWFJvb3RXaW5kb3coZGlzcGxheSwg
R0RLX1NDUkVFTl9YTlVNQkVSKHNjcmVlbikpOwotICAgIEF0b20gY3VycmVudERlc2t0b3AgPSBY
SW50ZXJuQXRvbShkaXNwbGF5LCAiX05FVF9DVVJSRU5UX0RFU0tUT1AiLCBUcnVlKTsKLQotICAg
IEF0b20gdHlwZTsKLSAgICBpbnQgZm9ybWF0OwotICAgIHVuc2lnbmVkIGxvbmcgaXRlbXNDb3Vu
dCwgYnl0ZXNBZnRlcjsKLSAgICB1bnNpZ25lZCBjaGFyICpyZXR1cm5lZERhdGEgPSBOVUxMOwot
ICAgIFhHZXRXaW5kb3dQcm9wZXJ0eShkaXNwbGF5LCByb290V2luZG93LCBjdXJyZW50RGVza3Rv
cCwgMCwgR19NQVhMT05HLCBGYWxzZSwgWEFfQ0FSRElOQUwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICZ0eXBlLCAmZm9ybWF0LCAmaXRlbXNDb3VudCwgJmJ5dGVzQWZ0ZXIsICZyZXR1cm5lZERh
dGEpOwotCi0gICAgaW50IHdvcmtzcGFjZSA9IDA7Ci0gICAgaWYgKHR5cGUgPT0gWEFfQ0FSRElO
QUwgJiYgZm9ybWF0ID09IDMyICYmIGl0ZW1zQ291bnQgPiAwKQotICAgICAgICB3b3Jrc3BhY2Ug
PSAoaW50KXJldHVybmVkRGF0YVswXTsKLQotICAgIGlmIChyZXR1cm5lZERhdGEpCi0gICAgICAg
IFhGcmVlKHJldHVybmVkRGF0YSk7Ci0KLSAgICByZXR1cm4gd29ya3NwYWNlOwotfQotCi1zdGF0
aWMgdm9pZCBnZXRTY3JlZW5Xb3JrQXJlYShHZGtTY3JlZW4gKnNjcmVlbiwgR2RrUmVjdGFuZ2xl
ICphcmVhKQotewotICAgIERpc3BsYXkgKmRpc3BsYXkgPSBHREtfRElTUExBWV9YRElTUExBWShn
ZGtfc2NyZWVuX2dldF9kaXNwbGF5KHNjcmVlbikpOwotICAgIEF0b20gd29ya0FyZWEgPSBYSW50
ZXJuQXRvbShkaXNwbGF5LCAiX05FVF9XT1JLQVJFQSIsIFRydWUpOwotCi0gICAgLyogRGVmYXVs
dHMgaW4gY2FzZSBvZiBlcnJvci4gKi8KLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAyMiwgMCkK
LSAgICBHZGtSZWN0YW5nbGUgZ2VvbTsKLSAgICBHZGtNb25pdG9yICptb25pdG9yID0gZ2RrX2Rp
c3BsYXlfZ2V0X3ByaW1hcnlfbW9uaXRvcihkaXNwbGF5KTsKLSAgICBnZGtfbW9uaXRvcl9nZXRf
Z2VvbWV0cnkobW9uaXRvciwgJmdlb20pOwotICAgIGFyZWEtPnggPSBnZW9tLng7Ci0gICAgYXJl
YS0+eSA9IGdlb20ueTsKLSAgICBhcmVhLT53aWR0aCA9IGdlb20ud2lkdGg7Ci0gICAgYXJlYS0+
aGVpZ2h0ID0gZ2VvbS5oZWlnaHQ7Ci0jZWxzZQotICAgIGFyZWEtPnggPSAwOwotICAgIGFyZWEt
PnkgPSAwOwotICAgIGFyZWEtPndpZHRoID0gZ2RrX3NjcmVlbl9nZXRfd2lkdGgoc2NyZWVuKTsK
LSAgICBhcmVhLT5oZWlnaHQgPSBnZGtfc2NyZWVuX2dldF9oZWlnaHQoc2NyZWVuKTsKLSNlbmRp
ZgotCi0gICAgaWYgKHdvcmtBcmVhID09IE5vbmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdp
bmRvdyByb290V2luZG93ID0gWFJvb3RXaW5kb3coZGlzcGxheSwgR0RLX1NDUkVFTl9YTlVNQkVS
KHNjcmVlbikpOwotICAgIEF0b20gdHlwZTsKLSAgICBpbnQgZm9ybWF0OwotICAgIHVuc2lnbmVk
IGxvbmcgaXRlbXNDb3VudCwgYnl0ZXNBZnRlcjsKLSAgICB1bnNpZ25lZCBjaGFyICpyZXR1cm5l
ZERhdGEgPSAwOwotICAgIGludCByZXN1bHQgPSBYR2V0V2luZG93UHJvcGVydHkoZGlzcGxheSwg
cm9vdFdpbmRvdywgd29ya0FyZWEsIDAsIDQgKiAzMiAvKiBNYXggbGVuZ3RoICovLCBGYWxzZSwg
QW55UHJvcGVydHlUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnR5
cGUsICZmb3JtYXQsICZpdGVtc0NvdW50LCAmYnl0ZXNBZnRlciwgJnJldHVybmVkRGF0YSk7Ci0g
ICAgaWYgKHJlc3VsdCAhPSBTdWNjZXNzIHx8IHR5cGUgPT0gTm9uZSB8fCAhZm9ybWF0IHx8IGJ5
dGVzQWZ0ZXIgfHwgaXRlbXNDb3VudCAlIDQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBk
ZXNrdG9wID0gZ2V0U2NyZWVuQ3VycmVudERlc2t0b3Aoc2NyZWVuKTsKLSAgICBsb25nICp3b3Jr
QXJlYXMgPSAobG9uZyAqKXJldHVybmVkRGF0YTsKLSAgICBhcmVhLT54ID0gd29ya0FyZWFzW2Rl
c2t0b3AgKiA0XTsKLSAgICBhcmVhLT55ID0gd29ya0FyZWFzW2Rlc2t0b3AgKiA0ICsgMV07Ci0g
ICAgYXJlYS0+d2lkdGggPSB3b3JrQXJlYXNbZGVza3RvcCAqIDQgKyAyXTsKLSAgICBhcmVhLT5o
ZWlnaHQgPSB3b3JrQXJlYXNbZGVza3RvcCAqIDQgKyAzXTsKLQotICAgIFhGcmVlKHJldHVybmVk
RGF0YSk7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJ
TkdfWDExKQotCi12b2lkIGdka19zY3JlZW5fZ2V0X21vbml0b3Jfd29ya2FyZWEoR2RrU2NyZWVu
ICpzY3JlZW4sIGludCBtb25pdG9yLCBHZGtSZWN0YW5nbGUgKmFyZWEpCi17Ci0gICAgZ2RrX3Nj
cmVlbl9nZXRfbW9uaXRvcl9nZW9tZXRyeShzY3JlZW4sIG1vbml0b3IsIGFyZWEpOwotCi0jaWYg
UExBVEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKQotICAgIEdka1JlY3Rh
bmdsZSB3b3JrQXJlYTsKLSAgICBnZXRTY3JlZW5Xb3JrQXJlYShzY3JlZW4sICZ3b3JrQXJlYSk7
Ci0gICAgZ2RrX3JlY3RhbmdsZV9pbnRlcnNlY3QoJndvcmtBcmVhLCBhcmVhLCBhcmVhKTsKLSNl
bmRpZgotfQotI2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjExNGE5MTA1ZTAuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtWZXJzaW9uaW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
SWdhbGlhLCBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgR3RrVmVyc2lvbmluZ19oCi0jZGVmaW5l
IEd0a1ZlcnNpb25pbmdfaAotCi0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi0jaWZuZGVmIEdUS19B
UElfVkVSU0lPTl8yCi0jaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMtY29tcGF0Lmg+Ci0jZW5kaWYK
LQotR19CRUdJTl9ERUNMUwotCi0vLyBNYWNyb3MgdG8gYXZvaWQgZGVwcmVjYXRpb24gY2hlY2tp
bmcgY2h1cm4KLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSNkZWZpbmUgR0RLX1dJTkRPV19Y
V0lORE9XKHdpbmRvdykgKGdka194MTFfd2luZG93X2dldF94aWQod2luZG93KSkKLSNlbHNlCi1H
ZGtQaXhidWYqIGdka19waXhidWZfZ2V0X2Zyb21fc3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1
cmZhY2UsIGludCBzcmNYLCBpbnQgc3JjWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCk7Ci12b2lkIGdka19zY3JlZW5fZ2V0X21v
bml0b3Jfd29ya2FyZWEoR2RrU2NyZWVuICosIGludCBtb25pdG9yLCBHZGtSZWN0YW5nbGUgKmFy
ZWEpOwotLy8gRGVmaW5lIEdES19JU19YMTFfRElTUExBWSBkdW1teSBmb3IgR1RLKyAyLjAgY29t
cGF0aWJpbGl0eS4KLSNpZmRlZiBHREtfV0lORE9XSU5HX1gxMQotI2RlZmluZSBHREtfSVNfWDEx
X0RJU1BMQVkoZGlzcGxheSkgMQotI2Vsc2UKLSNkZWZpbmUgR0RLX0lTX1gxMV9ESVNQTEFZKGRp
c3BsYXkpIDAKLSNlbmRpZgotI2VuZGlmCi0KLUdka0RldmljZSogZ2V0RGVmYXVsdEdES1BvaW50
ZXJEZXZpY2UoR2RrV2luZG93KiB3aW5kb3cpOwotCi0vLyBndGtfd2lkZ2V0X2dldF9wcmVmZXJy
ZWRfc2l6ZSgpIGFwcGVhcmVkIG9ubHkgaW4gR1RLIDMuMC4KLSNpZiAhR1RLX0NIRUNLX1ZFUlNJ
T04gKDIsIDkxLCAwKSAgLy8gZ3RrX3dpZGdldF9nZXRfcHJlZmVycmVkX3NpemUgYXBwZWFyZWQg
YWJvdXQgdGhlbi4KLSNkZWZpbmUgZ3RrX3dpZGdldF9nZXRfcHJlZmVycmVkX3NpemUod2lkZ2V0
LCBtaW5pbXVtU2l6ZSwgbmF0dXJhbFNpemUpIFwKLSAgICAgICAgKGd0a193aWRnZXRfc2l6ZV9y
ZXF1ZXN0KCh3aWRnZXQpLCAoKG1pbmltdW1TaXplKSkpKQotI2VuZGlmCi0KLUdfRU5EX0RFQ0xT
Ci0KLSNlbmRpZiAvLyBHdGtWZXJzaW9uaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAppbmRleCBjMTVhZDA2MWNiMS4uNDkwMzcxYWQ4
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVs
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBl
ci5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAK
ICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgotI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNp
bmNsdWRlICJTZWxlY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUg
PHd0Zi9TZXRGb3JTY29wZS5oPgpAQCAtMTE5LDcgKzExOCw2IEBAIHZvaWQgUGFzdGVib2FyZEhl
bHBlcjo6Z2V0Q2xpcGJvYXJkQ29udGVudHMoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIFNlbGVj
dGlvbkRhCiAgICAgICAgIH0KICAgICB9CiAKLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAg
ICBpZiAoZ3RrX2NsaXBib2FyZF93YWl0X2lzX2ltYWdlX2F2YWlsYWJsZShjbGlwYm9hcmQpKSB7
CiAgICAgICAgIGlmIChHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVmID0gYWRvcHRHUmVmKGd0a19j
bGlwYm9hcmRfd2FpdF9mb3JfaW1hZ2UoY2xpcGJvYXJkKSkpIHsKICAgICAgICAgICAgIFJlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9wdFJlZihnZGtfY2Fpcm9fc3VyZmFjZV9j
cmVhdGVfZnJvbV9waXhidWYocGl4YnVmLmdldCgpLCAxLCBudWxscHRyKSk7CkBAIC0xMjcsNyAr
MTI1LDYgQEAgdm9pZCBQYXN0ZWJvYXJkSGVscGVyOjpnZXRDbGlwYm9hcmRDb250ZW50cyhHdGtD
bGlwYm9hcmQqIGNsaXBib2FyZCwgU2VsZWN0aW9uRGEKICAgICAgICAgICAgIHNlbGVjdGlvbi5z
ZXRJbWFnZShpbWFnZS5wdHIoKSk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAgIHNl
bGVjdGlvbi5zZXRDYW5TbWFydFJlcGxhY2UoZ3RrX2NsaXBib2FyZF93YWl0X2lzX3RhcmdldF9h
dmFpbGFibGUoY2xpcGJvYXJkLCBzbWFydFBhc3RlQXRvbSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcApp
bmRleCA4MWE3NDcyNmFkYy4uZmI5Mzc2NjgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0zMSw3
ICszMSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAKICNpbmNsdWRl
ICJHdGtVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJX
aW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgpAQCAtMTMzNCwxNCArMTMzMywxMSBAQCBzdGF0aWMgUGxh
dGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGVGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZl
bnQpCiBzdGF0aWMgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNG
b3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiB7CiAgICAgR2RrTW9kaWZpZXJUeXBl
IHN0YXRlOwotICAgIGd1aW50IGtleXZhbDsKLSAgICBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6
TW9kaWZpZXI+IG1vZGlmaWVyczsKICAgICBnZGtfZXZlbnRfZ2V0X3N0YXRlKHJlaW50ZXJwcmV0
X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZzdGF0ZSk7Ci0jaWZuZGVmIEdUS19BUElfVkVSU0lP
Tl8yCisgICAgZ3VpbnQga2V5dmFsOwogICAgIGdka19ldmVudF9nZXRfa2V5dmFsKHJlaW50ZXJw
cmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZrZXl2YWwpOwotI2Vsc2UKLSAgICBrZXl2YWwg
PSBldmVudC0+a2V5dmFsOwotI2VuZGlmCisKKyAgICBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6
TW9kaWZpZXI+IG1vZGlmaWVyczsKICAgICBpZiAoc3RhdGUgJiBHREtfU0hJRlRfTUFTSyB8fCBr
ZXl2YWwgPT0gR0RLX0tFWV8zMjcwX0JhY2tUYWIpCiAgICAgICAgIG1vZGlmaWVycy5hZGQoUGxh
dGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKICAgICBpZiAoc3RhdGUgJiBHREtfQ09O
VFJPTF9NQVNLKQpAQCAtMTM2NSwxNCArMTM2MSw5IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
UGxhdGZvcm1LZXlib2FyZEV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwgY29uc3QgQ29tcG9zaXRp
CiAgICAgLCBtX2NvbXBvc2l0aW9uUmVzdWx0cyhjb21wb3NpdGlvblJlc3VsdHMpCiB7CiAgICAg
Z3VpbnQga2V5dmFsOwotICAgIGd1aW50MTYga2V5Y29kZTsKLSNpZm5kZWYgR1RLX0FQSV9WRVJT
SU9OXzIKICAgICBnZGtfZXZlbnRfZ2V0X2tleXZhbChyZWludGVycHJldF9jYXN0PEdka0V2ZW50
Kj4oZXZlbnQpLCAma2V5dmFsKTsKKyAgICBndWludDE2IGtleWNvZGU7CiAgICAgZ2RrX2V2ZW50
X2dldF9rZXljb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZrZXljb2Rl
KTsKLSNlbHNlCi0gICAga2V5dmFsID0gZXZlbnQtPmtleXZhbDsKLSAgICBrZXljb2RlID0gZXZl
bnQtPmhhcmR3YXJlX2tleWNvZGU7Ci0jZW5kaWYKIAogICAgIG1fdGV4dCA9IGNvbXBvc2l0aW9u
UmVzdWx0cy5zaW1wbGVTdHJpbmcubGVuZ3RoKCkgPyBjb21wb3NpdGlvblJlc3VsdHMuc2ltcGxl
U3RyaW5nIDogc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGtleXZhbCk7CiAgICAgbV91bm1vZGlmaWVk
VGV4dCA9IG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtTW91c2VFdmVudEd0ay5jcHAKaW5kZXggOGVlMmJlNGYzNTUuLmRlMWE4ZGMyM2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2
ZW50R3RrLmNwcApAQCAtMzksMTggKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEtl
ZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9y
cwogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24q
IGV2ZW50KQogewotICAgIGdkb3VibGUgeCwgeSwgcm9vdFgsIHJvb3RZOwotICAgIEdka01vZGlm
aWVyVHlwZSBzdGF0ZTsKLSAgICBndWludCBidXR0b247Ci0KKyAgICBnZG91YmxlIHgsIHk7CiAg
ICAgZ2RrX2V2ZW50X2dldF9jb29yZHMocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50
KSwgJngsICZ5KTsKKyAgICBnZG91YmxlIHJvb3RYLCByb290WTsKICAgICBnZGtfZXZlbnRfZ2V0
X3Jvb3RfY29vcmRzKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZyb290WCwg
JnJvb3RZKTsKKyAgICBHZGtNb2RpZmllclR5cGUgc3RhdGU7CiAgICAgZ2RrX2V2ZW50X2dldF9z
dGF0ZShyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAmc3RhdGUpOwotI2lmbmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgorICAgIGd1aW50IGJ1dHRvbjsKICAgICBnZGtfZXZlbnRfZ2V0
X2J1dHRvbihyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAmYnV0dG9uKTsKLSNl
bHNlCi0gICAgYnV0dG9uID0gZXZlbnQtPmJ1dHRvbjsKLSNlbmRpZgogCiAgICAgbV90aW1lc3Rh
bXAgPSB3YWxsVGltZUZvckV2ZW50KGV2ZW50KTsKICAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQo
c3RhdGljX2Nhc3Q8aW50Pih4KSwgc3RhdGljX2Nhc3Q8aW50Pih5KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCA3MzFjYTdk
ZTY5Yi4uYmQ0N2I3Mzk2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiR3RrVmVyc2lvbmlu
Zy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIldpZGdldC5oIgpAQCAtMjIwLDE3ICsyMTksNiBAQCBib29sIHNjcmVlblN1
cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgp
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5w
dXREZXZpY2UoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbHNlIC8vIEdUS19BUElfVkVS
U0lPTl8yCiAjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQogc3RhdGljIHZvaWQgZGV2
aWNlQWRkZWRDYWxsYmFjayhHZGtEZXZpY2VNYW5hZ2VyKiwgR2RrRGV2aWNlKik7CiBzdGF0aWMg
dm9pZCBkZXZpY2VSZW1vdmVkQ2FsbGJhY2soR2RrRGV2aWNlTWFuYWdlciosIEdka0RldmljZSop
OwpAQCAtMzI0LDcgKzMxMiw2IEBAIGJvb2wgc2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERldmlj
ZSgpCiAKICAgICByZXR1cm4gZGV2aWNlID8gZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSkg
PT0gR0RLX1NPVVJDRV9UT1VDSFNDUkVFTiA6IHRydWU7CiB9Ci0jZW5kaWYgLy8gIUdUS19BUElf
VkVSU0lPTl8yCiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZv
cm1XaGVlbEV2ZW50R3RrLmNwcAppbmRleCA4NGI1YjRlYWRhZC4uOTNlZmJjNjUxNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRH
dGsuY3BwCkBAIC02Miw3ICs2Miw2IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICBtX2RlbHRhWCA9IDA7CiAgICAgbV9k
ZWx0YVkgPSAwOwogICAgIEdka1Njcm9sbERpcmVjdGlvbiBkaXJlY3Rpb247Ci0jaWZuZGVmIEdU
S19BUElfVkVSU0lPTl8yCiAgICAgaWYgKCFnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kaXJlY3Rpb24o
cmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgJmRpcmVjdGlvbikpIHsKICAgICAg
ICAgZ2RvdWJsZSBkZWx0YVgsIGRlbHRhWTsKICAgICAgICAgaWYgKGdka19ldmVudF9nZXRfc2Ny
b2xsX2RlbHRhcyhyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAmZGVsdGFYLCAm
ZGVsdGFZKSkgewpAQCAtNzAsOSArNjksNiBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3Jt
V2hlZWxFdmVudChHZGtFdmVudFNjcm9sbCogZXZlbnQpCiAgICAgICAgICAgICBtX2RlbHRhWSA9
IC1kZWx0YVk7CiAgICAgICAgIH0KICAgICB9Ci0jZWxzZQotICAgIGRpcmVjdGlvbiA9IGV2ZW50
LT5kaXJlY3Rpb247Ci0jZW5kaWYKIAogICAgIC8vIERvY3Mgc2F5IGFuIHVwd2FyZHMgc2Nyb2xs
IChhd2F5IGZyb20gdGhlIHVzZXIpIGhhcyBhIHBvc2l0aXZlIGRlbHRhCiAgICAgaWYgKCFtX2Rl
bHRhWCAmJiAhbV9kZWx0YVkpIHsKQEAgLTk3LDcgKzkzLDYgQEAgUGxhdGZvcm1XaGVlbEV2ZW50
OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQogICAgIG1fd2hlZWxU
aWNrc1kgPSBtX2RlbHRhWTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0jaWZuZGVm
IEdUS19BUElfVkVSU0lPTl8yCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjAsIDApCiAgICAg
bV9waGFzZSA9IGdka19ldmVudF9pc19zY3JvbGxfc3RvcF9ldmVudChyZWludGVycHJldF9jYXN0
PEdka0V2ZW50Kj4oZXZlbnQpKSA/CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5k
ZWQgOgpAQCAtMTA3LDkgKzEwMiw2IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2VFbmRlZCA6CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZDsKICNl
bmRpZgotI2Vsc2UKLSAgICBtX3BoYXNlID0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2Vk
OwotI2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKIAogICAgIGdkb3VibGUgeCwgeSwgcm9vdFgsIHJvb3RZOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggMjA5YWY3
YjU1ZGIuLjNlNmFmNDljMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgU2Nyb2xsYmFyVGhlbWUm
IFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCiAKIFNjcm9sbGJhclRoZW1lR3RrOjp+U2Ny
b2xsYmFyVGhlbWVHdGsoKSA9IGRlZmF1bHQ7CiAKLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIK
IHN0YXRpYyB2b2lkIHRoZW1lQ2hhbmdlZENhbGxiYWNrKCkKIHsKICAgICBTY3JvbGxiYXJUaGVt
ZTo6dGhlbWUoKS50aGVtZUNoYW5nZWQoKTsKQEAgLTgzNiwzMiArODM1LDQgQEAgaW50IFNjcm9s
bGJhclRoZW1lR3RrOjptaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiAg
ICAgcmV0dXJuIG1pblRodW1iTGVuZ3RoOwogfQogI2VuZGlmCi0KLSNlbHNlIC8vIEdUS19BUElf
VkVSU0lPTl8yCi1ib29sIFNjcm9sbGJhclRoZW1lR3RrOjpoYXNUaHVtYihTY3JvbGxiYXImKQot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotSW50UmVjdCBTY3JvbGxiYXJUaGVtZUd0azo6YmFj
a0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKLXsKLSAgICByZXR1
cm4gSW50UmVjdCgpOwotfQotCi1JbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjpmb3J3YXJkQnV0
dG9uUmVjdChTY3JvbGxiYXImLCBTY3JvbGxiYXJQYXJ0LCBib29sKQotewotICAgIHJldHVybiBJ
bnRSZWN0KCk7Ci19Ci0KLUludFJlY3QgU2Nyb2xsYmFyVGhlbWVHdGs6OnRyYWNrUmVjdChTY3Jv
bGxiYXImLCBib29sKQotewotICAgIHJldHVybiBJbnRSZWN0KCk7Ci19Ci0KLWJvb2wgU2Nyb2xs
YmFyVGhlbWVHdGs6Omhhc0J1dHRvbnMoU2Nyb2xsYmFyJikKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0jZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaAppbmRleCA4MDhhZTA5MWRlYS4uMzFh
YjYzZmU2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJUaGVtZUd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZu
ZGVmIFNjcm9sbGJhclRoZW1lR3RrX2gKLSNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVHdGtfaAorI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIgogCkBAIC00
Miw3ICs0MSw2IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0KFNjcm9s
bGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wpIG92ZXJyaWRlOwogICAgIEludFJlY3QgdHJhY2tS
ZWN0KFNjcm9sbGJhciYsIGJvb2wpIG92ZXJyaWRlOwogCi0jaWZuZGVmIEdUS19BUElfVkVSU0lP
Tl8yCiAgICAgU2Nyb2xsYmFyVGhlbWVHdGsoKTsKIAogICAgIGJvb2wgcGFpbnQoU2Nyb2xsYmFy
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkgb3ZlcnJpZGU7
CkBAIC02Niw5ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0JhY2tCdXR0b25TdGFy
dFBhcnQgOiAxOwogICAgIGJvb2wgbV9oYXNCYWNrQnV0dG9uRW5kUGFydCA6IDE7CiAgICAgYm9v
bCBtX3VzZXNPdmVybGF5U2Nyb2xsYmFycyB7IGZhbHNlIH07Ci0jZW5kaWYgLy8gR1RLX0FQSV9W
RVJTSU9OXzIKIH07CiAKIH0KIAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9X
aWRnZXRHdGsuY3BwCmluZGV4IGU0OWUzZWE5Mzg2Li43MzYxNmZiNjI3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNs
dWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKLSNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSG9zdFdp
bmRvdy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggOTI4NmNmNmI1YjYuLmY0NDRjNWExYWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJHVW5pcXVlUHRyR3RrLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0xMjUsOCArMTI0LDYgQEAg
aW50IFJlbmRlclRoZW1lR3RrOjpzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKCkgY29u
c3QKIH0KICNlbmRpZgogCi0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi0KIHN0YXRpYyB2b2lk
IHRoZW1lQ2hhbmdlZENhbGxiYWNrKCkKIHsKICAgICBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBh
Z2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CkBAIC0yMDYxLDYgKzIwNTgsNCBA
QCBTdHJpbmcgUmVuZGVyVGhlbWVHdGs6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgIHJldHVy
biBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQot
Ci0jZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmgKaW5kZXggOTY3YjhmNzkyNDguLmUxNDc2ZDIyMjYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaApAQCAtNDgsOCArNDgsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1Zh
bHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKIAogcHVibGlj
OgotI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotCiAgICAgLy8gQSBtZXRob2QgYXNraW5nIGlm
IHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5IGNhcmUgYWJvdXQgcmVkcmF3aW5nIHdoZW4g
aG92ZXJlZC4KICAgICBib29sIHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTE4OSw3ICsxODcsNiBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICBzdGF0aWMgSW50UmVjdCBjYWxjdWxhdGVQcm9ncmVzc1JlY3QoY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgSW50UmVjdCYpOwotI2VuZGlmIC8vIEdUS19BUElfVkVS
U0lPTl8yCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5YjhjOTc2
YWViLi40ZjQ1ZDQzM2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxOS0wNi0yMCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gUmVtb3ZlIHN1cHBvcnQgZm9yIEdUSzIgcGx1Z2lucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Om1vZHVsZU1peGVzR3RrU3ltYm9scyk6CisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAg
ICogU2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9kdWxlSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9n
dGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNHZGtLZXlDb2RlRnJv
bUtleVBhZCk6CisgICAgICAgIChXZWJLaXQ6OmJ1dHRvbkZvckV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAg
KiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3QmFzZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xh
dW5jaGVyR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNo
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9DYWNoZTo6Z2V0UGx1Z2luSW5mbyk6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpbkluZm9DYWNoZTo6dXBkYXRlUGx1Z2luSW5mbyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZvKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9uc1dp
dGhBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpzY2Fu
UGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNj
YXBlUGx1Z2luWDExLmNwcDoKKwogMjAxOS0wNi0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTm8gbWVudSBwb3AtdXAgd2hlbiBsb25nIHByZXNzaW5nIG9uIGEg
bGluayBpbiBGaXJlZm94IGFwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjE4ZGI0MDQ4
OTUuLjYzM2Q5MDUxZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQyMiw4ICs0MjIs
MTEgQEAgbGlzdChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKIGxpc3QoQVBQRU5E
IFdlYktpdF9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7Q0FJUk9fSU5DTFVERV9E
SVJTfQogICAgICR7RU5DSEFOVF9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElS
U30KICAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CiAgICAgJHtHU1RSRUFNRVJfUEJVVElM
U19JTkNMVURFX0RJUlN9CisgICAgJHtHVEtfSU5DTFVERV9ESVJTfQorICAgICR7R1RLX1VOSVhf
UFJJTlRfSU5DTFVERV9ESVJTfQogICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQogICAgICR7
TElCU09VUF9JTkNMVURFX0RJUlN9CiApCkBAIC00NDcsMTIgKzQ1MCw2IEBAIGVuZGlmICgpCiBz
ZXQoV2ViS2l0Q29tbW9uSW5jbHVkZURpcmVjdG9yaWVzICR7V2ViS2l0X0lOQ0xVREVfRElSRUNU
T1JJRVN9KQogc2V0KFdlYktpdENvbW1vblN5c3RlbUluY2x1ZGVEaXJlY3RvcmllcyAke1dlYktp
dF9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFU30pCiAKLWxpc3QoQVBQRU5EIFdlYktpdF9TWVNU
RU1fSU5DTFVERV9ESVJFQ1RPUklFUwotICAgICR7R0xJQl9JTkNMVURFX0RJUlN9Ci0gICAgJHtH
VEtfSU5DTFVERV9ESVJTfQotICAgICR7R1RLX1VOSVhfUFJJTlRfSU5DTFVERV9ESVJTfQotKQot
CiBsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL0VudHJ5UG9p
bnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKICkKQEAgLTQ2NiwxNCArNDYzLDkgQEAgc2V0KFNo
YXJlZFdlYktpdExpYnJhcmllcwogKQogCiBsaXN0KEFQUEVORCBXZWJLaXRfTElCUkFSSUVTCi0g
ICAgUFJJVkFURQotICAgICAgICBXZWJDb3JlUGxhdGZvcm1HVEsKLSAgICAgICAgJHtHVEtfVU5J
WF9QUklOVF9MSUJSQVJJRVN9CisgICAgJHtHVEtfVU5JWF9QUklOVF9MSUJSQVJJRVN9CiApCiAK
LSMgV2ViQ29yZSBzaG91bGQgYmUgc3BlY2lmZWQgYmVmb3JlIGFuZCBhZnRlciBXZWJDb3JlUGxh
dGZvcm1HVEsKLWxpc3QoQVBQRU5EIFdlYktpdF9MSUJSQVJJRVMgUFJJVkFURSBXZWJDb3JlKQot
CiBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICBsaXN0KEFQUEVORCBXZWJLaXRfTElCUkFSSUVT
CiAgICAgICAke1dQRV9MSUJSQVJJRVN9CkBAIC01NzAsMTQ0ICs1NjIsNiBAQCBpZiAoRU5BQkxF
X1dBWUxBTkRfVEFSR0VUKQogICAgICkKIGVuZGlmICgpCiAKLWlmIChFTkFCTEVfUExVR0lOX1BS
T0NFU1NfR1RLMikKLSAgICBzZXQoUGx1Z2luUHJvY2Vzc0dUSzJfRVhFQ1VUQUJMRV9OQU1FIFdl
YktpdFBsdWdpblByb2Nlc3MyKQotCi0gICAgIyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSBXZWJL
aXRQbHVnaW5Qcm9jZXNzMiBpbiAyMDIwLCBvbmNlIEZsYXNoIGlzIG5vIGxvbmdlciBzdXBwb3J0
ZWQuCi0gICAgbGlzdChBUFBFTkQgUGx1Z2luUHJvY2Vzc0dUSzJfU09VUkNFUwotICAgICAgICBQ
bGF0Zm9ybS9Mb2dnaW5nLmNwcAotICAgICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3BwCi0KLSAgICAg
ICAgUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMv
QXR0YWNobWVudC5jcHAKLSAgICAgICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCi0gICAg
ICAgIFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMv
RGVjb2Rlci5jcHAKLSAgICAgICAgUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwCi0gICAgICAgIFBs
YXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlU2VuZGVyLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNw
cAotCi0gICAgICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAotICAgICAg
ICBQbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKLSAgICAgICAgUGxhdGZvcm0v
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCi0KLSAgICAgICAgUGxhdGZvcm0vZ2xpYi9Nb2R1
bGVHbGliLmNwcAotCi0gICAgICAgIFBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCi0gICAg
ICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKLQotICAgICAgICBQbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKLSAgICAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCi0gICAgICAgIFBsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzcy5jcHAKLSAgICAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKLQotICAgICAgICBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9QbHVnaW5Qcm9jZXNz
TWFpbi5jcHAKLQotICAgICAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclBy
b3h5VW5peC5jcHAKLSAgICAgICAgUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NNYWlu
VW5peC5jcHAKLSAgICAgICAgUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNw
cAotCi0gICAgICAgIFNoYXJlZC9BY3Rpdml0eUFzc2VydGlvbi5jcHAKLSAgICAgICAgU2hhcmVk
L0F1eGlsaWFyeVByb2Nlc3MuY3BwCi0gICAgICAgIFNoYXJlZC9CbG9iRGF0YUZpbGVSZWZlcmVu
Y2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAKLSAgICAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5jcHAKLSAgICAgICAgU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKLSAgICAgICAg
U2hhcmVkL1dlYkV2ZW50LmNwcAotICAgICAgICBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAK
LSAgICAgICAgU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAotICAgICAgICBTaGFyZWQvV2Vi
TW91c2VFdmVudC5jcHAKLSAgICAgICAgU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAK
LSAgICAgICAgU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCi0gICAgICAgIFNoYXJlZC9XZWJXaGVl
bEV2ZW50LmNwcAotCi0gICAgICAgIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3Bw
Ci0gICAgICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAotICAg
ICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcAotICAgICAgICBTaGFyZWQvUGx1
Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKLSAgICAgICAgU2hhcmVkL1BsdWdpbnMvTlBWYXJp
YW50RGF0YS5jcHAKLSAgICAgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKLQotICAgICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZS5jcHAKLSAgICAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5Nb2R1bGVOb25lLmNwcAotCi0gICAgICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBl
L3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAotCi0gICAgICAgIFNoYXJlZC9jYWly
by9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKLQotICAgICAgICBTaGFyZWQvZ2xpYi9Qcm9jZXNz
RXhlY3V0YWJsZVBhdGhHTGliLmNwcAotCi0gICAgICAgIFNoYXJlZC9ndGsvTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudEd0ay5jcHAKLSAgICAgICAgU2hhcmVkL2d0ay9OYXRpdmVXZWJNb3VzZUV2ZW50
R3RrLmNwcAotICAgICAgICBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCi0g
ICAgICAgIFNoYXJlZC9ndGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAKLSAgICAgICAgU2hh
cmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCi0KLSAgICAgICAgU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKLQotICAgICAgICBTaGFyZWQvdW5peC9BdXhpbGlhcnlQ
cm9jZXNzTWFpbi5jcHAKLQotICAgICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5j
aGVyLmNwcAotCi0gICAgICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVu
Y2hlci5jcHAKLSAgICAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVy
LmNwcAotICAgICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGli
LmNwcAotCi0gICAgICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5
VW5peC5jcHAKLQotICAgICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAotCi0gICAg
ICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVVdGlsaXRpZXMuY3BwCi0g
ICAgICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5j
cHAKLSAgICAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cAotICAgICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Ob25l
LmNwcAotICAgICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5T
dHJlYW0uY3BwCi0KLSAgICAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0
c2NhcGVQbHVnaW5Vbml4LmNwcAotICAgICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
eDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAotCi0gICAgICAgICR7V2ViS2l0X0RFUklWRURfU09V
UkNFU19ESVJ9L0F1eGlsaWFyeVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgICAgICR7
V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKLSAgICAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VSQ0VTX0RJUn0vUGx1Z2lu
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICAgICAgJHtXZWJLaXRfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAg
ICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L1dlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcAotICAgICkKLQotICAgIGFkZF9leGVjdXRhYmxlKFdlYktpdFBsdWdp
blByb2Nlc3MyICR7UGx1Z2luUHJvY2Vzc0dUSzJfU09VUkNFU30pCi0gICAgQUREX1dFQktJVF9Q
UkVGSVhfSEVBREVSKFdlYktpdFBsdWdpblByb2Nlc3MyKQotCi0gICAgIyBXZSBuZWVkIEVOQUJM
RV9QTFVHSU5fUFJPQ0VTUyBmb3IgYWxsIHRhcmdldHMgaW4gdGhpcyBkaXJlY3RvcnksIGJ1dAot
ICAgICMgd2Ugb25seSB3YW50IEdUS19BUElfVkVSU0lPTl8yIGZvciB0aGUgcGx1Z2luIHByb2Nl
c3MgdGFyZ2V0LgotICAgIHNldF9wcm9wZXJ0eSgKLSAgICAgICAgVEFSR0VUIFdlYktpdFBsdWdp
blByb2Nlc3MyCi0gICAgICAgIEFQUEVORAotICAgICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklO
SVRJT05TIEdUS19BUElfVkVSU0lPTl8yPTEKLSAgICApCi0gICAgdGFyZ2V0X2luY2x1ZGVfZGly
ZWN0b3JpZXMoV2ViS2l0UGx1Z2luUHJvY2VzczIgUFJJVkFURQotICAgICAgICAke1dlYktpdENv
bW1vbkluY2x1ZGVEaXJlY3Rvcmllc30KLSAgICApCi0gICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0
b3JpZXMoV2ViS2l0UGx1Z2luUHJvY2VzczIgU1lTVEVNIFBSSVZBVEUKLSAgICAgICAgICR7V2Vi
S2l0Q29tbW9uU3lzdGVtSW5jbHVkZURpcmVjdG9yaWVzfQotICAgICAgICAgJHtHVEsyX0lOQ0xV
REVfRElSU30KLSAgICAgICAgICR7R0RLMl9JTkNMVURFX0RJUlN9Ci0gICAgKQotCi0gICAgc2V0
KFdlYktpdFBsdWdpblByb2Nlc3MyX0xJQlJBUklFUwotICAgICAgICAke1NoYXJlZFdlYktpdExp
YnJhcmllc30KLSAgICAgICAgUFJJVkFURSBXZWJDb3JlUGxhdGZvcm1HVEsyCi0gICAgKQotICAg
IEFERF9XSE9MRV9BUkNISVZFX1RPX0xJQlJBUklFUyhXZWJLaXRQbHVnaW5Qcm9jZXNzMl9MSUJS
QVJJRVMpCi0gICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFBsdWdpblByb2Nlc3MyICR7
V2ViS2l0UGx1Z2luUHJvY2VzczJfTElCUkFSSUVTfSkKLQotICAgIGFkZF9kZXBlbmRlbmNpZXMo
V2ViS2l0UGx1Z2luUHJvY2VzczIgV2ViS2l0KQotCi0gICAgaW5zdGFsbChUQVJHRVRTIFdlYktp
dFBsdWdpblByb2Nlc3MyIERFU1RJTkFUSU9OICIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IikKLQot
ICAgIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCi0gICAgICAgIFdFQktJVF9BRERfVEFS
R0VUX0NYWF9GTEFHUyhXZWJLaXRQbHVnaW5Qcm9jZXNzMiAtV25vLXVudXNlZC1wYXJhbWV0ZXIp
Ci0gICAgZW5kaWYgKCkKLWVuZGlmICgpICMgRU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIKLQog
IyBHVEszIFBsdWdpblByb2Nlc3MKIGxpc3QoQVBQRU5EIFBsdWdpblByb2Nlc3NfU09VUkNFUwog
ICAgIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC91bml4L1BsdWdpblByb2Nlc3NNYWluLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAppbmRleCAyNWNjMGU5NGQ3ZC4uN2IwMmI1ZTEyZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwCkBAIC0yMDAsMTEgKzIwMCw3IEBAIGJvb2wg
TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmxvYWQoKQogI2lmIFBMQVRGT1JNKEdUSykKIHN0YXRpYyBi
b29sIG1vZHVsZU1peGVzR3RrU3ltYm9scyhNb2R1bGUqIG1vZHVsZSkKIHsKLSNpZmRlZiBHVEtf
QVBJX1ZFUlNJT05fMgotICAgIHJldHVybiBtb2R1bGUtPmZ1bmN0aW9uUG9pbnRlcjxncG9pbnRl
cj4oImd0a19hcHBsaWNhdGlvbl9nZXRfdHlwZSIpOwotI2Vsc2UKICAgICByZXR1cm4gbW9kdWxl
LT5mdW5jdGlvblBvaW50ZXI8Z3BvaW50ZXI+KCJndGtfb2JqZWN0X2dldF90eXBlIik7Ci0jZW5k
aWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXgu
Y3BwCmluZGV4IGVlYzQ3NjExNWM4Li40NjBlZTRlZThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5p
eC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05l
dHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAKQEAgLTE2Myw5ICsxNjMsNiBAQCBib29sIE5ldHNj
YXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwg
UGx1Z2luTW9kdWxlSQogICAgIHBsdWdpbi5pbmZvLm5hbWUgPSBtZXRhRGF0YS5uYW1lOwogICAg
IHBsdWdpbi5pbmZvLmRlc2MgPSBtZXRhRGF0YS5kZXNjcmlwdGlvbjsKICAgICBwYXJzZU1JTUVE
ZXNjcmlwdGlvbihtZXRhRGF0YS5taW1lRGVzY3JpcHRpb24sIHBsdWdpbi5pbmZvLm1pbWVzKTsK
LSNpZiBQTEFURk9STShHVEspCi0gICAgcGx1Z2luLnJlcXVpcmVzR3RrMiA9IG1ldGFEYXRhLnJl
cXVpcmVzR3RrMjsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9kdWxlSW5mby5oCmluZGV4IGU1MzYwZjhkNDdj
Li4yMjE2M2M5YzViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Nb2R1bGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9QbHVn
aW5Nb2R1bGVJbmZvLmgKQEAgLTU2LDggKzU2LDYgQEAgc3RydWN0IFBsdWdpbk1vZHVsZUluZm8g
ewogICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nOwogICAgIFN0cmluZyBzaG9ydFZlcnNpb25TdHJp
bmc7CiAgICAgYm9vbCBoYXNTYW5kYm94UHJvZmlsZTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBib29sIHJlcXVpcmVzR3RrMjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCA1NGNkZjYyYTc1YS4uYWFiNzVhNTkwOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0d0a1V0aWxpdGllcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxiYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENv
ZGVzLmg+CkBAIC00NCw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0
aWMgaW5saW5lIGJvb2wgaXNHZGtLZXlDb2RlRnJvbUtleVBhZCh1bnNpZ25lZCBrZXl2YWwpCiB7
Ci0gICAgcmV0dXJuIGtleXZhbCA+PSBHREtfS1BfU3BhY2UgJiYga2V5dmFsIDw9IEdES19LUF85
OworICAgIHJldHVybiBrZXl2YWwgPj0gR0RLX0tFWV9LUF9TcGFjZSAmJiBrZXl2YWwgPD0gR0RL
X0tFWV9LUF85OwogfQogCiBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZp
ZXI+IG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkKQEAgLTk2LDEzICs5
NSwxMCBAQCBzdGF0aWMgaW5saW5lIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25Gb3JFdmVu
dChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAgICAgY2FzZSBHREtfQlVUVE9OX1BSRVNTOgogICAg
IGNhc2UgR0RLXzJCVVRUT05fUFJFU1M6CiAgICAgY2FzZSBHREtfM0JVVFRPTl9QUkVTUzoKLSAg
ICBjYXNlIEdES19CVVRUT05fUkVMRUFTRToKKyAgICBjYXNlIEdES19CVVRUT05fUkVMRUFTRTog
ewogICAgICAgICBndWludCBldmVudEJ1dHRvbjsKLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIK
ICAgICAgICAgZ2RrX2V2ZW50X2dldF9idXR0b24oZXZlbnQsICZldmVudEJ1dHRvbik7Ci0jZWxz
ZQotICAgICAgICBldmVudEJ1dHRvbiA9IGV2ZW50LT5idXR0b24uYnV0dG9uOwotI2VuZGlmCisK
ICAgICAgICAgaWYgKGV2ZW50QnV0dG9uID09IDEpCiAgICAgICAgICAgICBidXR0b24gPSBXZWJN
b3VzZUV2ZW50OjpMZWZ0QnV0dG9uOwogICAgICAgICBlbHNlIGlmIChldmVudEJ1dHRvbiA9PSAy
KQpAQCAtMTEwLDYgKzEwNiw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViTW91c2VFdmVudDo6QnV0dG9u
IGJ1dHRvbkZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkKICAgICAgICAgZWxzZSBpZiAo
ZXZlbnRCdXR0b24gPT0gMykKICAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJp
Z2h0QnV0dG9uOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMTUyLDExICsxNDksNyBAQCBXZWJNb3Vz
ZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVu
dCogZXZlbnQsIGludCBjdQogICAgIGdka19ldmVudF9nZXRfc3RhdGUoZXZlbnQsICZzdGF0ZSk7
CiAKICAgICBndWludCBldmVudEJ1dHRvbjsKLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAg
ICBnZGtfZXZlbnRfZ2V0X2J1dHRvbihldmVudCwgJmV2ZW50QnV0dG9uKTsKLSNlbHNlCi0gICAg
ZXZlbnRCdXR0b24gPSBldmVudC0+YnV0dG9uLmJ1dHRvbjsKLSNlbmRpZgogCiAgICAgV2ViRXZl
bnQ6OlR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFdlYkV2ZW50OjpUeXBlPigwKTsKIApAQCAtMjA0
LDcgKzE5Nyw2IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgaW50IGN1CiAKIFdlYldoZWVsRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkK
IHsKLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAy
MCwgMCkKICAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBwaGFzZSA9IGdka19ldmVudF9pc19zY3Jv
bGxfc3RvcF9ldmVudChldmVudCkgPwogICAgICAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhh
c2VFbmRlZCA6CkBAIC0yMTYsMjkgKzIwOCwyNCBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAgICAgICAg
IFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUVuZGVkIDoKICAgICAgICAgV2ViV2hlZWxFdmVu
dDo6UGhhc2U6OlBoYXNlQ2hhbmdlZDsKICNlbmRpZgotI2Vsc2UKLSAgICBXZWJXaGVlbEV2ZW50
OjpQaGFzZSBwaGFzZSA9IFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNoYW5nZWQ7Ci0jZW5k
aWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKIAogICAgIHJldHVybiBjcmVhdGVXZWJXaGVlbEV2ZW50
KGV2ZW50LCBwaGFzZSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSk7CiB9CiAKIFdl
YldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdk
a0V2ZW50KiBldmVudCwgV2ViV2hlZWxFdmVudDo6UGhhc2UgcGhhc2UsIFdlYldoZWVsRXZlbnQ6
OlBoYXNlIG1vbWVudHVtUGhhc2UpCiB7Ci0gICAgZG91YmxlIHgsIHksIHhSb290LCB5Um9vdDsK
LSAgICBHZGtTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uOwogICAgIEZsb2F0U2l6ZSB3aGVlbFRp
Y2tzID0gRmxvYXRTaXplKDAsIDApOworICAgIGRvdWJsZSB4LCB5OwogICAgIGdka19ldmVudF9n
ZXRfY29vcmRzKGV2ZW50LCAmeCwgJnkpOworICAgIGRvdWJsZSB4Um9vdCwgeVJvb3Q7CiAgICAg
Z2RrX2V2ZW50X2dldF9yb290X2Nvb3JkcyhldmVudCwgJnhSb290LCAmeVJvb3QpOwotI2lmbmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgorCisgICAgR2RrU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbjsK
ICAgICBpZiAoIWdka19ldmVudF9nZXRfc2Nyb2xsX2RpcmVjdGlvbihldmVudCwgJmRpcmVjdGlv
bikpIHsKICAgICAgICAgZG91YmxlIGRlbHRhWCwgZGVsdGFZOwogICAgICAgICBpZiAoZ2RrX2V2
ZW50X2dldF9zY3JvbGxfZGVsdGFzKGV2ZW50LCAmZGVsdGFYLCAmZGVsdGFZKSkKICAgICAgICAg
ICAgIHdoZWVsVGlja3MgPSBGbG9hdFNpemUoLWRlbHRhWCwgLWRlbHRhWSk7CiAgICAgfQotI2Vs
c2UKLSAgICBkaXJlY3Rpb24gPSBldmVudC0+c2Nyb2xsLmRpcmVjdGlvbjsKLSNlbmRpZgogCiAg
ICAgaWYgKHdoZWVsVGlja3MuaXNaZXJvKCkpIHsKICAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24p
IHsKQEAgLTI3OSwxNCArMjY2LDEwIEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViV2hlCiBXZWJLZXli
b2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBH
ZGtFdmVudCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29tcG9z
aXRpb25SZXN1bHRzLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKQogewogICAgIGd1aW50IGtl
eXZhbDsKLSAgICBndWludDE2IGtleWNvZGU7Ci0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCiAg
ICAgZ2RrX2V2ZW50X2dldF9rZXl2YWwoZXZlbnQsICZrZXl2YWwpOworICAgIGd1aW50MTYga2V5
Y29kZTsKICAgICBnZGtfZXZlbnRfZ2V0X2tleWNvZGUoZXZlbnQsICZrZXljb2RlKTsKLSNlbHNl
Ci0gICAga2V5dmFsID0gZXZlbnQtPmtleS5rZXl2YWw7Ci0gICAga2V5Y29kZSA9IGV2ZW50LT5r
ZXkuaGFyZHdhcmVfa2V5Y29kZTsKLSNlbmRpZgorCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywg
MTAsIDApCiAgICAgR2RrRXZlbnRUeXBlIHR5cGUgPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUo
ZXZlbnQpOwogI2Vsc2UKQEAgLTMxMSw3ICsyOTQsNiBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cykKIHsKLSNpZm5kZWYgR1RLX0FQSV9WRVJT
SU9OXzIKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlwZTsKICNpZiBH
VEtfQ0hFQ0tfVkVSU0lPTigzLCAxMCwgMCkKICAgICBHZGtFdmVudFR5cGUgZXZlbnRUeXBlID0g
Z2RrX2V2ZW50X2dldF9ldmVudF90eXBlKGV2ZW50KTsKQEAgLTMzNiw5ICszMTgsNiBAQCBXZWJU
b3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQsIFZlY3RvcgogICAgIH0KIAogICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5
cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIHdhbGxU
aW1lRm9yRXZlbnQoZXZlbnQpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQoKTsK
LSNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
CmluZGV4IGZiYWQyN2RlOTlhLi4xN2I5MDAzNWE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0y
MSwxMCArMjEsNiBAQAogLy8gQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCi0vLyBGSVhNRTogTWFueSBvZiB0aGVzZSBmaWxlcyBhcmUgYnVpbHQgd2l0
aCBAbm8tdW5pZnkgdG8gYXZvaWQgZXJyb3JzCi0vLyBsaW5raW5nIFBsdWdpblByb2Nlc3NHVEsy
LiBJIGRvbid0IGtub3cgd2h5IHRoaXMgaXMgbmVjZXNzYXJ5LiBUaGVzZQotLy8gYW5ub3RhdGlv
bnMgc2hvdWxkIGJlIHJldmlzaXRlZCBhZnRlciByZW1vdmluZyBQbHVnaW5Qcm9jZXNzR1RLMi4K
LQogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZWxlbWV0cnkuY3BwCiAKQEAgLTQ5LDIwICs0NSwyMCBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3Bw
CiAKLVBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCBAbm8tdW5pZnkKLVBsYXRm
b3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcCBAbm8tdW5pZnkKLVBsYXRmb3JtL0lQQy91
bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9nbGliL0dTb2Nr
ZXRNb25pdG9yLmNwcAorUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCitQbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKIAogUGxhdGZvcm0vY2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKIAotUGxhdGZvcm0vZ2xpYi9Nb2R1
bGVHbGliLmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL2dsaWIvTW9kdWxlR2xpYi5jcHAKIAotUGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAgQG5vLXVuaWZ5Ci1QbGF0Zm9ybS91bml4L1NoYXJl
ZE1lbW9yeVVuaXguY3BwIEBuby11bmlmeQorUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAK
K1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKIAotUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpbkNvbnRyb2xsZXJQcm94eVVuaXguY3BwIEBuby11bmlmeQotUGx1Z2luUHJvY2Vzcy91
bml4L1BsdWdpblByb2Nlc3NNYWluVW5peC5jcHAgQG5vLXVuaWZ5Ci1QbHVnaW5Qcm9jZXNzL3Vu
aXgvUGx1Z2luUHJvY2Vzc1VuaXguY3BwIEBuby11bmlmeQorUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpbkNvbnRyb2xsZXJQcm94eVVuaXguY3BwCitQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJv
Y2Vzc01haW5Vbml4LmNwcAorUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNw
cAogCiBTaGFyZWQvQVBJL2MvY2Fpcm8vV0tJbWFnZUNhaXJvLmNwcAogCkBAIC04MCwxNCArNzYs
MTQgQEAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCiAK
LVNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlTm9uZS5jcHAgQG5v
LXVuaWZ5Ci1TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxl
VW5peC5jcHAgQG5vLXVuaWZ5CitTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bk1vZHVsZU5vbmUuY3BwCitTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1
Z2luTW9kdWxlVW5peC5jcHAKIAogU2hhcmVkL1BsdWdpbnMvdW5peC9QbHVnaW5TZWFyY2hQYXRo
LmNwcAogCi1TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwIEBuby11bmlmeQor
U2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAogCi1TaGFyZWQvZ2xpYi9Qcm9j
ZXNzRXhlY3V0YWJsZVBhdGhHTGliLmNwcCBAbm8tdW5pZnkKK1NoYXJlZC9nbGliL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aEdMaWIuY3BwCiBTaGFyZWQvZ2xpYi9XZWJDb250ZXh0TWVudUl0ZW1HbGli
LmNwcAogCiBTaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcApAQCAtMTAyLDE4ICs5OCwx
OCBAQCBTaGFyZWQvZ3RrL1dlYlNlbGVjdGlvbkRhdGEuY3BwCiAKIFNoYXJlZC9saW51eC9XZWJN
ZW1vcnlTYW1wbGVyTGludXguY3BwCiAKLVNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwIEBuby11bmlmeQorU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKIFNoYXJlZC9zb3VwL1dlYkVycm9yc1NvdXAuY3BwCiAKLVNoYXJlZC91bml4L0F1eGls
aWFyeVByb2Nlc3NNYWluLmNwcCBAbm8tdW5pZnkKK1NoYXJlZC91bml4L0F1eGlsaWFyeVByb2Nl
c3NNYWluLmNwcAogCiBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAogVUlQcm9jZXNzL0RlZmF1
bHRVbmRvQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdO
b25lLmNwcAogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKLVVJUHJvY2Vzcy9W
aWV3U25hcHNob3RTdG9yZS5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvVmlld1NuYXBzaG90U3Rv
cmUuY3BwCiBVSVByb2Nlc3MvV2ViR3JhbW1hckRldGFpbC5jcHAKLVVJUHJvY2Vzcy9XZWJNZW1v
cnlQcmVzc3VyZUhhbmRsZXIuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL1dlYk1lbW9yeVByZXNz
dXJlSGFuZGxlci5jcHAKIFVJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKIFVJUHJvY2Vzcy9X
ZWJUZXh0Q2hlY2tlckNsaWVudC5jcHAKIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMu
Y3BwCkBAIC0yMjAsMTAgKzIxNiwxMCBAQCBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuY3BwCiAKIFVJUHJvY2Vzcy9saW51
eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCiAKLVVJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVn
aW5JbmZvQ2FjaGUuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbklu
Zm9DYWNoZS5jcHAKIAotVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4
LmNwcCBAbm8tdW5pZnkKLVVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5
VW5peC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9y
ZVVuaXguY3BwCitVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXgu
Y3BwCiAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNw
cAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFTdG9yZVVuaXguY3BwCkBA
IC0yMzcsMjAgKzIzMywyMCBAQCBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUHJveHlHTGliLmNw
cAogVUlQcm9jZXNzL2dzdHJlYW1lci9JbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0LmNwcAogVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIu
Y3BwCiAKLVVJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmUuY3BwICBAbm8tdW5p
ZnkKK1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmUuY3BwCiBVSVByb2Nlc3Mv
Z3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlWDExLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vz
cy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmNwcAogVUlQcm9jZXNzL2d0ay9HZXN0dXJlQ29udHJv
bGxlci5jcHAKIFVJUHJvY2Vzcy9ndGsvSGFyZHdhcmVBY2NlbGVyYXRpb25NYW5hZ2VyLmNwcAot
VUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3Mv
Z3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAogVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNs
YXRvci5jcHAKLVVJUHJvY2Vzcy9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIEBu
by11bmlmeQorVUlQcm9jZXNzL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKIFVJ
UHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL2d0ay9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJHdGsuY3BwIEBuby11bmlmeQotVUlQcm9jZXNzL2d0ay9WaWV3
U25hcHNob3RTdG9yZUd0ay5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvZ3RrL1ZpZXdTbmFwc2hv
dFN0b3JlR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAgQG5vLXVu
aWZ5Ci1VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcCBAbm8tdW5pZnkKK1VJUHJv
Y2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRN
ZW51UHJveHlHdGsuY3BwCiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcAog
VUlQcm9jZXNzL2d0ay9XZWJLaXRJbnNwZWN0b3JXaW5kb3cuY3BwCkBAIC0zOTAsOCArMzg2LDgg
QEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAK
IAogV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwCiAK
LVdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luVW5peC5jcHAg
QG5vLXVuaWZ5Ci1XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9QbHVnaW5Qcm94eVVu
aXguY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2Nh
cGVQbHVnaW5Vbml4LmNwcAorV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgvUGx1Z2lu
UHJveHlVbml4LmNwcAogCiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBl
UGx1Z2luWDExLmNwcCBAbm8tdW5pZnkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA3N2UwNDE0MzEzMC4uZDhk
YjEwOTQ1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9DYWlyb1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HdGtW
ZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFzdGVib2FyZEhlbHBlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1EaXNwbGF5Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAppbmRleCAzNDAyOGU2ODAzNS4u
MTFjZTFkZmYzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcApAQCAtODcsMTAgKzg3LDYg
QEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIGNhc2UgUHJvY2Vz
c0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luNjQ6CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW4zMjoKICAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVj
dXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTU19H
VEsyKQotICAgICAgICBpZiAobV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRh
LmNvbnRhaW5zKCJyZXF1aXJlcy1ndGsyIikpCi0gICAgICAgICAgICBleGVjdXRhYmxlUGF0aC5h
cHBlbmQoJzInKTsKLSNlbmRpZgogICAgICAgICBwbHVnaW5QYXRoID0gbV9sYXVuY2hPcHRpb25z
LmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgicGx1Z2luLXBhdGgiKTsKICAgICAgICAgcmVh
bFBsdWdpblBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGx1Z2lu
UGF0aCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjMwZGY5Mzc5MzUuLjg3YjNmNTBl
YTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmgKQEAgLTUzLDEwICs1Myw2IEBAIHN0cnVjdCBSYXdQbHVnaW5NZXRhRGF0
YSB7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uOwogICAgIFN0cmlu
ZyBtaW1lRGVzY3JpcHRpb247Ci0KLSNpZiBQTEFURk9STShHVEspCi0gICAgYm9vbCByZXF1aXJl
c0d0azI7Ci0jZW5kaWYKIH07CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luSW5mb0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5jcHAKaW5kZXggYTI4YTAwYTM4
NmMuLmVjOTNmNmQ4MmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL2d0ay9QbHVnaW5JbmZvQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvZ3RrL1BsdWdpbkluZm9DYWNoZS5jcHAKQEAgLTEzMyw4ICsxMzMsNiBAQCBib29s
IFBsdWdpbkluZm9DYWNoZTo6Z2V0UGx1Z2luSW5mbyhjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgs
IFBsdWdpbk1vZHVsZUluZm8mCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnBhcnNlTUlNRURl
c2NyaXB0aW9uKFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nVmFsdWUuZ2V0KCkpLCBwbHVnaW4uaW5m
by5taW1lcyk7CiAjZW5kaWYKIAotICAgIHBsdWdpbi5yZXF1aXJlc0d0azIgPSBnX2tleV9maWxl
X2dldF9ib29sZWFuKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJyZXF1
aXJlcy1ndGsyIiwgbnVsbHB0cik7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTU0LDgg
KzE1Miw2IEBAIHZvaWQgUGx1Z2luSW5mb0NhY2hlOjp1cGRhdGVQbHVnaW5JbmZvKGNvbnN0IFN0
cmluZyYgcGx1Z2luUGF0aCwgY29uc3QgUGx1Z2luTW9kCiAgICAgZ19rZXlfZmlsZV9zZXRfc3Ry
aW5nKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCksICJtaW1lLWRlc2NyaXB0
aW9uIiwgbWltZURlc2NyaXB0aW9uLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKLSAgICBnX2tl
eV9maWxlX3NldF9ib29sZWFuKG1fY2FjaGVGaWxlLmdldCgpLCBwbHVnaW5Hcm91cC5kYXRhKCks
ICJyZXF1aXJlcy1ndGsyIiwgcGx1Z2luLnJlcXVpcmVzR3RrMik7Ci0KICAgICBpZiAobV9jYWNo
ZVBhdGggJiYgIW1fcmVhZE9ubHlNb2RlKSB7CiAgICAgICAgIC8vIFNhdmUgdGhlIGNhY2hlIGZp
bGUgaW4gYW4gaWRsZSB0byBtYWtlIHN1cmUgaXQgaGFwcGVucyBpbiB0aGUgbWFpbiB0aHJlYWQg
YW5kCiAgICAgICAgIC8vIGl0J3MgZG9uZSBvbmx5IG9uY2Ugd2hlbiB0aGlzIGlzIGNhbGxlZCBt
dWx0aXBsZSB0aW1lcyBpbiBhIHZlcnkgc2hvcnQgdGltZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNw
cAppbmRleCBhYTA5NDczNjgxNi4uNzZjODYyMWYxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5j
cHAKQEAgLTcyLDE5ICs3Miw4IEBAIFZlY3RvcjxTdHJpbmc+IFBsdWdpbkluZm9TdG9yZTo6aW5k
aXZpZHVhbFBsdWdpblBhdGhzKCkKIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZv
KGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQogewog
I2lmIFBMQVRGT1JNKEdUSykKLSAgICBpZiAoUGx1Z2luSW5mb0NhY2hlOjpzaW5nbGV0b24oKS5n
ZXRQbHVnaW5JbmZvKHBsdWdpblBhdGgsIHBsdWdpbikpIHsKLSNpZiBFTkFCTEUoUExVR0lOX1BS
T0NFU1NfR1RLMikKLSAgICAgICAgaWYgKHBsdWdpbi5yZXF1aXJlc0d0azIpIHsKLSAgICAgICAg
ICAgIGlmIChQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgIT0gUGxhdGZv
cm1EaXNwbGF5OjpUeXBlOjpYMTEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgU3RyaW5nIHBsdWdpblByb2Nlc3NQYXRoID0gZXhlY3V0YWJsZVBhdGhPZlBsdWdp
blByb2Nlc3MoKTsKLSAgICAgICAgICAgIHBsdWdpblByb2Nlc3NQYXRoLmFwcGVuZCgnMicpOwot
ICAgICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHBsdWdpblByb2Nlc3NQYXRo
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSNlbmRpZgorICAg
IGlmIChQbHVnaW5JbmZvQ2FjaGU6OnNpbmdsZXRvbigpLmdldFBsdWdpbkluZm8ocGx1Z2luUGF0
aCwgcGx1Z2luKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogCiAgICAgaWYgKE5ldHNj
YXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvKHBsdWdpblBhdGgsIHBsdWdpbikpIHsKICAg
ICAgICAgUGx1Z2luSW5mb0NhY2hlOjpzaW5nbGV0b24oKS51cGRhdGVQbHVnaW5JbmZvKHBsdWdp
blBhdGgsIHBsdWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKaW5kZXggYzUwMGMw
ZmNlYTYuLmY2ZjQ3OWIxZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCkBAIC01
MywxMiArNTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnNXaXRoQXR0cmlidXRlcyhQcm9jZXNzTGF1
bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMsIGNvbnN0IFBsdWdpblByb2Nlc3NB
dHRyaWJ1dGVzJiBwbHVnaW5Qcm9jZXNzQXR0cmlidXRlcykKIHsKICAgICBsYXVuY2hPcHRpb25z
LnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luNjQ7Ci0K
ICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgicGx1Z2luLXBh
dGgiLCBwbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5tb2R1bGVJbmZvLnBhdGgpOwotI2lmIFBMQVRG
T1JNKEdUSykKLSAgICBpZiAocGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMubW9kdWxlSW5mby5yZXF1
aXJlc0d0azIpCi0gICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEu
YWRkKCJyZXF1aXJlcy1ndGsyIiwgZW1wdHlTdHJpbmcoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCkBAIC04MSwyMSArNzYsOSBAQCBib29sIFBsdWdp
blByb2Nlc3NQcm94eTo6c2NhblBsdWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFJhd1Bs
dWdpbk1ldGFEYXRhJgogICAgIFN0cmluZyBwbHVnaW5Qcm9jZXNzUGF0aCA9IGV4ZWN1dGFibGVQ
YXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CiAKICNpZiBQTEFURk9STShHVEspCi0gICAgYm9vbCByZXF1
aXJlc0d0azIgPSBwbHVnaW5SZXF1aXJlc0d0azIocGx1Z2luUGF0aCk7Ci0gICAgaWYgKHJlcXVp
cmVzR3RrMikgewotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0gICAgICAgIGlmIChQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpX
YXlsYW5kKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0jaWYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTX0dUSzIpCi0gICAgICAgIHBsdWdpblByb2Nlc3NQYXRoLmFwcGVuZCgnMicp
OwotICAgICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMocGx1Z2luUHJvY2Vzc1BhdGgp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2Vsc2UKKyAgICBpZiAocGx1Z2luUmVxdWly
ZXNHdGsyKHBsdWdpblBhdGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKLSAgICB9
Ci0jZW5kaWYKIAogICAgIENTdHJpbmcgYmluYXJ5UGF0aCA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihwbHVnaW5Qcm9jZXNzUGF0aCk7CiAgICAgQ1N0cmluZyBwbHVnaW5Q
YXRoQ1N0cmluZyA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwbHVnaW5Q
YXRoKTsKQEAgLTE0Nyw5ICsxMzAsNiBAQCBib29sIFBsdWdpblByb2Nlc3NQcm94eTo6c2NhblBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFJhd1BsdWdpbk1ldGFEYXRhJgogICAgIHJl
c3VsdC5uYW1lLnN3YXAobGluZXNbMF0pOwogICAgIHJlc3VsdC5kZXNjcmlwdGlvbi5zd2FwKGxp
bmVzWzFdKTsKICAgICByZXN1bHQubWltZURlc2NyaXB0aW9uLnN3YXAobGluZXNbMl0pOwotI2lm
IFBMQVRGT1JNKEdUSykKLSAgICByZXN1bHQucmVxdWlyZXNHdGsyID0gcmVxdWlyZXNHdGsyOwot
I2VuZGlmCiAgICAgcmV0dXJuICFyZXN1bHQubWltZURlc2NyaXB0aW9uLmlzRW1wdHkoKTsKIH0K
ICNlbmRpZiAvLyBQTFVHSU5fQVJDSElURUNUVVJFKFVOSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNj
YXBlUGx1Z2luWDExLmNwcAppbmRleCAzYTZkNjZjZjc3Mi4uNDRkMTFiNTdjM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2Fw
ZVBsdWdpblgxMS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcApAQCAtMzksMTIgKzM5LDggQEAKIAogI2lm
IFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaWZuZGVmIEdUS19BUElfVkVS
U0lPTl8yCiAjaW5jbHVkZSA8Z3RrL2d0a3guaD4KICNlbmRpZgotI2luY2x1ZGUgPGdkay9nZGt4
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5nLmg+Ci0jZW5kaWYKIAogI2lmIFVT
RShDQUlSTykKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29udGV4dENhaXJvLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZEdESzIuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZEdE
SzIuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMWM5MDJlYjA4Li4wMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvY21ha2UvRmluZEdESzIuY21ha2UKKysrIC9kZXYvbnVsbApA
QCAtMSw0OSArMCwwIEBACi0jIC0gVHJ5IHRvIGZpbmQgR0RLIDIKLSMgT25jZSBkb25lLCB0aGlz
IHdpbGwgZGVmaW5lCi0jCi0jICBHREsyX0ZPVU5EIC0gc3lzdGVtIGhhcyBHREsgMgotIyAgR0RL
Ml9JTkNMVURFX0RJUlMgLSB0aGUgR0RLIDIgaW5jbHVkZSBkaXJlY3RvcmllcwotIyAgR0RLMl9M
SUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBHREsgMgotIwotIyBDb3B5cmlnaHQgKEMpIDIw
MTIgUmFwaGFlbCBLdWJvIGRhIENvc3RhIDxyYWt1Y29Ad2Via2l0Lm9yZz4KLSMgQ29weXJpZ2h0
IChDKSAyMDEzIElnYWxpYSBTLkwuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElT
JycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykK
LXBrZ19jaGVja19tb2R1bGVzKEdESzIgZ2RrLTIuMCkKLQotc2V0KFZFUlNJT05fT0sgVFJVRSkK
LWlmIChHREsyX1ZFUlNJT04pCi0gICAgaWYgKEdESzJfRklORF9WRVJTSU9OX0VYQUNUKQotICAg
ICAgICBpZiAoTk9UKCIke0dESzJfRklORF9WRVJTSU9OfSIgVkVSU0lPTl9FUVVBTCAiJHtHREsy
X1ZFUlNJT059IikpCi0gICAgICAgICAgICBzZXQoVkVSU0lPTl9PSyBGQUxTRSkKLSAgICAgICAg
ZW5kaWYgKCkKLSAgICBlbHNlICgpCi0gICAgICAgIGlmICgiJHtHREsyX1ZFUlNJT059IiBWRVJT
SU9OX0xFU1MgIiR7R0RLMl9GSU5EX1ZFUlNJT059IikKLSAgICAgICAgICAgIHNldChWRVJTSU9O
X09LIEZBTFNFKQotICAgICAgICBlbmRpZiAoKQotICAgIGVuZGlmICgpCi1lbmRpZiAoKQotCi1p
bmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQotRklORF9QQUNLQUdFX0hBTkRM
RV9TVEFOREFSRF9BUkdTKEdESzIgREVGQVVMVF9NU0cgR0RLMl9JTkNMVURFX0RJUlMgR0RLMl9M
SUJSQVJJRVMgVkVSU0lPTl9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kR1RLMi5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kR1RLMi5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGJkNTY4OGE3NzguLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5k
R1RLMi5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLSMgLSBUcnkgdG8gZmlu
ZCBHVEsrIDIKLSMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCi0jCi0jICBHVEsyX0ZPVU5E
IC0gc3lzdGVtIGhhcyBHVEsrIDIuCi0jICBHVEsyX0lOQ0xVREVfRElSUyAtIHRoZSBHVEsrIDIu
IGluY2x1ZGUgZGlyZWN0b3JpZXMKLSMgIEdUSzJfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1
c2UgR1RLKyAyLgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTIgUmFwaGFlbCBLdWJvIGRhIENvc3Rh
IDxyYWt1Y29Ad2Via2l0Lm9yZz4KLSMgQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IK
LSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKEdUSzIg
Z3RrKy0yLjApCi0KLXNldChWRVJTSU9OX09LIFRSVUUpCi1pZiAoR1RLMl9WRVJTSU9OKQotICAg
IGlmIChHVEsyX0ZJTkRfVkVSU0lPTl9FWEFDVCkKLSAgICAgICAgaWYgKE5PVCgiJHtHVEsyX0ZJ
TkRfVkVSU0lPTn0iIFZFUlNJT05fRVFVQUwgIiR7R1RLMl9WRVJTSU9OfSIpKQotICAgICAgICAg
ICAgc2V0KFZFUlNJT05fT0sgRkFMU0UpCi0gICAgICAgIGVuZGlmICgpCi0gICAgZWxzZSAoKQot
ICAgICAgICBpZiAoIiR7R1RLMl9WRVJTSU9OfSIgVkVSU0lPTl9MRVNTICIke0dUSzJfRklORF9W
RVJTSU9OfSIpCi0gICAgICAgICAgICBzZXQoVkVSU0lPTl9PSyBGQUxTRSkKLSAgICAgICAgZW5k
aWYgKCkKLSAgICBlbmRpZiAoKQotZW5kaWYgKCkKLQotaW5jbHVkZShGaW5kUGFja2FnZUhhbmRs
ZVN0YW5kYXJkQXJncykKLUZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhHVEsyIERF
RkFVTFRfTVNHIEdUSzJfSU5DTFVERV9ESVJTIEdUSzJfTElCUkFSSUVTIFZFUlNJT05fT0spCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlCmluZGV4IDU1NTQ3YjhmOTFmLi4wNmM4M2JkNGYzZCAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UKQEAgLTc3LDcgKzc3LDYgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0dMRVMyICJXaGV0aGVyIHRvIGVuYWJsZSBPcGVuR0wgRVMgMi4wLiIgUFVCTElDICR7RU4KIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9HVEtET0MgIldoZXRoZXIgb3Igbm90IHRvIHVzZSBn
ZW5lcmF0ZSBndGtkb2MuIiBQVUJMSUMgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0lOVFJPU1BFQ1RJT04gIldoZXRoZXIgdG8gZW5hYmxlIEdPYmplY3QgaW50cm9zcGVjdGlvbi4i
IFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PUEVOR0wgIldoZXRoZXIg
dG8gdXNlIE9wZW5HTC4iIFBVQkxJQyBPTikKLVdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9Q
TFVHSU5fUFJPQ0VTU19HVEsyICJXaGV0aGVyIHRvIGJ1aWxkIFdlYktpdFBsdWdpblByb2Nlc3My
IHRvIGxvYWQgR1RLMiBiYXNlZCBwbHVnaW5zLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX1FVQVJUWl9UQVJHRVQgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9y
IHRoZSBRdWFydHogd2luZG93aW5nIHRhcmdldC4iIFBVQkxJQyAke0dUSzNfU1VQUE9SVFNfUVVB
UlRafSkKIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9YMTFfVEFSR0VUICJXaGV0aGVyIHRv
IGVuYWJsZSBzdXBwb3J0IGZvciB0aGUgWDExIHdpbmRvd2luZyB0YXJnZXQuIiBQVUJMSUMgJHtH
VEszX1NVUFBPUlRTX1gxMX0pCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0FZTEFORF9U
QVJHRVQgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBXYXlsYW5kIHdpbmRvd2lu
ZyB0YXJnZXQuIiBQVUJMSUMgJHtHVEszX1NVUFBPUlRTX1dBWUxBTkR9KQpAQCAtOTksNyArOTgs
NiBAQCBXRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfM0RfVFJBTlNGT1JNUyBFTkFCTEVfT1BF
TkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyBF
TkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FTWU5DX1NDUk9MTElO
RyBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0dMRVMyIEVOQUJM
RV9PUEVOR0wpCi1XRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfUExVR0lOX1BST0NFU1NfR1RL
MiBFTkFCTEVfWDExX1RBUkdFVCkKIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9XRUJHTCBF
TkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFC
TEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVf
V0FZTEFORF9UQVJHRVQpCkBAIC0zMDYsMTEgKzMwNCw2IEBAIGlmIChFTkFCTEVfT1BFTkdMKQog
ICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9OSUNPU0lBIFRSVUUpCiBlbmRpZiAoKQog
Ci1pZiAoRU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIpCi0gICAgZmluZF9wYWNrYWdlKEdUSzIg
Mi4yNC4xMCBSRVFVSVJFRCkKLSAgICBmaW5kX3BhY2thZ2UoR0RLMiAyLjI0LjEwIFJFUVVJUkVE
KQotZW5kaWYgKCkKLQogaWYgKEVOQUJMRV9TUEVMTENIRUNLKQogICAgIGZpbmRfcGFja2FnZShF
bmNoYW50KQogICAgIGlmIChOT1QgUENfRU5DSEFOVF9GT1VORCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZjliNGQ1MzhkZC4uOWFjNDRlNzdl
ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxOS0wNi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIHN1cHBvcnQgZm9yIEdUSzIgcGx1
Z2lucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5
MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBF
V1NUb29scy91YnVudHUtZXdzLXBhY2thZ2VzOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxh
dGZvcm1HVEsuY21ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBmbGF0cGFrL29yZy53ZWJraXQuR1RLLnlhbWw6CisgICAgICAgICog
Z3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzOgorCiAyMDE5LTA2LTE5ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW2JtYWxsb2NdIElzb0hlYXAncyBpbml0aWFs
aXphdGlvbiBpcyByYWN5IHdpdGggSXNvSGVhcDo6aXNJbml0aWFsaXplZApkaWZmIC0tZ2l0IGEv
VG9vbHMvRVdTVG9vbHMvdWJ1bnR1LWV3cy1wYWNrYWdlcyBiL1Rvb2xzL0VXU1Rvb2xzL3VidW50
dS1ld3MtcGFja2FnZXMKaW5kZXggNTVlNDUwNzMxOWYuLmExOGRjMmMxMTRhIDEwMDY0NAotLS0g
YS9Ub29scy9FV1NUb29scy91YnVudHUtZXdzLXBhY2thZ2VzCisrKyBiL1Rvb2xzL0VXU1Rvb2xz
L3VidW50dS1ld3MtcGFja2FnZXMKQEAgLTI4LDcgKzI4LDYgQEAgbGlibnNwcjQtZGV2CiBsaWJu
c3MzLWRldgogbGlicGFtMGctZGV2CiBsaWJ0b29sCi1saWJndGsyLjAtZGV2CiBsaWJwYW5nbzEu
MC1kZXYKIGxpYmljdS1kZXYKIGxpYnhzbHQtZGV2CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCAxNTNmZmZiMmZhNS4uYWZiMzA2YTE3YTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDcsOCArNDcsNiBAQCBsaXN0KEFQUEVORCBUZXN0V2Vi
Q29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogbGlzdChBUFBFTkQgVGVzdFdlYkNvcmVf
TElCUkFSSUVTCiAgICAgJHtHREszX0xJQlJBUklFU30KICAgICAke0dUSzNfTElCUkFSSUVTfQot
Ci0gICAgV2ViQ29yZVBsYXRmb3JtR1RLCiApCiBBRERfV0hPTEVfQVJDSElWRV9UT19MSUJSQVJJ
RVMoVGVzdFdlYkNvcmVfTElCUkFSSUVTKQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bUdUSy5jbWFrZQppbmRleCBiZWRhODdiYzIyOS4uMjAyOWZiMGJmMWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzAsNyArMzAsNiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwogICAgICR7R1RLM19MSUJSQVJJRVN9CiAgICAg
JHtHTElCX0xJQlJBUklFU30KICAgICBXZWJDb3JlCi0gICAgV2ViQ29yZVBsYXRmb3JtR1RLCiAp
CiAKIHNldChXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfTElCUkFSSUVTCmRpZmYgLS1n
aXQgYS9Ub29scy9mbGF0cGFrL29yZy53ZWJraXQuR1RLLnlhbWwgYi9Ub29scy9mbGF0cGFrL29y
Zy53ZWJraXQuR1RLLnlhbWwKaW5kZXggZDMxZDZkYzI1NmYuLjk2M2I1NjA0NDA4IDEwMDY0NAot
LS0gYS9Ub29scy9mbGF0cGFrL29yZy53ZWJraXQuR1RLLnlhbWwKKysrIGIvVG9vbHMvZmxhdHBh
ay9vcmcud2Via2l0LkdUSy55YW1sCkBAIC04OCwyMyArODgsNiBAQAogICAgIC0gLS1kaXNhYmxl
LWxvY2FsLXRyYW5zcG9ydAogICAgIC0gLS13aXRob3V0LWR0cmFjZQogCi0jIFJlcXVpcmVkIGZv
ciB0aGUgR1RLMiBwbHVnaW4gcHJvY2VzcwotLSBuYW1lOiBndGsyCi0gIHNvdXJjZXM6Ci0gIC0g
dHlwZTogYXJjaGl2ZQotICAgIHVybDogaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291cmNl
cy9ndGsrLzIuMjQvZ3RrKy0yLjI0LjMyLnRhci54egotICAgIHNoYTI1NjogYjZjOGE5M2RkZGE1
ZWFiZTNiZmVlMWViMzk2MzZjOWEwM2QyYTU2YzdiNjI4MjhiMzU5YmYxOTc5NDNjNTgyZQotICAt
IHR5cGU6IHNjcmlwdAotICAgIGNvbW1hbmRzOgotICAgICAgLSAic2VkIC1pICcxcy9weXRob24k
LyYyLycgZ3RrL2d0ay1idWlsZGVyLWNvbnZlcnQiCi0gICAgICAtICJzZWQgLWkgLWUgJ3MvIC1z
aGFyZWQgLyAtV2wsLU8xLC0tYXMtbmVlZGVkXDAvZycgbGlidG9vbCIKLSAgY29uZmlnLW9wdHM6
Ci0gICAgLSAtLWRpc2FibGUtZ3RrLWRvYwotICAgIC0gLS1kaXNhYmxlLWN1cHMKLSAgICAtIC0t
ZGlzYWJsZS1wYXBpCi0gICAgLSAtLWVuYWJsZS1pbnRyb3NwZWN0aW9uPW5vCi0gICAgLSAtLXdp
dGgtZ2RrdGFyZ2V0PXgxMQotCiAjIFJlcXVpcmVkIGZvciBydW4tZ3RrLXRlc3RzCiAtIG5hbWU6
IHB5Y2Fpcm8KICAgYnVpbGRzeXN0ZW06IHNpbXBsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2lu
c3RhbGwtZGVwZW5kZW5jaWVzIGIvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4
IGJkN2VmZDE5YmM4Li5mNDNjMWNhOTk1NiAxMDA3NTUKLS0tIGEvVG9vbHMvZ3RrL2luc3RhbGwt
ZGVwZW5kZW5jaWVzCisrKyBiL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcwpAQCAtMTEy
LDcgKzExMiw2IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoQXB0IHsKICAgICAg
ICAgbGliZ2lyZXBvc2l0b3J5MS4wLWRldiBcCiAgICAgICAgIGxpYmdsMS1tZXNhLWRldiBcCiAg
ICAgICAgIGxpYmdsMS1tZXNhLWdseCBcCi0gICAgICAgIGxpYmd0azIuMC1kZXYgXAogICAgICAg
ICBsaWJndGstMy1kZXYgXAogICAgICAgICBsaWJnc3RyZWFtZXIxLjAtZGV2IFwKICAgICAgICAg
bGliZ3N0cmVhbWVyLXBsdWdpbnMtYmFkMS4wLWRldiBcCkBAIC0yODIsNyArMjgxLDYgQEAgZnVu
Y3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhQYWNtYW4gewogICAgICAgICBnb2JqZWN0LWlu
dHJvc3BlY3Rpb24gXAogICAgICAgICBtZXNhIFwKICAgICAgICAgbWVzYS1saWJnbCBcCi0gICAg
ICAgIGd0azIgXAogICAgICAgICBndGszIFwKICAgICAgICAgbGlic3lzdGVtZCBcCiAgICAgICAg
IGxpYmpwZWctdHVyYm8gXApAQCAtNDM0LDcgKzQzMiw2IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBl
bmRlbmNpZXNXaXRoRG5mIHsKICAgICAgICAgZ3N0cmVhbWVyMS1wbHVnaW5zLWJhZC1mcmVlLWRl
dmVsIFwKICAgICAgICAgZ3N0cmVhbWVyMS1wbHVnaW5zLWJhc2UtZGV2ZWwgXAogICAgICAgICBn
dGstZG9jIFwKLSAgICAgICAgZ3RrMi1kZXZlbCBcCiAgICAgICAgIGd0azMtZGV2ZWwgXAogICAg
ICAgICBoeXBoZW4tZGV2ZWwgXAogICAgICAgICBpbnRsdG9vbCBcCg==
</data>
<flag name="review"
          id="388336"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>