<?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>200200</bug_id>
          
          <creation_ts>2019-07-27 17:37:11 -0700</creation_ts>
          <short_desc>[WebGPU] Replace Vectors with HashSets for tracking resources used by GPUCommandBuffer</short_desc>
          <delta_ts>2019-07-29 17:07:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1556402</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-27 17:37:11 -0700</bug_when>
    <thetext>[WebGPU] Replace Vectors with HashSets for tracking resources used by GPUCommandBuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556403</commentid>
    <comment_count>1</comment_count>
      <attachid>375036</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-27 17:41:17 -0700</bug_when>
    <thetext>Created attachment 375036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556414</commentid>
    <comment_count>2</comment_count>
      <attachid>375038</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-27 19:17:54 -0700</bug_when>
    <thetext>Created attachment 375038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556415</commentid>
    <comment_count>3</comment_count>
      <attachid>375039</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-27 19:28:50 -0700</bug_when>
    <thetext>Created attachment 375039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556618</commentid>
    <comment_count>4</comment_count>
      <attachid>375039</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-29 11:10:28 -0700</bug_when>
    <thetext>Comment on attachment 375039
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:-347
&gt; -    auto addResult = m_unnamedTypeMapping.add(&amp;unnamedType, &amp;*iterator);

How did this ever compile? I thought unused variables produced errors

&gt; Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h:103
&gt; +    void useBuffer(Ref&lt;GPUBuffer&gt;&amp;&amp; buffer) { m_usedBuffers.addVoid(WTFMove(buffer)); }
&gt; +    void useTexture(Ref&lt;GPUTexture&gt;&amp;&amp; texture) { m_usedTextures.addVoid(WTFMove(texture)); }

I see a lot of production, but no consumption. Do the functions that we&apos;re using for consumption just happen to be named the same between Vectors and HashSets?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556648</commentid>
    <comment_count>5</comment_count>
      <attachid>375039</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-29 12:14:07 -0700</bug_when>
    <thetext>Comment on attachment 375039
Patch

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

&gt;&gt; Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:-347
&gt;&gt; -    auto addResult = m_unnamedTypeMapping.add(&amp;unnamedType, &amp;*iterator);
&gt; 
&gt; How did this ever compile? I thought unused variables produced errors

No idea. Maybe saam has some local flags turned off. EWS doesn&apos;t build WebGPU anymore right?

&gt;&gt; Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h:103
&gt;&gt; +    void useTexture(Ref&lt;GPUTexture&gt;&amp;&amp; texture) { m_usedTextures.addVoid(WTFMove(texture)); }
&gt; 
&gt; I see a lot of production, but no consumption. Do the functions that we&apos;re using for consumption just happen to be named the same between Vectors and HashSets?

Command buffers can&apos;t be reused in our impl, so I iterate through this container to process them rather than removing from them. They get released when the command buffer is released.

Bind groups are immutable once created so no issues there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556653</commentid>
    <comment_count>6</comment_count>
      <attachid>375090</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-07-29 12:31:34 -0700</bug_when>
    <thetext>Created attachment 375090
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556827</commentid>
    <comment_count>7</comment_count>
      <attachid>375090</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:06:37 -0700</bug_when>
    <thetext>Comment on attachment 375090
Patch for landing

Clearing flags on attachment: 375090

Committed r247930: &lt;https://trac.webkit.org/changeset/247930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556828</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:06:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556829</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-29 17:07:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/53686819&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375036</attachid>
            <date>2019-07-27 17:41:17 -0700</date>
            <delta_ts>2019-07-27 19:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200200-20190727174116.patch</filename>
            <type>text/plain</type>
            <size>3501</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFkMGI1NDYyMjAwZWVi
NzgwMWJjMWU4NDhhNDdmNGRjZTJhYmU5Ny4uNTNlNTZkZTA3NzEyMDJmNzMzYTgzYzBiZjFlNDk3
ZTdhNmU4Yzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA3LTI3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gUmVwbGFj
ZSBWZWN0b3JzIHdpdGggSGFzaFNldHMgZm9yIHRyYWNraW5nIHJlc291cmNlcyB1c2VkIGJ5IEdQ
VUNvbW1hbmRCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc291cmNlcyBib3VuZCB0byBhIGNvbW1hbmQgYnVmZmVyIG9ubHkgbmVlZCBiZSB0
cmFja2VkIG9uY2UgcmF0aGVyIHRoYW4gb25jZSBwZXIgcmVzb3VyY2Ugdmlldy4gCisgICAgICAg
IFRoaXMgcGF0Y2ggY3V0cyBHUFVRdWV1ZS5zdWJtaXQgdmFsaWRhdGlvbiBmcm9tIDItMTIgbXMg
ZG93biB0byB+MCB3aGVuIGRyYXdpbmcgMTIwMDAgdHJpYW5nbGVzIGluIEFuaW1vbWV0ZXIuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0czsgbm8gYmVoYXZpb3IgY2hhbmdlIGV4
cGVjdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZm
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OnVzZWRCdWZmZXJzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OnVzZWRUZXh0dXJlcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjp1c2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dXNlVGV4dHVyZSk6CisKIDIwMTkt
MDctMjYgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gUmVtb3ZlIGludmFsaWQgYXNzZXJ0aW9uIGFmdGVyIHIyNDc4NzguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIu
aAppbmRleCA5NGM0NjMzNzFjODNlNjMyODU1OGUzMmQ4M2RhMDMzZjk2OTdlYmExLi4zNGViYmU3
NjY3Mjk4ZjJhMDgwMTE3ZGQ3MjZmMTE0N2UyNjAyNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKQEAgLTMw
LDEwICszMCwxMCBAQAogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVU9yaWdp
bjNELmgiCiAjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogT0JK
Q19QUk9UT0NPTChNVExCbGl0Q29tbWFuZEVuY29kZXIpOwogT0JKQ19QUk9UT0NPTChNVExDb21t
YW5kQnVmZmVyKTsKQEAgLTg0LDggKzg0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8
R1BVQ29tbWFuZEJ1ZmZlcj4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYpOwogCiAgICAgUGxh
dGZvcm1Db21tYW5kQnVmZmVyKiBwbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3BsYXRmb3JtQ29tbWFuZEJ1ZmZlci5nZXQoKTsgfQotICAgIGNvbnN0IFZlY3RvcjxSZWY8
R1BVQnVmZmVyPj4mIHVzZWRCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV91c2VkQnVmZmVyczsg
fQotICAgIGNvbnN0IFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+JiB1c2VkVGV4dHVyZXMoKSBjb25z
dCB7IHJldHVybiBtX3VzZWRUZXh0dXJlczsgfQorICAgIGNvbnN0IEhhc2hTZXQ8UmVmPEdQVUJ1
ZmZlcj4+JiB1c2VkQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZEJ1ZmZlcnM7IH0KKyAg
ICBjb25zdCBIYXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4mIHVzZWRUZXh0dXJlcygpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlZFRleHR1cmVzOyB9CiAgICAgYm9vbCBpc0VuY29kaW5nUGFzcygpIGNvbnN0
IHsgcmV0dXJuIG1faXNFbmNvZGluZ1Bhc3M7IH0KIAogICAgIHZvaWQgc2V0SXNFbmNvZGluZ1Bh
c3MoYm9vbCBpc0VuY29kaW5nKSB7IG1faXNFbmNvZGluZ1Bhc3MgPSBpc0VuY29kaW5nOyB9CkBA
IC05OSwxNSArOTksMTUgQEAgcHVibGljOgogICAgIHZvaWQgY29weVRleHR1cmVUb0J1ZmZlcihH
UFVUZXh0dXJlQ29weVZpZXcmJiwgR1BVQnVmZmVyQ29weVZpZXcmJiwgY29uc3QgR1BVRXh0ZW50
M0QmKTsKICAgICB2b2lkIGNvcHlUZXh0dXJlVG9UZXh0dXJlKEdQVVRleHR1cmVDb3B5VmlldyYm
LCBHUFVUZXh0dXJlQ29weVZpZXcmJiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKIAotICAgIHZvaWQg
dXNlQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVyKSB7IG1fdXNlZEJ1ZmZlcnMuYXBwZW5k
KFdURk1vdmUoYnVmZmVyKSk7IH0KLSAgICB2b2lkIHVzZVRleHR1cmUoUmVmPEdQVVRleHR1cmU+
JiYgdGV4dHVyZSkgeyBtX3VzZWRUZXh0dXJlcy5hcHBlbmQoV1RGTW92ZSh0ZXh0dXJlKSk7IH0K
KyAgICB2b2lkIHVzZUJ1ZmZlcihSZWY8R1BVQnVmZmVyPiYmIGJ1ZmZlcikgeyBtX3VzZWRCdWZm
ZXJzLmFkZFZvaWQoV1RGTW92ZShidWZmZXIpKTsgfQorICAgIHZvaWQgdXNlVGV4dHVyZShSZWY8
R1BVVGV4dHVyZT4mJiB0ZXh0dXJlKSB7IG1fdXNlZFRleHR1cmVzLmFkZFZvaWQoV1RGTW92ZSh0
ZXh0dXJlKSk7IH0KIAogcHJpdmF0ZToKICAgICBHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29t
bWFuZEJ1ZmZlclNtYXJ0UHRyJiYpOwogCiAgICAgUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQ
dHIgbV9wbGF0Zm9ybUNvbW1hbmRCdWZmZXI7Ci0gICAgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiBt
X3VzZWRCdWZmZXJzOwotICAgIFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+IG1fdXNlZFRleHR1cmVz
OworICAgIEhhc2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+IG1fdXNlZEJ1ZmZlcnM7CisgICAgSGFzaFNl
dDxSZWY8R1BVVGV4dHVyZT4+IG1fdXNlZFRleHR1cmVzOwogICAgIGJvb2wgbV9pc0VuY29kaW5n
UGFzcyB7IGZhbHNlIH07CiAjaWYgVVNFKE1FVEFMKQogICAgIE1UTEJsaXRDb21tYW5kRW5jb2Rl
ciAqYmxpdEVuY29kZXIoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375038</attachid>
            <date>2019-07-27 19:17:54 -0700</date>
            <delta_ts>2019-07-27 19:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200200-20190727191754.patch</filename>
            <type>text/plain</type>
            <size>8642</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFkMGI1NDYyMjAwZWVi
NzgwMWJjMWU4NDhhNDdmNGRjZTJhYmU5Ny4uOWIxY2M5MTY1OTQzNWY4MTZjN2M2MzNiYjkwNDM4
ZjMyNGJkZTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA3LTI3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gUmVwbGFj
ZSBWZWN0b3JzIHdpdGggSGFzaFNldHMgZm9yIHRyYWNraW5nIHJlc291cmNlcyB1c2VkIGJ5IEdQ
VUNvbW1hbmRCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc291cmNlcyBib3VuZCB0byBhIGNvbW1hbmQgYnVmZmVyIG9yIGJpbmQgZ3JvdXAg
b25seSBuZWVkIGJlIHRyYWNrZWQgb25jZSByYXRoZXIgdGhhbiBvbmNlIHBlciBzdWItdmlldy4g
CisgICAgICAgIFRoaXMgcGF0Y2ggY3V0cyBHUFVRdWV1ZS5zdWJtaXQgdmFsaWRhdGlvbiBmcm9t
IDItMTIgbXMgZG93biB0byB+MCB3aGVuIGRyYXdpbmcgMTIwMDAgdHJpYW5nbGVzIGluIEFuaW1v
bWV0ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0czsgbm8gYmVoYXZpb3Ig
Y2hhbmdlIGV4cGVjdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJp
bmRHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpib3VuZEJ1ZmZlcnMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpib3VuZFRleHR1cmVzIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dXNlZEJ1ZmZlcnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dXNlZFRleHR1cmVzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OnVzZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjp1c2VUZXh0dXJlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW06CisgICAgICAg
IChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCaW5kR3JvdXA6OkdQVUJpbmRHcm91cCk6CisKIDIwMTktMDctMjYgIFNhYW0gQmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUmVtb3ZlIGludmFsaWQg
YXNzZXJ0aW9uIGFmdGVyIHIyNDc4NzguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKaW5kZXggZjI5ZjAwZTZiNTk4ZjA0NzU5MTE0
ZDE0OGM2NGYxODVlZThkODEzMy4uYTA1NTU5Nzc3OWZjN2Y5MzljNjgyNDBiMmQ0Nzk2ZTMxODg4
YWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUJpbmRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCaW5kR3JvdXAuaApAQCAtMjksMTAgKzI5LDEwIEBACiAKICNpbmNsdWRlICJHUFVCdWZmZXIu
aCIKICNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBPQkpDX1BS
T1RPQ09MKE1UTEJ1ZmZlcik7CiAKQEAgLTQ5LDE5ICs0OSwxOSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgTVRMQnVmZmVyICpmcmFnbWVudEFyZ3NCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdt
ZW50QXJnc0J1ZmZlci5nZXQoKTsgfQogICAgIGNvbnN0IE1UTEJ1ZmZlciAqY29tcHV0ZUFyZ3NC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVBcmdzQnVmZmVyLmdldCgpOyB9CiAjZW5k
aWYKLSAgICBjb25zdCBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiBib3VuZEJ1ZmZlcnMoKSBjb25z
dCB7IHJldHVybiBtX2JvdW5kQnVmZmVyczsgfQotICAgIGNvbnN0IFZlY3RvcjxSZWY8R1BVVGV4
dHVyZT4+JiBib3VuZFRleHR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZFRleHR1cmVzOyB9
CisgICAgY29uc3QgSGFzaFNldDxSZWY8R1BVQnVmZmVyPj4mIGJvdW5kQnVmZmVycygpIGNvbnN0
IHsgcmV0dXJuIG1fYm91bmRCdWZmZXJzOyB9CisgICAgY29uc3QgSGFzaFNldDxSZWY8R1BVVGV4
dHVyZT4+JiBib3VuZFRleHR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZFRleHR1cmVzOyB9
CiAKIHByaXZhdGU6CiAjaWYgVVNFKE1FVEFMKQotICAgIEdQVUJpbmRHcm91cChSZXRhaW5QdHI8
TVRMQnVmZmVyPiYmIHZlcnRleEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBmcmFnbWVu
dEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBjb21wdXRlQXJnc0J1ZmZlciwgVmVjdG9y
PFJlZjxHUFVCdWZmZXI+PiYmLCBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiYmKTsKKyAgICBHUFVC
aW5kR3JvdXAoUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiB2ZXJ0ZXhCdWZmZXIsIFJldGFpblB0cjxN
VExCdWZmZXI+JiYgZnJhZ21lbnRCdWZmZXIsIFJldGFpblB0cjxNVExCdWZmZXI+JiYgY29tcHV0
ZUFyZ3NCdWZmZXIsIEhhc2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+JiYsIEhhc2hTZXQ8UmVmPEdQVVRl
eHR1cmU+PiYmKTsKICAgICAKICAgICBSZXRhaW5QdHI8TVRMQnVmZmVyPiBtX3ZlcnRleEFyZ3NC
dWZmZXI7CiAgICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gbV9mcmFnbWVudEFyZ3NCdWZmZXI7CiAg
ICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gbV9jb21wdXRlQXJnc0J1ZmZlcjsKICNlbmRpZgotICAg
IFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4gbV9ib3VuZEJ1ZmZlcnM7Ci0gICAgVmVjdG9yPFJlZjxH
UFVUZXh0dXJlPj4gbV9ib3VuZFRleHR1cmVzOworICAgIEhhc2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+
IG1fYm91bmRCdWZmZXJzOworICAgIEhhc2hTZXQ8UmVmPEdQVVRleHR1cmU+PiBtX2JvdW5kVGV4
dHVyZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAppbmRleCA5
NGM0NjMzNzFjODNlNjMyODU1OGUzMmQ4M2RhMDMzZjk2OTdlYmExLi4zNGViYmU3NjY3Mjk4ZjJh
MDgwMTE3ZGQ3MjZmMTE0N2UyNjAyNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKQEAgLTMwLDEwICszMCwx
MCBAQAogI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVU9yaWdpbjNELmgiCiAj
aW5jbHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogT0JKQ19QUk9UT0NP
TChNVExCbGl0Q29tbWFuZEVuY29kZXIpOwogT0JKQ19QUk9UT0NPTChNVExDb21tYW5kQnVmZmVy
KTsKQEAgLTg0LDggKzg0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8R1BVQ29tbWFu
ZEJ1ZmZlcj4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYpOwogCiAgICAgUGxhdGZvcm1Db21t
YW5kQnVmZmVyKiBwbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXRm
b3JtQ29tbWFuZEJ1ZmZlci5nZXQoKTsgfQotICAgIGNvbnN0IFZlY3RvcjxSZWY8R1BVQnVmZmVy
Pj4mIHVzZWRCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV91c2VkQnVmZmVyczsgfQotICAgIGNv
bnN0IFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+JiB1c2VkVGV4dHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX3VzZWRUZXh0dXJlczsgfQorICAgIGNvbnN0IEhhc2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+JiB1
c2VkQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZEJ1ZmZlcnM7IH0KKyAgICBjb25zdCBI
YXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4mIHVzZWRUZXh0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlZFRleHR1cmVzOyB9CiAgICAgYm9vbCBpc0VuY29kaW5nUGFzcygpIGNvbnN0IHsgcmV0dXJu
IG1faXNFbmNvZGluZ1Bhc3M7IH0KIAogICAgIHZvaWQgc2V0SXNFbmNvZGluZ1Bhc3MoYm9vbCBp
c0VuY29kaW5nKSB7IG1faXNFbmNvZGluZ1Bhc3MgPSBpc0VuY29kaW5nOyB9CkBAIC05OSwxNSAr
OTksMTUgQEAgcHVibGljOgogICAgIHZvaWQgY29weVRleHR1cmVUb0J1ZmZlcihHUFVUZXh0dXJl
Q29weVZpZXcmJiwgR1BVQnVmZmVyQ29weVZpZXcmJiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKICAg
ICB2b2lkIGNvcHlUZXh0dXJlVG9UZXh0dXJlKEdQVVRleHR1cmVDb3B5VmlldyYmLCBHUFVUZXh0
dXJlQ29weVZpZXcmJiwgY29uc3QgR1BVRXh0ZW50M0QmKTsKIAotICAgIHZvaWQgdXNlQnVmZmVy
KFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVyKSB7IG1fdXNlZEJ1ZmZlcnMuYXBwZW5kKFdURk1vdmUo
YnVmZmVyKSk7IH0KLSAgICB2b2lkIHVzZVRleHR1cmUoUmVmPEdQVVRleHR1cmU+JiYgdGV4dHVy
ZSkgeyBtX3VzZWRUZXh0dXJlcy5hcHBlbmQoV1RGTW92ZSh0ZXh0dXJlKSk7IH0KKyAgICB2b2lk
IHVzZUJ1ZmZlcihSZWY8R1BVQnVmZmVyPiYmIGJ1ZmZlcikgeyBtX3VzZWRCdWZmZXJzLmFkZFZv
aWQoV1RGTW92ZShidWZmZXIpKTsgfQorICAgIHZvaWQgdXNlVGV4dHVyZShSZWY8R1BVVGV4dHVy
ZT4mJiB0ZXh0dXJlKSB7IG1fdXNlZFRleHR1cmVzLmFkZFZvaWQoV1RGTW92ZSh0ZXh0dXJlKSk7
IH0KIAogcHJpdmF0ZToKICAgICBHUFVDb21tYW5kQnVmZmVyKFBsYXRmb3JtQ29tbWFuZEJ1ZmZl
clNtYXJ0UHRyJiYpOwogCiAgICAgUGxhdGZvcm1Db21tYW5kQnVmZmVyU21hcnRQdHIgbV9wbGF0
Zm9ybUNvbW1hbmRCdWZmZXI7Ci0gICAgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiBtX3VzZWRCdWZm
ZXJzOwotICAgIFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+IG1fdXNlZFRleHR1cmVzOworICAgIEhh
c2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+IG1fdXNlZEJ1ZmZlcnM7CisgICAgSGFzaFNldDxSZWY8R1BV
VGV4dHVyZT4+IG1fdXNlZFRleHR1cmVzOwogICAgIGJvb2wgbV9pc0VuY29kaW5nUGFzcyB7IGZh
bHNlIH07CiAjaWYgVVNFKE1FVEFMKQogICAgIE1UTEJsaXRDb21tYW5kRW5jb2RlciAqYmxpdEVu
Y29kZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQppbmRleCAzZTBjN2Qz
OGFlMTY5MGI5NjMxZjQzZTBhNzZjNDhlNjQ4YjgzYWVkLi5jYmZiZGQ4ZTFhOGM4YTAzNzRiN2Zj
ZjJkNWY3NjcyYTRjZjA3ZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tCkBAIC0x
NjAsOCArMTYwLDggQEAgUmVmUHRyPEdQVUJpbmRHcm91cD4gR1BVQmluZEdyb3VwOjp0cnlDcmVh
dGUoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3IKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogICAgIAotICAgIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4gYm91bmRCdWZm
ZXJzOwotICAgIFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+IGJvdW5kVGV4dHVyZXM7CisgICAgSGFz
aFNldDxSZWY8R1BVQnVmZmVyPj4gYm91bmRCdWZmZXJzOworICAgIEhhc2hTZXQ8UmVmPEdQVVRl
eHR1cmU+PiBib3VuZFRleHR1cmVzOwogCiAgICAgLy8gU2V0IGVhY2ggcmVzb3VyY2Ugb24gZWFj
aCBNVExBcmd1bWVudEVuY29kZXIgaXQgc2hvdWxkIGJlIHZpc2libGUgb24uCiAgICAgY29uc3Qg
YXV0byYgbGF5b3V0QmluZGluZ3NNYXAgPSBkZXNjcmlwdG9yLmxheW91dC0+YmluZGluZ3NNYXAo
KTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBSZWZQdHI8R1BVQmluZEdyb3VwPiBHUFVCaW5kR3JvdXA6
OnRyeUNyZWF0ZShjb25zdCBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiBkZXNjcgogICAgICAgICAg
ICAgICAgIHNldEJ1ZmZlck9uRW5jb2RlcihmcmFnbWVudEVuY29kZXIsICpidWZmZXJSZXNvdXJj
ZSwgbGF5b3V0QmluZGluZy5pbnRlcm5hbE5hbWUsIGludGVybmFsTGVuZ3RoTmFtZSk7CiAgICAg
ICAgICAgICBpZiAoaXNGb3JDb21wdXRlKQogICAgICAgICAgICAgICAgIHNldEJ1ZmZlck9uRW5j
b2Rlcihjb21wdXRlRW5jb2RlciwgKmJ1ZmZlclJlc291cmNlLCBsYXlvdXRCaW5kaW5nLmludGVy
bmFsTmFtZSwgaW50ZXJuYWxMZW5ndGhOYW1lKTsKLSAgICAgICAgICAgIGJvdW5kQnVmZmVycy5h
cHBlbmQoYnVmZmVyUmVzb3VyY2UtPmJ1ZmZlci5jb3B5UmVmKCkpOworICAgICAgICAgICAgYm91
bmRCdWZmZXJzLmFkZFZvaWQoYnVmZmVyUmVzb3VyY2UtPmJ1ZmZlci5jb3B5UmVmKCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH07CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCBS
ZWZQdHI8R1BVQmluZEdyb3VwPiBHUFVCaW5kR3JvdXA6OnRyeUNyZWF0ZShjb25zdCBHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yJiBkZXNjcgogICAgICAgICAgICAgICAgIHNldFRleHR1cmVPbkVuY29k
ZXIoZnJhZ21lbnRFbmNvZGVyLCB0ZXh0dXJlUmVzb3VyY2UtPnBsYXRmb3JtVGV4dHVyZSgpLCBs
YXlvdXRCaW5kaW5nLmludGVybmFsTmFtZSk7CiAgICAgICAgICAgICBpZiAoaXNGb3JDb21wdXRl
KQogICAgICAgICAgICAgICAgIHNldFRleHR1cmVPbkVuY29kZXIoY29tcHV0ZUVuY29kZXIsIHRl
eHR1cmVSZXNvdXJjZS0+cGxhdGZvcm1UZXh0dXJlKCksIGxheW91dEJpbmRpbmcuaW50ZXJuYWxO
YW1lKTsKLSAgICAgICAgICAgIGJvdW5kVGV4dHVyZXMuYXBwZW5kKHRleHR1cmVSZXNvdXJjZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGJvdW5kVGV4dHVyZXMuYWRkVm9pZCh0ZXh0
dXJlUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfSwgWyZdKEdQVUJpbmRHcm91cExheW91dDo6U3RvcmFnZUJ1ZmZlciYgc3RvcmFn
ZUJ1ZmZlcikgLT4gYm9vbCB7CiAgICAgICAgICAgICByZXR1cm4gaGFuZGxlQnVmZmVyKHN0b3Jh
Z2VCdWZmZXIuaW50ZXJuYWxMZW5ndGhOYW1lKTsKQEAgLTI0Niw3ICsyNDYsNyBAQCBSZWZQdHI8
R1BVQmluZEdyb3VwPiBHUFVCaW5kR3JvdXA6OnRyeUNyZWF0ZShjb25zdCBHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yJiBkZXNjcgogICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVQmluZEdyb3VwKFdU
Rk1vdmUodmVydGV4QXJnc0J1ZmZlciksIFdURk1vdmUoZnJhZ21lbnRBcmdzQnVmZmVyKSwgV1RG
TW92ZShjb21wdXRlQXJnc0J1ZmZlciksIFdURk1vdmUoYm91bmRCdWZmZXJzKSwgV1RGTW92ZShi
b3VuZFRleHR1cmVzKSkpOwogfQogICAgIAotR1BVQmluZEdyb3VwOjpHUFVCaW5kR3JvdXAoUmV0
YWluUHRyPE1UTEJ1ZmZlcj4mJiB2ZXJ0ZXhCdWZmZXIsIFJldGFpblB0cjxNVExCdWZmZXI+JiYg
ZnJhZ21lbnRCdWZmZXIsIFJldGFpblB0cjxNVExCdWZmZXI+JiYgY29tcHV0ZUJ1ZmZlciwgVmVj
dG9yPFJlZjxHUFVCdWZmZXI+PiYmIGJ1ZmZlcnMsIFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+JiYg
dGV4dHVyZXMpCitHUFVCaW5kR3JvdXA6OkdQVUJpbmRHcm91cChSZXRhaW5QdHI8TVRMQnVmZmVy
PiYmIHZlcnRleEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBmcmFnbWVudEJ1ZmZlciwg
UmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBjb21wdXRlQnVmZmVyLCBIYXNoU2V0PFJlZjxHUFVCdWZm
ZXI+PiYmIGJ1ZmZlcnMsIEhhc2hTZXQ8UmVmPEdQVVRleHR1cmU+PiYmIHRleHR1cmVzKQogICAg
IDogbV92ZXJ0ZXhBcmdzQnVmZmVyKFdURk1vdmUodmVydGV4QnVmZmVyKSkKICAgICAsIG1fZnJh
Z21lbnRBcmdzQnVmZmVyKFdURk1vdmUoZnJhZ21lbnRCdWZmZXIpKQogICAgICwgbV9jb21wdXRl
QXJnc0J1ZmZlcihXVEZNb3ZlKGNvbXB1dGVCdWZmZXIpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375039</attachid>
            <date>2019-07-27 19:28:50 -0700</date>
            <delta_ts>2019-07-29 12:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200200-20190727192850.patch</filename>
            <type>text/plain</type>
            <size>9489</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhlNTU1NTA4MjA3OWY5
YWIzMzRjZTY1NTZkZTBiOTI5NDUwNGEwMi4uM2YxMTZiZjhmMTVjZTQzOWVlYWRjZWMyODJlNThk
OTE1OWY5NDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTI3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gUmVwbGFj
ZSBWZWN0b3JzIHdpdGggSGFzaFNldHMgZm9yIHRyYWNraW5nIHJlc291cmNlcyB1c2VkIGJ5IEdQ
VUNvbW1hbmRCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc291cmNlcyBib3VuZCB0byBhIGNvbW1hbmQgYnVmZmVyIG9yIGJpbmQgZ3JvdXAg
b25seSBuZWVkIGJlIHRyYWNrZWQgb25jZSByYXRoZXIgdGhhbiBvbmNlIHBlciBzdWItdmlldy4g
CisgICAgICAgIFRoaXMgcGF0Y2ggY3V0cyBHUFVRdWV1ZS5zdWJtaXQgdmFsaWRhdGlvbiBmcm9t
IDItMTIgbXMgZG93biB0byB+MCB3aGVuIGRyYXdpbmcgMTIwMDAgdHJpYW5nbGVzIGluIEFuaW1v
bWV0ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0czsgbm8gYmVoYXZpb3Ig
Y2hhbmdlIGV4cGVjdGVkLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwv
V0hMU0xUeXBlTmFtZXIuY3BwOiBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCaW5kR3JvdXA6OmJvdW5kQnVmZmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVC
aW5kR3JvdXA6OmJvdW5kVGV4dHVyZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
QnVmZmVyOjp1c2VkQnVmZmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5k
QnVmZmVyOjp1c2VkVGV4dHVyZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFu
ZEJ1ZmZlcjo6dXNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6
OnVzZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVC
aW5kR3JvdXBNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKToKKwog
MjAxOS0wNy0yNyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V0hMU0xdIFJlbW92ZSBVbm5hbWVkVHlwZSBjb3B5L21vdmUgY29uc3RydWN0b3JzIGFuZCBtYXJr
IGNsYXNzZXMgYXMgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML01ldGFsL1dITFNMVHlwZU5hbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMVHlwZU5hbWVyLmNwcAppbmRleCA2MTIyYTI3MzRj
ZDExZTMyNWU2NjkzMTYxNjhkZDNkMjczZjE2Y2NiLi5iMDBhYjU3OWY2YTVkZDk5ZjQ0MmM0MGZj
MzhkYWU4Y2YyMjcyOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9NZXRhbC9XSExTTFR5cGVOYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xUeXBlTmFtZXIuY3BwCkBAIC0zNDQsNyArMzQ0
LDcgQEAgQmFzZVR5cGVOYW1lTm9kZSogVHlwZU5hbWVyOjppbnNlcnQoQVNUOjpVbm5hbWVkVHlw
ZSYgdW5uYW1lZFR5cGUsIFZlY3RvcjxVbmlxdWUKICAgICAgICAgdmVjdG9yVG9JbnNlcnRJbnRv
LT5hcHBlbmQoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgcmV0dXJuICZ2ZWN0b3JUb0luc2Vy
dEludG8tPmxhc3QoKS5nZXQoKTsKICAgICB9Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3VubmFt
ZWRUeXBlTWFwcGluZy5hZGQoJnVubmFtZWRUeXBlLCAmKml0ZXJhdG9yKTsKKyAgICBtX3VubmFt
ZWRUeXBlTWFwcGluZy5hZGQoJnVubmFtZWRUeXBlLCAmKml0ZXJhdG9yKTsKICAgICByZXR1cm4g
JippdGVyYXRvcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUJpbmRHcm91cC5oCmluZGV4IGYyOWYwMGU2YjU5OGYwNDc1OTExNGQxNDhjNjRm
MTg1ZWU4ZDgxMzMuLmEwNTU1OTc3NzlmYzdmOTM5YzY4MjQwYjJkNDc5NmUzMTg4OGFhMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3Jv
dXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdy
b3VwLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAjaW5jbHVkZSAiR1BVQnVmZmVyLmgiCiAjaW5j
bHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogT0JKQ19QUk9UT0NPTChN
VExCdWZmZXIpOwogCkBAIC00OSwxOSArNDksMTkgQEAgcHVibGljOgogICAgIGNvbnN0IE1UTEJ1
ZmZlciAqZnJhZ21lbnRBcmdzQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudEFyZ3NC
dWZmZXIuZ2V0KCk7IH0KICAgICBjb25zdCBNVExCdWZmZXIgKmNvbXB1dGVBcmdzQnVmZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb21wdXRlQXJnc0J1ZmZlci5nZXQoKTsgfQogI2VuZGlmCi0gICAg
Y29uc3QgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiYgYm91bmRCdWZmZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9ib3VuZEJ1ZmZlcnM7IH0KLSAgICBjb25zdCBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiYg
Ym91bmRUZXh0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRUZXh0dXJlczsgfQorICAgIGNv
bnN0IEhhc2hTZXQ8UmVmPEdQVUJ1ZmZlcj4+JiBib3VuZEJ1ZmZlcnMoKSBjb25zdCB7IHJldHVy
biBtX2JvdW5kQnVmZmVyczsgfQorICAgIGNvbnN0IEhhc2hTZXQ8UmVmPEdQVVRleHR1cmU+PiYg
Ym91bmRUZXh0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRUZXh0dXJlczsgfQogCiBwcml2
YXRlOgogI2lmIFVTRShNRVRBTCkKLSAgICBHUFVCaW5kR3JvdXAoUmV0YWluUHRyPE1UTEJ1ZmZl
cj4mJiB2ZXJ0ZXhCdWZmZXIsIFJldGFpblB0cjxNVExCdWZmZXI+JiYgZnJhZ21lbnRCdWZmZXIs
IFJldGFpblB0cjxNVExCdWZmZXI+JiYgY29tcHV0ZUFyZ3NCdWZmZXIsIFZlY3RvcjxSZWY8R1BV
QnVmZmVyPj4mJiwgVmVjdG9yPFJlZjxHUFVUZXh0dXJlPj4mJik7CisgICAgR1BVQmluZEdyb3Vw
KFJldGFpblB0cjxNVExCdWZmZXI+JiYgdmVydGV4QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVy
PiYmIGZyYWdtZW50QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGNvbXB1dGVBcmdzQnVm
ZmVyLCBIYXNoU2V0PFJlZjxHUFVCdWZmZXI+PiYmLCBIYXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4m
Jik7CiAgICAgCiAgICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gbV92ZXJ0ZXhBcmdzQnVmZmVyOwog
ICAgIFJldGFpblB0cjxNVExCdWZmZXI+IG1fZnJhZ21lbnRBcmdzQnVmZmVyOwogICAgIFJldGFp
blB0cjxNVExCdWZmZXI+IG1fY29tcHV0ZUFyZ3NCdWZmZXI7CiAjZW5kaWYKLSAgICBWZWN0b3I8
UmVmPEdQVUJ1ZmZlcj4+IG1fYm91bmRCdWZmZXJzOwotICAgIFZlY3RvcjxSZWY8R1BVVGV4dHVy
ZT4+IG1fYm91bmRUZXh0dXJlczsKKyAgICBIYXNoU2V0PFJlZjxHUFVCdWZmZXI+PiBtX2JvdW5k
QnVmZmVyczsKKyAgICBIYXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4gbV9ib3VuZFRleHR1cmVzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggOTRjNDYzMzcx
YzgzZTYzMjg1NThlMzJkODNkYTAzM2Y5Njk3ZWJhMS4uMzRlYmJlNzY2NzI5OGYyYTA4MDExN2Rk
NzI2ZjExNDdlMjYwMjU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC0zMCwxMCArMzAsMTAgQEAKICNp
bmNsdWRlICJHUFVCdWZmZXIuaCIKICNpbmNsdWRlICJHUFVPcmlnaW4zRC5oIgogI2luY2x1ZGUg
IkdQVVRleHR1cmUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIE9CSkNfUFJPVE9DT0woTVRMQmxp
dENvbW1hbmRFbmNvZGVyKTsKIE9CSkNfUFJPVE9DT0woTVRMQ29tbWFuZEJ1ZmZlcik7CkBAIC04
NCw4ICs4NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+
IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmKTsKIAogICAgIFBsYXRmb3JtQ29tbWFuZEJ1ZmZl
ciogcGxhdGZvcm1Db21tYW5kQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNvbW1h
bmRCdWZmZXIuZ2V0KCk7IH0KLSAgICBjb25zdCBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiB1c2Vk
QnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZEJ1ZmZlcnM7IH0KLSAgICBjb25zdCBWZWN0
b3I8UmVmPEdQVVRleHR1cmU+PiYgdXNlZFRleHR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV91c2Vk
VGV4dHVyZXM7IH0KKyAgICBjb25zdCBIYXNoU2V0PFJlZjxHUFVCdWZmZXI+PiYgdXNlZEJ1ZmZl
cnMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRCdWZmZXJzOyB9CisgICAgY29uc3QgSGFzaFNldDxS
ZWY8R1BVVGV4dHVyZT4+JiB1c2VkVGV4dHVyZXMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRUZXh0
dXJlczsgfQogICAgIGJvb2wgaXNFbmNvZGluZ1Bhc3MoKSBjb25zdCB7IHJldHVybiBtX2lzRW5j
b2RpbmdQYXNzOyB9CiAKICAgICB2b2lkIHNldElzRW5jb2RpbmdQYXNzKGJvb2wgaXNFbmNvZGlu
ZykgeyBtX2lzRW5jb2RpbmdQYXNzID0gaXNFbmNvZGluZzsgfQpAQCAtOTksMTUgKzk5LDE1IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvcHlUZXh0dXJlVG9CdWZmZXIoR1BVVGV4dHVyZUNvcHlWaWV3
JiYsIEdQVUJ1ZmZlckNvcHlWaWV3JiYsIGNvbnN0IEdQVUV4dGVudDNEJik7CiAgICAgdm9pZCBj
b3B5VGV4dHVyZVRvVGV4dHVyZShHUFVUZXh0dXJlQ29weVZpZXcmJiwgR1BVVGV4dHVyZUNvcHlW
aWV3JiYsIGNvbnN0IEdQVUV4dGVudDNEJik7CiAKLSAgICB2b2lkIHVzZUJ1ZmZlcihSZWY8R1BV
QnVmZmVyPiYmIGJ1ZmZlcikgeyBtX3VzZWRCdWZmZXJzLmFwcGVuZChXVEZNb3ZlKGJ1ZmZlcikp
OyB9Ci0gICAgdm9pZCB1c2VUZXh0dXJlKFJlZjxHUFVUZXh0dXJlPiYmIHRleHR1cmUpIHsgbV91
c2VkVGV4dHVyZXMuYXBwZW5kKFdURk1vdmUodGV4dHVyZSkpOyB9CisgICAgdm9pZCB1c2VCdWZm
ZXIoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpIHsgbV91c2VkQnVmZmVycy5hZGRWb2lkKFdURk1v
dmUoYnVmZmVyKSk7IH0KKyAgICB2b2lkIHVzZVRleHR1cmUoUmVmPEdQVVRleHR1cmU+JiYgdGV4
dHVyZSkgeyBtX3VzZWRUZXh0dXJlcy5hZGRWb2lkKFdURk1vdmUodGV4dHVyZSkpOyB9CiAKIHBy
aXZhdGU6CiAgICAgR1BVQ29tbWFuZEJ1ZmZlcihQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0
ciYmKTsKIAogICAgIFBsYXRmb3JtQ29tbWFuZEJ1ZmZlclNtYXJ0UHRyIG1fcGxhdGZvcm1Db21t
YW5kQnVmZmVyOwotICAgIFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4gbV91c2VkQnVmZmVyczsKLSAg
ICBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiBtX3VzZWRUZXh0dXJlczsKKyAgICBIYXNoU2V0PFJl
ZjxHUFVCdWZmZXI+PiBtX3VzZWRCdWZmZXJzOworICAgIEhhc2hTZXQ8UmVmPEdQVVRleHR1cmU+
PiBtX3VzZWRUZXh0dXJlczsKICAgICBib29sIG1faXNFbmNvZGluZ1Bhc3MgeyBmYWxzZSB9Owog
I2lmIFVTRShNRVRBTCkKICAgICBNVExCbGl0Q29tbWFuZEVuY29kZXIgKmJsaXRFbmNvZGVyKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0KaW5kZXggM2UwYzdkMzhhZTE2OTBi
OTYzMWY0M2UwYTc2YzQ4ZTY0OGI4M2FlZC4uY2JmYmRkOGUxYThjOGEwMzc0YjdmY2YyZDVmNzY3
MmE0Y2YwN2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQpAQCAtMTYwLDggKzE2
MCw4IEBAIFJlZlB0cjxHUFVCaW5kR3JvdXA+IEdQVUJpbmRHcm91cDo6dHJ5Q3JlYXRlKGNvbnN0
IEdQVUJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KICAgICAKLSAgICBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+IGJvdW5kQnVmZmVyczsKLSAg
ICBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiBib3VuZFRleHR1cmVzOworICAgIEhhc2hTZXQ8UmVm
PEdQVUJ1ZmZlcj4+IGJvdW5kQnVmZmVyczsKKyAgICBIYXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4g
Ym91bmRUZXh0dXJlczsKIAogICAgIC8vIFNldCBlYWNoIHJlc291cmNlIG9uIGVhY2ggTVRMQXJn
dW1lbnRFbmNvZGVyIGl0IHNob3VsZCBiZSB2aXNpYmxlIG9uLgogICAgIGNvbnN0IGF1dG8mIGxh
eW91dEJpbmRpbmdzTWFwID0gZGVzY3JpcHRvci5sYXlvdXQtPmJpbmRpbmdzTWFwKCk7CkBAIC0y
MDMsNyArMjAzLDcgQEAgUmVmUHRyPEdQVUJpbmRHcm91cD4gR1BVQmluZEdyb3VwOjp0cnlDcmVh
dGUoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3IKICAgICAgICAgICAgICAgICBz
ZXRCdWZmZXJPbkVuY29kZXIoZnJhZ21lbnRFbmNvZGVyLCAqYnVmZmVyUmVzb3VyY2UsIGxheW91
dEJpbmRpbmcuaW50ZXJuYWxOYW1lLCBpbnRlcm5hbExlbmd0aE5hbWUpOwogICAgICAgICAgICAg
aWYgKGlzRm9yQ29tcHV0ZSkKICAgICAgICAgICAgICAgICBzZXRCdWZmZXJPbkVuY29kZXIoY29t
cHV0ZUVuY29kZXIsICpidWZmZXJSZXNvdXJjZSwgbGF5b3V0QmluZGluZy5pbnRlcm5hbE5hbWUs
IGludGVybmFsTGVuZ3RoTmFtZSk7Ci0gICAgICAgICAgICBib3VuZEJ1ZmZlcnMuYXBwZW5kKGJ1
ZmZlclJlc291cmNlLT5idWZmZXIuY29weVJlZigpKTsKKyAgICAgICAgICAgIGJvdW5kQnVmZmVy
cy5hZGRWb2lkKGJ1ZmZlclJlc291cmNlLT5idWZmZXIuY29weVJlZigpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9OwogCkBAIC0yMzIsNyArMjMyLDcgQEAgUmVmUHRyPEdQ
VUJpbmRHcm91cD4gR1BVQmluZEdyb3VwOjp0cnlDcmVhdGUoY29uc3QgR1BVQmluZEdyb3VwRGVz
Y3JpcHRvciYgZGVzY3IKICAgICAgICAgICAgICAgICBzZXRUZXh0dXJlT25FbmNvZGVyKGZyYWdt
ZW50RW5jb2RlciwgdGV4dHVyZVJlc291cmNlLT5wbGF0Zm9ybVRleHR1cmUoKSwgbGF5b3V0Qmlu
ZGluZy5pbnRlcm5hbE5hbWUpOwogICAgICAgICAgICAgaWYgKGlzRm9yQ29tcHV0ZSkKICAgICAg
ICAgICAgICAgICBzZXRUZXh0dXJlT25FbmNvZGVyKGNvbXB1dGVFbmNvZGVyLCB0ZXh0dXJlUmVz
b3VyY2UtPnBsYXRmb3JtVGV4dHVyZSgpLCBsYXlvdXRCaW5kaW5nLmludGVybmFsTmFtZSk7Ci0g
ICAgICAgICAgICBib3VuZFRleHR1cmVzLmFwcGVuZCh0ZXh0dXJlUmVzb3VyY2UucmVsZWFzZU5v
bk51bGwoKSk7CisgICAgICAgICAgICBib3VuZFRleHR1cmVzLmFkZFZvaWQodGV4dHVyZVJlc291
cmNlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0sIFsmXShHUFVCaW5kR3JvdXBMYXlvdXQ6OlN0b3JhZ2VCdWZmZXImIHN0b3JhZ2VCdWZmZXIp
IC0+IGJvb2wgewogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUJ1ZmZlcihzdG9yYWdlQnVmZmVy
LmludGVybmFsTGVuZ3RoTmFtZSk7CkBAIC0yNDYsNyArMjQ2LDcgQEAgUmVmUHRyPEdQVUJpbmRH
cm91cD4gR1BVQmluZEdyb3VwOjp0cnlDcmVhdGUoY29uc3QgR1BVQmluZEdyb3VwRGVzY3JpcHRv
ciYgZGVzY3IKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUJpbmRHcm91cChXVEZNb3ZlKHZl
cnRleEFyZ3NCdWZmZXIpLCBXVEZNb3ZlKGZyYWdtZW50QXJnc0J1ZmZlciksIFdURk1vdmUoY29t
cHV0ZUFyZ3NCdWZmZXIpLCBXVEZNb3ZlKGJvdW5kQnVmZmVycyksIFdURk1vdmUoYm91bmRUZXh0
dXJlcykpKTsKIH0KICAgICAKLUdQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKFJldGFpblB0cjxN
VExCdWZmZXI+JiYgdmVydGV4QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGZyYWdtZW50
QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGNvbXB1dGVCdWZmZXIsIFZlY3RvcjxSZWY8
R1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8UmVmPEdQVVRleHR1cmU+PiYmIHRleHR1cmVz
KQorR1BVQmluZEdyb3VwOjpHUFVCaW5kR3JvdXAoUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiB2ZXJ0
ZXhCdWZmZXIsIFJldGFpblB0cjxNVExCdWZmZXI+JiYgZnJhZ21lbnRCdWZmZXIsIFJldGFpblB0
cjxNVExCdWZmZXI+JiYgY29tcHV0ZUJ1ZmZlciwgSGFzaFNldDxSZWY8R1BVQnVmZmVyPj4mJiBi
dWZmZXJzLCBIYXNoU2V0PFJlZjxHUFVUZXh0dXJlPj4mJiB0ZXh0dXJlcykKICAgICA6IG1fdmVy
dGV4QXJnc0J1ZmZlcihXVEZNb3ZlKHZlcnRleEJ1ZmZlcikpCiAgICAgLCBtX2ZyYWdtZW50QXJn
c0J1ZmZlcihXVEZNb3ZlKGZyYWdtZW50QnVmZmVyKSkKICAgICAsIG1fY29tcHV0ZUFyZ3NCdWZm
ZXIoV1RGTW92ZShjb21wdXRlQnVmZmVyKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375090</attachid>
            <date>2019-07-29 12:31:34 -0700</date>
            <delta_ts>2019-07-29 17:06:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200200-20190729123134.patch</filename>
            <type>text/plain</type>
            <size>8761</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY0NzFiMTNmMDFkMzg5
MzU1ZDAzODk2ZmI0NWQxYjYxYWY5N2QxYy4uZTQwNTQxY2ZkZDgwNDZmZWU4ZTg4MjNjMWJjYzJk
MjZjODZlMDg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTI3ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gUmVwbGFj
ZSBWZWN0b3JzIHdpdGggSGFzaFNldHMgZm9yIHRyYWNraW5nIHJlc291cmNlcyB1c2VkIGJ5IEdQ
VUNvbW1hbmRCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDIwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgor
CisgICAgICAgIFJlc291cmNlcyBib3VuZCB0byBhIGNvbW1hbmQgYnVmZmVyIG9yIGJpbmQgZ3Jv
dXAgb25seSBuZWVkIGJlIHRyYWNrZWQgb25jZSByYXRoZXIgdGhhbiBvbmNlIHBlciBzdWItdmll
dy4gCisgICAgICAgIFRoaXMgcGF0Y2ggY3V0cyBHUFVRdWV1ZS5zdWJtaXQgdmFsaWRhdGlvbiBm
cm9tIDItMTIgbXMgZG93biB0byB+MCB3aGVuIGRyYXdpbmcgMTIwMDAgdHJpYW5nbGVzIGluIEFu
aW1vbWV0ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0czsgbm8gYmVoYXZp
b3IgY2hhbmdlIGV4cGVjdGVkLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0
YWwvV0hMU0xUeXBlTmFtZXIuY3BwOiBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVCaW5kR3JvdXA6OmJvdW5kQnVmZmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVCaW5kR3JvdXA6OmJvdW5kVGV4dHVyZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21t
YW5kQnVmZmVyOjp1c2VkQnVmZmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21t
YW5kQnVmZmVyOjp1c2VkVGV4dHVyZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29t
bWFuZEJ1ZmZlcjo6dXNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZm
ZXI6OnVzZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVCaW5kR3JvdXBNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6dHJ5
Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKToK
KwogMjAxOS0wNy0yOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjQ2ODk5KTogU3VidGl0bGVzIHNob3cgdHdpY2Ugd2hlbiBj
b250cm9scyBzaG93L2hpZGUgb24gaHVsdS5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaAppbmRleCBmMjlmMDBlNmI1OThmMDQ3
NTkxMTRkMTQ4YzY0ZjE4NWVlOGQ4MTMzLi5hMDU1NTk3Nzc5ZmM3ZjkzOWM2ODI0MGIyZDQ3OTZl
MzE4ODhhYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cC5oCkBAIC0yOSwxMCArMjksMTAgQEAKIAogI2luY2x1ZGUgIkdQVUJ1
ZmZlci5oIgogI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIE9C
SkNfUFJPVE9DT0woTVRMQnVmZmVyKTsKIApAQCAtNDksMTkgKzQ5LDE5IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBNVExCdWZmZXIgKmZyYWdtZW50QXJnc0J1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhZ21lbnRBcmdzQnVmZmVyLmdldCgpOyB9CiAgICAgY29uc3QgTVRMQnVmZmVyICpjb21wdXRl
QXJnc0J1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZUFyZ3NCdWZmZXIuZ2V0KCk7IH0K
ICNlbmRpZgotICAgIGNvbnN0IFZlY3RvcjxSZWY8R1BVQnVmZmVyPj4mIGJvdW5kQnVmZmVycygp
IGNvbnN0IHsgcmV0dXJuIG1fYm91bmRCdWZmZXJzOyB9Ci0gICAgY29uc3QgVmVjdG9yPFJlZjxH
UFVUZXh0dXJlPj4mIGJvdW5kVGV4dHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kVGV4dHVy
ZXM7IH0KKyAgICBjb25zdCBIYXNoU2V0PFJlZjxHUFVCdWZmZXI+PiYgYm91bmRCdWZmZXJzKCkg
Y29uc3QgeyByZXR1cm4gbV9ib3VuZEJ1ZmZlcnM7IH0KKyAgICBjb25zdCBIYXNoU2V0PFJlZjxH
UFVUZXh0dXJlPj4mIGJvdW5kVGV4dHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kVGV4dHVy
ZXM7IH0KIAogcHJpdmF0ZToKICNpZiBVU0UoTUVUQUwpCi0gICAgR1BVQmluZEdyb3VwKFJldGFp
blB0cjxNVExCdWZmZXI+JiYgdmVydGV4QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGZy
YWdtZW50QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGNvbXB1dGVBcmdzQnVmZmVyLCBW
ZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiYsIFZlY3RvcjxSZWY8R1BVVGV4dHVyZT4+JiYpOworICAg
IEdQVUJpbmRHcm91cChSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIHZlcnRleEJ1ZmZlciwgUmV0YWlu
UHRyPE1UTEJ1ZmZlcj4mJiBmcmFnbWVudEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBj
b21wdXRlQXJnc0J1ZmZlciwgSGFzaFNldDxSZWY8R1BVQnVmZmVyPj4mJiwgSGFzaFNldDxSZWY8
R1BVVGV4dHVyZT4+JiYpOwogICAgIAogICAgIFJldGFpblB0cjxNVExCdWZmZXI+IG1fdmVydGV4
QXJnc0J1ZmZlcjsKICAgICBSZXRhaW5QdHI8TVRMQnVmZmVyPiBtX2ZyYWdtZW50QXJnc0J1ZmZl
cjsKICAgICBSZXRhaW5QdHI8TVRMQnVmZmVyPiBtX2NvbXB1dGVBcmdzQnVmZmVyOwogI2VuZGlm
Ci0gICAgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiBtX2JvdW5kQnVmZmVyczsKLSAgICBWZWN0b3I8
UmVmPEdQVVRleHR1cmU+PiBtX2JvdW5kVGV4dHVyZXM7CisgICAgSGFzaFNldDxSZWY8R1BVQnVm
ZmVyPj4gbV9ib3VuZEJ1ZmZlcnM7CisgICAgSGFzaFNldDxSZWY8R1BVVGV4dHVyZT4+IG1fYm91
bmRUZXh0dXJlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCmlu
ZGV4IDk0YzQ2MzM3MWM4M2U2MzI4NTU4ZTMyZDgzZGEwMzNmOTY5N2ViYTEuLjM0ZWJiZTc2Njcy
OThmMmEwODAxMTdkZDcyNmYxMTQ3ZTI2MDI1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaApAQCAtMzAsMTAg
KzMwLDEwIEBACiAjaW5jbHVkZSAiR1BVQnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BVT3JpZ2luM0Qu
aCIKICNpbmNsdWRlICJHUFVUZXh0dXJlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBPQkpDX1BS
T1RPQ09MKE1UTEJsaXRDb21tYW5kRW5jb2Rlcik7CiBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRC
dWZmZXIpOwpAQCAtODQsOCArODQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHUFVD
b21tYW5kQnVmZmVyPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJik7CiAKICAgICBQbGF0Zm9y
bUNvbW1hbmRCdWZmZXIqIHBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
cGxhdGZvcm1Db21tYW5kQnVmZmVyLmdldCgpOyB9Ci0gICAgY29uc3QgVmVjdG9yPFJlZjxHUFVC
dWZmZXI+PiYgdXNlZEJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX3VzZWRCdWZmZXJzOyB9Ci0g
ICAgY29uc3QgVmVjdG9yPFJlZjxHUFVUZXh0dXJlPj4mIHVzZWRUZXh0dXJlcygpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlZFRleHR1cmVzOyB9CisgICAgY29uc3QgSGFzaFNldDxSZWY8R1BVQnVmZmVy
Pj4mIHVzZWRCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV91c2VkQnVmZmVyczsgfQorICAgIGNv
bnN0IEhhc2hTZXQ8UmVmPEdQVVRleHR1cmU+PiYgdXNlZFRleHR1cmVzKCkgY29uc3QgeyByZXR1
cm4gbV91c2VkVGV4dHVyZXM7IH0KICAgICBib29sIGlzRW5jb2RpbmdQYXNzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0VuY29kaW5nUGFzczsgfQogCiAgICAgdm9pZCBzZXRJc0VuY29kaW5nUGFzcyhi
b29sIGlzRW5jb2RpbmcpIHsgbV9pc0VuY29kaW5nUGFzcyA9IGlzRW5jb2Rpbmc7IH0KQEAgLTk5
LDE1ICs5OSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3B5VGV4dHVyZVRvQnVmZmVyKEdQVVRl
eHR1cmVDb3B5VmlldyYmLCBHUFVCdWZmZXJDb3B5VmlldyYmLCBjb25zdCBHUFVFeHRlbnQzRCYp
OwogICAgIHZvaWQgY29weVRleHR1cmVUb1RleHR1cmUoR1BVVGV4dHVyZUNvcHlWaWV3JiYsIEdQ
VVRleHR1cmVDb3B5VmlldyYmLCBjb25zdCBHUFVFeHRlbnQzRCYpOwogCi0gICAgdm9pZCB1c2VC
dWZmZXIoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpIHsgbV91c2VkQnVmZmVycy5hcHBlbmQoV1RG
TW92ZShidWZmZXIpKTsgfQotICAgIHZvaWQgdXNlVGV4dHVyZShSZWY8R1BVVGV4dHVyZT4mJiB0
ZXh0dXJlKSB7IG1fdXNlZFRleHR1cmVzLmFwcGVuZChXVEZNb3ZlKHRleHR1cmUpKTsgfQorICAg
IHZvaWQgdXNlQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVyKSB7IG1fdXNlZEJ1ZmZlcnMu
YWRkVm9pZChXVEZNb3ZlKGJ1ZmZlcikpOyB9CisgICAgdm9pZCB1c2VUZXh0dXJlKFJlZjxHUFVU
ZXh0dXJlPiYmIHRleHR1cmUpIHsgbV91c2VkVGV4dHVyZXMuYWRkVm9pZChXVEZNb3ZlKHRleHR1
cmUpKTsgfQogCiBwcml2YXRlOgogICAgIEdQVUNvbW1hbmRCdWZmZXIoUGxhdGZvcm1Db21tYW5k
QnVmZmVyU21hcnRQdHImJik7CiAKICAgICBQbGF0Zm9ybUNvbW1hbmRCdWZmZXJTbWFydFB0ciBt
X3BsYXRmb3JtQ29tbWFuZEJ1ZmZlcjsKLSAgICBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+IG1fdXNl
ZEJ1ZmZlcnM7Ci0gICAgVmVjdG9yPFJlZjxHUFVUZXh0dXJlPj4gbV91c2VkVGV4dHVyZXM7Cisg
ICAgSGFzaFNldDxSZWY8R1BVQnVmZmVyPj4gbV91c2VkQnVmZmVyczsKKyAgICBIYXNoU2V0PFJl
ZjxHUFVUZXh0dXJlPj4gbV91c2VkVGV4dHVyZXM7CiAgICAgYm9vbCBtX2lzRW5jb2RpbmdQYXNz
IHsgZmFsc2UgfTsKICNpZiBVU0UoTUVUQUwpCiAgICAgTVRMQmxpdENvbW1hbmRFbmNvZGVyICpi
bGl0RW5jb2RlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cE1ldGFsLm1tCmluZGV4IDNl
MGM3ZDM4YWUxNjkwYjk2MzFmNDNlMGE3NmM0OGU2NDhiODNhZWQuLmNiZmJkZDhlMWE4YzhhMDM3
NGI3ZmNmMmQ1Zjc2NzJhNGNmMDdlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0K
QEAgLTE2MCw4ICsxNjAsOCBAQCBSZWZQdHI8R1BVQmluZEdyb3VwPiBHUFVCaW5kR3JvdXA6OnRy
eUNyZWF0ZShjb25zdCBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiBkZXNjcgogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCi0gICAgVmVjdG9yPFJlZjxHUFVCdWZmZXI+PiBib3Vu
ZEJ1ZmZlcnM7Ci0gICAgVmVjdG9yPFJlZjxHUFVUZXh0dXJlPj4gYm91bmRUZXh0dXJlczsKKyAg
ICBIYXNoU2V0PFJlZjxHUFVCdWZmZXI+PiBib3VuZEJ1ZmZlcnM7CisgICAgSGFzaFNldDxSZWY8
R1BVVGV4dHVyZT4+IGJvdW5kVGV4dHVyZXM7CiAKICAgICAvLyBTZXQgZWFjaCByZXNvdXJjZSBv
biBlYWNoIE1UTEFyZ3VtZW50RW5jb2RlciBpdCBzaG91bGQgYmUgdmlzaWJsZSBvbi4KICAgICBj
b25zdCBhdXRvJiBsYXlvdXRCaW5kaW5nc01hcCA9IGRlc2NyaXB0b3IubGF5b3V0LT5iaW5kaW5n
c01hcCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIFJlZlB0cjxHUFVCaW5kR3JvdXA+IEdQVUJpbmRH
cm91cDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVUJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyCiAgICAg
ICAgICAgICAgICAgc2V0QnVmZmVyT25FbmNvZGVyKGZyYWdtZW50RW5jb2RlciwgKmJ1ZmZlclJl
c291cmNlLCBsYXlvdXRCaW5kaW5nLmludGVybmFsTmFtZSwgaW50ZXJuYWxMZW5ndGhOYW1lKTsK
ICAgICAgICAgICAgIGlmIChpc0ZvckNvbXB1dGUpCiAgICAgICAgICAgICAgICAgc2V0QnVmZmVy
T25FbmNvZGVyKGNvbXB1dGVFbmNvZGVyLCAqYnVmZmVyUmVzb3VyY2UsIGxheW91dEJpbmRpbmcu
aW50ZXJuYWxOYW1lLCBpbnRlcm5hbExlbmd0aE5hbWUpOwotICAgICAgICAgICAgYm91bmRCdWZm
ZXJzLmFwcGVuZChidWZmZXJSZXNvdXJjZS0+YnVmZmVyLmNvcHlSZWYoKSk7CisgICAgICAgICAg
ICBib3VuZEJ1ZmZlcnMuYWRkVm9pZChidWZmZXJSZXNvdXJjZS0+YnVmZmVyLmNvcHlSZWYoKSk7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfTsKIApAQCAtMjMyLDcgKzIzMiw3
IEBAIFJlZlB0cjxHUFVCaW5kR3JvdXA+IEdQVUJpbmRHcm91cDo6dHJ5Q3JlYXRlKGNvbnN0IEdQ
VUJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyCiAgICAgICAgICAgICAgICAgc2V0VGV4dHVyZU9u
RW5jb2RlcihmcmFnbWVudEVuY29kZXIsIHRleHR1cmVSZXNvdXJjZS0+cGxhdGZvcm1UZXh0dXJl
KCksIGxheW91dEJpbmRpbmcuaW50ZXJuYWxOYW1lKTsKICAgICAgICAgICAgIGlmIChpc0ZvckNv
bXB1dGUpCiAgICAgICAgICAgICAgICAgc2V0VGV4dHVyZU9uRW5jb2Rlcihjb21wdXRlRW5jb2Rl
ciwgdGV4dHVyZVJlc291cmNlLT5wbGF0Zm9ybVRleHR1cmUoKSwgbGF5b3V0QmluZGluZy5pbnRl
cm5hbE5hbWUpOwotICAgICAgICAgICAgYm91bmRUZXh0dXJlcy5hcHBlbmQodGV4dHVyZVJlc291
cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYm91bmRUZXh0dXJlcy5hZGRWb2lk
KHRleHR1cmVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9LCBbJl0oR1BVQmluZEdyb3VwTGF5b3V0OjpTdG9yYWdlQnVmZmVyJiBz
dG9yYWdlQnVmZmVyKSAtPiBib29sIHsKICAgICAgICAgICAgIHJldHVybiBoYW5kbGVCdWZmZXIo
c3RvcmFnZUJ1ZmZlci5pbnRlcm5hbExlbmd0aE5hbWUpOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIFJl
ZlB0cjxHUFVCaW5kR3JvdXA+IEdQVUJpbmRHcm91cDo6dHJ5Q3JlYXRlKGNvbnN0IEdQVUJpbmRH
cm91cERlc2NyaXB0b3ImIGRlc2NyCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVCaW5kR3Jv
dXAoV1RGTW92ZSh2ZXJ0ZXhBcmdzQnVmZmVyKSwgV1RGTW92ZShmcmFnbWVudEFyZ3NCdWZmZXIp
LCBXVEZNb3ZlKGNvbXB1dGVBcmdzQnVmZmVyKSwgV1RGTW92ZShib3VuZEJ1ZmZlcnMpLCBXVEZN
b3ZlKGJvdW5kVGV4dHVyZXMpKSk7CiB9CiAgICAgCi1HUFVCaW5kR3JvdXA6OkdQVUJpbmRHcm91
cChSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIHZlcnRleEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZl
cj4mJiBmcmFnbWVudEJ1ZmZlciwgUmV0YWluUHRyPE1UTEJ1ZmZlcj4mJiBjb21wdXRlQnVmZmVy
LCBWZWN0b3I8UmVmPEdQVUJ1ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPFJlZjxHUFVUZXh0dXJl
Pj4mJiB0ZXh0dXJlcykKK0dQVUJpbmRHcm91cDo6R1BVQmluZEdyb3VwKFJldGFpblB0cjxNVExC
dWZmZXI+JiYgdmVydGV4QnVmZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGZyYWdtZW50QnVm
ZmVyLCBSZXRhaW5QdHI8TVRMQnVmZmVyPiYmIGNvbXB1dGVCdWZmZXIsIEhhc2hTZXQ8UmVmPEdQ
VUJ1ZmZlcj4+JiYgYnVmZmVycywgSGFzaFNldDxSZWY8R1BVVGV4dHVyZT4+JiYgdGV4dHVyZXMp
CiAgICAgOiBtX3ZlcnRleEFyZ3NCdWZmZXIoV1RGTW92ZSh2ZXJ0ZXhCdWZmZXIpKQogICAgICwg
bV9mcmFnbWVudEFyZ3NCdWZmZXIoV1RGTW92ZShmcmFnbWVudEJ1ZmZlcikpCiAgICAgLCBtX2Nv
bXB1dGVBcmdzQnVmZmVyKFdURk1vdmUoY29tcHV0ZUJ1ZmZlcikpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>