<?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>208393</bug_id>
          
          <creation_ts>2020-02-28 14:33:27 -0800</creation_ts>
          <short_desc>Delete by val caching does not keep the subscript alive</short_desc>
          <delta_ts>2020-03-02 17:23:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Michaud">justin_michaud</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624136</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2020-02-28 14:33:27 -0800</bug_when>
    <thetext>Delete by val caching does not keep the subscript alive. It should use cacheable identifier to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624137</commentid>
    <comment_count>1</comment_count>
      <attachid>392021</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2020-02-28 14:37:52 -0800</bug_when>
    <thetext>Created attachment 392021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624138</commentid>
    <comment_count>2</comment_count>
      <attachid>392021</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-02-28 14:40:59 -0800</bug_when>
    <thetext>Comment on attachment 392021
Patch

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

&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:50
&gt; +    enum DoNotKeepAliveTag { DoNotKeepAlive };

This isn&apos;t the right name. We definitely want both to be &quot;kept&quot; alive. But, this is just to indicate that it&apos;s a non-cell pointer we don&apos;t need to visit. Not sure what the right name is, but &quot;DoNotKeepAlive&quot; is super misleading.

Maybe something like &quot;OwnedByCodeBlock&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624152</commentid>
    <comment_count>3</comment_count>
      <attachid>392021</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-28 15:23:47 -0800</bug_when>
    <thetext>Comment on attachment 392021
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:50
&gt;&gt; +    enum DoNotKeepAliveTag { DoNotKeepAlive };
&gt; 
&gt; This isn&apos;t the right name. We definitely want both to be &quot;kept&quot; alive. But, this is just to indicate that it&apos;s a non-cell pointer we don&apos;t need to visit. Not sure what the right name is, but &quot;DoNotKeepAlive&quot; is super misleading.
&gt; 
&gt; Maybe something like &quot;OwnedByCodeBlock&quot;?

How about defining static factory functions? Like,

CacheableIdentifier::createWithoutKeepingAlive(const Identifier&amp;), and hiding the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624153</commentid>
    <comment_count>4</comment_count>
      <attachid>392021</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-28 15:24:33 -0800</bug_when>
    <thetext>Comment on attachment 392021
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:50
&gt;&gt;&gt; +    enum DoNotKeepAliveTag { DoNotKeepAlive };
&gt;&gt; 
&gt;&gt; This isn&apos;t the right name. We definitely want both to be &quot;kept&quot; alive. But, this is just to indicate that it&apos;s a non-cell pointer we don&apos;t need to visit. Not sure what the right name is, but &quot;DoNotKeepAlive&quot; is super misleading.
&gt;&gt; 
&gt;&gt; Maybe something like &quot;OwnedByCodeBlock&quot;?
&gt; 
&gt; How about defining static factory functions? Like,
&gt; 
&gt; CacheableIdentifier::createWithoutKeepingAlive(const Identifier&amp;), and hiding the constructor.

CacheableIdentifier::createFromIdentifierOwnedByCodeBlock ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624161</commentid>
    <comment_count>5</comment_count>
      <attachid>392026</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2020-02-28 15:39:13 -0800</bug_when>
    <thetext>Created attachment 392026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624168</commentid>
    <comment_count>6</comment_count>
      <attachid>392026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-28 15:59:40 -0800</bug_when>
    <thetext>Comment on attachment 392026
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:50
&gt;      inline CacheableIdentifier(JSCell* identifier);

Personally I like making this constructor hidden too, and defining &quot;createFromCell(JSCell*)` factory function instead, but it&apos;s up to you :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624209</commentid>
    <comment_count>7</comment_count>
      <attachid>392026</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-02-28 18:13:08 -0800</bug_when>
    <thetext>Comment on attachment 392026
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:50
&gt;&gt;      inline CacheableIdentifier(JSCell* identifier);
&gt; 
&gt; Personally I like making this constructor hidden too, and defining &quot;createFromCell(JSCell*)` factory function instead, but it&apos;s up to you :).

+1

It&apos;s weird to have one path use constructor, and one use the static factory thingy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624210</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-02-28 18:13:41 -0800</bug_when>
    <thetext>r=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624632</commentid>
    <comment_count>9</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2020-03-02 11:18:13 -0800</bug_when>
    <thetext>rdar://59933630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624655</commentid>
    <comment_count>10</comment_count>
      <attachid>392169</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2020-03-02 11:57:06 -0800</bug_when>
    <thetext>Created attachment 392169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624688</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:57:51 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 392169:

editing/spelling/spellcheck-paste-continuous-disabled.html bug 208016 (authors: g.czajkowski@samsung.com and mark.lam@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624689</commentid>
    <comment_count>12</comment_count>
      <attachid>392169</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:58:26 -0800</bug_when>
    <thetext>Comment on attachment 392169
Patch

Clearing flags on attachment: 392169

Committed r257728: &lt;https://trac.webkit.org/changeset/257728&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624690</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:58:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624859</commentid>
    <comment_count>14</comment_count>
      <attachid>392169</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-02 17:23:13 -0800</bug_when>
    <thetext>Comment on attachment 392169
Patch

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

&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:87
&gt; +    explicit inline CacheableIdentifier(const Identifier&amp;);

why make this explicit but not &quot;createFromIdentifierOwnedByCodeBlock&quot; since that&apos;s the API of this class (since these are private ctors)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392021</attachid>
            <date>2020-02-28 14:37:52 -0800</date>
            <delta_ts>2020-02-28 15:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208393-20200228143752.patch</filename>
            <type>text/plain</type>
            <size>18891</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NThjNzBiZGNkOThhMzUyYzZjNzM2YWYyNzc2NzJiYzgyNmY0OWI0Li4xNmQ2MDYxNmMxMzg5NDdh
OWQ0OGM0YzQzYzNhODZlYmJjMTVmOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wMi0yOCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIGJ5IHZhbCBjYWNoaW5nIGRvZXMgbm90IGtlZXAg
dGhlIHN1YnNjcmlwdCBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQmVmb3JlLCB0aGUgcHJvdmlkZWQgdGVzdCBjYXNlIGNyYXNoZWQgd2l0aCBh
c2FuIGJlY2F1c2Ugd2UgZGlkIG5vdCBrZWVwIGRlbGV0ZUJ5VmFsCisgICAgICAgIHN1YnNjcmlw
dHMgYWxpdmUuIFRoaXMgcGF0Y2ggY2hhbmdlcyBDYWNoZWFibGVJZGVudGlmaWVyIHRvIG1ha2Ug
dGhpcyBtaXN0YWtlIGhhcmRlcgorICAgICAgICB0byBtYWtlIGFnYWluLCBieSBtYWtpbmcgdGhl
IGNvbnN0cnVjdG9yIGNhbGxzIG1vcmUgZXhwbGljaXQgd2hlbiBDYWNoZWFibGVJZGVudGlmaWVy
CisgICAgICAgICB3aWxsIG5vdCBrZWVwIGFuIElkZW50aWZpZXIgYWxpdmUuCisKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAg
ICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZURlbGV0
ZUJ5KToKKyAgICAgICAgKEpTQzo6cmVwYXRjaERlbGV0ZUJ5KToKKyAgICAgICAgKEpTQzo6dHJ5
Q2FjaGVJbkJ5SUQpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZUluc3RhbmNlT2YpOgorICAgICAg
ICAoSlNDOjp0cnlDYWNoZURlbEJ5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVwYXRjaERl
bEJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIHJ1bnRp
bWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVhYmxlSWRl
bnRpZmllcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q2FjaGVhYmxlSWRlbnRpZmllcjo6Q2Fj
aGVhYmxlSWRlbnRpZmllcik6CisKIDIwMjAtMDItMjcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGRlYnVnIGFybTY0IFdhc20gdGVzdHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDdiZGYxZjczMmJmNGUw
NWQ5Yjg1Njk2ZWY0Njg0N2YzYjU2MTA3NmIuLmY0Y2UxOTNiODA5MDMzZDNmMDI5ODIxMWFhMzVk
MzEyZGNlMTliNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKICAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgaWYgKHN0
dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywgYmFzZVZhbHVlLnN0cnVjdHVy
ZU9yTnVsbCgpKSAmJiAhc2xvdC5pc1RhaW50ZWRCeU9wYXF1ZU9iamVjdCgpICYmIChzbG90Lmlz
Q2FjaGVhYmxlVmFsdWUoKSB8fCBzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkgfHwgc2xvdC5pc1Vu
c2V0KCkpKQotICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJh
c2VWYWx1ZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpUcnkpOworICAgICAg
ICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgQ2FjaGVh
YmxlSWRlbnRpZmllcihpZGVudCwgQ2FjaGVhYmxlSWRlbnRpZmllcjo6RG9Ob3RLZWVwQWxpdmUp
LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6VHJ5KTsKIAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQpAQCAtMjcwLDcgKzI3MCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXpl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0s
IGNvZGVCbG9jaywgYmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgcmVwYXRj
aEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAq
c3R1YkluZm8sIEdldEJ5S2luZDo6RGlyZWN0KTsKKyAgICAgICAgcmVwYXRjaEdldEJ5KGdsb2Jh
bE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIENhY2hlYWJsZUlkZW50aWZpZXIoaWRlbnQs
IENhY2hlYWJsZUlkZW50aWZpZXI6OkRvTm90S2VlcEFsaXZlKSwgc2xvdCwgKnN0dWJJbmZvLCBH
ZXRCeUtpbmQ6OkRpcmVjdCk7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShmb3VuZCA/IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVudCkgOiBq
c1VuZGVmaW5lZCgpKSk7CiB9CkBAIC0zMzAsNyArMzMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamUKICAgICAgICAgCiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKTsKICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0s
IGNvZGVCbG9jaywgYmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgICAgIHJl
cGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBpZGVudCwgc2xv
dCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6Ok5vcm1hbCk7CisgICAgICAgICAgICByZXBhdGNoR2V0
QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgQ2FjaGVhYmxlSWRlbnRpZmll
cihpZGVudCwgQ2FjaGVhYmxlSWRlbnRpZmllcjo6RG9Ob3RLZWVwQWxpdmUpLCBzbG90LCAqc3R1
YkluZm8sIEdldEJ5S2luZDo6Tm9ybWFsKTsKICAgICAgICAgcmV0dXJuIGZvdW5kID8gc2xvdC5n
ZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCk7CiAgICAgfSkpOwog
fQpAQCAtMzg3LDcgKzM4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgICAgIAog
ICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAg
ICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5nKHZtLCBjb2RlQmxvY2ssIGJhc2VW
YWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCi0gICAgICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFs
T2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgR2V0
QnlLaW5kOjpXaXRoVGhpcyk7CisgICAgICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0
LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgQ2FjaGVhYmxlSWRlbnRpZmllcihpZGVudCwgQ2FjaGVh
YmxlSWRlbnRpZmllcjo6RG9Ob3RLZWVwQWxpdmUpLCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2lu
ZDo6V2l0aFRoaXMpOwogICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2Jh
bE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKTsKICAgICB9KSk7CiB9CkBAIC0yMTcyLDEz
ICsyMTcyLDEzIEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBpZiAoYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tVWlkKHZtLCB1aWQpOworICAgICAgICBjb25zdCBJZGVudGlmaWVyIGlkZW50ID0g
SWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgdWlkKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKCFwYXJzZUluZGV4KHBy
b3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKCFwYXJzZUluZGV4KGlkZW50KSkgewogICAgICAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAg
ICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywgYmFz
ZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgICAgICAgICByZXBhdGNoRGVsQnko
Z2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xkU3RydWN0dXJlLCBw
cm9wZXJ0eU5hbWUsICpzdHViSW5mbywgRGVsQnlLaW5kOjpOb3JtYWwpOworICAgICAgICAgICAg
ICAgIHJlcGF0Y2hEZWxldGVCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZh
bHVlLCBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXIoaWRlbnQsIENhY2hlYWJsZUlk
ZW50aWZpZXI6OkRvTm90S2VlcEFsaXZlKSwgKnN0dWJJbmZvLCBEZWxCeUtpbmQ6Ok5vcm1hbCk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIyNDAsNyArMjI0MCw3IEBAIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICAgICAgaWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8ICFwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2Fs
bEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJD
YWNoaW5nKHZtLCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCi0gICAg
ICAgICAgICAgICAgcmVwYXRjaERlbEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBzbG90LCBi
YXNlVmFsdWUsIG9sZFN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCAqc3R1YkluZm8sIERlbEJ5S2lu
ZDo6Tm9ybWFsQnlWYWwpOworICAgICAgICAgICAgICAgIHJlcGF0Y2hEZWxldGVCeShnbG9iYWxP
YmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIHN1YnNjcmlw
dC5hc0NlbGwoKSwgKnN0dWJJbmZvLCBEZWxCeUtpbmQ6Ok5vcm1hbEJ5VmFsKTsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggODNhZDUx
Njc3ZTMxMDBjZjgyN2ZkMWVjMzM0N2U4MjhkYmJhZTRlMS4uMzYyNmI5OWVjN2M2MzhlOGQ0ZWVi
OWQ0MzQ1Y2E3ZDJiNzcxM2Y5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3Bw
CkBAIC01OTIsNyArNTkyLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0
QnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG5ld0Nhc2Ug
PSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVCbG9jaywgQWNjZXNzQ2FzZTo6UmVwbGFjZSwg
aWRlbnQsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIG9sZFN0cnVjdHVyZSk7CisgICAgICAgICAgICAg
ICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNl
OjpSZXBsYWNlLCBDYWNoZWFibGVJZGVudGlmaWVyKGlkZW50LCBDYWNoZWFibGVJZGVudGlmaWVy
OjpEb05vdEtlZXBBbGl2ZSksIHNsb3QuY2FjaGVkT2Zmc2V0KCksIG9sZFN0cnVjdHVyZSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChzbG90LnR5cGUoKSA9
PSBQdXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5KTsKIApAQCAtNjQxLDcgKzY0MSw3IEBAIHN0
YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ29kZUJsb2NrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlVHJh
bnNpdGlvbih2bSwgY29kZUJsb2NrLCBpZGVudCwgb2Zmc2V0LCBvbGRTdHJ1Y3R1cmUsIG5ld1N0
cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7Cisg
ICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZVRyYW5zaXRpb24odm0s
IGNvZGVCbG9jaywgQ2FjaGVhYmxlSWRlbnRpZmllcihpZGVudCwgQ2FjaGVhYmxlSWRlbnRpZmll
cjo6RG9Ob3RLZWVwQWxpdmUpLCBvZmZzZXQsIG9sZFN0cnVjdHVyZSwgbmV3U3RydWN0dXJlLCBj
b25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90eXBlQWNjZXNzQ2hhaW4pKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgfHwgc2xvdC5p
c0NhY2hlYWJsZVNldHRlcigpKSB7CiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1
c3RvbSgpKSB7CkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRy
eUNhY2hlUHV0QnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sKICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBuZXdDYXNlID0gR2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZTo6Y3JlYXRlKAotICAgICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCBz
bG90LmlzQ3VzdG9tQWNjZXNzb3IoKSA/IEFjY2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yU2V0dGVy
IDogQWNjZXNzQ2FzZTo6Q3VzdG9tVmFsdWVTZXR0ZXIsIG9sZFN0cnVjdHVyZSwgaWRlbnQsCisg
ICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHNsb3QuaXNDdXN0b21BY2Nlc3Nvcigp
ID8gQWNjZXNzQ2FzZTo6Q3VzdG9tQWNjZXNzb3JTZXR0ZXIgOiBBY2Nlc3NDYXNlOjpDdXN0b21W
YWx1ZVNldHRlciwgb2xkU3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyKGlkZW50LCBDYWNo
ZWFibGVJZGVudGlmaWVyOjpEb05vdEtlZXBBbGl2ZSksCiAgICAgICAgICAgICAgICAgICAgIGlu
dmFsaWRPZmZzZXQsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbiks
IHNsb3QuY3VzdG9tU2V0dGVyKCksIHNsb3QuYmFzZSgpICE9IGJhc2VWYWx1ZSA/IHNsb3QuYmFz
ZSgpIDogbnVsbHB0cik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIE9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvblNldDsKQEAgLTcwNywxMyArNzA3LDEz
IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAgICAgbmV3Q2FzZSA9IEdldHRlclNldHRlckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgQWNjZXNzQ2FzZTo6U2V0dGVyLCBvbGRTdHJ1
Y3R1cmUsIGlkZW50LCBvZmZzZXQsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90b3R5cGVBY2Nl
c3NDaGFpbikpOworICAgICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNl
OjpTZXR0ZXIsIG9sZFN0cnVjdHVyZSwgQ2FjaGVhYmxlSWRlbnRpZmllcihpZGVudCwgQ2FjaGVh
YmxlSWRlbnRpZmllcjo6RG9Ob3RLZWVwQWxpdmUpLCBvZmZzZXQsIGNvbmRpdGlvblNldCwgV1RG
TW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkQWRkQWNjZXNzQ2FzZSwgb2xkU3RydWN0
dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogICAg
ICAgICAKLSAgICAgICAgcmVzdWx0ID0gc3R1YkluZm8uYWRkQWNjZXNzQ2FzZShsb2NrZXIsIGNv
ZGVCbG9jaywgaWRlbnQsIFdURk1vdmUobmV3Q2FzZSkpOworICAgICAgICByZXN1bHQgPSBzdHVi
SW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBDYWNoZWFibGVJZGVudGlmaWVy
KGlkZW50LCBDYWNoZWFibGVJZGVudGlmaWVyOjpEb05vdEtlZXBBbGl2ZSksIFdURk1vdmUobmV3
Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVkU29tZUNvZGUoKSkgewogICAg
ICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkUmVwbGFjZVdpdGhKdW1wLCBvbGRTdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CkBA
IC03MzcsNyArNzM3LDcgQEAgdm9pZCByZXBhdGNoUHV0QnlJRChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNWYWx1ZQogICAgICAgICBmdGxUaHVu
a0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlv
biwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKIH0K
IAotc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlRGVsQnkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3BlcnR5U2xvdCYg
c2xvdCwgSlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgRGVs
QnlLaW5kKQorc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlRGVsZXRlQnkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3Bl
cnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJl
LCBDYWNoZWFibGVJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgU3RydWN0dXJlU3R1YkluZm8mIHN0
dWJJbmZvLCBEZWxCeUtpbmQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgcmVzdWx0OwpAQCAtNzU5LDcgKzc1OSw3IEBAIHN0
YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZURlbEJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENvZGVCbG9jayoKIAogICAgICAgICBpZiAoc2xvdC5pc0RlbGV0ZUhpdCgpKSB7
CiAgICAgICAgICAgICBQcm9wZXJ0eU9mZnNldCBuZXdPZmZzZXQgPSBpbnZhbGlkT2Zmc2V0Owot
ICAgICAgICAgICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmU6OnJlbW92ZVBy
b3BlcnR5VHJhbnNpdGlvbkZyb21FeGlzdGluZ1N0cnVjdHVyZUNvbmN1cnJlbnRseShvbGRTdHJ1
Y3R1cmUsIHByb3BlcnR5TmFtZSwgbmV3T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cnVjdHVyZSog
bmV3U3RydWN0dXJlID0gU3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb25Gcm9tRXhp
c3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkob2xkU3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUudWlk
KCksIG5ld09mZnNldCk7CiAgICAgICAgICAgICBpZiAoIW5ld1N0cnVjdHVyZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgaWYgKCFuZXdTdHJ1
Y3R1cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSB8fCBuZXdTdHJ1Y3R1cmUtPmlz
RGljdGlvbmFyeSgpKQpAQCAtNzY5LDE5ICs3NjksMTkgQEAgc3RhdGljIElubGluZUNhY2hlQWN0
aW9uIHRyeUNhY2hlRGVsQnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2Nr
KgogICAgICAgICAgICAgQVNTRVJUKG5ld1N0cnVjdHVyZS0+aXNQcm9wZXJ0eURlbGV0aW9uVHJh
bnNpdGlvbigpKTsKICAgICAgICAgICAgIEFTU0VSVChuZXdTdHJ1Y3R1cmUtPmlzT2JqZWN0KCkp
OwogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRPZmZzZXQobmV3T2Zmc2V0KSk7Ci0gICAgICAg
ICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlRGVsZXRlKHZtLCBjb2RlQmxvY2ssIENh
Y2hlYWJsZUlkZW50aWZpZXIocHJvcGVydHlOYW1lKSwgbmV3T2Zmc2V0LCBvbGRTdHJ1Y3R1cmUs
IG5ld1N0cnVjdHVyZSk7CisgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRl
RGVsZXRlKHZtLCBjb2RlQmxvY2ssIHByb3BlcnR5TmFtZSwgbmV3T2Zmc2V0LCBvbGRTdHJ1Y3R1
cmUsIG5ld1N0cnVjdHVyZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWNvZGVCbG9jay0+aXNTdHJp
Y3RNb2RlKCkpIHsKICAgICAgICAgICAgIGlmIChzbG90LmlzTm9uY29uZmlndXJhYmxlKCkpCi0g
ICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2Nr
LCBBY2Nlc3NDYXNlOjpEZWxldGVOb25Db25maWd1cmFibGUsIENhY2hlYWJsZUlkZW50aWZpZXIo
cHJvcGVydHlOYW1lKSwgaW52YWxpZE9mZnNldCwgb2xkU3RydWN0dXJlLCB7IH0sIG51bGxwdHIp
OworICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVC
bG9jaywgQWNjZXNzQ2FzZTo6RGVsZXRlTm9uQ29uZmlndXJhYmxlLCBwcm9wZXJ0eU5hbWUsIGlu
dmFsaWRPZmZzZXQsIG9sZFN0cnVjdHVyZSwgeyB9LCBudWxscHRyKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBjb2Rl
QmxvY2ssIEFjY2Vzc0Nhc2U6OkRlbGV0ZU1pc3MsIENhY2hlYWJsZUlkZW50aWZpZXIocHJvcGVy
dHlOYW1lKSwgaW52YWxpZE9mZnNldCwgb2xkU3RydWN0dXJlLCB7IH0sIG51bGxwdHIpOworICAg
ICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVCbG9jaywg
QWNjZXNzQ2FzZTo6RGVsZXRlTWlzcywgcHJvcGVydHlOYW1lLCBpbnZhbGlkT2Zmc2V0LCBvbGRT
dHJ1Y3R1cmUsIHsgfSwgbnVsbHB0cik7CiAgICAgICAgIH0KIAogICAgICAgICByZXN1bHQgPSBz
dHViSW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBwcm9wZXJ0eU5hbWUsIFdU
Rk1vdmUobmV3Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVkU29tZUNvZGUo
KSkgewogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmNvZGUoKSk7Ci0gICAgICAg
ICAgICBMT0dfSUMoKElDRXZlbnQ6OkRlbEJ5UmVwbGFjZVdpdGhKdW1wLCBvbGRTdHJ1Y3R1cmUt
PmNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgICAgIExPR19JQygoSUNFdmVu
dDo6RGVsQnlSZXBsYWNlV2l0aEp1bXAsIG9sZFN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIElkZW50
aWZpZXI6OmZyb21VaWQodm0sIHByb3BlcnR5TmFtZS51aWQoKSkpKTsKICAgICAgICAgICAgIElu
bGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcChzdHViSW5mbywgQ29kZUxvY2F0aW9uTGFiZWw8
SklUU3R1YlJvdXRpbmVQdHJUYWc+KHJlc3VsdC5jb2RlKCkpKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTc5MSwxMiArNzkxLDEzIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZURl
bEJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayoKICAgICByZXR1cm4g
cmVzdWx0LnNob3VsZEdpdmVVcE5vdygpID8gR2l2ZVVwT25DYWNoZSA6IFJldHJ5Q2FjaGVMYXRl
cjsKIH0KIAotdm9pZCByZXBhdGNoRGVsQnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBi
YXNlVmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgRGVsQnlLaW5kIGtpbmQpCit2
b2lkIHJlcGF0Y2hEZWxldGVCeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgRGVsZXRlUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVlIGJhc2VWYWx1
ZSwgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXIgcHJvcGVydHlO
YW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIERlbEJ5S2luZCBraW5kKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBpZiAodHJ5Q2FjaGVEZWxCeShnbG9iYWxPYmpl
Y3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIHByb3BlcnR5TmFt
ZSwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpIHsKLSAgICAgICAgTE9HX0lDKChJ
Q0V2ZW50OjpEZWxCeVJlcGxhY2VXaXRoR2VuZXJpYywgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVs
bChnbG9iYWxPYmplY3QtPnZtKCkpLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICBpZiAodHJ5Q2FjaGVE
ZWxldGVCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1
Y3R1cmUsIHByb3BlcnR5TmFtZSwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpIHsK
KyAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpEZWxCeVJlcGxhY2VXaXRoR2VuZXJpYywgYmFzZVZh
bHVlLmNsYXNzSW5mb09yTnVsbChnbG9iYWxPYmplY3QtPnZtKCkpLCBJZGVudGlmaWVyOjpmcm9t
VWlkKHZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSk7CiAgICAgICAgIGlmIChraW5kID09IERlbEJ5
S2luZDo6Tm9ybWFsKQogICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVC
bG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24sIG9wZXJhdGlvbkRlbGV0ZUJ5SWRH
ZW5lcmljKTsKICAgICAgICAgZWxzZQpAQCAtODkxLDkgKzg5Miw5IEBAIHN0YXRpYyBJbmxpbmVD
YWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpJbkFk
ZEFjY2Vzc0Nhc2UsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGlkZW50LCBzbG90LnNsb3RCYXNl
KCkgPT0gYmFzZSkpOwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBuZXdD
YXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKAotICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgd2Fz
Rm91bmQgPyBBY2Nlc3NDYXNlOjpJbkhpdCA6IEFjY2Vzc0Nhc2U6OkluTWlzcywgaWRlbnQsIHdh
c0ZvdW5kID8gc2xvdC5jYWNoZWRPZmZzZXQoKSA6IGludmFsaWRPZmZzZXQsIHN0cnVjdHVyZSwg
Y29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7CisgICAgICAgICAg
ICB2bSwgY29kZUJsb2NrLCB3YXNGb3VuZCA/IEFjY2Vzc0Nhc2U6OkluSGl0IDogQWNjZXNzQ2Fz
ZTo6SW5NaXNzLCBDYWNoZWFibGVJZGVudGlmaWVyKGlkZW50LCBDYWNoZWFibGVJZGVudGlmaWVy
OjpEb05vdEtlZXBBbGl2ZSksIHdhc0ZvdW5kID8gc2xvdC5jYWNoZWRPZmZzZXQoKSA6IGludmFs
aWRPZmZzZXQsIHN0cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vz
c0NoYWluKSk7CiAKLSAgICAgICAgcmVzdWx0ID0gc3R1YkluZm8uYWRkQWNjZXNzQ2FzZShsb2Nr
ZXIsIGNvZGVCbG9jaywgaWRlbnQsIFdURk1vdmUobmV3Q2FzZSkpOworICAgICAgICByZXN1bHQg
PSBzdHViSW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBDYWNoZWFibGVJZGVu
dGlmaWVyKGlkZW50LCBDYWNoZWFibGVJZGVudGlmaWVyOjpEb05vdEtlZXBBbGl2ZSksIFdURk1v
dmUobmV3Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVkU29tZUNvZGUoKSkg
ewogICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpJblJlcGxhY2VXaXRoSnVtcCwgc3RydWN0
dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlKSk7CkBAIC05
NTcsNyArOTU4LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5zdGFuY2VP
ZigKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKCFuZXdDYXNlKQotICAgICAgICAg
ICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNl
OjpJbnN0YW5jZU9mR2VuZXJpYywgSWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIG5ld0Nhc2Ug
PSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVCbG9jaywgQWNjZXNzQ2FzZTo6SW5zdGFuY2VP
ZkdlbmVyaWMsIENhY2hlYWJsZUlkZW50aWZpZXIoKSk7CiAgICAgICAgIAogICAgICAgICBMT0df
SUMoKElDRXZlbnQ6Okluc3RhbmNlT2ZBZGRBY2Nlc3NDYXNlLCBzdHJ1Y3R1cmUtPmNsYXNzSW5m
bygpLCBJZGVudGlmaWVyKCkpKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5oCmluZGV4IGMxZDk5NTlhZGFmZDM2NTc2MmU4OTE3OWFiM2MwZWVkNjZlNTg3ZDAuLmMwMDBh
N2RjNTA5ZDk4ZmRhMGZlYmE1YzA1M2FkZWI0NzhmOGE2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCkBAIC00OSw3ICs0OSw3IEBAIGVudW0gY2xhc3MgRGVsQnlLaW5kIHsKIHZv
aWQgcmVwYXRjaEFycmF5R2V0QnlWYWwoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sqLCBKU1Zh
bHVlIGJhc2UsIEpTVmFsdWUgaW5kZXgsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlcGF0
Y2hHZXRCeShKU0dsb2JhbE9iamVjdCosIENvZGVCbG9jayosIEpTVmFsdWUsIENhY2hlYWJsZUlk
ZW50aWZpZXIsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgR2V0QnlL
aW5kKTsKIHZvaWQgcmVwYXRjaFB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sqLCBK
U1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlT
bG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKLXZvaWQgcmVwYXRjaERlbEJ5KEpT
R2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwgRGVsZXRlUHJvcGVydHlTbG90JiwgSlNWYWx1ZSwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgRGVsQnlL
aW5kKTsKK3ZvaWQgcmVwYXRjaERlbGV0ZUJ5KEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwg
RGVsZXRlUHJvcGVydHlTbG90JiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgQ2FjaGVhYmxlSWRlbnRp
ZmllciwgU3RydWN0dXJlU3R1YkluZm8mLCBEZWxCeUtpbmQpOwogdm9pZCByZXBhdGNoSW5CeUlE
KEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqLCBjb25zdCBJZGVudGlmaWVy
JiwgYm9vbCB3YXNGb3VuZCwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8m
KTsKIHZvaWQgcmVwYXRjaEluc3RhbmNlT2YoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sqLCBK
U1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvdHlwZSwgU3RydWN0dXJlU3R1YkluZm8mLCBib29s
IHdhc0ZvdW5kKTsKIHZvaWQgbGlua0ZvcihWTSYsIENhbGxGcmFtZSosIENhbGxMaW5rSW5mbyYs
IENvZGVCbG9jayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZWFibGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNo
ZWFibGVJZGVudGlmaWVyLmgKaW5kZXggZTUwNzY1M2RkZTcxZTk5ZWY4NzczNTk4NGFjM2FiYzEx
YjY4NzI2OS4uNzZiNzc4YWM0ZTkzN2RlNGQ3MTk1MWFlYzUzZTA1ZTk2MzQ1YzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIu
aApAQCAtNDYsNyArNDYsOSBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIGNsYXNzIENhY2hlYWJsZUlk
ZW50aWZpZXIgewogcHVibGljOgogICAgIENhY2hlYWJsZUlkZW50aWZpZXIoKSA9IGRlZmF1bHQ7
Ci0gICAgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYpOworCisg
ICAgZW51bSBEb05vdEtlZXBBbGl2ZVRhZyB7IERvTm90S2VlcEFsaXZlIH07CisgICAgZXhwbGlj
aXQgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYsIERvTm90S2Vl
cEFsaXZlVGFnKTsKICAgICBpbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllcihKU0NlbGwqIGlkZW50
aWZpZXIpOwogCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcihjb25zdCBDYWNoZWFibGVJZGVudGlm
aWVyJikgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXJJbmxpbmVzLmgKaW5kZXggMTA3YjVkNjA3MjAzNzA1
MWY2YTdjMWU5Y2IwYzE1ZjI2NTg5NzkzOS4uNDRlYTMwZTRiNTMwODdkNGM0OTgwZDE5YWMyM2Yz
YjBmNTU0NWNjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2Fj
aGVhYmxlSWRlbnRpZmllcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1pbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Q2FjaGVhYmxlSWRl
bnRpZmllcihjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoraW5saW5lIENhY2hlYWJsZUlk
ZW50aWZpZXI6OkNhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
ciwgRG9Ob3RLZWVwQWxpdmVUYWcpCiB7CiAgICAgc2V0VWlkQml0cyhpZGVudGlmaWVyLmltcGwo
KSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDE3OWQyMTI5MWEwZGZlYjMyNzFiMTNjNjY4Mzc0MmYxZDVjNjEzMzYuLmE5YTFmYTAy
ZGIxNzg1ZTRkMTgxZDllN2Y2ODRlZDY1ZGU4MzQ4MTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDIt
MjggIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgorCisgICAgICAg
IERlbGV0ZSBieSB2YWwgY2FjaGluZyBkb2VzIG5vdCBrZWVwIHRoZSBzdWJzY3JpcHQgYWxpdmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM5Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNz
L2RlbGV0ZS1wcm9wZXJ0eS1pYy1zdHJlc3MuanM6IEFkZGVkLgorCiAyMDIwLTAyLTI3ICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBQb2x5IHBy
b3RvIHNob3VsZCB3b3JrIHdpdGggcHJvcGVydHkgZGVsZXRlIHRyYW5zaXRpb25zCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9kZWxldGUtcHJvcGVydHktaWMtc3RyZXNzLmpzIGIvSlNUZXN0
cy9zdHJlc3MvZGVsZXRlLXByb3BlcnR5LWljLXN0cmVzcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTQyMWIx
MWI5ZmZhOWNjYmM4NTVmMmZkODg4NThhNWMwNTY1OWUxCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZGVsZXRlLXByb3BlcnR5LWljLXN0cmVzcy5qcwpAQCAtMCwwICsxLDUgQEAK
K2xldCB4ID0ge307Citmb3IgKGxldCBpPTA7IGk8MTAwMDsgKytpKSB7CisgICAgZ2MoKTsKKyAg
ICBkZWxldGUgeFsiaCIgKyA1XTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392026</attachid>
            <date>2020-02-28 15:39:13 -0800</date>
            <delta_ts>2020-03-02 11:57:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208393-20200228153912.patch</filename>
            <type>text/plain</type>
            <size>19225</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NThjNzBiZGNkOThhMzUyYzZjNzM2YWYyNzc2NzJiYzgyNmY0OWI0Li40MmFjYWE5NGZlZGExZTAz
ZTRmYWJhNjIzNDE5MzJlYzJhMjA5NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wMi0yOCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIGJ5IHZhbCBjYWNoaW5nIGRvZXMgbm90IGtlZXAg
dGhlIHN1YnNjcmlwdCBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQmVmb3JlLCB0aGUgcHJvdmlkZWQgdGVzdCBjYXNlIGNyYXNoZWQgd2l0aCBh
c2FuIGJlY2F1c2Ugd2UgZGlkIG5vdCBrZWVwIGRlbGV0ZUJ5VmFsCisgICAgICAgIHN1YnNjcmlw
dHMgYWxpdmUuIFRoaXMgcGF0Y2ggY2hhbmdlcyBDYWNoZWFibGVJZGVudGlmaWVyIHRvIG1ha2Ug
dGhpcyBtaXN0YWtlIGhhcmRlcgorICAgICAgICB0byBtYWtlIGFnYWluLCBieSBtYWtpbmcgdGhl
IGNvbnN0cnVjdG9yIGNhbGxzIG1vcmUgZXhwbGljaXQgd2hlbiBDYWNoZWFibGVJZGVudGlmaWVy
CisgICAgICAgIHdpbGwgbm90IGtlZXAgYW4gSWRlbnRpZmllciBhbGl2ZS4KKworICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAg
ICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlRGVsZXRl
QnkpOgorICAgICAgICAoSlNDOjpyZXBhdGNoRGVsZXRlQnkpOgorICAgICAgICAoSlNDOjp0cnlD
YWNoZUluQnlJRCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlSW5zdGFuY2VPZik6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlRGVsQnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZXBhdGNoRGVs
QnkpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9SZXBhdGNoLmg6CisgICAgICAgICogcnVudGlt
ZS9DYWNoZWFibGVJZGVudGlmaWVyLmg6CisgICAgICAgICogcnVudGltZS9DYWNoZWFibGVJZGVu
dGlmaWVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpDYWNoZWFibGVJZGVudGlmaWVyOjpDYWNo
ZWFibGVJZGVudGlmaWVyKToKKwogMjAyMC0wMi0yNyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggZGVidWcgYXJtNjQgV2FzbSB0ZXN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggN2JkZjFmNzMyYmY0ZTA1
ZDliODU2OTZlZjQ2ODQ3ZjNiNTYxMDc2Yi4uMmVhZjBlYjhjZjY0MTMzNjFkNGFlNjlkYjU0MTQ4
OWE0OTM2Mzg4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UcnlHZXRCeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIAogICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICBpZiAoc3R1
YkluZm8tPmNvbnNpZGVyQ2FjaGluZyh2bSwgY29kZUJsb2NrLCBiYXNlVmFsdWUuc3RydWN0dXJl
T3JOdWxsKCkpICYmICFzbG90LmlzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0KCkgJiYgKHNsb3QuaXND
YWNoZWFibGVWYWx1ZSgpIHx8IHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSB8fCBzbG90LmlzVW5z
ZXQoKSkpCi0gICAgICAgIHJlcGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFz
ZVZhbHVlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OlRyeSk7CisgICAgICAg
IHJlcGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBDYWNoZWFi
bGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQp
LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6VHJ5KTsKIAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQpAQCAtMjcwLDcgKzI3MCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXpl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0s
IGNvZGVCbG9jaywgYmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgcmVwYXRj
aEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAq
c3R1YkluZm8sIEdldEJ5S2luZDo6RGlyZWN0KTsKKyAgICAgICAgcmVwYXRjaEdldEJ5KGdsb2Jh
bE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0
ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksIHNsb3QsICpzdHViSW5mbywg
R2V0QnlLaW5kOjpEaXJlY3QpOwogCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDog
anNVbmRlZmluZWQoKSkpOwogfQpAQCAtMzMwLDcgKzMzMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgICAgIAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5nKHZt
LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCi0gICAgICAgICAgICBy
ZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnQsIHNs
b3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpOb3JtYWwpOworICAgICAgICAgICAgcmVwYXRjaEdl
dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIENhY2hlYWJsZUlkZW50aWZp
ZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksIHNsb3QsICpz
dHViSW5mbywgR2V0QnlLaW5kOjpOb3JtYWwpOwogICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90
LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKTsKICAgICB9KSk7
CiB9CkBAIC0zODcsNyArMzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2wKICAgICAgICAg
CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsK
ICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywgYmFz
ZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgICAgIHJlcGF0Y2hHZXRCeShnbG9i
YWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBH
ZXRCeUtpbmQ6OldpdGhUaGlzKTsKKyAgICAgICAgICAgIHJlcGF0Y2hHZXRCeShnbG9iYWxPYmpl
Y3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLCBzbG90LCAqc3R1YkluZm8sIEdldEJ5
S2luZDo6V2l0aFRoaXMpOwogICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZhbHVlKGds
b2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKTsKICAgICB9KSk7CiB9CkBAIC0yMTcy
LDEzICsyMTcyLDEzIEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWRP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBpZiAoYmFzZVZhbHVlLmlz
T2JqZWN0KCkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tVWlkKHZtLCB1aWQpOworICAgICAgICBjb25zdCBJZGVudGlmaWVyIGlkZW50
ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgdWlkKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKCFwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKCFwYXJzZUluZGV4KGlkZW50KSkgewogICAg
ICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwog
ICAgICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywg
YmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgICAgICAgICByZXBhdGNoRGVs
QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xkU3RydWN0dXJl
LCBwcm9wZXJ0eU5hbWUsICpzdHViSW5mbywgRGVsQnlLaW5kOjpOb3JtYWwpOworICAgICAgICAg
ICAgICAgIHJlcGF0Y2hEZWxldGVCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFz
ZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVu
dGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksICpzdHViSW5mbywgRGVsQnlLaW5kOjpOb3Jt
YWwpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMjQwLDcgKzIyNDAsNyBAQCBzaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJ
bmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoc3R1YkluZm8tPmNvbnNp
ZGVyQ2FjaGluZyh2bSwgY29kZUJsb2NrLCBiYXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCkpKQot
ICAgICAgICAgICAgICAgIHJlcGF0Y2hEZWxCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xv
dCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgKnN0dWJJbmZvLCBEZWxC
eUtpbmQ6Ok5vcm1hbEJ5VmFsKTsKKyAgICAgICAgICAgICAgICByZXBhdGNoRGVsZXRlQnkoZ2xv
YmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xkU3RydWN0dXJlLCBzdWJz
Y3JpcHQuYXNDZWxsKCksICpzdHViSW5mbywgRGVsQnlLaW5kOjpOb3JtYWxCeVZhbCk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IDgz
YWQ1MTY3N2UzMTAwY2Y4MjdmZDFlYzMzNDdlODI4ZGJiYWU0ZTEuLmUxNjRiYzE1NDg5YzgxMmU3
ZmE4NmExMjNkMjI1MGYzZGI5ODdhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcApAQCAtNTkyLDcgKzU5Miw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNo
ZVB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrCiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBuZXdD
YXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OlJlcGxh
Y2UsIGlkZW50LCBzbG90LmNhY2hlZE9mZnNldCgpLCBvbGRTdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVCbG9jaywgQWNjZXNz
Q2FzZTo6UmVwbGFjZSwgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJP
d25lZEJ5Q29kZUJsb2NrKGlkZW50KSwgc2xvdC5jYWNoZWRPZmZzZXQoKSwgb2xkU3RydWN0dXJl
KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNsb3QudHlw
ZSgpID09IFB1dFByb3BlcnR5U2xvdDo6TmV3UHJvcGVydHkpOwogCkBAIC02NDEsNyArNjQxLDcg
QEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVh
dGVUcmFuc2l0aW9uKHZtLCBjb2RlQmxvY2ssIGlkZW50LCBvZmZzZXQsIG9sZFN0cnVjdHVyZSwg
bmV3U3RydWN0dXJlLCBjb25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90eXBlQWNjZXNzQ2hhaW4p
KTsKKyAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlVHJhbnNpdGlv
bih2bSwgY29kZUJsb2NrLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmll
ck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLCBvZmZzZXQsIG9sZFN0cnVjdHVyZSwgbmV3U3RydWN0
dXJlLCBjb25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90eXBlQWNjZXNzQ2hhaW4pKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgfHwg
c2xvdC5pc0NhY2hlYWJsZVNldHRlcigpKSB7CiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hl
YWJsZUN1c3RvbSgpKSB7CkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0
aW9uIHRyeUNhY2hlUHV0QnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxv
Y2sKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBuZXdDYXNlID0gR2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZTo6Y3JlYXRlKAotICAgICAgICAgICAgICAgICAgICB2bSwgY29kZUJs
b2NrLCBzbG90LmlzQ3VzdG9tQWNjZXNzb3IoKSA/IEFjY2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29y
U2V0dGVyIDogQWNjZXNzQ2FzZTo6Q3VzdG9tVmFsdWVTZXR0ZXIsIG9sZFN0cnVjdHVyZSwgaWRl
bnQsCisgICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHNsb3QuaXNDdXN0b21BY2Nl
c3NvcigpID8gQWNjZXNzQ2FzZTo6Q3VzdG9tQWNjZXNzb3JTZXR0ZXIgOiBBY2Nlc3NDYXNlOjpD
dXN0b21WYWx1ZVNldHRlciwgb2xkU3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVh
dGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLAogICAgICAgICAgICAgICAg
ICAgICBpbnZhbGlkT2Zmc2V0LCBjb25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90eXBlQWNjZXNz
Q2hhaW4pLCBzbG90LmN1c3RvbVNldHRlcigpLCBzbG90LmJhc2UoKSAhPSBiYXNlVmFsdWUgPyBz
bG90LmJhc2UoKSA6IG51bGxwdHIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQ7CkBAIC03MDcsMTMg
KzcwNywxMyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVQdXRCeUlEKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jawogICAgICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjpjcmVhdGUo
Ci0gICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OlNldHRlciwg
b2xkU3RydWN0dXJlLCBpZGVudCwgb2Zmc2V0LCBjb25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90
eXBlQWNjZXNzQ2hhaW4pKTsKKyAgICAgICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgQWNj
ZXNzQ2FzZTo6U2V0dGVyLCBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0
ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksIG9mZnNldCwgY29uZGl0aW9u
U2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAogICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OlB1dEJ5SWRBZGRBY2Nlc3NDYXNlLCBv
bGRTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVl
KSk7CiAgICAgICAgIAotICAgICAgICByZXN1bHQgPSBzdHViSW5mby5hZGRBY2Nlc3NDYXNlKGxv
Y2tlciwgY29kZUJsb2NrLCBpZGVudCwgV1RGTW92ZShuZXdDYXNlKSk7CisgICAgICAgIHJlc3Vs
dCA9IHN0dWJJbmZvLmFkZEFjY2Vzc0Nhc2UobG9ja2VyLCBjb2RlQmxvY2ssIENhY2hlYWJsZUlk
ZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksIFdU
Rk1vdmUobmV3Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVkU29tZUNvZGUo
KSkgewogICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkUmVwbGFjZVdpdGhKdW1w
LCBvbGRTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZh
bHVlKSk7CkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCByZXBhdGNoUHV0QnlJRChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNWYWx1ZQogICAgICAg
ICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENh
bGxMb2NhdGlvbiwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtp
bmQpKTsKIH0KIAotc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlRGVsQnkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3Bl
cnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJl
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbywgRGVsQnlLaW5kKQorc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlRGVsZXRl
QnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERl
bGV0ZVByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogb2xk
U3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgU3RydWN0dXJlU3R1
YkluZm8mIHN0dWJJbmZvLCBEZWxCeUtpbmQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgcmVzdWx0OwpAQCAtNzU5LDcgKzc1
OSw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZURlbEJ5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayoKIAogICAgICAgICBpZiAoc2xvdC5pc0RlbGV0
ZUhpdCgpKSB7CiAgICAgICAgICAgICBQcm9wZXJ0eU9mZnNldCBuZXdPZmZzZXQgPSBpbnZhbGlk
T2Zmc2V0OwotICAgICAgICAgICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmU6
OnJlbW92ZVByb3BlcnR5VHJhbnNpdGlvbkZyb21FeGlzdGluZ1N0cnVjdHVyZUNvbmN1cnJlbnRs
eShvbGRTdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgbmV3T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0
cnVjdHVyZSogbmV3U3RydWN0dXJlID0gU3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRp
b25Gcm9tRXhpc3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkob2xkU3RydWN0dXJlLCBwcm9wZXJ0
eU5hbWUudWlkKCksIG5ld09mZnNldCk7CiAgICAgICAgICAgICBpZiAoIW5ld1N0cnVjdHVyZSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgaWYg
KCFuZXdTdHJ1Y3R1cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSB8fCBuZXdTdHJ1
Y3R1cmUtPmlzRGljdGlvbmFyeSgpKQpAQCAtNzY5LDE5ICs3NjksMTkgQEAgc3RhdGljIElubGlu
ZUNhY2hlQWN0aW9uIHRyeUNhY2hlRGVsQnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q29kZUJsb2NrKgogICAgICAgICAgICAgQVNTRVJUKG5ld1N0cnVjdHVyZS0+aXNQcm9wZXJ0eURl
bGV0aW9uVHJhbnNpdGlvbigpKTsKICAgICAgICAgICAgIEFTU0VSVChuZXdTdHJ1Y3R1cmUtPmlz
T2JqZWN0KCkpOwogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRPZmZzZXQobmV3T2Zmc2V0KSk7
Ci0gICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlRGVsZXRlKHZtLCBjb2Rl
QmxvY2ssIENhY2hlYWJsZUlkZW50aWZpZXIocHJvcGVydHlOYW1lKSwgbmV3T2Zmc2V0LCBvbGRT
dHJ1Y3R1cmUsIG5ld1N0cnVjdHVyZSk7CisgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2Fz
ZTo6Y3JlYXRlRGVsZXRlKHZtLCBjb2RlQmxvY2ssIHByb3BlcnR5TmFtZSwgbmV3T2Zmc2V0LCBv
bGRTdHJ1Y3R1cmUsIG5ld1N0cnVjdHVyZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWNvZGVCbG9j
ay0+aXNTdHJpY3RNb2RlKCkpIHsKICAgICAgICAgICAgIGlmIChzbG90LmlzTm9uY29uZmlndXJh
YmxlKCkpCi0gICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwg
Y29kZUJsb2NrLCBBY2Nlc3NDYXNlOjpEZWxldGVOb25Db25maWd1cmFibGUsIENhY2hlYWJsZUlk
ZW50aWZpZXIocHJvcGVydHlOYW1lKSwgaW52YWxpZE9mZnNldCwgb2xkU3RydWN0dXJlLCB7IH0s
IG51bGxwdHIpOworICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUo
dm0sIGNvZGVCbG9jaywgQWNjZXNzQ2FzZTo6RGVsZXRlTm9uQ29uZmlndXJhYmxlLCBwcm9wZXJ0
eU5hbWUsIGludmFsaWRPZmZzZXQsIG9sZFN0cnVjdHVyZSwgeyB9LCBudWxscHRyKTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRl
KHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OkRlbGV0ZU1pc3MsIENhY2hlYWJsZUlkZW50aWZp
ZXIocHJvcGVydHlOYW1lKSwgaW52YWxpZE9mZnNldCwgb2xkU3RydWN0dXJlLCB7IH0sIG51bGxw
dHIpOworICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNv
ZGVCbG9jaywgQWNjZXNzQ2FzZTo6RGVsZXRlTWlzcywgcHJvcGVydHlOYW1lLCBpbnZhbGlkT2Zm
c2V0LCBvbGRTdHJ1Y3R1cmUsIHsgfSwgbnVsbHB0cik7CiAgICAgICAgIH0KIAogICAgICAgICBy
ZXN1bHQgPSBzdHViSW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBwcm9wZXJ0
eU5hbWUsIFdURk1vdmUobmV3Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVk
U29tZUNvZGUoKSkgewogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmNvZGUoKSk7
Ci0gICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OkRlbEJ5UmVwbGFjZVdpdGhKdW1wLCBvbGRT
dHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgICAgIExPR19J
QygoSUNFdmVudDo6RGVsQnlSZXBsYWNlV2l0aEp1bXAsIG9sZFN0cnVjdHVyZS0+Y2xhc3NJbmZv
KCksIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3BlcnR5TmFtZS51aWQoKSkpKTsKICAgICAg
ICAgICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcChzdHViSW5mbywgQ29kZUxvY2F0
aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+KHJlc3VsdC5jb2RlKCkpKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTc5MSwxMiArNzkxLDEzIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0
cnlDYWNoZURlbEJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayoKICAg
ICByZXR1cm4gcmVzdWx0LnNob3VsZEdpdmVVcE5vdygpID8gR2l2ZVVwT25DYWNoZSA6IFJldHJ5
Q2FjaGVMYXRlcjsKIH0KIAotdm9pZCByZXBhdGNoRGVsQnkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCwg
SlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgRGVsQnlLaW5k
IGtpbmQpCit2b2lkIHJlcGF0Y2hEZWxldGVCeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgRGVsZXRlUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVl
IGJhc2VWYWx1ZSwgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXIg
cHJvcGVydHlOYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIERlbEJ5S2luZCBraW5k
KQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBpZiAodHJ5Q2FjaGVEZWxCeShn
bG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIHBy
b3BlcnR5TmFtZSwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpIHsKLSAgICAgICAg
TE9HX0lDKChJQ0V2ZW50OjpEZWxCeVJlcGxhY2VXaXRoR2VuZXJpYywgYmFzZVZhbHVlLmNsYXNz
SW5mb09yTnVsbChnbG9iYWxPYmplY3QtPnZtKCkpLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICBpZiAo
dHJ5Q2FjaGVEZWxldGVCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVl
LCBvbGRTdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9u
Q2FjaGUpIHsKKyAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpEZWxCeVJlcGxhY2VXaXRoR2VuZXJp
YywgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbChnbG9iYWxPYmplY3QtPnZtKCkpLCBJZGVudGlm
aWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSk7CiAgICAgICAgIGlmIChraW5k
ID09IERlbEJ5S2luZDo6Tm9ybWFsKQogICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hD
YWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24sIG9wZXJhdGlvbkRl
bGV0ZUJ5SWRHZW5lcmljKTsKICAgICAgICAgZWxzZQpAQCAtODkxLDkgKzg5Miw5IEBAIHN0YXRp
YyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgTE9HX0lDKChJQ0V2
ZW50OjpJbkFkZEFjY2Vzc0Nhc2UsIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGlkZW50LCBzbG90
LnNsb3RCYXNlKCkgPT0gYmFzZSkpOwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3ND
YXNlPiBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKAotICAgICAgICAgICAgdm0sIGNvZGVC
bG9jaywgd2FzRm91bmQgPyBBY2Nlc3NDYXNlOjpJbkhpdCA6IEFjY2Vzc0Nhc2U6OkluTWlzcywg
aWRlbnQsIHdhc0ZvdW5kID8gc2xvdC5jYWNoZWRPZmZzZXQoKSA6IGludmFsaWRPZmZzZXQsIHN0
cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7Cisg
ICAgICAgICAgICB2bSwgY29kZUJsb2NrLCB3YXNGb3VuZCA/IEFjY2Vzc0Nhc2U6OkluSGl0IDog
QWNjZXNzQ2FzZTo6SW5NaXNzLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRp
Zmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLCB3YXNGb3VuZCA/IHNsb3QuY2FjaGVkT2Zmc2V0
KCkgOiBpbnZhbGlkT2Zmc2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90
b3R5cGVBY2Nlc3NDaGFpbikpOwogCi0gICAgICAgIHJlc3VsdCA9IHN0dWJJbmZvLmFkZEFjY2Vz
c0Nhc2UobG9ja2VyLCBjb2RlQmxvY2ssIGlkZW50LCBXVEZNb3ZlKG5ld0Nhc2UpKTsKKyAgICAg
ICAgcmVzdWx0ID0gc3R1YkluZm8uYWRkQWNjZXNzQ2FzZShsb2NrZXIsIGNvZGVCbG9jaywgQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKGlk
ZW50KSwgV1RGTW92ZShuZXdDYXNlKSk7CiAKICAgICAgICAgaWYgKHJlc3VsdC5nZW5lcmF0ZWRT
b21lQ29kZSgpKSB7CiAgICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6OkluUmVwbGFjZVdpdGhK
dW1wLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5zbG90QmFzZSgpID09IGJh
c2UpKTsKQEAgLTk1Nyw3ICs5NTgsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVJbnN0YW5jZU9mKAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIW5ld0Nhc2Up
Ci0gICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBjb2RlQmxvY2ss
IEFjY2Vzc0Nhc2U6Okluc3RhbmNlT2ZHZW5lcmljLCBJZGVudGlmaWVyKCkpOworICAgICAgICAg
ICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNl
OjpJbnN0YW5jZU9mR2VuZXJpYywgQ2FjaGVhYmxlSWRlbnRpZmllcigpKTsKICAgICAgICAgCiAg
ICAgICAgIExPR19JQygoSUNFdmVudDo6SW5zdGFuY2VPZkFkZEFjY2Vzc0Nhc2UsIHN0cnVjdHVy
ZS0+Y2xhc3NJbmZvKCksIElkZW50aWZpZXIoKSkpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmgKaW5kZXggYzFkOTk1OWFkYWZkMzY1NzYyZTg5MTc5YWIzYzBlZWQ2NmU1
ODdkMC4uYzAwMGE3ZGM1MDlkOThmZGEwZmViYTVjMDUzYWRlYjQ3OGY4YTYyYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBjbGFzcyBEZWxC
eUtpbmQgewogdm9pZCByZXBhdGNoQXJyYXlHZXRCeVZhbChKU0dsb2JhbE9iamVjdCosIENvZGVC
bG9jayosIEpTVmFsdWUgYmFzZSwgSlNWYWx1ZSBpbmRleCwgU3RydWN0dXJlU3R1YkluZm8mKTsK
IHZvaWQgcmVwYXRjaEdldEJ5KEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwgSlNWYWx1ZSwg
Q2FjaGVhYmxlSWRlbnRpZmllciwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1Yklu
Zm8mLCBHZXRCeUtpbmQpOwogdm9pZCByZXBhdGNoUHV0QnlJRChKU0dsb2JhbE9iamVjdCosIENv
ZGVCbG9jayosIEpTVmFsdWUsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQ
dXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwotdm9pZCByZXBh
dGNoRGVsQnkoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sqLCBEZWxldGVQcm9wZXJ0eVNsb3Qm
LCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgU3RydWN0dXJlU3R1Yklu
Zm8mLCBEZWxCeUtpbmQpOwordm9pZCByZXBhdGNoRGVsZXRlQnkoSlNHbG9iYWxPYmplY3QqLCBD
b2RlQmxvY2sqLCBEZWxldGVQcm9wZXJ0eVNsb3QmLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBDYWNo
ZWFibGVJZGVudGlmaWVyLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIERlbEJ5S2luZCk7CiB2b2lkIHJl
cGF0Y2hJbkJ5SUQoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sqLCBKU09iamVjdCosIGNvbnN0
IElkZW50aWZpZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1
cmVTdHViSW5mbyYpOwogdm9pZCByZXBhdGNoSW5zdGFuY2VPZihKU0dsb2JhbE9iamVjdCosIENv
ZGVCbG9jayosIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgcHJvdG90eXBlLCBTdHJ1Y3R1cmVTdHVi
SW5mbyYsIGJvb2wgd2FzRm91bmQpOwogdm9pZCBsaW5rRm9yKFZNJiwgQ2FsbEZyYW1lKiwgQ2Fs
bExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaAppbmRleCBlNTA3NjUzZGRlNzFlOTllZjg3NzM1
OTg0YWMzYWJjMTFiNjg3MjY5Li41YmUxYjZlOTNkNGRhNjBlMGNhZTFiN2JkMmNlNjMxOGU4OWJk
ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJ
ZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxl
SWRlbnRpZmllci5oCkBAIC00Niw4ICs0Niw5IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogY2xhc3Mg
Q2FjaGVhYmxlSWRlbnRpZmllciB7CiBwdWJsaWM6CiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcigp
ID0gZGVmYXVsdDsKLSAgICBpbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllcihjb25zdCBJZGVudGlm
aWVyJik7CisKICAgICBpbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllcihKU0NlbGwqIGlkZW50aWZp
ZXIpOworICAgIHN0YXRpYyBpbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllciBjcmVhdGVGcm9tSWRl
bnRpZmllck93bmVkQnlDb2RlQmxvY2soY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgQ2FjaGVh
YmxlSWRlbnRpZmllcihjb25zdCBDYWNoZWFibGVJZGVudGlmaWVyJikgPSBkZWZhdWx0OwogICAg
IENhY2hlYWJsZUlkZW50aWZpZXIoQ2FjaGVhYmxlSWRlbnRpZmllciYmKSA9IGRlZmF1bHQ7CkBA
IC04Myw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBleHBsaWNpdCBpbmxpbmUgQ2Fj
aGVhYmxlSWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJik7CisKICAgICBpbmxpbmUgdm9pZCBz
ZXRDZWxsQml0cyhKU0NlbGwqKTsKICAgICBpbmxpbmUgdm9pZCBzZXRVaWRCaXRzKFVuaXF1ZWRT
dHJpbmdJbXBsKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlYWJsZUlkZW50aWZpZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oCmluZGV4IDEwN2I1ZDYwNzIwMzcwNTFm
NmE3YzFlOWNiMGMxNWYyNjU4OTc5MzkuLjZlM2VjNTFmYjE1ZDY4MzUwYzEwNjk1ZjFhNjI1Y2Jh
MjkwZjFmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hl
YWJsZUlkZW50aWZpZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaApAQCAtMzUsNiArMzUsMTEgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKK2lubGluZSBDYWNoZWFibGVJZGVudGlmaWVyIENhY2hlYWJsZUlkZW50
aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhjb25zdCBJZGVudGlm
aWVyJiBpKQoreworICAgIHJldHVybiBDYWNoZWFibGVJZGVudGlmaWVyKGkpOworfQorCiBpbmxp
bmUgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Q2FjaGVhYmxlSWRlbnRpZmllcihjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyKQogewogICAgIHNldFVpZEJpdHMoaWRlbnRpZmllci5pbXBsKCkpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAx
NzlkMjEyOTFhMGRmZWIzMjcxYjEzYzY2ODM3NDJmMWQ1YzYxMzM2Li5hOWExZmEwMmRiMTc4NWU0
ZDE4MWQ5ZTdmNjg0ZWQ2NWRlODM0ODE2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAyLTI4ICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAgICBEZWxldGUg
YnkgdmFsIGNhY2hpbmcgZG9lcyBub3Qga2VlcCB0aGUgc3Vic2NyaXB0IGFsaXZlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzOTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9kZWxldGUt
cHJvcGVydHktaWMtc3RyZXNzLmpzOiBBZGRlZC4KKwogMjAyMC0wMi0yNyAgSnVzdGluIE1pY2hh
dWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgUG9seSBwcm90byBzaG91
bGQgd29yayB3aXRoIHByb3BlcnR5IGRlbGV0ZSB0cmFuc2l0aW9ucwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvZGVsZXRlLXByb3BlcnR5LWljLXN0cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RlbGV0ZS1wcm9wZXJ0eS1pYy1zdHJlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk0MjFiMTFiOWZmYTlj
Y2JjODU1ZjJmZDg4ODU4YTVjMDU2NTllMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2RlbGV0ZS1wcm9wZXJ0eS1pYy1zdHJlc3MuanMKQEAgLTAsMCArMSw1IEBACitsZXQgeCA9
IHt9OworZm9yIChsZXQgaT0wOyBpPDEwMDA7ICsraSkgeworICAgIGdjKCk7CisgICAgZGVsZXRl
IHhbImgiICsgNV07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392169</attachid>
            <date>2020-03-02 11:57:06 -0800</date>
            <delta_ts>2020-03-02 12:58:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208393-20200302115706.patch</filename>
            <type>text/plain</type>
            <size>20387</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZmVlMzkyNmU2NzRjNzVhMjI0NDJlNzYyN2M3MTU3YWFhMjZhZTI4Li42NTc2NTA5NjAzNzUxZDQw
MTRlNzU4NmY5ZGQ2N2U3ZTkwZGMyMzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wMy0wMiAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIGJ5IHZhbCBjYWNoaW5nIGRvZXMgbm90IGtlZXAg
dGhlIHN1YnNjcmlwdCBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4K
KworICAgICAgICBCZWZvcmUsIHRoZSBwcm92aWRlZCB0ZXN0IGNhc2UgY3Jhc2hlZCB3aXRoIGFz
YW4gYmVjYXVzZSB3ZSBkaWQgbm90IGtlZXAgZGVsZXRlQnlWYWwKKyAgICAgICAgc3Vic2NyaXB0
cyBhbGl2ZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIENhY2hlYWJsZUlkZW50aWZpZXIgdG8gbWFrZSB0
aGlzIG1pc3Rha2UgaGFyZGVyCisgICAgICAgIHRvIG1ha2UgYWdhaW4sIGJ5IG1ha2luZyB0aGUg
Y29uc3RydWN0b3IgY2FsbHMgbW9yZSBleHBsaWNpdCB3aGVuIENhY2hlYWJsZUlkZW50aWZpZXIK
KyAgICAgICAgd2lsbCBub3Qga2VlcCBhbiBJZGVudGlmaWVyIGFsaXZlLgorCisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAg
ICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVEZWxldGVC
eSk6CisgICAgICAgIChKU0M6OnJlcGF0Y2hEZWxldGVCeSk6CisgICAgICAgIChKU0M6OnRyeUNh
Y2hlSW5CeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVJbnN0YW5jZU9mKToKKyAgICAgICAg
KEpTQzo6dHJ5Q2FjaGVEZWxCeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlcGF0Y2hEZWxC
eSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L1JlcGF0Y2guaDoKKyAgICAgICAgKiBydW50aW1l
L0NhY2hlYWJsZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hlYWJsZUlkZW50
aWZpZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0
ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKToKKwogMjAyMC0wMy0wMiAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB3cm9uZyBh
c3NlcnRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmlu
ZGV4IDdiZGYxZjczMmJmNGUwNWQ5Yjg1Njk2ZWY0Njg0N2YzYjU2MTA3NmIuLjIyYjlhMWQxZTlj
MzJkOWNkOTk2OTFiMTk3MzIwOTVjZTkyMzQ2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPCiAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCk7CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywg
YmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSAmJiAhc2xvdC5pc1RhaW50ZWRCeU9wYXF1ZU9i
amVjdCgpICYmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSB8fCBzbG90LmlzQ2FjaGVhYmxlR2V0
dGVyKCkgfHwgc2xvdC5pc1Vuc2V0KCkpKQotICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2Jq
ZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgR2V0QnlL
aW5kOjpUcnkpOworICAgICAgICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ss
IGJhc2VWYWx1ZSwgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25l
ZEJ5Q29kZUJsb2NrKGlkZW50KSwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OlRyeSk7CiAK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0KQEAg
LTI3MCw3ICsyNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5SWREaXJlY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYgogCiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIGlmIChzdHViSW5mby0+
Y29uc2lkZXJDYWNoaW5nKHZtLCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwo
KSkpCi0gICAgICAgIHJlcGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZh
bHVlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OkRpcmVjdCk7CisgICAgICAg
IHJlcGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBDYWNoZWFi
bGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQp
LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6RGlyZWN0KTsKIAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9i
YWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KQEAgLTMzMCw3ICszMzAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICAKICAgICAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICBpZiAoc3R1YkluZm8t
PmNvbnNpZGVyQ2FjaGluZyh2bSwgY29kZUJsb2NrLCBiYXNlVmFsdWUuc3RydWN0dXJlT3JOdWxs
KCkpKQotICAgICAgICAgICAgcmVwYXRjaEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBi
YXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6Tm9ybWFsKTsKKyAg
ICAgICAgICAgIHJlcGF0Y2hHZXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVl
LCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxv
Y2soaWRlbnQpLCBzbG90LCAqc3R1YkluZm8sIEdldEJ5S2luZDo6Tm9ybWFsKTsKICAgICAgICAg
cmV0dXJuIGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5k
ZWZpbmVkKCk7CiAgICAgfSkpOwogfQpAQCAtMzg3LDcgKzM4Nyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUoSlNHbG9iYWxP
YmplY3QqIGdsCiAgICAgICAgIAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5n
KHZtLCBjb2RlQmxvY2ssIGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCi0gICAgICAgICAg
ICByZXBhdGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgaWRlbnQs
IHNsb3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpXaXRoVGhpcyk7CisgICAgICAgICAgICByZXBh
dGNoR2V0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKGlkZW50KSwgc2xv
dCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6OldpdGhUaGlzKTsKICAgICAgICAgcmV0dXJuIGZvdW5k
ID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCk7CiAg
ICAgfSkpOwogfQpAQCAtMjAyMiw3ICsyMDIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoK
ICAgICAgICAgICAgICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkdldEJ5VmFsT3B0aW1p
emUsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBwcm9wZXJ0eU5hbWUsIGJhc2VWYWx1
ZSA9PSBzbG90LnNsb3RCYXNlKCkpKTsgCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywgYmFzZVZhbHVl
LnN0cnVjdHVyZU9yTnVsbCgpLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKSkKLSAgICAgICAgICAgICAg
ICAgICAgcmVwYXRjaEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN1
YnNjcmlwdC5hc0NlbGwoKSwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUtpbmQ6Ok5vcm1hbEJ5VmFs
KTsKKyAgICAgICAgICAgICAgICAgICAgcmVwYXRjaEdldEJ5KGdsb2JhbE9iamVjdCwgY29kZUJs
b2NrLCBiYXNlVmFsdWUsIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKHN1YnNj
cmlwdC5hc0NlbGwoKSksIHNsb3QsICpzdHViSW5mbywgR2V0QnlLaW5kOjpOb3JtYWxCeVZhbCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpOwogICAgICAgICAgICAgfSkpOwogICAg
ICAgICB9CkBAIC0yMTcyLDEzICsyMTcyLDEzIEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBp
ZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCB1aWQpOworICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyIGlkZW50ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgdWlkKTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAgICAg
aWYgKCFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKCFwYXJzZUluZGV4
KGlkZW50KSkgewogICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpOwogICAgICAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmco
dm0sIGNvZGVCbG9jaywgYmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgICAg
ICAgICByZXBhdGNoRGVsQnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1
ZSwgb2xkU3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsICpzdHViSW5mbywgRGVsQnlLaW5kOjpOb3Jt
YWwpOworICAgICAgICAgICAgICAgIHJlcGF0Y2hEZWxldGVCeShnbG9iYWxPYmplY3QsIGNvZGVC
bG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIENhY2hlYWJsZUlkZW50aWZpZXI6
OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCksICpzdHViSW5mbywg
RGVsQnlLaW5kOjpOb3JtYWwpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMjQwLDcgKzIyNDAs
NyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXplKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1i
b2woKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAo
c3R1YkluZm8tPmNvbnNpZGVyQ2FjaGluZyh2bSwgY29kZUJsb2NrLCBiYXNlVmFsdWUuc3RydWN0
dXJlT3JOdWxsKCkpKQotICAgICAgICAgICAgICAgIHJlcGF0Y2hEZWxCeShnbG9iYWxPYmplY3Qs
IGNvZGVCbG9jaywgc2xvdCwgYmFzZVZhbHVlLCBvbGRTdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwg
KnN0dWJJbmZvLCBEZWxCeUtpbmQ6Ok5vcm1hbEJ5VmFsKTsKKyAgICAgICAgICAgICAgICByZXBh
dGNoRGVsZXRlQnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xk
U3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tQ2VsbChzdWJzY3JpcHQu
YXNDZWxsKCkpLCAqc3R1YkluZm8sIERlbEJ5S2luZDo6Tm9ybWFsQnlWYWwpOwogICAgICAgICB9
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCA4M2FkNTE2
NzdlMzEwMGNmODI3ZmQxZWMzMzQ3ZTgyOGRiYmFlNGUxLi5lMTY0YmMxNTQ4OWM4MTJlN2ZhODZh
MTIzZDIyNTBmM2RiOTg3YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAK
QEAgLTU5Miw3ICs1OTIsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVQdXRC
eUlEKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jawogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgbmV3Q2FzZSA9
IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNlOjpSZXBsYWNlLCBp
ZGVudCwgc2xvdC5jYWNoZWRPZmZzZXQoKSwgb2xkU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAg
ICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6
OlJlcGxhY2UsIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRC
eUNvZGVCbG9jayhpZGVudCksIHNsb3QuY2FjaGVkT2Zmc2V0KCksIG9sZFN0cnVjdHVyZSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChzbG90LnR5cGUoKSA9
PSBQdXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5KTsKIApAQCAtNjQxLDcgKzY0MSw3IEBAIHN0
YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ29kZUJsb2NrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlVHJh
bnNpdGlvbih2bSwgY29kZUJsb2NrLCBpZGVudCwgb2Zmc2V0LCBvbGRTdHJ1Y3R1cmUsIG5ld1N0
cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7Cisg
ICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZVRyYW5zaXRpb24odm0s
IGNvZGVCbG9jaywgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25l
ZEJ5Q29kZUJsb2NrKGlkZW50KSwgb2Zmc2V0LCBvbGRTdHJ1Y3R1cmUsIG5ld1N0cnVjdHVyZSwg
Y29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpIHx8IHNsb3Qu
aXNDYWNoZWFibGVTZXR0ZXIoKSkgewogICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVD
dXN0b20oKSkgewpAQCAtNjcwLDcgKzY3MCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0
cnlDYWNoZVB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrCiAg
ICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEdldHRlclNldHRl
ckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywg
c2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRl
ciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyLCBvbGRTdHJ1Y3R1cmUsIGlkZW50LAor
ICAgICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCBzbG90LmlzQ3VzdG9tQWNjZXNzb3Io
KSA/IEFjY2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yU2V0dGVyIDogQWNjZXNzQ2FzZTo6Q3VzdG9t
VmFsdWVTZXR0ZXIsIG9sZFN0cnVjdHVyZSwgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKGlkZW50KSwKICAgICAgICAgICAgICAgICAgICAg
aW52YWxpZE9mZnNldCwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWlu
KSwgc2xvdC5jdXN0b21TZXR0ZXIoKSwgc2xvdC5iYXNlKCkgIT0gYmFzZVZhbHVlID8gc2xvdC5i
YXNlKCkgOiBudWxscHRyKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
T2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29uZGl0aW9uU2V0OwpAQCAtNzA3LDEzICs3MDcs
MTMgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sKICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICBuZXdDYXNlID0gR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6Y3JlYXRlKAotICAg
ICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCBBY2Nlc3NDYXNlOjpTZXR0ZXIsIG9sZFN0
cnVjdHVyZSwgaWRlbnQsIG9mZnNldCwgY29uZGl0aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFj
Y2Vzc0NoYWluKSk7CisgICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nh
c2U6OlNldHRlciwgb2xkU3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLCBvZmZzZXQsIGNvbmRpdGlvblNldCwg
V1RGTW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbikpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpQdXRCeUlkQWRkQWNjZXNzQ2FzZSwgb2xkU3Ry
dWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwog
ICAgICAgICAKLSAgICAgICAgcmVzdWx0ID0gc3R1YkluZm8uYWRkQWNjZXNzQ2FzZShsb2NrZXIs
IGNvZGVCbG9jaywgaWRlbnQsIFdURk1vdmUobmV3Q2FzZSkpOworICAgICAgICByZXN1bHQgPSBz
dHViSW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBDYWNoZWFibGVJZGVudGlm
aWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2soaWRlbnQpLCBXVEZNb3Zl
KG5ld0Nhc2UpKTsKIAogICAgICAgICBpZiAocmVzdWx0LmdlbmVyYXRlZFNvbWVDb2RlKCkpIHsK
ICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6UHV0QnlJZFJlcGxhY2VXaXRoSnVtcCwgb2xk
U3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkp
OwpAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgcmVwYXRjaFB1dEJ5SUQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTVmFsdWUKICAgICAgICAgZnRs
VGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9j
YXRpb24sIGFwcHJvcHJpYXRlR2VuZXJpY1B1dEJ5SWRGdW5jdGlvbihzbG90LCBwdXRLaW5kKSk7
CiB9CiAKLXN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZURlbEJ5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2NrLCBEZWxldGVQcm9wZXJ0eVNs
b3QmIHNsb3QsIEpTVmFsdWUgYmFzZVZhbHVlLCBTdHJ1Y3R1cmUqIG9sZFN0cnVjdHVyZSwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8s
IERlbEJ5S2luZCkKK3N0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZURlbGV0ZUJ5KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2NrLCBEZWxldGVQ
cm9wZXJ0eVNsb3QmIHNsb3QsIEpTVmFsdWUgYmFzZVZhbHVlLCBTdHJ1Y3R1cmUqIG9sZFN0cnVj
dHVyZSwgQ2FjaGVhYmxlSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIFN0cnVjdHVyZVN0dWJJbmZv
JiBzdHViSW5mbywgRGVsQnlLaW5kKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IHJlc3VsdDsKQEAgLTc1OSw3ICs3NTksNyBA
QCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVEZWxCeShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqCiAKICAgICAgICAgaWYgKHNsb3QuaXNEZWxldGVIaXQo
KSkgewogICAgICAgICAgICAgUHJvcGVydHlPZmZzZXQgbmV3T2Zmc2V0ID0gaW52YWxpZE9mZnNl
dDsKLSAgICAgICAgICAgIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlID0gU3RydWN0dXJlOjpyZW1v
dmVQcm9wZXJ0eVRyYW5zaXRpb25Gcm9tRXhpc3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkob2xk
U3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIG5ld09mZnNldCk7CisgICAgICAgICAgICBTdHJ1Y3R1
cmUqIG5ld1N0cnVjdHVyZSA9IFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVydHlUcmFuc2l0aW9uRnJv
bUV4aXN0aW5nU3RydWN0dXJlQ29uY3VycmVudGx5KG9sZFN0cnVjdHVyZSwgcHJvcGVydHlOYW1l
LnVpZCgpLCBuZXdPZmZzZXQpOwogICAgICAgICAgICAgaWYgKCFuZXdTdHJ1Y3R1cmUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICAgICAgICAgIGlmICghbmV3
U3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkgfHwgbmV3U3RydWN0dXJl
LT5pc0RpY3Rpb25hcnkoKSkKQEAgLTc2OSwxOSArNzY5LDE5IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZURlbEJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVC
bG9jayoKICAgICAgICAgICAgIEFTU0VSVChuZXdTdHJ1Y3R1cmUtPmlzUHJvcGVydHlEZWxldGlv
blRyYW5zaXRpb24oKSk7CiAgICAgICAgICAgICBBU1NFUlQobmV3U3RydWN0dXJlLT5pc09iamVj
dCgpKTsKICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG5ld09mZnNldCkpOwotICAg
ICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZURlbGV0ZSh2bSwgY29kZUJsb2Nr
LCBDYWNoZWFibGVJZGVudGlmaWVyKHByb3BlcnR5TmFtZSksIG5ld09mZnNldCwgb2xkU3RydWN0
dXJlLCBuZXdTdHJ1Y3R1cmUpOworICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNy
ZWF0ZURlbGV0ZSh2bSwgY29kZUJsb2NrLCBwcm9wZXJ0eU5hbWUsIG5ld09mZnNldCwgb2xkU3Ry
dWN0dXJlLCBuZXdTdHJ1Y3R1cmUpOwogICAgICAgICB9IGVsc2UgaWYgKCFjb2RlQmxvY2stPmlz
U3RyaWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBpZiAoc2xvdC5pc05vbmNvbmZpZ3VyYWJsZSgp
KQotICAgICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVC
bG9jaywgQWNjZXNzQ2FzZTo6RGVsZXRlTm9uQ29uZmlndXJhYmxlLCBDYWNoZWFibGVJZGVudGlm
aWVyKHByb3BlcnR5TmFtZSksIGludmFsaWRPZmZzZXQsIG9sZFN0cnVjdHVyZSwgeyB9LCBudWxs
cHRyKTsKKyAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBj
b2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OkRlbGV0ZU5vbkNvbmZpZ3VyYWJsZSwgcHJvcGVydHlOYW1l
LCBpbnZhbGlkT2Zmc2V0LCBvbGRTdHJ1Y3R1cmUsIHsgfSwgbnVsbHB0cik7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwg
Y29kZUJsb2NrLCBBY2Nlc3NDYXNlOjpEZWxldGVNaXNzLCBDYWNoZWFibGVJZGVudGlmaWVyKHBy
b3BlcnR5TmFtZSksIGludmFsaWRPZmZzZXQsIG9sZFN0cnVjdHVyZSwgeyB9LCBudWxscHRyKTsK
KyAgICAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Y3JlYXRlKHZtLCBjb2RlQmxv
Y2ssIEFjY2Vzc0Nhc2U6OkRlbGV0ZU1pc3MsIHByb3BlcnR5TmFtZSwgaW52YWxpZE9mZnNldCwg
b2xkU3RydWN0dXJlLCB7IH0sIG51bGxwdHIpOwogICAgICAgICB9CiAKICAgICAgICAgcmVzdWx0
ID0gc3R1YkluZm8uYWRkQWNjZXNzQ2FzZShsb2NrZXIsIGNvZGVCbG9jaywgcHJvcGVydHlOYW1l
LCBXVEZNb3ZlKG5ld0Nhc2UpKTsKIAogICAgICAgICBpZiAocmVzdWx0LmdlbmVyYXRlZFNvbWVD
b2RlKCkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3VsdC5jb2RlKCkpOwotICAg
ICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpEZWxCeVJlcGxhY2VXaXRoSnVtcCwgb2xkU3RydWN0
dXJlLT5jbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lKSk7CisgICAgICAgICAgICBMT0dfSUMoKElD
RXZlbnQ6OkRlbEJ5UmVwbGFjZVdpdGhKdW1wLCBvbGRTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBJ
ZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSk7CiAgICAgICAgICAg
ICBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoc3R1YkluZm8sIENvZGVMb2NhdGlvbkxh
YmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihyZXN1bHQuY29kZSgpKSk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC03OTEsMTIgKzc5MSwxMyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVEZWxCeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqCiAgICAgcmV0
dXJuIHJlc3VsdC5zaG91bGRHaXZlVXBOb3coKSA/IEdpdmVVcE9uQ2FjaGUgOiBSZXRyeUNhY2hl
TGF0ZXI7CiB9CiAKLXZvaWQgcmVwYXRjaERlbEJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENvZGVCbG9jayogY29kZUJsb2NrLCBEZWxldGVQcm9wZXJ0eVNsb3QmIHNsb3QsIEpTVmFs
dWUgYmFzZVZhbHVlLCBTdHJ1Y3R1cmUqIG9sZFN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIERlbEJ5S2luZCBraW5k
KQordm9pZCByZXBhdGNoRGVsZXRlQnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBiYXNl
VmFsdWUsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLCBDYWNoZWFibGVJZGVudGlmaWVyIHByb3Bl
cnR5TmFtZSwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBEZWxCeUtpbmQga2luZCkKIHsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCi0gICAgaWYgKHRyeUNhY2hlRGVsQnkoZ2xvYmFs
T2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xkU3RydWN0dXJlLCBwcm9wZXJ0
eU5hbWUsIHN0dWJJbmZvLCBraW5kKSA9PSBHaXZlVXBPbkNhY2hlKSB7Ci0gICAgICAgIExPR19J
QygoSUNFdmVudDo6RGVsQnlSZXBsYWNlV2l0aEdlbmVyaWMsIGJhc2VWYWx1ZS5jbGFzc0luZm9P
ck51bGwoZ2xvYmFsT2JqZWN0LT52bSgpKSwgcHJvcGVydHlOYW1lKSk7CisgICAgaWYgKHRyeUNh
Y2hlRGVsZXRlQnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIHNsb3QsIGJhc2VWYWx1ZSwgb2xk
U3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIHN0dWJJbmZvLCBraW5kKSA9PSBHaXZlVXBPbkNhY2hl
KSB7CisgICAgICAgIExPR19JQygoSUNFdmVudDo6RGVsQnlSZXBsYWNlV2l0aEdlbmVyaWMsIGJh
c2VWYWx1ZS5jbGFzc0luZm9Pck51bGwoZ2xvYmFsT2JqZWN0LT52bSgpKSwgSWRlbnRpZmllcjo6
ZnJvbVVpZCh2bSwgcHJvcGVydHlOYW1lLnVpZCgpKSkpOwogICAgICAgICBpZiAoa2luZCA9PSBE
ZWxCeUtpbmQ6Ok5vcm1hbCkKICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChj
b2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uLCBvcGVyYXRpb25EZWxldGVC
eUlkR2VuZXJpYyk7CiAgICAgICAgIGVsc2UKQEAgLTg5MSw5ICs4OTIsOSBAQCBzdGF0aWMgSW5s
aW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVJbkJ5SUQoCiAgICAgICAgIExPR19JQygoSUNFdmVudDo6
SW5BZGRBY2Nlc3NDYXNlLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCwgc2xvdC5zbG90
QmFzZSgpID09IGJhc2UpKTsKIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4g
bmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSgKLSAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ss
IHdhc0ZvdW5kID8gQWNjZXNzQ2FzZTo6SW5IaXQgOiBBY2Nlc3NDYXNlOjpJbk1pc3MsIGlkZW50
LCB3YXNGb3VuZCA/IHNsb3QuY2FjaGVkT2Zmc2V0KCkgOiBpbnZhbGlkT2Zmc2V0LCBzdHJ1Y3R1
cmUsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbikpOworICAgICAg
ICAgICAgdm0sIGNvZGVCbG9jaywgd2FzRm91bmQgPyBBY2Nlc3NDYXNlOjpJbkhpdCA6IEFjY2Vz
c0Nhc2U6OkluTWlzcywgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJP
d25lZEJ5Q29kZUJsb2NrKGlkZW50KSwgd2FzRm91bmQgPyBzbG90LmNhY2hlZE9mZnNldCgpIDog
aW52YWxpZE9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIFdURk1vdmUocHJvdG90eXBl
QWNjZXNzQ2hhaW4pKTsKIAotICAgICAgICByZXN1bHQgPSBzdHViSW5mby5hZGRBY2Nlc3NDYXNl
KGxvY2tlciwgY29kZUJsb2NrLCBpZGVudCwgV1RGTW92ZShuZXdDYXNlKSk7CisgICAgICAgIHJl
c3VsdCA9IHN0dWJJbmZvLmFkZEFjY2Vzc0Nhc2UobG9ja2VyLCBjb2RlQmxvY2ssIENhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhpZGVudCks
IFdURk1vdmUobmV3Q2FzZSkpOwogCiAgICAgICAgIGlmIChyZXN1bHQuZ2VuZXJhdGVkU29tZUNv
ZGUoKSkgewogICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpJblJlcGxhY2VXaXRoSnVtcCwg
c3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlKSk7
CkBAIC05NTcsNyArOTU4LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5z
dGFuY2VPZigKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKCFuZXdDYXNlKQotICAg
ICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLCBBY2Nl
c3NDYXNlOjpJbnN0YW5jZU9mR2VuZXJpYywgSWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIG5l
d0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIGNvZGVCbG9jaywgQWNjZXNzQ2FzZTo6SW5z
dGFuY2VPZkdlbmVyaWMsIENhY2hlYWJsZUlkZW50aWZpZXIoKSk7CiAgICAgICAgIAogICAgICAg
ICBMT0dfSUMoKElDRXZlbnQ6Okluc3RhbmNlT2ZBZGRBY2Nlc3NDYXNlLCBzdHJ1Y3R1cmUtPmNs
YXNzSW5mbygpLCBJZGVudGlmaWVyKCkpKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVwYXRjaC5oCmluZGV4IGMxZDk5NTlhZGFmZDM2NTc2MmU4OTE3OWFiM2MwZWVkNjZlNTg3ZDAu
LmMwMDBhN2RjNTA5ZDk4ZmRhMGZlYmE1YzA1M2FkZWI0NzhmOGE2MmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5oCkBAIC00OSw3ICs0OSw3IEBAIGVudW0gY2xhc3MgRGVsQnlLaW5k
IHsKIHZvaWQgcmVwYXRjaEFycmF5R2V0QnlWYWwoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxvY2sq
LCBKU1ZhbHVlIGJhc2UsIEpTVmFsdWUgaW5kZXgsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lk
IHJlcGF0Y2hHZXRCeShKU0dsb2JhbE9iamVjdCosIENvZGVCbG9jayosIEpTVmFsdWUsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwg
R2V0QnlLaW5kKTsKIHZvaWQgcmVwYXRjaFB1dEJ5SUQoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxv
Y2sqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJv
cGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKLXZvaWQgcmVwYXRjaERl
bEJ5KEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwgRGVsZXRlUHJvcGVydHlTbG90JiwgSlNW
YWx1ZSwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIFN0cnVjdHVyZVN0dWJJbmZvJiwg
RGVsQnlLaW5kKTsKK3ZvaWQgcmVwYXRjaERlbGV0ZUJ5KEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJs
b2NrKiwgRGVsZXRlUHJvcGVydHlTbG90JiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgQ2FjaGVhYmxl
SWRlbnRpZmllciwgU3RydWN0dXJlU3R1YkluZm8mLCBEZWxCeUtpbmQpOwogdm9pZCByZXBhdGNo
SW5CeUlEKEpTR2xvYmFsT2JqZWN0KiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqLCBjb25zdCBJZGVu
dGlmaWVyJiwgYm9vbCB3YXNGb3VuZCwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1
YkluZm8mKTsKIHZvaWQgcmVwYXRjaEluc3RhbmNlT2YoSlNHbG9iYWxPYmplY3QqLCBDb2RlQmxv
Y2sqLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvdHlwZSwgU3RydWN0dXJlU3R1YkluZm8m
LCBib29sIHdhc0ZvdW5kKTsKIHZvaWQgbGlua0ZvcihWTSYsIENhbGxGcmFtZSosIENhbGxMaW5r
SW5mbyYsIENvZGVCbG9jayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWFibGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWFibGVJZGVudGlmaWVyLmgKaW5kZXggZTUwNzY1M2RkZTcxZTk5ZWY4NzczNTk4NGFj
M2FiYzExYjY4NzI2OS4uYjQ3Yjg2ZWIzY2FkYTRlMWNjMzIxYzE0MWQzNTE5MTE2YTQ1Mjg2YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRp
Zmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50
aWZpZXIuaApAQCAtNDYsOCArNDYsOSBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIGNsYXNzIENhY2hl
YWJsZUlkZW50aWZpZXIgewogcHVibGljOgogICAgIENhY2hlYWJsZUlkZW50aWZpZXIoKSA9IGRl
ZmF1bHQ7Ci0gICAgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYp
OwotICAgIGlubGluZSBDYWNoZWFibGVJZGVudGlmaWVyKEpTQ2VsbCogaWRlbnRpZmllcik7CisK
KyAgICBzdGF0aWMgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIgY3JlYXRlRnJvbUNlbGwoSlND
ZWxsKiBpZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIg
Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKGNvbnN0IElkZW50aWZpZXImKTsK
IAogICAgIENhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgQ2FjaGVhYmxlSWRlbnRpZmllciYpID0g
ZGVmYXVsdDsKICAgICBDYWNoZWFibGVJZGVudGlmaWVyKENhY2hlYWJsZUlkZW50aWZpZXImJikg
PSBkZWZhdWx0OwpAQCAtODMsNiArODQsOSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgZXhwbGlj
aXQgaW5saW5lIENhY2hlYWJsZUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYpOworICAgIGV4
cGxpY2l0IGlubGluZSBDYWNoZWFibGVJZGVudGlmaWVyKEpTQ2VsbCogaWRlbnRpZmllcik7CisK
ICAgICBpbmxpbmUgdm9pZCBzZXRDZWxsQml0cyhKU0NlbGwqKTsKICAgICBpbmxpbmUgdm9pZCBz
ZXRVaWRCaXRzKFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oCmluZGV4
IDEwN2I1ZDYwNzIwMzcwNTFmNmE3YzFlOWNiMGMxNWYyNjU4OTc5MzkuLjQyNTc2ZDYyMjZkZjI4
N2JiM2FmYTA4MTE1ZmI0ZGU5YmJjMDJiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaApAQCAtMzUs
NiArMzUsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2lubGluZSBDYWNoZWFibGVJZGVudGlm
aWVyIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVC
bG9jayhjb25zdCBJZGVudGlmaWVyJiBpKQoreworICAgIHJldHVybiBDYWNoZWFibGVJZGVudGlm
aWVyKGkpOworfQorCitpbmxpbmUgQ2FjaGVhYmxlSWRlbnRpZmllciBDYWNoZWFibGVJZGVudGlm
aWVyOjpjcmVhdGVGcm9tQ2VsbChKU0NlbGwqIGkpCit7CisgICAgcmV0dXJuIENhY2hlYWJsZUlk
ZW50aWZpZXIoaSk7Cit9CisKIGlubGluZSBDYWNoZWFibGVJZGVudGlmaWVyOjpDYWNoZWFibGVJ
ZGVudGlmaWVyKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgc2V0VWlkQml0
cyhpZGVudGlmaWVyLmltcGwoKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE3OWQyMTI5MWEwZGZlYjMyNzFiMTNjNjY4Mzc0MmYxZDVj
NjEzMzYuLmFiODA2MmJmOGVkMDMyNjA2NGU4ZWQwMTI3YWYyMDdjMDhjZmEwNzQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDMtMDIgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUu
Y29tPgorCisgICAgICAgIERlbGV0ZSBieSB2YWwgY2FjaGluZyBkb2VzIG5vdCBrZWVwIHRoZSBz
dWJzY3JpcHQgYWxpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODM5MworCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAg
ICAgICAgKiBzdHJlc3MvZGVsZXRlLXByb3BlcnR5LWljLXN0cmVzcy5qczogQWRkZWQuCisKIDIw
MjAtMDItMjcgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFBvbHkgcHJvdG8gc2hvdWxkIHdvcmsgd2l0aCBwcm9wZXJ0eSBkZWxldGUgdHJhbnNp
dGlvbnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RlbGV0ZS1wcm9wZXJ0eS1pYy1zdHJl
c3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9kZWxldGUtcHJvcGVydHktaWMtc3RyZXNzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY5NDIxYjExYjlmZmE5Y2NiYzg1NWYyZmQ4ODg1OGE1YzA1NjU5ZTEKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kZWxldGUtcHJvcGVydHktaWMtc3RyZXNzLmpzCkBA
IC0wLDAgKzEsNSBAQAorbGV0IHggPSB7fTsKK2ZvciAobGV0IGk9MDsgaTwxMDAwOyArK2kpIHsK
KyAgICBnYygpOworICAgIGRlbGV0ZSB4WyJoIiArIDVdOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>