<?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>209886</bug_id>
          
          <creation_ts>2020-04-01 16:13:56 -0700</creation_ts>
          <short_desc>ActiveDOMObject::hasPendingActivity() should stop preventing wrapper collection after ActiveDOMObject::stop() has been called</short_desc>
          <delta_ts>2020-04-02 14:50:17 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209754</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>alecflett</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636721</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 16:13:56 -0700</bug_when>
    <thetext>ActiveDOMObject::hasPendingActivity() should never return true after stop() has been called. ActiveDOMObject::stop() gets called when the script execution context is about to get destroyed. At this point, we should no longer be running script so there is never any need to keep the JS wrapper alive. As a result, ActiveDOMObject::hasPendingActivity() should be returning false after stop() has been called. This will make it harder to cause JS wrapper leaks with ActiveDOMObjects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636723</commentid>
    <comment_count>1</comment_count>
      <attachid>395219</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 16:15:36 -0700</bug_when>
    <thetext>Created attachment 395219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636732</commentid>
    <comment_count>2</comment_count>
      <attachid>395223</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 16:27:08 -0700</bug_when>
    <thetext>Created attachment 395223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636751</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-04-01 17:40:08 -0700</bug_when>
    <thetext>Is it possible for a script to run in another frame, and to reference something in the stopped one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636893</commentid>
    <comment_count>4</comment_count>
      <attachid>395268</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 08:43:32 -0700</bug_when>
    <thetext>Created attachment 395268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636907</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 09:05:03 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Is it possible for a script to run in another frame, and to reference
&gt; something in the stopped one?

AFAIK, an ActiveDOMObject should really not run script after stop() has been called. I think that if events were still fired after stop() has been called, it would be a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636949</commentid>
    <comment_count>6</comment_count>
      <attachid>395280</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 10:59:27 -0700</bug_when>
    <thetext>Created attachment 395280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636977</commentid>
    <comment_count>7</comment_count>
      <attachid>395283</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 11:49:00 -0700</bug_when>
    <thetext>Created attachment 395283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637058</commentid>
    <comment_count>8</comment_count>
      <attachid>395283</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-04-02 14:19:49 -0700</bug_when>
    <thetext>Comment on attachment 395283
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4777
&gt; -            push(@implContent, &quot;    if (js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);
&gt; +            push(@implContent, &quot;    if (!js${interfaceName}-&gt;wrapped().isContextStopped() &amp;&amp; js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);

Can we add a helper function like hasPendingActivityAndNotStopped so that we don&apos;t do de-referencing twice here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637059</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 14:20:53 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #8)
&gt; Comment on attachment 395283 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395283&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4777
&gt; &gt; -            push(@implContent, &quot;    if (js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);
&gt; &gt; +            push(@implContent, &quot;    if (!js${interfaceName}-&gt;wrapped().isContextStopped() &amp;&amp; js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);
&gt; 
&gt; Can we add a helper function like hasPendingActivityAndNotStopped so that we
&gt; don&apos;t do de-referencing twice here?

I can also add a stack variable in before the if check for js${interfaceName}-&gt;wrapped(). I figured it did not matter much because it is generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637061</commentid>
    <comment_count>10</comment_count>
      <attachid>395299</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 14:26:29 -0700</bug_when>
    <thetext>Created attachment 395299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637075</commentid>
    <comment_count>11</comment_count>
      <attachid>395299</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 14:49:49 -0700</bug_when>
    <thetext>Comment on attachment 395299
Patch

Clearing flags on attachment: 395299

Committed r259419: &lt;https://trac.webkit.org/changeset/259419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637076</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-02 14:49:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637077</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-04-02 14:49:55 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; (In reply to Ryosuke Niwa from comment #8)
&gt; &gt; Comment on attachment 395283 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=395283&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4777
&gt; &gt; &gt; -            push(@implContent, &quot;    if (js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);
&gt; &gt; &gt; +            push(@implContent, &quot;    if (!js${interfaceName}-&gt;wrapped().isContextStopped() &amp;&amp; js${interfaceName}-&gt;wrapped().hasPendingActivity()) {\n&quot;);
&gt; &gt; 
&gt; &gt; Can we add a helper function like hasPendingActivityAndNotStopped so that we
&gt; &gt; don&apos;t do de-referencing twice here?
&gt; 
&gt; I can also add a stack variable in before the if check for
&gt; js${interfaceName}-&gt;wrapped(). I figured it did not matter much because it
&gt; is generated code.

Generated code or not, it would incur runtime cost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637080</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-02 14:50:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/61227728&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395219</attachid>
            <date>2020-04-01 16:15:36 -0700</date>
            <delta_ts>2020-04-01 16:27:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200401161535.patch</filename>
            <type>text/plain</type>
            <size>14392</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiYjIxNzcyYTM2ZDUw
ZWM4NjIwN2FjZWM1NTVkMjlhYTJkOTVhMC4uZDU4MmEwZmIyNjlkY2IzNzA2MTZmYWMzMGRiMDU1
ZTNmNWY5YTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgp
IGhhcyBiZWVuIGNhbGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2
ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0OjpzdG9wKCkgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGlzIGFib3V0IHRvIGdldCBkZXN0cm95ZWQuCisgICAgICAgIEF0IHRoaXMgcG9p
bnQsIHdlIHNob3VsZCBubyBsb25nZXIgYmUgcnVubmluZyBzY3JpcHQgc28gdGhlcmUgaXMgbmV2
ZXIgYW55IG5lZWQgdG8ga2VlcCB0aGUgSlMKKyAgICAgICAgd3JhcHBlciBhbGl2ZS4gQXMgYSBy
ZXN1bHQsIEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgc2hvdWxkIGJlIHJl
dHVybmluZyBmYWxzZQorICAgICAgICBhZnRlciBzdG9wKCkgaGFzIGJlZW4gY2FsbGVkLiBUaGlz
IHdpbGwgbWFrZSBpdCBoYXJkZXIgdG8gY2F1c2UgSlMgd3JhcHBlciBsZWFrcyB3aXRoCisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN0b3ApOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bm90aWZ5RGlkQWJv
cnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1RvRmly
ZVVwZGF0ZUZvdW5kRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbCBpcyBmbGFreSBjcmFzaGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDNh
N2IyMjliZjdjZTQ0NDdkZDcwNzJlOWY3OGVjNDdmNTZlMmUyMzcuLjM4YWRiODgwYjZkYjU5Mjlm
NGQ5MDIwZDk0NzUyZmNkZTdlZmVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBJREJEYXRh
YmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRo
cmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKIAotICAgIGlmIChtX2Nsb3NlZEluU2VydmVyIHx8IGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICBpZiAobV9jbG9zZWRJblNlcnZlcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2FjdGl2ZVRyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwg
IW1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwgIW1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAppbmRleCA1MDUyNDMzZTU1OTBhMjc3ZDVmZmFjOGMyMjE0MGY4NjAzYTBh
YTY1Li44ZDIwMTE3MTJmNzFmM2EzNDAzY2RmNGY2NmJiMTI1NGYwMzc3ZWMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMjYyLDIx
ICsyNjIsMTggQEAgY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiBib29sIElEQlJlcXVlc3Q6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dAogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9y
aWdpblRocmVhZCgpKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7Ci0gICAgcmV0dXJuICFt
X2NvbnRleHRTdG9wcGVkICYmIG1faGFzUGVuZGluZ0FjdGl2aXR5OworICAgIHJldHVybiBtX2hh
c1BlbmRpbmdBY3Rpdml0eTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzdG9wKCkKIHsKICAgICBB
U1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQo
KSkpOwotICAgIEFTU0VSVCghbV9jb250ZXh0U3RvcHBlZCk7CiAKICAgICBjYW5jZWxGb3JTdG9w
KCk7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCiAgICAgY2xlYXJXcmFwcGVy
cygpOwotCi0gICAgbV9jb250ZXh0U3RvcHBlZCA9IHRydWU7CiB9CiAKIHZvaWQgSURCUmVxdWVz
dDo6Y2FuY2VsRm9yU3RvcCgpCkBAIC0yODcsNyArMjg0LDcgQEAgdm9pZCBJREJSZXF1ZXN0Ojpj
YW5jZWxGb3JTdG9wKCkKIHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4m
JiBldmVudCkKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2Fs
RGF0YShvcmlnaW5UaHJlYWQoKSkpOwotICAgIGlmIChtX2NvbnRleHRTdG9wcGVkKQorICAgIGlm
IChpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHF1ZXVlVGFza1Rv
RGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0YWJhc2VBY2Nlc3MsIFdURk1vdmUo
ZXZlbnQpKTsKQEAgLTI5OSw3ICsyOTYsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZl
bnQoRXZlbnQmIGV2ZW50KQogCiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJl
YWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKICAgICBBU1NFUlQobV9oYXNQZW5kaW5nQWN0
aXZpdHkpOwotICAgIEFTU0VSVCghbV9jb250ZXh0U3RvcHBlZCk7CisgICAgQVNTRVJUKCFpc0Nv
bnRleHRTdG9wcGVkKCkpOwogCiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAgICAgbV9kaXNwYXRjaGluZ0V2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCAyY2ViNWQzZGRhMjcxOGVjN2ViMjJl
ZTM5OWU2Mzg1MTQzNDZlZThlLi45YTQ2MTFiY2JkYTlhMjg1NjcxYzU5M2VmZjQ4YTZkNzdmZjQ2
ZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CkBAIC0xNDQsNyArMTQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9zaG91bGRFeHBvc2VU
cmFuc2FjdGlvblRvRE9NIHsgdHJ1ZSB9OwogICAgIFJlZlB0cjxET01FeGNlcHRpb24+IG1fZG9t
RXJyb3I7CiAgICAgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSBtX3JlcXVlc3RUeXBlIHsgSW5kZXhl
ZERCOjpSZXF1ZXN0VHlwZTo6T3RoZXIgfTsKLSAgICBib29sIG1fY29udGV4dFN0b3BwZWQgeyBm
YWxzZSB9OwogICAgIEV2ZW50KiBtX29wZW5EYXRhYmFzZVN1Y2Nlc3NFdmVudCB7IG51bGxwdHIg
fTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCAyMGQ2OGUwZTA0NjcxOThhN2QxOTc3MDdjYjA4NWYz
MDY2MDU3NDVlLi4wNmE5MzRhY2JmM2JkNjQyMzM0YmNhYzNlYjFjM2MyODJhYjQyNDE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCkBAIC0zMTgsNyArMzE4LDcgQEAgY29uc3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAogYm9vbCBJREJUcmFuc2FjdGlvbjo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nl
c3NUaHJlYWRMb2NhbERhdGEobV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6
bWF5QmVHQ1RocmVhZCgpKTsKLSAgICByZXR1cm4gIW1fY29udGV4dFN0b3BwZWQgJiYgbV9zdGF0
ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOworICAgIHJldHVybiBt
X3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNoZWQ7CiB9CiAKIHZv
aWQgSURCVHJhbnNhY3Rpb246OnN0b3AoKQpAQCAtMzI4LDEyICszMjgsMTIgQEAgdm9pZCBJREJU
cmFuc2FjdGlvbjo6c3RvcCgpCiAKICAgICAvLyBJREJEYXRhYmFzZTo6c3RvcCgpIGNhbGxzIElE
QlRyYW5zYWN0aW9uOjpzdG9wKCkgZm9yIGVhY2ggb2YgaXRzIGFjdGl2ZSB0cmFuc2FjdGlvbnMu
CiAgICAgLy8gU2luY2UgdGhlIG9yZGVyIG9mIGNhbGxpbmcgQWN0aXZlRE9NT2JqZWN0OjpzdG9w
KCkgaXMgcmFuZG9tLCB3ZSBtaWdodCBhbHJlYWR5IGhhdmUgYmVlbiBzdG9wcGVkLgotICAgIGlm
IChtX2NvbnRleHRTdG9wcGVkKQorICAgIGlmIChtX2lzU3RvcHBlZCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAotICAgIG1fY29udGV4dFN0b3Bw
ZWQgPSB0cnVlOworICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIAogICAgIGlmIChpc1ZlcnNpb25D
aGFuZ2UoKSkKICAgICAgICAgbV9vcGVuREJSZXF1ZXN0ID0gbnVsbHB0cjsKQEAgLTUxOCw3ICs1
MTgsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpub3RpZnlEaWRBYm9ydChjb25zdCBJREJFcnJv
ciYgZXJyb3IpCiAgICAgbV9pZGJFcnJvciA9IGVycm9yOwogICAgIGZpcmVPbkFib3J0KCk7CiAK
LSAgICBpZiAoaXNWZXJzaW9uQ2hhbmdlKCkgJiYgIW1fY29udGV4dFN0b3BwZWQpIHsKKyAgICBp
ZiAoaXNWZXJzaW9uQ2hhbmdlKCkgJiYgIWlzQ29udGV4dFN0b3BwZWQoKSkgewogICAgICAgICBB
U1NFUlQobV9vcGVuREJSZXF1ZXN0KTsKICAgICAgICAgbV9vcGVuREJSZXF1ZXN0LT5maXJlRXJy
b3JBZnRlclZlcnNpb25DaGFuZ2VDb21wbGV0aW9uKCk7CiAgICAgfQpAQCAtNTczLDcgKzU3Myw3
IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQp
CiAgICAgQVNTRVJUKG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5p
c2hlZCk7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEo
bV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkKCkpKTsKIAotICAgIGlmICghc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIHx8IG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgfHwgaXNDb250ZXh0U3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBx
dWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRhdGFiYXNlQWNjZXNz
LCBXVEZNb3ZlKGV2ZW50KSk7CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlv
bjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBBU1NFUlQoY2FuQ3VycmVudFRo
cmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkpOwog
ICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIEFTU0VSVCghbV9jb250
ZXh0U3RvcHBlZCk7CisgICAgQVNTRVJUKCFpc0NvbnRleHRTdG9wcGVkKCkpOwogICAgIEFTU0VS
VChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbXBsZXRlRXZlbnQgfHwgZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKIAogICAgIGF1dG8gcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggNTViMGQxMGRmNzVmYTIyMGY4YjA2NDNjMWE3NmU4
ZTQzYTk2NjJlMS4uY2RiZWU2OTNlZGI2MzM3MGExYjg4ZDA0NTJjM2YzMjVkM2NmOWQ0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5o
CkBAIC0yNjIsNyArMjYyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFJlZlB0cjxJREJSZXF1
ZXN0Pj4gbV9vcGVuUmVxdWVzdHM7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IG1fY3VycmVudGx5
Q29tcGxldGluZ1JlcXVlc3Q7CiAKLSAgICBib29sIG1fY29udGV4dFN0b3BwZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWREaXNwYXRj
aEFib3J0T3JDb21taXQgeyBmYWxzZSB9OwogCiAgICAgdWludDY0X3QgbV9sYXN0V3JpdGVPcGVy
YXRpb25JRCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCAzYjY0ZGVjNTZmMjQ4OWIxYjYxNTliZGY0YTY0Yjlh
NTk4NTQ0MzM4Li5iYmZlYWJmY2M5YzU0ZjhhZWRhMmUwMDIzYjgxZjEyODE3MmUxNzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OnNjaGVkdWxlZEV2ZW50
VGltZXJGaXJlZCgpCiAKIGJvb2wgTWVkaWFEZXZpY2VzOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlzQ29udGV4dFN0b3BwZWQoKSAmJiBoYXNFdmVu
dExpc3RlbmVycyhtX2V2ZW50TmFtZXMuZGV2aWNlY2hhbmdlRXZlbnQpOworICAgIHJldHVybiBo
YXNFdmVudExpc3RlbmVycyhtX2V2ZW50TmFtZXMuZGV2aWNlY2hhbmdlRXZlbnQpOwogfQogCiBj
b25zdCBjaGFyKiBNZWRpYURldmljZXM6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggYTUyNTA2MTE2NGE0MDViMGFmZjVmZWVmYjM0ZjdiMDgy
YTkxYjFjNi4uYzA2ZDFmMzgzYmY1ZmExMzcwYjZjOGE5M2I1MTA1ZjgxYTBhOWY2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwCkBAIC00ODgsNyArNDg4LDcgQEAgY29uc3QgY2hhciogRm9udEZh
Y2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIEZvbnRGYWNlOjp2aXJ0dWFs
SGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlzQ29udGV4dFN0b3Bw
ZWQoKSAmJiBtX21heUxvYWRlZFByb21pc2VCZVNjcmlwdE9ic2VydmFibGUgJiYgIW1fbG9hZGVk
UHJvbWlzZS0+aXNGdWxmaWxsZWQoKTsKKyAgICByZXR1cm4gbV9tYXlMb2FkZWRQcm9taXNlQmVT
Y3JpcHRPYnNlcnZhYmxlICYmICFtX2xvYWRlZFByb21pc2UtPmlzRnVsZmlsbGVkKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAppbmRleCA3YWQ0ZGE2OGQyMzY5Njgx
YTNkZThkYWM1YjIwMjJjY2Y1MTgzZjcyLi5mZDA5NjMzOGMxNDY2YjBlYTA2ODAwODQyY2U2Yjc4
NWM4ZGE5NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCkBAIC01NSw3ICs1
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHZvaWQgYXNz
ZXJ0U3VzcGVuZElmTmVlZGVkV2FzQ2FsbGVkKCkgY29uc3Q7CiAKLSAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0FjdGl2aXR5SW5zdGFuY2VDb3Vu
dCB8fCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCk7IH0KKyAgICAvLyBUaGlzIGZ1bmN0aW9u
IGlzIHVzZWQgYnkgSlMgYmluZGluZ3MgdG8gZGV0ZXJtaW5lIGlmIHRoZSBKUyB3cmFwcGVyIHNo
b3VsZCBiZSBrZXB0IGFsaXZlIG9yIG5vdC4KKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IHsgcmV0dXJuICFpc0NvbnRleHRTdG9wcGVkKCkgfHwgbV9wZW5kaW5nQWN0aXZpdHlJ
bnN0YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKTsgfQogCiAgICAgLy8g
SG93ZXZlciwgdGhlIHN1c3BlbmQgZnVuY3Rpb24gd2lsbCBzb21ldGltZXMgYmUgY2FsbGVkIGV2
ZW4gaWYgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIHJldHVybnMgZmFsc2UuCiAg
ICAgLy8gVGhhdCBoYXBwZW5zIGluIHN0ZXAtYnktc3RlcCBKUyBkZWJ1Z2dpbmcgZm9yIGV4YW1w
bGUgLSBpbiB0aGlzIGNhc2UgaXQgd291bGQgYmUgaW5jb3JyZWN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGVmMmI1NjQ1NDNkYTY1YzZkN2JiNjQwNmNi
MGZhODg3ODAzNDIxMTUuLmQxODc3N2U4ZjMwNzI1ZmIyNTkxZmQ5ZTg1ODI1NGVlNzViYmM1MmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC05NTcsOSAr
OTU3LDYgQEAgY29uc3QgY2hhciogSFRNTENhbnZhc0VsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdAogCiBib29sIEhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKIHsKLSAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGlzPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U+KG1fY29udGV4dC5nZXQoKSkpIHsKICAgICAgICAgLy8gV2ViR0wgcmVu
ZGVyaW5nIGNvbnRleHQgbWF5IGZpcmUgY29udGV4dGxvc3QgLyBjb250ZXh0Y2hhbmdlIC8gY29u
dGV4dHJlc3RvcmVkIGV2ZW50cyBhdCBhbnkgcG9pbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAK
aW5kZXggZDVmYTMyNzQ0YjBjYThmZmYzOGY4YzMwN2FlZWY0NzFiYjlkOGNkMS4uYmVhMzJhNWI1
YzNkYmEyMTkwMjkxMjNmNGM0NWE0NDRiZGU1Y2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cApAQCAtNDksNyArNDksNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbik7CiBSZWY8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0T3JDcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+JiYgY29udGFpbmVyLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEpCiB7CiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJh
dGlvbiA9IGNvbnRhaW5lci0+cmVnaXN0cmF0aW9uKGRhdGEuaWRlbnRpZmllcikpIHsKLSAgICAg
ICAgQVNTRVJUKCFyZWdpc3RyYXRpb24tPm1faXNTdG9wcGVkKTsKKyAgICAgICAgQVNTRVJUKCFy
ZWdpc3RyYXRpb24tPmlzQ29udGV4dFN0b3BwZWQoKSk7CiAgICAgICAgIHJldHVybiAqcmVnaXN0
cmF0aW9uOwogICAgIH0KIApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6c2V0VXBkYXRlVmlhQ2FjaGUoU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hl
IHVwCiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBkYXRlKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9pc1N0b3BwZWQpIHsKKyAgICBpZiAo
aXNDb250ZXh0U3RvcHBlZCgpKSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24o
SW52YWxpZFN0YXRlRXJyb3IpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NCw3ICsx
NTQsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZShSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6
dW5yZWdpc3RlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1f
aXNTdG9wcGVkKSB7CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkgewogICAgICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uKEludmFsaWRTdGF0ZUVycm9yKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjp1cGRhdGVTdGF0ZUZyb21TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblMKIAog
dm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpxdWV1ZVRhc2tUb0ZpcmVVcGRhdGVGb3Vu
ZEV2ZW50KCkKIHsKLSAgICBpZiAobV9pc1N0b3BwZWQpCisgICAgaWYgKGlzQ29udGV4dFN0b3Bw
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImZpcmVVcGRhdGVGb3VuZEV2ZW50OiBGaXJpbmcgdXBkYXRlZm91bmQgZXZlbnQg
Zm9yIHJlZ2lzdHJhdGlvbiAlbGx1IiwgaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwpAQCAtMjA3
LDEzICsyMDcsMTIgQEAgY29uc3QgY2hhciogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bjo6c3RvcCgpCiB7Ci0gICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogICAgIHJlbW92ZUFsbEV2ZW50
TGlzdGVuZXJzKCk7CiB9CiAKIGJvb2wgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dmlydHVh
bEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX2lzU3RvcHBlZCAm
JiBnZXROZXdlc3RXb3JrZXIoKSAmJiBoYXNFdmVudExpc3RlbmVycygpOworICAgIHJldHVybiBn
ZXROZXdlc3RXb3JrZXIoKSAmJiBoYXNFdmVudExpc3RlbmVycygpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCBlMDBjYWU5NjYwZmEwZDM1YjRk
ODkxYzQwMzQyZThkM2E0MWU5NWNmLi4wNzVmYWQ3OTYwYjNjZTcwZWRhYzJlMTI4MmRkNzY1M2Yw
YmY2MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTk1LDggKzk1LDYgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0
cjxTZXJ2aWNlV29ya2VyPiBtX3dhaXRpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3Jr
ZXI+IG1fYWN0aXZlV29ya2VyOwotCi0gICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395223</attachid>
            <date>2020-04-01 16:27:08 -0700</date>
            <delta_ts>2020-04-02 08:43:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200401162707.patch</filename>
            <type>text/plain</type>
            <size>15369</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiYjIxNzcyYTM2ZDUw
ZWM4NjIwN2FjZWM1NTVkMjlhYTJkOTVhMC4uZDU4MmEwZmIyNjlkY2IzNzA2MTZmYWMzMGRiMDU1
ZTNmNWY5YTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgp
IGhhcyBiZWVuIGNhbGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2
ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0OjpzdG9wKCkgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGlzIGFib3V0IHRvIGdldCBkZXN0cm95ZWQuCisgICAgICAgIEF0IHRoaXMgcG9p
bnQsIHdlIHNob3VsZCBubyBsb25nZXIgYmUgcnVubmluZyBzY3JpcHQgc28gdGhlcmUgaXMgbmV2
ZXIgYW55IG5lZWQgdG8ga2VlcCB0aGUgSlMKKyAgICAgICAgd3JhcHBlciBhbGl2ZS4gQXMgYSBy
ZXN1bHQsIEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgc2hvdWxkIGJlIHJl
dHVybmluZyBmYWxzZQorICAgICAgICBhZnRlciBzdG9wKCkgaGFzIGJlZW4gY2FsbGVkLiBUaGlz
IHdpbGwgbWFrZSBpdCBoYXJkZXIgdG8gY2F1c2UgSlMgd3JhcHBlciBsZWFrcyB3aXRoCisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN0b3ApOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bm90aWZ5RGlkQWJv
cnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1RvRmly
ZVVwZGF0ZUZvdW5kRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbCBpcyBmbGFreSBjcmFzaGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDNh
N2IyMjliZjdjZTQ0NDdkZDcwNzJlOWY3OGVjNDdmNTZlMmUyMzcuLjM4YWRiODgwYjZkYjU5Mjlm
NGQ5MDIwZDk0NzUyZmNkZTdlZmVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBJREJEYXRh
YmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRo
cmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKIAotICAgIGlmIChtX2Nsb3NlZEluU2VydmVyIHx8IGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICBpZiAobV9jbG9zZWRJblNlcnZlcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2FjdGl2ZVRyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwg
IW1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwgIW1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCBkYmFmNDNlNDhjYzIyNWNiMDgxZGIyNzlh
ODkxODhmMGEzMGZhYTZiLi42M2QxMWIzNWNhYjc3OTc5N2ExYzUyN2FiODk4OTYxYmY3YWQ2YjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6
cmVxdWVzdENvbXBsZXRlZChjb25zdCBJREJSZXN1bHREYXRhJiBkYXRhKQogICAgIC8vIElmIGFu
IE9wZW4gcmVxdWVzdCB3YXMgY29tcGxldGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBuYXZpZ2F0ZWQs
IGxlYXZpbmcgdGhpcyByZXF1ZXN0CiAgICAgLy8gd2l0aCBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0LCB3ZSBuZWVkIHRvIG1lc3NhZ2UgYmFjayB0byB0aGUgc2VydmVyIHNvIGl0
CiAgICAgLy8gZG9lc24ndCBoYW5nIHdhaXRpbmcgb24gYSBkYXRhYmFzZSBjb25uZWN0aW9uIG9y
IHRyYW5zYWN0aW9uIHRoYXQgd2lsbCBuZXZlciBleGlzdC4KLSAgICBpZiAobV9jb250ZXh0U3Rv
cHBlZCkgeworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAgICAgICAgc3dpdGNoIChk
YXRhLnR5cGUoKSkgewogICAgICAgICBjYXNlIElEQlJlc3VsdFR5cGU6Ok9wZW5EYXRhYmFzZVN1
Y2Nlc3M6CiAgICAgICAgICAgICBjb25uZWN0aW9uUHJveHkoKS5hYm9ydE9wZW5BbmRVcGdyYWRl
TmVlZGVkKGRhdGEuZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcigpLCBJREJSZXNvdXJjZUlk
ZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDUwNTI0MzNlNTU5MGEyNzdkNWZmYWM4YzIyMTQw
Zjg2MDNhMGFhNjUuLjhkMjAxMTcxMmY3MWYzYTM0MDNjZGY0ZjY2YmIxMjU0ZjAzNzdlYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBA
IC0yNjIsMjEgKzI2MiwxOCBAQCBjb25zdCBjaGFyKiBJREJSZXF1ZXN0OjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKIGJvb2wgSURCUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2Nh
bERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKLSAgICBy
ZXR1cm4gIW1fY29udGV4dFN0b3BwZWQgJiYgbV9oYXNQZW5kaW5nQWN0aXZpdHk7CisgICAgcmV0
dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5OwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OnN0b3AoKQog
ewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdp
blRocmVhZCgpKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKIAogICAgIGNhbmNl
bEZvclN0b3AoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICAgICBjbGVh
cldyYXBwZXJzKCk7Ci0KLSAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBJ
REJSZXF1ZXN0OjpjYW5jZWxGb3JTdG9wKCkKQEAgLTI4Nyw3ICsyODQsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6OmNhbmNlbEZvclN0b3AoKQogdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUmVm
PEV2ZW50PiYmIGV2ZW50KQogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhy
ZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQp
CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpEYXRhYmFzZUFjY2Vzcywg
V1RGTW92ZShldmVudCkpOwpAQCAtMjk5LDcgKzI5Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6ZGlz
cGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFj
Y2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwogICAgIEFTU0VSVChtX2hhc1Bl
bmRpbmdBY3Rpdml0eSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NF
UlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKICAgICBtX2Rpc3BhdGNoaW5nRXZlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDJjZWI1ZDNkZGEyNzE4
ZWM3ZWIyMmVlMzk5ZTYzODUxNDM0NmVlOGUuLjlhNDYxMWJjYmRhOWEyODU2NzFjNTkzZWZmNDhh
NmQ3N2ZmNDZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmgKQEAgLTE0NCw3ICsxNDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3Nob3Vs
ZEV4cG9zZVRyYW5zYWN0aW9uVG9ET00geyB0cnVlIH07CiAgICAgUmVmUHRyPERPTUV4Y2VwdGlv
bj4gbV9kb21FcnJvcjsKICAgICBJbmRleGVkREI6OlJlcXVlc3RUeXBlIG1fcmVxdWVzdFR5cGUg
eyBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPdGhlciB9OwotICAgIGJvb2wgbV9jb250ZXh0U3Rv
cHBlZCB7IGZhbHNlIH07CiAgICAgRXZlbnQqIG1fb3BlbkRhdGFiYXNlU3VjY2Vzc0V2ZW50IHsg
bnVsbHB0ciB9OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDIwZDY4ZTBlMDQ2NzE5OGE3ZDE5Nzcw
N2NiMDg1ZjMwNjYwNTc0NWUuLjA2YTkzNGFjYmYzYmQ2NDIzMzRiY2FjM2ViMWMzYzI4MmFiNDI0
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBjb25zdCBjaGFyKiBJREJUcmFuc2FjdGlv
bjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBib29sIElEQlRyYW5zYWN0aW9uOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRo
cmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkgfHwg
VGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOwotICAgIHJldHVybiAhbV9jb250ZXh0U3RvcHBlZCAm
JiBtX3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNoZWQ7CisgICAg
cmV0dXJuIG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
IH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c3RvcCgpCkBAIC0zMjgsMTIgKzMyOCwxMiBAQCB2
b2lkIElEQlRyYW5zYWN0aW9uOjpzdG9wKCkKIAogICAgIC8vIElEQkRhdGFiYXNlOjpzdG9wKCkg
Y2FsbHMgSURCVHJhbnNhY3Rpb246OnN0b3AoKSBmb3IgZWFjaCBvZiBpdHMgYWN0aXZlIHRyYW5z
YWN0aW9ucy4KICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgY2FsbGluZyBBY3RpdmVET01PYmpl
Y3Q6OnN0b3AoKSBpcyByYW5kb20sIHdlIG1pZ2h0IGFscmVhZHkgaGF2ZSBiZWVuIHN0b3BwZWQu
Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKG1faXNTdG9wcGVkKQogICAgICAg
ICByZXR1cm47CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCi0gICAgbV9jb250
ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogCiAgICAgaWYgKGlz
VmVyc2lvbkNoYW5nZSgpKQogICAgICAgICBtX29wZW5EQlJlcXVlc3QgPSBudWxscHRyOwpAQCAt
NTE4LDcgKzUxOCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Om5vdGlmeURpZEFib3J0KGNvbnN0
IElEQkVycm9yJiBlcnJvcikKICAgICBtX2lkYkVycm9yID0gZXJyb3I7CiAgICAgZmlyZU9uQWJv
cnQoKTsKIAotICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhbV9jb250ZXh0U3RvcHBlZCkg
eworICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAg
ICAgICAgIEFTU0VSVChtX29wZW5EQlJlcXVlc3QpOwogICAgICAgICBtX29wZW5EQlJlcXVlc3Qt
PmZpcmVFcnJvckFmdGVyVmVyc2lvbkNoYW5nZUNvbXBsZXRpb24oKTsKICAgICB9CkBAIC01NzMs
NyArNTczLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4m
JiBldmVudCkKICAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3Rh
dGU6OkZpbmlzaGVkKTsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExv
Y2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkpOwogCi0gICAgaWYgKCFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgfHwgbV9jb250ZXh0U3RvcHBlZCkKKyAgICBpZiAoIXNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0YWJh
c2VBY2Nlc3MsIFdURk1vdmUoZXZlbnQpKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIAogICAgIEFTU0VSVChjYW5D
dXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG1fZGF0YWJhc2UtPm9yaWdpblRocmVh
ZCgpKSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgQVNTRVJU
KCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAg
ICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY29tcGxldGVFdmVudCB8fCBl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogCiAgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCA1NWIwZDEwZGY3NWZhMjIwZjhiMDY0
M2MxYTc2ZThlNDNhOTY2MmUxLi5jZGJlZTY5M2VkYjYzMzcwYTFiODhkMDQ1MmMzZjMyNWQzY2Y5
ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRy
PElEQlJlcXVlc3Q+PiBtX29wZW5SZXF1ZXN0czsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gbV9j
dXJyZW50bHlDb21wbGV0aW5nUmVxdWVzdDsKIAotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Rp
ZERpc3BhdGNoQWJvcnRPckNvbW1pdCB7IGZhbHNlIH07CiAKICAgICB1aW50NjRfdCBtX2xhc3RX
cml0ZU9wZXJhdGlvbklEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDNiNjRkZWM1NmYyNDg5YjFiNjE1OWJk
ZjRhNjRiOWE1OTg1NDQzMzguLmJiZmVhYmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcyZTE3
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6c2NoZWR1
bGVkRXZlbnRUaW1lckZpcmVkKCkKIAogYm9vbCBNZWRpYURldmljZXM6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250ZXh0U3RvcHBlZCgpICYm
IGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7CisgICAg
cmV0dXJuIGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7
CiB9CiAKIGNvbnN0IGNoYXIqIE1lZGlhRGV2aWNlczo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCBhNTI1MDYxMTY0YTQwNWIwYWZmNWZlZWZi
MzRmN2IwODJhOTFiMWM2Li5jMDZkMWYzODNiZjVmYTEzNzBiNmM4YTkzYjUxMDVmODFhMGE5ZjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBAQCBjb25zdCBjaGFy
KiBGb250RmFjZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgRm9udEZhY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250
ZXh0U3RvcHBlZCgpICYmIG1fbWF5TG9hZGVkUHJvbWlzZUJlU2NyaXB0T2JzZXJ2YWJsZSAmJiAh
bV9sb2FkZWRQcm9taXNlLT5pc0Z1bGZpbGxlZCgpOworICAgIHJldHVybiBtX21heUxvYWRlZFBy
b21pc2VCZVNjcmlwdE9ic2VydmFibGUgJiYgIW1fbG9hZGVkUHJvbWlzZS0+aXNGdWxmaWxsZWQo
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IDdhZDRkYTY4
ZDIzNjk2ODFhM2RlOGRhYzViMjAyMmNjZjUxODNmNzIuLmZkMDk2MzM4YzE0NjZiMGVhMDY4MDA4
NDJjZTZiNzg1YzhkYTk1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAg
LTU1LDcgKzU1LDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAg
dm9pZCBhc3NlcnRTdXNwZW5kSWZOZWVkZWRXYXNDYWxsZWQoKSBjb25zdDsKIAotICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nQWN0aXZpdHlJbnN0
YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKTsgfQorICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgdXNlZCBieSBKUyBiaW5kaW5ncyB0byBkZXRlcm1pbmUgaWYgdGhlIEpTIHdy
YXBwZXIgc2hvdWxkIGJlIGtlcHQgYWxpdmUgb3Igbm90LgorICAgIGJvb2wgaGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QgeyByZXR1cm4gIWlzQ29udGV4dFN0b3BwZWQoKSB8fCBtX3BlbmRpbmdB
Y3Rpdml0eUluc3RhbmNlQ291bnQgfHwgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpOyB9CiAK
ICAgICAvLyBIb3dldmVyLCB0aGUgc3VzcGVuZCBmdW5jdGlvbiB3aWxsIHNvbWV0aW1lcyBiZSBj
YWxsZWQgZXZlbiBpZiBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgcmV0dXJucyBm
YWxzZS4KICAgICAvLyBUaGF0IGhhcHBlbnMgaW4gc3RlcC1ieS1zdGVwIEpTIGRlYnVnZ2luZyBm
b3IgZXhhbXBsZSAtIGluIHRoaXMgY2FzZSBpdCB3b3VsZCBiZSBpbmNvcnJlY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggZWYyYjU2NDU0M2RhNjVjNmQ3
YmI2NDA2Y2IwZmE4ODc4MDM0MjExNS4uZDE4Nzc3ZThmMzA3MjVmYjI1OTFmZDllODU4MjU0ZWU3
NWJiYzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTk1Nyw5ICs5NTcsNiBAQCBjb25zdCBjaGFyKiBIVE1MQ2FudmFzRWxlbWVudDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAoaXM8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jb250ZXh0LmdldCgpKSkgewogICAgICAgICAvLyBX
ZWJHTCByZW5kZXJpbmcgY29udGV4dCBtYXkgZmlyZSBjb250ZXh0bG9zdCAvIGNvbnRleHRjaGFu
Z2UgLyBjb250ZXh0cmVzdG9yZWQgZXZlbnRzIGF0IGFueSBwb2ludC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmNwcAppbmRleCBkNWZhMzI3NDRiMGNhOGZmZjM4ZjhjMzA3YWVlZjQ3MWJiOWQ4Y2QxLi5i
ZWEzMmE1YjVjM2RiYTIxOTAyOTEyM2Y0YzQ1YTQ0NGJkZTVjYjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uY3BwCkBAIC00OSw3ICs0OSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKTsKIFJlZjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
PiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpnZXRPckNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBSZWY8U2VydmljZVdvcmtlckNvbnRhaW5lcj4mJiBjb250YWluZXIs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgZGF0YSkKIHsKICAgICBpZiAoYXV0byog
cmVnaXN0cmF0aW9uID0gY29udGFpbmVyLT5yZWdpc3RyYXRpb24oZGF0YS5pZGVudGlmaWVyKSkg
ewotICAgICAgICBBU1NFUlQoIXJlZ2lzdHJhdGlvbi0+bV9pc1N0b3BwZWQpOworICAgICAgICBB
U1NFUlQoIXJlZ2lzdHJhdGlvbi0+aXNDb250ZXh0U3RvcHBlZCgpKTsKICAgICAgICAgcmV0dXJu
ICpyZWdpc3RyYXRpb247CiAgICAgfQogCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uOjpzZXRVcGRhdGVWaWFDYWNoZShTZXJ2aWNlV29ya2VyVXBkYXRl
VmlhQ2FjaGUgdXAKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGUoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGlmIChtX2lzU3RvcHBlZCkgewor
ICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4
Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MTU0LDcgKzE1NCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBkYXRlKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uOjp1bnJlZ2lzdGVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAg
ICBpZiAobV9pc1N0b3BwZWQpIHsKKyAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAgICAg
ICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3IpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb246OnVwZGF0ZVN0YXRlRnJvbVNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uUwogCiB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1RvRmlyZVVw
ZGF0ZUZvdW5kRXZlbnQoKQogewotICAgIGlmIChtX2lzU3RvcHBlZCkKKyAgICBpZiAoaXNDb250
ZXh0U3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSRUdJU1RSQVRJT05fUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZmlyZVVwZGF0ZUZvdW5kRXZlbnQ6IEZpcmluZyB1cGRhdGVmb3Vu
ZCBldmVudCBmb3IgcmVnaXN0cmF0aW9uICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7
CkBAIC0yMDcsMTMgKzIwNywxMiBAQCBjb25zdCBjaGFyKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uOjpzdG9wKCkKIHsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAgcmVtb3Zl
QWxsRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAogYm9vbCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1faXNT
dG9wcGVkICYmIGdldE5ld2VzdFdvcmtlcigpICYmIGhhc0V2ZW50TGlzdGVuZXJzKCk7CisgICAg
cmV0dXJuIGdldE5ld2VzdFdvcmtlcigpICYmIGhhc0V2ZW50TGlzdGVuZXJzKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCmluZGV4IGUwMGNhZTk2NjBm
YTBkMzViNGQ4OTFjNDAzNDJlOGQzYTQxZTk1Y2YuLjA3NWZhZDc5NjBiM2NlNzBlZGFjMmUxMjgy
ZGQ3NjUzZjBiZjYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaApAQCAtOTUsOCArOTUsNiBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBtX2luc3RhbGxpbmdXb3JrZXI7CiAg
ICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fd2FpdGluZ1dvcmtlcjsKICAgICBSZWZQdHI8U2Vy
dmljZVdvcmtlcj4gbV9hY3RpdmVXb3JrZXI7Ci0KLSAgICBib29sIG1faXNTdG9wcGVkIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395268</attachid>
            <date>2020-04-02 08:43:32 -0700</date>
            <delta_ts>2020-04-02 10:59:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200402084331.patch</filename>
            <type>text/plain</type>
            <size>15371</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiYjIxNzcyYTM2ZDUw
ZWM4NjIwN2FjZWM1NTVkMjlhYTJkOTVhMC4uZDU4MmEwZmIyNjlkY2IzNzA2MTZmYWMzMGRiMDU1
ZTNmNWY5YTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgp
IGhhcyBiZWVuIGNhbGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2
ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0OjpzdG9wKCkgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGlzIGFib3V0IHRvIGdldCBkZXN0cm95ZWQuCisgICAgICAgIEF0IHRoaXMgcG9p
bnQsIHdlIHNob3VsZCBubyBsb25nZXIgYmUgcnVubmluZyBzY3JpcHQgc28gdGhlcmUgaXMgbmV2
ZXIgYW55IG5lZWQgdG8ga2VlcCB0aGUgSlMKKyAgICAgICAgd3JhcHBlciBhbGl2ZS4gQXMgYSBy
ZXN1bHQsIEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgc2hvdWxkIGJlIHJl
dHVybmluZyBmYWxzZQorICAgICAgICBhZnRlciBzdG9wKCkgaGFzIGJlZW4gY2FsbGVkLiBUaGlz
IHdpbGwgbWFrZSBpdCBoYXJkZXIgdG8gY2F1c2UgSlMgd3JhcHBlciBsZWFrcyB3aXRoCisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN0b3ApOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bm90aWZ5RGlkQWJv
cnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1RvRmly
ZVVwZGF0ZUZvdW5kRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbCBpcyBmbGFreSBjcmFzaGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDNh
N2IyMjliZjdjZTQ0NDdkZDcwNzJlOWY3OGVjNDdmNTZlMmUyMzcuLjM4YWRiODgwYjZkYjU5Mjlm
NGQ5MDIwZDk0NzUyZmNkZTdlZmVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBJREJEYXRh
YmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRo
cmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKIAotICAgIGlmIChtX2Nsb3NlZEluU2VydmVyIHx8IGlz
Q29udGV4dFN0b3BwZWQoKSkKKyAgICBpZiAobV9jbG9zZWRJblNlcnZlcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2FjdGl2ZVRyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwg
IW1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwgIW1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCBkYmFmNDNlNDhjYzIyNWNiMDgxZGIyNzlh
ODkxODhmMGEzMGZhYTZiLi42M2QxMWIzNWNhYjc3OTc5N2ExYzUyN2FiODk4OTYxYmY3YWQ2YjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6
cmVxdWVzdENvbXBsZXRlZChjb25zdCBJREJSZXN1bHREYXRhJiBkYXRhKQogICAgIC8vIElmIGFu
IE9wZW4gcmVxdWVzdCB3YXMgY29tcGxldGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBuYXZpZ2F0ZWQs
IGxlYXZpbmcgdGhpcyByZXF1ZXN0CiAgICAgLy8gd2l0aCBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0LCB3ZSBuZWVkIHRvIG1lc3NhZ2UgYmFjayB0byB0aGUgc2VydmVyIHNvIGl0
CiAgICAgLy8gZG9lc24ndCBoYW5nIHdhaXRpbmcgb24gYSBkYXRhYmFzZSBjb25uZWN0aW9uIG9y
IHRyYW5zYWN0aW9uIHRoYXQgd2lsbCBuZXZlciBleGlzdC4KLSAgICBpZiAobV9jb250ZXh0U3Rv
cHBlZCkgeworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAgICAgICAgc3dpdGNoIChk
YXRhLnR5cGUoKSkgewogICAgICAgICBjYXNlIElEQlJlc3VsdFR5cGU6Ok9wZW5EYXRhYmFzZVN1
Y2Nlc3M6CiAgICAgICAgICAgICBjb25uZWN0aW9uUHJveHkoKS5hYm9ydE9wZW5BbmRVcGdyYWRl
TmVlZGVkKGRhdGEuZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcigpLCBJREJSZXNvdXJjZUlk
ZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDUwNTI0MzNlNTU5MGEyNzdkNWZmYWM4YzIyMTQw
Zjg2MDNhMGFhNjUuLjhkMjAxMTcxMmY3MWYzYTM0MDNjZGY0ZjY2YmIxMjU0ZjAzNzdlYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBA
IC0yNjIsMjEgKzI2MiwxOCBAQCBjb25zdCBjaGFyKiBJREJSZXF1ZXN0OjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKIGJvb2wgSURCUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2Nh
bERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKLSAgICBy
ZXR1cm4gIW1fY29udGV4dFN0b3BwZWQgJiYgbV9oYXNQZW5kaW5nQWN0aXZpdHk7CisgICAgcmV0
dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5OwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OnN0b3AoKQog
ewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdp
blRocmVhZCgpKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKIAogICAgIGNhbmNl
bEZvclN0b3AoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICAgICBjbGVh
cldyYXBwZXJzKCk7Ci0KLSAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBJ
REJSZXF1ZXN0OjpjYW5jZWxGb3JTdG9wKCkKQEAgLTI4Nyw3ICsyODQsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6OmNhbmNlbEZvclN0b3AoKQogdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUmVm
PEV2ZW50PiYmIGV2ZW50KQogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhy
ZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQp
CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpEYXRhYmFzZUFjY2Vzcywg
V1RGTW92ZShldmVudCkpOwpAQCAtMjk5LDcgKzI5Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6ZGlz
cGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFj
Y2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwogICAgIEFTU0VSVChtX2hhc1Bl
bmRpbmdBY3Rpdml0eSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NF
UlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKICAgICBtX2Rpc3BhdGNoaW5nRXZlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDJjZWI1ZDNkZGEyNzE4
ZWM3ZWIyMmVlMzk5ZTYzODUxNDM0NmVlOGUuLjlhNDYxMWJjYmRhOWEyODU2NzFjNTkzZWZmNDhh
NmQ3N2ZmNDZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmgKQEAgLTE0NCw3ICsxNDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3Nob3Vs
ZEV4cG9zZVRyYW5zYWN0aW9uVG9ET00geyB0cnVlIH07CiAgICAgUmVmUHRyPERPTUV4Y2VwdGlv
bj4gbV9kb21FcnJvcjsKICAgICBJbmRleGVkREI6OlJlcXVlc3RUeXBlIG1fcmVxdWVzdFR5cGUg
eyBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPdGhlciB9OwotICAgIGJvb2wgbV9jb250ZXh0U3Rv
cHBlZCB7IGZhbHNlIH07CiAgICAgRXZlbnQqIG1fb3BlbkRhdGFiYXNlU3VjY2Vzc0V2ZW50IHsg
bnVsbHB0ciB9OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDIwZDY4ZTBlMDQ2NzE5OGE3ZDE5Nzcw
N2NiMDg1ZjMwNjYwNTc0NWUuLjA2YTkzNGFjYmYzYmQ2NDIzMzRiY2FjM2ViMWMzYzI4MmFiNDI0
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBjb25zdCBjaGFyKiBJREJUcmFuc2FjdGlv
bjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBib29sIElEQlRyYW5zYWN0aW9uOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRo
cmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkgfHwg
VGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOwotICAgIHJldHVybiAhbV9jb250ZXh0U3RvcHBlZCAm
JiBtX3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNoZWQ7CisgICAg
cmV0dXJuIG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
IH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c3RvcCgpCkBAIC0zMjgsMTIgKzMyOCwxMiBAQCB2
b2lkIElEQlRyYW5zYWN0aW9uOjpzdG9wKCkKIAogICAgIC8vIElEQkRhdGFiYXNlOjpzdG9wKCkg
Y2FsbHMgSURCVHJhbnNhY3Rpb246OnN0b3AoKSBmb3IgZWFjaCBvZiBpdHMgYWN0aXZlIHRyYW5z
YWN0aW9ucy4KICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgY2FsbGluZyBBY3RpdmVET01PYmpl
Y3Q6OnN0b3AoKSBpcyByYW5kb20sIHdlIG1pZ2h0IGFscmVhZHkgaGF2ZSBiZWVuIHN0b3BwZWQu
Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKG1faXNTdG9wcGVkKQogICAgICAg
ICByZXR1cm47CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCi0gICAgbV9jb250
ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogCiAgICAgaWYgKGlz
VmVyc2lvbkNoYW5nZSgpKQogICAgICAgICBtX29wZW5EQlJlcXVlc3QgPSBudWxscHRyOwpAQCAt
NTE4LDcgKzUxOCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Om5vdGlmeURpZEFib3J0KGNvbnN0
IElEQkVycm9yJiBlcnJvcikKICAgICBtX2lkYkVycm9yID0gZXJyb3I7CiAgICAgZmlyZU9uQWJv
cnQoKTsKIAotICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhbV9jb250ZXh0U3RvcHBlZCkg
eworICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAg
ICAgICAgIEFTU0VSVChtX29wZW5EQlJlcXVlc3QpOwogICAgICAgICBtX29wZW5EQlJlcXVlc3Qt
PmZpcmVFcnJvckFmdGVyVmVyc2lvbkNoYW5nZUNvbXBsZXRpb24oKTsKICAgICB9CkBAIC01NzMs
NyArNTczLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4m
JiBldmVudCkKICAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3Rh
dGU6OkZpbmlzaGVkKTsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExv
Y2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkpOwogCi0gICAgaWYgKCFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgfHwgbV9jb250ZXh0U3RvcHBlZCkKKyAgICBpZiAoIXNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0YWJh
c2VBY2Nlc3MsIFdURk1vdmUoZXZlbnQpKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIAogICAgIEFTU0VSVChjYW5D
dXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG1fZGF0YWJhc2UtPm9yaWdpblRocmVh
ZCgpKSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgQVNTRVJU
KCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAg
ICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY29tcGxldGVFdmVudCB8fCBl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogCiAgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCA1NWIwZDEwZGY3NWZhMjIwZjhiMDY0
M2MxYTc2ZThlNDNhOTY2MmUxLi5jZGJlZTY5M2VkYjYzMzcwYTFiODhkMDQ1MmMzZjMyNWQzY2Y5
ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRy
PElEQlJlcXVlc3Q+PiBtX29wZW5SZXF1ZXN0czsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gbV9j
dXJyZW50bHlDb21wbGV0aW5nUmVxdWVzdDsKIAotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Rp
ZERpc3BhdGNoQWJvcnRPckNvbW1pdCB7IGZhbHNlIH07CiAKICAgICB1aW50NjRfdCBtX2xhc3RX
cml0ZU9wZXJhdGlvbklEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDNiNjRkZWM1NmYyNDg5YjFiNjE1OWJk
ZjRhNjRiOWE1OTg1NDQzMzguLmJiZmVhYmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcyZTE3
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6c2NoZWR1
bGVkRXZlbnRUaW1lckZpcmVkKCkKIAogYm9vbCBNZWRpYURldmljZXM6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250ZXh0U3RvcHBlZCgpICYm
IGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7CisgICAg
cmV0dXJuIGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7
CiB9CiAKIGNvbnN0IGNoYXIqIE1lZGlhRGV2aWNlczo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCBhNTI1MDYxMTY0YTQwNWIwYWZmNWZlZWZi
MzRmN2IwODJhOTFiMWM2Li5jMDZkMWYzODNiZjVmYTEzNzBiNmM4YTkzYjUxMDVmODFhMGE5ZjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBAQCBjb25zdCBjaGFy
KiBGb250RmFjZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgRm9udEZhY2U6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250
ZXh0U3RvcHBlZCgpICYmIG1fbWF5TG9hZGVkUHJvbWlzZUJlU2NyaXB0T2JzZXJ2YWJsZSAmJiAh
bV9sb2FkZWRQcm9taXNlLT5pc0Z1bGZpbGxlZCgpOworICAgIHJldHVybiBtX21heUxvYWRlZFBy
b21pc2VCZVNjcmlwdE9ic2VydmFibGUgJiYgIW1fbG9hZGVkUHJvbWlzZS0+aXNGdWxmaWxsZWQo
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IDdhZDRkYTY4
ZDIzNjk2ODFhM2RlOGRhYzViMjAyMmNjZjUxODNmNzIuLjI5MzkwMDU5Njg3YTFmOTVjNTI1Y2Mx
ZWI4YzlkZDllZTg0MGViNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAg
LTU1LDcgKzU1LDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAg
dm9pZCBhc3NlcnRTdXNwZW5kSWZOZWVkZWRXYXNDYWxsZWQoKSBjb25zdDsKIAotICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nQWN0aXZpdHlJbnN0
YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKTsgfQorICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgdXNlZCBieSBKUyBiaW5kaW5ncyB0byBkZXRlcm1pbmUgaWYgdGhlIEpTIHdy
YXBwZXIgc2hvdWxkIGJlIGtlcHQgYWxpdmUgb3Igbm90LgorICAgIGJvb2wgaGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QgeyByZXR1cm4gIWlzQ29udGV4dFN0b3BwZWQoKSAmJiAobV9wZW5kaW5n
QWN0aXZpdHlJbnN0YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSk7IH0K
IAogICAgIC8vIEhvd2V2ZXIsIHRoZSBzdXNwZW5kIGZ1bmN0aW9uIHdpbGwgc29tZXRpbWVzIGJl
IGNhbGxlZCBldmVuIGlmIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSByZXR1cm5z
IGZhbHNlLgogICAgIC8vIFRoYXQgaGFwcGVucyBpbiBzdGVwLWJ5LXN0ZXAgSlMgZGVidWdnaW5n
IGZvciBleGFtcGxlIC0gaW4gdGhpcyBjYXNlIGl0IHdvdWxkIGJlIGluY29ycmVjdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlZjJiNTY0NTQzZGE2NWM2
ZDdiYjY0MDZjYjBmYTg4NzgwMzQyMTE1Li5kMTg3NzdlOGYzMDcyNWZiMjU5MWZkOWU4NTgyNTRl
ZTc1YmJjNTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApA
QCAtOTU3LDkgKzk1Nyw2IEBAIGNvbnN0IGNoYXIqIEhUTUxDYW52YXNFbGVtZW50OjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKIAogYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGlmIChpczxX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPihtX2NvbnRleHQuZ2V0KCkpKSB7CiAgICAgICAgIC8v
IFdlYkdMIHJlbmRlcmluZyBjb250ZXh0IG1heSBmaXJlIGNvbnRleHRsb3N0IC8gY29udGV4dGNo
YW5nZSAvIGNvbnRleHRyZXN0b3JlZCBldmVudHMgYXQgYW55IHBvaW50LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uY3BwCmluZGV4IGQ1ZmEzMjc0NGIwY2E4ZmZmMzhmOGMzMDdhZWVmNDcxYmI5ZDhjZDEu
LmJlYTMyYTViNWMzZGJhMjE5MDI5MTIzZjRjNDVhNDQ0YmRlNWNiNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pOwogUmVmPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24+IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZjxTZXJ2aWNlV29ya2VyQ29udGFpbmVyPiYmIGNvbnRhaW5l
ciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiBkYXRhKQogewogICAgIGlmIChhdXRv
KiByZWdpc3RyYXRpb24gPSBjb250YWluZXItPnJlZ2lzdHJhdGlvbihkYXRhLmlkZW50aWZpZXIp
KSB7Ci0gICAgICAgIEFTU0VSVCghcmVnaXN0cmF0aW9uLT5tX2lzU3RvcHBlZCk7CisgICAgICAg
IEFTU0VSVCghcmVnaXN0cmF0aW9uLT5pc0NvbnRleHRTdG9wcGVkKCkpOwogICAgICAgICByZXR1
cm4gKnJlZ2lzdHJhdGlvbjsKICAgICB9CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb246OnNldFVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJVcGRh
dGVWaWFDYWNoZSB1cAogCiB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1faXNTdG9wcGVkKSB7
CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkgewogICAgICAgICBwcm9taXNlLT5yZWplY3Qo
RXhjZXB0aW9uKEludmFsaWRTdGF0ZUVycm9yKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xNTQsNyArMTU0LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGUo
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnVucmVnaXN0ZXIoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewot
ICAgIGlmIChtX2lzU3RvcHBlZCkgeworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcikpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbjo6dXBkYXRlU3RhdGVGcm9tU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TCiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6cXVldWVUYXNrVG9GaXJl
VXBkYXRlRm91bmRFdmVudCgpCiB7Ci0gICAgaWYgKG1faXNTdG9wcGVkKQorICAgIGlmIChpc0Nv
bnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJFR0lTVFJBVElPTl9SRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJmaXJlVXBkYXRlRm91bmRFdmVudDogRmlyaW5nIHVwZGF0ZWZv
dW5kIGV2ZW50IGZvciByZWdpc3RyYXRpb24gJWxsdSIsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
KTsKQEAgLTIwNywxMyArMjA3LDEyIEBAIGNvbnN0IGNoYXIqIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb246OnN0b3AoKQogewotICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKICAgICByZW1v
dmVBbGxFdmVudExpc3RlbmVycygpOwogfQogCiBib29sIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhbV9p
c1N0b3BwZWQgJiYgZ2V0TmV3ZXN0V29ya2VyKCkgJiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKKyAg
ICByZXR1cm4gZ2V0TmV3ZXN0V29ya2VyKCkgJiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggZTAwY2FlOTY2
MGZhMGQzNWI0ZDg5MWM0MDM0MmU4ZDNhNDFlOTVjZi4uMDc1ZmFkNzk2MGIzY2U3MGVkYWMyZTEy
ODJkZDc2NTNmMGJmNjMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC05NSw4ICs5NSw2IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1faW5zdGFsbGluZ1dvcmtlcjsK
ICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV93YWl0aW5nV29ya2VyOwogICAgIFJlZlB0cjxT
ZXJ2aWNlV29ya2VyPiBtX2FjdGl2ZVdvcmtlcjsKLQotICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395280</attachid>
            <date>2020-04-02 10:59:27 -0700</date>
            <delta_ts>2020-04-02 11:48:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200402105925.patch</filename>
            <type>text/plain</type>
            <size>16002</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU4NjBkYzI2MzhjMmEy
OWZjMDQ2YmM3NTdhZTYyN2QxNjJhNWRiYi4uMzNmMTY4YWM2MTEzNjFhMjc1ZWNmMDdhMThlZWEw
YzVhYWVjNTQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA0LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgp
IGhhcyBiZWVuIGNhbGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgbmV2
ZXIgcmV0dXJuIHRydWUgYWZ0ZXIgc3RvcCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0OjpzdG9wKCkgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGlzIGFib3V0IHRvIGdldCBkZXN0cm95ZWQuCisgICAgICAgIEF0IHRoaXMgcG9p
bnQsIHdlIHNob3VsZCBubyBsb25nZXIgYmUgcnVubmluZyBzY3JpcHQgc28gdGhlcmUgaXMgbmV2
ZXIgYW55IG5lZWQgdG8ga2VlcCB0aGUgSlMKKyAgICAgICAgd3JhcHBlciBhbGl2ZS4gQXMgYSBy
ZXN1bHQsIEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgc2hvdWxkIGJlIHJl
dHVybmluZyBmYWxzZQorICAgICAgICBhZnRlciBzdG9wKCkgaGFzIGJlZW4gY2FsbGVkLiBUaGlz
IHdpbGwgbWFrZSBpdCBoYXJkZXIgdG8gY2F1c2UgSlMgd3JhcHBlciBsZWFrcyB3aXRoCisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN0b3ApOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bm90aWZ5RGlkQWJv
cnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1RvRmly
ZVVwZGF0ZUZvdW5kRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDIwLTA0LTAyICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFsbG93
IFdlYktpdCB0byB1c2UgY2FtZXJhIGluIG11bHRpLXRhc2tpbmcgbW9kZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggNjA5YWE4YTI4OGZm
MzU4MTllNjczY2Y1NjdkY2I1MjBjNjNhYjQ4OS4uNzUxM2VkMzU2NTdhOTVmY2UyNTViYzc0M2Rl
ZjJmZDI5NzlhMDc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5
TG9hZGVyOjpkaWRTdWNjZWVkKCkKIAogdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIEFTU0VSVChtX3Jlc3Bv
bnNlLmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsKKyAgICBBU1NFUlQobV9yZXNwb25zZS5pc0NvbnRl
eHRTdG9wcGVkKCkgfHwgbV9yZXNwb25zZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7CiAKICAgICBt
X3Jlc3BvbnNlLnNldExvYWRpbmdFcnJvcihSZXNvdXJjZUVycm9yIHsgZXJyb3IgfSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRl
eCAzYTdiMjI5YmY3Y2U0NDQ3ZGQ3MDcyZTlmNzhlYzQ3ZjU2ZTJlMjM3Li4zOGFkYjg4MGI2ZGI1
OTI5ZjRkOTAyMGQ5NDc1MmZjZGU3ZWZlYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgSURC
RGF0YWJhc2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIEFTU0VS
VChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSB8
fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7CiAKLSAgICBpZiAobV9jbG9zZWRJblNlcnZlciB8
fCBpc0NvbnRleHRTdG9wcGVkKCkpCisgICAgaWYgKG1fY2xvc2VkSW5TZXJ2ZXIpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9hY3RpdmVUcmFuc2FjdGlvbnMuaXNFbXB0eSgp
IHx8ICFtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpIHx8ICFtX2Fib3J0aW5nVHJh
bnNhY3Rpb25zLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggZGJhZjQzZTQ4Y2MyMjVjYjA4MWRi
Mjc5YTg5MTg4ZjBhMzBmYWE2Yi4uNjNkMTFiMzVjYWI3Nzk3OTdhMWM1MjdhYjg5ODk2MWJmN2Fk
NmI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3Bl
bkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIElEQk9wZW5EQlJlcXVl
c3Q6OnJlcXVlc3RDb21wbGV0ZWQoY29uc3QgSURCUmVzdWx0RGF0YSYgZGF0YSkKICAgICAvLyBJ
ZiBhbiBPcGVuIHJlcXVlc3Qgd2FzIGNvbXBsZXRlZCBhZnRlciB0aGUgcGFnZSBoYXMgbmF2aWdh
dGVkLCBsZWF2aW5nIHRoaXMgcmVxdWVzdAogICAgIC8vIHdpdGggYSBzdG9wcGVkIHNjcmlwdCBl
eGVjdXRpb24gY29udGV4dCwgd2UgbmVlZCB0byBtZXNzYWdlIGJhY2sgdG8gdGhlIHNlcnZlciBz
byBpdAogICAgIC8vIGRvZXNuJ3QgaGFuZyB3YWl0aW5nIG9uIGEgZGF0YWJhc2UgY29ubmVjdGlv
biBvciB0cmFuc2FjdGlvbiB0aGF0IHdpbGwgbmV2ZXIgZXhpc3QuCi0gICAgaWYgKG1fY29udGV4
dFN0b3BwZWQpIHsKKyAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAgICAgICAgIHN3aXRj
aCAoZGF0YS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBJREJSZXN1bHRUeXBlOjpPcGVuRGF0YWJh
c2VTdWNjZXNzOgogICAgICAgICAgICAgY29ubmVjdGlvblByb3h5KCkuYWJvcnRPcGVuQW5kVXBn
cmFkZU5lZWRlZChkYXRhLmRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyOjplbXB0eVZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCA1MDUyNDMzZTU1OTBhMjc3ZDVmZmFjOGMy
MjE0MGY4NjAzYTBhYTY1Li44ZDIwMTE3MTJmNzFmM2EzNDAzY2RmNGY2NmJiMTI1NGYwMzc3ZWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cApAQCAtMjYyLDIxICsyNjIsMTggQEAgY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiBib29sIElEQlJlcXVlc3Q6OnZpcnR1YWxIYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFk
TG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQoKSk7Ci0g
ICAgcmV0dXJuICFtX2NvbnRleHRTdG9wcGVkICYmIG1faGFzUGVuZGluZ0FjdGl2aXR5OworICAg
IHJldHVybiBtX2hhc1BlbmRpbmdBY3Rpdml0eTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzdG9w
KCkKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShv
cmlnaW5UaHJlYWQoKSkpOwotICAgIEFTU0VSVCghbV9jb250ZXh0U3RvcHBlZCk7CiAKICAgICBj
YW5jZWxGb3JTdG9wKCk7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCiAgICAg
Y2xlYXJXcmFwcGVycygpOwotCi0gICAgbV9jb250ZXh0U3RvcHBlZCA9IHRydWU7CiB9CiAKIHZv
aWQgSURCUmVxdWVzdDo6Y2FuY2VsRm9yU3RvcCgpCkBAIC0yODcsNyArMjg0LDcgQEAgdm9pZCBJ
REJSZXF1ZXN0OjpjYW5jZWxGb3JTdG9wKCkKIHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50
KFJlZjxFdmVudD4mJiBldmVudCkKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vz
c1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwotICAgIGlmIChtX2NvbnRleHRTdG9w
cGVkKQorICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0YWJhc2VBY2Nl
c3MsIFdURk1vdmUoZXZlbnQpKTsKQEAgLTI5OSw3ICsyOTYsNyBAQCB2b2lkIElEQlJlcXVlc3Q6
OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogCiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJl
YWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKICAgICBBU1NFUlQobV9o
YXNQZW5kaW5nQWN0aXZpdHkpOwotICAgIEFTU0VSVCghbV9jb250ZXh0U3RvcHBlZCk7CisgICAg
QVNTRVJUKCFpc0NvbnRleHRTdG9wcGVkKCkpOwogCiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CiAgICAgbV9kaXNwYXRjaGluZ0V2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCAyY2ViNWQzZGRh
MjcxOGVjN2ViMjJlZTM5OWU2Mzg1MTQzNDZlZThlLi45YTQ2MTFiY2JkYTlhMjg1NjcxYzU5M2Vm
ZjQ4YTZkNzdmZjQ2ZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCkBAIC0xNDQsNyArMTQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9z
aG91bGRFeHBvc2VUcmFuc2FjdGlvblRvRE9NIHsgdHJ1ZSB9OwogICAgIFJlZlB0cjxET01FeGNl
cHRpb24+IG1fZG9tRXJyb3I7CiAgICAgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSBtX3JlcXVlc3RU
eXBlIHsgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6T3RoZXIgfTsKLSAgICBib29sIG1fY29udGV4
dFN0b3BwZWQgeyBmYWxzZSB9OwogICAgIEV2ZW50KiBtX29wZW5EYXRhYmFzZVN1Y2Nlc3NFdmVu
dCB7IG51bGxwdHIgfTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCAyMGQ2OGUwZTA0NjcxOThhN2Qx
OTc3MDdjYjA4NWYzMDY2MDU3NDVlLi4wNmE5MzRhY2JmM2JkNjQyMzM0YmNhYzNlYjFjM2MyODJh
YjQyNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCkBAIC0zMTgsNyArMzE4LDcgQEAgY29uc3QgY2hhciogSURCVHJhbnNh
Y3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogYm9vbCBJREJUcmFuc2FjdGlvbjo6
dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJl
bnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEobV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkKCkp
IHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKLSAgICByZXR1cm4gIW1fY29udGV4dFN0b3Bw
ZWQgJiYgbV9zdGF0ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwor
ICAgIHJldHVybiBtX3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNo
ZWQ7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OnN0b3AoKQpAQCAtMzI4LDEyICszMjgsMTIg
QEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6c3RvcCgpCiAKICAgICAvLyBJREJEYXRhYmFzZTo6c3Rv
cCgpIGNhbGxzIElEQlRyYW5zYWN0aW9uOjpzdG9wKCkgZm9yIGVhY2ggb2YgaXRzIGFjdGl2ZSB0
cmFuc2FjdGlvbnMuCiAgICAgLy8gU2luY2UgdGhlIG9yZGVyIG9mIGNhbGxpbmcgQWN0aXZlRE9N
T2JqZWN0OjpzdG9wKCkgaXMgcmFuZG9tLCB3ZSBtaWdodCBhbHJlYWR5IGhhdmUgYmVlbiBzdG9w
cGVkLgotICAgIGlmIChtX2NvbnRleHRTdG9wcGVkKQorICAgIGlmIChtX2lzU3RvcHBlZCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAotICAgIG1f
Y29udGV4dFN0b3BwZWQgPSB0cnVlOworICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIAogICAgIGlm
IChpc1ZlcnNpb25DaGFuZ2UoKSkKICAgICAgICAgbV9vcGVuREJSZXF1ZXN0ID0gbnVsbHB0cjsK
QEAgLTUxOCw3ICs1MTgsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpub3RpZnlEaWRBYm9ydChj
b25zdCBJREJFcnJvciYgZXJyb3IpCiAgICAgbV9pZGJFcnJvciA9IGVycm9yOwogICAgIGZpcmVP
bkFib3J0KCk7CiAKLSAgICBpZiAoaXNWZXJzaW9uQ2hhbmdlKCkgJiYgIW1fY29udGV4dFN0b3Bw
ZWQpIHsKKyAgICBpZiAoaXNWZXJzaW9uQ2hhbmdlKCkgJiYgIWlzQ29udGV4dFN0b3BwZWQoKSkg
ewogICAgICAgICBBU1NFUlQobV9vcGVuREJSZXF1ZXN0KTsKICAgICAgICAgbV9vcGVuREJSZXF1
ZXN0LT5maXJlRXJyb3JBZnRlclZlcnNpb25DaGFuZ2VDb21wbGV0aW9uKCk7CiAgICAgfQpAQCAt
NTczLDcgKzU3Myw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmVucXVldWVFdmVudChSZWY8RXZl
bnQ+JiYgZXZlbnQpCiAgICAgQVNTRVJUKG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlv
blN0YXRlOjpGaW5pc2hlZCk7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJl
YWRMb2NhbERhdGEobV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkKCkpKTsKIAotICAgIGlmICghc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8IG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKCFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgfHwgaXNDb250ZXh0U3RvcHBlZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRh
dGFiYXNlQWNjZXNzLCBXVEZNb3ZlKGV2ZW50KSk7CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBJ
REJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBBU1NFUlQo
Y2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5U
aHJlYWQoKSkpOwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIEFT
U0VSVCghbV9jb250ZXh0U3RvcHBlZCk7CisgICAgQVNTRVJUKCFpc0NvbnRleHRTdG9wcGVkKCkp
OwogICAgIEFTU0VSVChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbXBsZXRlRXZlbnQg
fHwgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKIAogICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggNTViMGQxMGRmNzVmYTIyMGY4
YjA2NDNjMWE3NmU4ZTQzYTk2NjJlMS4uY2RiZWU2OTNlZGI2MzM3MGExYjg4ZDA0NTJjM2YzMjVk
M2NmOWQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5oCkBAIC0yNjIsNyArMjYyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFJl
ZlB0cjxJREJSZXF1ZXN0Pj4gbV9vcGVuUmVxdWVzdHM7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+
IG1fY3VycmVudGx5Q29tcGxldGluZ1JlcXVlc3Q7CiAKLSAgICBib29sIG1fY29udGV4dFN0b3Bw
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9kaWREaXNwYXRjaEFib3J0T3JDb21taXQgeyBmYWxzZSB9OwogCiAgICAgdWludDY0X3QgbV9s
YXN0V3JpdGVPcGVyYXRpb25JRCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCAzYjY0ZGVjNTZmMjQ4OWIxYjYx
NTliZGY0YTY0YjlhNTk4NTQ0MzM4Li5iYmZlYWJmY2M5YzU0ZjhhZWRhMmUwMDIzYjgxZjEyODE3
MmUxNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OnNj
aGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpCiAKIGJvb2wgTWVkaWFEZXZpY2VzOjp2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlzQ29udGV4dFN0b3BwZWQo
KSAmJiBoYXNFdmVudExpc3RlbmVycyhtX2V2ZW50TmFtZXMuZGV2aWNlY2hhbmdlRXZlbnQpOwor
ICAgIHJldHVybiBoYXNFdmVudExpc3RlbmVycyhtX2V2ZW50TmFtZXMuZGV2aWNlY2hhbmdlRXZl
bnQpOwogfQogCiBjb25zdCBjaGFyKiBNZWRpYURldmljZXM6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggYTUyNTA2MTE2NGE0MDViMGFmZjVm
ZWVmYjM0ZjdiMDgyYTkxYjFjNi4uYzA2ZDFmMzgzYmY1ZmExMzcwYjZjOGE5M2I1MTA1ZjgxYTBh
OWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC00ODgsNyArNDg4LDcgQEAgY29uc3Qg
Y2hhciogRm9udEZhY2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIEZvbnRG
YWNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlz
Q29udGV4dFN0b3BwZWQoKSAmJiBtX21heUxvYWRlZFByb21pc2VCZVNjcmlwdE9ic2VydmFibGUg
JiYgIW1fbG9hZGVkUHJvbWlzZS0+aXNGdWxmaWxsZWQoKTsKKyAgICByZXR1cm4gbV9tYXlMb2Fk
ZWRQcm9taXNlQmVTY3JpcHRPYnNlcnZhYmxlICYmICFtX2xvYWRlZFByb21pc2UtPmlzRnVsZmls
bGVkKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01P
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAppbmRleCA3YWQ0
ZGE2OGQyMzY5NjgxYTNkZThkYWM1YjIwMjJjY2Y1MTgzZjcyLi4yOTM5MDA1OTY4N2ExZjk1YzUy
NWNjMWViOGM5ZGQ5ZWU4NDBlYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0
aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5o
CkBAIC01NSw3ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRJZk5lZWRlZCgpOwog
ICAgIHZvaWQgYXNzZXJ0U3VzcGVuZElmTmVlZGVkV2FzQ2FsbGVkKCkgY29uc3Q7CiAKLSAgICBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0FjdGl2aXR5
SW5zdGFuY2VDb3VudCB8fCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCk7IH0KKyAgICAvLyBU
aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgSlMgYmluZGluZ3MgdG8gZGV0ZXJtaW5lIGlmIHRoZSBK
UyB3cmFwcGVyIHNob3VsZCBiZSBrZXB0IGFsaXZlIG9yIG5vdC4KKyAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuICFpc0NvbnRleHRTdG9wcGVkKCkgJiYgKG1fcGVu
ZGluZ0FjdGl2aXR5SW5zdGFuY2VDb3VudCB8fCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkp
OyB9CiAKICAgICAvLyBIb3dldmVyLCB0aGUgc3VzcGVuZCBmdW5jdGlvbiB3aWxsIHNvbWV0aW1l
cyBiZSBjYWxsZWQgZXZlbiBpZiBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgcmV0
dXJucyBmYWxzZS4KICAgICAvLyBUaGF0IGhhcHBlbnMgaW4gc3RlcC1ieS1zdGVwIEpTIGRlYnVn
Z2luZyBmb3IgZXhhbXBsZSAtIGluIHRoaXMgY2FzZSBpdCB3b3VsZCBiZSBpbmNvcnJlY3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggZWYyYjU2NDU0M2Rh
NjVjNmQ3YmI2NDA2Y2IwZmE4ODc4MDM0MjExNS4uZDE4Nzc3ZThmMzA3MjVmYjI1OTFmZDllODU4
MjU0ZWU3NWJiYzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKQEAgLTk1Nyw5ICs5NTcsNiBAQCBjb25zdCBjaGFyKiBIVE1MQ2FudmFzRWxlbWVudDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnZpcnR1
YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIGlmIChpc0NvbnRleHRTdG9wcGVk
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAo
aXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jb250ZXh0LmdldCgpKSkgewogICAgICAg
ICAvLyBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBtYXkgZmlyZSBjb250ZXh0bG9zdCAvIGNvbnRl
eHRjaGFuZ2UgLyBjb250ZXh0cmVzdG9yZWQgZXZlbnRzIGF0IGFueSBwb2ludC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmNwcAppbmRleCBkNWZhMzI3NDRiMGNhOGZmZjM4ZjhjMzA3YWVlZjQ3MWJiOWQ4
Y2QxLi5iZWEzMmE1YjVjM2RiYTIxOTAyOTEyM2Y0YzQ1YTQ0NGJkZTVjYjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uY3BwCkBAIC00OSw3ICs0OSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKTsKIFJlZjxTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uPiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpnZXRPckNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VydmljZVdvcmtlckNvbnRhaW5lcj4mJiBjb250
YWluZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgZGF0YSkKIHsKICAgICBpZiAo
YXV0byogcmVnaXN0cmF0aW9uID0gY29udGFpbmVyLT5yZWdpc3RyYXRpb24oZGF0YS5pZGVudGlm
aWVyKSkgewotICAgICAgICBBU1NFUlQoIXJlZ2lzdHJhdGlvbi0+bV9pc1N0b3BwZWQpOworICAg
ICAgICBBU1NFUlQoIXJlZ2lzdHJhdGlvbi0+aXNDb250ZXh0U3RvcHBlZCgpKTsKICAgICAgICAg
cmV0dXJuICpyZWdpc3RyYXRpb247CiAgICAgfQogCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzZXRVcGRhdGVWaWFDYWNoZShTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgdXAKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRh
dGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGlmIChtX2lzU3RvcHBl
ZCkgeworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcikpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBk
YXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogdm9pZCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBpZiAobV9pc1N0b3BwZWQpIHsKKyAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKSB7
CiAgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3IpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZVN0YXRlRnJvbVNlcnZlcihTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uUwogCiB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnF1ZXVlVGFza1Rv
RmlyZVVwZGF0ZUZvdW5kRXZlbnQoKQogewotICAgIGlmIChtX2lzU3RvcHBlZCkKKyAgICBpZiAo
aXNDb250ZXh0U3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSRUdJU1RSQVRJT05f
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZmlyZVVwZGF0ZUZvdW5kRXZlbnQ6IEZpcmluZyB1cGRh
dGVmb3VuZCBldmVudCBmb3IgcmVnaXN0cmF0aW9uICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50
NjQoKSk7CkBAIC0yMDcsMTMgKzIwNywxMiBAQCBjb25zdCBjaGFyKiBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uOjpzdG9wKCkKIHsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAg
cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAogYm9vbCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
IW1faXNTdG9wcGVkICYmIGdldE5ld2VzdFdvcmtlcigpICYmIGhhc0V2ZW50TGlzdGVuZXJzKCk7
CisgICAgcmV0dXJuIGdldE5ld2VzdFdvcmtlcigpICYmIGhhc0V2ZW50TGlzdGVuZXJzKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCmluZGV4IGUwMGNh
ZTk2NjBmYTBkMzViNGQ4OTFjNDAzNDJlOGQzYTQxZTk1Y2YuLjA3NWZhZDc5NjBiM2NlNzBlZGFj
MmUxMjgyZGQ3NjUzZjBiZjYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaApAQCAtOTUsOCArOTUs
NiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBtX2luc3RhbGxpbmdXb3Jr
ZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fd2FpdGluZ1dvcmtlcjsKICAgICBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9hY3RpdmVXb3JrZXI7Ci0KLSAgICBib29sIG1faXNTdG9wcGVk
IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395283</attachid>
            <date>2020-04-02 11:49:00 -0700</date>
            <delta_ts>2020-04-02 14:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200402114900.patch</filename>
            <type>text/plain</type>
            <size>19162</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVjNTg0YWFmMWQyNTI2
NWYyMDMxNTMwYjViMGI2MDQwYjQ1Yzg3My4uZjQxYjI1MWMwZDllNzE5Nzc0ZGJlMTU1MDQ0YmEz
M2NhODBkYTViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgc3RvcCBwcmV2ZW50aW5nIHdyYXBwZXIgY29sbGVj
dGlvbiBhZnRlciBBY3RpdmVET01PYmplY3Q6OnN0b3AoKSBoYXMgYmVlbiBjYWxsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3RvcCgpIGdldHMgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCBp
cyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIEFjdGl2ZURPTU9iamVjdCBvYmplY3Rz
IHNob3VsZCBubyBsb25nZXIgcnVuIHNjcmlwdCBhZnRlciB0aGF0IGFuZCB0aGVyZSBpcyB0aGVy
ZWZvcmUgbm8gcG9pbnQKKyAgICAgICAgaW4ga2VlcGluZyB0aGUgSlMgd3JhcHBlciBhbGl2ZSBv
bmNlIHN0b3AoKSBoYXMgYmVlbiBjYWxsZWQuIFdvcnNlLCBkZXBlbmRpbmcgb24gdGhlCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSwga2VlcGlu
ZyB0aGUgd3JhcHBlciBhbGl2ZSBwYXN0IHRoaXMgcG9pbnQgbWF5CisgICAgICAgIGFjdHVhbGx5
IGNhdXNlIEpTIHdyYXBwZXIgbGVha3MuIFNvbWUgb2YgdGhlIHZpcnR1YWxIYXNQZW5kaW5nQWN0
aXZpdHkoKSB3ZXJlIHByb3Blcmx5IGNoZWNraW5nCisgICAgICAgIGlmIHRoZSBjb250ZXh0IHdh
cyBzdG9wcGVkIGJ1dCBub3QgYWxsIG9mIHRoZW0uIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBu
b3cgY2hlY2sKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojppc0NvbnRleHRTdG9wcGVkKCkgaW4g
dGhlIEpTIGJpbmRpbmdzLCBpbiBhZGRpdGlvbiB0bworICAgICAgICBBY3RpdmVET01PYmplY3Q6
Omhhc1BlbmRpbmdBY3Rpdml0eSgpLCBzbyB0aGF0IGl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0
byBrZWVwIGEgSlMgd3JhcHBlcgorICAgICAgICBhbGl2ZSBwYXN0IHRoZSBwb2ludCB3aGVyZSB0
aGUgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IGhhcyBiZWVuIHN0b3BwZWQuIFRoaXMgbmV3IGFw
cHJvYWNoCisgICAgICAgIGlzIGEgbG90IGxlc3MgbGVhay9lcnJvciBwcm9uZS4KKworICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJSZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb246Om5vdGlmeURpZEFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
OjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmRpc3Bh
dGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50
ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKToKKyAgICAgICAgKiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAq
IGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVu
ZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6dW5yZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjpxdWV1ZVRhc2tUb0ZpcmVVcGRhdGVGb3VuZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0
eSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uaDoKKwogMjAyMC0wNC0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZW1vdmUgYSBzdXBlcmZsb3VzIGJsYW5rIGxpbmUgYWRkZWQgaW4gdGhlIHBy
ZXZpb3VzIGNvbW1pdCBhcyBwb2ludGVkIG91dCBkdXJpbmcgdGhlIGNvZGUgcmV2aWV3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4
IDNhN2IyMjliZjdjZTQ0NDdkZDcwNzJlOWY3OGVjNDdmNTZlMmUyMzcuLjM4YWRiODgwYjZkYjU5
MjlmNGQ5MDIwZDk0NzUyZmNkZTdlZmVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBJREJE
YXRhYmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8
IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKIAotICAgIGlmIChtX2Nsb3NlZEluU2VydmVyIHx8
IGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICBpZiAobV9jbG9zZWRJblNlcnZlcikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2FjdGl2ZVRyYW5zYWN0aW9ucy5pc0VtcHR5KCkg
fHwgIW1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwgIW1fYWJvcnRpbmdUcmFu
c2FjdGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCBkYmFmNDNlNDhjYzIyNWNiMDgxZGIy
NzlhODkxODhmMGEzMGZhYTZiLi42M2QxMWIzNWNhYjc3OTc5N2ExYzUyN2FiODk4OTYxYmY3YWQ2
YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
cGVuREJSZXF1ZXN0LmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVz
dDo6cmVxdWVzdENvbXBsZXRlZChjb25zdCBJREJSZXN1bHREYXRhJiBkYXRhKQogICAgIC8vIElm
IGFuIE9wZW4gcmVxdWVzdCB3YXMgY29tcGxldGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBuYXZpZ2F0
ZWQsIGxlYXZpbmcgdGhpcyByZXF1ZXN0CiAgICAgLy8gd2l0aCBhIHN0b3BwZWQgc2NyaXB0IGV4
ZWN1dGlvbiBjb250ZXh0LCB3ZSBuZWVkIHRvIG1lc3NhZ2UgYmFjayB0byB0aGUgc2VydmVyIHNv
IGl0CiAgICAgLy8gZG9lc24ndCBoYW5nIHdhaXRpbmcgb24gYSBkYXRhYmFzZSBjb25uZWN0aW9u
IG9yIHRyYW5zYWN0aW9uIHRoYXQgd2lsbCBuZXZlciBleGlzdC4KLSAgICBpZiAobV9jb250ZXh0
U3RvcHBlZCkgeworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpIHsKICAgICAgICAgc3dpdGNo
IChkYXRhLnR5cGUoKSkgewogICAgICAgICBjYXNlIElEQlJlc3VsdFR5cGU6Ok9wZW5EYXRhYmFz
ZVN1Y2Nlc3M6CiAgICAgICAgICAgICBjb25uZWN0aW9uUHJveHkoKS5hYm9ydE9wZW5BbmRVcGdy
YWRlTmVlZGVkKGRhdGEuZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcigpLCBJREJSZXNvdXJj
ZUlkZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDUwNTI0MzNlNTU5MGEyNzdkNWZmYWM4YzIy
MTQwZjg2MDNhMGFhNjUuLjhkMjAxMTcxMmY3MWYzYTM0MDNjZGY0ZjY2YmIxMjU0ZjAzNzdlYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CkBAIC0yNjIsMjEgKzI2MiwxOCBAQCBjb25zdCBjaGFyKiBJREJSZXF1ZXN0OjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKIGJvb2wgSURCUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKLSAg
ICByZXR1cm4gIW1fY29udGV4dFN0b3BwZWQgJiYgbV9oYXNQZW5kaW5nQWN0aXZpdHk7CisgICAg
cmV0dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5OwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OnN0b3Ao
KQogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9y
aWdpblRocmVhZCgpKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKIAogICAgIGNh
bmNlbEZvclN0b3AoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICAgICBj
bGVhcldyYXBwZXJzKCk7Ci0KLSAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9p
ZCBJREJSZXF1ZXN0OjpjYW5jZWxGb3JTdG9wKCkKQEAgLTI4Nyw3ICsyODQsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6OmNhbmNlbEZvclN0b3AoKQogdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQo
UmVmPEV2ZW50PiYmIGV2ZW50KQogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNz
VGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3Bw
ZWQpCisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpEYXRhYmFzZUFjY2Vz
cywgV1RGTW92ZShldmVudCkpOwpAQCAtMjk5LDcgKzI5Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6
ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVh
ZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwogICAgIEFTU0VSVChtX2hh
c1BlbmRpbmdBY3Rpdml0eSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBB
U1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKTsKICAgICBtX2Rpc3BhdGNoaW5nRXZlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDJjZWI1ZDNkZGEy
NzE4ZWM3ZWIyMmVlMzk5ZTYzODUxNDM0NmVlOGUuLjlhNDYxMWJjYmRhOWEyODU2NzFjNTkzZWZm
NDhhNmQ3N2ZmNDZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmgKQEAgLTE0NCw3ICsxNDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3No
b3VsZEV4cG9zZVRyYW5zYWN0aW9uVG9ET00geyB0cnVlIH07CiAgICAgUmVmUHRyPERPTUV4Y2Vw
dGlvbj4gbV9kb21FcnJvcjsKICAgICBJbmRleGVkREI6OlJlcXVlc3RUeXBlIG1fcmVxdWVzdFR5
cGUgeyBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPdGhlciB9OwotICAgIGJvb2wgbV9jb250ZXh0
U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgRXZlbnQqIG1fb3BlbkRhdGFiYXNlU3VjY2Vzc0V2ZW50
IHsgbnVsbHB0ciB9OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDIwZDY4ZTBlMDQ2NzE5OGE3ZDE5
NzcwN2NiMDg1ZjMwNjYwNTc0NWUuLjA2YTkzNGFjYmYzYmQ2NDIzMzRiY2FjM2ViMWMzYzI4MmFi
NDI0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBjb25zdCBjaGFyKiBJREJUcmFuc2Fj
dGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBib29sIElEQlRyYW5zYWN0aW9uOjp2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVu
dFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkg
fHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOwotICAgIHJldHVybiAhbV9jb250ZXh0U3RvcHBl
ZCAmJiBtX3N0YXRlICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNoZWQ7Cisg
ICAgcmV0dXJuIG1fc3RhdGUgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hl
ZDsKIH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c3RvcCgpCkBAIC0zMjgsMTIgKzMyOCwxMiBA
QCB2b2lkIElEQlRyYW5zYWN0aW9uOjpzdG9wKCkKIAogICAgIC8vIElEQkRhdGFiYXNlOjpzdG9w
KCkgY2FsbHMgSURCVHJhbnNhY3Rpb246OnN0b3AoKSBmb3IgZWFjaCBvZiBpdHMgYWN0aXZlIHRy
YW5zYWN0aW9ucy4KICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgY2FsbGluZyBBY3RpdmVET01P
YmplY3Q6OnN0b3AoKSBpcyByYW5kb20sIHdlIG1pZ2h0IGFscmVhZHkgaGF2ZSBiZWVuIHN0b3Bw
ZWQuCi0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKG1faXNTdG9wcGVkKQogICAg
ICAgICByZXR1cm47CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCi0gICAgbV9j
b250ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogCiAgICAgaWYg
KGlzVmVyc2lvbkNoYW5nZSgpKQogICAgICAgICBtX29wZW5EQlJlcXVlc3QgPSBudWxscHRyOwpA
QCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Om5vdGlmeURpZEFib3J0KGNv
bnN0IElEQkVycm9yJiBlcnJvcikKICAgICBtX2lkYkVycm9yID0gZXJyb3I7CiAgICAgZmlyZU9u
QWJvcnQoKTsKIAotICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhbV9jb250ZXh0U3RvcHBl
ZCkgeworICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSAmJiAhaXNDb250ZXh0U3RvcHBlZCgpKSB7
CiAgICAgICAgIEFTU0VSVChtX29wZW5EQlJlcXVlc3QpOwogICAgICAgICBtX29wZW5EQlJlcXVl
c3QtPmZpcmVFcnJvckFmdGVyVmVyc2lvbkNoYW5nZUNvbXBsZXRpb24oKTsKICAgICB9CkBAIC01
NzMsNyArNTczLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVu
dD4mJiBldmVudCkKICAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9u
U3RhdGU6OkZpbmlzaGVkKTsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVh
ZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkpOwogCi0gICAgaWYgKCFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgfHwgbV9jb250ZXh0U3RvcHBlZCkKKyAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0
YWJhc2VBY2Nlc3MsIFdURk1vdmUoZXZlbnQpKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIAogICAgIEFTU0VSVChj
YW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG1fZGF0YWJhc2UtPm9yaWdpblRo
cmVhZCgpKSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgQVNT
RVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7
CiAgICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY29tcGxldGVFdmVudCB8
fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogCiAgICAgYXV0byBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCA1NWIwZDEwZGY3NWZhMjIwZjhi
MDY0M2MxYTc2ZThlNDNhOTY2MmUxLi5jZGJlZTY5M2VkYjYzMzcwYTFiODhkMDQ1MmMzZjMyNWQz
Y2Y5ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVm
UHRyPElEQlJlcXVlc3Q+PiBtX29wZW5SZXF1ZXN0czsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4g
bV9jdXJyZW50bHlDb21wbGV0aW5nUmVxdWVzdDsKIAotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2RpZERpc3BhdGNoQWJvcnRPckNvbW1pdCB7IGZhbHNlIH07CiAKICAgICB1aW50NjRfdCBtX2xh
c3RXcml0ZU9wZXJhdGlvbklEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDNiNjRkZWM1NmYyNDg5YjFiNjE1
OWJkZjRhNjRiOWE1OTg1NDQzMzguLmJiZmVhYmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcy
ZTE3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6c2No
ZWR1bGVkRXZlbnRUaW1lckZpcmVkKCkKIAogYm9vbCBNZWRpYURldmljZXM6OnZpcnR1YWxIYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250ZXh0U3RvcHBlZCgp
ICYmIGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7Cisg
ICAgcmV0dXJuIGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVu
dCk7CiB9CiAKIGNvbnN0IGNoYXIqIE1lZGlhRGV2aWNlczo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IDQ0MGQ2ZjFmMjc5NTg3ZjhiMTkyZWI3ODBiNDU5MDBiMjNhNGM0Yzcu
LjljZGYyNDA5NDkyNDMzZTM0ZWY4N2E1NDdkNDE2NjkwZGFjMTJmNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00Nzc0
LDcgKzQ3NzQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIkFjdGl2
ZURPTU9iamVjdCIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRv
KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxl
LnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ludGVyZmFjZU5h
bWV9LT53cmFwcGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQo
KS5pc0NvbnRleHRTdG9wcGVkKCkgJiYganMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuaGFz
UGVuZGluZ0FjdGl2aXR5KCkpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgICAgICpyZWFzb24gPSBcIkFjdGl2ZURPTU9iamVjdCB3aXRo
IHBlbmRpbmcgYWN0aXZpdHlcIjtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDZj
M2EwNjM1Y2U1ZTJhZDRmYzA2MGFmYTQ2NzI0NDA5Y2YxZjhmNzAuLjFlZmNiMzRlYTNiNTY4ZWIz
MzI2MTVlZmQ3ODk1NDE2NjQ4NTkwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0xMjEw
LDcgKzEyMTAsNyBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBj
ZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQogYm9vbCBKU1Rlc3RJbnRlcmZhY2VPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsK
ICAgICBhdXRvKiBqc1Rlc3RJbnRlcmZhY2UgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oaGFu
ZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwotICAgIGlmIChqc1Rlc3RJbnRlcmZhY2UtPndyYXBwZWQo
KS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgeworICAgIGlmICghanNUZXN0SW50ZXJmYWNlLT53cmFw
cGVkKCkuaXNDb250ZXh0U3RvcHBlZCgpICYmIGpzVGVzdEludGVyZmFjZS0+d3JhcHBlZCgpLmhh
c1BlbmRpbmdBY3Rpdml0eSgpKSB7CiAgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQogICAg
ICAgICAgICAgKnJlYXNvbiA9ICJBY3RpdmVET01PYmplY3Qgd2l0aCBwZW5kaW5nIGFjdGl2aXR5
IjsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNDE5OWJiZmIzZTA1ZTA0YjQ5NmM3NmM3OTY1YjcxYWEzMWEzZTdlMi4uNWI2ZDM3
OWE3NDg1YjFjNDBmNzg3YzQzMjg4OTEyMWNjMDRiMDcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvcjo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVy
KQogYm9vbCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgYXV0byoganNUZXN0TmFt
ZWRDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4oaGFuZGxlLnNs
b3QoKS0+YXNDZWxsKCkpOwotICAgIGlmIChqc1Rlc3ROYW1lZENvbnN0cnVjdG9yLT53cmFwcGVk
KCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHsKKyAgICBpZiAoIWpzVGVzdE5hbWVkQ29uc3RydWN0
b3ItPndyYXBwZWQoKS5pc0NvbnRleHRTdG9wcGVkKCkgJiYganNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci0+d3JhcHBlZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKSB7CiAgICAgICAgIGlmIChVTkxJS0VM
WShyZWFzb24pKQogICAgICAgICAgICAgKnJlYXNvbiA9ICJBY3RpdmVET01PYmplY3Qgd2l0aCBw
ZW5kaW5nIGFjdGl2aXR5IjsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNl
LmNwcAppbmRleCBhNTI1MDYxMTY0YTQwNWIwYWZmNWZlZWZiMzRmN2IwODJhOTFiMWM2Li5jMDZk
MWYzODNiZjVmYTEzNzBiNmM4YTkzYjUxMDVmODFhMGE5ZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFj
ZS5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBAQCBjb25zdCBjaGFyKiBGb250RmFjZTo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgRm9udEZhY2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAhaXNDb250ZXh0U3RvcHBlZCgpICYmIG1fbWF5
TG9hZGVkUHJvbWlzZUJlU2NyaXB0T2JzZXJ2YWJsZSAmJiAhbV9sb2FkZWRQcm9taXNlLT5pc0Z1
bGZpbGxlZCgpOworICAgIHJldHVybiBtX21heUxvYWRlZFByb21pc2VCZVNjcmlwdE9ic2VydmFi
bGUgJiYgIW1fbG9hZGVkUHJvbWlzZS0+aXNGdWxmaWxsZWQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IDdhZDRkYTY4ZDIzNjk2ODFhM2RlOGRhYzViMjAy
MmNjZjUxODNmNzIuLmU2Mjc5YTcyMTE2ZjViODNkMDg0YzAyNGMwMWQ1YTI3ZDU0MzIwNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgdm9pZCBhc3NlcnRTdXNwZW5kSWZO
ZWVkZWRXYXNDYWxsZWQoKSBjb25zdDsKIAorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBi
eSBKUyBiaW5kaW5ncyB0byBkZXRlcm1pbmUgaWYgdGhlIEpTIHdyYXBwZXIgc2hvdWxkIGJlIGtl
cHQgYWxpdmUgb3Igbm90LgogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9wZW5kaW5nQWN0aXZpdHlJbnN0YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5n
QWN0aXZpdHkoKTsgfQogCiAgICAgLy8gSG93ZXZlciwgdGhlIHN1c3BlbmQgZnVuY3Rpb24gd2ls
bCBzb21ldGltZXMgYmUgY2FsbGVkIGV2ZW4gaWYgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVu
c2lvbigpIHJldHVybnMgZmFsc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCmluZGV4IGVmMmI1NjQ1NDNkYTY1YzZkN2JiNjQwNmNiMGZhODg3ODAzNDIxMTUuLmQx
ODc3N2U4ZjMwNzI1ZmIyNTkxZmQ5ZTg1ODI1NGVlNzViYmM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC05NTcsOSArOTU3LDYgQEAgY29uc3QgY2hh
ciogSFRNTENhbnZhc0VsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29s
IEhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsK
LSAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1f
Y29udGV4dC5nZXQoKSkpIHsKICAgICAgICAgLy8gV2ViR0wgcmVuZGVyaW5nIGNvbnRleHQgbWF5
IGZpcmUgY29udGV4dGxvc3QgLyBjb250ZXh0Y2hhbmdlIC8gY29udGV4dHJlc3RvcmVkIGV2ZW50
cyBhdCBhbnkgcG9pbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggZDVmYTMyNzQ0YjBj
YThmZmYzOGY4YzMwN2FlZWY0NzFiYjlkOGNkMS4uYmVhMzJhNWI1YzNkYmEyMTkwMjkxMjNmNGM0
NWE0NDRiZGU1Y2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcApAQCAtNDksNyArNDksNyBA
QCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbik7
CiBSZWY8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bjo6Z2V0T3JDcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPFNlcnZp
Y2VXb3JrZXJDb250YWluZXI+JiYgY29udGFpbmVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYmIGRhdGEpCiB7CiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGNvbnRhaW5lci0+
cmVnaXN0cmF0aW9uKGRhdGEuaWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUKCFyZWdpc3Ry
YXRpb24tPm1faXNTdG9wcGVkKTsKKyAgICAgICAgQVNTRVJUKCFyZWdpc3RyYXRpb24tPmlzQ29u
dGV4dFN0b3BwZWQoKSk7CiAgICAgICAgIHJldHVybiAqcmVnaXN0cmF0aW9uOwogICAgIH0KIApA
QCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2V0VXBk
YXRlVmlhQ2FjaGUoU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwCiAKIHZvaWQgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBkYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIHsKLSAgICBpZiAobV9pc1N0b3BwZWQpIHsKKyAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgp
KSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3Ip
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb246OnVwZGF0ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpCiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dW5yZWdpc3RlcihSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1faXNTdG9wcGVkKSB7CisgICAg
aWYgKGlzQ29udGV4dFN0b3BwZWQoKSkgewogICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0
aW9uKEludmFsaWRTdGF0ZUVycm9yKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODIs
NyArMTgyLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGVTdGF0ZUZy
b21TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblMKIAogdm9pZCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjpxdWV1ZVRhc2tUb0ZpcmVVcGRhdGVGb3VuZEV2ZW50KCkKIHsKLSAgICBp
ZiAobV9pc1N0b3BwZWQpCisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImZpcmVVcGRh
dGVGb3VuZEV2ZW50OiBGaXJpbmcgdXBkYXRlZm91bmQgZXZlbnQgZm9yIHJlZ2lzdHJhdGlvbiAl
bGx1IiwgaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwpAQCAtMjA3LDEzICsyMDcsMTIgQEAgY29u
c3QgY2hhciogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c3RvcCgpCiB7Ci0gICAg
bV9pc1N0b3BwZWQgPSB0cnVlOwogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiB9CiAK
IGJvb2wgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX2lzU3RvcHBlZCAmJiBnZXROZXdlc3RXb3JrZXIo
KSAmJiBoYXNFdmVudExpc3RlbmVycygpOworICAgIHJldHVybiBnZXROZXdlc3RXb3JrZXIoKSAm
JiBoYXNFdmVudExpc3RlbmVycygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uaAppbmRleCBlMDBjYWU5NjYwZmEwZDM1YjRkODkxYzQwMzQyZThkM2E0MWU5
NWNmLi4wNzVmYWQ3OTYwYjNjZTcwZWRhYzJlMTI4MmRkNzY1M2YwYmY2MzE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmgKQEAgLTk1LDggKzk1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2Vydmlj
ZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBt
X3dhaXRpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fYWN0aXZlV29ya2Vy
OwotCi0gICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395299</attachid>
            <date>2020-04-02 14:26:29 -0700</date>
            <delta_ts>2020-04-02 14:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209886-20200402142629.patch</filename>
            <type>text/plain</type>
            <size>19195</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjYyNjFkYzkxMzRhMGM3
OWFmZjFjMWE3NzMwZDU5NWY2YTg3MTUzYS4uMjYyMTU2MTdhMjE0ZTM2MGJiMzBiYzAzMDU3ZjUz
NmZlNjQ3N2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBzaG91bGQgc3RvcCBwcmV2ZW50aW5nIHdyYXBwZXIgY29sbGVj
dGlvbiBhZnRlciBBY3RpdmVET01PYmplY3Q6OnN0b3AoKSBoYXMgYmVlbiBjYWxsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBY3RpdmVET01PYmplY3Q6
OnN0b3AoKSBnZXRzIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgaXMg
YWJvdXQgdG8gYmUgZGVzdHJveWVkLgorICAgICAgICBBY3RpdmVET01PYmplY3Qgb2JqZWN0cyBz
aG91bGQgbm8gbG9uZ2VyIHJ1biBzY3JpcHQgYWZ0ZXIgdGhhdCBhbmQgdGhlcmUgaXMgdGhlcmVm
b3JlIG5vIHBvaW50CisgICAgICAgIGluIGtlZXBpbmcgdGhlIEpTIHdyYXBwZXIgYWxpdmUgb25j
ZSBzdG9wKCkgaGFzIGJlZW4gY2FsbGVkLiBXb3JzZSwgZGVwZW5kaW5nIG9uIHRoZQorICAgICAg
ICBpbXBsZW1lbnRhdGlvbiBvZiB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCksIGtlZXBpbmcg
dGhlIHdyYXBwZXIgYWxpdmUgcGFzdCB0aGlzIHBvaW50IG1heQorICAgICAgICBhY3R1YWxseSBj
YXVzZSBKUyB3cmFwcGVyIGxlYWtzLiBTb21lIG9mIHRoZSB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgd2VyZSBwcm9wZXJseSBjaGVja2luZworICAgICAgICBpZiB0aGUgY29udGV4dCB3YXMg
c3RvcHBlZCBidXQgbm90IGFsbCBvZiB0aGVtLiBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgd2Ugbm93
IGNoZWNrCisgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6aXNDb250ZXh0U3RvcHBlZCgpIGluIHRo
ZSBKUyBiaW5kaW5ncywgaW4gYWRkaXRpb24gdG8KKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSwgc28gdGhhdCBpdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8g
a2VlcCBhIEpTIHdyYXBwZXIKKyAgICAgICAgYWxpdmUgcGFzdCB0aGUgcG9pbnQgd2hlcmUgdGhl
IHNjcmlwdCBleGVjdXRpb24gY29udGV4dCBoYXMgYmVlbiBzdG9wcGVkLiBUaGlzIG5ldyBhcHBy
b2FjaAorICAgICAgICBpcyBhIGxvdCBsZXNzIGxlYWsvZXJyb3IgcHJvbmUuCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplbnF1ZXVlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpub3RpZnlEaWRBYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVy
ZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRGYWNlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBk
b20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnVucmVnaXN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6cXVldWVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmg6CisKIDIwMjAtMDQtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFRyYXZlcnNlIGZsb2F0IGRlc2NlbmRhbnRzIHdoZW4gY29tcHV0aW5nIGV2ZW50
IGFuZCB0b3VjaC1hY3Rpb24gcmVnaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDNhN2IyMjliZjdjZTQ0NDdkZDcwNzJlOWY3
OGVjNDdmNTZlMmUyMzcuLjM4YWRiODgwYjZkYjU5MjlmNGQ5MDIwZDk0NzUyZmNkZTdlZmVhZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBJREJEYXRhYmFzZTo6dmlydHVhbEhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJl
YWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsK
IAotICAgIGlmIChtX2Nsb3NlZEluU2VydmVyIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkKKyAgICBp
ZiAobV9jbG9zZWRJblNlcnZlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFt
X2FjdGl2ZVRyYW5zYWN0aW9ucy5pc0VtcHR5KCkgfHwgIW1fY29tbWl0dGluZ1RyYW5zYWN0aW9u
cy5pc0VtcHR5KCkgfHwgIW1fYWJvcnRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNw
cAppbmRleCBkYmFmNDNlNDhjYzIyNWNiMDgxZGIyNzlhODkxODhmMGEzMGZhYTZiLi42M2QxMWIz
NWNhYjc3OTc5N2ExYzUyN2FiODk4OTYxYmY3YWQ2YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTkyLDcg
KzE5Miw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZChjb25zdCBJ
REJSZXN1bHREYXRhJiBkYXRhKQogICAgIC8vIElmIGFuIE9wZW4gcmVxdWVzdCB3YXMgY29tcGxl
dGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBuYXZpZ2F0ZWQsIGxlYXZpbmcgdGhpcyByZXF1ZXN0CiAg
ICAgLy8gd2l0aCBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0LCB3ZSBuZWVkIHRv
IG1lc3NhZ2UgYmFjayB0byB0aGUgc2VydmVyIHNvIGl0CiAgICAgLy8gZG9lc24ndCBoYW5nIHdh
aXRpbmcgb24gYSBkYXRhYmFzZSBjb25uZWN0aW9uIG9yIHRyYW5zYWN0aW9uIHRoYXQgd2lsbCBu
ZXZlciBleGlzdC4KLSAgICBpZiAobV9jb250ZXh0U3RvcHBlZCkgeworICAgIGlmIChpc0NvbnRl
eHRTdG9wcGVkKCkpIHsKICAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUoKSkgewogICAgICAgICBj
YXNlIElEQlJlc3VsdFR5cGU6Ok9wZW5EYXRhYmFzZVN1Y2Nlc3M6CiAgICAgICAgICAgICBjb25u
ZWN0aW9uUHJveHkoKS5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGEuZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllcigpLCBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmlu
ZGV4IDUwNTI0MzNlNTU5MGEyNzdkNWZmYWM4YzIyMTQwZjg2MDNhMGFhNjUuLjhkMjAxMTcxMmY3
MWYzYTM0MDNjZGY0ZjY2YmIxMjU0ZjAzNzdlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0yNjIsMjEgKzI2MiwxOCBAQCBjb25z
dCBjaGFyKiBJREJSZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIGJvb2wgSURC
UmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8
IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKLSAgICByZXR1cm4gIW1fY29udGV4dFN0b3BwZWQg
JiYgbV9oYXNQZW5kaW5nQWN0aXZpdHk7CisgICAgcmV0dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5
OwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OnN0b3AoKQogewogICAgIEFTU0VSVChjYW5DdXJyZW50
VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Ci0gICAgQVNTRVJU
KCFtX2NvbnRleHRTdG9wcGVkKTsKIAogICAgIGNhbmNlbEZvclN0b3AoKTsKIAogICAgIHJlbW92
ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICAgICBjbGVhcldyYXBwZXJzKCk7Ci0KLSAgICBtX2Nv
bnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpjYW5jZWxGb3JTdG9w
KCkKQEAgLTI4Nyw3ICsyODQsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OmNhbmNlbEZvclN0b3AoKQog
dm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQogewogICAg
IEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVh
ZCgpKSk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQpCisgICAgaWYgKGlzQ29udGV4dFN0b3Bw
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0
aGlzLCBUYXNrU291cmNlOjpEYXRhYmFzZUFjY2VzcywgV1RGTW92ZShldmVudCkpOwpAQCAtMjk5
LDcgKzI5Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQp
CiAKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmln
aW5UaHJlYWQoKSkpOwogICAgIEFTU0VSVChtX2hhc1BlbmRpbmdBY3Rpdml0eSk7Ci0gICAgQVNT
RVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAgICBBU1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7
CiAKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKICAgICBtX2Rpc3Bh
dGNoaW5nRXZlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCmluZGV4IDJjZWI1ZDNkZGEyNzE4ZWM3ZWIyMmVlMzk5ZTYzODUxNDM0NmVl
OGUuLjlhNDYxMWJjYmRhOWEyODU2NzFjNTkzZWZmNDhhNmQ3N2ZmNDZmZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTE0NCw3ICsxNDQs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3Nob3VsZEV4cG9zZVRyYW5zYWN0aW9uVG9ET00g
eyB0cnVlIH07CiAgICAgUmVmUHRyPERPTUV4Y2VwdGlvbj4gbV9kb21FcnJvcjsKICAgICBJbmRl
eGVkREI6OlJlcXVlc3RUeXBlIG1fcmVxdWVzdFR5cGUgeyBJbmRleGVkREI6OlJlcXVlc3RUeXBl
OjpPdGhlciB9OwotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgRXZl
bnQqIG1fb3BlbkRhdGFiYXNlU3VjY2Vzc0V2ZW50IHsgbnVsbHB0ciB9OwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCmluZGV4IDIwZDY4ZTBlMDQ2NzE5OGE3ZDE5NzcwN2NiMDg1ZjMwNjYwNTc0NWUuLjA2YTkz
NGFjYmYzYmQ2NDIzMzRiY2FjM2ViMWMzYzI4MmFiNDI0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTMxOCw3ICsz
MTgsNyBAQCBjb25zdCBjaGFyKiBJREJUcmFuc2FjdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiBib29sIElEQlRyYW5zYWN0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0
YShtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWQoKSkgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkp
OwotICAgIHJldHVybiAhbV9jb250ZXh0U3RvcHBlZCAmJiBtX3N0YXRlICE9IEluZGV4ZWREQjo6
VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNoZWQ7CisgICAgcmV0dXJuIG1fc3RhdGUgIT0gSW5kZXhl
ZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsKIH0KIAogdm9pZCBJREJUcmFuc2FjdGlv
bjo6c3RvcCgpCkBAIC0zMjgsMTIgKzMyOCwxMiBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpzdG9w
KCkKIAogICAgIC8vIElEQkRhdGFiYXNlOjpzdG9wKCkgY2FsbHMgSURCVHJhbnNhY3Rpb246OnN0
b3AoKSBmb3IgZWFjaCBvZiBpdHMgYWN0aXZlIHRyYW5zYWN0aW9ucy4KICAgICAvLyBTaW5jZSB0
aGUgb3JkZXIgb2YgY2FsbGluZyBBY3RpdmVET01PYmplY3Q6OnN0b3AoKSBpcyByYW5kb20sIHdl
IG1pZ2h0IGFscmVhZHkgaGF2ZSBiZWVuIHN0b3BwZWQuCi0gICAgaWYgKG1fY29udGV4dFN0b3Bw
ZWQpCisgICAgaWYgKG1faXNTdG9wcGVkKQogICAgICAgICByZXR1cm47CiAKICAgICByZW1vdmVB
bGxFdmVudExpc3RlbmVycygpOwogCi0gICAgbV9jb250ZXh0U3RvcHBlZCA9IHRydWU7CisgICAg
bV9pc1N0b3BwZWQgPSB0cnVlOwogCiAgICAgaWYgKGlzVmVyc2lvbkNoYW5nZSgpKQogICAgICAg
ICBtX29wZW5EQlJlcXVlc3QgPSBudWxscHRyOwpAQCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgSURC
VHJhbnNhY3Rpb246Om5vdGlmeURpZEFib3J0KGNvbnN0IElEQkVycm9yJiBlcnJvcikKICAgICBt
X2lkYkVycm9yID0gZXJyb3I7CiAgICAgZmlyZU9uQWJvcnQoKTsKIAotICAgIGlmIChpc1ZlcnNp
b25DaGFuZ2UoKSAmJiAhbV9jb250ZXh0U3RvcHBlZCkgeworICAgIGlmIChpc1ZlcnNpb25DaGFu
Z2UoKSAmJiAhaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAgICAgICAgIEFTU0VSVChtX29wZW5EQlJl
cXVlc3QpOwogICAgICAgICBtX29wZW5EQlJlcXVlc3QtPmZpcmVFcnJvckFmdGVyVmVyc2lvbkNo
YW5nZUNvbXBsZXRpb24oKTsKICAgICB9CkBAIC01NzMsNyArNTczLDcgQEAgdm9pZCBJREJUcmFu
c2FjdGlvbjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJiBldmVudCkKICAgICBBU1NFUlQobV9z
dGF0ZSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkKTsKICAgICBBU1NF
UlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX2RhdGFiYXNlLT5vcmln
aW5UaHJlYWQoKSkpOwogCi0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgfHwgbV9j
b250ZXh0U3RvcHBlZCkKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB8fCBpc0Nv
bnRleHRTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RGF0YWJhc2VBY2Nlc3MsIFdURk1vdmUoZXZlbnQp
KTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50
KEV2ZW50JiBldmVudCkKIAogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFk
TG9jYWxEYXRhKG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZCgpKSk7CiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRTdG9wcGVkKTsKKyAg
ICBBU1NFUlQoIWlzQ29udGV4dFN0b3BwZWQoKSk7CiAgICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuY29tcGxldGVFdmVudCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmFib3J0RXZlbnQpOwogCiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaAppbmRleCA1NWIwZDEwZGY3NWZhMjIwZjhiMDY0M2MxYTc2ZThlNDNhOTY2MmUxLi5jZGJl
ZTY5M2VkYjYzMzcwYTFiODhkMDQ1MmMzZjMyNWQzY2Y5ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTI2Miw3ICsyNjIs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRyPElEQlJlcXVlc3Q+PiBtX29wZW5SZXF1
ZXN0czsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gbV9jdXJyZW50bHlDb21wbGV0aW5nUmVxdWVz
dDsKIAotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RpZERpc3BhdGNoQWJvcnRPckNvbW1pdCB7
IGZhbHNlIH07CiAKICAgICB1aW50NjRfdCBtX2xhc3RXcml0ZU9wZXJhdGlvbklEIHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCmluZGV4IDNiNjRkZWM1NmYyNDg5YjFiNjE1OWJkZjRhNjRiOWE1OTg1NDQzMzguLmJiZmVh
YmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcyZTE3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTI1MCw3ICsy
NTAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKCkKIAog
Ym9vbCBNZWRpYURldmljZXM6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewot
ICAgIHJldHVybiAhaXNDb250ZXh0U3RvcHBlZCgpICYmIGhhc0V2ZW50TGlzdGVuZXJzKG1fZXZl
bnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7CisgICAgcmV0dXJuIGhhc0V2ZW50TGlzdGVuZXJz
KG1fZXZlbnROYW1lcy5kZXZpY2VjaGFuZ2VFdmVudCk7CiB9CiAKIGNvbnN0IGNoYXIqIE1lZGlh
RGV2aWNlczo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDQ0MGQ2ZjFmMjc5
NTg3ZjhiMTkyZWI3ODBiNDU5MDBiMjNhNGM0YzcuLmRiOWFjMWJjN2FlMThhNGRkZjBkYjU4YjM5
OWE0YmU0MGY2YmEyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00Nzc0LDcgKzQ3NzQsOCBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5k
ZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIkFjdGl2ZURPTU9iamVjdCIpKSB7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nh
c3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAg
ICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoanMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuaGFzUGVuZGluZ0Fj
dGl2aXR5KCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0
byYgd3JhcHBlZCA9IGpzJHtpbnRlcmZhY2VOYW1lfS0+d3JhcHBlZCgpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXdyYXBwZWQuaXNDb250ZXh0U3RvcHBl
ZCgpICYmIHdyYXBwZWQuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKVxuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgICpyZWFzb24gPSBcIkFj
dGl2ZURPTU9iamVjdCB3aXRoIHBlbmRpbmcgYWN0aXZpdHlcIjtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCmluZGV4IDZjM2EwNjM1Y2U1ZTJhZDRmYzA2MGFmYTQ2NzI0NDA5Y2YxZjhmNzAu
LjNmZGNjZWMwODc1NTEzNTc2Mzk1MGIwMTZlMzYyNTgwNTg2YWI0Y2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCkBAIC0xMjEwLDcgKzEyMTAsOCBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6YW5h
bHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQogYm9vbCBKU1Rl
c3RJbnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBhdXRvKiBqc1Rlc3RJbnRlcmZhY2UgPSBqc0Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwotICAgIGlmIChqc1Rlc3RJ
bnRlcmZhY2UtPndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgeworICAgIGF1dG8mIHdy
YXBwZWQgPSBqc1Rlc3RJbnRlcmZhY2UtPndyYXBwZWQoKTsKKyAgICBpZiAoIXdyYXBwZWQuaXND
b250ZXh0U3RvcHBlZCgpICYmIHdyYXBwZWQuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHsKICAgICAg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCiAgICAgICAgICAgICAqcmVhc29uID0gIkFjdGl2ZURP
TU9iamVjdCB3aXRoIHBlbmRpbmcgYWN0aXZpdHkiOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA0MTk5YmJmYjNlMDVlMDRiNDk2
Yzc2Yzc5NjViNzFhYTMxYTNlN2UyLi5iMTBmZGRjNGE3YTdhZTg3OGJkOGVmMjJjNzQ5MzRhZTc3
MTdmMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yNTMsNyAr
MjUzLDggQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjphbmFseXplSGVhcChKU0NlbGwq
IGNlbGwsIEhlYXBBbmFseXplciYgYW5hbHl6ZXIpCiBib29sIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJl
YXNvbikKIHsKICAgICBhdXRvKiBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yID0ganNDYXN0PEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7Ci0gICAgaWYgKGpz
VGVzdE5hbWVkQ29uc3RydWN0b3ItPndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgewor
ICAgIGF1dG8mIHdyYXBwZWQgPSBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yLT53cmFwcGVkKCk7Cisg
ICAgaWYgKCF3cmFwcGVkLmlzQ29udGV4dFN0b3BwZWQoKSAmJiB3cmFwcGVkLmhhc1BlbmRpbmdB
Y3Rpdml0eSgpKSB7CiAgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQogICAgICAgICAgICAg
KnJlYXNvbiA9ICJBY3RpdmVET01PYmplY3Qgd2l0aCBwZW5kaW5nIGFjdGl2aXR5IjsKICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCBhNTI1MDYxMTY0YTQw
NWIwYWZmNWZlZWZiMzRmN2IwODJhOTFiMWM2Li5jMDZkMWYzODNiZjVmYTEzNzBiNmM4YTkzYjUx
MDVmODFhMGE5ZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTQ4OCw3ICs0ODgsNyBA
QCBjb25zdCBjaGFyKiBGb250RmFjZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJv
b2wgRm9udEZhY2U6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJl
dHVybiAhaXNDb250ZXh0U3RvcHBlZCgpICYmIG1fbWF5TG9hZGVkUHJvbWlzZUJlU2NyaXB0T2Jz
ZXJ2YWJsZSAmJiAhbV9sb2FkZWRQcm9taXNlLT5pc0Z1bGZpbGxlZCgpOworICAgIHJldHVybiBt
X21heUxvYWRlZFByb21pc2VCZVNjcmlwdE9ic2VydmFibGUgJiYgIW1fbG9hZGVkUHJvbWlzZS0+
aXNGdWxmaWxsZWQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fj
dGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmlu
ZGV4IDdhZDRkYTY4ZDIzNjk2ODFhM2RlOGRhYzViMjAyMmNjZjUxODNmNzIuLmU2Mjc5YTcyMTE2
ZjViODNkMDg0YzAyNGMwMWQ1YTI3ZDU0MzIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9N
T2JqZWN0LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZElmTmVl
ZGVkKCk7CiAgICAgdm9pZCBhc3NlcnRTdXNwZW5kSWZOZWVkZWRXYXNDYWxsZWQoKSBjb25zdDsK
IAorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBieSBKUyBiaW5kaW5ncyB0byBkZXRlcm1p
bmUgaWYgdGhlIEpTIHdyYXBwZXIgc2hvdWxkIGJlIGtlcHQgYWxpdmUgb3Igbm90LgogICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nQWN0aXZpdHlJ
bnN0YW5jZUNvdW50IHx8IHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKTsgfQogCiAgICAgLy8g
SG93ZXZlciwgdGhlIHN1c3BlbmQgZnVuY3Rpb24gd2lsbCBzb21ldGltZXMgYmUgY2FsbGVkIGV2
ZW4gaWYgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIHJldHVybnMgZmFsc2UuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGVmMmI1NjQ1NDNk
YTY1YzZkN2JiNjQwNmNiMGZhODg3ODAzNDIxMTUuLmQxODc3N2U4ZjMwNzI1ZmIyNTkxZmQ5ZTg1
ODI1NGVlNzViYmM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCkBAIC05NTcsOSArOTU3LDYgQEAgY29uc3QgY2hhciogSFRNTENhbnZhc0VsZW1lbnQ6OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIEhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICBpZiAoaXNDb250ZXh0U3RvcHBl
ZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYg
KGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY29udGV4dC5nZXQoKSkpIHsKICAgICAg
ICAgLy8gV2ViR0wgcmVuZGVyaW5nIGNvbnRleHQgbWF5IGZpcmUgY29udGV4dGxvc3QgLyBjb250
ZXh0Y2hhbmdlIC8gY29udGV4dHJlc3RvcmVkIGV2ZW50cyBhdCBhbnkgcG9pbnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5jcHAKaW5kZXggZDVmYTMyNzQ0YjBjYThmZmYzOGY4YzMwN2FlZWY0NzFiYjlk
OGNkMS4uYmVhMzJhNWI1YzNkYmEyMTkwMjkxMjNmNGM0NWE0NDRiZGU1Y2I1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uLmNwcApAQCAtNDksNyArNDksNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbik7CiBSZWY8U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbj4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0T3JDcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+JiYgY29u
dGFpbmVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEpCiB7CiAgICAgaWYg
KGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGNvbnRhaW5lci0+cmVnaXN0cmF0aW9uKGRhdGEuaWRlbnRp
ZmllcikpIHsKLSAgICAgICAgQVNTRVJUKCFyZWdpc3RyYXRpb24tPm1faXNTdG9wcGVkKTsKKyAg
ICAgICAgQVNTRVJUKCFyZWdpc3RyYXRpb24tPmlzQ29udGV4dFN0b3BwZWQoKSk7CiAgICAgICAg
IHJldHVybiAqcmVnaXN0cmF0aW9uOwogICAgIH0KIApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2V0VXBkYXRlVmlhQ2FjaGUoU2VydmljZVdvcmtl
clVwZGF0ZVZpYUNhY2hlIHVwCiAKIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBk
YXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9pc1N0b3Bw
ZWQpIHsKKyAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKSB7CiAgICAgICAgIHByb21pc2UtPnJl
amVjdChFeGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3IpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVw
ZGF0ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZvaWQgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbjo6dW5yZWdpc3RlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2Up
CiB7Ci0gICAgaWYgKG1faXNTdG9wcGVkKSB7CisgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkg
ewogICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uKEludmFsaWRTdGF0ZUVycm9yKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGVTdGF0ZUZyb21TZXJ2ZXIoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblMKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpxdWV1ZVRhc2tU
b0ZpcmVVcGRhdGVGb3VuZEV2ZW50KCkKIHsKLSAgICBpZiAobV9pc1N0b3BwZWQpCisgICAgaWYg
KGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVHSVNUUkFUSU9O
X1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImZpcmVVcGRhdGVGb3VuZEV2ZW50OiBGaXJpbmcgdXBk
YXRlZm91bmQgZXZlbnQgZm9yIHJlZ2lzdHJhdGlvbiAlbGx1IiwgaWRlbnRpZmllcigpLnRvVUlu
dDY0KCkpOwpAQCAtMjA3LDEzICsyMDcsMTIgQEAgY29uc3QgY2hhciogU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIHZvaWQgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbjo6c3RvcCgpCiB7Ci0gICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogICAg
IHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiB9CiAKIGJvb2wgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICFtX2lzU3RvcHBlZCAmJiBnZXROZXdlc3RXb3JrZXIoKSAmJiBoYXNFdmVudExpc3RlbmVycygp
OworICAgIHJldHVybiBnZXROZXdlc3RXb3JrZXIoKSAmJiBoYXNFdmVudExpc3RlbmVycygpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCBlMDBj
YWU5NjYwZmEwZDM1YjRkODkxYzQwMzQyZThkM2E0MWU5NWNmLi4wNzVmYWQ3OTYwYjNjZTcwZWRh
YzJlMTI4MmRkNzY1M2YwYmY2MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTk1LDggKzk1
LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29y
a2VyOwogICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBtX3dhaXRpbmdXb3JrZXI7CiAgICAgUmVm
UHRyPFNlcnZpY2VXb3JrZXI+IG1fYWN0aXZlV29ya2VyOwotCi0gICAgYm9vbCBtX2lzU3RvcHBl
ZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>