<?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>228764</bug_id>
          
          <creation_ts>2021-08-03 19:57:50 -0700</creation_ts>
          <short_desc>Create a Language log channel</short_desc>
          <delta_ts>2021-08-09 17:08:05 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>228766</dependson>
    
    <dependson>228768</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1781808</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 19:57:50 -0700</bug_when>
    <thetext>Create a Language log channel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781813</commentid>
    <comment_count>1</comment_count>
      <attachid>434880</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 20:21:24 -0700</bug_when>
    <thetext>Created attachment 434880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781814</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-03 20:24:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/81495451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781817</commentid>
    <comment_count>3</comment_count>
      <attachid>434882</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 20:29:26 -0700</bug_when>
    <thetext>Created attachment 434882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781818</commentid>
    <comment_count>4</comment_count>
      <attachid>434882</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-03 20:37:51 -0700</bug_when>
    <thetext>Comment on attachment 434882
Patch

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

&gt; Source/WTF/wtf/Language.cpp:42
&gt; +DEFINE_LOG_CHANNEL_WITH_DETAILS(Language, WTFLogChannelState::On, WTFLogLevel::Error, LOG_CHANNEL_WEBKIT_SUBSYSTEM);

On by default?

&gt; Source/WTF/wtf/Language.cpp:105
&gt; +        LOG_WITH_STREAM(Language,
&gt; +            stream &lt;&lt; &quot;defaultLanguage() is returning &quot; &lt;&lt; languages[0];
&gt; +        );

Don&apos;t wrap

&gt; Source/WTF/wtf/Language.cpp:124
&gt; +        for (const auto&amp; language : override)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; language;

LOG_WITH_STREAM/TextStream knows how to output vectors so you shouldn&apos;t need the loop.

&gt; Source/WTF/wtf/Language.cpp:151
&gt; +                for (const auto&amp; language : override)
&gt; +                    stream &lt;&lt; &quot; &quot; &lt;&lt; language;

Ditto

&gt; Source/WTF/wtf/Language.h:38
&gt; +extern WTFLogChannel LogLanguage;

This is a bit of a hack/layering violation. This might be the first log channel used in WTF and you&apos;ve arbitrarily picked the WebCore prefix? Maybe logging should be a PAL thing eventually.

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:97
&gt; +        for (CFIndex i = 0; i &lt; CFArrayGetCount(platformLanguages.get()); ++i)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; String(static_cast&lt;CFStringRef&gt;(CFArrayGetValueAtIndex(platformLanguages.get(), i)));

Maybe we should teach TextStream how to log CFArrays. Or maybe we can invoke %@ formatting?

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:122
&gt; +        for (const auto&amp; language : languages)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; language;

No need to loop.

&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:58
&gt; +            LOG_WITH_STREAM(Language,

A bit weird here that the WebCore log channel is being used in WebKit.

&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:155
&gt; +        LOG_WITH_STREAM(Language,
&gt; +            stream &lt;&lt; &quot;Process Launcher is copying OverrideLanguages into initialization message: &quot; &lt;&lt; languagesIterator-&gt;value;

Why the wrapping?

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:372
&gt; +        for (const auto&amp; language : languages)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; language;

No need to loop

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:763
&gt; +        for (const auto&amp; language : parameters.overrideLanguages)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; language;

No need to loop

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:380
&gt; +        LOG_WITH_STREAM(Language,
&gt; +            stream &lt;&lt; &quot;Setting WebProcess&apos;s launch OverrideLanguages to &quot; &lt;&lt; languageString;
&gt; +        );

Don&apos;t wrap

&gt; Source/WebKit/WebProcess/WebProcess.cpp:463
&gt; +            for (const auto&amp; language : parameters.overrideLanguages)
&gt; +                stream &lt;&lt; &quot; &quot; &lt;&lt; language;

No need to loop

&gt; Source/WebKit/WebProcess/WebProcess.cpp:740
&gt; +        for (const auto&amp; language : languages)
&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; language;

No need to loop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781821</commentid>
    <comment_count>5</comment_count>
      <attachid>434883</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 21:04:27 -0700</bug_when>
    <thetext>Created attachment 434883
Addressing review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781822</commentid>
    <comment_count>6</comment_count>
      <attachid>434882</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 21:06:51 -0700</bug_when>
    <thetext>Comment on attachment 434882
Patch

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

&gt;&gt; Source/WTF/wtf/Language.cpp:42
&gt;&gt; +DEFINE_LOG_CHANNEL_WITH_DETAILS(Language, WTFLogChannelState::On, WTFLogLevel::Error, LOG_CHANNEL_WEBKIT_SUBSYSTEM);
&gt; 
&gt; On by default?

There is no defaults write for WTF logging.

All the logging in this patch is non-release, so I didn&apos;t figure it was a big deal.

&gt;&gt; Source/WTF/wtf/Language.h:38
&gt;&gt; +extern WTFLogChannel LogLanguage;
&gt; 
&gt; This is a bit of a hack/layering violation. This might be the first log channel used in WTF and you&apos;ve arbitrarily picked the WebCore prefix? Maybe logging should be a PAL thing eventually.

It&apos;s the second logging channel in WTF. I&apos;m following the pattern of RefCountedLeaks.

&gt;&gt; Source/WTF/wtf/cf/LanguageCF.cpp:97
&gt;&gt; +            stream &lt;&lt; &quot; &quot; &lt;&lt; String(static_cast&lt;CFStringRef&gt;(CFArrayGetValueAtIndex(platformLanguages.get(), i)));
&gt; 
&gt; Maybe we should teach TextStream how to log CFArrays. Or maybe we can invoke %@ formatting?

This is a good idea, but I think it&apos;s for another patch. Do you think this one should be blocked on that one?

I don&apos;t like the %@ formatting because it spreads the array across multiple lines, which TextStream doesn&apos;t do for Vectors.

&gt;&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:58
&gt;&gt; +            LOG_WITH_STREAM(Language,
&gt; 
&gt; A bit weird here that the WebCore log channel is being used in WebKit.

It&apos;s not a WebCore log channel. There are 2 log channels - one for WebKit and one for WebCore. They both have the name &quot;Language&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781823</commentid>
    <comment_count>7</comment_count>
      <attachid>434882</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 21:23:36 -0700</bug_when>
    <thetext>Comment on attachment 434882
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/Language.cpp:42
&gt;&gt;&gt; +DEFINE_LOG_CHANNEL_WITH_DETAILS(Language, WTFLogChannelState::On, WTFLogLevel::Error, LOG_CHANNEL_WEBKIT_SUBSYSTEM);
&gt;&gt; 
&gt;&gt; On by default?
&gt; 
&gt; There is no defaults write for WTF logging.
&gt; 
&gt; All the logging in this patch is non-release, so I didn&apos;t figure it was a big deal.

I think it&apos;s probably a good idea for me to add a default write for WTF logging. We should have one.

Line breaking is in WTF, which is a good indication that bidi will probably end up there too. So, if I don&apos;t add one now, I&apos;ll probably need to add one when I do more bidi stuff. So I might as well just do it now.

I&apos;ll add all the infrastructure to make it a proper sibling to WebCoreLogging and WebKit2Logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781836</commentid>
    <comment_count>8</comment_count>
      <attachid>434889</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-03 23:45:46 -0700</bug_when>
    <thetext>Created attachment 434889
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781853</commentid>
    <comment_count>9</comment_count>
      <attachid>434882</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-04 02:23:52 -0700</bug_when>
    <thetext>Comment on attachment 434882
Patch

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

&gt;&gt;&gt;&gt; Source/WTF/wtf/Language.cpp:42
&gt;&gt;&gt;&gt; +DEFINE_LOG_CHANNEL_WITH_DETAILS(Language, WTFLogChannelState::On, WTFLogLevel::Error, LOG_CHANNEL_WEBKIT_SUBSYSTEM);
&gt;&gt;&gt; 
&gt;&gt;&gt; On by default?
&gt;&gt; 
&gt;&gt; There is no defaults write for WTF logging.
&gt;&gt; 
&gt;&gt; All the logging in this patch is non-release, so I didn&apos;t figure it was a big deal.
&gt; 
&gt; I think it&apos;s probably a good idea for me to add a default write for WTF logging. We should have one.
&gt; 
&gt; Line breaking is in WTF, which is a good indication that bidi will probably end up there too. So, if I don&apos;t add one now, I&apos;ll probably need to add one when I do more bidi stuff. So I might as well just do it now.
&gt; 
&gt; I&apos;ll add all the infrastructure to make it a proper sibling to WebCoreLogging and WebKit2Logging.

https://bugs.webkit.org/show_bug.cgi?id=228768

&gt;&gt;&gt; Source/WTF/wtf/Language.h:38
&gt;&gt;&gt; +extern WTFLogChannel LogLanguage;
&gt;&gt; 
&gt;&gt; This is a bit of a hack/layering violation. This might be the first log channel used in WTF and you&apos;ve arbitrarily picked the WebCore prefix? Maybe logging should be a PAL thing eventually.
&gt; 
&gt; It&apos;s the second logging channel in WTF. I&apos;m following the pattern of RefCountedLeaks.

Turns out it&apos;s the 5th! Even more reason to do https://bugs.webkit.org/show_bug.cgi?id=228768.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783015</commentid>
    <comment_count>10</comment_count>
      <attachid>435222</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-09 16:19:15 -0700</bug_when>
    <thetext>Created attachment 435222
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783016</commentid>
    <comment_count>11</comment_count>
      <attachid>435223</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-09 16:21:05 -0700</bug_when>
    <thetext>Created attachment 435223
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783034</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-09 17:08:05 -0700</bug_when>
    <thetext>Committed r280811 (240381@main): &lt;https://commits.webkit.org/240381@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434880</attachid>
            <date>2021-08-03 20:21:24 -0700</date>
            <delta_ts>2021-08-03 20:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228764-20210803202123.patch</filename>
            <type>text/plain</type>
            <size>20026</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4YmI2NjE2MWVkN2Q0MWU0OTZmN2Iy
YTZhODI2YTIwODYwOGY3YmEuLjEwMDRmMDg0MGY1OWQ2MWVjZWQ1NjRmZWQxZWYxOTk3YTJkZjUx
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
cmUgaGF2ZSBiZWVuIGEgdmFyaWV0eSBvZiBidWcgcmVwb3J0cyBvdmVyIHRoZSBwYXN0IG1vbnRo
cy95ZWFycyBhYm91dCB0aGUgcHJvY2VkdXJlCisgICAgICAgIGJ5IHdoaWNoIHdlIGRldGVybWlu
ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UuIEl0J3MgYWN0dWFsbHkgc29tZXdoYXQgY29udm9sdXRlZCwg
c28gdGhpcworICAgICAgICBwYXRjaCBhZGRzIGEgKGRlYnVnKSBsb2cgY2hhbm5lbCBmb3IgaXQg
c28gd2UgY2FuIGZvbGxvdyB3aGF0IGl0J3MgZG9pbmcgZWFzaWx5LgorCisgICAgICAgIFRvIGVu
YWJsZSBhbGwgdGhlIGxvZ2dpbmcsIHJ1biB0aGVzZSBjb21tYW5kczoKKworICAgICAgICAlIGRl
ZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJD
b3JlTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAg
ICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBXZWJDb3Jl
TG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRz
IHdyaXRlIC1nIFdlYkNvcmVMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3Jp
dGUgLWcgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgPEFkZGl0aW9uYWwgZGVmYXVs
dHMgdG8gZW5hYmxlIHRoZSBjaGFubmVsIGluIFNhZmFyaT4KKworICAgICAgICAqIHd0Zi9MYW5n
dWFnZS5jcHA6CisgICAgICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChXVEY6
Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAqIHd0
Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAg
ICAgKFdURjo6bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyk6CisKIDIwMjEtMDgtMDIg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIENoZWNrZWRS
ZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAwZmRjNzEzMzE1Mjk2NDYxYmNiMThlZGM5NDI1MGZlNTRlNGQ5NjUw
Li5hNjJhYWQ1MTU0M2UwNGRlYzNiOWZlYTRjY2RhNjQ5ZjQzODU0NWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hhbm5lbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NzY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRm
b3JtL0xvZ2dpbmcuaDoKKwogMjAyMS0wOC0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gaXMgbm90IGFjcXVpcmVkIGluIG5ldHdvcmsgcHJv
Y2VzcyB3aGVuIG9wZW5pbmcgYSBTUUxpdGUgZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MmU0NTlk
Y2YyYWE5NmYwNzVkMzAyMmUyMjE0ZjMyNjc2MzJmNi4uMWExYjU4MWU2MzBlZjdjMjQyODczOWY3
NTFmMjQwZTY0YzlmZTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0wMyAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0
ZSBhIExhbmd1YWdlIGxvZyBjaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpzZXRPdmVycmlkZUxhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
Ojppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNo
T3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCBjb25zdCk6CisK
IDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBb
R1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCkgZG9lcyBu
b3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggMjc3
YzIyYmNmZTYyYWUwYjZmZWNhODlhOGIxNzUxODJhNjA0ZWFjNC4uZmE5MTVjOWVmOTcwYTAwYzli
Mjk5ODBmNzM3OWE4MGIxMDRmMTVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0
aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTg3LDE5ICsxODcs
MjEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjaWYgIWRlZmluZWQoREVGSU5FX0xPR19DSEFOTkVM
KQogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChu
YW1lLCBzdWJzeXN0ZW0pIFwKLSAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0g
eyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OworI2RlZmlu
ZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2
ZWwsIHN1YnN5c3RlbSkgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7
IGluaXRpYWxTdGF0ZSwgI25hbWUsIGxldmVsIH07CiAjZW5kaWYKICNpZiBVU0UoT1NfTE9HKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUs
IHN1YnN5c3RlbSkgXAotICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IChX
VEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0ZW0sIE9T
X0xPR19ERUZBVUxUIH07CisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMo
bmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9nQ2hhbm5l
bCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1YnN5
c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgogI2lmIFVTRShKT1VSTkFMRCkgJiYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJz
eXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV1RGTG9nQ2hhbm5lbCBM
T0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxv
Z0xldmVsKTEsIHN1YnN5c3RlbSB9OworI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9E
RVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0g
eyBpbml0aWFsU3RhdGUsICNuYW1lLCBsZXZlbCwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNlbmRp
ZgogCisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIERFRklORV9M
T0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMobmFtZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYsIFdU
RkxvZ0xldmVsOjpFcnJvciwgc3Vic3lzdGVtKTsKKwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
V1RGUmVwb3J0Tm90SW1wbGVtZW50ZWRZZXQoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEFz
c2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1
bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
V1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIGZpbGUsIGlu
dCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogYXNzZXJ0aW9uLCBjb25z
dCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVURV9QUklOVEYoNSwgNik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFn
ZS5jcHAKaW5kZXggYTJhYTJmYWFhM2U0NWMzNzUwZDIzNTVmZjc3MWEzNGY5Zjc1MTgwMi4uMDg0
OWU4M2UzMzRmMWJiNzRhNDNmODc2YjgyZjM3ZWY5MTZjNDE4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCkBAIC0zNyw2ICszOCw5IEBACiAKIG5hbWVzcGFj
ZSBXVEYgewogCisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKK0RFRklORV9MT0dfQ0hB
Tk5FTF9XSVRIX0RFVEFJTFMoTGFuZ3VhZ2UsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sIFdURkxv
Z0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSk7CisKIHN0YXRpYyBM
b2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jazsKIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJ
UkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQogewpAQCAtOTUs
OSArOTksMTQgQEAgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCiBTdHJpbmcgZGVmYXVsdExhbmd1
YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewog
ICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6
ZUxhbmd1YWdlcyk7Ci0gICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgaWYgKGxhbmd1YWdl
cy5zaXplKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLAorICAgICAgICAg
ICAgc3RyZWFtIDw8ICJkZWZhdWx0TGFuZ3VhZ2UoKSBpcyByZXR1cm5pbmcgIiA8PCBsYW5ndWFn
ZXNbMF07CisgICAgICAgICk7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07CisgICAgfQog
CisgICAgTE9HKExhbmd1YWdlLCAiZGVmYXVsdExhbmd1YWdlKCkgaXMgcmV0dXJuaW5nIHRoZSBl
bXB0eSBzdHJpbmcuIik7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTEwOSw2
ICsxMTgsMTEgQEAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
KCkKIAogdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIG92ZXJyaWRlKQogeworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAg
ICAgc3RyZWFtIDw8ICJMYW5ndWFnZXMgYXJlIGJlaW5nIG92ZXJyaWRkZW4gdG86IjsKKyAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBsYW5ndWFnZSA6IG92ZXJyaWRlKQorICAgICAgICAgICAgc3Ry
ZWFtIDw8ICIgIiA8PCBsYW5ndWFnZTsKKyAgICApOwogICAgIHsKICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwogICAgICAgICBwcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZSgpID0gb3ZlcnJpZGU7CkBAIC0xMzAsMTQgKzE0NCwyMyBAQCBW
ZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzIHNob3VsZE1pbmltaXplTGFuZwogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHBy
ZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwogICAgICAgICBWZWN0b3I8U3RyaW5nPiYg
b3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgICAgICBpZiAoIW92
ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgICAgICAgICBzdHJl
YW0gPDwgIkxhbmd1YWdlcyBhcmUgb3ZlcnJpZGRlbjoiOworICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgbGFuZ3VhZ2UgOiBvdmVycmlkZSkKKyAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtIDw8ICIgIiA8PCBsYW5ndWFnZTsKKyAgICAgICAgICAgICk7CiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIExvY2tl
ciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKICAgICBh
dXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFn
ZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIGlmIChs
YW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBtaXNzIik7
CiAgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91
bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwg
InVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBoaXQiKTsKICAgICByZXR1cm4gaXNvbGF0
ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCmluZGV4IDJiNTAxMjMxN2RlZWRmMDVj
MzhjYzQ5ZjFhYzFkNWM5NGQ5ZmFhYmMuLmJjNTM5ZDVkNTM3YmQ5YWQ4OTIzN2FjZmQzZDk2NWUz
MGY0MzAwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKKysrIGIvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV1RG
IHsKIAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTGFuZ3VhZ2U7CisKIGVudW0gY2xhc3MgU2hv
dWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSBT
dHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNG
LmNwcAppbmRleCAzOWVhYzQyMTgwYWY5ZGEzOWFkYmViNmQ2MzI4YzRmYTA3YzcxZDkxLi40ZmM4
ODk3ZjkyYzQ3NDM2NjA2ZTgzN2VhODg2NzBiZTZhYzNiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFn
ZUNGLmNwcApAQCAtMzIsOCArMzIsMTEgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxl
U1BJLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKwogbmFt
ZXNwYWNlIFdURiB7CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC04OCw5ICs5MSwyMSBAQCBWZWN0
b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVM
YW5ndWFnZXMgc2hvdWxkTWluaQogewogICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZXMgPSBhZG9w
dENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKIAorICAgIExPR19XSVRIX1NU
UkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJDRkxvY2FsZUNvcHlQcmVmZXJyZWRM
YW5ndWFnZXMoKSByZXR1cm5lZDoiOworICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBD
RkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOyArK2kpCisgICAgICAgICAg
ICBzdHJlYW0gPDwgIiAiIDw8IFN0cmluZyhzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICApOwor
CiAgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOjpZZXMpCiAgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2Vz
RnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CiAKKyAgICBMT0dfV0lUSF9T
VFJFQU0oTGFuZ3VhZ2UsCisgICAgICAgIHN0cmVhbSA8PCAiTWluaW1pemVkIGxhbmd1YWdlczoi
OworICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQocGxhdGZv
cm1MYW5ndWFnZXMuZ2V0KCkpOyArK2kpCisgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IFN0
cmluZyhzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChwbGF0
Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICApOworCiAgICAgQ0ZJbmRleCBwbGF0Zm9y
bUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJheUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
KTsKICAgICBpZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQpCiAgICAgICAgIHJldHVybiB7ICJl
biJfcyB9OwpAQCAtMTAwLDYgKzExNSwxMyBAQCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaQogICAg
ICAgICBhdXRvIHBsYXRmb3JtTGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpOwogICAgICAg
ICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShwbGF0Zm9ybUxhbmd1YWdl
LCBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykpOwogICAgIH0KKworICAgIExPR19XSVRIX1NUUkVB
TShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJBZnRlciBwYXNzaW5nIHRocm91Z2ggaHR0
cFN0eWxlTGFuZ3VhZ2VDb2RlOiI7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgbGFuZ3VhZ2Ug
OiBsYW5ndWFnZXMpCisgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IGxhbmd1YWdlOworICAg
ICk7CisKICAgICByZXR1cm4gbGFuZ3VhZ2VzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3Vh
Z2VDb2NvYS5tbQppbmRleCBiZmE4YTUzZTdmODM3ZmRiOGE3YTllYTUwNzU0YmMyMjU2NzczMDYy
Li5jNmRjZGFkZGJlODIzNTA2ZWIzMDNlODhjN2Q4ZjFmMjQzNDQyNDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTMzLDYgKzMzLDggQEAKICNpbXBvcnQgPHd0Zi9z
cGkvY29jb2EvTlNMb2NhbGVTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKwogbmFtZXNwYWNlIFdURiB7CiAKIHNp
emVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5n
dWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRj
aCkKQEAgLTcwLDggKzcyLDEwIEBAIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKQogCiBSZXRh
aW5QdHI8Q0ZBcnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhDRkFycmF5
UmVmIGxhbmd1YWdlcykKIHsKLSAgICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCisgICAg
aWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwgIkNv
dWxkIG5vdCBtaW5pbWl6ZSBsYW5ndWFnZXMuIik7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXM7
CisgICAgfQogCiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgcmV0dXJu
IChfX2JyaWRnZSBDRkFycmF5UmVmKVtOU0xvY2FsZSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFu
Z3VhZ2VzOihfX2JyaWRnZSBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3VhZ2VzXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA4MjM1ODQzZmE1MTI5NTVjN2NlYjVlZmRmY2RmOTNk
ZTRhNTllMjMyLi43NDJjZjU0OTlkNDQ2NmRhYTllYzYxMjA0NDRlNWJiMDk1YmM4YjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC03Myw2ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBNKEluZGV4ZWREQikgXAogICAgIE0oSW5kZXhlZERCT3BlcmF0aW9ucykgXAog
ICAgIE0oSW5zcGVjdG9yKSBcCisgICAgTShMYW5ndWFnZSkgXAogICAgIE0oTGF5ZXJzKSBcCiAg
ICAgTShMYXlvdXQpIFwKICAgICBNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0KSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vTG9nZ2luZy5oCmluZGV4IDk4MGEyNTkxMWQwYjg4ZDU0YmM2ZmFkN2QwYjI4NzZiY2M3
OTJkOGIuLjA1MWJjMjZkZDU3NDRlNTdkYjE1OWFmY2JlMTYxZTExZjkyOTg0MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nZ2luZy5oCkBAIC02NCw2ICs2NCw3IEBAIGV4dGVybiAiQyIgewogICAgIE0o
SW5kZXhlZERCKSBcCiAgICAgTShJbnNwZWN0b3IpIFwKICAgICBNKEtleUhhbmRsaW5nKSBcCisg
ICAgTShMYW5ndWFnZSkgXAogICAgIE0oTGF5ZXJzKSBcCiAgICAgTShMYXlvdXQpIFwKICAgICBN
KExvYWRpbmcpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNl
TWFpbi5tbQppbmRleCA4ZDRiMDg2NWI5NWY3ZWNkMjk5OGQ4MWE0YWM0NmJmNmY5YjQyNDViLi5k
M2MxYzM2MWI5NTg4YmViMTQ2NDZiYjA0MDZlOWRjNWE4MTczODcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCkBAIC01NCwxMCArNTQsMTgg
QEAgc3RhdGljIHZvaWQgc2V0QXBwbGVMYW5ndWFnZXNQcmVmZXJlbmNlKCkKICAgICAgICAgICAg
ICAgICBbbmV3TGFuZ3VhZ2VzIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aENTdHJpbmc6
eHBjX3N0cmluZ19nZXRfc3RyaW5nX3B0cih2YWx1ZSkgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5j
b2RpbmddXTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsCisgICAgICAgICAgICAgICAg
c3RyZWFtIDw8ICJCb290c3RyYXAgbWVzc2FnZSBjb250YWlucyBPdmVycmlkZUxhbmd1YWdlczoi
OworICAgICAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKmxhbmd1YWdlIGluIG5ld0xhbmd1YWdl
cy5nZXQoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICIgIiA8PCBTdHJpbmcobGFu
Z3VhZ2UpOworICAgICAgICAgICAgKTsKKwogICAgICAgICAgICAgW25ld0FyZ3VtZW50cyBzZXRW
YWx1ZTpuZXdMYW5ndWFnZXMuZ2V0KCkgZm9yS2V5OkAiQXBwbGVMYW5ndWFnZXMiXTsKICAgICAg
ICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldFZvbGF0aWxl
RG9tYWluOm5ld0FyZ3VtZW50cy5nZXQoKSBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwogICAg
ICAgICB9Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBMT0coTGFuZ3VhZ2UsICJCb290c3Ry
YXAgbWVzc2FnZSBkb2VzIG5vdCBjb250YWluIE92ZXJyaWRlTGFuZ3VhZ2VzIik7CiB9CiAKIHN0
YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggOTM2ZjNlNTIxMTE3ZTkwMWM5ZTg4ZmZiN2RhYjEyMDRl
MTFjNmE2NC4uMjA2MWM0MDRlYzY0OTY3MTg1NGIwYzFiMmNhZWQ5OTQ0YTM1NTg3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCkBAIC0xNTEsNiArMTUxLDkgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6
OmxhdW5jaFByb2Nlc3MoKQogCiAgICAgYXV0byBsYW5ndWFnZXNJdGVyYXRvciA9IG1fbGF1bmNo
T3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5maW5kKCJPdmVycmlkZUxhbmd1YWdlcyIp
OwogICAgIGlmIChsYW5ndWFnZXNJdGVyYXRvciAhPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0
aWFsaXphdGlvbkRhdGEuZW5kKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdl
LAorICAgICAgICAgICAgc3RyZWFtIDw8ICJQcm9jZXNzIExhdW5jaGVyIGlzIGNvcHlpbmcgT3Zl
cnJpZGVMYW5ndWFnZXMgaW50byBpbml0aWFsaXphdGlvbiBtZXNzYWdlOiAiIDw8IGxhbmd1YWdl
c0l0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgKTsKICAgICAgICAgYXV0byBsYW5ndWFnZXMgPSBh
ZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVhdGUobnVsbHB0ciwgMCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzSXRlcmF0b3ItPnZhbHVlLnNwbGl0KCcsJykpCiAg
ICAgICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhsYW5ndWFnZXMuZ2V0KCksIFhQQ19BUlJB
WV9BUFBFTkQsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJlYWI2YmNiODliOGI3OWE3ZGNmM2NkY2Q0OWMw
NmQ1YWNkMjEyYjMuLmJiYWJmNWQzMGU3OWY4OGY1YTkwYzM3ODJmOTRlYTI1MGNkM2ZhZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTM2Niw2ICsz
NjYsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0T3ZlcnJpZGVMYW5ndWFnZXMoVmVjdG9y
PFN0cmluZz4mJiBsYW5ndWFnZXMpCiB7CiAgICAgbV9jb25maWd1cmF0aW9uLT5zZXRPdmVycmlk
ZUxhbmd1YWdlcyhXVEZNb3ZlKGxhbmd1YWdlcykpOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKExh
bmd1YWdlLAorICAgICAgICBzdHJlYW0gPDwgIldlYlByb2Nlc3NQb29sIGlzIHNldHRpbmcgT3Zl
cnJpZGVMYW5ndWFnZXM6IjsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBsYW5ndWFnZSA6IGxh
bmd1YWdlcykKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiICIgPDwgbGFuZ3VhZ2U7CisgICAgKTsK
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDaGFuZ2VkKG1fY29uZmlndXJhdGlvbi0+b3ZlcnJpZGVMYW5ndWFnZXMoKSkp
OwogI2lmIFVTRShTT1VQKQogICAgIGZvciAoYXV0byBuZXR3b3JrUHJvY2VzcyA6IE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKSkKQEAgLTc1Miw2ICs3NTcsMTEgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAgIHBhcmFtZXRlcnMuY2FjaGVNb2RlbCA9IExl
Z2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24oKS5jYWNoZU1vZGVsKCk7CiAgICAgcGFyYW1l
dGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IGNvbmZpZ3VyYXRpb24oKS5vdmVycmlkZUxhbmd1YWdl
cygpOworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJX
ZWJQcm9jZXNzUG9vbCBpcyBpbml0aWFsaXppbmcgYSBuZXcgd2ViIHByb2Nlc3Mgd2l0aCBvdmVy
cmlkZUxhbmd1YWdlczoiOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGxhbmd1YWdlIDogcGFy
YW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcykKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiICIgPDwg
bGFuZ3VhZ2U7CisgICAgKTsKIAogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0VtcHR5RG9jdW1lbnQgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzRW1wdHlE
b2N1bWVudCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlID0g
Y29weVRvVmVjdG9yKExlZ2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24oKS5zY2hlbWVzVG9S
ZWdpc3RlckFzU2VjdXJlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMWQ2YjlkYTBkZmEzZDg0OGFhZjVjMjQ1MGVmMzQ4NWI2NDBmOTYyMS4u
OGZlODZjMjhkZDZmZjc1MDYyNzEwMDAwMGJmOWNiNzU5YmU5NGJjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNjIsOSArMzYyLDEyIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1
bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAgICAgaWYgKFdlYktpdDo6aXNJbnNwZWN0b3JQcm9jZXNz
UG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxp
emF0aW9uRGF0YS5hZGQoImluc3BlY3Rvci1wcm9jZXNzIl9zLCAiMSJfcyk7CiAKKyAgICBMT0co
TGFuZ3VhZ2UsICJXZWJQcm9jZXNzUHJveHkgaXMgZ2V0dGluZyBsYXVuY2ggb3B0aW9ucy4iKTsK
ICAgICBhdXRvIG92ZXJyaWRlTGFuZ3VhZ2VzID0gbV9wcm9jZXNzUG9vbC0+Y29uZmlndXJhdGlv
bigpLm92ZXJyaWRlTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKG92ZXJyaWRlTGFuZ3VhZ2VzLmlzRW1w
dHkoKSkKKyAgICBpZiAob3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIExP
RyhMYW5ndWFnZSwgIm92ZXJyaWRlTGFuZ3VhZ2VzKCkgcmVwb3J0cyBlbXB0eS4gQ2FsbGluZyBw
bGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCkiKTsKICAgICAgICAgb3ZlcnJpZGVMYW5ndWFnZXMg
PSBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCk7CisgICAgfQogICAgIGlmICghb3ZlcnJpZGVM
YW5ndWFnZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgbGFuZ3VhZ2VTdHJp
bmc7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGVMYW5ndWFnZXMuc2l6
ZSgpOyArK2kpIHsKQEAgLTM3Miw4ICszNzUsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6Omdl
dExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQK
ICAgICAgICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAg
IGxhbmd1YWdlU3RyaW5nLmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0K
KyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLAorICAgICAgICAgICAgc3RyZWFtIDw8
ICJTZXR0aW5nIFdlYlByb2Nlc3MncyBsYXVuY2ggT3ZlcnJpZGVMYW5ndWFnZXMgdG8gIiA8PCBs
YW5ndWFnZVN0cmluZzsKKyAgICAgICAgKTsKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUlu
aXRpYWxpemF0aW9uRGF0YS5hZGQoIk92ZXJyaWRlTGFuZ3VhZ2VzIl9zLCBsYW5ndWFnZVN0cmlu
Zy50b1N0cmluZygpKTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwg
Im92ZXJyaWRlTGFuZ3VhZ2VzIGlzIHN0aWxsIGVtcHR5LiBOb3Qgc2V0dGluZyBXZWJQcm9jZXNz
J3MgbGF1bmNoIE92ZXJyaWRlTGFuZ3VhZ2VzLiIpOwogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25W
YWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2Rl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNjE0N2Rk
NWNiYTkzN2U5Y2ZhNjc3ODBmOGEwYTlkOGE1NGJiNjc2Li5mMjY3ODEwMmVjNTdmOTU4YzdjMmRi
ZDI0YmZmZTM4NGNhNTFiN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC00NTYsOCArNDU2LDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBz
ZXRDYWNoZU1vZGVsKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAgICBpZiAoIXBhcmFtZXRl
cnMub3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmICghcGFyYW1ldGVycy5vdmVy
cmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1
YWdlLAorICAgICAgICAgICAgc3RyZWFtIDw8ICJXZWIgUHJvY2VzcyBpbml0aWFsaXphdGlvbiBp
cyBzZXR0aW5nIG92ZXJyaWRlTGFuZ3VhZ2VzOiI7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIGxhbmd1YWdlIDogcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcykKKyAgICAgICAgICAg
ICAgICBzdHJlYW0gPDwgIiAiIDw8IGxhbmd1YWdlOworICAgICAgICApOwogICAgICAgICBvdmVy
cmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMocGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyk7
CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgIldlYiBwcm9jZXNzIGluaXRpYWxp
emF0aW9uIGlzIG5vdCBzZXR0aW5nIG92ZXJyaWRlTGFuZ3VhZ2VzIik7CiAKICAgICBtX3RleHRD
aGVja2VyU3RhdGUgPSBwYXJhbWV0ZXJzLnRleHRDaGVja2VyU3RhdGU7CiAKQEAgLTcyNyw2ICs3
MzQsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wg
dXNlRm9udFNtb290aGluZykKIAogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBjb25zdAogeworICAg
IExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJUaGUgd2ViIHBy
b2Nlc3MncyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZDoiOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzKQorICAgICAgICAgICAgc3RyZWFtIDw8ICIg
IiA8PCBsYW5ndWFnZTsKKyAgICApOwogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdl
cyhsYW5ndWFnZXMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434882</attachid>
            <date>2021-08-03 20:29:26 -0700</date>
            <delta_ts>2021-08-03 20:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228764-20210803202925.patch</filename>
            <type>text/plain</type>
            <size>20257</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4YmI2NjE2MWVkN2Q0MWU0OTZmN2Iy
YTZhODI2YTIwODYwOGY3YmEuLjIxZGI0MGIwNzM2NzdiZmZlNDNmOWJmNGJlMzAwMGY4NDY1ZWRk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
cmUgaGF2ZSBiZWVuIGEgdmFyaWV0eSBvZiBidWcgcmVwb3J0cyBvdmVyIHRoZSBwYXN0IG1vbnRo
cy95ZWFycyBhYm91dCB0aGUgcHJvY2VkdXJlCisgICAgICAgIGJ5IHdoaWNoIHdlIGRldGVybWlu
ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UuIEl0J3MgYWN0dWFsbHkgc29tZXdoYXQgY29udm9sdXRlZCwg
c28gdGhpcworICAgICAgICBwYXRjaCBhZGRzIGEgKGRlYnVnKSBsb2cgY2hhbm5lbCBmb3IgaXQg
c28gd2UgY2FuIGZvbGxvdyB3aGF0IGl0J3MgZG9pbmcgZWFzaWx5LgorCisgICAgICAgIFRvIGVu
YWJsZSBhbGwgdGhlIGxvZ2dpbmcsIHJ1biB0aGVzZSBjb21tYW5kczoKKworICAgICAgICAlIGRl
ZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJD
b3JlTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAg
ICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBXZWJDb3Jl
TG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRz
IHdyaXRlIC1nIFdlYkNvcmVMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3Jp
dGUgLWcgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAv
VXNlcnMvJFVTRVIvTGlicmFyeS9Db250YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QgV2ViQ29yZUxvZ2dpbmcgTGFu
Z3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAvVXNlcnMvJFVTRVIvTGlicmFyeS9Db250
YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBs
ZS5TYWZhcmkucGxpc3QgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKworICAgICAgICAqIHd0Zi9M
YW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChX
VEY6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAg
ICAgICAgKFdURjo6bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyk6CisKIDIwMjEtMDgt
MDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIENoZWNr
ZWRSZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwZmRjNzEzMzE1Mjk2NDYxYmNiMThlZGM5NDI1MGZlNTRlNGQ5
NjUwLi5hNjJhYWQ1MTU0M2UwNGRlYzNiOWZlYTRjY2RhNjQ5ZjQzODU0NWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hhbm5lbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NzY0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAyMS0wOC0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gaXMgbm90IGFjcXVpcmVkIGluIG5ldHdvcmsg
cHJvY2VzcyB3aGVuIG9wZW5pbmcgYSBTUUxpdGUgZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MmU0
NTlkY2YyYWE5NmYwNzVkMzAyMmUyMjE0ZjMyNjc2MzJmNi4uMWExYjU4MWU2MzBlZjdjMjQyODcz
OWY3NTFmMjQwZTY0YzlmZTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0w
MyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBhIExhbmd1YWdlIGxvZyBjaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpzZXRPdmVycmlkZUxhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCBjb25zdCk6
CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCkgZG9l
cyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXgg
Mjc3YzIyYmNmZTYyYWUwYjZmZWNhODlhOGIxNzUxODJhNjA0ZWFjNC4uZmE5MTVjOWVmOTcwYTAw
YzliMjk5ODBmNzM3OWE4MGIxMDRmMTVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTg3LDE5ICsx
ODcsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjaWYgIWRlZmluZWQoREVGSU5FX0xPR19DSEFO
TkVMKQogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5F
TChuYW1lLCBzdWJzeXN0ZW0pIFwKLSAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OworI2Rl
ZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwg
bGV2ZWwsIHN1YnN5c3RlbSkgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkg
PSB7IGluaXRpYWxTdGF0ZSwgI25hbWUsIGxldmVsIH07CiAjZW5kaWYKICNpZiBVU0UoT1NfTE9H
KSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5h
bWUsIHN1YnN5c3RlbSkgXAotICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7
IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0ZW0s
IE9TX0xPR19ERUZBVUxUIH07CisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJ
TFMobmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9nQ2hh
bm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1
YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgogI2lmIFVTRShKT1VSTkFMRCkgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBz
dWJzeXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV1RGTG9nQ2hhbm5l
bCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdU
RkxvZ0xldmVsKTEsIHN1YnN5c3RlbSB9OworI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lU
SF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyBpbml0aWFsU3RhdGUsICNuYW1lLCBsZXZlbCwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNl
bmRpZgogCisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIERFRklO
RV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMobmFtZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYs
IFdURkxvZ0xldmVsOjpFcnJvciwgc3Vic3lzdGVtKTsKKwogV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgV1RGUmVwb3J0Tm90SW1wbGVtZW50ZWRZZXQoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
IGNvbnN0IGNoYXIqIGZ1bmN0aW9uKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9y
dEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwogV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIGZpbGUs
IGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogYXNzZXJ0aW9uLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVURV9QUklOVEYoNSwgNik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5n
dWFnZS5jcHAKaW5kZXggYTJhYTJmYWFhM2U0NWMzNzUwZDIzNTVmZjc3MWEzNGY5Zjc1MTgwMi4u
MDg0OWU4M2UzMzRmMWJiNzRhNDNmODc2YjgyZjM3ZWY5MTZjNDE4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCkBAIC0zNyw2ICszOCw5IEBACiAKIG5hbWVz
cGFjZSBXVEYgewogCisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKK0RFRklORV9MT0df
Q0hBTk5FTF9XSVRIX0RFVEFJTFMoTGFuZ3VhZ2UsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sIFdU
RkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSk7CisKIHN0YXRp
YyBMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jazsKIHN0YXRpYyBWZWN0
b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JF
UVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQogewpAQCAt
OTUsOSArOTksMTQgQEAgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCiBTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQog
ewogICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5p
bWl6ZUxhbmd1YWdlcyk7Ci0gICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgaWYgKGxhbmd1
YWdlcy5zaXplKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLAorICAgICAg
ICAgICAgc3RyZWFtIDw8ICJkZWZhdWx0TGFuZ3VhZ2UoKSBpcyByZXR1cm5pbmcgIiA8PCBsYW5n
dWFnZXNbMF07CisgICAgICAgICk7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07CisgICAg
fQogCisgICAgTE9HKExhbmd1YWdlLCAiZGVmYXVsdExhbmd1YWdlKCkgaXMgcmV0dXJuaW5nIHRo
ZSBlbXB0eSBzdHJpbmcuIik7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTEw
OSw2ICsxMTgsMTEgQEAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCkKIAogdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIG92ZXJyaWRlKQogeworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAg
ICAgICAgc3RyZWFtIDw8ICJMYW5ndWFnZXMgYXJlIGJlaW5nIG92ZXJyaWRkZW4gdG86IjsKKyAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBsYW5ndWFnZSA6IG92ZXJyaWRlKQorICAgICAgICAgICAg
c3RyZWFtIDw8ICIgIiA8PCBsYW5ndWFnZTsKKyAgICApOwogICAgIHsKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwogICAgICAgICBwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpID0gb3ZlcnJpZGU7CkBAIC0xMzAsMTQgKzE0NCwyMyBA
QCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZwogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwogICAgICAgICBWZWN0b3I8U3RyaW5n
PiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgICAgICBpZiAo
IW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgICAgICAgICBz
dHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgb3ZlcnJpZGRlbjoiOworICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgYXV0byYgbGFuZ3VhZ2UgOiBvdmVycmlkZSkKKyAgICAgICAgICAgICAgICAgICAg
c3RyZWFtIDw8ICIgIiA8PCBsYW5ndWFnZTsKKyAgICAgICAgICAgICk7CiAgICAgICAgICAgICBy
ZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIExv
Y2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKICAg
ICBhdXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIGlm
IChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBtaXNz
Iik7CiAgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFn
ZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBoaXQiKTsKICAgICByZXR1cm4gaXNv
bGF0ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xh
bmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCmluZGV4IDJiNTAxMjMxN2RlZWRm
MDVjMzhjYzQ5ZjFhYzFkNWM5NGQ5ZmFhYmMuLmJjNTM5ZDVkNTM3YmQ5YWQ4OTIzN2FjZmQzZDk2
NWUzMGY0MzAwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKKysrIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2Ug
V1RGIHsKIAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTGFuZ3VhZ2U7CisKIGVudW0gY2xhc3Mg
U2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07CiAKIFdURl9FWFBPUlRfUFJJVkFU
RSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxk
TWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFn
ZUNGLmNwcAppbmRleCAzOWVhYzQyMTgwYWY5ZGEzOWFkYmViNmQ2MzI4YzRmYTA3YzcxZDkxLi40
ZmM4ODk3ZjkyYzQ3NDM2NjA2ZTgzN2VhODg2NzBiZTZhYzNiZGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcApAQCAtMzIsOCArMzIsMTEgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVu
ZGxlU1BJLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKwog
bmFtZXNwYWNlIFdURiB7CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC04OCw5ICs5MSwyMSBAQCBW
ZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXMgc2hvdWxkTWluaQogewogICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZXMgPSBh
ZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKIAorICAgIExPR19XSVRI
X1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJDRkxvY2FsZUNvcHlQcmVmZXJy
ZWRMYW5ndWFnZXMoKSByZXR1cm5lZDoiOworICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkg
PCBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOyArK2kpCisgICAgICAg
ICAgICBzdHJlYW0gPDwgIiAiIDw8IFN0cmluZyhzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICAp
OworCiAgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzOjpZZXMpCiAgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3Vh
Z2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CiAKKyAgICBMT0dfV0lU
SF9TVFJFQU0oTGFuZ3VhZ2UsCisgICAgICAgIHN0cmVhbSA8PCAiTWluaW1pemVkIGxhbmd1YWdl
czoiOworICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQocGxh
dGZvcm1MYW5ndWFnZXMuZ2V0KCkpOyArK2kpCisgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8
IFN0cmluZyhzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChw
bGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICApOworCiAgICAgQ0ZJbmRleCBwbGF0
Zm9ybUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJheUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdl
dCgpKTsKICAgICBpZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQpCiAgICAgICAgIHJldHVybiB7
ICJlbiJfcyB9OwpAQCAtMTAwLDYgKzExNSwxMyBAQCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaQog
ICAgICAgICBhdXRvIHBsYXRmb3JtTGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpOwogICAg
ICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShwbGF0Zm9ybUxhbmd1
YWdlLCBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykpOwogICAgIH0KKworICAgIExPR19XSVRIX1NU
UkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJBZnRlciBwYXNzaW5nIHRocm91Z2gg
aHR0cFN0eWxlTGFuZ3VhZ2VDb2RlOiI7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgbGFuZ3Vh
Z2UgOiBsYW5ndWFnZXMpCisgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IGxhbmd1YWdlOwor
ICAgICk7CisKICAgICByZXR1cm4gbGFuZ3VhZ2VzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFu
Z3VhZ2VDb2NvYS5tbQppbmRleCBiZmE4YTUzZTdmODM3ZmRiOGE3YTllYTUwNzU0YmMyMjU2Nzcz
MDYyLi5jNmRjZGFkZGJlODIzNTA2ZWIzMDNlODhjN2Q4ZjFmMjQzNDQyNDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTMzLDYgKzMzLDggQEAKICNpbXBvcnQgPHd0
Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCisjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKwogbmFtZXNwYWNlIFdURiB7CiAK
IHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RN
YXRjaCkKQEAgLTcwLDggKzcyLDEwIEBAIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKQogCiBS
ZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhDRkFy
cmF5UmVmIGxhbmd1YWdlcykKIHsKLSAgICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCisg
ICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwg
IkNvdWxkIG5vdCBtaW5pbWl6ZSBsYW5ndWFnZXMuIik7CiAgICAgICAgIHJldHVybiBsYW5ndWFn
ZXM7CisgICAgfQogCiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgcmV0
dXJuIChfX2JyaWRnZSBDRkFycmF5UmVmKVtOU0xvY2FsZSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9t
TGFuZ3VhZ2VzOihfX2JyaWRnZSBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3VhZ2VzXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA4MjM1ODQzZmE1MTI5NTVjN2NlYjVlZmRmY2Rm
OTNkZTRhNTllMjMyLi43NDJjZjU0OTlkNDQ2NmRhYTllYzYxMjA0NDRlNWJiMDk1YmM4YjQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC03Myw2ICs3Myw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBNKEluZGV4ZWREQikgXAogICAgIE0oSW5kZXhlZERCT3BlcmF0aW9ucykg
XAogICAgIE0oSW5zcGVjdG9yKSBcCisgICAgTShMYW5ndWFnZSkgXAogICAgIE0oTGF5ZXJzKSBc
CiAgICAgTShMYXlvdXQpIFwKICAgICBNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0KSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDk4MGEyNTkxMWQwYjg4ZDU0YmM2ZmFkN2QwYjI4NzZi
Y2M3OTJkOGIuLjA1MWJjMjZkZDU3NDRlNTdkYjE1OWFmY2JlMTYxZTExZjkyOTg0MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC02NCw2ICs2NCw3IEBAIGV4dGVybiAiQyIgewogICAg
IE0oSW5kZXhlZERCKSBcCiAgICAgTShJbnNwZWN0b3IpIFwKICAgICBNKEtleUhhbmRsaW5nKSBc
CisgICAgTShMYW5ndWFnZSkgXAogICAgIE0oTGF5ZXJzKSBcCiAgICAgTShMYXlvdXQpIFwKICAg
ICBNKExvYWRpbmcpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlTWFpbi5tbQppbmRleCA4ZDRiMDg2NWI5NWY3ZWNkMjk5OGQ4MWE0YWM0NmJmNmY5YjQyNDVi
Li5kM2MxYzM2MWI5NTg4YmViMTQ2NDZiYjA0MDZlOWRjNWE4MTczODcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZU1haW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCkBAIC01NCwxMCArNTQs
MTggQEAgc3RhdGljIHZvaWQgc2V0QXBwbGVMYW5ndWFnZXNQcmVmZXJlbmNlKCkKICAgICAgICAg
ICAgICAgICBbbmV3TGFuZ3VhZ2VzIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aENTdHJp
bmc6eHBjX3N0cmluZ19nZXRfc3RyaW5nX3B0cih2YWx1ZSkgZW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmddXTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsCisgICAgICAgICAgICAg
ICAgc3RyZWFtIDw8ICJCb290c3RyYXAgbWVzc2FnZSBjb250YWlucyBPdmVycmlkZUxhbmd1YWdl
czoiOworICAgICAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKmxhbmd1YWdlIGluIG5ld0xhbmd1
YWdlcy5nZXQoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICIgIiA8PCBTdHJpbmco
bGFuZ3VhZ2UpOworICAgICAgICAgICAgKTsKKwogICAgICAgICAgICAgW25ld0FyZ3VtZW50cyBz
ZXRWYWx1ZTpuZXdMYW5ndWFnZXMuZ2V0KCkgZm9yS2V5OkAiQXBwbGVMYW5ndWFnZXMiXTsKICAg
ICAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldFZvbGF0
aWxlRG9tYWluOm5ld0FyZ3VtZW50cy5nZXQoKSBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwog
ICAgICAgICB9Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBMT0coTGFuZ3VhZ2UsICJCb290
c3RyYXAgbWVzc2FnZSBkb2VzIG5vdCBjb250YWluIE92ZXJyaWRlTGFuZ3VhZ2VzIik7CiB9CiAK
IHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggOTM2ZjNlNTIxMTE3ZTkwMWM5ZTg4ZmZiN2RhYjEy
MDRlMTFjNmE2NC4uMjA2MWM0MDRlYzY0OTY3MTg1NGIwYzFiMmNhZWQ5OTQ0YTM1NTg3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVu
Y2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0xNTEsNiArMTUxLDkgQEAgdm9pZCBQcm9jZXNzTGF1bmNo
ZXI6OmxhdW5jaFByb2Nlc3MoKQogCiAgICAgYXV0byBsYW5ndWFnZXNJdGVyYXRvciA9IG1fbGF1
bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5maW5kKCJPdmVycmlkZUxhbmd1YWdl
cyIpOwogICAgIGlmIChsYW5ndWFnZXNJdGVyYXRvciAhPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEuZW5kKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1
YWdlLAorICAgICAgICAgICAgc3RyZWFtIDw8ICJQcm9jZXNzIExhdW5jaGVyIGlzIGNvcHlpbmcg
T3ZlcnJpZGVMYW5ndWFnZXMgaW50byBpbml0aWFsaXphdGlvbiBtZXNzYWdlOiAiIDw8IGxhbmd1
YWdlc0l0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgKTsKICAgICAgICAgYXV0byBsYW5ndWFnZXMg
PSBhZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVhdGUobnVsbHB0ciwgMCkpOwogICAgICAgICBm
b3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzSXRlcmF0b3ItPnZhbHVlLnNwbGl0KCcsJykp
CiAgICAgICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhsYW5ndWFnZXMuZ2V0KCksIFhQQ19B
UlJBWV9BUFBFTkQsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJlYWI2YmNiODliOGI3OWE3ZGNmM2NkY2Q0
OWMwNmQ1YWNkMjEyYjMuLmJiYWJmNWQzMGU3OWY4OGY1YTkwYzM3ODJmOTRlYTI1MGNkM2ZhZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTM2Niw2
ICszNjYsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0T3ZlcnJpZGVMYW5ndWFnZXMoVmVj
dG9yPFN0cmluZz4mJiBsYW5ndWFnZXMpCiB7CiAgICAgbV9jb25maWd1cmF0aW9uLT5zZXRPdmVy
cmlkZUxhbmd1YWdlcyhXVEZNb3ZlKGxhbmd1YWdlcykpOwogCisgICAgTE9HX1dJVEhfU1RSRUFN
KExhbmd1YWdlLAorICAgICAgICBzdHJlYW0gPDwgIldlYlByb2Nlc3NQb29sIGlzIHNldHRpbmcg
T3ZlcnJpZGVMYW5ndWFnZXM6IjsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBsYW5ndWFnZSA6
IGxhbmd1YWdlcykKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiICIgPDwgbGFuZ3VhZ2U7CisgICAg
KTsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKG1fY29uZmlndXJhdGlvbi0+b3ZlcnJpZGVMYW5ndWFnZXMo
KSkpOwogI2lmIFVTRShTT1VQKQogICAgIGZvciAoYXV0byBuZXR3b3JrUHJvY2VzcyA6IE5ldHdv
cmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKSkKQEAgLTc1Miw2ICs3NTcsMTEg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAgIHBhcmFtZXRlcnMuY2FjaGVNb2RlbCA9
IExlZ2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24oKS5jYWNoZU1vZGVsKCk7CiAgICAgcGFy
YW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IGNvbmZpZ3VyYXRpb24oKS5vdmVycmlkZUxhbmd1
YWdlcygpOworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8
ICJXZWJQcm9jZXNzUG9vbCBpcyBpbml0aWFsaXppbmcgYSBuZXcgd2ViIHByb2Nlc3Mgd2l0aCBv
dmVycmlkZUxhbmd1YWdlczoiOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGxhbmd1YWdlIDog
cGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcykKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiICIg
PDwgbGFuZ3VhZ2U7CisgICAgKTsKIAogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVy
ZWRBc0VtcHR5RG9jdW1lbnQgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzRW1w
dHlEb2N1bWVudCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJl
ID0gY29weVRvVmVjdG9yKExlZ2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24oKS5zY2hlbWVz
VG9SZWdpc3RlckFzU2VjdXJlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggMWQ2YjlkYTBkZmEzZDg0OGFhZjVjMjQ1MGVmMzQ4NWI2NDBmOTYy
MS4uOGZlODZjMjhkZDZmZjc1MDYyNzEwMDAwMGJmOWNiNzU5YmU5NGJjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNjIsOSArMzYyLDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAgICAgaWYgKFdlYktpdDo6aXNJbnNwZWN0b3JQcm9j
ZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5hZGQoImluc3BlY3Rvci1wcm9jZXNzIl9zLCAiMSJfcyk7CiAKKyAgICBM
T0coTGFuZ3VhZ2UsICJXZWJQcm9jZXNzUHJveHkgaXMgZ2V0dGluZyBsYXVuY2ggb3B0aW9ucy4i
KTsKICAgICBhdXRvIG92ZXJyaWRlTGFuZ3VhZ2VzID0gbV9wcm9jZXNzUG9vbC0+Y29uZmlndXJh
dGlvbigpLm92ZXJyaWRlTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKG92ZXJyaWRlTGFuZ3VhZ2VzLmlz
RW1wdHkoKSkKKyAgICBpZiAob3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAg
IExPRyhMYW5ndWFnZSwgIm92ZXJyaWRlTGFuZ3VhZ2VzKCkgcmVwb3J0cyBlbXB0eS4gQ2FsbGlu
ZyBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCkiKTsKICAgICAgICAgb3ZlcnJpZGVMYW5ndWFn
ZXMgPSBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCk7CisgICAgfQogICAgIGlmICghb3ZlcnJp
ZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgbGFuZ3VhZ2VT
dHJpbmc7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGVMYW5ndWFnZXMu
c2l6ZSgpOyArK2kpIHsKQEAgLTM3Miw4ICszNzUsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hP
cHQKICAgICAgICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAg
ICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAg
IH0KKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLAorICAgICAgICAgICAgc3RyZWFt
IDw8ICJTZXR0aW5nIFdlYlByb2Nlc3MncyBsYXVuY2ggT3ZlcnJpZGVMYW5ndWFnZXMgdG8gIiA8
PCBsYW5ndWFnZVN0cmluZzsKKyAgICAgICAgKTsKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRy
YUluaXRpYWxpemF0aW9uRGF0YS5hZGQoIk92ZXJyaWRlTGFuZ3VhZ2VzIl9zLCBsYW5ndWFnZVN0
cmluZy50b1N0cmluZygpKTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFn
ZSwgIm92ZXJyaWRlTGFuZ3VhZ2VzIGlzIHN0aWxsIGVtcHR5LiBOb3Qgc2V0dGluZyBXZWJQcm9j
ZXNzJ3MgbGF1bmNoIE92ZXJyaWRlTGFuZ3VhZ2VzLiIpOwogCiAgICAgbGF1bmNoT3B0aW9ucy5u
b25WYWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRD
b2RlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNjE0
N2RkNWNiYTkzN2U5Y2ZhNjc3ODBmOGEwYTlkOGE1NGJiNjc2Li5mMjY3ODEwMmVjNTdmOTU4Yzdj
MmRiZDI0YmZmZTM4NGNhNTFiN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC00NTYsOCArNDU2LDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAg
ICBzZXRDYWNoZU1vZGVsKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAgICBpZiAoIXBhcmFt
ZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmICghcGFyYW1ldGVycy5v
dmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExh
bmd1YWdlLAorICAgICAgICAgICAgc3RyZWFtIDw8ICJXZWIgUHJvY2VzcyBpbml0aWFsaXphdGlv
biBpcyBzZXR0aW5nIG92ZXJyaWRlTGFuZ3VhZ2VzOiI7CisgICAgICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIGxhbmd1YWdlIDogcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcykKKyAgICAgICAg
ICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IGxhbmd1YWdlOworICAgICAgICApOwogICAgICAgICBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMocGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdl
cyk7CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgIldlYiBwcm9jZXNzIGluaXRp
YWxpemF0aW9uIGlzIG5vdCBzZXR0aW5nIG92ZXJyaWRlTGFuZ3VhZ2VzIik7CiAKICAgICBtX3Rl
eHRDaGVja2VyU3RhdGUgPSBwYXJhbWV0ZXJzLnRleHRDaGVja2VyU3RhdGU7CiAKQEAgLTcyNyw2
ICs3MzQsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJv
b2wgdXNlRm9udFNtb290aGluZykKIAogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBjb25zdAogewor
ICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8ICJUaGUgd2Vi
IHByb2Nlc3MncyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZDoiOworICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzKQorICAgICAgICAgICAgc3RyZWFtIDw8
ICIgIiA8PCBsYW5ndWFnZTsKKyAgICApOwogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1
YWdlcyhsYW5ndWFnZXMpOwogfQogCg==
</data>
<flag name="review"
          id="457522"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="457524"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434883</attachid>
            <date>2021-08-03 21:04:27 -0700</date>
            <delta_ts>2021-08-03 23:46:07 -0700</delta_ts>
            <desc>Addressing review comments</desc>
            <filename>bug-228764-20210803210426.patch</filename>
            <type>text/plain</type>
            <size>19532</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4YmI2NjE2MWVkN2Q0MWU0OTZmN2Iy
YTZhODI2YTIwODYwOGY3YmEuLjIxZGI0MGIwNzM2NzdiZmZlNDNmOWJmNGJlMzAwMGY4NDY1ZWRk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
cmUgaGF2ZSBiZWVuIGEgdmFyaWV0eSBvZiBidWcgcmVwb3J0cyBvdmVyIHRoZSBwYXN0IG1vbnRo
cy95ZWFycyBhYm91dCB0aGUgcHJvY2VkdXJlCisgICAgICAgIGJ5IHdoaWNoIHdlIGRldGVybWlu
ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UuIEl0J3MgYWN0dWFsbHkgc29tZXdoYXQgY29udm9sdXRlZCwg
c28gdGhpcworICAgICAgICBwYXRjaCBhZGRzIGEgKGRlYnVnKSBsb2cgY2hhbm5lbCBmb3IgaXQg
c28gd2UgY2FuIGZvbGxvdyB3aGF0IGl0J3MgZG9pbmcgZWFzaWx5LgorCisgICAgICAgIFRvIGVu
YWJsZSBhbGwgdGhlIGxvZ2dpbmcsIHJ1biB0aGVzZSBjb21tYW5kczoKKworICAgICAgICAlIGRl
ZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJD
b3JlTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAg
ICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBXZWJDb3Jl
TG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRz
IHdyaXRlIC1nIFdlYkNvcmVMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3Jp
dGUgLWcgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAv
VXNlcnMvJFVTRVIvTGlicmFyeS9Db250YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QgV2ViQ29yZUxvZ2dpbmcgTGFu
Z3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAvVXNlcnMvJFVTRVIvTGlicmFyeS9Db250
YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBs
ZS5TYWZhcmkucGxpc3QgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKworICAgICAgICAqIHd0Zi9M
YW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChX
VEY6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAg
ICAgICAgKFdURjo6bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyk6CisKIDIwMjEtMDgt
MDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIENoZWNr
ZWRSZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwZmRjNzEzMzE1Mjk2NDYxYmNiMThlZGM5NDI1MGZlNTRlNGQ5
NjUwLi5hNjJhYWQ1MTU0M2UwNGRlYzNiOWZlYTRjY2RhNjQ5ZjQzODU0NWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hhbm5lbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NzY0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAyMS0wOC0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gaXMgbm90IGFjcXVpcmVkIGluIG5ldHdvcmsg
cHJvY2VzcyB3aGVuIG9wZW5pbmcgYSBTUUxpdGUgZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MmU0
NTlkY2YyYWE5NmYwNzVkMzAyMmUyMjE0ZjMyNjc2MzJmNi4uMWExYjU4MWU2MzBlZjdjMjQyODcz
OWY3NTFmMjQwZTY0YzlmZTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0w
MyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBhIExhbmd1YWdlIGxvZyBjaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpzZXRPdmVycmlkZUxhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCBjb25zdCk6
CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCkgZG9l
cyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXgg
Mjc3YzIyYmNmZTYyYWUwYjZmZWNhODlhOGIxNzUxODJhNjA0ZWFjNC4uMTQ2ZDJkYTgwMjdmN2Ez
MTJhYTg3YjI2ZThlMDJkZDUzNzRmYmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTg3LDE5ICsx
ODcsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjaWYgIWRlZmluZWQoREVGSU5FX0xPR19DSEFO
TkVMKQogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5F
TChuYW1lLCBzdWJzeXN0ZW0pIFwKLSAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OworI2Rl
ZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwg
bGV2ZWwsIHN1YnN5c3RlbSkgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkg
PSB7IGluaXRpYWxTdGF0ZSwgI25hbWUsIGxldmVsIH07CiAjZW5kaWYKICNpZiBVU0UoT1NfTE9H
KSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5h
bWUsIHN1YnN5c3RlbSkgXAotICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7
IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0ZW0s
IE9TX0xPR19ERUZBVUxUIH07CisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJ
TFMobmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9nQ2hh
bm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1
YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgogI2lmIFVTRShKT1VSTkFMRCkgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBz
dWJzeXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV1RGTG9nQ2hhbm5l
bCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdU
RkxvZ0xldmVsKTEsIHN1YnN5c3RlbSB9OworI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lU
SF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyBpbml0aWFsU3RhdGUsICNuYW1lLCBsZXZlbCwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNl
bmRpZgogCisvLyBPZmYgYnkgZGVmYXVsdCwgbG9nIGxldmVsIGVycm9yCisjZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RF
VEFJTFMobmFtZSwgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAoV1RGTG9nTGV2ZWwpMSwgc3Vic3lz
dGVtKTsKKwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0Tm90SW1wbGVtZW50ZWRZ
ZXQoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uKTsKIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hh
ciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3Nl
cnRpb24pOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVy
ZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5j
dGlvbiwgY29uc3QgY2hhciogYXNzZXJ0aW9uLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RG
X0FUVFJJQlVURV9QUklOVEYoNSwgNik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5n
dWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5kZXggYTJhYTJmYWFhM2U0
NWMzNzUwZDIzNTVmZjc3MWEzNGY5Zjc1MTgwMi4uZmU1MTc2ZWRmOWE4Zjc5ZDJkNmJjNDEyNGZk
MDg1ZGIxOGU0NTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoQ0YpICYmICFQTEFURk9STShX
SU4pCkBAIC0zNyw2ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisjZGVmaW5lIExPR19D
SEFOTkVMX1BSRUZJWCBMb2cKK0RFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMoTGFuZ3Vh
Z2UsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sIFdURkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5O
RUxfV0VCS0lUX1NVQlNZU1RFTSk7CisKIHN0YXRpYyBMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzTG9jazsKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1Q
cmVmZXJyZWRMYW5ndWFnZXNMb2NrKQogewpAQCAtOTUsOSArOTksMTIgQEAgdm9pZCBsYW5ndWFn
ZURpZENoYW5nZSgpCiBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNl
clByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7Ci0gICAgaWYgKGxh
bmd1YWdlcy5zaXplKCkpCisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpIHsKKyAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgImRlZmF1bHRMYW5ndWFnZSgpIGlzIHJl
dHVybmluZyAiIDw8IGxhbmd1YWdlc1swXSk7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07
CisgICAgfQogCisgICAgTE9HKExhbmd1YWdlLCAiZGVmYXVsdExhbmd1YWdlKCkgaXMgcmV0dXJu
aW5nIHRoZSBlbXB0eSBzdHJpbmcuIik7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAK
QEAgLTEwOSw2ICsxMTYsNyBAQCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKQogCiB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCiB7CisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdl
LCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgYmVpbmcgb3ZlcnJpZGRlbiB0bzogIiA8PCBvdmVy
cmlkZSk7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVMb2NrIH07CiAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCkgPSBv
dmVycmlkZTsKQEAgLTEzMCwxNCArMTM4LDE5IEBAIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5nCiAg
ICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVM
b2NrIH07CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlKCk7Ci0gICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAg
ICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KExhbmd1YWdlLCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgb3ZlcnJpZGRlbjogIiA8PCBvdmVy
cmlkZSk7CiAgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc0xvY2sgfTsKICAgICBhdXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWluaW1pemVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlcygpOwotICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChsYW5n
dWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKSBjYWNoZSBtaXNzIik7CiAgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgfSBlbHNl
CisgICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBo
aXQiKTsKICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5o
CmluZGV4IDJiNTAxMjMxN2RlZWRmMDVjMzhjYzQ5ZjFhYzFkNWM5NGQ5ZmFhYmMuLmJjNTM5ZDVk
NTM3YmQ5YWQ4OTIzN2FjZmQzZDk2NWUzMGY0MzAwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0xhbmd1YWdlLmgKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApAQCAtMzUsNiAr
MzUsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTGFu
Z3VhZ2U7CisKIGVudW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07
CiAKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1z
YWZlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCAzOWVhYzQyMTgwYWY5ZGEzOWFkYmVi
NmQ2MzI4YzRmYTA3YzcxZDkxLi5iMTRhYTRjMWNkNTNhZTExODI0ZTk2MmQ2OTNiMjgzZGVmMjBi
ODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzIsOCArMzIsMTEgQEAKICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNs
dWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjZGVmaW5lIExPR19D
SEFOTkVMX1BSRUZJWCBMb2cKKwogbmFtZXNwYWNlIFdURiB7CiAKICNpZiBQTEFURk9STShNQUMp
CkBAIC04OCw5ICs5MSwyMSBAQCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaQogewogICAgIGF1dG8g
cGxhdGZvcm1MYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdl
cygpKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgc3RyZWFtIDw8
ICJDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSByZXR1cm5lZDoiOworICAgICAgICBm
b3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMu
Z2V0KCkpOyArK2kpCisgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IFN0cmluZyhzdGF0aWNf
Y2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdl
cy5nZXQoKSwgaSkpKTsKKyAgICApOworCiAgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
ID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpCiAgICAgICAgIHBsYXRmb3JtTGFuZ3Vh
Z2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5n
ZXQoKSk7CiAKKyAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsCisgICAgICAgIHN0cmVhbSA8
PCAiTWluaW1pemVkIGxhbmd1YWdlczoiOworICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkg
PCBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOyArK2kpCisgICAgICAg
ICAgICBzdHJlYW0gPDwgIiAiIDw8IFN0cmluZyhzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICAp
OworCiAgICAgQ0ZJbmRleCBwbGF0Zm9ybUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJheUdldENvdW50
KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKICAgICBpZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291
bnQpCiAgICAgICAgIHJldHVybiB7ICJlbiJfcyB9OwpAQCAtMTAwLDYgKzExNSw5IEBAIFZlY3Rv
cjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyBzaG91bGRNaW5pCiAgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRp
Y19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3Vh
Z2VzLmdldCgpLCBpKSk7CiAgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3Vh
Z2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UsIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKSk7CiAgICAg
fQorCisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIkFmdGVyIHBhc3Np
bmcgdGhyb3VnaCBodHRwU3R5bGVMYW5ndWFnZUNvZGU6ICIgPDwgbGFuZ3VhZ2VzKTsKKwogICAg
IHJldHVybiBsYW5ndWFnZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29h
L0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1t
CmluZGV4IGJmYThhNTNlN2Y4MzdmZGI4YTdhOWVhNTA3NTRiYzIyNTY3NzMwNjIuLmM2ZGNkYWRk
YmU4MjM1MDZlYjMwM2U4OGM3ZDhmMWYyNDM0NDI0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFu
Z3VhZ2VDb2NvYS5tbQpAQCAtMzMsNiArMzMsOCBAQAogI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9O
U0xvY2FsZVNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNkZWZpbmUg
TE9HX0NIQU5ORUxfUFJFRklYIExvZworCiBuYW1lc3BhY2UgV1RGIHsKIAogc2l6ZV90IGluZGV4
T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKQpAQCAtNzAs
OCArNzIsMTAgQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYgbGFuZ3Vh
Z2VzKQogewotICAgIGlmICghY2FuTWluaW1pemVMYW5ndWFnZXMoKSkKKyAgICBpZiAoIWNhbk1p
bmltaXplTGFuZ3VhZ2VzKCkpIHsKKyAgICAgICAgTE9HKExhbmd1YWdlLCAiQ291bGQgbm90IG1p
bmltaXplIGxhbmd1YWdlcy4iKTsKICAgICAgICAgcmV0dXJuIGxhbmd1YWdlczsKKyAgICB9CiAK
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KICAgICByZXR1cm4gKF9fYnJpZGdl
IENGQXJyYXlSZWYpW05TTG9jYWxlIG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6KF9f
YnJpZGdlIE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsYW5ndWFnZXNdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oCmluZGV4IDgyMzU4NDNmYTUxMjk1NWM3Y2ViNWVmZGZjZGY5M2RlNGE1OWUyMzIu
Ljc0MmNmNTQ5OWQ0NDY2ZGFhOWVjNjEyMDQ0NGU1YmIwOTViYzhiNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmgKQEAgLTczLDYgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IE0oSW5kZXhlZERCKSBcCiAgICAgTShJbmRleGVkREJPcGVyYXRpb25zKSBcCiAgICAgTShJbnNw
ZWN0b3IpIFwKKyAgICBNKExhbmd1YWdlKSBcCiAgICAgTShMYXllcnMpIFwKICAgICBNKExheW91
dCkgXAogICAgIE0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dn
aW5nLmgKaW5kZXggOTgwYTI1OTExZDBiODhkNTRiYzZmYWQ3ZDBiMjg3NmJjYzc5MmQ4Yi4uMDUx
YmMyNmRkNTc0NGU1N2RiMTU5YWZjYmUxNjFlMTFmOTI5ODQzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9M
b2dnaW5nLmgKQEAgLTY0LDYgKzY0LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShJbmRleGVkREIp
IFwKICAgICBNKEluc3BlY3RvcikgXAogICAgIE0oS2V5SGFuZGxpbmcpIFwKKyAgICBNKExhbmd1
YWdlKSBcCiAgICAgTShMYXllcnMpIFwKICAgICBNKExheW91dCkgXAogICAgIE0oTG9hZGluZykg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCmlu
ZGV4IDhkNGIwODY1Yjk1ZjdlY2QyOTk4ZDgxYTRhYzQ2YmY2ZjliNDI0NWIuLmQzYzFjMzYxYjk1
ODhiZWIxNDY0NmJiMDQwNmU5ZGM1YTgxNzM4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAgLTU0LDEwICs1NCwxOCBAQCBzdGF0aWMg
dm9pZCBzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UoKQogICAgICAgICAgICAgICAgIFtuZXdM
YW5ndWFnZXMgYWRkT2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoQ1N0cmluZzp4cGNfc3RyaW5n
X2dldF9zdHJpbmdfcHRyKHZhbHVlKSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11dOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwg
IkJvb3RzdHJhcCBtZXNzYWdlIGNvbnRhaW5zIE92ZXJyaWRlTGFuZ3VhZ2VzOiI7CisgICAgICAg
ICAgICAgICAgZm9yIChOU1N0cmluZyAqbGFuZ3VhZ2UgaW4gbmV3TGFuZ3VhZ2VzLmdldCgpKQor
ICAgICAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIiAiIDw8IFN0cmluZyhsYW5ndWFnZSk7Cisg
ICAgICAgICAgICApOworCiAgICAgICAgICAgICBbbmV3QXJndW1lbnRzIHNldFZhbHVlOm5ld0xh
bmd1YWdlcy5nZXQoKSBmb3JLZXk6QCJBcHBsZUxhbmd1YWdlcyJdOwogICAgICAgICAgICAgW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Vm9sYXRpbGVEb21haW46bmV3
QXJndW1lbnRzLmdldCgpIGZvck5hbWU6TlNBcmd1bWVudERvbWFpbl07CiAgICAgICAgIH0KLSAg
ICB9CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgIkJvb3RzdHJhcCBtZXNzYWdl
IGRvZXMgbm90IGNvbnRhaW4gT3ZlcnJpZGVMYW5ndWFnZXMiKTsKIH0KIAogc3RhdGljIHZvaWQg
WFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfY29ubmVjdGlvbl90IHBlZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQppbmRleCA5MzZmM2U1MjExMTdlOTAxYzllODhmZmI3ZGFiMTIwNGUxMWM2YTY0Li5l
NDFiNTBmNWRiODAyNTVjNDI5MDc5MTU4NDlkYzA5Y2RlMmIwZmFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KQEAgLTE1MSw2ICsxNTEsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJv
Y2VzcygpCiAKICAgICBhdXRvIGxhbmd1YWdlc0l0ZXJhdG9yID0gbV9sYXVuY2hPcHRpb25zLmV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmZpbmQoIk92ZXJyaWRlTGFuZ3VhZ2VzIik7CiAgICAgaWYg
KGxhbmd1YWdlc0l0ZXJhdG9yICE9IG1fbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9u
RGF0YS5lbmQoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8
PCAiUHJvY2VzcyBMYXVuY2hlciBpcyBjb3B5aW5nIE92ZXJyaWRlTGFuZ3VhZ2VzIGludG8gaW5p
dGlhbGl6YXRpb24gbWVzc2FnZTogIiA8PCBsYW5ndWFnZXNJdGVyYXRvci0+dmFsdWUpOwogICAg
ICAgICBhdXRvIGxhbmd1YWdlcyA9IGFkb3B0T1NPYmplY3QoeHBjX2FycmF5X2NyZWF0ZShudWxs
cHRyLCAwKSk7CiAgICAgICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBsYW5ndWFnZXNJdGVyYXRv
ci0+dmFsdWUuc3BsaXQoJywnKSkKICAgICAgICAgICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKGxh
bmd1YWdlcy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMmVhYjZi
Y2I4OWI4Yjc5YTdkY2YzY2RjZDQ5YzA2ZDVhY2QyMTJiMy4uYzhmNWM2ZTA3ZThjZGM4NGIyZTZm
MmJjNDMwZTg1MzE0NGQwYTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMzY2LDYgKzM2Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE92
ZXJyaWRlTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+JiYgbGFuZ3VhZ2VzKQogewogICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0T3ZlcnJpZGVMYW5ndWFnZXMoV1RGTW92ZShsYW5ndWFnZXMpKTsKIAor
ICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJXZWJQcm9jZXNzUG9vbCBp
cyBzZXR0aW5nIE92ZXJyaWRlTGFuZ3VhZ2VzOiAiIDw8IGxhbmd1YWdlcyk7CiAgICAgc2VuZFRv
QWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpVc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q2hhbmdlZChtX2NvbmZpZ3VyYXRpb24tPm92ZXJyaWRlTGFuZ3VhZ2VzKCkpKTsKICNpZiBVU0Uo
U09VUCkKICAgICBmb3IgKGF1dG8gbmV0d29ya1Byb2Nlc3MgOiBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjphbGxOZXR3b3JrUHJvY2Vzc2VzKCkpCkBAIC03NTIsNiArNzUzLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCBXZWJzaXRlRGEKIAogICAgIHBhcmFtZXRlcnMuY2FjaGVNb2RlbCA9IExlZ2FjeUdsb2JhbFNl
dHRpbmdzOjpzaW5nbGV0b24oKS5jYWNoZU1vZGVsKCk7CiAgICAgcGFyYW1ldGVycy5vdmVycmlk
ZUxhbmd1YWdlcyA9IGNvbmZpZ3VyYXRpb24oKS5vdmVycmlkZUxhbmd1YWdlcygpOworICAgIExP
R19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJXZWJQcm9jZXNzUG9vbCBpcyBpbml0
aWFsaXppbmcgYSBuZXcgd2ViIHByb2Nlc3Mgd2l0aCBvdmVycmlkZUxhbmd1YWdlczogIiA8PCBw
YXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzKTsKIAogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdp
c3RlckFzRW1wdHlEb2N1bWVudCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJl
ZEFzU2VjdXJlID0gY29weVRvVmVjdG9yKExlZ2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24o
KS5zY2hlbWVzVG9SZWdpc3RlckFzU2VjdXJlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMWQ2YjlkYTBkZmEzZDg0OGFhZjVjMjQ1MGVmMzQ4
NWI2NDBmOTYyMS4uMzM1OWIwZDU4OWJmZGIxY2I0YmY5MWYwZTA5YmExYTFmOWY3Y2U3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNjIsOSAr
MzYyLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAgICAgaWYgKFdlYktpdDo6aXNJbnNw
ZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5l
eHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImluc3BlY3Rvci1wcm9jZXNzIl9zLCAiMSJfcyk7
CiAKKyAgICBMT0coTGFuZ3VhZ2UsICJXZWJQcm9jZXNzUHJveHkgaXMgZ2V0dGluZyBsYXVuY2gg
b3B0aW9ucy4iKTsKICAgICBhdXRvIG92ZXJyaWRlTGFuZ3VhZ2VzID0gbV9wcm9jZXNzUG9vbC0+
Y29uZmlndXJhdGlvbigpLm92ZXJyaWRlTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKG92ZXJyaWRlTGFu
Z3VhZ2VzLmlzRW1wdHkoKSkKKyAgICBpZiAob3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7
CisgICAgICAgIExPRyhMYW5ndWFnZSwgIm92ZXJyaWRlTGFuZ3VhZ2VzKCkgcmVwb3J0cyBlbXB0
eS4gQ2FsbGluZyBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCkiKTsKICAgICAgICAgb3ZlcnJp
ZGVMYW5ndWFnZXMgPSBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2VzKCk7CisgICAgfQogICAgIGlm
ICghb3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
bGFuZ3VhZ2VTdHJpbmc7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGVM
YW5ndWFnZXMuc2l6ZSgpOyArK2kpIHsKQEAgLTM3Miw4ICszNzUsMTAgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHQKICAgICAgICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsK
ICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7
CiAgICAgICAgIH0KKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwg
IlNldHRpbmcgV2ViUHJvY2VzcydzIGxhdW5jaCBPdmVycmlkZUxhbmd1YWdlcyB0byAiIDw8IGxh
bmd1YWdlU3RyaW5nKTsKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9u
RGF0YS5hZGQoIk92ZXJyaWRlTGFuZ3VhZ2VzIl9zLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygp
KTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgIm92ZXJyaWRlTGFu
Z3VhZ2VzIGlzIHN0aWxsIGVtcHR5LiBOb3Qgc2V0dGluZyBXZWJQcm9jZXNzJ3MgbGF1bmNoIE92
ZXJyaWRlTGFuZ3VhZ2VzLiIpOwogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVk
Q29kZUFsbG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNjE0N2RkNWNiYTkzN2U5Y2Zh
Njc3ODBmOGEwYTlkOGE1NGJiNjc2Li4wZWE2ZTE4ZWU4MmI4NzcwZmY0MTNkMWZlMjZkYzcxOGU2
MzhkODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NTYs
OCArNDU2LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBzZXRDYWNoZU1vZGVs
KHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAgICBpZiAoIXBhcmFtZXRlcnMub3ZlcnJpZGVM
YW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmICghcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdl
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0g
PDwgIldlYiBQcm9jZXNzIGluaXRpYWxpemF0aW9uIGlzIHNldHRpbmcgb3ZlcnJpZGVMYW5ndWFn
ZXM6ICIgPDwgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyk7CiAgICAgICAgIG92ZXJyaWRl
VXNlclByZWZlcnJlZExhbmd1YWdlcyhwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1YWdlLCAiV2ViIHByb2Nlc3MgaW5pdGlhbGl6YXRp
b24gaXMgbm90IHNldHRpbmcgb3ZlcnJpZGVMYW5ndWFnZXMiKTsKIAogICAgIG1fdGV4dENoZWNr
ZXJTdGF0ZSA9IHBhcmFtZXRlcnMudGV4dENoZWNrZXJTdGF0ZTsKIApAQCAtNzI3LDYgKzczMCw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29sIHVzZUZv
bnRTbW9vdGhpbmcpCiAKIHZvaWQgV2ViUHJvY2Vzczo6dXNlclByZWZlcnJlZExhbmd1YWdlc0No
YW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlcykgY29uc3QKIHsKKyAgICBMT0df
V0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiVGhlIHdlYiBwcm9jZXNzJ3MgdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQ6ICIgPDwgbGFuZ3VhZ2VzKTsKICAgICBvdmVycmlkZVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434889</attachid>
            <date>2021-08-03 23:45:46 -0700</date>
            <delta_ts>2021-08-09 16:20:03 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-228764-20210803234545.patch</filename>
            <type>text/plain</type>
            <size>19141</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4YmI2NjE2MWVkN2Q0MWU0OTZmN2Iy
YTZhODI2YTIwODYwOGY3YmEuLjIxZGI0MGIwNzM2NzdiZmZlNDNmOWJmNGJlMzAwMGY4NDY1ZWRk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
cmUgaGF2ZSBiZWVuIGEgdmFyaWV0eSBvZiBidWcgcmVwb3J0cyBvdmVyIHRoZSBwYXN0IG1vbnRo
cy95ZWFycyBhYm91dCB0aGUgcHJvY2VkdXJlCisgICAgICAgIGJ5IHdoaWNoIHdlIGRldGVybWlu
ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UuIEl0J3MgYWN0dWFsbHkgc29tZXdoYXQgY29udm9sdXRlZCwg
c28gdGhpcworICAgICAgICBwYXRjaCBhZGRzIGEgKGRlYnVnKSBsb2cgY2hhbm5lbCBmb3IgaXQg
c28gd2UgY2FuIGZvbGxvdyB3aGF0IGl0J3MgZG9pbmcgZWFzaWx5LgorCisgICAgICAgIFRvIGVu
YWJsZSBhbGwgdGhlIGxvZ2dpbmcsIHJ1biB0aGVzZSBjb21tYW5kczoKKworICAgICAgICAlIGRl
ZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJD
b3JlTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAg
ICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBXZWJDb3Jl
TG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRz
IHdyaXRlIC1nIFdlYkNvcmVMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3Jp
dGUgLWcgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAv
VXNlcnMvJFVTRVIvTGlicmFyeS9Db250YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QgV2ViQ29yZUxvZ2dpbmcgTGFu
Z3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAvVXNlcnMvJFVTRVIvTGlicmFyeS9Db250
YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBs
ZS5TYWZhcmkucGxpc3QgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKworICAgICAgICAqIHd0Zi9M
YW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChX
VEY6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAg
ICAgICAgKFdURjo6bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyk6CisKIDIwMjEtMDgt
MDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIENoZWNr
ZWRSZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwZmRjNzEzMzE1Mjk2NDYxYmNiMThlZGM5NDI1MGZlNTRlNGQ5
NjUwLi5hNjJhYWQ1MTU0M2UwNGRlYzNiOWZlYTRjY2RhNjQ5ZjQzODU0NWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hhbm5lbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NzY0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAyMS0wOC0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gaXMgbm90IGFjcXVpcmVkIGluIG5ldHdvcmsg
cHJvY2VzcyB3aGVuIG9wZW5pbmcgYSBTUUxpdGUgZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MmU0
NTlkY2YyYWE5NmYwNzVkMzAyMmUyMjE0ZjMyNjc2MzJmNi4uMWExYjU4MWU2MzBlZjdjMjQyODcz
OWY3NTFmMjQwZTY0YzlmZTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0w
MyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBhIExhbmd1YWdlIGxvZyBjaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpzZXRPdmVycmlkZUxhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCBjb25zdCk6
CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCkgZG9l
cyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXgg
Mjc3YzIyYmNmZTYyYWUwYjZmZWNhODlhOGIxNzUxODJhNjA0ZWFjNC4uMTQ2ZDJkYTgwMjdmN2Ez
MTJhYTg3YjI2ZThlMDJkZDUzNzRmYmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTg3LDE5ICsx
ODcsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjaWYgIWRlZmluZWQoREVGSU5FX0xPR19DSEFO
TkVMKQogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5F
TChuYW1lLCBzdWJzeXN0ZW0pIFwKLSAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OworI2Rl
ZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lUSF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwg
bGV2ZWwsIHN1YnN5c3RlbSkgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkg
PSB7IGluaXRpYWxTdGF0ZSwgI25hbWUsIGxldmVsIH07CiAjZW5kaWYKICNpZiBVU0UoT1NfTE9H
KSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5h
bWUsIHN1YnN5c3RlbSkgXAotICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7
IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0ZW0s
IE9TX0xPR19ERUZBVUxUIH07CisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJ
TFMobmFtZSwgaW5pdGlhbFN0YXRlLCBsZXZlbCwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9nQ2hh
bm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgaW5pdGlhbFN0YXRlLCAjbmFtZSwgbGV2ZWwsIHN1
YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgogI2lmIFVTRShKT1VSTkFMRCkgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBz
dWJzeXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgV1RGTG9nQ2hhbm5l
bCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdU
RkxvZ0xldmVsKTEsIHN1YnN5c3RlbSB9OworI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUxfV0lU
SF9ERVRBSUxTKG5hbWUsIGluaXRpYWxTdGF0ZSwgbGV2ZWwsIHN1YnN5c3RlbSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
ID0geyBpbml0aWFsU3RhdGUsICNuYW1lLCBsZXZlbCwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNl
bmRpZgogCisvLyBPZmYgYnkgZGVmYXVsdCwgbG9nIGxldmVsIGVycm9yCisjZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIERFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RF
VEFJTFMobmFtZSwgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAoV1RGTG9nTGV2ZWwpMSwgc3Vic3lz
dGVtKTsKKwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0Tm90SW1wbGVtZW50ZWRZ
ZXQoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uKTsKIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hh
ciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3Nl
cnRpb24pOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVy
ZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5j
dGlvbiwgY29uc3QgY2hhciogYXNzZXJ0aW9uLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RG
X0FUVFJJQlVURV9QUklOVEYoNSwgNik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5n
dWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5kZXggYTJhYTJmYWFhM2U0
NWMzNzUwZDIzNTVmZjc3MWEzNGY5Zjc1MTgwMi4uZmU1MTc2ZWRmOWE4Zjc5ZDJkNmJjNDEyNGZk
MDg1ZGIxOGU0NTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoQ0YpICYmICFQTEFURk9STShX
SU4pCkBAIC0zNyw2ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisjZGVmaW5lIExPR19D
SEFOTkVMX1BSRUZJWCBMb2cKK0RFRklORV9MT0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMoTGFuZ3Vh
Z2UsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sIFdURkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5O
RUxfV0VCS0lUX1NVQlNZU1RFTSk7CisKIHN0YXRpYyBMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzTG9jazsKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1Q
cmVmZXJyZWRMYW5ndWFnZXNMb2NrKQogewpAQCAtOTUsOSArOTksMTIgQEAgdm9pZCBsYW5ndWFn
ZURpZENoYW5nZSgpCiBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNl
clByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7Ci0gICAgaWYgKGxh
bmd1YWdlcy5zaXplKCkpCisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpIHsKKyAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgImRlZmF1bHRMYW5ndWFnZSgpIGlzIHJl
dHVybmluZyAiIDw8IGxhbmd1YWdlc1swXSk7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07
CisgICAgfQogCisgICAgTE9HKExhbmd1YWdlLCAiZGVmYXVsdExhbmd1YWdlKCkgaXMgcmV0dXJu
aW5nIHRoZSBlbXB0eSBzdHJpbmcuIik7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAK
QEAgLTEwOSw2ICsxMTYsNyBAQCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKQogCiB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCiB7CisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdl
LCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgYmVpbmcgb3ZlcnJpZGRlbiB0bzogIiA8PCBvdmVy
cmlkZSk7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVMb2NrIH07CiAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCkgPSBv
dmVycmlkZTsKQEAgLTEzMCwxNCArMTM4LDE5IEBAIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5nCiAg
ICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVM
b2NrIH07CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlKCk7Ci0gICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAg
ICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KExhbmd1YWdlLCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgb3ZlcnJpZGRlbjogIiA8PCBvdmVy
cmlkZSk7CiAgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc0xvY2sgfTsKICAgICBhdXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWluaW1pemVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlcygpOwotICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChsYW5n
dWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKSBjYWNoZSBtaXNzIik7CiAgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgfSBlbHNl
CisgICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBo
aXQiKTsKICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5o
CmluZGV4IDJiNTAxMjMxN2RlZWRmMDVjMzhjYzQ5ZjFhYzFkNWM5NGQ5ZmFhYmMuLmJjNTM5ZDVk
NTM3YmQ5YWQ4OTIzN2FjZmQzZDk2NWUzMGY0MzAwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0xhbmd1YWdlLmgKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApAQCAtMzUsNiAr
MzUsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTGFu
Z3VhZ2U7CisKIGVudW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07
CiAKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1z
YWZlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCAzOWVhYzQyMTgwYWY5ZGEzOWFkYmVi
NmQ2MzI4YzRmYTA3YzcxZDkxLi45NDZhMzZhOTNkYzc1MjI2YWUxNzRmN2UwNWM1MWUxY2IwNmVl
MTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzIsOCArMzIsMTEgQEAKICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNs
dWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjZGVmaW5lIExPR19D
SEFOTkVMX1BSRUZJWCBMb2cKKwogbmFtZXNwYWNlIFdURiB7CiAKICNpZiBQTEFURk9STShNQUMp
CkBAIC04OCw5ICs5MSwxMyBAQCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaQogewogICAgIGF1dG8g
cGxhdGZvcm1MYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdl
cygpKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJDRkxvY2Fs
ZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSByZXR1cm5lZDogIiA8PCByZWludGVycHJldF9jYXN0
PGlkPihjb25zdF9jYXN0PENGTXV0YWJsZUFycmF5UmVmPihwbGF0Zm9ybUxhbmd1YWdlcy5nZXQo
KSkpKTsKKwogICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6WWVzKQogICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IG1pbmltaXplZExh
bmd1YWdlc0Zyb21MYW5ndWFnZXMocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOwogCisgICAgTE9H
X1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIk1pbmltaXplZCBsYW5ndWFnZXM6ICIg
PDwgcmVpbnRlcnByZXRfY2FzdDxpZD4oY29uc3RfY2FzdDxDRk11dGFibGVBcnJheVJlZj4ocGxh
dGZvcm1MYW5ndWFnZXMuZ2V0KCkpKSk7CisKICAgICBDRkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2Vz
Q291bnQgPSBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOwogICAgIGlm
ICghcGxhdGZvcm1MYW5ndWFnZXNDb3VudCkKICAgICAgICAgcmV0dXJuIHsgImVuIl9zIH07CkBA
IC0xMDAsNiArMTA3LDkgQEAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmkKICAgICAgICAgYXV0byBw
bGF0Zm9ybUxhbmd1YWdlID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1
ZUF0SW5kZXgocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCksIGkpKTsKICAgICAgICAgbGFuZ3VhZ2Vz
LmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSwgc2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMpKTsKICAgICB9CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2Us
IHN0cmVhbSA8PCAiQWZ0ZXIgcGFzc2luZyB0aHJvdWdoIGh0dHBTdHlsZUxhbmd1YWdlQ29kZTog
IiA8PCBsYW5ndWFnZXMpOworCiAgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL0xhbmd1YWdlQ29jb2EubW0KaW5kZXggYmZhOGE1M2U3ZjgzN2ZkYjhhN2E5ZWE1MDc1
NGJjMjI1Njc3MzA2Mi4uYzZkY2RhZGRiZTgyMzUwNmViMzAzZTg4YzdkOGYxZjI0MzQ0MjQxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9T
b3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCkBAIC0zMyw2ICszMyw4IEBACiAj
aW1wb3J0IDx3dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAorI2RlZmluZSBMT0dfQ0hBTk5FTF9QUkVGSVggTG9nCisKIG5hbWVzcGFj
ZSBXVEYgewogCiBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0
IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJv
b2wmIGV4YWN0TWF0Y2gpCkBAIC03MCw4ICs3MiwxMCBAQCBib29sIGNhbk1pbmltaXplTGFuZ3Vh
Z2VzKCkKIAogUmV0YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5n
dWFnZXMoQ0ZBcnJheVJlZiBsYW5ndWFnZXMpCiB7Ci0gICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1
YWdlcygpKQorICAgIGlmICghY2FuTWluaW1pemVMYW5ndWFnZXMoKSkgeworICAgICAgICBMT0co
TGFuZ3VhZ2UsICJDb3VsZCBub3QgbWluaW1pemUgbGFuZ3VhZ2VzLiIpOwogICAgICAgICByZXR1
cm4gbGFuZ3VhZ2VzOworICAgIH0KIAogQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJ
TgogICAgIHJldHVybiAoX19icmlkZ2UgQ0ZBcnJheVJlZilbTlNMb2NhbGUgbWluaW1pemVkTGFu
Z3VhZ2VzRnJvbUxhbmd1YWdlczooX19icmlkZ2UgTlNBcnJheTxOU1N0cmluZyAqPiAqKWxhbmd1
YWdlc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggODIzNTg0M2ZhNTEyOTU1Yzdj
ZWI1ZWZkZmNkZjkzZGU0YTU5ZTIzMi4uNzQyY2Y1NDk5ZDQ0NjZkYWE5ZWM2MTIwNDQ0ZTViYjA5
NWJjOGI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNzMsNiArNzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShJbmRleGVkREIpIFwKICAgICBNKEluZGV4ZWREQk9w
ZXJhdGlvbnMpIFwKICAgICBNKEluc3BlY3RvcikgXAorICAgIE0oTGFuZ3VhZ2UpIFwKICAgICBN
KExheWVycykgXAogICAgIE0oTGF5b3V0KSBcCiAgICAgTShGb3JtYXR0aW5nQ29udGV4dExheW91
dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA5ODBhMjU5MTFkMGI4OGQ1NGJjNmZh
ZDdkMGIyODc2YmNjNzkyZDhiLi4wNTFiYzI2ZGQ1NzQ0ZTU3ZGIxNTlhZmNiZTE2MWUxMWY5Mjk4
NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNjQsNiArNjQsNyBAQCBleHRlcm4g
IkMiIHsKICAgICBNKEluZGV4ZWREQikgXAogICAgIE0oSW5zcGVjdG9yKSBcCiAgICAgTShLZXlI
YW5kbGluZykgXAorICAgIE0oTGFuZ3VhZ2UpIFwKICAgICBNKExheWVycykgXAogICAgIE0oTGF5
b3V0KSBcCiAgICAgTShMb2FkaW5nKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZU1haW4ubW0KaW5kZXggOGQ0YjA4NjViOTVmN2VjZDI5OThkODFhNGFjNDZi
ZjZmOWI0MjQ1Yi4uOWJlZGJhMGQ3MTFmMTI4YzJmM2Y4NDcxZTgzMTRiNGRiNzllNWM1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9Y
UENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQpAQCAt
NTQsMTAgKzU0LDE0IEBAIHN0YXRpYyB2b2lkIHNldEFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5jZSgp
CiAgICAgICAgICAgICAgICAgW25ld0xhbmd1YWdlcyBhZGRPYmplY3Q6W05TU3RyaW5nIHN0cmlu
Z1dpdGhDU3RyaW5nOnhwY19zdHJpbmdfZ2V0X3N0cmluZ19wdHIodmFsdWUpIGVuY29kaW5nOk5T
VVRGOFN0cmluZ0VuY29kaW5nXV07CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJl
YW0gPDwgIkJvb3RzdHJhcCBtZXNzYWdlIGNvbnRhaW5zIE92ZXJyaWRlTGFuZ3VhZ2VzOiAiIDw8
IG5ld0xhbmd1YWdlcy5nZXQoKSk7CisKICAgICAgICAgICAgIFtuZXdBcmd1bWVudHMgc2V0VmFs
dWU6bmV3TGFuZ3VhZ2VzLmdldCgpIGZvcktleTpAIkFwcGxlTGFuZ3VhZ2VzIl07CiAgICAgICAg
ICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xhdGlsZURv
bWFpbjpuZXdBcmd1bWVudHMuZ2V0KCkgZm9yTmFtZTpOU0FyZ3VtZW50RG9tYWluXTsKICAgICAg
ICAgfQotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1YWdlLCAiQm9vdHN0cmFw
IG1lc3NhZ2UgZG9lcyBub3QgY29udGFpbiBPdmVycmlkZUxhbmd1YWdlcyIpOwogfQogCiBzdGF0
aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcGVlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCmluZGV4IDkzNmYzZTUyMTExN2U5MDFjOWU4OGZmYjdkYWIxMjA0ZTEx
YzZhNjQuLmU0MWI1MGY1ZGI4MDI1NWM0MjkwNzkxNTg0OWRjMDljZGUyYjBmYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQpAQCAtMTUxLDYgKzE1MSw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjps
YXVuY2hQcm9jZXNzKCkKIAogICAgIGF1dG8gbGFuZ3VhZ2VzSXRlcmF0b3IgPSBtX2xhdW5jaE9w
dGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZmluZCgiT3ZlcnJpZGVMYW5ndWFnZXMiKTsK
ICAgICBpZiAobGFuZ3VhZ2VzSXRlcmF0b3IgIT0gbV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhLmVuZCgpKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwg
c3RyZWFtIDw8ICJQcm9jZXNzIExhdW5jaGVyIGlzIGNvcHlpbmcgT3ZlcnJpZGVMYW5ndWFnZXMg
aW50byBpbml0aWFsaXphdGlvbiBtZXNzYWdlOiAiIDw8IGxhbmd1YWdlc0l0ZXJhdG9yLT52YWx1
ZSk7CiAgICAgICAgIGF1dG8gbGFuZ3VhZ2VzID0gYWRvcHRPU09iamVjdCh4cGNfYXJyYXlfY3Jl
YXRlKG51bGxwdHIsIDApKTsKICAgICAgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IGxhbmd1YWdl
c0l0ZXJhdG9yLT52YWx1ZS5zcGxpdCgnLCcpKQogICAgICAgICAgICAgeHBjX2FycmF5X3NldF9z
dHJpbmcobGFuZ3VhZ2VzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCBsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCAyZWFiNmJjYjg5YjhiNzlhN2RjZjNjZGNkNDljMDZkNWFjZDIxMmIzLi5jOGY1YzZlMDdlOGNk
Yzg0YjJlNmYyYmM0MzBlODUzMTQ0ZDBhODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNjYsNiArMzY2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0T3ZlcnJpZGVMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4mJiBsYW5ndWFnZXMpCiB7CiAg
ICAgbV9jb25maWd1cmF0aW9uLT5zZXRPdmVycmlkZUxhbmd1YWdlcyhXVEZNb3ZlKGxhbmd1YWdl
cykpOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIldlYlByb2Nl
c3NQb29sIGlzIHNldHRpbmcgT3ZlcnJpZGVMYW5ndWFnZXM6ICIgPDwgbGFuZ3VhZ2VzKTsKICAg
ICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNDaGFuZ2VkKG1fY29uZmlndXJhdGlvbi0+b3ZlcnJpZGVMYW5ndWFnZXMoKSkpOwog
I2lmIFVTRShTT1VQKQogICAgIGZvciAoYXV0byBuZXR3b3JrUHJvY2VzcyA6IE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKSkKQEAgLTc1Miw2ICs3NTMsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFyYW1ldGVycy5jYWNoZU1vZGVsID0gTGVnYWN5
R2xvYmFsU2V0dGluZ3M6OnNpbmdsZXRvbigpLmNhY2hlTW9kZWwoKTsKICAgICBwYXJhbWV0ZXJz
Lm92ZXJyaWRlTGFuZ3VhZ2VzID0gY29uZmlndXJhdGlvbigpLm92ZXJyaWRlTGFuZ3VhZ2VzKCk7
CisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIldlYlByb2Nlc3NQb29s
IGlzIGluaXRpYWxpemluZyBhIG5ldyB3ZWIgcHJvY2VzcyB3aXRoIG92ZXJyaWRlTGFuZ3VhZ2Vz
OiAiIDw8IHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMpOwogCiAgICAgcGFyYW1ldGVycy51
cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudCA9IGNvcHlUb1ZlY3RvcihtX3NjaGVt
ZXNUb1JlZ2lzdGVyQXNFbXB0eURvY3VtZW50KTsKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNTZWN1cmUgPSBjb3B5VG9WZWN0b3IoTGVnYWN5R2xvYmFsU2V0dGluZ3M6OnNp
bmdsZXRvbigpLnNjaGVtZXNUb1JlZ2lzdGVyQXNTZWN1cmUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxZDZiOWRhMGRmYTNkODQ4YWFmNWMy
NDUwZWYzNDg1YjY0MGY5NjIxLi4zMzU5YjBkNTg5YmZkYjFjYjRiZjkxZjBlMDliYTFhMWY5Zjdj
ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTM2Miw5ICszNjIsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICBpZiAoV2ViS2l0
Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQogICAgICAgICBsYXVuY2hP
cHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiaW5zcGVjdG9yLXByb2Nlc3MiX3Ms
ICIxIl9zKTsKIAorICAgIExPRyhMYW5ndWFnZSwgIldlYlByb2Nlc3NQcm94eSBpcyBnZXR0aW5n
IGxhdW5jaCBvcHRpb25zLiIpOwogICAgIGF1dG8gb3ZlcnJpZGVMYW5ndWFnZXMgPSBtX3Byb2Nl
c3NQb29sLT5jb25maWd1cmF0aW9uKCkub3ZlcnJpZGVMYW5ndWFnZXMoKTsKLSAgICBpZiAob3Zl
cnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChvdmVycmlkZUxhbmd1YWdlcy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgTE9HKExhbmd1YWdlLCAib3ZlcnJpZGVMYW5ndWFnZXMoKSByZXBv
cnRzIGVtcHR5LiBDYWxsaW5nIHBsYXRmb3JtT3ZlcnJpZGVMYW5ndWFnZXMoKSIpOwogICAgICAg
ICBvdmVycmlkZUxhbmd1YWdlcyA9IHBsYXRmb3JtT3ZlcnJpZGVMYW5ndWFnZXMoKTsKKyAgICB9
CiAgICAgaWYgKCFvdmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBsYW5ndWFnZVN0cmluZzsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBv
dmVycmlkZUxhbmd1YWdlcy5zaXplKCk7ICsraSkgewpAQCAtMzcyLDggKzM3NSwxMCBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5j
aE9wdGlvbnMmIGxhdW5jaE9wdAogICAgICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVu
ZCgnLCcpOwogICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92ZXJyaWRlTGFuZ3Vh
Z2VzW2ldKTsKICAgICAgICAgfQorICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0
cmVhbSA8PCAiU2V0dGluZyBXZWJQcm9jZXNzJ3MgbGF1bmNoIE92ZXJyaWRlTGFuZ3VhZ2VzIHRv
ICIgPDwgbGFuZ3VhZ2VTdHJpbmcpOwogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhLmFkZCgiT3ZlcnJpZGVMYW5ndWFnZXMiX3MsIGxhbmd1YWdlU3RyaW5nLnRv
U3RyaW5nKCkpOwotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1YWdlLCAib3Zl
cnJpZGVMYW5ndWFnZXMgaXMgc3RpbGwgZW1wdHkuIE5vdCBzZXR0aW5nIFdlYlByb2Nlc3MncyBs
YXVuY2ggT3ZlcnJpZGVMYW5ndWFnZXMuIik7CiAKICAgICBsYXVuY2hPcHRpb25zLm5vblZhbGlk
SW5qZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDI2MTQ3ZGQ1Y2Jh
OTM3ZTljZmE2Nzc4MGY4YTBhOWQ4YTU0YmI2NzYuLjBlYTZlMThlZTgyYjg3NzBmZjQxM2QxZmUy
NmRjNzE4ZTYzOGQ4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTQ1Niw4ICs0NTYsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAogICAgIHNldENh
Y2hlTW9kZWwocGFyYW1ldGVycy5jYWNoZU1vZGVsKTsKIAotICAgIGlmICghcGFyYW1ldGVycy5v
dmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgaWYgKCFwYXJhbWV0ZXJzLm92ZXJyaWRl
TGFuZ3VhZ2VzLmlzRW1wdHkoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2Us
IHN0cmVhbSA8PCAiV2ViIFByb2Nlc3MgaW5pdGlhbGl6YXRpb24gaXMgc2V0dGluZyBvdmVycmlk
ZUxhbmd1YWdlczogIiA8PCBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzKTsKICAgICAgICAg
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFn
ZXMpOworICAgIH0gZWxzZQorICAgICAgICBMT0coTGFuZ3VhZ2UsICJXZWIgcHJvY2VzcyBpbml0
aWFsaXphdGlvbiBpcyBub3Qgc2V0dGluZyBvdmVycmlkZUxhbmd1YWdlcyIpOwogCiAgICAgbV90
ZXh0Q2hlY2tlclN0YXRlID0gcGFyYW1ldGVycy50ZXh0Q2hlY2tlclN0YXRlOwogCkBAIC03Mjcs
NiArNzMwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJv
b2wgdXNlRm9udFNtb290aGluZykKIAogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBjb25zdAogewor
ICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJUaGUgd2ViIHByb2Nlc3Mn
cyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZDogIiA8PCBsYW5ndWFnZXMpOwogICAgIG92
ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5ndWFnZXMpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="457542"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435222</attachid>
            <date>2021-08-09 16:19:15 -0700</date>
            <delta_ts>2021-08-09 16:20:35 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-228764-20210809161914.patch</filename>
            <type>text/plain</type>
            <size>16418</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM3YmU3NmFiYmM5ZTVhNjZjMGZjOTZk
M2UzMWEzMzBhOTExODU3MDQuLjJkZWM4ZWU4OGUwYTk1Zjc4MTRjOGEwOWJiZWY5NGE3NDVkODUy
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDgtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
cmUgaGF2ZSBiZWVuIGEgdmFyaWV0eSBvZiBidWcgcmVwb3J0cyBvdmVyIHRoZSBwYXN0IG1vbnRo
cy95ZWFycyBhYm91dCB0aGUgcHJvY2VkdXJlCisgICAgICAgIGJ5IHdoaWNoIHdlIGRldGVybWlu
ZSBuYXZpZ2F0b3IubGFuZ3VhZ2UuIEl0J3MgYWN0dWFsbHkgc29tZXdoYXQgY29udm9sdXRlZCwg
c28gdGhpcworICAgICAgICBwYXRjaCBhZGRzIGEgKGRlYnVnKSBsb2cgY2hhbm5lbCBmb3IgaXQg
c28gd2UgY2FuIGZvbGxvdyB3aGF0IGl0J3MgZG9pbmcgZWFzaWx5LgorCisgICAgICAgIFRvIGVu
YWJsZSBhbGwgdGhlIGxvZ2dpbmcsIHJ1biB0aGVzZSBjb21tYW5kczoKKworICAgICAgICAlIGRl
ZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBXVEZM
b2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3JpdGUgY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50IFdlYktpdDJMb2dnaW5nIExhbmd1YWdlCisgICAgICAg
ICUgZGVmYXVsdHMgd3JpdGUgY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IFdURkxvZ2dpbmcg
TGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQgV2ViS2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAt
ZyBXVEZMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3JpdGUgLWcgV2ViS2l0
MkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBkZWZhdWx0cyB3cml0ZSAvVXNlcnMvJFVTRVIv
TGlicmFyeS9Db250YWluZXJzL2NvbS5hcHBsZS5TYWZhcmkvRGF0YS9MaWJyYXJ5L1ByZWZlcmVu
Y2VzL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QgV1RGTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAl
IGRlZmF1bHRzIHdyaXRlIC9Vc2Vycy8kVVNFUi9MaWJyYXJ5L0NvbnRhaW5lcnMvY29tLmFwcGxl
LlNhZmFyaS9EYXRhL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLlNhZmFyaS5wbGlzdCBX
ZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorCisgICAgICAgICogd3RmL0xhbmd1YWdlLmNwcDoKKyAg
ICAgICAgKFdURjo6ZGVmYXVsdExhbmd1YWdlKToKKyAgICAgICAgKFdURjo6b3ZlcnJpZGVVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdl
cyk6CisgICAgICAgICogd3RmL0xvZ2dpbmcuY3BwOgorICAgICAgICAqIHd0Zi9Mb2dnaW5nLmg6
CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tOgorICAgICAgICAoV1RGOjptaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKToK
KwogMjAyMS0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFN1cHBvcnQgV1RGIGxvZ2dpbmcgY2hhbm5lbHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODhjMmZh
OGEzN2EwZWI3Y2M0NmI3NmYzOGNjOTdiYTQzOTQ3Nzg3My4uNDJjOWYzZmVkY2I1OTQ3YTBmMzQ5
ZGQ0Njg4NDYxMjEzNWJhZTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0w
OSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBhIExhbmd1YWdlIGxvZyBjaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpzZXRPdmVycmlkZUxhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZCBjb25zdCk6
CisKIDIwMjEtMDgtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdXBwb3J0IFdURiBsb2dnaW5nIGNoYW5uZWxzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5k
ZXggYTJhYTJmYWFhM2U0NWMzNzUwZDIzNTVmZjc3MWEzNGY5Zjc1MTgwMi4uYTgzOThlMDU0NzVl
OTI5NzNhNjQzNGM3MDNlMWNjYzYxMDhmNWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMjgsNyAr
MjgsOSBAQAogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQpAQCAtOTUsOSAr
OTcsMTIgQEAgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCiBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAg
IGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyk7Ci0gICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCisgICAgaWYgKGxhbmd1YWdlcy5z
aXplKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgImRl
ZmF1bHRMYW5ndWFnZSgpIGlzIHJldHVybmluZyAiIDw8IGxhbmd1YWdlc1swXSk7CiAgICAgICAg
IHJldHVybiBsYW5ndWFnZXNbMF07CisgICAgfQogCisgICAgTE9HKExhbmd1YWdlLCAiZGVmYXVs
dExhbmd1YWdlKCkgaXMgcmV0dXJuaW5nIHRoZSBlbXB0eSBzdHJpbmcuIik7CiAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTEwOSw2ICsxMTQsNyBAQCBWZWN0b3I8U3RyaW5nPiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQogCiB2b2lkIG92ZXJyaWRlVXNlclByZWZl
cnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCiB7CisgICAgTE9H
X1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUgYmVpbmcgb3Zl
cnJpZGRlbiB0bzogIiA8PCBvdmVycmlkZSk7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrIH07CiAgICAgICAgIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgPSBvdmVycmlkZTsKQEAgLTEzMCwxNCArMTM2LDE5IEBAIFZlY3Rv
cjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
c2hvdWxkTWluaW1pemVMYW5nCiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrIH07CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVy
cmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Ci0gICAgICAgIGlmICghb3ZlcnJp
ZGUuaXNFbXB0eSgpKQorICAgICAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIkxhbmd1YWdlcyBhcmUg
b3ZlcnJpZGRlbjogIiA8PCBvdmVycmlkZSk7CiAgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KG92ZXJyaWRlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIExvY2tlciBsb2NrZXIgeyBj
YWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKICAgICBhdXRvJiBsYW5ndWFn
ZXMgPSBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6
WWVzID8gY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSA6IGNhY2hl
ZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIGlmIChsYW5ndWFnZXMuaXNF
bXB0eSgpKQorICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPRyhMYW5n
dWFnZSwgInVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjYWNoZSBtaXNzIik7CiAgICAgICAgIGxh
bmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyk7CisgICAgfSBlbHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgInVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKSBjYWNoZSBoaXQiKTsKICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KGxhbmd1
YWdlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dpbmcuY3BwIGIvU291
cmNlL1dURi93dGYvTG9nZ2luZy5jcHAKaW5kZXggYWUzZDQ1YjM5OTA2NzM5ZmY0MWNiODViNDRm
MGQyN2RkZGQ2OGM4ZC4uZGM1MDg3OTkxY2U3OWUxZWZkOTg3NTYzZGYwYWRkZGQwMzQ5NDAyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvTG9nZ2luZy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKICNpZiAh
TE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCitERUZJTkVfTE9HX0NIQU5O
RUwoTGFuZ3VhZ2UsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0pOwogREVGSU5FX0xPR19D
SEFOTkVMX1dJVEhfREVUQUlMUyhSZWZDb3VudGVkTGVha3MsIGxvZ0NoYW5uZWxTdGF0ZU9uLCAg
bG9nTGV2ZWxFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSk7CiBERUZJTkVfTE9H
X0NIQU5ORUxfV0lUSF9ERVRBSUxTKFByb2Nlc3MsICAgICAgICAgbG9nQ2hhbm5lbFN0YXRlT24s
ICBsb2dMZXZlbEVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNKTsKIERFRklORV9M
T0dfQ0hBTk5FTF9XSVRIX0RFVEFJTFMoVGhyZWFkaW5nLCAgICAgICBsb2dDaGFubmVsU3RhdGVP
biwgIGxvZ0xldmVsRXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2luZy5oIGIvU291cmNlL1dURi93dGYvTG9nZ2luZy5o
CmluZGV4IGRmOTE5NGZlOTM3MGJjOWFkZWI1MzI1NzFjNzBlOTM4MWFkM2ExNjIuLmM5MTg5OTFm
MTk5NDI2NWRjZjFmZTFiYTgzYzAyNjYwMjQ4NTA2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nLmgKQEAgLTM3LDYgKzM3
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAjZW5kaWYKIAogI2RlZmluZSBXVEZfTE9HX0NIQU5ORUxT
KE0pIFwKKyAgICBNKExhbmd1YWdlKSBcCiAgICAgTShSZWZDb3VudGVkTGVha3MpIFwKICAgICBN
KFByb2Nlc3MpIFwKICAgICBNKFRocmVhZGluZykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApp
bmRleCAzOWVhYzQyMTgwYWY5ZGEzOWFkYmViNmQ2MzI4YzRmYTA3YzcxZDkxLi5iYmMxZWY2ZjRl
ZmUwMzA1OWNlNTUxMzFlMDhjMTAzMzIyNDg4ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNw
cApAQCAtMzAsOCArMzAsMTAgQEAKICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx1bmljb2Rl
L3Vsb2MuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dn
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9zcGkvY2Yv
Q0ZCdW5kbGVTUEkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtODgsOSArOTAs
MTMgQEAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmkKIHsKICAgICBhdXRvIHBsYXRmb3JtTGFuZ3Vh
Z2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKKyAgICBM
T0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiQ0ZMb2NhbGVDb3B5UHJlZmVycmVk
TGFuZ3VhZ2VzKCkgcmV0dXJuZWQ6ICIgPDwgcmVpbnRlcnByZXRfY2FzdDxpZD4oY29uc3RfY2Fz
dDxDRk11dGFibGVBcnJheVJlZj4ocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpKSk7CisKICAgICBp
ZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olll
cykKICAgICAgICAgcGxhdGZvcm1MYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFu
Z3VhZ2VzKHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShM
YW5ndWFnZSwgc3RyZWFtIDw8ICJNaW5pbWl6ZWQgbGFuZ3VhZ2VzOiAiIDw8IHJlaW50ZXJwcmV0
X2Nhc3Q8aWQ+KGNvbnN0X2Nhc3Q8Q0ZNdXRhYmxlQXJyYXlSZWY+KHBsYXRmb3JtTGFuZ3VhZ2Vz
LmdldCgpKSkpOworCiAgICAgQ0ZJbmRleCBwbGF0Zm9ybUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJh
eUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKICAgICBpZiAoIXBsYXRmb3JtTGFu
Z3VhZ2VzQ291bnQpCiAgICAgICAgIHJldHVybiB7ICJlbiJfcyB9OwpAQCAtMTAwLDYgKzEwNiw5
IEBAIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5pCiAgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFn
ZSA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRm
b3JtTGFuZ3VhZ2VzLmdldCgpLCBpKSk7CiAgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0
eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UsIHNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
KSk7CiAgICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIkFm
dGVyIHBhc3NpbmcgdGhyb3VnaCBodHRwU3R5bGVMYW5ndWFnZUNvZGU6ICIgPDwgbGFuZ3VhZ2Vz
KTsKKwogICAgIHJldHVybiBsYW5ndWFnZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFn
ZUNvY29hLm1tCmluZGV4IGJmYThhNTNlN2Y4MzdmZGI4YTdhOWVhNTA3NTRiYzIyNTY3NzMwNjIu
LmM0ZWZiNGE3MmY3ZmZiOTE0NDQxNTA5ZTAyZmRjMjc2ZGU3MWYwOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0IDx3dGYvTGFuZ3VhZ2UuaD4KIAorI2ltcG9ydCA8d3RmL0xvZ2dpbmcuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CkBA
IC03MCw4ICs3MSwxMCBAQCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIAogUmV0YWluUHRy
PENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJlZiBs
YW5ndWFnZXMpCiB7Ci0gICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKQorICAgIGlmICgh
Y2FuTWluaW1pemVMYW5ndWFnZXMoKSkgeworICAgICAgICBMT0coTGFuZ3VhZ2UsICJDb3VsZCBu
b3QgbWluaW1pemUgbGFuZ3VhZ2VzLiIpOwogICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzOworICAg
IH0KIAogQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHJldHVybiAoX19i
cmlkZ2UgQ0ZBcnJheVJlZilbTlNMb2NhbGUgbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdl
czooX19icmlkZ2UgTlNBcnJheTxOU1N0cmluZyAqPiAqKWxhbmd1YWdlc107CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vTG9nZ2luZy5oCmluZGV4IGQ0ZDMyNjVjYzA3YzMxNzdiZGE1MDJhOWQyNDg5NDVhMzY4NGM2
MmEuLjM5MWFkMzE4NjRmZmY5MWZiY2M2MDNjY2I2MzJlMDBhMWE0MmIxOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vTG9nZ2luZy5oCkBAIC02NCw2ICs2NCw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oSW5k
ZXhlZERCKSBcCiAgICAgTShJbnNwZWN0b3IpIFwKICAgICBNKEtleUhhbmRsaW5nKSBcCisgICAg
TShMYW5ndWFnZSkgXAogICAgIE0oTGF5ZXJzKSBcCiAgICAgTShMYXlvdXQpIFwKICAgICBNKExv
YWRpbmcpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFp
bi5tbQppbmRleCA4ZDRiMDg2NWI5NWY3ZWNkMjk5OGQ4MWE0YWM0NmJmNmY5YjQyNDViLi45YmVk
YmEwZDcxMWYxMjhjMmYzZjg0NzFlODMxNGI0ZGI3OWU1YzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCkBAIC01NCwxMCArNTQsMTQgQEAg
c3RhdGljIHZvaWQgc2V0QXBwbGVMYW5ndWFnZXNQcmVmZXJlbmNlKCkKICAgICAgICAgICAgICAg
ICBbbmV3TGFuZ3VhZ2VzIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aENTdHJpbmc6eHBj
X3N0cmluZ19nZXRfc3RyaW5nX3B0cih2YWx1ZSkgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddXTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiQm9vdHN0cmFw
IG1lc3NhZ2UgY29udGFpbnMgT3ZlcnJpZGVMYW5ndWFnZXM6ICIgPDwgbmV3TGFuZ3VhZ2VzLmdl
dCgpKTsKKwogICAgICAgICAgICAgW25ld0FyZ3VtZW50cyBzZXRWYWx1ZTpuZXdMYW5ndWFnZXMu
Z2V0KCkgZm9yS2V5OkAiQXBwbGVMYW5ndWFnZXMiXTsKICAgICAgICAgICAgIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldFZvbGF0aWxlRG9tYWluOm5ld0FyZ3VtZW50
cy5nZXQoKSBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwogICAgICAgICB9Ci0gICAgfQorICAg
IH0gZWxzZQorICAgICAgICBMT0coTGFuZ3VhZ2UsICJCb290c3RyYXAgbWVzc2FnZSBkb2VzIG5v
dCBjb250YWluIE92ZXJyaWRlTGFuZ3VhZ2VzIik7CiB9CiAKIHN0YXRpYyB2b2lkIFhQQ1NlcnZp
Y2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0K
aW5kZXggOTM2ZjNlNTIxMTE3ZTkwMWM5ZTg4ZmZiN2RhYjEyMDRlMTFjNmE2NC4uZjc3NzNmZTZk
ZDAyOTJkMmMzOWNjZmZkYzA4YjUzNjllMDUyMGU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlByb2Nlc3NMYXVu
Y2hlci5oIgogCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSZWFzb25TUEkuaCIKICNp
bXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTE1MSw2ICsxNTIsNyBAQCB2b2lkIFByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICBhdXRvIGxhbmd1YWdlc0l0ZXJhdG9y
ID0gbV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmZpbmQoIk92ZXJyaWRl
TGFuZ3VhZ2VzIik7CiAgICAgaWYgKGxhbmd1YWdlc0l0ZXJhdG9yICE9IG1fbGF1bmNoT3B0aW9u
cy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5lbmQoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiUHJvY2VzcyBMYXVuY2hlciBpcyBjb3B5aW5nIE92ZXJy
aWRlTGFuZ3VhZ2VzIGludG8gaW5pdGlhbGl6YXRpb24gbWVzc2FnZTogIiA8PCBsYW5ndWFnZXNJ
dGVyYXRvci0+dmFsdWUpOwogICAgICAgICBhdXRvIGxhbmd1YWdlcyA9IGFkb3B0T1NPYmplY3Qo
eHBjX2FycmF5X2NyZWF0ZShudWxscHRyLCAwKSk7CiAgICAgICAgIGZvciAoYXV0byYgbGFuZ3Vh
Z2UgOiBsYW5ndWFnZXNJdGVyYXRvci0+dmFsdWUuc3BsaXQoJywnKSkKICAgICAgICAgICAgIHhw
Y19hcnJheV9zZXRfc3RyaW5nKGxhbmd1YWdlcy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgbGFu
Z3VhZ2UudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggNWZlOTI5ZGFjYjQxZGU1MjQwNWEzNGI5ZmIyMzg2ODY3NGJhYzY3YS4u
NjkzY2E2NTUxNWNhNzJkNDEwMzNjNGNlNmMzMDk5ZDJiODdhZTgyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMzY4LDYgKzM2OCw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNldE92ZXJyaWRlTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+JiYgbGFu
Z3VhZ2VzKQogewogICAgIG1fY29uZmlndXJhdGlvbi0+c2V0T3ZlcnJpZGVMYW5ndWFnZXMoV1RG
TW92ZShsYW5ndWFnZXMpKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFt
IDw8ICJXZWJQcm9jZXNzUG9vbCBpcyBzZXR0aW5nIE92ZXJyaWRlTGFuZ3VhZ2VzOiAiIDw8IGxh
bmd1YWdlcyk7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChtX2NvbmZpZ3VyYXRpb24tPm92ZXJyaWRlTGFu
Z3VhZ2VzKCkpKTsKICNpZiBVU0UoU09VUCkKICAgICBmb3IgKGF1dG8gbmV0d29ya1Byb2Nlc3Mg
OiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphbGxOZXR3b3JrUHJvY2Vzc2VzKCkpCkBAIC03NTQsNiAr
NzU1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAgIHBhcmFtZXRlcnMuY2FjaGVN
b2RlbCA9IExlZ2FjeUdsb2JhbFNldHRpbmdzOjpzaW5nbGV0b24oKS5jYWNoZU1vZGVsKCk7CiAg
ICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IGNvbmZpZ3VyYXRpb24oKS5vdmVycmlk
ZUxhbmd1YWdlcygpOworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJX
ZWJQcm9jZXNzUG9vbCBpcyBpbml0aWFsaXppbmcgYSBuZXcgd2ViIHByb2Nlc3Mgd2l0aCBvdmVy
cmlkZUxhbmd1YWdlczogIiA8PCBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzKTsKIAogICAg
IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQgPSBjb3B5VG9W
ZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzRW1wdHlEb2N1bWVudCk7CiAgICAgcGFyYW1ldGVy
cy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlID0gY29weVRvVmVjdG9yKExlZ2FjeUdsb2Jh
bFNldHRpbmdzOjpzaW5nbGV0b24oKS5zY2hlbWVzVG9SZWdpc3RlckFzU2VjdXJlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZmFjYzQyMDVk
ZmI4MjZlYjI4M2E0MDNhNjEyM2NmZmMzNjgyOTVhZC4uNWZhYzI0MTUyNTA0ZDU2NmE3MjhiMjQy
ZWJhZTE2NTY3OTMyZjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0zNjIsOSArMzYyLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRM
YXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAg
ICAgaWYgKFdlYktpdDo6aXNJbnNwZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAg
ICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImluc3BlY3Rv
ci1wcm9jZXNzIl9zLCAiMSJfcyk7CiAKKyAgICBMT0coTGFuZ3VhZ2UsICJXZWJQcm9jZXNzUHJv
eHkgaXMgZ2V0dGluZyBsYXVuY2ggb3B0aW9ucy4iKTsKICAgICBhdXRvIG92ZXJyaWRlTGFuZ3Vh
Z2VzID0gbV9wcm9jZXNzUG9vbC0+Y29uZmlndXJhdGlvbigpLm92ZXJyaWRlTGFuZ3VhZ2VzKCk7
Ci0gICAgaWYgKG92ZXJyaWRlTGFuZ3VhZ2VzLmlzRW1wdHkoKSkKKyAgICBpZiAob3ZlcnJpZGVM
YW5ndWFnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwgIm92ZXJyaWRlTGFu
Z3VhZ2VzKCkgcmVwb3J0cyBlbXB0eS4gQ2FsbGluZyBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3VhZ2Vz
KCkiKTsKICAgICAgICAgb3ZlcnJpZGVMYW5ndWFnZXMgPSBwbGF0Zm9ybU92ZXJyaWRlTGFuZ3Vh
Z2VzKCk7CisgICAgfQogICAgIGlmICghb3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgbGFuZ3VhZ2VTdHJpbmc7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb3ZlcnJpZGVMYW5ndWFnZXMuc2l6ZSgpOyArK2kpIHsKQEAgLTM3Miw4ICsz
NzUsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAgICAgICAgICAgICBsYW5ndWFn
ZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZChv
dmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KKyAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KExhbmd1YWdlLCBzdHJlYW0gPDwgIlNldHRpbmcgV2ViUHJvY2VzcydzIGxhdW5jaCBPdmVycmlk
ZUxhbmd1YWdlcyB0byAiIDw8IGxhbmd1YWdlU3RyaW5nKTsKICAgICAgICAgbGF1bmNoT3B0aW9u
cy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoIk92ZXJyaWRlTGFuZ3VhZ2VzIl9zLCBsYW5n
dWFnZVN0cmluZy50b1N0cmluZygpKTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIExPRyhM
YW5ndWFnZSwgIm92ZXJyaWRlTGFuZ3VhZ2VzIGlzIHN0aWxsIGVtcHR5LiBOb3Qgc2V0dGluZyBX
ZWJQcm9jZXNzJ3MgbGF1bmNoIE92ZXJyaWRlTGFuZ3VhZ2VzLiIpOwogCiAgICAgbGF1bmNoT3B0
aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5q
ZWN0ZWRDb2RlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCBjNmM5ZjgyN2Y2Y2U5ZmQyMWE2MjRkMmFjMGE0OTM2ZGYyMTFmMDU4Li5kMTBmYjBjNjg0ZGU4
MzgwMjc4ZjM2YTkzYzEyOTAyNWUwOWE5MzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC00NTYsOCArNDU2LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAKICAgICBzZXRDYWNoZU1vZGVsKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAgICBpZiAo
IXBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmICghcGFyYW1l
dGVycy5vdmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIldlYiBQcm9jZXNzIGluaXRpYWxpemF0aW9uIGlzIHNl
dHRpbmcgb3ZlcnJpZGVMYW5ndWFnZXM6ICIgPDwgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdl
cyk7CiAgICAgICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhwYXJhbWV0ZXJzLm92
ZXJyaWRlTGFuZ3VhZ2VzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1YWdlLCAiV2Vi
IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gaXMgbm90IHNldHRpbmcgb3ZlcnJpZGVMYW5ndWFnZXMi
KTsKIAogICAgIG1fdGV4dENoZWNrZXJTdGF0ZSA9IHBhcmFtZXRlcnMudGV4dENoZWNrZXJTdGF0
ZTsKIApAQCAtNzI3LDYgKzczMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkVXNlRm9u
dFNtb290aGluZyhib29sIHVzZUZvbnRTbW9vdGhpbmcpCiAKIHZvaWQgV2ViUHJvY2Vzczo6dXNl
clByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdl
cykgY29uc3QKIHsKKyAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiVGhl
IHdlYiBwcm9jZXNzJ3MgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQ6ICIgPDwgbGFuZ3Vh
Z2VzKTsKICAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3VhZ2VzKTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435223</attachid>
            <date>2021-08-09 16:21:05 -0700</date>
            <delta_ts>2021-08-09 16:21:05 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-228764-20210809162105.patch</filename>
            <type>text/plain</type>
            <size>16414</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM3YmU3NmFiYmM5ZTVhNjZjMGZjOTZk
M2UzMWEzMzBhOTExODU3MDQuLmE2OGQzMjA5MTAzM2FiNjE3NWZmNTJjZjRhYjQ4ZmFlZmZiYTE3
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDgtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYSBMYW5ndWFnZSBsb2cgY2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoZXJl
IGhhdmUgYmVlbiBhIHZhcmlldHkgb2YgYnVnIHJlcG9ydHMgb3ZlciB0aGUgcGFzdCBtb250aHMv
eWVhcnMgYWJvdXQgdGhlIHByb2NlZHVyZQorICAgICAgICBieSB3aGljaCB3ZSBkZXRlcm1pbmUg
bmF2aWdhdG9yLmxhbmd1YWdlLiBJdCdzIGFjdHVhbGx5IHNvbWV3aGF0IGNvbnZvbHV0ZWQsIHNv
IHRoaXMKKyAgICAgICAgcGF0Y2ggYWRkcyBhIChkZWJ1ZykgbG9nIGNoYW5uZWwgZm9yIGl0IHNv
IHdlIGNhbiBmb2xsb3cgd2hhdCBpdCdzIGRvaW5nIGVhc2lseS4KKworICAgICAgICBUbyBlbmFi
bGUgYWxsIHRoZSBsb2dnaW5nLCBydW4gdGhlc2UgY29tbWFuZHM6CisKKyAgICAgICAgJSBkZWZh
dWx0cyB3cml0ZSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgV1RGTG9n
Z2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudC5EZXZlbG9wbWVudCBXZWJLaXQyTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAl
IGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBXVEZMb2dnaW5nIExh
bmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3JpdGUgY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50IFdlYktpdDJMb2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3JpdGUgLWcg
V1RGTG9nZ2luZyBMYW5ndWFnZQorICAgICAgICAlIGRlZmF1bHRzIHdyaXRlIC1nIFdlYktpdDJM
b2dnaW5nIExhbmd1YWdlCisgICAgICAgICUgZGVmYXVsdHMgd3JpdGUgL1VzZXJzLyRVU0VSL0xp
YnJhcnkvQ29udGFpbmVycy9jb20uYXBwbGUuU2FmYXJpL0RhdGEvTGlicmFyeS9QcmVmZXJlbmNl
cy9jb20uYXBwbGUuU2FmYXJpLnBsaXN0IFdURkxvZ2dpbmcgTGFuZ3VhZ2UKKyAgICAgICAgJSBk
ZWZhdWx0cyB3cml0ZSAvVXNlcnMvJFVTRVIvTGlicmFyeS9Db250YWluZXJzL2NvbS5hcHBsZS5T
YWZhcmkvRGF0YS9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QgV2Vi
S2l0MkxvZ2dpbmcgTGFuZ3VhZ2UKKworICAgICAgICAqIHd0Zi9MYW5ndWFnZS5jcHA6CisgICAg
ICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChXVEY6Om92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2luZy5oOgor
ICAgICAgICAqIHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2Nv
YS5tbToKKyAgICAgICAgKFdURjo6bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyk6CisK
IDIwMjEtMDgtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdXBwb3J0IFdURiBsb2dnaW5nIGNoYW5uZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4YzJmYThh
MzdhMGViN2NjNDZiNzZmMzhjYzk3YmE0Mzk0Nzc4NzMuLmQ1MWY5MmE4MGY4YmY4OGU2MTBiOWYw
YzAyZGZjMTNjODNjZmIwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDgtMDkg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVh
dGUgYSBMYW5ndWFnZSBsb2cgY2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgICogUGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06Cisg
ICAgICAgIChXZWJLaXQ6OnNldEFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5jZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldE92ZXJyaWRlTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hP
cHRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkIGNvbnN0KToKKwog
MjAyMS0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN1cHBvcnQgV1RGIGxvZ2dpbmcgY2hhbm5lbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBh
MmFhMmZhYWEzZTQ1YzM3NTBkMjM1NWZmNzcxYTM0ZjlmNzUxODAyLi5hODM5OGUwNTQ3NWU5Mjk3
M2E2NDM0YzcwM2UxY2NjNjEwOGY1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5n
dWFnZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0yOCw3ICsyOCw5
IEBACiAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Cisj
aW5jbHVkZSA8d3RmL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKICNpZiBVU0UoQ0YpICYmICFQTEFURk9STShXSU4pCkBAIC05NSw5ICs5Nywx
MiBAQCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoU2hv
dWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgYXV0
byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzKTsKLSAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKKyAgICBpZiAobGFuZ3VhZ2VzLnNpemUo
KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiZGVmYXVs
dExhbmd1YWdlKCkgaXMgcmV0dXJuaW5nICIgPDwgbGFuZ3VhZ2VzWzBdKTsKICAgICAgICAgcmV0
dXJuIGxhbmd1YWdlc1swXTsKKyAgICB9CiAKKyAgICBMT0coTGFuZ3VhZ2UsICJkZWZhdWx0TGFu
Z3VhZ2UoKSBpcyByZXR1cm5pbmcgdGhlIGVtcHR5IHN0cmluZy4iKTsKICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIH0KIApAQCAtMTA5LDYgKzExNCw3IEBAIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpCiAKIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKIHsKKyAgICBMT0dfV0lU
SF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiTGFuZ3VhZ2VzIGFyZSBiZWluZyBvdmVycmlk
ZGVuIHRvOiAiIDw8IG92ZXJyaWRlKTsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBw
cmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKICAgICAgICAgcHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGUoKSA9IG92ZXJyaWRlOwpAQCAtMTMwLDE0ICsxMzYsMTkgQEAgVmVjdG9yPFN0
cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91
bGRNaW5pbWl6ZUxhbmcKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRl
ID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICAgICAgaWYgKCFvdmVycmlkZS5p
c0VtcHR5KCkpCisgICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiTGFuZ3VhZ2VzIGFyZSBvdmVy
cmlkZGVuOiAiIDw8IG92ZXJyaWRlKTsKICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHko
b3ZlcnJpZGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hl
ZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwogICAgIGF1dG8mIGxhbmd1YWdlcyA9
IHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMg
PyBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVs
bFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5
KCkpCisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HKExhbmd1YWdl
LCAidXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNhY2hlIG1pc3MiKTsKICAgICAgICAgbGFuZ3Vh
Z2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1YWdlLCAidXNlclByZWZlcnJlZExh
bmd1YWdlcygpIGNhY2hlIGhpdCIpOwogICAgIHJldHVybiBpc29sYXRlZENvcHkobGFuZ3VhZ2Vz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2luZy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Mb2dnaW5nLmNwcAppbmRleCBhZTNkNDViMzk5MDY3MzlmZjQxY2I4NWI0NGYwZDI3
ZGRkZDY4YzhkLi5kYzUwODc5OTFjZTc5ZTFlZmQ5ODc1NjNkZjBhZGRkZDAzNDk0MDJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9M
b2dnaW5nLmNwcApAQCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKK0RFRklORV9MT0dfQ0hBTk5FTChM
YW5ndWFnZSwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSk7CiBERUZJTkVfTE9HX0NIQU5O
RUxfV0lUSF9ERVRBSUxTKFJlZkNvdW50ZWRMZWFrcywgbG9nQ2hhbm5lbFN0YXRlT24sICBsb2dM
ZXZlbEVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNKTsKIERFRklORV9MT0dfQ0hB
Tk5FTF9XSVRIX0RFVEFJTFMoUHJvY2VzcywgICAgICAgICBsb2dDaGFubmVsU3RhdGVPbiwgIGxv
Z0xldmVsRXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0pOwogREVGSU5FX0xPR19D
SEFOTkVMX1dJVEhfREVUQUlMUyhUaHJlYWRpbmcsICAgICAgIGxvZ0NoYW5uZWxTdGF0ZU9uLCAg
bG9nTGV2ZWxFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnaW5nLmgKaW5k
ZXggZGY5MTk0ZmU5MzcwYmM5YWRlYjUzMjU3MWM3MGU5MzgxYWQzYTE2Mi4uYzkxODk5MWYxOTk0
MjY1ZGNmMWZlMWJhODNjMDI2NjAyNDg1MDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dpbmcuaApAQCAtMzcsNiArMzcsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKICNlbmRpZgogCiAjZGVmaW5lIFdURl9MT0dfQ0hBTk5FTFMoTSkg
XAorICAgIE0oTGFuZ3VhZ2UpIFwKICAgICBNKFJlZkNvdW50ZWRMZWFrcykgXAogICAgIE0oUHJv
Y2VzcykgXAogICAgIE0oVGhyZWFkaW5nKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9j
Zi9MYW5ndWFnZUNGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCmluZGV4
IDM5ZWFjNDIxODBhZjlkYTM5YWRiZWI2ZDYzMjhjNGZhMDdjNzFkOTEuLmJiYzFlZjZmNGVmZTAz
MDU5Y2U1NTEzMWUwOGMxMDMzMjI0ODhlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nm
L0xhbmd1YWdlQ0YuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCkBA
IC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHVuaWNvZGUvdWxv
Yy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dpbmcu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1
bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC04OCw5ICs5MCwxMyBA
QCBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaQogewogICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZXMg
PSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKIAorICAgIExPR19X
SVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5n
dWFnZXMoKSByZXR1cm5lZDogIiA8PCByZWludGVycHJldF9jYXN0PGlkPihjb25zdF9jYXN0PENG
TXV0YWJsZUFycmF5UmVmPihwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSkpKTsKKwogICAgIGlmIChz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKQog
ICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFn
ZXMocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1
YWdlLCBzdHJlYW0gPDwgIk1pbmltaXplZCBsYW5ndWFnZXM6ICIgPDwgcmVpbnRlcnByZXRfY2Fz
dDxpZD4oY29uc3RfY2FzdDxDRk11dGFibGVBcnJheVJlZj4ocGxhdGZvcm1MYW5ndWFnZXMuZ2V0
KCkpKSk7CisKICAgICBDRkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0
Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOwogICAgIGlmICghcGxhdGZvcm1MYW5ndWFn
ZXNDb3VudCkKICAgICAgICAgcmV0dXJuIHsgImVuIl9zIH07CkBAIC0xMDAsNiArMTA2LDkgQEAg
VmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzIHNob3VsZE1pbmkKICAgICAgICAgYXV0byBwbGF0Zm9ybUxhbmd1YWdlID0g
c3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgocGxhdGZvcm1M
YW5ndWFnZXMuZ2V0KCksIGkpKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVM
YW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSwgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpKTsK
ICAgICB9CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oTGFuZ3VhZ2UsIHN0cmVhbSA8PCAiQWZ0ZXIg
cGFzc2luZyB0aHJvdWdoIGh0dHBTdHlsZUxhbmd1YWdlQ29kZTogIiA8PCBsYW5ndWFnZXMpOwor
CiAgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29j
b2EubW0KaW5kZXggYmZhOGE1M2U3ZjgzN2ZkYjhhN2E5ZWE1MDc1NGJjMjI1Njc3MzA2Mi4uYzRl
ZmI0YTcyZjdmZmI5MTQ0NDE1MDllMDJmZGMyNzZkZTcxZjA5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9MYW5ndWFnZUNvY29hLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgPHd0Zi9MYW5ndWFnZS5oPgogCisjaW1wb3J0IDx3dGYvTG9nZ2luZy5oPgogI2lt
cG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAj
aW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KQEAgLTcw
LDggKzcxLDEwIEBAIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKQogCiBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhDRkFycmF5UmVmIGxhbmd1
YWdlcykKIHsKLSAgICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCisgICAgaWYgKCFjYW5N
aW5pbWl6ZUxhbmd1YWdlcygpKSB7CisgICAgICAgIExPRyhMYW5ndWFnZSwgIkNvdWxkIG5vdCBt
aW5pbWl6ZSBsYW5ndWFnZXMuIik7CiAgICAgICAgIHJldHVybiBsYW5ndWFnZXM7CisgICAgfQog
CiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgcmV0dXJuIChfX2JyaWRn
ZSBDRkFycmF5UmVmKVtOU0xvY2FsZSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihf
X2JyaWRnZSBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3VhZ2VzXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9M
b2dnaW5nLmgKaW5kZXggZDRkMzI2NWNjMDdjMzE3N2JkYTUwMmE5ZDI0ODk0NWEzNjg0YzYyYS4u
MzkxYWQzMTg2NGZmZjkxZmJjYzYwM2NjYjYzMmUwMGExYTQyYjE4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9Mb2dnaW5nLmgKQEAgLTY0LDYgKzY0LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShJbmRleGVk
REIpIFwKICAgICBNKEluc3BlY3RvcikgXAogICAgIE0oS2V5SGFuZGxpbmcpIFwKKyAgICBNKExh
bmd1YWdlKSBcCiAgICAgTShMYXllcnMpIFwKICAgICBNKExheW91dCkgXAogICAgIE0oTG9hZGlu
ZykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
CmluZGV4IDhkNGIwODY1Yjk1ZjdlY2QyOTk4ZDgxYTRhYzQ2YmY2ZjliNDI0NWIuLjliZWRiYTBk
NzExZjEyOGMyZjNmODQ3MWU4MzE0YjRkYjc5ZTVjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNl
TWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAgLTU0LDEwICs1NCwxNCBAQCBzdGF0
aWMgdm9pZCBzZXRBcHBsZUxhbmd1YWdlc1ByZWZlcmVuY2UoKQogICAgICAgICAgICAgICAgIFtu
ZXdMYW5ndWFnZXMgYWRkT2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoQ1N0cmluZzp4cGNfc3Ry
aW5nX2dldF9zdHJpbmdfcHRyKHZhbHVlKSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11d
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJCb290c3RyYXAgbWVz
c2FnZSBjb250YWlucyBPdmVycmlkZUxhbmd1YWdlczogIiA8PCBuZXdMYW5ndWFnZXMuZ2V0KCkp
OworCiAgICAgICAgICAgICBbbmV3QXJndW1lbnRzIHNldFZhbHVlOm5ld0xhbmd1YWdlcy5nZXQo
KSBmb3JLZXk6QCJBcHBsZUxhbmd1YWdlcyJdOwogICAgICAgICAgICAgW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Vm9sYXRpbGVEb21haW46bmV3QXJndW1lbnRzLmdl
dCgpIGZvck5hbWU6TlNBcmd1bWVudERvbWFpbl07CiAgICAgICAgIH0KLSAgICB9CisgICAgfSBl
bHNlCisgICAgICAgIExPRyhMYW5ndWFnZSwgIkJvb3RzdHJhcCBtZXNzYWdlIGRvZXMgbm90IGNv
bnRhaW4gT3ZlcnJpZGVMYW5ndWFnZXMiKTsKIH0KIAogc3RhdGljIHZvaWQgWFBDU2VydmljZUV2
ZW50SGFuZGxlcih4cGNfY29ubmVjdGlvbl90IHBlZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCA5MzZmM2U1MjExMTdlOTAxYzllODhmZmI3ZGFiMTIwNGUxMWM2YTY0Li5mNzc3M2ZlNmRkMDI5
MmQyYzM5Y2NmZmRjMDhiNTM2OWUwNTIwZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI2
LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUHJvY2Vzc0xhdW5jaGVy
LmgiCiAKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlJlYXNvblNQSS5oIgogI2ltcG9y
dCAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtMTUxLDYgKzE1Miw3IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIGF1dG8gbGFuZ3VhZ2VzSXRlcmF0b3IgPSBt
X2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZmluZCgiT3ZlcnJpZGVMYW5n
dWFnZXMiKTsKICAgICBpZiAobGFuZ3VhZ2VzSXRlcmF0b3IgIT0gbV9sYXVuY2hPcHRpb25zLmV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmVuZCgpKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShM
YW5ndWFnZSwgc3RyZWFtIDw8ICJQcm9jZXNzIExhdW5jaGVyIGlzIGNvcHlpbmcgT3ZlcnJpZGVM
YW5ndWFnZXMgaW50byBpbml0aWFsaXphdGlvbiBtZXNzYWdlOiAiIDw8IGxhbmd1YWdlc0l0ZXJh
dG9yLT52YWx1ZSk7CiAgICAgICAgIGF1dG8gbGFuZ3VhZ2VzID0gYWRvcHRPU09iamVjdCh4cGNf
YXJyYXlfY3JlYXRlKG51bGxwdHIsIDApKTsKICAgICAgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6
IGxhbmd1YWdlc0l0ZXJhdG9yLT52YWx1ZS5zcGxpdCgnLCcpKQogICAgICAgICAgICAgeHBjX2Fy
cmF5X3NldF9zdHJpbmcobGFuZ3VhZ2VzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCBsYW5ndWFn
ZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCA1ZmU5MjlkYWNiNDFkZTUyNDA1YTM0YjlmYjIzODY4Njc0YmFjNjdhLi42OTNj
YTY1NTE1Y2E3MmQ0MTAzM2M0Y2U2YzMwOTlkMmI4N2FlODJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNjgsNiArMzY4LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6c2V0T3ZlcnJpZGVMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4mJiBsYW5ndWFn
ZXMpCiB7CiAgICAgbV9jb25maWd1cmF0aW9uLT5zZXRPdmVycmlkZUxhbmd1YWdlcyhXVEZNb3Zl
KGxhbmd1YWdlcykpOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwg
IldlYlByb2Nlc3NQb29sIGlzIHNldHRpbmcgT3ZlcnJpZGVMYW5ndWFnZXM6ICIgPDwgbGFuZ3Vh
Z2VzKTsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKG1fY29uZmlndXJhdGlvbi0+b3ZlcnJpZGVMYW5ndWFn
ZXMoKSkpOwogI2lmIFVTRShTT1VQKQogICAgIGZvciAoYXV0byBuZXR3b3JrUHJvY2VzcyA6IE5l
dHdvcmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKSkKQEAgLTc1NCw2ICs3NTUs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFyYW1ldGVycy5jYWNoZU1vZGVs
ID0gTGVnYWN5R2xvYmFsU2V0dGluZ3M6OnNpbmdsZXRvbigpLmNhY2hlTW9kZWwoKTsKICAgICBw
YXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzID0gY29uZmlndXJhdGlvbigpLm92ZXJyaWRlTGFu
Z3VhZ2VzKCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKExhbmd1YWdlLCBzdHJlYW0gPDwgIldlYlBy
b2Nlc3NQb29sIGlzIGluaXRpYWxpemluZyBhIG5ldyB3ZWIgcHJvY2VzcyB3aXRoIG92ZXJyaWRl
TGFuZ3VhZ2VzOiAiIDw8IHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMpOwogCiAgICAgcGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudCA9IGNvcHlUb1ZlY3Rv
cihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNFbXB0eURvY3VtZW50KTsKICAgICBwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUgPSBjb3B5VG9WZWN0b3IoTGVnYWN5R2xvYmFsU2V0
dGluZ3M6OnNpbmdsZXRvbigpLnNjaGVtZXNUb1JlZ2lzdGVyQXNTZWN1cmUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmYWNjNDIwNWRmYjgy
NmViMjgzYTQwM2E2MTIzY2ZmYzM2ODI5NWFkLi41ZmFjMjQxNTI1MDRkNTY2YTcyOGIyNDJlYmFl
MTY1Njc5MzJmNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTM2Miw5ICszNjIsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICBp
ZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQogICAgICAg
ICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiaW5zcGVjdG9yLXBy
b2Nlc3MiX3MsICIxIl9zKTsKIAorICAgIExPRyhMYW5ndWFnZSwgIldlYlByb2Nlc3NQcm94eSBp
cyBnZXR0aW5nIGxhdW5jaCBvcHRpb25zLiIpOwogICAgIGF1dG8gb3ZlcnJpZGVMYW5ndWFnZXMg
PSBtX3Byb2Nlc3NQb29sLT5jb25maWd1cmF0aW9uKCkub3ZlcnJpZGVMYW5ndWFnZXMoKTsKLSAg
ICBpZiAob3ZlcnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgIGlmIChvdmVycmlkZUxhbmd1
YWdlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgTE9HKExhbmd1YWdlLCAib3ZlcnJpZGVMYW5ndWFn
ZXMoKSByZXBvcnRzIGVtcHR5LiBDYWxsaW5nIHBsYXRmb3JtT3ZlcnJpZGVMYW5ndWFnZXMoKSIp
OwogICAgICAgICBvdmVycmlkZUxhbmd1YWdlcyA9IHBsYXRmb3JtT3ZlcnJpZGVMYW5ndWFnZXMo
KTsKKyAgICB9CiAgICAgaWYgKCFvdmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBsYW5ndWFnZVN0cmluZzsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBvdmVycmlkZUxhbmd1YWdlcy5zaXplKCk7ICsraSkgewpAQCAtMzcyLDggKzM3NSwx
MCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNo
ZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdAogICAgICAgICAgICAgICAgIGxhbmd1YWdlU3Ry
aW5nLmFwcGVuZCgnLCcpOwogICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92ZXJy
aWRlTGFuZ3VhZ2VzW2ldKTsKICAgICAgICAgfQorICAgICAgICBMT0dfV0lUSF9TVFJFQU0oTGFu
Z3VhZ2UsIHN0cmVhbSA8PCAiU2V0dGluZyBXZWJQcm9jZXNzJ3MgbGF1bmNoIE92ZXJyaWRlTGFu
Z3VhZ2VzIHRvICIgPDwgbGFuZ3VhZ2VTdHJpbmcpOwogICAgICAgICBsYXVuY2hPcHRpb25zLmV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiT3ZlcnJpZGVMYW5ndWFnZXMiX3MsIGxhbmd1YWdl
U3RyaW5nLnRvU3RyaW5nKCkpOwotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKExhbmd1
YWdlLCAib3ZlcnJpZGVMYW5ndWFnZXMgaXMgc3RpbGwgZW1wdHkuIE5vdCBzZXR0aW5nIFdlYlBy
b2Nlc3MncyBsYXVuY2ggT3ZlcnJpZGVMYW5ndWFnZXMuIik7CiAKICAgICBsYXVuY2hPcHRpb25z
Lm5vblZhbGlkSW5qZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3Rl
ZENvZGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGM2
YzlmODI3ZjZjZTlmZDIxYTYyNGQyYWMwYTQ5MzZkZjIxMWYwNTguLmQxMGZiMGM2ODRkZTgzODAy
NzhmMzZhOTNjMTI5MDI1ZTA5YTkzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQ1Niw4ICs0NTYsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAog
ICAgIHNldENhY2hlTW9kZWwocGFyYW1ldGVycy5jYWNoZU1vZGVsKTsKIAotICAgIGlmICghcGFy
YW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgaWYgKCFwYXJhbWV0ZXJz
Lm92ZXJyaWRlTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0o
TGFuZ3VhZ2UsIHN0cmVhbSA8PCAiV2ViIFByb2Nlc3MgaW5pdGlhbGl6YXRpb24gaXMgc2V0dGlu
ZyBvdmVycmlkZUxhbmd1YWdlczogIiA8PCBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzKTsK
ICAgICAgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBhcmFtZXRlcnMub3ZlcnJp
ZGVMYW5ndWFnZXMpOworICAgIH0gZWxzZQorICAgICAgICBMT0coTGFuZ3VhZ2UsICJXZWIgcHJv
Y2VzcyBpbml0aWFsaXphdGlvbiBpcyBub3Qgc2V0dGluZyBvdmVycmlkZUxhbmd1YWdlcyIpOwog
CiAgICAgbV90ZXh0Q2hlY2tlclN0YXRlID0gcGFyYW1ldGVycy50ZXh0Q2hlY2tlclN0YXRlOwog
CkBAIC03MjcsNiArNzMwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRTaG91bGRVc2VGb250U21v
b3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykKIAogdm9pZCBXZWJQcm9jZXNzOjp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKSBj
b25zdAogeworICAgIExPR19XSVRIX1NUUkVBTShMYW5ndWFnZSwgc3RyZWFtIDw8ICJUaGUgd2Vi
IHByb2Nlc3MncyB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZDogIiA8PCBsYW5ndWFnZXMp
OwogICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhsYW5ndWFnZXMpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>