<?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>188367</bug_id>
          
          <creation_ts>2018-08-06 17:14:26 -0700</creation_ts>
          <short_desc>Add SPI for launching WebContent process with pre-linked injected bundle</short_desc>
          <delta_ts>2018-08-07 14:05:56 -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>WebKit2</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Richards">benton_richards</reporter>
          <assigned_to name="Ben Richards">benton_richards</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benton_richards</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448305</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Richards">benton_richards</who>
    <bug_when>2018-08-06 17:14:26 -0700</bug_when>
    <thetext>Adding this SPI will allow other applications to create &quot;stub&quot; WebContent processes that are hard linked to an injected bundle. This makes the dlopen call in InjectedBundle::initialize free.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448340</commentid>
    <comment_count>1</comment_count>
      <attachid>346679</attachid>
    <who name="Ben Richards">benton_richards</who>
    <bug_when>2018-08-06 20:14:50 -0700</bug_when>
    <thetext>Created attachment 346679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448345</commentid>
    <comment_count>2</comment_count>
      <attachid>346679</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-06 20:31:01 -0700</bug_when>
    <thetext>Comment on attachment 346679
Patch

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

&gt; Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h:154
&gt; +    const WTF::String&amp; optimizedWebProcessName() const { return m_optimizedWebProcessName; }
&gt; +    void setOptimizedWebProcessName(const WTF::String&amp; optimizedWebProcessName) { m_optimizedWebProcessName = optimizedWebProcessName; }

I think calling this &quot;optimized web process name&quot; is confusing because we&apos;re not changing the process name per se.
What we&apos;re modifying is the XPC service we&apos;re launching.
As we discussed in person, setAlternateWebContentServiceBundleIdentifier / setCustomWebContentServiceBundleIdentifier sounds better to me.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:166
&gt; +    if (!m_processPool-&gt;optimizedWebProcessName().isNull())
&gt; +        launchOptions.extraInitializationData.add(&quot;OptimizedWebProcessName&quot;, m_processPool-&gt;optimizedWebProcessName());

It&apos;s a bit weird to put this on extraInitializationData since that&apos;s what gets sent to web content process as a parameter.
Why don&apos;t we just add a new field to launchOptions as we discussed in person?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448353</commentid>
    <comment_count>3</comment_count>
      <attachid>346683</attachid>
    <who name="Ben Richards">benton_richards</who>
    <bug_when>2018-08-06 21:31:25 -0700</bug_when>
    <thetext>Created attachment 346683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448474</commentid>
    <comment_count>4</comment_count>
      <attachid>346683</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-07 10:11:56 -0700</bug_when>
    <thetext>Comment on attachment 346683
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:163
&gt; +using namespace WebKit;

This seems unnecessary.  Just use WebKit:: in one place.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:166
&gt; +        launchOptions.customWebContentServiceBundleIdentifier = m_processPool-&gt;customWebContentServiceBundleIdentifier().ascii();

https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070 says the bundle identifier must be ascii.  Could we use utf8 just in case, though?  There&apos;s no reason not to.
Or maybe we could just add a &quot;contains only ascii&quot; check to our &quot;Guard against API misuse&quot; check above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448497</commentid>
    <comment_count>5</comment_count>
      <attachid>346716</attachid>
    <who name="Ben Richards">benton_richards</who>
    <bug_when>2018-08-07 11:11:26 -0700</bug_when>
    <thetext>Created attachment 346716
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448498</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Richards">benton_richards</who>
    <bug_when>2018-08-07 11:12:13 -0700</bug_when>
    <thetext>Let&apos;s let EWS run before cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448565</commentid>
    <comment_count>7</comment_count>
      <attachid>346716</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-07 14:04:49 -0700</bug_when>
    <thetext>Comment on attachment 346716
Patch for landing

Clearing flags on attachment: 346716

Committed r234668: &lt;https://trac.webkit.org/changeset/234668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448566</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-07 14:04:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448569</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-07 14:05:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/43019446&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346679</attachid>
            <date>2018-08-06 20:14:50 -0700</date>
            <delta_ts>2018-08-06 21:31:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188367-20180806201450.patch</filename>
            <type>text/plain</type>
            <size>16436</size>
            <attacher name="Ben Richards">benton_richards</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY0NTlmOGRiYzU5MmY2NjVi
ZWEzZmFhNWJjNjRiNjVjZmVlZGZiNDUuLjlhZTFkYjAwYTRiOGUzYTY0Mjk3ODBjNDVlOGU1ZjQ0
ODAwYzUzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTgtMDgtMDYgIEJlbiBSaWNo
YXJkcyAgPGJlbnRvbl9yaWNoYXJkc0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFNQSSBmb3Ig
bGF1bmNoaW5nIFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHByZS1saW5rZWQgaW5qZWN0ZWQgYnVu
ZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgz
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBTUEkgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIHNldCBhbiAib3B0aW1pemVkIFdlYlByb2Nl
c3MgbmFtZSIgd2hpY2ggd2lsbCBiZSBsYXVuY2hlZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFdl
YlByb2Nlc3MuCisgICAgICAgIFRoZSBvcHRpbWl6ZWQgV2ViUHJvY2VzcyBuYW1lIHNob3VsZCBi
ZSB0aGUgYnVuZGxlIGlkZW50aWZpZXIgZm9yIGFuIFhQQyBzZXJ2aWNlIHRoYXQgY2FsbHMgW1dL
UHJvY2Vzc1Bvb2wgX3dlYkNvbnRlbnRQcm9jZXNzWFBDTWFpbl0uCisgICAgICAgIFRoZSBuZXcg
WFBDIHNlcnZpY2Ugc2hvdWxkIGJlIGhhcmQgbGlua2VkIHRvIHRoZSBhcHBsaWNhdGlvbidzIGlu
amVjdGVkIGJ1bmRsZSBpbiBvcmRlciB0byByZWNlaXZlIHRoZSBpbnRlbmRlZCBwZXJmb3JtYW5j
ZSBiZW5lZml0LgorCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAg
KFdlYktpdDo6WFBDU2VydmljZU1haW4pOgorICAgICAgICAobWFpbik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dFNldE9wdGltaXpl
ZFdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfd2ViQ29udGVudFByb2Nlc3NY
UENNYWluXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBvcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZV0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gc2V0T3B0aW1pemVkV2ViUHJvY2Vzc05hbWU6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNl
dE9wdGltaXplZFdlYlByb2Nlc3NOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOC0wOC0wMyAgQmVuIFJp
Y2hhcmRzICA8YmVudG9uX3JpY2hhcmRzQGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQg
Y2FjaGUgdGhlIGNvbXBpbGVkIHNhbmRib3ggcHJvZmlsZSBpbiBhIGRhdGEgdmF1bHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAppbmRl
eCBmNWU5NTY0ODQxOGUwMmU1ZWI3MjY0NzMzY2VjMmJhMzJhMzRmYjFhLi5mN2NjYmUyY2M0N2Uy
NDY0OTkwYjllMDY2Y2JhMWYzZjAzODNkMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC0xMTcsNiArMTE3LDggQEAgdm9p
ZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29u
bmVjdGlvbiwgeHBjX29iamVjdF8KICAgICBYUENTZXJ2aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5p
dGlhbGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAoraW50IFhQQ1NlcnZpY2VNYWluKCk7CisKIHZvaWQg
WFBDU2VydmljZUV4aXQoT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiYmIHByaW9yaXR5Qm9vc3RN
ZXNzYWdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VN
YWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBD
U2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQppbmRleCA1OTE5YTMyODM2ZWNhOTE2ZjRkYjgzMWNi
NjczMTllMzkxODNkYmYzLi5jZDQ0N2U2OWFiMGYyZTIxZTU2OWY2YTVkOWE4MTY5Njk0MGY4MzY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21h
Yy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAg
LTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
Q29jb2EuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCiAKICNpbXBvcnQgPENv
cmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIu
aD4KQEAgLTkxLDExICs5Miw3IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIo
eHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQogICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShwZWVyKTsK
IH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0K
LWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCBYUENTZXJ2aWNlTWFpbigpCiB7
CiAjaWYgZGVmaW5lZChfX2kzODZfXykKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgb25seSBi
ZSBkb25lIGZvciB0aGUgMzItYml0IHBsdWctaW4gWFBDIHNlcnZpY2Ugc28gd2UgcmVseSBvbiB0
aGUgZmFjdCB0aGF0CkBAIC0xNjAsMyArMTU3LDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKICAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKICAgICByZXR1
cm4gMDsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gWFBD
U2VydmljZU1haW4oKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBmMmQ1YzYxMTg4ODdjNTIx
NGQ0YjRhNmRlNTNmYWQ0OTg2Yjc0NDUwLi5jYmZjMDI3MGEwNTMzYzc4N2Y3OGJhM2IxZjEyMThk
MWU0NmVhZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0xNTAsNiArMTUwLDkgQEAgcHVibGlj
OgogICAgIGJvb2wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcjsgfQogICAgIHZvaWQg
c2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihib29sIHN3YXBzKSB7IG1fcHJv
Y2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciA9IHN3YXBzOyB9CiAKKyAgICBjb25zdCBX
VEY6OlN0cmluZyYgb3B0aW1pemVkV2ViUHJvY2Vzc05hbWUoKSBjb25zdCB7IHJldHVybiBtX29w
dGltaXplZFdlYlByb2Nlc3NOYW1lOyB9CisgICAgdm9pZCBzZXRPcHRpbWl6ZWRXZWJQcm9jZXNz
TmFtZShjb25zdCBXVEY6OlN0cmluZyYgb3B0aW1pemVkV2ViUHJvY2Vzc05hbWUpIHsgbV9vcHRp
bWl6ZWRXZWJQcm9jZXNzTmFtZSA9IG9wdGltaXplZFdlYlByb2Nlc3NOYW1lOyB9CisKICNpZiBF
TkFCTEUoV0lGSV9BU1NFUlRJT05TKQogICAgIHVuc2lnbmVkIHdpcmVsZXNzQ29udGV4dElkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dpcmVsZXNzQ29udGV4dElkZW50aWZpZXI7IH0KICAg
ICB2b2lkIHNldFdpcmVsZXNzQ29udGV4dElkZW50aWZpZXIodW5zaWduZWQgd2lyZWxlc3NDb250
ZXh0SWRlbnRpZmllcikgeyBtX3dpcmVsZXNzQ29udGV4dElkZW50aWZpZXIgPSB3aXJlbGVzc0Nv
bnRleHRJZGVudGlmaWVyOyB9CkBAIC0xOTYsNiArMTk5LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlz
S2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Byb2Nl
c3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OworICAgIFdURjo6U3RyaW5n
IG1fb3B0aW1pemVkV2ViUHJvY2Vzc05hbWU7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgV1RG
OjpTdHJpbmcgbV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA0ZmNhN2VlZGIyZjU4ODJlYzY0MDk0
YzczOTYzNTE2ODJjMGZhZDMxLi4wMGVjNDczNjRiYWZiNmE3OTFmYjg1ZjYwMDcxMWQ3Y2M1OWZm
NjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAg
LTQwNyw2ICs0MDcsMTEgQEAgdm9pZCBXS0NvbnRleHRTZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJt
ZWRQcm9jZXNzZXMoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIHVuc2kKICAgICB0b0ltcGwoY29u
dGV4dFJlZiktPnNldE1heGltdW1OdW1iZXJPZlByZXdhcm1lZFByb2Nlc3Nlcyh2YWx1ZSk7CiB9
CiAKK3ZvaWQgV0tDb250ZXh0U2V0T3B0aW1pemVkV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVu
dGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBuYW1lKQoreworICAg
IHRvSW1wbChjb250ZXh0UmVmKS0+c2V0T3B0aW1pemVkV2ViUHJvY2Vzc05hbWUodG9JbXBsKG5h
bWUpLT5zdHJpbmcoKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U2V0RGlza0NhY2hlU3BlY3VsYXRp
dmVWYWxpZGF0aW9uRW5hYmxlZChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm9vbCB2YWx1ZSkK
IHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNvbmZpZ3VyYXRpb24oKS5zZXREaXNrQ2FjaGVT
cGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggZTVhMDdhNmZlMmQyNWZiMjkyNGQ2ZjUwNzllMWM1
YjAyYWJlYmEyNi4uZmNlMmExOTU2ODkzNmZjYjg2MDE3ZGFlNzE2OWU3ZDZlMjJkY2EwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE2NSw2ICsxNjUs
OCBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0FycgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYsIGRv
dWJsZSB0aW1lKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFJlZnJlc2hQbHVnSW5zKFdLQ29u
dGV4dFJlZiBjb250ZXh0KTsKIAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0T3B0aW1pemVk
V2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS1N0cmluZ1JlZiBuYW1lKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
aW5kZXggYWNlZmFlNTE4ZGU4NTJiYzdmZjAwZDM5Y2I1Yzc0OWExZDc4ZTAwNC4uYWIzMTllNzll
ZGQxNzkxNWZlOWIxNWI2OWE4ZGJjYWFiNWRlMTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgorI2ltcG9ydCAiWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLQXV0b21hdGlvblNlc3Npb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRG93bmxvYWRE
ZWxlZ2F0ZS5oIgpAQCAtMTgxLDYgKzE4MiwxMSBAQCArIChOU1VSTCAqKV93ZWJzaXRlRGF0YVVS
TEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMIGJ1bmRsZUlkZW50aQog
ICAgIHJldHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRh
IiBpc0RpcmVjdG9yeTpZRVNdOwogfQogCisrIChpbnQpX3dlYkNvbnRlbnRQcm9jZXNzWFBDTWFp
bgoreworICAgIHJldHVybiBXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKCk7Cit9CisKIC0gKHZvaWQp
X3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRl
Q2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7CiAgICAgX3Byb2Nlc3NQb29sLT5hbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUlu
Zm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oKF9fYnJpZGdlIENGQXJyYXlSZWYp
Y2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNzA5
OWE0NDY0NDE2MjM5NDA4NTg2MjQzZDU3OWNlYzQxMjgyZTA0ZS4uMzY0NTM1YTVmMjczZDZhYmEx
YTliMDdmOTFjNWE2ZDcwZGM4MzRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTc5LDYgKzc5LDgg
QEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAorKyAoaW50KV93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
IC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50
IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNz
OwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKaW5kZXggNjQ0YjE2NDA1OTkwZWFmMzYyMGU0YmQ1YzYyMjNkYWM2YmMwYmJiYi4u
MjI3ZThlZDQ3OGFmOGVjYjQwODlkMzc5NDQ1M2Q2Y2VkMmFjYThiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaApAQCAtMzYsNiArMzYsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwg
KmluamVjdGVkQnVuZGxlVVJMOwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4
aW11bVByb2Nlc3NDb3VudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG1heGlt
dW1QcmV3YXJtZWRQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TU3RyaW5nICpvcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1t
CmluZGV4IDdhMzk2YzU5ZGYwZjU2Y2RhMjlhOWZmYWVlOWVlOWM3N2E2NjE2NDMuLmQyOWNkMjRj
NDk1ZDRhYWIxMTIwMjgxN2RkMTk3NTlmY2M2YzZlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbQpAQCAtMzU5LDYgKzM1OSwxNiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9u
ZSAqKXpvbmUKICAgICByZXR1cm4gd3JhcHBlcihfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5j
b3B5KCkubGVha1JlZigpKTsKIH0KIAorLSAoTlNTdHJpbmcgKilvcHRpbWl6ZWRXZWJQcm9jZXNz
TmFtZQoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5vcHRpbWl6ZWRX
ZWJQcm9jZXNzTmFtZSgpOworfQorCistICh2b2lkKXNldE9wdGltaXplZFdlYlByb2Nlc3NOYW1l
OihOU1N0cmluZyAqKW9wdGltaXplZFdlYlByb2Nlc3NOYW1lCit7CisgICAgX3Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi0+c2V0T3B0aW1pemVkV2ViUHJvY2Vzc05hbWUob3B0aW1pemVkV2ViUHJv
Y2Vzc05hbWUpOworfQorCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KIAogLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmlu
ZGV4IGI0N2Y3ZDAxNGM1OTRiYWZhOGRiNTUyMmM2YmI0OTJkZTcyYTAwZjEuLjBlODU0Y2RlZWE2
ODVlMDk4NDYyYWM4Y2I3Yjc5MjYxMGIxNWY0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAt
MTAxLDcgKzEwMSwxNiBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiB7
CiAgICAgQVNTRVJUKCFtX3hwY0Nvbm5lY3Rpb24pOwogCi0gICAgbV94cGNDb25uZWN0aW9uID0g
YWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGUoc2VydmljZU5hbWUobV9sYXVuY2hP
cHRpb25zKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSkpOworICAgIENTdHJpbmcgb3B0aW1p
emVkV2ViUHJvY2Vzc05hbWU7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBhdXRvIGl0ID0g
bV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmZpbmQoIk9wdGltaXplZFdl
YlByb2Nlc3NOYW1lIik7CisgICAgaWYgKGl0ICE9IG1fbGF1bmNoT3B0aW9ucy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5lbmQoKSkgeworICAgICAgICBvcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZSA9
IGl0LT52YWx1ZS5hc2NpaSgpOworICAgICAgICBuYW1lID0gb3B0aW1pemVkV2ViUHJvY2Vzc05h
bWUuZGF0YSgpOworICAgIH0gZWxzZQorICAgICAgICBuYW1lID0gc2VydmljZU5hbWUobV9sYXVu
Y2hPcHRpb25zKTsKKworICAgIG1feHBjQ29ubmVjdGlvbiA9IGFkb3B0T1NPYmplY3QoeHBjX2Nv
bm5lY3Rpb25fY3JlYXRlKG5hbWUsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpKTsKIAogICAg
IHV1aWRfdCB1dWlkOwogICAgIHV1aWRfZ2VuZXJhdGUodXVpZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNTBmZmI5MDY3NDcxZTk0OWI1NTg4NmU0
YzNhMGIxNGU0MGRhMDRjNy4uMjQ0NzRmM2NhZDE5N2JlYzg4OTQ4YjhjODE3YjliY2Y0ZWY3Mzk5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDE4
LDYgKzQxOCwxNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRNYXhpbXVtTnVtYmVyT2ZQcmV3
YXJtZWRQcm9jZXNzZXModW5zaWduZWQgbWF4aW11bU51bWJlcgogICAgIG1fY29uZmlndXJhdGlv
bi0+c2V0TWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudChtYXhpbXVtTnVtYmVyT2ZQcm9jZXNz
ZXMpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRPcHRpbWl6ZWRXZWJQcm9jZXNzTmFt
ZShjb25zdCBTdHJpbmcmIG9wdGltaXplZFdlYlByb2Nlc3NOYW1lKQoreworICAgIC8vIEd1YXJk
IGFnYWluc3QgQVBJIG1pc3VzZS4KKyAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpKQorICAgICAg
ICBDUkFTSCgpOworCisgICAgbV9jb25maWd1cmF0aW9uLT5zZXRPcHRpbWl6ZWRXZWJQcm9jZXNz
TmFtZShvcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZSk7Cit9CisKIElQQzo6Q29ubmVjdGlvbiogV2Vi
UHJvY2Vzc1Bvb2w6Om5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAgcmV0dXJu
IG1fbmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IDUyMmZhZjEwMmFjMDk4YThjYTRhM2QzODc4YWJmYjZhMTgy
N2MyNTAuLjQzZDc0MWUzZDg5ZDgyZDRjNTJhOGQ2YTk5MTYxZDE4ZWNhOTE3ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMTU5LDYgKzE1OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE1heGltdW1OdW1iZXJPZlByZXdhcm1lZFByb2Nlc3Nlcyh1bnNp
Z25lZCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBwcm9jZXNzZXMg
cnVubmluZy4KICAgICB1bnNpZ25lZCBtYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXMo
KSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPm1heGltdW1QcmV3YXJtZWRQcm9jZXNz
Q291bnQoKTsgfQogCisgICAgdm9pZCBzZXRPcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZShjb25zdCBT
dHJpbmcmKTsKKyAgICBjb25zdCBTdHJpbmcmIG9wdGltaXplZFdlYlByb2Nlc3NOYW1lKCkgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLT5vcHRpbWl6ZWRXZWJQcm9jZXNzTmFtZSgpOyB9CisKICAg
ICBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4+JiBwcm9jZXNzZXMoKSBjb25z
dCB7IHJldHVybiBtX3Byb2Nlc3NlczsgfQogCiAgICAgLy8gV2ViUHJvY2VzcyBvciBOZXR3b3Jr
UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4gVGhlIGNv
bm5lY3Rpb24gbXVzdCBiZSBub24tbnVsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IGVhYzhiNWU1NDkyOWI5NjliNzc3OGNlMWY3ZGJhYTUxMTQ3
NmJmOTAuLmU0MTllMDY1Y2UwNWNhN2FhOGZiZTM2NDI5M2IxNmZlYmQ0ZGU0YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTYyLDYgKzE2Miw4
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAKICAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKIAorICAgIGlmICghbV9wcm9jZXNzUG9vbC0+
b3B0aW1pemVkV2ViUHJvY2Vzc05hbWUoKS5pc051bGwoKSkKKyAgICAgICAgbGF1bmNoT3B0aW9u
cy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoIk9wdGltaXplZFdlYlByb2Nlc3NOYW1lIiwg
bV9wcm9jZXNzUG9vbC0+b3B0aW1pemVkV2ViUHJvY2Vzc05hbWUoKSk7CiAgICAgaWYgKFdlYktp
dDo6aXNJbnNwZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgbGF1bmNo
T3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImluc3BlY3Rvci1wcm9jZXNzIl9z
LCAiMSJfcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM1YzRjNWM5ODQxYjU3YzFhZGNlNDc3OTNmZDk1ZGQxYzA1OTcyYjAuLjg2
NWFkYTkzNTU2Y2YzNDNmZWE3NTExYmQ4ODc1N2I3ZWMwZTM3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU3LDYgKzk1Nyw3IEBA
CiAJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURE
NTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9Owog
CQk0MTRERUREODFGOUVEREU1MDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURE
NjFGOUVEREUwMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgKi87IH07
CiAJCTQxNTdFNEIwMjBFMkVDREYwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVn
aW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUu
bzFkYnJvd3NlcnBsdWdpbi5zYiAqLzsgfTsKKwkJNDE2MzlBODkyMTE5MzNFRDAwMUNFRjE0IC8q
IFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICov
OyB9OwogCQk0MTg5N0VDRjFGNDE1RDYyMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTg5N0VDRTFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAg
Ki87IH07CiAJCTQxODk3RUQwMUY0MTVENjUwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTg5N0VDQzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwICov
OyB9OwogCQk0MTg5N0VEMTFGNDE1RDY4MDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4
OTdFQ0QxRjQxNUQ1QzAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsg
fTsKQEAgLTExODE4LDYgKzExODE5LDcgQEAKIAkJCQkxQUQ2MEY1RDE4RTIwRjRDMDAyMEMwMzQg
LyogV0tXaW5kb3dGZWF0dXJlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBN0MwREY2MUI3RDFG
MTAwMEE5Qjg0OCAvKiBXS1dpbmRvd0ZlYXR1cmVzUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDQkVDREU3MTZCNjQxNjgwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTQxNjM5QTg5MjExOTMzRUQwMDFDRUYxNCAvKiBYUENTZXJ2aWNlTWFp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346683</attachid>
            <date>2018-08-06 21:31:25 -0700</date>
            <delta_ts>2018-08-07 11:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188367-20180806213124.patch</filename>
            <type>text/plain</type>
            <size>17490</size>
            <attacher name="Ben Richards">benton_richards</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY0NTlmOGRiYzU5MmY2NjVi
ZWEzZmFhNWJjNjRiNjVjZmVlZGZiNDUuLmJkYWY4M2I3ODliM2VhOWFiZjEwNGZjMzJmNWYyNmEz
OTVkNThiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTgtMDgtMDYgIEJlbiBSaWNo
YXJkcyAgPGJlbnRvbl9yaWNoYXJkc0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFNQSSBmb3Ig
bGF1bmNoaW5nIFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHByZS1saW5rZWQgaW5qZWN0ZWQgYnVu
ZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgz
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBTUEkgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIHNldCBhICJjdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXIiIHdoaWNoIHdpbGwgYmUgbGF1bmNoZWQgaW5zdGVhZCBvZiB0
aGUgZGVmYXVsdCBXZWJDb250ZW50IFhQQyBzZXJ2aWNlLgorICAgICAgICBUaGUgImN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciIgc2hvdWxkIGJlIHRoZSBidW5kbGUgaWRl
bnRpZmllciBmb3IgYW4gWFBDIHNlcnZpY2UgdGhhdCBjYWxscyBbV0tQcm9jZXNzUG9vbCBfd2Vi
Q29udGVudFByb2Nlc3NYUENNYWluXS4KKyAgICAgICAgVGhlIG5ldyBYUEMgc2VydmljZSBzaG91
bGQgYmUgaGFyZCBsaW5rZWQgdG8gdGhlIGFwcGxpY2F0aW9uJ3MgaW5qZWN0ZWQgYnVuZGxlIGlu
IG9yZGVyIHRvIHJlY2VpdmUgdGhlIGludGVuZGVkIHBlcmZvcm1hbmNlIGJlbmVmaXQuCisKKyAg
ICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5oOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21h
Yy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2
aWNlTWFpbik6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0U2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VC
dW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAg
ICAoK1tXS1Byb2Nlc3NQb29sIF93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW5dKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToK
KyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGN1c3RvbVdlYkNvbnRlbnRT
ZXJ2aWNlQnVuZGxlSWRlbnRpZmllcl0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6c2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVu
Y2hPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxOC0wOC0wMyAgQmVuIFJpY2hhcmRzICA8YmVudG9uX3JpY2hhcmRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZSBzaG91bGQgY2FjaGUgdGhlIGNvbXBpbGVkIHNhbmRib3ggcHJvZmlsZSBp
biBhIGRhdGEgdmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaAppbmRleCBmNWU5NTY0ODQxOGUwMmU1ZWI3MjY0NzMzY2VjMmJhMzJh
MzRmYjFhLi5mN2NjYmUyY2M0N2UyNDY0OTkwYjllMDY2Y2JhMWYzZjAzODNkMTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBA
IC0xMTcsNiArMTE3LDggQEAgdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8
eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICBYUENTZXJ2aWNl
VHlwZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAoraW50IFhQQ1Nl
cnZpY2VNYWluKCk7CisKIHZvaWQgWFBDU2VydmljZUV4aXQoT1NPYmplY3RQdHI8eHBjX29iamVj
dF90PiYmIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9Y
UENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQppbmRleCA1OTE5
YTMyODM2ZWNhOTE2ZjRkYjgzMWNiNjczMTllMzkxODNkYmYzLi5jZDQ0N2U2OWFiMGYyZTIxZTU2
OWY2YTVkOWE4MTY5Njk0MGY4MzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZU1haW4ubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJXZWJQcm9jZXNzQ29jb2EuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBv
aW50LmgiCiAKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW1w
b3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KQEAgLTkxLDExICs5Miw3IEBAIHN0YXRpYyB2b2lkIFhQ
Q1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQogICAgIHhwY19jb25u
ZWN0aW9uX3Jlc3VtZShwZWVyKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2lu
dCBYUENTZXJ2aWNlTWFpbigpCiB7CiAjaWYgZGVmaW5lZChfX2kzODZfXykKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgb25seSBiZSBkb25lIGZvciB0aGUgMzItYml0IHBsdWctaW4gWFBDIHNl
cnZpY2Ugc28gd2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0CkBAIC0xNjAsMyArMTU3LDEyIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZl
bnRIYW5kbGVyKTsKICAgICByZXR1cm4gMDsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKK3sKKyAgICByZXR1cm4gWFBDU2VydmljZU1haW4oKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCBmMmQ1YzYxMTg4ODdjNTIxNGQ0YjRhNmRlNTNmYWQ0OTg2Yjc0NDUwLi4wNDljMjE0NTYy
OWJlMzdmMDk0MmUxNTFlZjJjOTIwMDdlNDMxNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0x
NTAsNiArMTUwLDkgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVu
V2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0
aE9wZW5lcjsgfQogICAgIHZvaWQgc2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5l
cihib29sIHN3YXBzKSB7IG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciA9IHN3
YXBzOyB9CiAKKyAgICBjb25zdCBXVEY6OlN0cmluZyYgY3VzdG9tV2ViQ29udGVudFNlcnZpY2VC
dW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21XZWJDb250ZW50U2Vydmlj
ZUJ1bmRsZUlkZW50aWZpZXI7IH0KKyAgICB2b2lkIHNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNl
QnVuZGxlSWRlbnRpZmllcihjb25zdCBXVEY6OlN0cmluZyYgY3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyKSB7IG1fY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVu
dGlmaWVyID0gY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOyB9CisKICNp
ZiBFTkFCTEUoV0lGSV9BU1NFUlRJT05TKQogICAgIHVuc2lnbmVkIHdpcmVsZXNzQ29udGV4dElk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dpcmVsZXNzQ29udGV4dElkZW50aWZpZXI7IH0K
ICAgICB2b2lkIHNldFdpcmVsZXNzQ29udGV4dElkZW50aWZpZXIodW5zaWduZWQgd2lyZWxlc3ND
b250ZXh0SWRlbnRpZmllcikgeyBtX3dpcmVsZXNzQ29udGV4dElkZW50aWZpZXIgPSB3aXJlbGVz
c0NvbnRleHRJZGVudGlmaWVyOyB9CkBAIC0xOTYsNiArMTk5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3
YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3By
b2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OworICAgIFdURjo6U3Ry
aW5nIG1fY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwogCiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIFdURjo6U3RyaW5nIG1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggNGZj
YTdlZWRiMmY1ODgyZWM2NDA5NGM3Mzk2MzUxNjgyYzBmYWQzMS4uYzhhNmMzNWI1YmRjM2UxOTg3
YjRiMDEzZjVjZjI2NDEwZDQ4Mjk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCkBAIC00MDcsNiArNDA3LDExIEBAIHZvaWQgV0tDb250ZXh0U2V0TWF4
aW11bU51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCB1
bnNpCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQ
cm9jZXNzZXModmFsdWUpOwogfQogCit2b2lkIFdLQ29udGV4dFNldEN1c3RvbVdlYkNvbnRlbnRT
ZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJpbmdS
ZWYgbmFtZSkKK3sKKyAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldEN1c3RvbVdlYkNvbnRlbnRT
ZXJ2aWNlQnVuZGxlSWRlbnRpZmllcih0b0ltcGwobmFtZSktPnN0cmluZygpKTsKK30KKwogdm9p
ZCBXS0NvbnRleHRTZXREaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBib29sIHZhbHVlKQogewogICAgIHRvSW1wbChjb250ZXh0UmVm
KS0+Y29uZmlndXJhdGlvbigpLnNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRl
eCBlNWEwN2E2ZmUyZDI1ZmIyOTI0ZDZmNTA3OWUxYzViMDJhYmViYTI2Li5kYzBmZTM4OTdmMzVm
MmU5ZDVlNWM3OWM4N2U5NzVjOGVkNDIzYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaApAQCAtMTY1LDYgKzE2NSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnMoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
QXJyCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmls
dGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZiwgZG91YmxlIHRpbWUpOwogV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0UmVmcmVzaFBsdWdJbnMoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCitXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG5hbWUpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBhY2VmYWU1MThkZTg1MmJjN2ZmMDBk
MzljYjVjNzQ5YTFkNzhlMDA0Li5hYjMxOWU3OWVkZDE3OTE1ZmU5YjE1YjY5YThkYmNhYWI1ZGUx
MjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlclBy
b3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3NQb29sLmgiCisjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgogI2ltcG9ydCAiX1dL
QXV0b21hdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbkludGVy
bmFsLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZERlbGVnYXRlLmgiCkBAIC0xODEsNiArMTgyLDEx
IEBAICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwg
Kiljb250YWluZXJVUkwgYnVuZGxlSWRlbnRpCiAgICAgcmV0dXJuIFt1cmwgVVJMQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0ZURhdGEiIGlzRGlyZWN0b3J5OllFU107CiB9CiAKKysg
KGludClfd2ViQ29udGVudFByb2Nlc3NYUENNYWluCit7CisgICAgcmV0dXJuIFdlYktpdDo6WFBD
U2VydmljZU1haW4oKTsKK30KKwogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhv
c3QKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9y
SG9zdChXZWJLaXQ6OldlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNoYWluKSkucHRyKCksIGhv
c3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCA3MDk5YTQ0NjQ0MTYyMzk0MDg1ODYyNDNkNTc5Y2Vj
NDEyODJlMDRlLi4zNjQ1MzVhNWYyNzNkNmFiYTFhOWIwN2Y5MWM1YTZkNzBkYzgzNGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaApAQCAtNzksNiArNzksOCBAQAogCiAtICh2b2lkKV9yZWdpc3RlclVSTFNj
aGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCisrIChp
bnQpX3dlYkNvbnRlbnRQcm9jZXNzWFBDTWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2Fs
bGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgogLSAo
dm9pZClfdGVybWluYXRlU3RvcmFnZVByb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA2NDRiMTY0MDU5OTBl
YWYzNjIwZTRiZDVjNjIyM2RhYzZiYzBiYmJiLi4xYmYxM2JiNzFjY2I3MTlmODgzNmMzNzQzZWQ0
ODdlNGZmY2ZlMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0zNiw2ICsz
Niw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50OwogQHByb3BlcnR5
IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRl
bnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
YXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDdhMzk2
YzU5ZGYwZjU2Y2RhMjlhOWZmYWVlOWVlOWM3N2E2NjE2NDMuLjUxYjIwNDk3MDM3NjliNWFhMDVj
OWI4NzY2ZjA2M2Y4ZmVlZmJmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpA
QCAtMzU5LDYgKzM1OSwxNiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAg
ICByZXR1cm4gd3JhcHBlcihfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5jb3B5KCkubGVha1Jl
ZigpKTsKIH0KIAorLSAoTlNTdHJpbmcgKiljdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlk
ZW50aWZpZXIKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+Y3VzdG9t
V2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Vz
dG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcgoreworICAgIF9wcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24tPnNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihjdXN0
b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIpOworfQorCiAjcHJhZ21hIG1hcmsg
V0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KIAogLSAoQVBJOjpPYmplY3QmKV9hcGlP
YmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xh
dW5jaGVyLmgKaW5kZXggODMxYjE4ZGVmNGJjNzQzNjcwZjc1MzZiNTU3ZmY4MzU1YTI1OTI5YS4u
NWM0YmIzYjllMTE2NDFkOTg3ODExZGE2Njc5NDY1YjZlMzE4NDBhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTY2LDYg
KzY2LDcgQEAgcHVibGljOgogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRyYUlu
aXRpYWxpemF0aW9uRGF0YTsKICAgICAgICAgYm9vbCBub25WYWxpZEluamVjdGVkQ29kZUFsbG93
ZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNob3VsZE1ha2VQcm9jZXNzTGF1bmNoRmFpbEZv
clRlc3RpbmcgeyBmYWxzZSB9OworICAgICAgICBDU3RyaW5nIGN1c3RvbVdlYkNvbnRlbnRTZXJ2
aWNlQnVuZGxlSWRlbnRpZmllcjsKIAogI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3RyaW5nIHByb2Nlc3NDbWRQ
cmVmaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMv
UHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBiNDdmN2QwMTRjNTk0YmFmYThkYjU1MjJj
NmJiNDkyZGU3MmEwMGYxLi5lZTBlYjkzNWE2ZTVjOWY0MDcyMDVkMDZjMzQ0YjlhYmZlMWRiMDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTEwMSw3ICsxMDEsMTMgQEAgdm9pZCBQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogewogICAgIEFTU0VSVCghbV94cGNDb25uZWN0aW9u
KTsKIAotICAgIG1feHBjQ29ubmVjdGlvbiA9IGFkb3B0T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25f
Y3JlYXRlKHNlcnZpY2VOYW1lKG1fbGF1bmNoT3B0aW9ucyksIGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCkpKTsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGlmICghbV9sYXVuY2hPcHRpb25z
LmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllci5pc051bGwoKSkKKyAgICAg
ICAgbmFtZSA9IG1fbGF1bmNoT3B0aW9ucy5jdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlk
ZW50aWZpZXIuZGF0YSgpOworICAgIGVsc2UKKyAgICAgICAgbmFtZSA9IHNlcnZpY2VOYW1lKG1f
bGF1bmNoT3B0aW9ucyk7CisKKyAgICBtX3hwY0Nvbm5lY3Rpb24gPSBhZG9wdE9TT2JqZWN0KHhw
Y19jb25uZWN0aW9uX2NyZWF0ZShuYW1lLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKSk7CiAK
ICAgICB1dWlkX3QgdXVpZDsKICAgICB1dWlkX2dlbmVyYXRlKHV1aWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDUwZmZiOTA2NzQ3MWU5NDliNTU4
ODZlNGMzYTBiMTRlNDBkYTA0YzcuLjZhMmEwOTI3OTgxMDgzYjI5NWJjMmIwZjZkNWQ5YTBjYWZh
NjQwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTQxOCw2ICs0MTgsMTUgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TWF4aW11bU51bWJlck9m
UHJld2FybWVkUHJvY2Vzc2VzKHVuc2lnbmVkIG1heGltdW1OdW1iZXIKICAgICBtX2NvbmZpZ3Vy
YXRpb24tPnNldE1heGltdW1QcmV3YXJtZWRQcm9jZXNzQ291bnQobWF4aW11bU51bWJlck9mUHJv
Y2Vzc2VzKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q3VzdG9tV2ViQ29udGVudFNl
cnZpY2VCdW5kbGVJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgY3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyKQoreworICAgIC8vIEd1YXJkIGFnYWluc3QgQVBJIG1pc3VzZS4K
KyAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpKQorICAgICAgICBDUkFTSCgpOworCisgICAgbV9j
b25maWd1cmF0aW9uLT5zZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIo
Y3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKTsKK30KKwogSVBDOjpDb25u
ZWN0aW9uKiBXZWJQcm9jZXNzUG9vbDo6bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKCkKIHsK
ICAgICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNTIyZmFmMTAyYWMwOThhOGNhNGEzZDM4
NzhhYmZiNmExODI3YzI1MC4uMjVjYzRkNDIwYzJlNmY5YWNmZWE4YjVlNGNkODFkY2FkNjZhNDdk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNTksNiAr
MTU5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWF4aW11bU51bWJlck9mUHJld2FybWVkUHJv
Y2Vzc2VzKHVuc2lnbmVkKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5v
IHByb2Nlc3NlcyBydW5uaW5nLgogICAgIHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZlByZXdhcm1l
ZFByb2Nlc3NlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi0+bWF4aW11bVByZXdh
cm1lZFByb2Nlc3NDb3VudCgpOyB9CiAKKyAgICB2b2lkIHNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2
aWNlQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBTdHJpbmcmIGN1
c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fY29uZmln
dXJhdGlvbi0+Y3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKCk7IH0KKwog
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5Pj4mIHByb2Nlc3NlcygpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2VzOyB9CiAKICAgICAvLyBXZWJQcm9jZXNzIG9yIE5ldHdv
cmtQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLiBUaGUg
Y29ubmVjdGlvbiBtdXN0IGJlIG5vbi1udWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZWFjOGI1ZTU0OTI5Yjk2OWI3Nzc4Y2UxZjdkYmFhNTEx
NDc2YmY5MC4uNWUwYmM2MGI1MDVmNmIxYzcwZGJjZDRkMzJmYjhmOWFhODE3ZjYxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjIsNiArMTYy
LDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5j
aGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKIAogICAgIENoaWxkUHJvY2Vzc1Byb3h5Ojpn
ZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwogCisgICAgaWYgKCFtX3Byb2Nlc3NQb29s
LT5jdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIoKS5pc051bGwoKSkKKyAg
ICAgICAgbGF1bmNoT3B0aW9ucy5jdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZp
ZXIgPSBtX3Byb2Nlc3NQb29sLT5jdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZp
ZXIoKS5hc2NpaSgpOwogICAgIGlmIChXZWJLaXQ6OmlzSW5zcGVjdG9yUHJvY2Vzc1Bvb2wocHJv
Y2Vzc1Bvb2woKSkpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRh
dGEuYWRkKCJpbnNwZWN0b3ItcHJvY2VzcyJfcywgIjEiX3MpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNWM0YzVjOTg0MWI1N2Mx
YWRjZTQ3NzkzZmQ5NWRkMWMwNTk3MmIwLi44NjVhZGE5MzU1NmNmMzQzZmVhNzUxMWJkODg3NTdi
N2VjMGUzNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTk1Nyw2ICs5NTcsNyBAQAogCQk0MTRERURENzFGOUVEREU1MDA0N0M0MEQg
LyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REVERDUxRjlFRERERjAwNDdDNDBEIC8qIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNDE0REVERDgxRjlFRERFNTAwNDdDNDBEIC8q
IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REVERDYxRjlFRERFMDAwNDdDNDBEIC8qIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuY3BwICovOyB9OwogCQk0MTU3RTRCMDIwRTJFQ0RGMDBBNkMwRDcg
LyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94
IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdFNEFGMjBF
MkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi87IH07CisJ
CTQxNjM5QTg5MjExOTMzRUQwMDFDRUYxNCAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEy
NzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKIAkJNDE4OTdFQ0YxRjQxNUQ2MjAwMTZG
QTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4OTdFQ0UxRjQxNUQ1QzAwMTZGQTQyIC8qIFdl
YkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovOyB9OwogCQk0MTg5N0VEMDFGNDE1RDY1MDAx
NkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4OTdFQ0MxRjQxNUQ1QzAwMTZGQTQyIC8qIFdl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJNDE4OTdFRDExRjQxNUQ2ODAwMTZG
QTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODk3RUNEMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CkBAIC0xMTgxOCw2ICsxMTgxOSw3IEBACiAJ
CQkJMUFENjBGNUQxOEUyMEY0QzAwMjBDMDM0IC8qIFdLV2luZG93RmVhdHVyZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTdDMERGNjFCN0QxRjEwMDBBOUI4NDggLyogV0tXaW5kb3dGZWF0dXJl
c1JlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0JFQ0RFNzE2QjY0MTY4MDAwNDdBMUEgLyog
WFBDU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTYzOUE4OTIxMTkz
M0VEMDAxQ0VGMTQgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346716</attachid>
            <date>2018-08-07 11:11:26 -0700</date>
            <delta_ts>2018-08-07 14:04:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188367-20180807111125.patch</filename>
            <type>text/plain</type>
            <size>17522</size>
            <attacher name="Ben Richards">benton_richards</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFlYzZkM2E4N2YyZWM5MDhk
ZDFiZWVlMTYxMzU3YzJiZTkxMmM1ZDEuLjJjZWJjNTc0MzIxM2ZjYWZmZDk1Mjk4NzJmOWJkNjA1
Zjg2Zjk2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTgtMDgtMDcgIEJlbiBSaWNo
YXJkcyAgPGJlbnRvbl9yaWNoYXJkc0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFNQSSBmb3Ig
bGF1bmNoaW5nIFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHByZS1saW5rZWQgaW5qZWN0ZWQgYnVu
ZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgz
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkZWQg
U1BJIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBzZXQgYSAiY3VzdG9tV2ViQ29udGVudFNlcnZp
Y2VCdW5kbGVJZGVudGlmaWVyIiB3aGljaCB3aWxsIGJlIGxhdW5jaGVkIGluc3RlYWQgb2YgdGhl
IGRlZmF1bHQgV2ViQ29udGVudCBYUEMgc2VydmljZS4KKyAgICAgICAgVGhlICJjdXN0b21XZWJD
b250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIiIHNob3VsZCBiZSB0aGUgYnVuZGxlIGlkZW50
aWZpZXIgZm9yIGFuIFhQQyBzZXJ2aWNlIHRoYXQgY2FsbHMgW1dLUHJvY2Vzc1Bvb2wgX3dlYkNv
bnRlbnRQcm9jZXNzWFBDTWFpbl0uCisgICAgICAgIFRoZSBuZXcgWFBDIHNlcnZpY2Ugc2hvdWxk
IGJlIGhhcmQgbGlua2VkIHRvIHRoZSBhcHBsaWNhdGlvbidzIGluamVjdGVkIGJ1bmRsZSBpbiBv
cmRlciB0byByZWNlaXZlIHRoZSBpbnRlbmRlZCBwZXJmb3JtYW5jZSBiZW5lZml0LgorCisgICAg
ICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vydmlj
ZU1haW4pOgorICAgICAgICAobWFpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dFNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVu
ZGxlSWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAg
KCtbV0tQcm9jZXNzUG9vbCBfd2ViQ29udGVudFByb2Nlc3NYUENNYWluXSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06Cisg
ICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBjdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXJdKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIHNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcjpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNo
T3B0aW9ucyk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTgtMDgtMDcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gU2Nyb2xsYmFycyBhcmUgbm90IHZpc2libGUgd2hlbiB1c2luZyAzcmQgcGFy
dHkgbW91c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAppbmRleCA1ZTdjYTllYzk0MmY5MmMyYTk5OWQ4Y2E4YTVjNDI5ZmJiOWRjN2Yz
Li42YTNhYzYxNTE4MGQ0ZTQyMzM2Y2E1NTAyN2NmYmVhMmMxZDYzMGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC0xMTUs
NiArMTE1LDggQEAgdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nv
bm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICBYUENTZXJ2aWNlVHlwZTo6
c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAoraW50IFhQQ1NlcnZpY2VN
YWluKCk7CisKIHZvaWQgWFBDU2VydmljZUV4aXQoT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiYm
IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQppbmRleCA1OTE5YTMyODM2
ZWNhOTE2ZjRkYjgzMWNiNjczMTllMzkxODNkYmYzLi4zZDVkMzY5NDg1MmY5Njc5MmQ0ZmI3MWQz
NDkwMTA5ZTM2Y2E0YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzQ29jb2EuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50Lmgi
CiAKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDx3
dGYvT1NPYmplY3RQdHIuaD4KQEAgLTkxLDExICs5Miw3IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZp
Y2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCBwZWVyKQogICAgIHhwY19jb25uZWN0aW9u
X3Jlc3VtZShwZWVyKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCBYUENT
ZXJ2aWNlTWFpbigpCiB7CiAjaWYgZGVmaW5lZChfX2kzODZfXykKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgb25seSBiZSBkb25lIGZvciB0aGUgMzItYml0IHBsdWctaW4gWFBDIHNlcnZpY2Ug
c28gd2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0CkBAIC0xNjAsMyArMTU3LDEwIEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5k
bGVyKTsKICAgICByZXR1cm4gMDsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK2ludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2
aWNlTWFpbigpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyZDVjNjExODg4N2M1MjE0ZDRi
NGE2ZGU1M2ZhZDQ5ODZiNzQ0NTAuLjA0OWMyMTQ1NjI5YmUzN2YwOTQyZTE1MWVmMmM5MjAwN2U0
MzE0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTE1MCw2ICsxNTAsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKCkgY29uc3QgeyByZXR1
cm4gbV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOyB9CiAgICAgdm9pZCBzZXRQ
cm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKGJvb2wgc3dhcHMpIHsgbV9wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0gc3dhcHM7IH0KIAorICAgIGNvbnN0IFdURjo6
U3RyaW5nJiBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2N1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcjsgfQorICAg
IHZvaWQgc2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKGNvbnN0IFdU
Rjo6U3RyaW5nJiBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIpIHsgbV9j
dXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIgPSBjdXN0b21XZWJDb250ZW50
U2VydmljZUJ1bmRsZUlkZW50aWZpZXI7IH0KKwogI2lmIEVOQUJMRShXSUZJX0FTU0VSVElPTlMp
CiAgICAgdW5zaWduZWQgd2lyZWxlc3NDb250ZXh0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fd2lyZWxlc3NDb250ZXh0SWRlbnRpZmllcjsgfQogICAgIHZvaWQgc2V0V2lyZWxlc3NDb250
ZXh0SWRlbnRpZmllcih1bnNpZ25lZCB3aXJlbGVzc0NvbnRleHRJZGVudGlmaWVyKSB7IG1fd2ly
ZWxlc3NDb250ZXh0SWRlbnRpZmllciA9IHdpcmVsZXNzQ29udGV4dElkZW50aWZpZXI7IH0KQEAg
LTE5Niw2ICsxOTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbk5hdmln
YXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJv
Y2Vzc2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0
aE9wZW5lciB7IGZhbHNlIH07CisgICAgV1RGOjpTdHJpbmcgbV9jdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXI7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgV1RGOjpTdHJp
bmcgbV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA0ZmNhN2VlZGIyZjU4ODJlYzY0MDk0YzczOTYz
NTE2ODJjMGZhZDMxLi5jOGE2YzM1YjViZGMzZTE5ODdiNGIwMTNmNWNmMjY0MTBkNDgyOTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQwNyw2
ICs0MDcsMTEgQEAgdm9pZCBXS0NvbnRleHRTZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9j
ZXNzZXMoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIHVuc2kKICAgICB0b0ltcGwoY29udGV4dFJl
ZiktPnNldE1heGltdW1OdW1iZXJPZlByZXdhcm1lZFByb2Nlc3Nlcyh2YWx1ZSk7CiB9CiAKK3Zv
aWQgV0tDb250ZXh0U2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBuYW1lKQoreworICAgIHRvSW1wbChj
b250ZXh0UmVmKS0+c2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKHRv
SW1wbChuYW1lKS0+c3RyaW5nKCkpOworfQorCiB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNw
ZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIGJvb2wg
dmFsdWUpCiB7CiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9uKCkuc2V0RGlz
a0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IGU1YTA3YTZmZTJkMjVmYjI5MjRkNmY1
MDc5ZTFjNWIwMmFiZWJhMjYuLmRjMGZlMzg5N2YzNWYyZTlkNWU1Yzc5Yzg3ZTk3NWM4ZWQ0MjNj
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xNjUs
NiArMTY1LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2lucyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tBcnIKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRl
clRpbWUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5
UmVmLCBkb3VibGUgdGltZSk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRSZWZyZXNoUGx1Z0lu
cyhXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEN1
c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4
dFJlZiwgV0tTdHJpbmdSZWYgbmFtZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCmluZGV4IGFjZWZhZTUxOGRlODUyYmM3ZmYwMGQzOWNiNWM3NDlhMWQ3OGUwMDQuLmFiMzE5
ZTc5ZWRkMTc5MTVmZTliMTViNjlhOGRiY2FhYjVkZTEyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MCw2ICs0MCw3
IEBACiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBvcnQgIlhQQ1Nl
cnZpY2VFbnRyeVBvaW50LmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCIKICNp
bXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0Rvd25s
b2FkRGVsZWdhdGUuaCIKQEAgLTE4MSw2ICsxODIsMTEgQEAgKyAoTlNVUkwgKilfd2Vic2l0ZURh
dGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRhaW5lclVSTCBidW5kbGVJZGVu
dGkKICAgICByZXR1cm4gW3VybCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJzaXRl
RGF0YSIgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAorKyAoaW50KV93ZWJDb250ZW50UHJvY2Vzc1hQ
Q01haW4KK3sKKyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbigpOworfQorCiAtICh2
b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZp
Y2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewogICAgIF9wcm9jZXNzUG9vbC0+
YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6V2ViQ2VydGlmaWNh
dGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFycmF5
UmVmKWNlcnRpZmljYXRlQ2hhaW4pKS5wdHIoKSwgaG9zdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4
IDcwOTlhNDQ2NDQxNjIzOTQwODU4NjI0M2Q1NzljZWM0MTI4MmUwNGUuLjM2NDUzNWE1ZjI3M2Q2
YWJhMWE5YjA3ZjkxYzVhNmQ3MGRjODM0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03OSw2ICs3
OSw4IEBACiAKIC0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2Fu
UmVxdWVzdDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKKysgKGludClfd2ViQ29udGVudFByb2Nlc3NYUENN
YWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29u
dGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTdG9yYWdlUHJv
Y2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oCmluZGV4IDY0NGIxNjQwNTk5MGVhZjM2MjBlNGJkNWM2MjIzZGFjNmJjMGJi
YmIuLjFiZjEzYmI3MWNjYjcxOWY4ODM2YzM3NDNlZDQ4N2U0ZmZjZmUyNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTM2LDYgKzM2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5T
VVJMICppbmplY3RlZEJ1bmRsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2Vy
IG1heGltdW1Qcm9jZXNzQ291bnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBt
YXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1Rp
bWVvdXRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggN2EzOTZjNTlkZjBmNTZjZGEyOWE5ZmZhZWU5ZWU5
Yzc3YTY2MTY0My4uNTFiMjA0OTcwMzc2OWI1YWEwNWM5Yjg3NjZmMDYzZjhmZWVmYmYzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0zNTksNiArMzU5LDE2IEBAIC0gKGlk
KWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogICAgIHJldHVybiB3cmFwcGVyKF9wcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24tPmNvcHkoKS5sZWFrUmVmKCkpOwogfQogCistIChOU1N0cmluZyAq
KWN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcgoreworICAgIHJldHVybiBf
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5jdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlk
ZW50aWZpZXIoKTsKK30KKworLSAodm9pZClzZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRs
ZUlkZW50aWZpZXI6KE5TU3RyaW5nICopY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVu
dGlmaWVyCit7CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0Q3VzdG9tV2ViQ29u
dGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxl
SWRlbnRpZmllcik7Cit9CisKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1l
bnRhdGlvbgogCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4MzFiMThkZWY0
YmM3NDM2NzBmNzUzNmI1NTdmZjgzNTVhMjU5MjlhLi41YzRiYjNiOWUxMTY0MWQ5ODc4MTFkYTY2
Nzk0NjViNmUzMTg0MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhOwogICAgICAg
ICBib29sIG5vblZhbGlkSW5qZWN0ZWRDb2RlQWxsb3dlZCB7IGZhbHNlIH07CiAgICAgICAgIGJv
b2wgc2hvdWxkTWFrZVByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyB7IGZhbHNlIH07CisgICAg
ICAgIENTdHJpbmcgY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwogCiAj
aWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpKQogICAgICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
CmluZGV4IGI0N2Y3ZDAxNGM1OTRiYWZhOGRiNTUyMmM2YmI0OTJkZTcyYTAwZjEuLmVlMGViOTM1
YTZlNWM5ZjQwNzIwNWQwNmMzNDRiOWFiZmUxZGIwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpA
QCAtMTAxLDcgKzEwMSwxMyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcygp
CiB7CiAgICAgQVNTRVJUKCFtX3hwY0Nvbm5lY3Rpb24pOwogCi0gICAgbV94cGNDb25uZWN0aW9u
ID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGUoc2VydmljZU5hbWUobV9sYXVu
Y2hPcHRpb25zKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSkpOworICAgIGNvbnN0IGNoYXIq
IG5hbWU7CisgICAgaWYgKCFtX2xhdW5jaE9wdGlvbnMuY3VzdG9tV2ViQ29udGVudFNlcnZpY2VC
dW5kbGVJZGVudGlmaWVyLmlzTnVsbCgpKQorICAgICAgICBuYW1lID0gbV9sYXVuY2hPcHRpb25z
LmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllci5kYXRhKCk7CisgICAgZWxz
ZQorICAgICAgICBuYW1lID0gc2VydmljZU5hbWUobV9sYXVuY2hPcHRpb25zKTsKKworICAgIG1f
eHBjQ29ubmVjdGlvbiA9IGFkb3B0T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlKG5hbWUs
IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpKTsKIAogICAgIHV1aWRfdCB1dWlkOwogICAgIHV1
aWRfZ2VuZXJhdGUodXVpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggNTBmZmI5MDY3NDcxZTk0OWI1NTg4NmU0YzNhMGIxNGU0MGRhMDRjNy4uYzcy
MWEzMGE3NmVjNTU0YzMwNWI2NDg0NDgyYzAxNDZmZDM5OWIzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDE4LDYgKzQxOCwxNSBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpzZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXModW5zaWdu
ZWQgbWF4aW11bU51bWJlcgogICAgIG1fY29uZmlndXJhdGlvbi0+c2V0TWF4aW11bVByZXdhcm1l
ZFByb2Nlc3NDb3VudChtYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXMpOwogfQogCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIoY29u
c3QgU3RyaW5nJiBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIpCit7Cisg
ICAgLy8gR3VhcmQgYWdhaW5zdCBBUEkgbWlzdXNlLgorICAgIGlmIChtX3Byb2Nlc3Nlcy5zaXpl
KCkgfHwgIWN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllci5pc0FsbEFTQ0lJ
KCkpCisgICAgICAgIENSQVNIKCk7CisKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihjdXN0b21XZWJDb250ZW50U2VydmljZUJ1
bmRsZUlkZW50aWZpZXIpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFdlYlByb2Nlc3NQb29sOjpu
ZXR3b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewogICAgIHJldHVybiBtX25ldHdvcmtQcm9j
ZXNzLT5jb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAppbmRleCA1MjJmYWYxMDJhYzA5OGE4Y2E0YTNkMzg3OGFiZmI2YTE4MjdjMjUwLi4yNWNjNGQ0
MjBjMmU2ZjlhY2ZlYThiNWU0Y2Q4MWRjYWQ2NmE0N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE1OSw2ICsxNTksOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXModW5zaWduZWQpOyAvLyBDYW4g
b25seSBiZSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gcHJvY2Vzc2VzIHJ1bm5pbmcuCiAgICAg
dW5zaWduZWQgbWF4aW11bU51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLT5tYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50KCk7IH0KIAor
ICAgIHZvaWQgc2V0Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKGNvbnN0
IFN0cmluZyYpOworICAgIGNvbnN0IFN0cmluZyYgY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5k
bGVJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLT5jdXN0b21XZWJDb250ZW50
U2VydmljZUJ1bmRsZUlkZW50aWZpZXIoKTsgfQorCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJQcm9jZXNzUHJveHk+PiYgcHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzZXM7
IH0KIAogICAgIC8vIFdlYlByb2Nlc3Mgb3IgTmV0d29ya1Byb2Nlc3MgYXMgYXBwcm9wb3JpYXRl
IGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuIFRoZSBjb25uZWN0aW9uIG11c3QgYmUgbm9uLW51
bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBl
YWM4YjVlNTQ5MjliOTY5Yjc3NzhjZTFmN2RiYWE1MTE0NzZiZjkwLi41ZTBiYzYwYjUwNWY2YjFj
NzBkYmNkNGQzMmZiOGY5YWE4MTdmNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTE2Miw2ICsxNjIsOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5j
aE9wdAogCiAgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0
aW9ucyk7CiAKKyAgICBpZiAoIW1fcHJvY2Vzc1Bvb2wtPmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNl
QnVuZGxlSWRlbnRpZmllcigpLmlzTnVsbCgpKQorICAgICAgICBsYXVuY2hPcHRpb25zLmN1c3Rv
bVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciA9IG1fcHJvY2Vzc1Bvb2wtPmN1c3Rv
bVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcigpLmFzY2lpKCk7CiAgICAgaWYgKFdl
YktpdDo6aXNJbnNwZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgbGF1
bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImluc3BlY3Rvci1wcm9jZXNz
Il9zLCAiMSJfcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGUxOWI3Y2RlZWZjYTE5Y2U4NTY5M2EzMmQxZmNjYjk0NmVmYWQ2Njku
LmM4MzNjMWZlZTViMzMzYTZhNTdhMWYyMTM5NDY5NzUzMDk2MDU3NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU3LDYgKzk1Nyw3
IEBACiAJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRE
RURENTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9
OwogCQk0MTRERUREODFGOUVEREU1MDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRE
RURENjFGOUVEREUwMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgKi87
IH07CiAJCTQxNTdFNEIwMjBFMkVDREYwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJw
bHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29n
bGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLzsgfTsKKwkJNDE2MzlBODkyMTE5MzNFRDAwMUNFRjE0
IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1t
ICovOyB9OwogCQk0MTg5N0VDRjFGNDE1RDYyMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTg5N0VDRTFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5j
cHAgKi87IH07CiAJCTQxODk3RUQwMUY0MTVENjUwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTg5N0VDQzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3Bw
ICovOyB9OwogCQk0MTg5N0VEMTFGNDE1RDY4MDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4OTdFQ0QxRjQxNUQ1QzAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCAq
LzsgfTsKQEAgLTExNzcwLDYgKzExNzcxLDcgQEAKIAkJCQkxQUQ2MEY1RDE4RTIwRjRDMDAyMEMw
MzQgLyogV0tXaW5kb3dGZWF0dXJlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBN0MwREY2MUI3
RDFGMTAwMEE5Qjg0OCAvKiBXS1dpbmRvd0ZlYXR1cmVzUmVmLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQkVDREU3MTZCNjQxNjgwMDA0N0ExQSAvKiBYUENTZXJ2aWNlRW50cnlQb2ludC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTQxNjM5QTg5MjExOTMzRUQwMDFDRUYxNCAvKiBYUENTZXJ2aWNl
TWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>