<?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>226384</bug_id>
          
          <creation_ts>2021-05-28 11:36:02 -0700</creation_ts>
          <short_desc>Make ImageBuffer be able to put pixels directly into its backend from another ImageBuffer</short_desc>
          <delta_ts>2021-06-04 11:37:53 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764845</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 11:36:02 -0700</bug_when>
    <thetext>This can replace the call to ImageBuffer::draw() where alpha blending or scaling is required, for example the call in SourceGraphic::platformApplySoftware().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764849</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 11:37:26 -0700</bug_when>
    <thetext>I meant: ...where alpha blending or scaling is NOT required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764851</commentid>
    <comment_count>2</comment_count>
      <attachid>430032</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 11:38:24 -0700</bug_when>
    <thetext>Created attachment 430032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764853</commentid>
    <comment_count>3</comment_count>
      <attachid>430032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-28 11:39:40 -0700</bug_when>
    <thetext>Comment on attachment 430032
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:195
&gt; +    if (auto pixelBuffer = sourceImage.getPixelBuffer(format, srcRect))

For buffers with GPU backing (IOSurfaces) does this trigger readback?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764856</commentid>
    <comment_count>4</comment_count>
      <attachid>430032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-28 11:41:40 -0700</bug_when>
    <thetext>Comment on attachment 430032
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:187
&gt; +    if (resolutionScale() != sourceImage.resolutionScale()) {

Doesn&apos;t this also need to check color profiles and maybe more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764859</commentid>
    <comment_count>5</comment_count>
      <attachid>430032</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 11:44:23 -0700</bug_when>
    <thetext>Comment on attachment 430032
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:195
&gt;&gt; +    if (auto pixelBuffer = sourceImage.getPixelBuffer(format, srcRect))
&gt; 
&gt; For buffers with GPU backing (IOSurfaces) does this trigger readback?

Oh yes. I was thinking about filters in WebProcess. For GPUP case, I think we need to create a DL item which can only be used if both source and destination are in GPUP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764864</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 11:49:50 -0700</bug_when>
    <thetext>This code can be optimized more if we copy from the source backend to the destination backend directly without going through the PixelBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764889</commentid>
    <comment_count>7</comment_count>
      <attachid>430032</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 12:45:53 -0700</bug_when>
    <thetext>Comment on attachment 430032
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:187
&gt;&gt; +    if (resolutionScale() != sourceImage.resolutionScale()) {
&gt; 
&gt; Doesn&apos;t this also need to check color profiles and maybe more?

I think getPixelBuffer() will take care of these. The source PixelBufferFormat below is set to get the pixels in the destination colorSpace() and pixelFormat().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764908</commentid>
    <comment_count>8</comment_count>
      <attachid>430046</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 13:32:59 -0700</bug_when>
    <thetext>Created attachment 430046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764978</commentid>
    <comment_count>9</comment_count>
      <attachid>430065</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 15:53:26 -0700</bug_when>
    <thetext>Created attachment 430065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764981</commentid>
    <comment_count>10</comment_count>
      <attachid>430066</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-28 16:04:39 -0700</bug_when>
    <thetext>Created attachment 430066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765089</commentid>
    <comment_count>11</comment_count>
      <attachid>430066</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-29 09:09:35 -0700</bug_when>
    <thetext>Comment on attachment 430066
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:2088
&gt; +    PutImageBuffer(RenderingResourceIdentifier imageBufferIdentifier, const IntPoint&amp; destPoint)

Does anything need to be done to ensure the sourceImage is not mutated before this can happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765124</commentid>
    <comment_count>12</comment_count>
      <attachid>430110</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-29 14:06:51 -0700</bug_when>
    <thetext>Created attachment 430110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765129</commentid>
    <comment_count>13</comment_count>
      <attachid>430066</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-29 14:11:13 -0700</bug_when>
    <thetext>Comment on attachment 430066
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:2088
&gt;&gt; +    PutImageBuffer(RenderingResourceIdentifier imageBufferIdentifier, const IntPoint&amp; destPoint)
&gt; 
&gt; Does anything need to be done to ensure the sourceImage is not mutated before this can happen?

Yes you are right. PutImageBuffer should be a synchronous message after making sure all the pending items in both source and destination ImageBuffers are flushed to their backends.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765132</commentid>
    <comment_count>14</comment_count>
      <attachid>430111</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-29 14:24:00 -0700</bug_when>
    <thetext>Created attachment 430111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765387</commentid>
    <comment_count>15</comment_count>
      <attachid>430196</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-31 04:43:41 -0700</bug_when>
    <thetext>Created attachment 430196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765391</commentid>
    <comment_count>16</comment_count>
      <attachid>430198</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-31 05:33:58 -0700</bug_when>
    <thetext>Created attachment 430198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765393</commentid>
    <comment_count>17</comment_count>
      <attachid>430199</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-05-31 05:46:42 -0700</bug_when>
    <thetext>Created attachment 430199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766857</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-04 11:37:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/78878491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430032</attachid>
            <date>2021-05-28 11:38:24 -0700</date>
            <delta_ts>2021-05-28 13:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210528113823.patch</filename>
            <type>text/plain</type>
            <size>3957</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uMzkzMzQwYjM2MzJkNmMwNzcwYjJiZDc0YzMzMDBl
ZGFmNjhkNjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorCiAyMDIxLTA1LTI3ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkIHVzaW5n
IHN0ZDo6b3B0aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0aW9uYWwg
dHlwZWRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuY3BwCmluZGV4IDg4Y2U5NDI0OTczZjc4YmJmMTllYjNmMWMzOTc4MDRlZDBlNzNmZjYuLjlk
Y2RiODU3Mzc2ZTg2MWJmNWM2MGY4MTZhNDY3MzQyZTYyYjExYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKQEAgLTE4Miw2ICsxODIs
MjAgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y29weVJlY3RUb0J1ZmZlcihj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEQKICAgICByZXR1cm4gYnVmZmVyOwogfQogCit2
b2lkIEltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2Us
IGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQpCit7CisgICAgaWYgKHJlc29sdXRpb25TY2FsZSgp
ICE9IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgIGNvbnRleHQoKS5k
cmF3SW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIGRlc3RQb2ludCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBQaXhlbEJ1ZmZlckZvcm1hdCBmb3JtYXQgeyBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIHBpeGVsRm9ybWF0KCksIGNvbG9yU3BhY2UoKSB9Owor
ICAgIEludFJlY3Qgc3JjUmVjdCB7IHsgfSwgc291cmNlSW1hZ2UubG9naWNhbFNpemUoKSB9Owor
CisgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBzb3VyY2VJbWFnZS5nZXRQaXhlbEJ1ZmZlcihm
b3JtYXQsIHNyY1JlY3QpKQorICAgICAgICBwdXRQaXhlbEJ1ZmZlcigqcGl4ZWxCdWZmZXIsIHNy
Y1JlY3QsIGRlc3RQb2ludCk7Cit9CisKIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXI6
OnNpbmtJbnRvTmF0aXZlSW1hZ2UoUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcikKIHsK
ICAgICByZXR1cm4gaW1hZ2VCdWZmZXItPnNpbmtJbnRvTmF0aXZlSW1hZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDY0ZWE0ODM3
MjY5NmRhZTkwNTBiYTA0MTI1YWMyMGZhMDRlMDBiOWMuLmFhOTU1OTBjMGJlZGNkNDlkYTAyYWEy
YTRiYzYwOTgxMWY3YzlhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICAvLyBDcmVh
dGUgYW4gaW1hZ2UgYnVmZmVyIGNvbXBhdGlibGUgd2l0aCB0aGUgY29udGV4dCBhbmQgY29weSBy
ZWN0IGZyb20gdGhpcyBidWZmZXIgaW50byB0aGlzIG5ldyBvbmUuCiAgICAgUmVmUHRyPEltYWdl
QnVmZmVyPiBjb3B5UmVjdFRvQnVmZmVyKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IERlc3RpbmF0
aW9uQ29sb3JTcGFjZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCisgICAgdm9pZCBwdXRJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0p
OworCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAs
IC0xLCAtMSksIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291
cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4YTM2YTQxMDI2YmQzYTU4NTQ0NzgyMDI3NGMxMTA3
ZDc4MzkyZTkuLjUwNmNiYWYzNmYwYTFjYjQ5Nzk1ZjI2OTFiOGRkNTQ3ZmI1NjJjYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VHcmFwaGljLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNvdXJjZUdyYXBoaWM6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgaWYgKCFyZXN1bHRJbWFnZSB8fCAhc291cmNlSW1h
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc3VsdEltYWdlLT5jb250ZXh0KCkuZHJhd0lt
YWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgSW50UG9pbnQoKSk7CisgICAgcmVzdWx0SW1hZ2UtPnB1
dEltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgSW50UG9pbnQoKSk7CiB9CiAKIFRleHRTdHJlYW0m
IFNvdXJjZUdyYXBoaWM6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJl
cHJlc2VudGF0aW9uVHlwZSkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430046</attachid>
            <date>2021-05-28 13:32:59 -0700</date>
            <delta_ts>2021-05-28 15:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210528133258.patch</filename>
            <type>text/plain</type>
            <size>19804</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uMzdiOGJkN2JjNDJlMTUwYWUwN2FkMGM3ZDQzZDQ2
YWI1Y2JiYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpQdXRJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmltYWdlQnVm
ZmVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0
SW1hZ2VCdWZmZXI6OmRlc3RQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpsb2NhbEJvdW5kcyBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OnB1dEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGlj
OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorCiAyMDIxLTA1LTI3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkIHVzaW5nIHN0ZDo6b3B0
aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0aW9uYWwgdHlwZWRlZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBiNzYwZDY0N2Q2OWNmMTI2YTRiNDAyMDA4MzFhMzc2ZTZhMjY2ZTEwLi42OWMw
MzNhODdhNmIxN2Y0ZDU0NTQwYmI1YmM4OGRjODM3ZjZmNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTA1LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgSW1hZ2VCdWZmZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5
IGludG8gaXRzIGJhY2tlbmQgZnJvbSBhbm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXR0aW5nIGFuIEltYWdlQnVmZmVy
IGludG8gYW5vdGhlciBzaG91bGQgaGF2ZSBhIHNwZWNpYWwgY2FzZSBpZiB0aGV5IAorICAgICAg
ICBhcmUgYm90aCByZW1vdGUgSW1hZ2VCdWZmZXJzLiBSZWFkLWJhY2sgc2hvdWxkIGJlIGF2b2lk
ZWQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmRlY29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9wdGlvbmFsIGRp
cmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aAppbmRleCBlYzJkYTAyMzkyZjBhYzljYjg0NGRkNDRjMmZiYmFkYjc1YTY4NTk1Li45ZjNiMzQ5
MjE0ZjczY2EzZDczODZiNDYwNDhhNmZjMWFkYjI2ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0yMzks
NiArMjM5LDIwIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgcHV0
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIHNvdXJjZUltYWdlLCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKHJlc29sdXRpb25TY2FsZSgpICE9
IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgICAgICBjb250ZXh0KCku
ZHJhd0ltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBkZXN0UG9pbnQpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgcGl4ZWxGb3JtYXQoKSwgY29sb3JT
cGFjZSgpIH07CisgICAgICAgIEludFJlY3Qgc3JjUmVjdCB7IHsgfSwgc291cmNlSW1hZ2UubG9n
aWNhbFNpemUoKSB9OworCisgICAgICAgIGlmIChhdXRvIHBpeGVsQnVmZmVyID0gc291cmNlSW1h
Z2UuZ2V0UGl4ZWxCdWZmZXIoZm9ybWF0LCBzcmNSZWN0KSkKKyAgICAgICAgICAgIHB1dFBpeGVs
QnVmZmVyKCpwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50KTsKKyAgICB9CisKICAgICBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDY0ZWE0ODM3
MjY5NmRhZTkwNTBiYTA0MTI1YWMyMGZhMDRlMDBiOWMuLjQyOGZjY2Q5NGY2MjQzNDRiZjc2MDI1
YTQwNDQ2YWRkMTZkM2U0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaApAQCAtMTI4LDYgKzEyOCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZv
cm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3Qg
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCA9IHsgfSwgQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0ID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJl
bXVsdGlwbGllZCkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHB1dEltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCA9IHsgfSkgPSAwOworCiAgICAgLy8g
RklYTUU6IGN1cnJlbnQgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIGhhdmUgdGhlIHJl
c3RyaWN0aW9uIHRoYXQgdGhleSBvbmx5IHdvcmsKICAgICAvLyB3aXRoIHRleHR1cmVzIHRoYXQg
YXJlIFJHQiBvciBSR0JBIGZvcm1hdCwgYW5kIFVOU0lHTkVEX0JZVEUgdHlwZS4KICAgICB2aXJ0
dWFsIGJvb2wgY29weVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMJiwgR0NHTGVu
dW0sIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBib29sLCBib29sKSBjb25zdCA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBhNmZiNjhmODk3MDc5ZjIyYjJlNjg2NzMxZGZm
ZjA4NDAzNmIyN2Y2Li4zMDc4ZGY2NWRiYWY3MzU5ZDgwYTdhOWE1YzQ5NGY4YWI0ZjU3MjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTI1Miw2ICsyNTIsOCBAQCB2b2lkIERpc3Bs
YXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPERy
YXdHbHlwaHM+KGl0ZW0uZ2V0PERyYXdHbHlwaHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRy
YXdJbWFnZUJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxEcmF3SW1hZ2VCdWZmZXI+KGl0
ZW0uZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VC
dWZmZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8UHV0SW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PFB1
dEltYWdlQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6CiAg
ICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd05hdGl2ZUltYWdlPihpdGVtLmdldDxEcmF3TmF0aXZl
SW1hZ2U+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCA3NjdhZTFjZTI3MDA1YjBmZGQz
NTdkMTlmYjdmODhjMzc2MTY3ZWRkLi4xZWRmMjI0MTBjYjk2OGZiZWRhYjg4MGZiZDc0MDU0NjM5
ZmMwNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApA
QCAtMTkwLDYgKzE5MCw3IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6R2V0UGl4ZWxC
dWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CisgICAgY2FzZSBJdGVt
VHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgICAgIC8vIFNob3VsZCBhbHJlYWR5IGJlIGhhbmRs
ZWQgYnkgdGhlIGRlbGVnYXRlLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjg2LDYgKzI4Nyw5IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgp
CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIGdldDxQdXRQaXhl
bEJ1ZmZlcj4oKS5+UHV0UGl4ZWxCdWZmZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
SXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICBnZXQ8UHV0SW1hZ2VCdWZmZXI+KCku
flB1dEltYWdlQnVmZmVyKCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRMaW5lRGFzaDoKICAgICAgICAgZ2V0PFNldExpbmVEYXNoPigpLn5TZXRMaW5lRGFzaCgpOwog
ICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTEyLDggQEAgYm9vbCBJdGVtSGFuZGxlOjpzYWZl
Q29weShJdGVtVHlwZSBpdGVtVHlwZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPEdldFBpeGVsQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIHJldHVybiBjb3B5
SW50bzxQdXRQaXhlbEJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOworICAgIGNhc2UgSXRlbVR5
cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gY29weUludG88UHV0SW1hZ2VCdWZm
ZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoK
ICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVEYXNoPihpdGVtT2Zmc2V0LCAqdGhpcyk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5jcHAKaW5kZXggMDM4MTNiODM4OGIwMjM4YThlNzY3MjkwNzhiNWEyMjNkYzEz
MzJlYi4uNmM1NTkxMzY5YjIzMDMzMDgxYzUyODIyMzNiYzBkYTZhOWE2MzE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIHN0
YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0
dXJuIHNpemVvZihHZXRQaXhlbEJ1ZmZlcik7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxC
dWZmZXI6CiAgICAgICAgIHJldHVybiBzaXplb2YoUHV0UGl4ZWxCdWZmZXIpOworICAgIGNhc2Ug
SXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFB1dEltYWdl
QnVmZmVyKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFt
ZUZvck1lZGlhOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFBhaW50RnJhbWVGb3JNZWRpYSk7CkBA
IC0yNDEsNiArMjQzLDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAg
Y2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogI2VuZGlmCiAgICAgY2FzZSBJdGVt
VHlwZTo6UHV0UGl4ZWxCdWZmZXI6CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6
CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKICNpZiBFTkFCTEUoSU5MSU5FX1BB
VEhfREFUQSkKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRoOgpAQCAtMzMzLDYg
KzMzNiw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICNlbmRpZgorICAg
IGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OlJlc3Rv
cmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6Um90YXRlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCBjM2UxY2VjZjBlYzRi
ZGQ1NTU5MTY3N2FhNDBhYWVkZDYyNzAyMjliLi44NmFiZDFiMTA0Mjg2ZWQ3MTg1NDA3YTQ3OTky
ZTI3MjdmZjZjNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAg
LTgxLDYgKzgxLDcgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIE1ldGFD
b21tYW5kQ2hhbmdlSXRlbUJ1ZmZlciwKICAgICBHZXRQaXhlbEJ1ZmZlciwKICAgICBQdXRQaXhl
bEJ1ZmZlciwKKyAgICBQdXRJbWFnZUJ1ZmZlciwKICNpZiBFTkFCTEUoVklERU8pCiAgICAgUGFp
bnRGcmFtZUZvck1lZGlhLAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAKaW5kZXggZjIyMmUyMTgzYTM5MTAzYmQ2OTg1MzQ0NjRkZjNjYjBhOGZmOTA3ZS4uNWIxYjhl
NTJjYjM0ZGYxZjE4NDFjZDQzOGZjYTY3ZjFmYjdjOWE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmNwcApAQCAtODM5LDYgKzgzOSwxMiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUHV0UGl4ZWxCdWZmZXImIGl0ZW0pCiAg
ICAgcmV0dXJuIHRzOwogfQogCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUHV0SW1hZ2VCdWZmZXImIGl0ZW0pCit7CisgICAgdHMuZHVtcFByb3Bl
cnR5KCJkZXN0UG9pbnQiLCBpdGVtLmRlc3RQb2ludCgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisK
ICNpZiBFTkFCTEUoVklERU8pCiBQYWludEZyYW1lRm9yTWVkaWE6OlBhaW50RnJhbWVGb3JNZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQogICAg
IDogbV9pZGVudGlmaWVyKHBsYXllci5pZGVudGlmaWVyKCkpCkBAIC0xMTAxLDYgKzExMDcsNyBA
QCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUg
dHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6IHRz
IDw8ICJtZXRhLWNvbW1hbmQtY2hhbmdlLWl0ZW0tYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXI6IHRzIDw8ICJnZXQtcGl4ZWwtYnVmZmVyIjsgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6IHRzIDw8ICJwdXQtcGl4ZWwtYnVm
ZmVyIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6IHRzIDw8ICJw
dXQtaW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRl
bVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYTogdHMgPDwgInBhaW50LWZyYW1lLWZvci1tZWRpYSI7
IGJyZWFrOwogI2VuZGlmCkBAIC0xMjcyLDYgKzEyNzksOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6
UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFB1dFBpeGVsQnVmZmVyPigp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjoKKyAg
ICAgICAgdHMgPDwgaXRlbS5nZXQ8UHV0SW1hZ2VCdWZmZXI+KCk7CisgICAgICAgIGJyZWFrOwog
I2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6
CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFBhaW50RnJhbWVGb3JNZWRpYT4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDgzOTRiZDM4MmY5MjU1YjM5NDM0MjNkMTkzYTAw
OWNjNzhhNTg1ODUuLjBiMDE3MjhmZTU1OGUyYmJiMDViMWYzNDQ4OTc4YTRhOThhOWZlNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMjA3OSw2ICsyMDc5LDMwIEBAIE9w
dGlvbmFsPFB1dFBpeGVsQnVmZmVyPiBQdXRQaXhlbEJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgcmV0dXJuIHt7IFdURk1vdmUoKnBpeGVsQnVmZmVyKSwgKnNyY1JlY3QsICpk
ZXN0UG9pbnQsICpkZXN0Rm9ybWF0IH19OwogfQogCitjbGFzcyBQdXRJbWFnZUJ1ZmZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpQdXRJbWFnZUJ1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVt
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IHRydWU7
CisKKyAgICBQdXRJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50KQorICAgICAgICA6IG1f
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAgICAgLCBt
X2Rlc3RQb2ludChkZXN0UG9pbnQpCisgICAgeworICAgIH0KKworICAgIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlQnVmZmVySWRlbnRpZmllcjsgfQorICAgIEludFBvaW50IGRlc3RQb2ludCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGVzdFBvaW50OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIuaXNWYWxpZCgpOyB9CisKKyAgICBPcHRpb25hbDxGbG9h
dFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQorICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0Jikg
Y29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisKK3ByaXZhdGU6CisgICAgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOworICAgIEludFBvaW50
IG1fZGVzdFBvaW50OworfTsKKwogI2lmIEVOQUJMRShWSURFTykKIGNsYXNzIFBhaW50RnJhbWVG
b3JNZWRpYSB7CiBwdWJsaWM6CkBAIC0yNTA5LDYgKzI1MzMsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAog
ICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXIsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlciwKKyAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyLAogI2lmIEVOQUJMRShW
SURFTykKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JN
ZWRpYSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmlu
ZGV4IDgyYjJjN2FiNjUxMzgyMTBiZjNiNjU0ZTU5MmVkMzA3MWU0ZjgxMGEuLjhkNzgwNmI3MzM3
NDY0ZTFkMjA3ZTg5NTViNzQ2MWIxZGE5OTdmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKQEAgLTcxLDExICs3MSwxNiBAQCB2b2lkIFJlY29yZGVyOjpnZXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJ
bnRSZQogICAgIGFwcGVuZDxHZXRQaXhlbEJ1ZmZlcj4ob3V0cHV0Rm9ybWF0LCBzb3VyY2VSZWN0
KTsKIH0KIAotdm9pZCBSZWNvcmRlcjo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImIHBpeGVsQnVmZmVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RGb3JtYXQpCit2b2lkIFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkK
IHsKICAgICBhcHBlbmQ8UHV0UGl4ZWxCdWZmZXI+KHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0
UG9pbnQsIGRlc3RGb3JtYXQpOwogfQogCit2b2lkIFJlY29yZGVyOjpwdXRJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9p
bnQpCit7CisgICAgYXBwZW5kPFB1dEltYWdlQnVmZmVyPihzb3VyY2VJbWFnZS5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSwgZGVzdFBvaW50KTsKK30KKwogc3RhdGljIGJvb2wgY29udGFp
bnNPbmx5SW5saW5lU3RhdGVDaGFuZ2VzKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
JiBjaGFuZ2VzLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBjaGFuZ2VG
bGFncykKIHsKICAgICBzdGF0aWMgY29uc3RleHByIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0
ZUNoYW5nZUZsYWdzIGlubGluZVN0YXRlQ2hhbmdlRmxhZ3MgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmgKaW5kZXggNjFiZjc5ZDQ4MDhkYTYwY2JhOTVhNDMwMTM2MDA1ZGY2
YWE0ZjBjMy4uZTVhYzNkNWE3NmE1YzAyNDYxYzk0MmJlZjNmZjVjMjY1NmNjZmRkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC02MCw2ICs2MCw3IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
dXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEludFBvaW50JiBkZXN0
UG9pbnQpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlz
dC5pc0VtcHR5KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggODhhMzZhNDEwMjZiZDNh
NTg1NDQ3ODIwMjc0YzExMDdkNzgzOTJlOS4uNTA2Y2JhZjM2ZjBhMWNiNDk3OTVmMjY5MWI4ZGQ1
NDdmYjU2MmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQg
U291cmNlR3JhcGhpYzo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBpZiAoIXJlc3VsdElt
YWdlIHx8ICFzb3VyY2VJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzdWx0SW1hZ2Ut
PmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlLCBJbnRQb2ludCgpKTsKKyAg
ICByZXN1bHRJbWFnZS0+cHV0SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlLCBJbnRQb2ludCgpKTsK
IH0KIAogVGV4dFN0cmVhbSYgU291cmNlR3JhcGhpYzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihU
ZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBl
OTBiMzExYjcxNTVlNDY4NDQ1NmRiYWQyYjE4YzM0NjcwOGE4MjVlLi44ZDQ0NDQzZjgwNmVlZDI0
ODEwMmQwOWVmNzE0ODU3YWMyOWU1ZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNDIsNiArNDIsNyBAQCBj
bGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVm
ZmVyPEJhY2tlbmRUeXBlPiwgcHVibAogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVy
Ojpjb250ZXh0OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7
CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dFBpeGVsQnVmZmVyOworICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcjsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTg5
LDYgKzkwLDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogCisgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZUJ1
ZmZlcj4oKSkgeworICAgICAgICAgICAgYXV0byYgcHV0SW1hZ2VCdWZmZXJJdGVtID0gaXRlbS5n
ZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyPigpOworICAgICAgICAgICAg
YXV0byBzb3VyY2VJbWFnZSA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW1vdGVSZXNvdXJj
ZUNhY2hlKCkuY2FjaGVkSW1hZ2VCdWZmZXIocHV0SW1hZ2VCdWZmZXJJdGVtLmltYWdlQnVmZmVy
SWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIGlmICghc291cmNlSW1hZ2UpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXRJbWFnZUJ1ZmZlcigqc291cmNlSW1h
Z2UsIHB1dEltYWdlQnVmZmVySXRlbS5kZXN0UG9pbnQoKSk7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpGbHVzaENvbnRleHQ+KCkpIHsKICAgICAgICAgICAgIEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyOjpmbHVzaENvbnRleHQoKTsKICAgICAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IGl0ZW0u
Z2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ+KCkuaWRlbnRpZmllcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGQzNDQ1ZmVhNzJkNWRjM2UxZGMzMzU2MWI4MTEy
MzlmZTAxM2ZkNjYuLjMxM2QwOTFiODU1YzMwZDM0NDFhNWI1YjkyODA3ZGQ0MWNkZTcwNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTU2OCw2ICs1NjgsNyBAQCBPcHRpb25hbDxEaXNw
bGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmRlYwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogI2VuZGlmCisgICAgY2FzZSBEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpSZXN0b3JlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSb3RhdGU6CiAgICAg
Y2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCmluZGV4IDEyM2Q1MzljODJhNDY1MjNlNmVhODhjMDk0Y2NkOWMxYjdmYjljYzYuLmZjODY3
MDdlYTliZjM0MjgxZjM0ZDAzOGFmOTQ4M2YxODVjNTBkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oCkBAIC0yMjksNiArMjI5LDE1IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9kcmF3
aW5nQ29udGV4dC5yZWNvcmRlcigpLnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0
LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOwogICAgIH0KIAorICAgIHZvaWQgcHV0SW1hZ2VCdWZm
ZXIoSW1hZ2VCdWZmZXImIHNvdXJjZUltYWdlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50KSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFpc0NhY2hlZEltYWdlQnVmZmVyKHNvdXJjZUlt
YWdlKSkgeworICAgICAgICAgICAgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXI6OnB1dEltYWdl
QnVmZmVyKHNvdXJjZUltYWdlLCBkZXN0UG9pbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRJbWFnZUJ1ZmZl
cihzb3VyY2VJbWFnZSwgZGVzdFBvaW50KTsKKyAgICB9CisKICAgICBib29sIHByZWZlcnNQcmVw
YXJhdGlvbkZvckRpc3BsYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lk
IGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430065</attachid>
            <date>2021-05-28 15:53:26 -0700</date>
            <delta_ts>2021-05-28 16:13:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210528155325.patch</filename>
            <type>text/plain</type>
            <size>19806</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uMzdiOGJkN2JjNDJlMTUwYWUwN2FkMGM3ZDQzZDQ2
YWI1Y2JiYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpQdXRJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmltYWdlQnVm
ZmVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0
SW1hZ2VCdWZmZXI6OmRlc3RQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpsb2NhbEJvdW5kcyBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OnB1dEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGlj
OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorCiAyMDIxLTA1LTI3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkIHVzaW5nIHN0ZDo6b3B0
aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0aW9uYWwgdHlwZWRlZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBiNzYwZDY0N2Q2OWNmMTI2YTRiNDAyMDA4MzFhMzc2ZTZhMjY2ZTEwLi42OWMw
MzNhODdhNmIxN2Y0ZDU0NTQwYmI1YmM4OGRjODM3ZjZmNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTA1LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgSW1hZ2VCdWZmZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5
IGludG8gaXRzIGJhY2tlbmQgZnJvbSBhbm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXR0aW5nIGFuIEltYWdlQnVmZmVy
IGludG8gYW5vdGhlciBzaG91bGQgaGF2ZSBhIHNwZWNpYWwgY2FzZSBpZiB0aGV5IAorICAgICAg
ICBhcmUgYm90aCByZW1vdGUgSW1hZ2VCdWZmZXJzLiBSZWFkLWJhY2sgc2hvdWxkIGJlIGF2b2lk
ZWQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmRlY29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9wdGlvbmFsIGRp
cmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aAppbmRleCBlYzJkYTAyMzkyZjBhYzljYjg0NGRkNDRjMmZiYmFkYjc1YTY4NTk1Li5lYjJhODIx
MzUzY2ZkZGU5N2E4NDE3ZjNkZjc4M2NlYmNjNDQwNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0yMzks
NiArMjM5LDIwIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgcHV0
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIHNvdXJjZUltYWdlLCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKHJlc29sdXRpb25TY2FsZSgpICE9
IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgICAgICBjb250ZXh0KCku
ZHJhd0ltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBkZXN0UG9pbnQpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBjb2xv
clNwYWNlKCkgfTsKKyAgICAgICAgSW50UmVjdCBzcmNSZWN0IHsgeyB9LCBzb3VyY2VJbWFnZS5s
b2dpY2FsU2l6ZSgpIH07CisKKyAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBzb3VyY2VJ
bWFnZS5nZXRQaXhlbEJ1ZmZlcihmb3JtYXQsIHNyY1JlY3QpKQorICAgICAgICAgICAgcHV0UGl4
ZWxCdWZmZXIoKnBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQpOworICAgIH0KKwogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggNjRlYTQ4
MzcyNjk2ZGFlOTA1MGJhMDQxMjVhYzIwZmEwNGUwMGI5Yy4uNDI4ZmNjZDk0ZjYyNDM0NGJmNzYw
MjVhNDA0NDZhZGQxNmQzZTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xMjgsNiArMTI4LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBBbHBo
YVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQgPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQ
cmVtdWx0aXBsaWVkKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHV0SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50ID0geyB9KSA9IDA7CisKICAgICAv
LyBGSVhNRTogY3VycmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2QgaGF2ZSB0aGUg
cmVzdHJpY3Rpb24gdGhhdCB0aGV5IG9ubHkgd29yawogICAgIC8vIHdpdGggdGV4dHVyZXMgdGhh
dCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgogICAgIHZp
cnR1YWwgYm9vbCBjb3B5VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wmLCBHQ0dM
ZW51bSwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGNvbnN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGE2ZmI2OGY4OTcwNzlmMjJiMmU2ODY3MzFk
ZmZmMDg0MDM2YjI3ZjYuLjMwNzhkZjY1ZGJhZjczNTlkODBhN2E5YTVjNDk0ZjhhYjRmNTcyNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjUyLDYgKzI1Miw4IEBAIHZvaWQgRGlz
cGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8
RHJhd0dseXBocz4oaXRlbS5nZXQ8RHJhd0dseXBocz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0ltYWdlQnVmZmVyOgogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdJbWFnZUJ1ZmZlcj4o
aXRlbS5nZXQ8RHJhd0ltYWdlQnVmZmVyPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFn
ZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxQdXRJbWFnZUJ1ZmZlcj4oaXRlbS5nZXQ8
UHV0SW1hZ2VCdWZmZXI+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToK
ICAgICAgICAgcmV0dXJuIGFwcGVuZDxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW0uZ2V0PERyYXdOYXRp
dmVJbWFnZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDc2N2FlMWNlMjcwMDViMGZk
ZDM1N2QxOWZiN2Y4OGMzNzYxNjdlZGQuLjFlZGYyMjQxMGNiOTY4ZmJlZGFiODgwZmJkNzQwNTQ2
MzlmYzA2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3Bw
CkBAIC0xOTAsNiArMTkwLDcgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpHZXRQaXhl
bEJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKKyAgICBjYXNlIEl0
ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjoKICAgICAgICAgLy8gU2hvdWxkIGFscmVhZHkgYmUgaGFu
ZGxlZCBieSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CkBAIC0yODYsNiArMjg3LDkgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95
KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgZ2V0PFB1dFBp
eGVsQnVmZmVyPigpLn5QdXRQaXhlbEJ1ZmZlcigpOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxQdXRJbWFnZUJ1ZmZlcj4o
KS5+UHV0SW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVEYXNoOgogICAgICAgICBnZXQ8U2V0TGluZURhc2g+KCkuflNldExpbmVEYXNoKCk7
CiAgICAgICAgIHJldHVybjsKQEAgLTUwOCw2ICs1MTIsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNh
ZmVDb3B5KEl0ZW1UeXBlIGl0ZW1UeXBlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAog
ICAgICAgICByZXR1cm4gY29weUludG88R2V0UGl4ZWxCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIGNv
cHlJbnRvPFB1dFBpeGVsQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CisgICAgY2FzZSBJdGVt
VHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxQdXRJbWFnZUJ1
ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNo
OgogICAgICAgICByZXR1cm4gY29weUludG88U2V0TGluZURhc2g+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcAppbmRleCAwMzgxM2I4Mzg4YjAyMzhhOGU3NjcyOTA3OGI1YTIyM2Rj
MTMzMmViLi42YzU1OTEzNjliMjMwMzMwODFjNTI4MjIzM2JjMGRhNmE5YTYzMThjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0xMzYsNiArMTM2LDggQEAg
c3RhdGljIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICBy
ZXR1cm4gc2l6ZW9mKEdldFBpeGVsQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhl
bEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihQdXRQaXhlbEJ1ZmZlcik7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoUHV0SW1h
Z2VCdWZmZXIpOwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZy
YW1lRm9yTWVkaWE6CiAgICAgICAgIHJldHVybiBzaXplb2YoUGFpbnRGcmFtZUZvck1lZGlhKTsK
QEAgLTI0MSw2ICsyNDMsNyBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAg
ICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAjZW5kaWYKICAgICBjYXNlIEl0
ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZl
cjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogI2lmIEVOQUJMRShJTkxJTkVf
UEFUSF9EQVRBKQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6CkBAIC0zMzMs
NiArMzM2LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogI2VuZGlmCisg
ICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6UmVz
dG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IGMzZTFjZWNmMGVj
NGJkZDU1NTkxNjc3YWE0MGFhZWRkNjI3MDIyOWIuLjg2YWJkMWIxMDQyODZlZDcxODU0MDdhNDc5
OTJlMjcyN2ZmNmM1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApA
QCAtODEsNiArODEsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgTWV0
YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAogICAgIEdldFBpeGVsQnVmZmVyLAogICAgIFB1dFBp
eGVsQnVmZmVyLAorICAgIFB1dEltYWdlQnVmZmVyLAogI2lmIEVOQUJMRShWSURFTykKICAgICBQ
YWludEZyYW1lRm9yTWVkaWEsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmNwcAppbmRleCBmMjIyZTIxODNhMzkxMDNiZDY5ODUzNDQ2NGRmM2NiMGE4ZmY5MDdlLi41YjFi
OGU1MmNiMzRkZjFmMTg0MWNkNDM4ZmNhNjdmMWZiN2M5YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwCkBAIC04MzksNiArODM5LDEyIEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBQdXRQaXhlbEJ1ZmZlciYgaXRlbSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBQdXRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJv
cGVydHkoImRlc3RQb2ludCIsIGl0ZW0uZGVzdFBvaW50KCkpOworICAgIHJldHVybiB0czsKK30K
KwogI2lmIEVOQUJMRShWSURFTykKIFBhaW50RnJhbWVGb3JNZWRpYTo6UGFpbnRGcmFtZUZvck1l
ZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiAg
ICAgOiBtX2lkZW50aWZpZXIocGxheWVyLmlkZW50aWZpZXIoKSkKQEAgLTExMDEsNiArMTEwNyw3
IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlw
ZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjog
dHMgPDwgIm1ldGEtY29tbWFuZC1jaGFuZ2UtaXRlbS1idWZmZXIiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlcjogdHMgPDwgImdldC1waXhlbC1idWZmZXIiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjogdHMgPDwgInB1dC1waXhlbC1i
dWZmZXIiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjogdHMgPDwg
InB1dC1pbWFnZS1idWZmZXIiOyBicmVhazsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgY2FzZSBJ
dGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJhbWUtZm9yLW1lZGlh
IjsgYnJlYWs7CiAjZW5kaWYKQEAgLTEyNzIsNiArMTI3OSw5IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNlIEl0ZW1UeXBl
OjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8UHV0UGl4ZWxCdWZmZXI+
KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgor
ICAgICAgICB0cyA8PCBpdGVtLmdldDxQdXRJbWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAgYnJlYWs7
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRp
YToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8UGFpbnRGcmFtZUZvck1lZGlhPigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggODM5NGJkMzgyZjkyNTViMzk0MzQyM2QxOTNh
MDA5Y2M3OGE1ODU4NS4uMGIwMTcyOGZlNTU4ZTJiYmIwNWIxZjM0NDg5NzhhNGE5OGE5ZmU0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0yMDc5LDYgKzIwNzksMzAgQEAg
T3B0aW9uYWw8UHV0UGl4ZWxCdWZmZXI+IFB1dFBpeGVsQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCAqc3JjUmVjdCwg
KmRlc3RQb2ludCwgKmRlc3RGb3JtYXQgfX07CiB9CiAKK2NsYXNzIFB1dEltYWdlQnVmZmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5
cGU6OlB1dEltYWdlQnVmZmVyOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0
ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1
ZTsKKworICAgIFB1dEltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQpCisgICAgICAgIDog
bV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICAgICAs
IG1fZGVzdFBvaW50KGRlc3RQb2ludCkKKyAgICB7CisgICAgfQorCisgICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2VCdWZmZXJJZGVudGlmaWVyOyB9CisgICAgSW50UG9pbnQgZGVzdFBvaW50KCkgY29uc3Qg
eyByZXR1cm4gbV9kZXN0UG9pbnQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5pc1ZhbGlkKCk7IH0KKworICAgIE9wdGlvbmFsPEZs
b2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9Cisg
ICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQm
KSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgSW50UG9p
bnQgbV9kZXN0UG9pbnQ7Cit9OworCiAjaWYgRU5BQkxFKFZJREVPKQogY2xhc3MgUGFpbnRGcmFt
ZUZvck1lZGlhIHsKIHB1YmxpYzoKQEAgLTI1MDksNiArMjUzMyw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIs
CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlciwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyLAorICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXIsCiAjaWYgRU5BQkxF
KFZJREVPKQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZv
ck1lZGlhLAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
aW5kZXggODJiMmM3YWI2NTEzODIxMGJmM2I2NTRlNTkyZWQzMDcxZTRmODEwYS4uOGQ3ODA2Yjcz
Mzc0NjRlMWQyMDdlODk1NWI3NDYxYjFkYTk5N2Y5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNzEsMTEgKzcxLDE2IEBAIHZvaWQgUmVjb3JkZXI6Omdl
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0
IEludFJlCiAgICAgYXBwZW5kPEdldFBpeGVsQnVmZmVyPihvdXRwdXRGb3JtYXQsIHNvdXJjZVJl
Y3QpOwogfQogCi12b2lkIFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQ
aXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3ZvaWQgUmVjb3JkZXI6OnB1dFBpeGVsQnVmZmVyKGNv
bnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KQogewogICAgIGFwcGVuZDxQdXRQaXhlbEJ1ZmZlcj4ocGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRl
c3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9CiAKK3ZvaWQgUmVjb3JkZXI6OnB1dEltYWdlQnVmZmVy
KFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3VyY2VJbWFnZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQ
b2ludCkKK3sKKyAgICBhcHBlbmQ8UHV0SW1hZ2VCdWZmZXI+KHNvdXJjZUltYWdlLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UG9pbnQpOworfQorCiBzdGF0aWMgYm9vbCBjb250
YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5n
ZUZsYWdzKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2MWJmNzlkNDgwOGRhNjBjYmE5NWE0MzAxMzYwMDVk
ZjZhYTRmMGMzLi5lNWFjM2Q1YTc2YTVjMDI0NjFjOTQyYmVmM2ZmNWMyNjU2Y2NmZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhl
bEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHB1dEltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb2ludCk7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlM
aXN0LmlzRW1wdHkoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA4OGEzNmE0MTAyNmJk
M2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5Li41MDZjYmFmMzZmMGExY2I0OTc5NWYyNjkxYjhk
ZDU0N2ZiNTYyY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9p
ZCBTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIGlmICghcmVzdWx0
SW1hZ2UgfHwgIXNvdXJjZUltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXN1bHRJbWFn
ZS0+Y29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UsIEludFBvaW50KCkpOwor
ICAgIHJlc3VsdEltYWdlLT5wdXRJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UsIEludFBvaW50KCkp
OwogfQogCiBUZXh0U3RyZWFtJiBTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4
IGU5MGIzMTFiNzE1NWU0Njg0NDU2ZGJhZDJiMThjMzQ2NzA4YTgyNWUuLjhkNDQ0NDNmODA2ZWVk
MjQ4MTAyZDA5ZWY3MTQ4NTdhYzI5ZTVkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC00Miw2ICs0Miw3IEBA
IGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VC
dWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsCiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2Vu
ZDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0UGl4ZWxCdWZmZXI7Cisg
ICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlQnVmZmVyOwogCiBwdWJs
aWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAt
ODksNiArOTAsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAKKyAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdl
QnVmZmVyPigpKSB7CisgICAgICAgICAgICBhdXRvJiBwdXRJbWFnZUJ1ZmZlckl0ZW0gPSBpdGVt
LmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI+KCk7CisgICAgICAgICAg
ICBhdXRvIHNvdXJjZUltYWdlID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlc291
cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcihwdXRJbWFnZUJ1ZmZlckl0ZW0uaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgaWYgKCFzb3VyY2VJbWFnZSkgeworICAgICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1dEltYWdlQnVmZmVyKCpzb3VyY2VJ
bWFnZSwgcHV0SW1hZ2VCdWZmZXJJdGVtLmRlc3RQb2ludCgpKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkZsdXNoQ29udGV4dD4oKSkgewogICAgICAgICAgICAgQmFzZUNvbmNyZXRlSW1hZ2VC
dWZmZXI6OmZsdXNoQ29udGV4dCgpOwogICAgICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gaXRl
bS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dD4oKS5pZGVudGlmaWVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZDM0NDVmZWE3MmQ1ZGMzZTFkYzMzNTYxYjgx
MTIzOWZlMDEzZmQ2Ni4uMzEzZDA5MWI4NTVjMzBkMzQ0MWE1YjViOTI4MDdkZDQxY2RlNzA1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNTY4LDYgKzU2OCw3IEBAIE9wdGlvbmFsPERp
c3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6ZGVjCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAjZW5kaWYKKyAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlJlc3RvcmU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJvdGF0ZToKICAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKaW5kZXggMTIzZDUzOWM4MmE0NjUyM2U2ZWE4OGMwOTRjY2Q5YzFiN2ZiOWNjNi4uZmM4
NjcwN2VhOWJmMzQyODFmMzRkMDM4YWY5NDgzZjE4NWM1MGRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKQEAgLTIyOSw2ICsyMjksMTUgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Ry
YXdpbmdDb250ZXh0LnJlY29yZGVyKCkucHV0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNyY1Jl
Y3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAoIWlzQ2FjaGVkSW1hZ2VCdWZmZXIoc291cmNl
SW1hZ2UpKSB7CisgICAgICAgICAgICBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6cHV0SW1h
Z2VCdWZmZXIoc291cmNlSW1hZ2UsIGRlc3RQb2ludCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLnB1dEltYWdlQnVm
ZmVyKHNvdXJjZUltYWdlLCBkZXN0UG9pbnQpOworICAgIH0KKwogICAgIGJvb2wgcHJlZmVyc1By
ZXBhcmF0aW9uRm9yRGlzcGxheSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZv
aWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGUK
</data>
<flag name="commit-queue"
          id="451407"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430066</attachid>
            <date>2021-05-28 16:04:39 -0700</date>
            <delta_ts>2021-05-29 14:06:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210528160438.patch</filename>
            <type>text/plain</type>
            <size>19807</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uMzdiOGJkN2JjNDJlMTUwYWUwN2FkMGM3ZDQzZDQ2
YWI1Y2JiYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpQdXRJbWFnZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmltYWdlQnVm
ZmVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0
SW1hZ2VCdWZmZXI6OmRlc3RQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpsb2NhbEJvdW5kcyBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpw
dXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OnB1dEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGlj
OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorCiAyMDIxLTA1LTI3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkIHVzaW5nIHN0ZDo6b3B0
aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0aW9uYWwgdHlwZWRlZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBiNzYwZDY0N2Q2OWNmMTI2YTRiNDAyMDA4MzFhMzc2ZTZhMjY2ZTEwLi42OWMw
MzNhODdhNmIxN2Y0ZDU0NTQwYmI1YmM4OGRjODM3ZjZmNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTA1LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgSW1hZ2VCdWZmZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5
IGludG8gaXRzIGJhY2tlbmQgZnJvbSBhbm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXR0aW5nIGFuIEltYWdlQnVmZmVy
IGludG8gYW5vdGhlciBzaG91bGQgaGF2ZSBhIHNwZWNpYWwgY2FzZSBpZiB0aGV5IAorICAgICAg
ICBhcmUgYm90aCByZW1vdGUgSW1hZ2VCdWZmZXJzLiBSZWFkLWJhY2sgc2hvdWxkIGJlIGF2b2lk
ZWQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmRlY29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9wdGlvbmFsIGRp
cmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aAppbmRleCBlYzJkYTAyMzkyZjBhYzljYjg0NGRkNDRjMmZiYmFkYjc1YTY4NTk1Li5lYjJhODIx
MzUzY2ZkZGU5N2E4NDE3ZjNkZjc4M2NlYmNjNDQwNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0yMzks
NiArMjM5LDIwIEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgcHV0
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIHNvdXJjZUltYWdlLCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKHJlc29sdXRpb25TY2FsZSgpICE9
IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgICAgICBjb250ZXh0KCku
ZHJhd0ltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBkZXN0UG9pbnQpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgUGl4ZWxCdWZmZXJGb3JtYXQgZm9ybWF0IHsgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBjb2xv
clNwYWNlKCkgfTsKKyAgICAgICAgSW50UmVjdCBzcmNSZWN0IHsgeyB9LCBzb3VyY2VJbWFnZS5s
b2dpY2FsU2l6ZSgpIH07CisKKyAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBzb3VyY2VJ
bWFnZS5nZXRQaXhlbEJ1ZmZlcihmb3JtYXQsIHNyY1JlY3QpKQorICAgICAgICAgICAgcHV0UGl4
ZWxCdWZmZXIoKnBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQpOworICAgIH0KKwogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggNjRlYTQ4
MzcyNjk2ZGFlOTA1MGJhMDQxMjVhYzIwZmEwNGUwMGI5Yy4uNDI4ZmNjZDk0ZjYyNDM0NGJmNzYw
MjVhNDA0NDZhZGQxNmQzZTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xMjgsNiArMTI4LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBBbHBo
YVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQgPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQ
cmVtdWx0aXBsaWVkKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHV0SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50ID0geyB9KSA9IDA7CisKICAgICAv
LyBGSVhNRTogY3VycmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2QgaGF2ZSB0aGUg
cmVzdHJpY3Rpb24gdGhhdCB0aGV5IG9ubHkgd29yawogICAgIC8vIHdpdGggdGV4dHVyZXMgdGhh
dCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgogICAgIHZp
cnR1YWwgYm9vbCBjb3B5VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wmLCBHQ0dM
ZW51bSwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGNvbnN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGE2ZmI2OGY4OTcwNzlmMjJiMmU2ODY3MzFk
ZmZmMDg0MDM2YjI3ZjYuLjMwNzhkZjY1ZGJhZjczNTlkODBhN2E5YTVjNDk0ZjhhYjRmNTcyNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjUyLDYgKzI1Miw4IEBAIHZvaWQgRGlz
cGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8
RHJhd0dseXBocz4oaXRlbS5nZXQ8RHJhd0dseXBocz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0ltYWdlQnVmZmVyOgogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdJbWFnZUJ1ZmZlcj4o
aXRlbS5nZXQ8RHJhd0ltYWdlQnVmZmVyPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFn
ZUJ1ZmZlcjoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxQdXRJbWFnZUJ1ZmZlcj4oaXRlbS5nZXQ8
UHV0SW1hZ2VCdWZmZXI+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToK
ICAgICAgICAgcmV0dXJuIGFwcGVuZDxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW0uZ2V0PERyYXdOYXRp
dmVJbWFnZT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDc2N2FlMWNlMjcwMDViMGZk
ZDM1N2QxOWZiN2Y4OGMzNzYxNjdlZGQuLjFlZGYyMjQxMGNiOTY4ZmJlZGFiODgwZmJkNzQwNTQ2
MzlmYzA2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3Bw
CkBAIC0xOTAsNiArMTkwLDcgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpHZXRQaXhl
bEJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKKyAgICBjYXNlIEl0
ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjoKICAgICAgICAgLy8gU2hvdWxkIGFscmVhZHkgYmUgaGFu
ZGxlZCBieSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CkBAIC0yODYsNiArMjg3LDkgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95
KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgZ2V0PFB1dFBp
eGVsQnVmZmVyPigpLn5QdXRQaXhlbEJ1ZmZlcigpOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIGdldDxQdXRJbWFnZUJ1ZmZlcj4o
KS5+UHV0SW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6
OlNldExpbmVEYXNoOgogICAgICAgICBnZXQ8U2V0TGluZURhc2g+KCkuflNldExpbmVEYXNoKCk7
CiAgICAgICAgIHJldHVybjsKQEAgLTUwOCw2ICs1MTIsOCBAQCBib29sIEl0ZW1IYW5kbGU6OnNh
ZmVDb3B5KEl0ZW1UeXBlIGl0ZW1UeXBlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAog
ICAgICAgICByZXR1cm4gY29weUludG88R2V0UGl4ZWxCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIGNv
cHlJbnRvPFB1dFBpeGVsQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CisgICAgY2FzZSBJdGVt
VHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBjb3B5SW50bzxQdXRJbWFnZUJ1
ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNo
OgogICAgICAgICByZXR1cm4gY29weUludG88U2V0TGluZURhc2g+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcAppbmRleCAwMzgxM2I4Mzg4YjAyMzhhOGU3NjcyOTA3OGI1YTIyM2Rj
MTMzMmViLi42YzU1OTEzNjliMjMwMzMwODFjNTI4MjIzM2JjMGRhNmE5YTYzMThjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0xMzYsNiArMTM2LDggQEAg
c3RhdGljIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICBy
ZXR1cm4gc2l6ZW9mKEdldFBpeGVsQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhl
bEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihQdXRQaXhlbEJ1ZmZlcik7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoUHV0SW1h
Z2VCdWZmZXIpOwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZy
YW1lRm9yTWVkaWE6CiAgICAgICAgIHJldHVybiBzaXplb2YoUGFpbnRGcmFtZUZvck1lZGlhKTsK
QEAgLTI0MSw2ICsyNDMsNyBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAg
ICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAjZW5kaWYKICAgICBjYXNlIEl0
ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZl
cjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgogI2lmIEVOQUJMRShJTkxJTkVf
UEFUSF9EQVRBKQogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6CkBAIC0zMzMs
NiArMzM2LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogI2VuZGlmCisg
ICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6UmVz
dG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IGMzZTFjZWNmMGVj
NGJkZDU1NTkxNjc3YWE0MGFhZWRkNjI3MDIyOWIuLjg2YWJkMWIxMDQyODZlZDcxODU0MDdhNDc5
OTJlMjcyN2ZmNmM1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApA
QCAtODEsNiArODEsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgTWV0
YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAogICAgIEdldFBpeGVsQnVmZmVyLAogICAgIFB1dFBp
eGVsQnVmZmVyLAorICAgIFB1dEltYWdlQnVmZmVyLAogI2lmIEVOQUJMRShWSURFTykKICAgICBQ
YWludEZyYW1lRm9yTWVkaWEsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmNwcAppbmRleCBmMjIyZTIxODNhMzkxMDNiZDY5ODUzNDQ2NGRmM2NiMGE4ZmY5MDdlLi41YjFi
OGU1MmNiMzRkZjFmMTg0MWNkNDM4ZmNhNjdmMWZiN2M5YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwCkBAIC04MzksNiArODM5LDEyIEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBQdXRQaXhlbEJ1ZmZlciYgaXRlbSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBQdXRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJv
cGVydHkoImRlc3RQb2ludCIsIGl0ZW0uZGVzdFBvaW50KCkpOworICAgIHJldHVybiB0czsKK30K
KwogI2lmIEVOQUJMRShWSURFTykKIFBhaW50RnJhbWVGb3JNZWRpYTo6UGFpbnRGcmFtZUZvck1l
ZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCiAg
ICAgOiBtX2lkZW50aWZpZXIocGxheWVyLmlkZW50aWZpZXIoKSkKQEAgLTExMDEsNiArMTEwNyw3
IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlw
ZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjog
dHMgPDwgIm1ldGEtY29tbWFuZC1jaGFuZ2UtaXRlbS1idWZmZXIiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlcjogdHMgPDwgImdldC1waXhlbC1idWZmZXIiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjogdHMgPDwgInB1dC1waXhlbC1i
dWZmZXIiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjogdHMgPDwg
InB1dC1pbWFnZS1idWZmZXIiOyBicmVhazsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgY2FzZSBJ
dGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJhbWUtZm9yLW1lZGlh
IjsgYnJlYWs7CiAjZW5kaWYKQEAgLTEyNzIsNiArMTI3OSw5IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNlIEl0ZW1UeXBl
OjpQdXRQaXhlbEJ1ZmZlcjoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8UHV0UGl4ZWxCdWZmZXI+
KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgor
ICAgICAgICB0cyA8PCBpdGVtLmdldDxQdXRJbWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAgYnJlYWs7
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRp
YToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8UGFpbnRGcmFtZUZvck1lZGlhPigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggODM5NGJkMzgyZjkyNTViMzk0MzQyM2QxOTNh
MDA5Y2M3OGE1ODU4NS4uMGIwMTcyOGZlNTU4ZTJiYmIwNWIxZjM0NDg5NzhhNGE5OGE5ZmU0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0yMDc5LDYgKzIwNzksMzAgQEAg
T3B0aW9uYWw8UHV0UGl4ZWxCdWZmZXI+IFB1dFBpeGVsQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICByZXR1cm4ge3sgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCAqc3JjUmVjdCwg
KmRlc3RQb2ludCwgKmRlc3RGb3JtYXQgfX07CiB9CiAKK2NsYXNzIFB1dEltYWdlQnVmZmVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5
cGU6OlB1dEltYWdlQnVmZmVyOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0
ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1
ZTsKKworICAgIFB1dEltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQpCisgICAgICAgIDog
bV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICAgICAs
IG1fZGVzdFBvaW50KGRlc3RQb2ludCkKKyAgICB7CisgICAgfQorCisgICAgUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2VCdWZmZXJJZGVudGlmaWVyOyB9CisgICAgSW50UG9pbnQgZGVzdFBvaW50KCkgY29uc3Qg
eyByZXR1cm4gbV9kZXN0UG9pbnQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlQnVmZmVySWRlbnRpZmllci5pc1ZhbGlkKCk7IH0KKworICAgIE9wdGlvbmFsPEZs
b2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9Cisg
ICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQm
KSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgSW50UG9p
bnQgbV9kZXN0UG9pbnQ7Cit9OworCiAjaWYgRU5BQkxFKFZJREVPKQogY2xhc3MgUGFpbnRGcmFt
ZUZvck1lZGlhIHsKIHB1YmxpYzoKQEAgLTI1MDksNiArMjUzMyw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIs
CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlciwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyLAorICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXIsCiAjaWYgRU5BQkxF
KFZJREVPKQogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZv
ck1lZGlhLAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
aW5kZXggODJiMmM3YWI2NTEzODIxMGJmM2I2NTRlNTkyZWQzMDcxZTRmODEwYS4uOGQ3ODA2Yjcz
Mzc0NjRlMWQyMDdlODk1NWI3NDYxYjFkYTk5N2Y5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmNwcApAQCAtNzEsMTEgKzcxLDE2IEBAIHZvaWQgUmVjb3JkZXI6Omdl
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0
IEludFJlCiAgICAgYXBwZW5kPEdldFBpeGVsQnVmZmVyPihvdXRwdXRGb3JtYXQsIHNvdXJjZVJl
Y3QpOwogfQogCi12b2lkIFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQ
aXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3ZvaWQgUmVjb3JkZXI6OnB1dFBpeGVsQnVmZmVyKGNv
bnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KQogewogICAgIGFwcGVuZDxQdXRQaXhlbEJ1ZmZlcj4ocGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRl
c3RQb2ludCwgZGVzdEZvcm1hdCk7CiB9CiAKK3ZvaWQgUmVjb3JkZXI6OnB1dEltYWdlQnVmZmVy
KFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3VyY2VJbWFnZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQ
b2ludCkKK3sKKyAgICBhcHBlbmQ8UHV0SW1hZ2VCdWZmZXI+KHNvdXJjZUltYWdlLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UG9pbnQpOworfQorCiBzdGF0aWMgYm9vbCBjb250
YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFu
Z2UmIGNoYW5nZXMsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGNoYW5n
ZUZsYWdzKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgaW5saW5lU3RhdGVDaGFuZ2VGbGFncyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2MWJmNzlkNDgwOGRhNjBjYmE5NWE0MzAxMzYwMDVk
ZjZhYTRmMGMzLi5lNWFjM2Q1YTc2YTVjMDI0NjFjOTQyYmVmM2ZmNWMyNjU2Y2NmZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhl
bEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHB1dEltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb2ludCk7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlM
aXN0LmlzRW1wdHkoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA4OGEzNmE0MTAyNmJk
M2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5Li41MDZjYmFmMzZmMGExY2I0OTc5NWYyNjkxYjhk
ZDU0N2ZiNTYyY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9p
ZCBTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIGlmICghcmVzdWx0
SW1hZ2UgfHwgIXNvdXJjZUltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXN1bHRJbWFn
ZS0+Y29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UsIEludFBvaW50KCkpOwor
ICAgIHJlc3VsdEltYWdlLT5wdXRJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UsIEludFBvaW50KCkp
OwogfQogCiBUZXh0U3RyZWFtJiBTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4
IGU5MGIzMTFiNzE1NWU0Njg0NDU2ZGJhZDJiMThjMzQ2NzA4YTgyNWUuLjhkNDQ0NDNmODA2ZWVk
MjQ4MTAyZDA5ZWY3MTQ4NTdhYzI5ZTVkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC00Miw2ICs0Miw3IEBA
IGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VC
dWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsCiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2Vu
ZDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0UGl4ZWxCdWZmZXI7Cisg
ICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlQnVmZmVyOwogCiBwdWJs
aWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAt
ODksNiArOTAsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAKKyAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdl
QnVmZmVyPigpKSB7CisgICAgICAgICAgICBhdXRvJiBwdXRJbWFnZUJ1ZmZlckl0ZW0gPSBpdGVt
LmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI+KCk7CisgICAgICAgICAg
ICBhdXRvIHNvdXJjZUltYWdlID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbW90ZVJlc291
cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcihwdXRJbWFnZUJ1ZmZlckl0ZW0uaW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgaWYgKCFzb3VyY2VJbWFnZSkgeworICAgICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1dEltYWdlQnVmZmVyKCpzb3VyY2VJ
bWFnZSwgcHV0SW1hZ2VCdWZmZXJJdGVtLmRlc3RQb2ludCgpKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkZsdXNoQ29udGV4dD4oKSkgewogICAgICAgICAgICAgQmFzZUNvbmNyZXRlSW1hZ2VC
dWZmZXI6OmZsdXNoQ29udGV4dCgpOwogICAgICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gaXRl
bS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dD4oKS5pZGVudGlmaWVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZDM0NDVmZWE3MmQ1ZGMzZTFkYzMzNTYxYjgx
MTIzOWZlMDEzZmQ2Ni4uMzEzZDA5MWI4NTVjMzBkMzQ0MWE1YjViOTI4MDdkZDQxY2RlNzA1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNTY4LDYgKzU2OCw3IEBAIE9wdGlvbmFsPERp
c3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6ZGVjCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAjZW5kaWYKKyAgICBjYXNlIERpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlJlc3RvcmU6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJvdGF0ZToKICAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKaW5kZXggMTIzZDUzOWM4MmE0NjUyM2U2ZWE4OGMwOTRjY2Q5YzFiN2ZiOWNjNi4uMjY4
ZDlhNWMyZDQ3ZDUwNjRiMjM2Yjc1YjIwOWJlNDFmOWFhNmNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKQEAgLTIyOSw2ICsyMjksMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Ry
YXdpbmdDb250ZXh0LnJlY29yZGVyKCkucHV0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNyY1Jl
Y3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFnZUJ1
ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBkZXN0UG9pbnQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAoaXNDYWNoZWRJ
bWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSkpCisgICAgICAgICAgICBtX2RyYXdpbmdDb250ZXh0LnJl
Y29yZGVyKCkucHV0SW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIGRlc3RQb2ludCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1
ZmZlcihzb3VyY2VJbWFnZSwgZGVzdFBvaW50KTsKKyAgICB9CisKICAgICBib29sIHByZWZlcnNQ
cmVwYXJhdGlvbkZvckRpc3BsYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430110</attachid>
            <date>2021-05-29 14:06:51 -0700</date>
            <delta_ts>2021-05-29 14:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210529140650.patch</filename>
            <type>text/plain</type>
            <size>58093</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uNWMyOTI5YzdiZmRmMjM3MDNkMmUzMjk5NWUyNWZi
ZTg5Nzg3MTUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIxLTA1LTI5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRQ
aXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRQaXhlbEJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VCdWZmZXIpOgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIEEgbmV3IGZ1bmN0
aW9uIHdoaWNoIGNvcGllcyBwaXhlbHMgYmV0d2VlbiB0d28gSW1hZ2VCdWZmZXIgYmFja2VuZHMu
IFRoZXkKKyAgICAgICAgbWF5IGRpZmZlciBpbiB0aGUgcGl4ZWwgZm9ybWF0IG9yIHRoZSBjb2xv
ciBTcGFjZS4gQnV0IHRoZXkgaGF2ZSB0byBhZ3JlZQorICAgICAgICBpbiB0aGUgc2NhbGUgcmVz
b2x1dGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVy
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW1hZ2VQaXhlbHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaDoKKyAgICAgICAgV2Ug
aGF2ZSB0byB1c2UgY29udmVydEltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQoKSBpZiB3ZSBhcmUgY29w
eWluZyBiZXR3ZWVuCisgICAgICAgIGRpZmZlcmVudCBjb2xvciBzcGFjZXMgc2luY2UgdGhlIG5v
bi1hY2NlbGVyYXRlZCBwYXRoIGRvZXMgbm90IHN1cHBvcnQgaXQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMg
ZnJvbSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBiYWNrZW5kcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxCdWZmZXI6OlB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRQaXhlbEJ1ZmZlcjo6c3dhcCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpHZXRQaXhlbEJ1ZmZlcjo6R2V0UGl4ZWxCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkdldFBpeGVsQnVmZmVyOjpzb3VyY2VS
ZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpHZXRQaXhlbEJ1ZmZl
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpHZXRQaXhl
bEJ1ZmZlcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRQaXhl
bEJ1ZmZlcjo6c291cmNlUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UHV0UGl4ZWxCdWZmZXI6OmRlc3RpbmF0aW9uUG9pbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjpkZXN0aW5hdGlvbkZvcm1hdCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxCdWZmZXI6Omdsb2Jh
bEJvdW5kcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxC
dWZmZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0
UGl4ZWxCdWZmZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0
SW1hZ2VCdWZmZXI6OlB1dEltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpQdXRJbWFnZUJ1ZmZlcjo6aW1hZ2VCdWZmZXJJZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZUJ1ZmZlcjo6c291cmNlUmVjdCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6OmRlc3Rp
bmF0aW9uUG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dElt
YWdlQnVmZmVyOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpQdXRJbWFnZUJ1ZmZlcjo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpQdXRJbWFnZUJ1ZmZlcjo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkdldFBpeGVsQnVmZmVyOjpzcmNSZWN0IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRQaXhlbEJ1ZmZlcjo6
c3JjUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UHV0UGl4ZWxCdWZmZXI6OmRlc3RQb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxCdWZmZXI6OmRlc3RGb3JtYXQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6
cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVy
OjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgQWRkIHRoZSBpdGVtIFB1dEltYWdl
QnVmZmVyIHdoaWNoIGNhbiBiZSB1c2VkIGlmIGJvdGggSW1hZ2VCdWZmZXJzIGFyZSAKKyAgICAg
ICAgcmVtb3RlLiBJbiB0aGlzIGNhc2Ugbm8gcmVhZC1iYWNrIGlzIHJlcXVpcmVkLiBDb3B5aW5n
IHRoZSBwaXhlbHMgd2lsbAorICAgICAgICBoYXBwZW4gaW4gR1BVUC4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICBVcyB0
aGUgbmV3IGZ1bmN0aW9uIHRvIGNvcHkgdGhlIEZpbHRlciBpbnB1dCBJbWFnZUJ1ZmZlciB0byBp
dHMKKyAgICAgICAgU291cmNlR3JhcGhpYy4KKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9w
dGlvbmFsIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjc2MGQ2NDdkNjljZjEyNmE0YjQwMjAwODMxYTM3NmU2YTI2NmUxMC4uMmEz
YzEyN2I4ZmFlNzU3M2Q2ZmZmMWYwOWExNWI5MDk1YTIxNjMzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAyMS0wNS0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBNYWtlIEltYWdlQnVmZmVyIGJlIGFibGUgdG8gcHV0IHBpeGVscyBkaXJlY3Rs
eSBpbnRvIGl0cyBiYWNrZW5kIGZyb20gYW5vdGhlciBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0dGluZyBhbiBJbWFnZUJ1ZmZl
ciBpbnRvIGFub3RoZXIgc2hvdWxkIGhhdmUgYSBzcGVjaWFsIGNhc2UgaWYgdGhleSAKKyAgICAg
ICAgYXJlIGJvdGggcmVtb3RlIEltYWdlQnVmZmVycy4gUmVhZC1iYWNrIHNob3VsZCBiZSBhdm9p
ZGVkIGluIHRoaXMgY2FzZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpkZWNvZGVJdGVtKToKKyAgICAgICAgQWRkIGEgc3BlY2lhbCBjYXNlIGZvciByZXBsYXlpbmcg
YmFjayB0aGUgaXRlbSBQdXRJbWFnZUJ1ZmZlciBpbiAKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZm
ZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29weUlt
YWdlUGl4ZWxzVG8gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAg
ICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMgZnJvbSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlv
biBiYWNrZW5kcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94
eTo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICBEZWNpZGUgd2hldGhlciByZWFkLWJhY2sgc2hv
dWxkIGJlIGF2b2lkZWQgaW4gb3IgdGhlIHJlbW90ZSBJbWFnZUJ1ZmZlcgorICAgICAgICBvciBu
b3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpj
b3B5SW1hZ2VQaXhlbHNGcm9tKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMS0wNS0y
NyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRv
d2FyZCB1c2luZyBzdGQ6Om9wdGlvbmFsIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6
Ok9wdGlvbmFsIHR5cGVkZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCBlYzJkYTAyMzkyZjBhYzljYjg0NGRk
NDRjMmZiYmFkYjc1YTY4NTk1Li5mYmQ0ZTkwOTdmNjhmYTAyNTg3ZWU2MDQyZTA4MzcyNmIxNTFl
YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29u
Y3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0yMjIsMjMgKzIyMiwzNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IElu
dFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRlCisgICAgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+
IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBp
ZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkpIHsKICAgICAgICAgICAg
IGNvbnN0X2Nhc3Q8Q29uY3JldGVJbWFnZUJ1ZmZlciY+KCp0aGlzKS5mbHVzaENvbnRleHQoKTsK
LSAgICAgICAgICAgIHJldHVybiBiYWNrZW5kLT5nZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQs
IHNyY1JlY3QpOworICAgICAgICAgICAgcmV0dXJuIGJhY2tlbmQtPmdldFBpeGVsQnVmZmVyKG91
dHB1dEZvcm1hdCwgc291cmNlUmVjdCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKLSAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCA9IHsgfSwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0ID0gQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkgb3ZlcnJpZGUKKyAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQgPSB7IH0sIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQgPSBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uOjpQcmVtdWx0aXBsaWVkKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1dG8q
IGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAgICAgICAgICBmbHVzaENv
bnRleHQoKTsKLSAgICAgICAgICAgIGJhY2tlbmQtPnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVy
LCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOworICAgICAgICAgICAgYmFja2VuZC0+
cHV0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQs
IGRlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgcHV0SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImIHNvdXJjZUltYWdlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIGlmIChyZXNvbHV0aW9uU2NhbGUoKSAhPSBzb3VyY2VJbWFnZS5yZXNvbHV0aW9uU2Nh
bGUoKSkgeworICAgICAgICAgICAgY29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcihzb3VyY2VJbWFn
ZSwgRmxvYXRSZWN0IHsgZGVzdGluYXRpb25Qb2ludCwgc291cmNlSW1hZ2UubG9naWNhbFNpemUo
KSB9ICwgRmxvYXRSZWN0KHNvdXJjZVJlY3QpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpOwor
ICAgICAgICBhdXRvKiBzb3VyY2VCYWNrZW5kID0gc291cmNlSW1hZ2UuZW5zdXJlQmFja2VuZENy
ZWF0ZWQoKTsKKyAgICAgICAgaWYgKGJhY2tlbmQgJiYgc291cmNlQmFja2VuZCkKKyAgICAgICAg
ICAgIHNvdXJjZUJhY2tlbmQtPmNvcHlJbWFnZVBpeGVsc1RvKCpiYWNrZW5kLCBzb3VyY2VSZWN0
LCBkZXN0aW5hdGlvblBvaW50KTsKKyAgICB9CisKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhdXRvKiBiYWNrZW5k
ID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDY0ZWE0ODM3MjY5NmRhZTkwNTBiYTA0MTI1YWMy
MGZhMDRlMDBiOWMuLjI4MGE0MTgyODQxMjJhMDA5NTBiOTBmNjUwYjhmOTNlNDg2YWExMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAt
MTI1LDggKzEyNSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB0b0RhdGFVUkwoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5ID0gc3RkOjpudWxs
b3B0LCBQcmVzZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSA9IHN0ZDo6bnVsbG9wdCkgY29uc3QgPSAw
OwogCi0gICAgdmlydHVhbCBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVj
dCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhl
bEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9p
bnQgPSB7IH0sIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9IEFscGhhUHJlbXVs
dGlwbGljYXRpb246OlByZW11bHRpcGxpZWQpID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPFBp
eGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0
Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQgPSB7IH0sIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQgPSBBbHBoYVByZW11bHRpcGxpY2F0
aW9uOjpQcmVtdWx0aXBsaWVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHB1dEltYWdlQnVmZmVy
KEltYWdlQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RpbmF0aW9uUG9pbnQgPSB7IH0pID0gMDsKIAogICAgIC8vIEZJWE1FOiBjdXJyZW50IGlt
cGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlvbiB0aGF0IHRo
ZXkgb25seSB3b3JrCiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFyZSBSR0Igb3IgUkdCQSBm
b3JtYXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAppbmRleCA0M2Y1MmJk
NGJkODlkNTE2OTUzN2NiOTRjYzg1ZTA1MjljZWY4YzM1Li4zNzE5ZjhmM2ZmYjAzYWNmYzA3NzZh
MmVlZmY0MWYyNDI2MTM2MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKQEAgLTE2Niw0ICsxNjYsMzkgQEAg
dm9pZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiBzb3VyY2VQaXhlbEJ1ZmZlciwgY28KICAgICBjb252ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBk
ZXN0aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZm
ZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYg
c291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRhdGEpCit7
CisgICAgQVNTRVJUKHNvdXJjZUJhY2tlbmQucmVzb2x1dGlvblNjYWxlKCkgPT0gcmVzb2x1dGlv
blNjYWxlKCkpOworCisgICAgYXV0byBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRp
bmF0ZXMoc291cmNlUmVjdCk7CisgICAgYXV0byBkZXN0aW5hdGlvblBvaW50U2NhbGVkID0gdG9C
YWNrZW5kQ29vcmRpbmF0ZXMoZGVzdGluYXRpb25Qb2ludCk7CisKKyAgICBhdXRvIHNvdXJjZVJl
Y3RDbGlwcGVkID0gaW50ZXJzZWN0aW9uKHsgSW50UG9pbnQ6Onplcm8oKSwgc291cmNlQmFja2Vu
ZC5iYWNrZW5kU2l6ZSgpIH0sIHNvdXJjZVJlY3RTY2FsZWQpOworICAgIGF1dG8gZGVzdGluYXRp
b25SZWN0ID0gc291cmNlUmVjdENsaXBwZWQ7CisgICAgZGVzdGluYXRpb25SZWN0Lm1vdmVCeShk
ZXN0aW5hdGlvblBvaW50U2NhbGVkKTsKKworICAgIGlmIChzb3VyY2VSZWN0U2NhbGVkLngoKSA8
IDApCisgICAgICAgIGRlc3RpbmF0aW9uUmVjdC5zZXRYKGRlc3RpbmF0aW9uUmVjdC54KCkgLSBz
b3VyY2VSZWN0U2NhbGVkLngoKSk7CisKKyAgICBpZiAoc291cmNlUmVjdFNjYWxlZC55KCkgPCAw
KQorICAgICAgICBkZXN0aW5hdGlvblJlY3Quc2V0WShkZXN0aW5hdGlvblJlY3QueSgpIC0gc291
cmNlUmVjdFNjYWxlZC55KCkpOworCisgICAgZGVzdGluYXRpb25SZWN0LmludGVyc2VjdChiYWNr
ZW5kUmVjdCgpKTsKKyAgICBzb3VyY2VSZWN0Q2xpcHBlZC5zZXRTaXplKGRlc3RpbmF0aW9uUmVj
dC5zaXplKCkpOworCisgICAgQ29uc3RQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IHNvdXJjZSB7
CisgICAgICAgIHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgc291cmNl
QmFja2VuZC5waXhlbEZvcm1hdCgpLCBzb3VyY2VCYWNrZW5kLmNvbG9yU3BhY2UoKSB9LAorICAg
ICAgICBzb3VyY2VCYWNrZW5kLmJ5dGVzUGVyUm93KCksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpICsgc291cmNlUmVjdENsaXBwZWQueSgpICog
c291cmNlLmJ5dGVzUGVyUm93ICsgc291cmNlUmVjdENsaXBwZWQueCgpICogNAorICAgIH07CisK
KyAgICBQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IGRlc3RpbmF0aW9uIHsKKyAgICAgICAgeyBB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBjb2xv
clNwYWNlKCkgfSwKKyAgICAgICAgYnl0ZXNQZXJSb3coKSwKKyAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVzdGluYXRpb24u
Ynl0ZXNQZXJSb3cgKyBkZXN0aW5hdGlvblJlY3QueCgpICogNAorICAgIH07CisKKyAgICBjb252
ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUo
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggZTczYTJhOWYz
YmJiZTA1YjgxOTM2YjY4ZDkxN2IxMWNhZGRjMWFiMC4uZGE0ZTZmNTAyOWRmMjk2YzU1MGQ5MGUx
YTI0NDkyMjM1NTNmNjdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTEwNyw4ICsxMDcsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBP
cHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgVmVjdG9yPHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgT3B0
aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0
JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBk
ZXN0Rm9ybWF0KSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4
ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1
ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3Rp
bmF0aW9uRm9ybWF0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY29weUltYWdlUGl4ZWxzVG8o
SW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgSW1hZ2VCdWZmZXJCYWNr
ZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQ
b2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0YSkgPSAwOwogCiAg
ICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhp
Y3NDb250ZXh0R0wmLCBHQ0dMZW51bSwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIGJvb2ws
IGJvb2wpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xNDYsOCArMTQ5LDkgQEAgcHJvdGVj
dGVkOgogICAgIEludFJlY3QgbG9naWNhbFJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KElu
dFBvaW50Ojp6ZXJvKCksIGxvZ2ljYWxTaXplKCkpOyB9OwogICAgIEludFJlY3QgYmFja2VuZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXpl
KCkpOyB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IElu
dFJlY3QmIHNyY1JlY3QsIHZvaWQqIGRhdGEpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RGb3JtYXQsIHZvaWQqIGRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFBpeGVs
QnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9y
bWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCB2b2lkKiBkYXRhKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQs
IEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCwgdm9pZCogZGF0YSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFj
a2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRh
dGEpOwogCiAgICAgUGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5j
cHAKaW5kZXggOWFjZjMwNGQ3MTk5MjRlMWM5OTFlMzA1MTVmOTNhMzY1MzlhYjE1MS4uMzkyNzc3
OTI2MDMyODhhN2JiYmRlYzJjMGU2Mjk3MWNiYjc2MjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3Bw
CkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBjb252ZXJ0SW1hZ2VQaXhlbHMoY29uc3QgQ29uc3RQ
aXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3JiBzb3VyY2UsIGNvbnN0IFBpeGUKICAgICBBU1NFUlQo
ZGVzdGluYXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCBk
ZXN0aW5hdGlvbi5mb3JtYXQucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIAog
I2lmIFVTRShBQ0NFTEVSQVRFKSAmJiBVU0UoQ0cpCi0gICAgaWYgKHNvdXJjZS5mb3JtYXQuYWxw
aGFGb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LmFscGhhRm9ybWF0ICYmIHNvdXJjZS5mb3Jt
YXQucGl4ZWxGb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0KSB7CisgICAg
aWYgKHNvdXJjZS5mb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0KSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBDYW4gdGhlcyBib3RoIGp1c3QgdXNlIHBlci1yb3cgbWVtY3B5PwogICAgICAgICBpZiAo
c291cmNlLmZvcm1hdC5hbHBoYUZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVt
dWx0aXBsaWVkKQogICAgICAgICAgICAgY29udmVydEltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxj
b252ZXJ0U2luZ2xlUGl4ZWxQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkPFBpeGVsRm9ybWF0
Q29udmVyc2lvbjo6Tm9uZT4+KHNvdXJjZSwgZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uU2l6ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZl
ckZvcm1hdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZl
ckZvcm1hdC5jcHAKaW5kZXggZjk0ZGE1ZmI2MzEzODUxYjYwMjRjOTg3YmEwZTk1YzVkZjAyODE5
Yi4uNTFmN2VlZGY4MzFkOTU1MGI3YTdlNjgyZDg0NmI2NWQ5N2RjMTBkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0LmNw
cApAQCAtMzAsNiArMzAsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIG9wZXJh
dG9yPT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGEsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0
JiBiKQoreworICAgIHJldHVybiBhLmFscGhhRm9ybWF0ID09IGIuYWxwaGFGb3JtYXQgJiYgYS5w
aXhlbEZvcm1hdCA9PSBiLnBpeGVsRm9ybWF0ICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3Bh
Y2U7Cit9CisKK2Jvb2wgb3BlcmF0b3IhPShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgYSwgY29u
c3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwog
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGl4ZWxCdWZmZXJG
b3JtYXQmIHBpeGVsQnVmZmVyKQogewogICAgIHJldHVybiB0cyA8PCBwaXhlbEJ1ZmZlci5hbHBo
YUZvcm1hdCA8PCAnICcgPDwgcGl4ZWxCdWZmZXIucGl4ZWxGb3JtYXQgPDwgJyAnIDw8IHBpeGVs
QnVmZmVyLmNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaAppbmRleCA2MDgyZTViODQ2NDEwM2U1MWI0NGZlZGYw
YTdiYTZkZmQ1ODBiZmM3Li5mZTA0NDdkOWQwMjI4ZWYwODI5OTJlNGI0MzllMTAyNjliOWUyMTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZl
ckZvcm1hdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVm
ZmVyRm9ybWF0LmgKQEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IFBpeGVsQnVmZmVyRm9ybWF0IHsK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UGl4ZWxCdWZmZXJG
b3JtYXQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCitXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJh
dG9yPT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYp
OworV0VCQ09SRV9FWFBPUlQgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0
JiwgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmKTsKKwogV0VCQ09SRV9FWFBPUlQgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmKTsKIAog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBQaXhlbEJ1ZmZlckZvcm1hdDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAK
aW5kZXggNjg2NWYwYmQ0MWJiNDg0NjBkYmExZjRmNmJhNTgwNzg0Y2NhZWU2MS4uMGI2ODE0MmQ2
MmIyMGQ3ZTQ0MmRkMmU4Yzk5NjkwNzg4ZmFiY2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kLmNwcApAQCAtMTYzLDYgKzE2MywxNiBAQCB2b2lkIEltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIs
CiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3Jj
UmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0LCBtX2RhdGEpOwogfQogCit2b2lkIEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQm
IGRlc3RpbmF0aW9uQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0Cit7CisgICAgZGVzdGluYXRpb25CYWNrZW5k
LmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQs
IG1fZGF0YSk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNvcHlJbWFn
ZVBpeGVsc0Zyb20oY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwg
Y29uc3Qgdm9pZCogc291cmNlRGF0YSkKK3sKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJ
bWFnZVBpeGVsc0Zyb20oc291cmNlQmFja2VuZCwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2lu
dCwgc291cmNlRGF0YSwgbV9kYXRhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKaW5kZXggMDg5
NzNmMzgxODlhZTZiNjBmODI4MGQwMDMyNWRiYjQ4MGJhZTJmNC4uOTQwNjZmOWRkYTQwMmJhMDRm
MDRjMzE4NzNlN2JmY2JiZTA3YWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5o
CkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0
UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3Qg
UGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisg
ICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5k
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Q
b2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0
IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJj
ZURhdGEpIG92ZXJyaWRlOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRV
cHBlckxlZnRDb3JuZXIgPSB0cnVlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZC5jcHAKaW5kZXggMGM3MDZkMTgzMzk1ZDk1OTY4ZmJmYmZjNmM5NzQwOWZkNWI4
OTIyMy4uYTA2ZGNiYWE5ZTgwODI1ODhiMDc2MTI2NThiMzJmYmUzZjU5ZTMzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0xNzYsMTAgKzE3NiwxMCBAQCBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5Q0dJbWFn
ZUZvckVuY29kaW5nKENGU3RyaQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29w
eUNHSW1hZ2VGb3JFbmNvZGluZyhkZXN0aW5hdGlvblVUSSwgcHJlc2VydmVSZXNvbHV0aW9uKTsK
IH0KIAotT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6
Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKK09wdGlvbmFsPFBpeGVsQnVmZmVyPiBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9y
bWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpIGNvbnN0CiB7CiAg
ICAgSU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqbV9zdXJmYWNlKTsKLSAgICByZXR1cm4gSW1hZ2VC
dWZmZXJCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIGxvY2su
c3VyZmFjZUJhc2VBZGRyZXNzKCkpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmQ6Omdl
dFBpeGVsQnVmZmVyKG91dHB1dEZvcm1hdCwgc291cmNlUmVjdCwgbG9jay5zdXJmYWNlQmFzZUFk
ZHJlc3MoKSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpwdXRQaXhl
bEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24g
ZGVzdEZvcm1hdCkKQEAgLTE4OSw2ICsxODksMTkgQEAgdm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwK
ICAgICBtX3JlcXVpcmVzRHJhd0FmdGVyUHV0UGl4ZWxCdWZmZXIgPSB0cnVlOwogfQogCit2b2lk
IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZm
ZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAoreworICAgIElPU3VyZmFj
ZTo6TG9ja2VyIGxvY2soKm1fc3VyZmFjZSwgSU9TdXJmYWNlOjpMb2NrZXI6OkFjY2Vzc01vZGU6
OlJlYWRXcml0ZSk7CisgICAgZGVzdGluYXRpb25CYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20o
KnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIGxvY2suc3VyZmFjZUJhc2VBZGRy
ZXNzKCkpOworfQorCit2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdl
UGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBj
b25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIElPU3VyZmFjZTo6TG9ja2VyIGxvY2soKm1f
c3VyZmFjZSwgSU9TdXJmYWNlOjpMb2NrZXI6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSk7CisgICAg
SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKHNvdXJjZUJhY2tlbmQsIHNv
dXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZURhdGEsIGxvY2suc3VyZmFjZUJhc2VB
ZGRyZXNzKCkpOworICAgIG1fcmVxdWlyZXNEcmF3QWZ0ZXJQdXRQaXhlbEJ1ZmZlciA9IHRydWU7
Cit9CisKIElPU3VyZmFjZSogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpzdXJmYWNlKCkK
IHsKICAgICBmbHVzaENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgK
aW5kZXggZWU5ZGVmYzIwODQ3NWZiZmI4ZTUxYmI3YWZhNDcyZTg2NjdmODUzYy4uOTA3ZjdmZjhh
MmUzMTBmZjUzNWE3ODNiNzUwMjgyZmIzYjgzZDM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmgKQEAgLTYxLDggKzYxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdDb25z
dW1pbmcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogCiAKLSAgICBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4
ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJy
aWRlOwotICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOworICAgIE9wdGlvbmFsPFBpeGVsQnVmZmVy
PiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHB1dFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwg
Y29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24g
ZGVzdGluYXRpb25Gb3JtYXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNU
byhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291
cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBpc0luVXNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlR3JhcGhpY3ND
b250ZXh0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBhNmZiNjhm
ODk3MDc5ZjIyYjJlNjg2NzMxZGZmZjA4NDAzNmIyN2Y2Li4zMDc4ZGY2NWRiYWY3MzU5ZDgwYTdh
OWE1YzQ5NGY4YWI0ZjU3MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTI1Miw2
ICsyNTIsOCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAg
ICAgICByZXR1cm4gYXBwZW5kPERyYXdHbHlwaHM+KGl0ZW0uZ2V0PERyYXdHbHlwaHM+KCkpOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIGFwcGVu
ZDxEcmF3SW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKSk7CisgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8UHV0SW1h
Z2VCdWZmZXI+KGl0ZW0uZ2V0PFB1dEltYWdlQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpEcmF3TmF0aXZlSW1hZ2U6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8RHJhd05hdGl2ZUltYWdl
PihpdGVtLmdldDxEcmF3TmF0aXZlSW1hZ2U+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQ
YXR0ZXJuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRl
eCA3NjdhZTFjZTI3MDA1YjBmZGQzNTdkMTlmYjdmODhjMzc2MTY3ZWRkLi4xZWRmMjI0MTBjYjk2
OGZiZWRhYjg4MGZiZDc0MDU0NjM5ZmMwNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTkwLDYgKzE5MCw3IEBAIHZvaWQgSXRlbUhhbmRsZTo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxC
dWZmZXI6CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgICAgIC8vIFNo
b3VsZCBhbHJlYWR5IGJlIGhhbmRsZWQgYnkgdGhlIGRlbGVnYXRlLgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjg2LDYgKzI4Nyw5IEBAIHZvaWQg
SXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6
CiAgICAgICAgIGdldDxQdXRQaXhlbEJ1ZmZlcj4oKS5+UHV0UGl4ZWxCdWZmZXIoKTsKICAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICBn
ZXQ8UHV0SW1hZ2VCdWZmZXI+KCkuflB1dEltYWdlQnVmZmVyKCk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAgICAgZ2V0PFNldExpbmVEYXNo
PigpLn5TZXRMaW5lRGFzaCgpOwogICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTEyLDggQEAg
Ym9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtVHlwZSBpdGVtVHlwZSwgSXRlbUhhbmRsZSBk
ZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEdldFBpeGVsQnVmZmVy
PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6
CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxQdXRQaXhlbEJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRo
aXMpOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4g
Y29weUludG88UHV0SW1hZ2VCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVEYXNo
PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggMDM4MTNiODM4OGIwMjM4
YThlNzY3MjkwNzhiNWEyMjNkYzEzMzJlYi4uNmM1NTkxMzY5YjIzMDMzMDgxYzUyODIyMzNiYzBk
YTZhOWE2MzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApA
QCAtMTM2LDYgKzEzNiw4IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5
cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihHZXRQaXhlbEJ1ZmZlcik7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIHJldHVybiBzaXplb2YoUHV0UGl4
ZWxCdWZmZXIpOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgorICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFB1dEltYWdlQnVmZmVyKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFBh
aW50RnJhbWVGb3JNZWRpYSk7CkBAIC0yNDEsNiArMjQzLDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVt
KEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgog
I2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CisgICAgY2FzZSBJdGVt
VHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToK
ICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VJ
bmxpbmVQYXRoOgpAQCAtMzMzLDYgKzMzNiw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBl
IHR5cGUpCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVG
b3JNZWRpYToKICNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgogICAg
IGNhc2UgSXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6Um90YXRlOgogICAg
IGNhc2UgSXRlbVR5cGU6OlNhdmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aAppbmRleCBjM2UxY2VjZjBlYzRiZGQ1NTU5MTY3N2FhNDBhYWVkZDYyNzAyMjliLi44NmFiZDFi
MTA0Mjg2ZWQ3MTg1NDA3YTQ3OTkyZTI3MjdmZjZjNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTgxLDYgKzgxLDcgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6
IHVpbnQ4X3QgewogICAgIE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlciwKICAgICBHZXRQaXhl
bEJ1ZmZlciwKICAgICBQdXRQaXhlbEJ1ZmZlciwKKyAgICBQdXRJbWFnZUJ1ZmZlciwKICNpZiBF
TkFCTEUoVklERU8pCiAgICAgUGFpbnRGcmFtZUZvck1lZGlhLAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZjIyMmUyMTgzYTM5MTAzYmQ2OTg1MzQ0NjRk
ZjNjYjBhOGZmOTA3ZS4uMGQwZmE1YzkxMWYyN2FjMDUyZWI4NWRmZDU4YWI3NDQ1MmQ3NmQ0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtNzg3LDMxICs3ODcsMzEg
QEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZp
bGxFbGxpcHNlJiBpdGVtKQogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEdldFBpeGVsQnVmZmVyJiBpdGVtKQogewogICAgIHRzLmR1bXBQcm9wZXJ0
eSgib3V0cHV0Rm9ybWF0IiwgaXRlbS5vdXRwdXRGb3JtYXQoKSk7Ci0gICAgdHMuZHVtcFByb3Bl
cnR5KCJzcmNSZWN0IiwgaXRlbS5zcmNSZWN0KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgic291
cmNlUmVjdCIsIGl0ZW0uc291cmNlUmVjdCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKLVB1dFBp
eGVsQnVmZmVyOjpQdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKLSAgICA6IG1fc3JjUmVjdChzcmNSZWN0KQot
ICAgICwgbV9kZXN0UG9pbnQoZGVzdFBvaW50KQorUHV0UGl4ZWxCdWZmZXI6OlB1dFBpeGVsQnVm
ZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gZGVzdGluYXRpb25Gb3JtYXQpCisgICAgOiBtX3NvdXJjZVJlY3Qoc291cmNlUmVjdCkK
KyAgICAsIG1fZGVzdGluYXRpb25Qb2ludChkZXN0aW5hdGlvblBvaW50KQogICAgICwgbV9waXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlci5kZWVwQ2xvbmUoKSkgLy8gVGhpcyBjb3B5IGlzIGFjdHVhbGx5
IHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBzZW1hbnRpY3Mgb2YgcHV0UGl4ZWxCdWZmZXIoKS4K
LSAgICAsIG1fZGVzdEZvcm1hdChkZXN0Rm9ybWF0KQorICAgICwgbV9kZXN0aW5hdGlvbkZvcm1h
dChkZXN0aW5hdGlvbkZvcm1hdCkKIHsKIH0KIAotUHV0UGl4ZWxCdWZmZXI6OlB1dFBpeGVsQnVm
ZmVyKFBpeGVsQnVmZmVyJiYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1h
dCkKLSAgICA6IG1fc3JjUmVjdChzcmNSZWN0KQotICAgICwgbV9kZXN0UG9pbnQoZGVzdFBvaW50
KQorUHV0UGl4ZWxCdWZmZXI6OlB1dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVyJiYgcGl4ZWxCdWZm
ZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlv
blBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9ybWF0KQorICAgIDog
bV9zb3VyY2VSZWN0KHNvdXJjZVJlY3QpCisgICAgLCBtX2Rlc3RpbmF0aW9uUG9pbnQoZGVzdGlu
YXRpb25Qb2ludCkKICAgICAsIG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCi0g
ICAgLCBtX2Rlc3RGb3JtYXQoZGVzdEZvcm1hdCkKKyAgICAsIG1fZGVzdGluYXRpb25Gb3JtYXQo
ZGVzdGluYXRpb25Gb3JtYXQpCiB7CiB9CiAKIFB1dFBpeGVsQnVmZmVyOjpQdXRQaXhlbEJ1ZmZl
cihjb25zdCBQdXRQaXhlbEJ1ZmZlciYgb3RoZXIpCi0gICAgOiBtX3NyY1JlY3Qob3RoZXIubV9z
cmNSZWN0KQotICAgICwgbV9kZXN0UG9pbnQob3RoZXIubV9kZXN0UG9pbnQpCisgICAgOiBtX3Nv
dXJjZVJlY3Qob3RoZXIubV9zb3VyY2VSZWN0KQorICAgICwgbV9kZXN0aW5hdGlvblBvaW50KG90
aGVyLm1fZGVzdGluYXRpb25Qb2ludCkKICAgICAsIG1fcGl4ZWxCdWZmZXIob3RoZXIubV9waXhl
bEJ1ZmZlci5kZWVwQ2xvbmUoKSkKLSAgICAsIG1fZGVzdEZvcm1hdChvdGhlci5tX2Rlc3RGb3Jt
YXQpCisgICAgLCBtX2Rlc3RpbmF0aW9uRm9ybWF0KG90aGVyLm1fZGVzdGluYXRpb25Gb3JtYXQp
CiB7CiB9CiAKQEAgLTgyNCwxOCArODI0LDI1IEBAIFB1dFBpeGVsQnVmZmVyJiBQdXRQaXhlbEJ1
ZmZlcjo6b3BlcmF0b3I9KGNvbnN0IFB1dFBpeGVsQnVmZmVyJiBvdGhlcikKIAogdm9pZCBQdXRQ
aXhlbEJ1ZmZlcjo6c3dhcChQdXRQaXhlbEJ1ZmZlciYgb3RoZXIpCiB7Ci0gICAgc3RkOjpzd2Fw
KG1fc3JjUmVjdCwgb3RoZXIubV9zcmNSZWN0KTsKLSAgICBzdGQ6OnN3YXAobV9kZXN0UG9pbnQs
IG90aGVyLm1fZGVzdFBvaW50KTsKKyAgICBzdGQ6OnN3YXAobV9zb3VyY2VSZWN0LCBvdGhlci5t
X3NvdXJjZVJlY3QpOworICAgIHN0ZDo6c3dhcChtX2Rlc3RpbmF0aW9uUG9pbnQsIG90aGVyLm1f
ZGVzdGluYXRpb25Qb2ludCk7CiAgICAgc3RkOjpzd2FwKG1fcGl4ZWxCdWZmZXIsIG90aGVyLm1f
cGl4ZWxCdWZmZXIpOwotICAgIHN0ZDo6c3dhcChtX2Rlc3RGb3JtYXQsIG90aGVyLm1fZGVzdEZv
cm1hdCk7CisgICAgc3RkOjpzd2FwKG1fZGVzdGluYXRpb25Gb3JtYXQsIG90aGVyLm1fZGVzdGlu
YXRpb25Gb3JtYXQpOwogfQogCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUHV0UGl4ZWxCdWZmZXImIGl0ZW0pCiB7CiAgICAgdHMuZHVtcFByb3Bl
cnR5KCJwaXhlbEJ1ZmZlclNpemUiLCBpdGVtLnBpeGVsQnVmZmVyKCkuc2l6ZSgpKTsKLSAgICB0
cy5kdW1wUHJvcGVydHkoInNyY1JlY3QiLCBpdGVtLnNyY1JlY3QoKSk7Ci0gICAgdHMuZHVtcFBy
b3BlcnR5KCJkZXN0UG9pbnQiLCBpdGVtLmRlc3RQb2ludCgpKTsKLSAgICB0cy5kdW1wUHJvcGVy
dHkoImRlc3RGb3JtYXQiLCBpdGVtLmRlc3RGb3JtYXQoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5
KCJzb3VyY2VSZWN0IiwgaXRlbS5zb3VyY2VSZWN0KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgi
ZGVzdGluYXRpb25Qb2ludCIsIGl0ZW0uZGVzdGluYXRpb25Qb2ludCgpKTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoImRlc3RpbmF0aW9uRm9ybWF0IiwgaXRlbS5kZXN0aW5hdGlvbkZvcm1hdCgpKTsK
KyAgICByZXR1cm4gdHM7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBQdXRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJv
cGVydHkoInNvdXJjZVJlY3QiLCBpdGVtLnNvdXJjZVJlY3QoKSk7CisgICAgdHMuZHVtcFByb3Bl
cnR5KCJkZXN0aW5hdGlvblBvaW50IiwgaXRlbS5kZXN0aW5hdGlvblBvaW50KCkpOwogICAgIHJl
dHVybiB0czsKIH0KIApAQCAtMTEwMSw2ICsxMTA4LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlw
ZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOiB0cyA8PCAibWV0YS1jb21tYW5kLWNoYW5n
ZS1pdGVtLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkdldFBpeGVsQnVmZmVy
OiB0cyA8PCAiZ2V0LXBpeGVsLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlB1
dFBpeGVsQnVmZmVyOiB0cyA8PCAicHV0LXBpeGVsLWJ1ZmZlciI7IGJyZWFrOworICAgIGNhc2Ug
SXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOiB0cyA8PCAicHV0LWltYWdlLWJ1ZmZlciI7IGJyZWFr
OwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVk
aWE6IHRzIDw8ICJwYWludC1mcmFtZS1mb3ItbWVkaWEiOyBicmVhazsKICNlbmRpZgpAQCAtMTI3
Miw2ICsxMjgwLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRl
bUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyOgogICAgICAg
ICB0cyA8PCBpdGVtLmdldDxQdXRQaXhlbEJ1ZmZlcj4oKTsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFB1
dEltYWdlQnVmZmVyPigpOworICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
Y2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICB0cyA8PCBpdGVtLmdl
dDxQYWludEZyYW1lRm9yTWVkaWE+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApp
bmRleCA4Mzk0YmQzODJmOTI1NWIzOTQzNDIzZDE5M2EwMDljYzc4YTU4NTg1Li5jOTgwMjYyMDEx
YmZlMjM3MjA0OWNiOTljMGEyYjljYzJkMWY1ZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKQEAgLTE5NjQsOCArMTk2NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAotICAgIEdldFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVy
Rm9ybWF0IG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkKLSAgICAgICAgOiBt
X3NyY1JlY3Qoc3JjUmVjdCkKKyAgICBHZXRQaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlckZvcm1hdCBv
dXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpCisgICAgICAgIDogbV9zb3Vy
Y2VSZWN0KHNvdXJjZVJlY3QpCiAgICAgICAgICwgbV9vdXRwdXRGb3JtYXQoV1RGTW92ZShvdXRw
dXRGb3JtYXQpKQogICAgIHsKICAgICB9CkBAIC0xOTc2LDI5ICsxOTc2LDI5IEBAIHB1YmxpYzoK
ICAgICB+R2V0UGl4ZWxCdWZmZXIoKSB7IH0KIAogICAgIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0
JiBvdXRwdXRGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX291dHB1dEZvcm1hdDsgfQotICAgIElu
dFJlY3Qgc3JjUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQorICAgIEludFJlY3Qg
c291cmNlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlUmVjdDsgfQogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHZXRQaXhlbEJ1ZmZlcj4gZGVjb2Rl
KERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBJbnRSZWN0IG1fc3JjUmVjdDsKKyAgICBJbnRS
ZWN0IG1fc291cmNlUmVjdDsKICAgICBQaXhlbEJ1ZmZlckZvcm1hdCBtX291dHB1dEZvcm1hdDsK
IH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIEdldFBpeGVsQnVmZmVyOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IG1fc3JjUmVjdDsK
KyAgICBlbmNvZGVyIDw8IG1fc291cmNlUmVjdDsKICAgICBlbmNvZGVyIDw8IG1fb3V0cHV0Rm9y
bWF0OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogT3B0aW9uYWw8R2V0UGl4ZWxCdWZm
ZXI+IEdldFBpeGVsQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBPcHRp
b25hbDxJbnRSZWN0PiBzcmNSZWN0OwotICAgIGRlY29kZXIgPj4gc3JjUmVjdDsKLSAgICBpZiAo
IXNyY1JlY3QpCisgICAgT3B0aW9uYWw8SW50UmVjdD4gc291cmNlUmVjdDsKKyAgICBkZWNvZGVy
ID4+IHNvdXJjZVJlY3Q7CisgICAgaWYgKCFzb3VyY2VSZWN0KQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8UGl4ZWxCdWZmZXJGb3JtYXQ+IG91dHB1dEZvcm1h
dDsKQEAgLTIwMDYsNyArMjAwNiw3IEBAIE9wdGlvbmFsPEdldFBpeGVsQnVmZmVyPiBHZXRQaXhl
bEJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFvdXRwdXRGb3JtYXQp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgq
b3V0cHV0Rm9ybWF0KSwgKnNyY1JlY3QgfX07CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKm91dHB1
dEZvcm1hdCksICpzb3VyY2VSZWN0IH19OwogfQogCiBjbGFzcyBQdXRQaXhlbEJ1ZmZlciB7CkBA
IC0yMDE1LDggKzIwMTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
SW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJ
dGVtID0gdHJ1ZTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVsQnVmZmVyKGNvbnN0IFBp
eGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQ
b2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBQdXRQaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlciYmLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RG
b3JtYXQpOworICAgIFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyJiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0
aW9uUG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpOworICAg
IFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVyJiYsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9ybWF0KTsKIAogICAgIFB1dFBpeGVsQnVmZmVy
KGNvbnN0IFB1dFBpeGVsQnVmZmVyJik7CiAgICAgUHV0UGl4ZWxCdWZmZXIoUHV0UGl4ZWxCdWZm
ZXImJikgPSBkZWZhdWx0OwpAQCAtMjAyNiw1OSArMjAyNiw4NiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzd2FwKFB1dFBpeGVsQnVmZmVyJik7CiAKICAgICBjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVyOyB9Ci0gICAgSW50UmVjdCBzcmNS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9Ci0gICAgSW50UG9pbnQgZGVzdFBvaW50
KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0UG9pbnQ7IH0KLSAgICBBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGRlc3RGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RGb3JtYXQ7IH0KKyAgICBJbnRS
ZWN0IHNvdXJjZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVJlY3Q7IH0KKyAgICBJbnRQ
b2ludCBkZXN0aW5hdGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblBvaW50
OyB9CisgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0aW5hdGlvbkZvcm1hdCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Gb3JtYXQ7IH0KIAogICAgIE9wdGlvbmFsPEZsb2F0UmVj
dD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25z
dCB7IHJldHVybiB7eyBtX2Rlc3RQb2ludCwgbV9zcmNSZWN0LnNpemUoKSB9fTsgfQorICAgIE9w
dGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4ge3sgbV9kZXN0
aW5hdGlvblBvaW50LCBtX3NvdXJjZVJlY3Quc2l6ZSgpIH19OyB9CiAKICAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFB1dFBpeGVsQnVmZmVyPiBkZWNvZGUoRGVj
b2RlciYpOwogCiBwcml2YXRlOgotICAgIEludFJlY3QgbV9zcmNSZWN0OwotICAgIEludFBvaW50
IG1fZGVzdFBvaW50OworICAgIEludFJlY3QgbV9zb3VyY2VSZWN0OworICAgIEludFBvaW50IG1f
ZGVzdGluYXRpb25Qb2ludDsKICAgICBQaXhlbEJ1ZmZlciBtX3BpeGVsQnVmZmVyOwotICAgIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24gbV9kZXN0Rm9ybWF0OworICAgIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gbV9kZXN0aW5hdGlvbkZvcm1hdDsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CiB2b2lkIFB1dFBpeGVsQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
ICAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7Ci0gICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7
Ci0gICAgZW5jb2RlciA8PCBtX2Rlc3RQb2ludDsKLSAgICBlbmNvZGVyIDw8IG1fZGVzdEZvcm1h
dDsKKyAgICBlbmNvZGVyIDw8IG1fc291cmNlUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGlu
YXRpb25Qb2ludDsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25Gb3JtYXQ7CiB9CiAKIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+CiBPcHRpb25hbDxQdXRQaXhlbEJ1ZmZlcj4gUHV0UGl4ZWxC
dWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIE9wdGlvbmFsPFBpeGVsQnVm
ZmVyPiBwaXhlbEJ1ZmZlcjsKLSAgICBPcHRpb25hbDxJbnRSZWN0PiBzcmNSZWN0OwotICAgIE9w
dGlvbmFsPEludFBvaW50PiBkZXN0UG9pbnQ7Ci0gICAgT3B0aW9uYWw8QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbj4gZGVzdEZvcm1hdDsKKyAgICBPcHRpb25hbDxJbnRSZWN0PiBzb3VyY2VSZWN0Owor
ICAgIE9wdGlvbmFsPEludFBvaW50PiBkZXN0aW5hdGlvblBvaW50OworICAgIE9wdGlvbmFsPEFs
cGhhUHJlbXVsdGlwbGljYXRpb24+IGRlc3RpbmF0aW9uRm9ybWF0OwogCiAgICAgZGVjb2RlciA+
PiBwaXhlbEJ1ZmZlcjsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCi0gICAgZGVjb2RlciA+PiBzcmNSZWN0OwotICAgIGlmICghc3JjUmVjdCkK
KyAgICBkZWNvZGVyID4+IHNvdXJjZVJlY3Q7CisgICAgaWYgKCFzb3VyY2VSZWN0KQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgZGVjb2RlciA+PiBkZXN0UG9pbnQ7Ci0gICAg
aWYgKCFkZXN0UG9pbnQpCisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblBvaW50OworICAgIGlm
ICghZGVzdGluYXRpb25Qb2ludCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAg
IGRlY29kZXIgPj4gZGVzdEZvcm1hdDsKLSAgICBpZiAoIWRlc3RGb3JtYXQpCisgICAgZGVjb2Rl
ciA+PiBkZXN0aW5hdGlvbkZvcm1hdDsKKyAgICBpZiAoIWRlc3RpbmF0aW9uRm9ybWF0KQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKnBpeGVs
QnVmZmVyKSwgKnNyY1JlY3QsICpkZXN0UG9pbnQsICpkZXN0Rm9ybWF0IH19OworICAgIHJldHVy
biB7eyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpzb3VyY2VSZWN0LCAqZGVzdGluYXRpb25Qb2lu
dCwgKmRlc3RpbmF0aW9uRm9ybWF0IH19OwogfQogCitjbGFzcyBQdXRJbWFnZUJ1ZmZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpQdXRJbWFnZUJ1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVt
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IHRydWU7
CisKKyAgICBQdXRJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdGluYXRpb25Qb2ludCkKKyAgICAgICAgOiBtX2ltYWdlQnVmZmVySWRlbnRpZmllcihp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2VSZWN0KHNvdXJjZVJlY3Qp
CisgICAgICAgICwgbV9kZXN0aW5hdGlvblBvaW50KGRlc3RpbmF0aW9uUG9pbnQpCisgICAgewor
ICAgIH0KKworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsgfQorICAgIElu
dFJlY3Qgc291cmNlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlUmVjdDsgfQorICAgIElu
dFBvaW50IGRlc3RpbmF0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUG9p
bnQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRl
bnRpZmllci5pc1ZhbGlkKCk7IH0KKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91
bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRS
ZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBz
dGQ6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgSW50UmVjdCBtX3NvdXJjZVJlY3Q7Cisg
ICAgSW50UG9pbnQgbV9kZXN0aW5hdGlvblBvaW50OworfTsKKwogI2lmIEVOQUJMRShWSURFTykK
IGNsYXNzIFBhaW50RnJhbWVGb3JNZWRpYSB7CiBwdWJsaWM6CkBAIC0yNTA5LDYgKzI1MzYsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRD
aGFuZ2VJdGVtQnVmZmVyLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6R2V0
UGl4ZWxCdWZmZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRQaXhl
bEJ1ZmZlciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlQnVm
ZmVyLAogI2lmIEVOQUJMRShWSURFTykKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlBhaW50RnJhbWVGb3JNZWRpYSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCmluZGV4IDgyYjJjN2FiNjUxMzgyMTBiZjNiNjU0ZTU5MmVkMzA3MWU0
ZjgxMGEuLmJiMjAwYTBlYWMxY2VjZmJkNWE1YjU1NzgyMWVhNzMwMWRlZDRhN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTcxLDkgKzcxLDE0IEBAIHZv
aWQgUmVjb3JkZXI6OmdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRw
dXRGb3JtYXQsIGNvbnN0IEludFJlCiAgICAgYXBwZW5kPEdldFBpeGVsQnVmZmVyPihvdXRwdXRG
b3JtYXQsIHNvdXJjZVJlY3QpOwogfQogCi12b2lkIFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihj
b25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3ZvaWQgUmVjb3JkZXI6OnB1
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpCiB7Ci0gICAgYXBwZW5kPFB1dFBpeGVs
QnVmZmVyPihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKKyAg
ICBhcHBlbmQ8UHV0UGl4ZWxCdWZmZXI+KHBpeGVsQnVmZmVyLCBzb3VyY2VSZWN0LCBkZXN0aW5h
dGlvblBvaW50LCBkZXN0aW5hdGlvbkZvcm1hdCk7Cit9CisKK3ZvaWQgUmVjb3JkZXI6OnB1dElt
YWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3VyY2VJbWFnZSwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpCit7CisgICAg
YXBwZW5kPFB1dEltYWdlQnVmZmVyPihzb3VyY2VJbWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCk7CiB9CiAKIHN0YXRpYyBib29s
IGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mg
Y2hhbmdlRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA2
MWJmNzlkNDgwOGRhNjBjYmE5NWE0MzAxMzYwMDVkZjZhYTRmMGMzLi5hNTNlMjNmMTk2NDU3YjA0
MWE0ZmUxZTljNGRjNDliMDY5ZGJjNDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKQEAgLTU5LDcgKzU5LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgflJlY29yZGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFBpeGVsQnVm
ZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYg
ZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJ
bnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0aW5hdGlvbkZvcm1hdCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwdXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KTsKIAogICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXNFbXB0eSgpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4YTM2YTQxMDI2YmQzYTU4NTQ0NzgyMDI3NGMx
MTA3ZDc4MzkyZTkuLmMwZmZkNmY3ZTlhNGU2N2Q1OTM5ZmMyN2YyYWRiNDM5NWRkMzgwMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNvdXJjZUdyYXBoaWM6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgaWYgKCFyZXN1bHRJbWFnZSB8fCAhc291cmNl
SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc3VsdEltYWdlLT5jb250ZXh0KCkuZHJh
d0ltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgSW50UG9pbnQoKSk7CisgICAgcmVzdWx0SW1hZ2Ut
PnB1dEltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgeyBJbnRQb2ludCgpLCBzb3VyY2VJbWFnZS0+
bG9naWNhbFNpemUoKSB9LCBJbnRQb2ludCgpKTsKIH0KIAogVGV4dFN0cmVhbSYgU291cmNlR3Jh
cGhpYzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRp
b25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBlOTBiMzExYjcxNTVlNDY4NDQ1NmRiYWQyYjE4
YzM0NjcwOGE4MjVlLi41MmI0ZjY2MzUyOTEzZGEwY2VlNTA5NTM3YWRmOGVjZDNiYzJkNDg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1
YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibAogICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0OwogICAgIHVzaW5nIEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OnB1dFBpeGVsQnVmZmVyOworICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyOjpwdXRJbWFnZUJ1ZmZlcjsKIAogcHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29u
c3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTc4LDE0ICs3OSwyNSBAQCBwcml2YXRlOgogICAg
IHsKICAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkdldFBpeGVsQnVm
ZmVyPigpKSB7CiAgICAgICAgICAgICBhdXRvJiBnZXRQaXhlbEJ1ZmZlckl0ZW0gPSBpdGVtLmdl
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6R2V0UGl4ZWxCdWZmZXI+KCk7Ci0gICAgICAgICAgICBh
dXRvIHBpeGVsQnVmZmVyID0gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmdldFBpeGVsQnVmZmVy
KGdldFBpeGVsQnVmZmVySXRlbS5vdXRwdXRGb3JtYXQoKSwgZ2V0UGl4ZWxCdWZmZXJJdGVtLnNy
Y1JlY3QoKSk7CisgICAgICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OmdldFBpeGVsQnVmZmVyKGdldFBpeGVsQnVmZmVySXRlbS5vdXRwdXRGb3JtYXQo
KSwgZ2V0UGl4ZWxCdWZmZXJJdGVtLnNvdXJjZVJlY3QoKSk7CiAgICAgICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQucG9wdWxhdGVHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeShXVEZN
b3ZlKHBpeGVsQnVmZmVyKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRQaXhlbEJ1ZmZl
cj4oKSkgewogICAgICAgICAgICAgYXV0byYgcHV0UGl4ZWxCdWZmZXJJdGVtID0gaXRlbS5nZXQ8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyPigpOwotICAgICAgICAgICAgcHV0
UGl4ZWxCdWZmZXIocHV0UGl4ZWxCdWZmZXJJdGVtLnBpeGVsQnVmZmVyKCksIHB1dFBpeGVsQnVm
ZmVySXRlbS5zcmNSZWN0KCksIHB1dFBpeGVsQnVmZmVySXRlbS5kZXN0UG9pbnQoKSwgcHV0UGl4
ZWxCdWZmZXJJdGVtLmRlc3RGb3JtYXQoKSk7CisgICAgICAgICAgICBwdXRQaXhlbEJ1ZmZlcihw
dXRQaXhlbEJ1ZmZlckl0ZW0ucGl4ZWxCdWZmZXIoKSwgcHV0UGl4ZWxCdWZmZXJJdGVtLnNvdXJj
ZVJlY3QoKSwgcHV0UGl4ZWxCdWZmZXJJdGVtLmRlc3RpbmF0aW9uUG9pbnQoKSwgcHV0UGl4ZWxC
dWZmZXJJdGVtLmRlc3RpbmF0aW9uRm9ybWF0KCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlbS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UHV0SW1hZ2VCdWZmZXI+KCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHB1dEltYWdlQnVmZmVySXRl
bSA9IGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZUJ1ZmZlcj4oKTsKKyAg
ICAgICAgICAgIGF1dG8gc291cmNlSW1hZ2UgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVt
b3RlUmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKHB1dEltYWdlQnVmZmVySXRlbS5p
bWFnZUJ1ZmZlcklkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBpZiAoIXNvdXJjZUltYWdlKSB7
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHV0SW1hZ2VCdWZmZXIo
KnNvdXJjZUltYWdlLCBwdXRJbWFnZUJ1ZmZlckl0ZW0uc291cmNlUmVjdCgpLCBwdXRJbWFnZUJ1
ZmZlckl0ZW0uZGVzdGluYXRpb25Qb2ludCgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkMzQ0NWZlYTcyZDVkYzNl
MWRjMzM1NjFiODExMjM5ZmUwMTNmZDY2Li4zMTNkMDkxYjg1NWMzMGQzNDQxYTViNWI5MjgwN2Rk
NDFjZGU3MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC01NjgsNiArNTY4LDcgQEAg
T3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICNpZiBFTkFCTEUoVklERU8pCiAgICAgY2FzZSBEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICNlbmRpZgorICAgIGNhc2Ug
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjoKICAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
Um90YXRlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IDRmYTdjMjgy
ZmJkMDgyY2Y4YjY3ZTgxNDBmNGU1NTY2MDNlMWY1NzEuLmMwM2ZlOTM2NzRhZWQ3YzExZjMzZjdh
YTliZjJjZjQ4OWI1YjIzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZC5jcHAKQEAgLTE1NCwxNCArMTU0LDI0IEBAIFJlZlB0cjxJbWFnZT4gSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSwgUHJlCiAgICAgcmV0dXJuIG1fYml0bWFwLT5jcmVhdGVJbWFnZSgpOwogfQogCi1PcHRpb25h
bDxQaXhlbEJ1ZmZlcj4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpnZXRQaXhl
bEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRS
ZWN0JiBzcmNSZWN0KSBjb25zdAorT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQs
IHNyY1JlY3QsIG1fYml0bWFwLT5kYXRhKCkpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tl
bmQ6OmdldFBpeGVsQnVmZmVyKG91dHB1dEZvcm1hdCwgc291cmNlUmVjdCwgbV9iaXRtYXAtPmRh
dGEoKSk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50
LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpCiB7Ci0gICAgSW1h
Z2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVz
dFBvaW50LCBkZXN0Rm9ybWF0LCBtX2JpdG1hcC0+ZGF0YSgpKTsKKyAgICBJbWFnZUJ1ZmZlckJh
Y2tlbmQ6OnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlv
blBvaW50LCBkZXN0Rm9ybWF0LCBtX2JpdG1hcC0+ZGF0YSgpKTsKK30KKwordm9pZCBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVy
QmFja2VuZCYgZGVzdEJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAoreworICAgIGRlc3RCYWNrZW5kLmNvcHlJ
bWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fYml0
bWFwLT5kYXRhKCkpOworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJh
Y2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5h
dGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFj
a2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0
aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBtX2JpdG1hcC0+ZGF0YSgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuaAppbmRleCBiNmE5NGYxMDMxMTA0N2Y5MjE4OTNiNjc0ZTExNzJlMjczZTM2NDY3Li45
NWE1ODUxOWMwYTMyNWEyYzNkYzBhZTg1MmVlZGNmM2E1NmJmYmVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTU4LDggKzU4LDExIEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShX
ZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJhY2tpbmdTdG9yZSkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNraW5nU3RvcmUsIFdlYkNvcmU6
OlByZXNlcnZlUmVzb2x1dGlvbiA9IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBp
eGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHB1dFBp
eGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29y
ZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6
UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
c291cmNlUmVjdCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25z
dCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9ybWF0KSBvdmVycmlkZTsKKworICAg
IHZvaWQgY29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0
QmFja2VuZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQmIHNv
dXJjZUJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRh
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAxMjNkNTM5YzgyYTQ2
NTIzZTZlYTg4YzA5NGNjZDljMWI3ZmI5Y2M2Li5mNGY4NWFiZWFlNDdhOTg2OTdjNWVmYjJiNDk3
MzVlMjM2NmVmMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMTk1LDEyICsx
OTUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gYml0bWFwLT5jcmVhdGVJbWFnZSgp
OwogICAgIH0KIAotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgZGVzdGluYXRpb25Gb3JtYXQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRlCisgICAgT3B0
aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OlBpeGVsQnVmZmVyRm9ybWF0JiBkZXN0aW5hdGlvbkZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc291cmNlUmVjdCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChVTkxJ
S0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6UGl4
ZWxCdWZmZXI6OnRyeUNyZWF0ZShkZXN0aW5hdGlvbkZvcm1hdCwgc3JjUmVjdC5zaXplKCkpOwor
ICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6UGl4ZWxCdWZmZXI6OnRyeUNyZWF0
ZShkZXN0aW5hdGlvbkZvcm1hdCwgc291cmNlUmVjdC5zaXplKCkpOwogICAgICAgICBpZiAoIXBp
eGVsQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgc2l6
ZV90IGRhdGFTaXplID0gcGl4ZWxCdWZmZXItPmRhdGEoKS5ieXRlTGVuZ3RoKCk7CkBAIC0yMTEs
NyArMjExLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAogICAgICAgICBhdXRvJiBtdXRhYmxlVGhpcyA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eSY+KCp0aGlzKTsKLSAgICAgICAgbXV0YWJsZVRoaXMubV9kcmF3aW5nQ29udGV4dC5y
ZWNvcmRlcigpLmdldFBpeGVsQnVmZmVyKGRlc3RpbmF0aW9uRm9ybWF0LCBzcmNSZWN0KTsKKyAg
ICAgICAgbXV0YWJsZVRoaXMubV9kcmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLmdldFBpeGVsQnVm
ZmVyKGRlc3RpbmF0aW9uRm9ybWF0LCBzb3VyY2VSZWN0KTsKICAgICAgICAgbXV0YWJsZVRoaXMu
Zmx1c2hEcmF3aW5nQ29udGV4dEFzeW5jKCk7CiAKICAgICAgICAgaWYgKG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT53YWl0Rm9yR2V0UGl4ZWxCdWZmZXJUb0NvbXBsZXRlKHRpbWVvdXQp
KQpAQCAtMjIxLDEyICsyMjEsMjAgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gcGl4ZWxC
dWZmZXI7CiAgICAgfQogCi0gICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQ
aXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0sIFdlYkNvcmU6OkFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb246OlByZW11bHRpcGxpZWQpIG92ZXJyaWRlCisgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihj
b25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBv
aW50ID0geyB9LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9y
bWF0ID0gV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIC8vIFRoZSBtYXRoIGluc2lkZSBQaXhlbEJ1ZmZlcjo6Y3Jl
YXRlKCkgZG9lc24ndCBhZ3JlZSB3aXRoIHRoZSBtYXRoIGluc2lkZSBJbWFnZUJ1ZmZlckJhY2tl
bmQ6OnB1dFBpeGVsQnVmZmVyKCkgYWJvdXQgaG93IG1fcmVzb2x1dGlvblNjYWxlIGludGVyYWN0
cyB3aXRoIHRoZSBkYXRhIGluIHRoZSBJbWFnZUJ1ZmZlci4KICAgICAgICAgLy8gVGhpcyBtZWFu
cyB0aGF0IHB1dFBpeGVsQnVmZmVyKCkgaXMgb25seSBjYWxsZWQgd2hlbiByZXNvbHV0aW9uU2Nh
bGUoKSA9PSAxLgogICAgICAgICBBU1NFUlQocmVzb2x1dGlvblNjYWxlKCkgPT0gMSk7Ci0gICAg
ICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZl
ciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKKyAgICAgICAgbV9kcmF3aW5nQ29u
dGV4dC5yZWNvcmRlcigpLnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzb3VyY2VSZWN0LCBk
ZXN0aW5hdGlvblBvaW50LCBkZXN0aW5hdGlvbkZvcm1hdCk7CisgICAgfQorCisgICAgdm9pZCBw
dXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0
aW5hdGlvblBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKGlzQ2FjaGVkSW1hZ2VC
dWZmZXIoc291cmNlSW1hZ2UpKQorICAgICAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5yZWNvcmRl
cigpLnB1dEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBv
aW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXI6OnB1dEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBv
aW50KTsKICAgICB9CiAKICAgICBib29sIHByZWZlcnNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggNGNmMzlhMWM0NjA0
YmQxMTZlMDM5OGY4YTU1ZjlmNTU1ZmJmNTI4Ni4uZWExYTg3Y2NlYzM3YzAwOGMwOTVjMjRmNDc5
ZDdhMmJmMzc5ODMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTI1LDYgKzEyNSwxNiBAQCB2b2lk
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXImLCBjbwogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQ
aXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9p
bnQmKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNG
cm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQ
b2ludCYsIGNvbnN0IHZvaWQqKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaAppbmRleCAzNzBiZTFmMjE0ZjgxNDU2ZmFhMjU1MDcxNzNmYzVkM2QwYTMzNWFk
Li40OTQyZGI5MjYxZDM2MjFjZjBlN2Y4YzhjOTJiNTc4YWJiODRhZTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgK
QEAgLTU5LDggKzU5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFN0cmluZyB0b0RhdGFVUkwoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVz
ZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIFZlY3Rvcjx1aW50OF90PiB0b0Rh
dGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25z
dCBvdmVycmlkZTsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxC
dWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcHV0UGl4ZWxC
dWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhl
bEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3Vy
Y2VSZWN0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIFdlYkNvcmU6OkFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
Y29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFja2Vu
ZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29weUlt
YWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJh
Y2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKSBvdmVy
cmlkZTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0VXBwZXJMZWZ0Q29y
bmVyID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuTWFwQmFja2luZ1N0b3Jl
ID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430111</attachid>
            <date>2021-05-29 14:24:00 -0700</date>
            <delta_ts>2021-05-31 04:43:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210529142359.patch</filename>
            <type>text/plain</type>
            <size>63295</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uNjY2ZGQyNjEzZGNhZTgwMTYwNmY4MjE3MDkzZGMz
NTUyNThiYzI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMS0wNS0yOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEltYWdlQnVm
ZmVyIGJlIGFibGUgdG8gcHV0IHBpeGVscyBkaXJlY3RseSBpbnRvIGl0cyBiYWNrZW5kIGZyb20g
YW5vdGhlciBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI2Mzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIG5ldyBmdW5jdGlvbiBjYW4gcmVwbGFjZSB0aGUgY2FsbCB0byBJbWFn
ZUJ1ZmZlcjo6ZHJhdygpIHdoZXJlIGFscGhhCisgICAgICAgIGJsZW5kaW5nIG9yIHNjYWxpbmcg
aXMgbm90IHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0
UGl4ZWxCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnB1dEltYWdlQnVmZmVyKToKKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oOgorICAgICAgICBBIG5ldyBmdW5j
dGlvbiB3aGljaCBjb3BpZXMgcGl4ZWxzIGJldHdlZW4gdHdvIEltYWdlQnVmZmVyIGJhY2tlbmRz
LiBUaGV5CisgICAgICAgIG1heSBkaWZmZXIgaW4gdGhlIHBpeGVsIGZvcm1hdCBvciB0aGUgY29s
b3IgU3BhY2UuIEJ1dCB0aGV5IGhhdmUgdG8gYWdyZWUKKyAgICAgICAgaW4gdGhlIHNjYWxlIHJl
c29sdXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZl
cnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEltYWdlUGl4ZWxzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0Lmg6CisgICAgICAgIFdl
IGhhdmUgdG8gdXNlIGNvbnZlcnRJbWFnZVBpeGVsc0FjY2VsZXJhdGVkKCkgaWYgd2UgYXJlIGNv
cHlpbmcgYmV0d2VlbgorICAgICAgICBkaWZmZXJlbnQgY29sb3Igc3BhY2VzIHNpbmNlIHRoZSBu
b24tYWNjZWxlcmF0ZWQgcGF0aCBkb2VzIG5vdCBzdXBwb3J0IGl0LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4
ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZh
Y2VCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxz
RnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OmdldFBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
aDoKKyAgICAgICAgR2V0IHRoZSBkYXRhIHBvaW50ZXJzIGZyb20gdGhlIHNvdXJjZSBhbmQgZGVz
dGluYXRpb24gYmFja2VuZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjphcHBlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtSGFuZGxlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtSGFuZGxlOjpzYWZlQ29weSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpp
c0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Om9wZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVs
QnVmZmVyOjpQdXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UHV0UGl4ZWxCdWZmZXI6OnN3YXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6R2V0UGl4ZWxCdWZmZXI6OkdldFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpHZXRQaXhlbEJ1ZmZlcjo6c291cmNlUmVjdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6R2V0UGl4ZWxCdWZmZXI6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6R2V0UGl4ZWxCdWZmZXI6OmRlY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxCdWZmZXI6OnNvdXJjZVJlY3QgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjpkZXN0
aW5hdGlvblBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRQ
aXhlbEJ1ZmZlcjo6ZGVzdGluYXRpb25Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjpnbG9iYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjpkZWNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpQdXRJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6Omlt
YWdlQnVmZmVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UHV0SW1hZ2VCdWZmZXI6OnNvdXJjZVJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlB1dEltYWdlQnVmZmVyOjpkZXN0aW5hdGlvblBvaW50IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZUJ1ZmZlcjo6aXNWYWxpZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI6Omdsb2Jh
bEJvdW5kcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VC
dWZmZXI6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpHZXRQaXhlbEJ1ZmZlcjo6c3JjUmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6UHV0UGl4ZWxCdWZmZXI6OnNyY1JlY3QgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyOjpkZXN0UG9p
bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBp
eGVsQnVmZmVyOjpkZXN0Rm9ybWF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OnB1dFBpeGVsQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6cHV0SW1hZ2VCdWZmZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
Lmg6CisgICAgICAgIEFkZCB0aGUgaXRlbSBQdXRJbWFnZUJ1ZmZlciB3aGljaCBjYW4gYmUgdXNl
ZCBpZiBib3RoIEltYWdlQnVmZmVycyBhcmUgCisgICAgICAgIHJlbW90ZS4gSW4gdGhpcyBjYXNl
IG5vIHJlYWQtYmFjayBpcyByZXF1aXJlZC4gQ29weWluZyB0aGUgcGl4ZWxzIHdpbGwKKyAgICAg
ICAgaGFwcGVuIGluIEdQVVAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6cGxh
dGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgVXMgdGhlIG5ldyBmdW5jdGlvbiB0byBjb3B5
IHRoZSBGaWx0ZXIgaW5wdXQgSW1hZ2VCdWZmZXIgdG8gaXRzCisgICAgICAgIFNvdXJjZUdyYXBo
aWMuCisKIDIwMjEtMDUtMjcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIE5leHQgc3RlcCB0b3dhcmQgdXNpbmcgc3RkOjpvcHRpb25hbCBkaXJlY3RseSBpbnN0ZWFk
IG9mIHRocm91Z2ggV1RGOjpPcHRpb25hbCB0eXBlZGVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3NjBkNjQ3ZDY5
Y2YxMjZhNGI0MDIwMDgzMWEzNzZlNmEyNjZlMTAuLjJhM2MxMjdiOGZhZTc1NzNkNmZmZjFmMDlh
MTViOTA5NWEyMTYzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDUtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFnZUJ1
ZmZlciBiZSBhYmxlIHRvIHB1dCBwaXhlbHMgZGlyZWN0bHkgaW50byBpdHMgYmFja2VuZCBmcm9t
IGFub3RoZXIgSW1hZ2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFB1dHRpbmcgYW4gSW1hZ2VCdWZmZXIgaW50byBhbm90aGVyIHNob3VsZCBo
YXZlIGEgc3BlY2lhbCBjYXNlIGlmIHRoZXkgCisgICAgICAgIGFyZSBib3RoIHJlbW90ZSBJbWFn
ZUJ1ZmZlcnMuIFJlYWQtYmFjayBzaG91bGQgYmUgYXZvaWRlZCBpbiB0aGlzIGNhc2UuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAg
IEFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgcmVwbGF5aW5nIGJhY2sgdGhlIGl0ZW0gUHV0SW1hZ2VC
dWZmZXIgaW4gCisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpnZXRQ
aXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1h
Z2VQaXhlbHNGcm9tKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgR2V0IHRoZSBkYXRhIHBvaW50
ZXJzIGZyb20gdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYmFja2VuZHMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OnB1dFBpeGVsQnVmZmVyKToKKyAg
ICAgICAgRGVjaWRlIHdoZXRoZXIgcmVhZC1iYWNrIHNob3VsZCBiZSBhdm9pZGVkIGluIG9yIHRo
ZSByZW1vdGUgSW1hZ2VCdWZmZXIKKyAgICAgICAgb3Igbm90LgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kLmg6CisKIDIwMjEtMDUtMjcgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0b3dhcmQgdXNpbmcgc3RkOjpvcHRpb25h
bCBkaXJlY3RseSBpbnN0ZWFkIG9mIHRocm91Z2ggV1RGOjpPcHRpb25hbCB0eXBlZGVmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmgKaW5kZXggZWMyZGEwMjM5MmYwYWM5Y2I4NDRkZDQ0YzJmYmJhZGI3NWE2ODU5NS4uZmJk
NGU5MDk3ZjY4ZmEwMjU4N2VlNjA0MmUwODM3MjZiMTUxZWEyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAt
MjIyLDIzICsyMjIsMzYgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1
ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBv
dmVycmlkZQorICAgIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQ
aXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1
cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CiAgICAgICAgICAgICBjb25zdF9jYXN0PENvbmNyZXRlSW1h
Z2VCdWZmZXImPigqdGhpcykuZmx1c2hDb250ZXh0KCk7Ci0gICAgICAgICAgICByZXR1cm4gYmFj
a2VuZC0+Z2V0UGl4ZWxCdWZmZXIob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKKyAgICAgICAgICAg
IHJldHVybiBiYWNrZW5kLT5nZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQsIHNvdXJjZVJlY3Qp
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCi0gICAg
dm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0
IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0sIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlBy
ZW11bHRpcGxpZWQpIG92ZXJyaWRlCisgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhl
bEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50ID0geyB9LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RpbmF0aW9uRm9ybWF0ID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2Vu
ZENyZWF0ZWQoKSkgewogICAgICAgICAgICAgZmx1c2hDb250ZXh0KCk7Ci0gICAgICAgICAgICBi
YWNrZW5kLT5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBk
ZXN0Rm9ybWF0KTsKKyAgICAgICAgICAgIGJhY2tlbmQtPnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVm
ZmVyLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBkZXN0aW5hdGlvbkZvcm1hdCk7CiAg
ICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHB1dEltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBz
b3VyY2VJbWFnZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAocmVzb2x1dGlvblNj
YWxlKCkgIT0gc291cmNlSW1hZ2UucmVzb2x1dGlvblNjYWxlKCkpIHsKKyAgICAgICAgICAgIGNv
bnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIEZsb2F0UmVjdCB7IGRlc3RpbmF0
aW9uUG9pbnQsIHNvdXJjZUltYWdlLmxvZ2ljYWxTaXplKCkgfSAsIEZsb2F0UmVjdChzb3VyY2VS
ZWN0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvKiBi
YWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKTsKKyAgICAgICAgYXV0byogc291cmNlQmFj
a2VuZCA9IHNvdXJjZUltYWdlLmVuc3VyZUJhY2tlbmRDcmVhdGVkKCk7CisgICAgICAgIGlmIChi
YWNrZW5kICYmIHNvdXJjZUJhY2tlbmQpCisgICAgICAgICAgICBzb3VyY2VCYWNrZW5kLT5jb3B5
SW1hZ2VQaXhlbHNUbygqYmFja2VuZCwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCk7Cisg
ICAgfQorCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewogICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVk
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApp
bmRleCA2NGVhNDgzNzI2OTZkYWU5MDUwYmEwNDEyNWFjMjBmYTA0ZTAwYjljLi4yODBhNDE4Mjg0
MTIyYTAwOTUwYjkwZjY1MGI4ZjkzZTQ4NmFhMTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNSw4ICsxMjUsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9w
dGlvbmFsPGRvdWJsZT4gcXVhbGl0eSA9IHN0ZDo6bnVsbG9wdCwgUHJlc2VydmVSZXNvbHV0aW9u
ID0gUHJlc2VydmVSZXNvbHV0aW9uOjpObykgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9y
PHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+
IHF1YWxpdHkgPSBzdGQ6Om51bGxvcHQpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgT3B0aW9u
YWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBv
dXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RGb3JtYXQgPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkKSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZm
ZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihj
b25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBv
aW50JiBkZXN0aW5hdGlvblBvaW50ID0geyB9LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3Rp
bmF0aW9uRm9ybWF0ID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBwdXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50ID0geyB9
KSA9IDA7CiAKICAgICAvLyBGSVhNRTogY3VycmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBt
ZXRob2QgaGF2ZSB0aGUgcmVzdHJpY3Rpb24gdGhhdCB0aGV5IG9ubHkgd29yawogICAgIC8vIHdp
dGggdGV4dHVyZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllU
RSB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXggNDNmNTJiZDRiZDg5ZDUxNjk1MzdjYjk0Y2M4NWUw
NTI5Y2VmOGMzNS4uMzcxOWY4ZjNmZmIwM2FjZmMwNzc2YTJlZWZmNDFmMjQyNjEzNjExZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuY3BwCkBAIC0xNjYsNCArMTY2LDM5IEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5k
OjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgc291cmNlUGl4ZWxCdWZmZXIsIGNv
CiAgICAgY29udmVydEltYWdlUGl4ZWxzKHNvdXJjZSwgZGVzdGluYXRpb24sIGRlc3RpbmF0aW9u
UmVjdC5zaXplKCkpOwogfQogCit2b2lkIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4
ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25z
dCB2b2lkKiBzb3VyY2VEYXRhLCB2b2lkKiBkYXRhKQoreworICAgIEFTU0VSVChzb3VyY2VCYWNr
ZW5kLnJlc29sdXRpb25TY2FsZSgpID09IHJlc29sdXRpb25TY2FsZSgpKTsKKworICAgIGF1dG8g
c291cmNlUmVjdFNjYWxlZCA9IHRvQmFja2VuZENvb3JkaW5hdGVzKHNvdXJjZVJlY3QpOworICAg
IGF1dG8gZGVzdGluYXRpb25Qb2ludFNjYWxlZCA9IHRvQmFja2VuZENvb3JkaW5hdGVzKGRlc3Rp
bmF0aW9uUG9pbnQpOworCisgICAgYXV0byBzb3VyY2VSZWN0Q2xpcHBlZCA9IGludGVyc2VjdGlv
bih7IEludFBvaW50Ojp6ZXJvKCksIHNvdXJjZUJhY2tlbmQuYmFja2VuZFNpemUoKSB9LCBzb3Vy
Y2VSZWN0U2NhbGVkKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uUmVjdCA9IHNvdXJjZVJlY3RDbGlw
cGVkOworICAgIGRlc3RpbmF0aW9uUmVjdC5tb3ZlQnkoZGVzdGluYXRpb25Qb2ludFNjYWxlZCk7
CisKKyAgICBpZiAoc291cmNlUmVjdFNjYWxlZC54KCkgPCAwKQorICAgICAgICBkZXN0aW5hdGlv
blJlY3Quc2V0WChkZXN0aW5hdGlvblJlY3QueCgpIC0gc291cmNlUmVjdFNjYWxlZC54KCkpOwor
CisgICAgaWYgKHNvdXJjZVJlY3RTY2FsZWQueSgpIDwgMCkKKyAgICAgICAgZGVzdGluYXRpb25S
ZWN0LnNldFkoZGVzdGluYXRpb25SZWN0LnkoKSAtIHNvdXJjZVJlY3RTY2FsZWQueSgpKTsKKwor
ICAgIGRlc3RpbmF0aW9uUmVjdC5pbnRlcnNlY3QoYmFja2VuZFJlY3QoKSk7CisgICAgc291cmNl
UmVjdENsaXBwZWQuc2V0U2l6ZShkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKKworICAgIENvbnN0
UGl4ZWxCdWZmZXJDb252ZXJzaW9uVmlldyBzb3VyY2UgeworICAgICAgICB7IEFscGhhUHJlbXVs
dGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIHNvdXJjZUJhY2tlbmQucGl4ZWxGb3JtYXQoKSwg
c291cmNlQmFja2VuZC5jb2xvclNwYWNlKCkgfSwKKyAgICAgICAgc291cmNlQmFja2VuZC5ieXRl
c1BlclJvdygpLAorICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3Vy
Y2VEYXRhKSArIHNvdXJjZVJlY3RDbGlwcGVkLnkoKSAqIHNvdXJjZS5ieXRlc1BlclJvdyArIHNv
dXJjZVJlY3RDbGlwcGVkLngoKSAqIDQKKyAgICB9OworCisgICAgUGl4ZWxCdWZmZXJDb252ZXJz
aW9uVmlldyBkZXN0aW5hdGlvbiB7CisgICAgICAgIHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6
UHJlbXVsdGlwbGllZCwgcGl4ZWxGb3JtYXQoKSwgY29sb3JTcGFjZSgpIH0sCisgICAgICAgIGJ5
dGVzUGVyUm93KCksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEpICsg
ZGVzdGluYXRpb25SZWN0LnkoKSAqIGRlc3RpbmF0aW9uLmJ5dGVzUGVyUm93ICsgZGVzdGluYXRp
b25SZWN0LngoKSAqIDQKKyAgICB9OworCisgICAgY29udmVydEltYWdlUGl4ZWxzKHNvdXJjZSwg
ZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGU3M2EyYTlmM2JiYmUwNWI4MTkzNmI2OGQ5MTdiMTFj
YWRkYzFhYjAuLmRhNGU2ZjUwMjlkZjI5NmM1NTBkOTBlMWEyNDQ5MjIzNTUzZjY3ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5oCkBAIC0xMDcsOCArMTA3LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB0
b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5
LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFZlY3Rvcjx1aW50
OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJ
bnRSZWN0JikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgPSAwOworICAgIHZp
cnR1YWwgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXIm
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Q
b2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0aW5hdGlvbkZvcm1hdCkgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVz
dGluYXRpb25CYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5SW1h
Z2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQs
IGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpID0gMDsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IGJvb2wgY29weVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMJiwgR0NHTGVudW0s
IFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBib29sLCBib29sKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQpAQCAtMTQ2LDggKzE0OSw5IEBAIHByb3RlY3RlZDoKICAgICBJbnRSZWN0IGxvZ2lj
YWxSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdChJbnRQb2ludDo6emVybygpLCBsb2dpY2Fs
U2l6ZSgpKTsgfTsKICAgICBJbnRSZWN0IGJhY2tlbmRSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50
UmVjdChJbnRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSgpKTsgfTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1
ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCB2b2lkKiBk
YXRhKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0LCB2b2lkKiBkYXRhKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIo
Y29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291
cmNlUmVjdCwgdm9pZCogZGF0YSkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RGb3JtYXQsIHZvaWQqIGRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weUlt
YWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50
LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhLCB2b2lkKiBkYXRhKTsKIAogICAgIFBhcmFtZXRlcnMg
bV9wYXJhbWV0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwCmluZGV4IDlhY2YzMDRkNzE5OTI0
ZTFjOTkxZTMwNTE1ZjkzYTM2NTM5YWIxNTEuLjM5Mjc3NzkyNjAzMjg4YTdiYmJkZWMyYzBlNjI5
NzFjYmI3NjIxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIHZv
aWQgY29udmVydEltYWdlUGl4ZWxzKGNvbnN0IENvbnN0UGl4ZWxCdWZmZXJDb252ZXJzaW9uVmll
dyYgc291cmNlLCBjb25zdCBQaXhlCiAgICAgQVNTRVJUKGRlc3RpbmF0aW9uLmZvcm1hdC5waXhl
bEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6UkdCQTggfHwgZGVzdGluYXRpb24uZm9ybWF0LnBpeGVs
Rm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURSkgJiYg
VVNFKENHKQotICAgIGlmIChzb3VyY2UuZm9ybWF0LmFscGhhRm9ybWF0ID09IGRlc3RpbmF0aW9u
LmZvcm1hdC5hbHBoYUZvcm1hdCAmJiBzb3VyY2UuZm9ybWF0LnBpeGVsRm9ybWF0ID09IGRlc3Rp
bmF0aW9uLmZvcm1hdC5waXhlbEZvcm1hdCkgeworICAgIGlmIChzb3VyY2UuZm9ybWF0ID09IGRl
c3RpbmF0aW9uLmZvcm1hdCkgewogICAgICAgICAvLyBGSVhNRTogQ2FuIHRoZXMgYm90aCBqdXN0
IHVzZSBwZXItcm93IG1lbWNweT8KICAgICAgICAgaWYgKHNvdXJjZS5mb3JtYXQuYWxwaGFGb3Jt
YXQgPT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKICAgICAgICAgICAg
IGNvbnZlcnRJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29udmVydFNpbmdsZVBpeGVsUHJlbXVs
dGlwbGllZFRvUHJlbXVsdGlwbGllZDxQaXhlbEZvcm1hdENvbnZlcnNpb246Ok5vbmU+Pihzb3Vy
Y2UsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwCmluZGV4IGY5NGRh
NWZiNjMxMzg1MWI2MDI0Yzk4N2JhMGU5NWM1ZGYwMjgxOWIuLjUxZjdlZWRmODMxZDk1NTBiN2E3
ZTY4MmQ4NDZiNjVkOTdkYzEwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5jcHAKQEAgLTMwLDYgKzMwLDE2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBhLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgYikKK3sKKyAgICByZXR1cm4gYS5h
bHBoYUZvcm1hdCA9PSBiLmFscGhhRm9ybWF0ICYmIGEucGl4ZWxGb3JtYXQgPT0gYi5waXhlbEZv
cm1hdCAmJiBhLmNvbG9yU3BhY2UgPT0gYi5jb2xvclNwYWNlOworfQorCitib29sIG9wZXJhdG9y
IT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGEsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBi
KQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBwaXhlbEJ1ZmZlcikKIHsK
ICAgICByZXR1cm4gdHMgPDwgcGl4ZWxCdWZmZXIuYWxwaGFGb3JtYXQgPDwgJyAnIDw8IHBpeGVs
QnVmZmVyLnBpeGVsRm9ybWF0IDw8ICcgJyA8PCBwaXhlbEJ1ZmZlci5jb2xvclNwYWNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3Jt
YXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0
LmgKaW5kZXggNjA4MmU1Yjg0NjQxMDNlNTFiNDRmZWRmMGE3YmE2ZGZkNTgwYmZjNy4uZmUwNDQ3
ZDlkMDIyOGVmMDgyOTkyZTRiNDM5ZTEwMjY5YjllMjExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5oCkBAIC00Miw2ICs0
Miw5IEBAIHN0cnVjdCBQaXhlbEJ1ZmZlckZvcm1hdCB7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFBpeGVsQnVmZmVyRm9ybWF0PiBkZWNvZGUoRGVjb2RlciYp
OwogfTsKIAorV0VCQ09SRV9FWFBPUlQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiwgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IFBpeGVsQnVmZmVyRm9y
bWF0Jik7CisKIFdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0Jik7CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgUGl4ZWxCdWZmZXJGb3JtYXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggOWI1
YzBhZDA3NDQ1MTg4MGRlZmRkM2M0ODkyZTRmNzNjMjg2NDJjOS4uZDg4MzNhODBiNjdmZDhkNjI5
OGQ0NzliYTgyOGM4YTJmNjI5OGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
U3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0xMDMsMTggKzEwMywzMiBAQCBSZWZQdHI8TmF0aXZlSW1h
Z2U+IEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y2Fpcm9TdXJmYWNlQ29lcmNlVG9J
bWFnZSgpCiAgICAgcmV0dXJuIGNvcHlOYXRpdmVJbWFnZShjb3B5QmVoYXZpb3IpOwogfQogCi1P
cHRpb25hbDxQaXhlbEJ1ZmZlcj4gSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpnZXRQ
aXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0KSBjb25zdAorT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQs
IHNyY1JlY3QsIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEobV9zdXJmYWNlLmdldCgpKSk7
CisgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIob3V0cHV0Rm9y
bWF0LCBzb3VyY2VSZWN0LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1fc3VyZmFjZS5n
ZXQoKSkpOwogfQogCi12b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6cHV0UGl4
ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZmVyLCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RGb3JtYXQpCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6cHV0UGl4
ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZmVyLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBkZXN0aW5hdGlvbkZvcm1hdCkKIHsKLSAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6
OnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3Jt
YXQsIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEobV9zdXJmYWNlLmdldCgpKSk7CisgICAg
SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc291cmNlUmVj
dCwgZGVzdGluYXRpb25Qb2ludCwgZGVzdGluYXRpb25Gb3JtYXQsIGNhaXJvX2ltYWdlX3N1cmZh
Y2VfZ2V0X2RhdGEobV9zdXJmYWNlLmdldCgpKSk7CiAKLSAgICBJbnRSZWN0IHNyY1JlY3RTY2Fs
ZWQgPSB0b0JhY2tlbmRDb29yZGluYXRlcyhzcmNSZWN0KTsKLSAgICBJbnRQb2ludCBkZXN0UG9p
bnRTY2FsZWQgPSB0b0JhY2tlbmRDb29yZGluYXRlcyhkZXN0UG9pbnQpOwotICAgIGNhaXJvX3N1
cmZhY2VfbWFya19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0UG9pbnRTY2Fs
ZWQueCgpLCBkZXN0UG9pbnRTY2FsZWQueSgpLCBzcmNSZWN0U2NhbGVkLndpZHRoKCksIHNyY1Jl
Y3RTY2FsZWQuaGVpZ2h0KCkpOworICAgIEludFJlY3Qgc291cmNlUmVjdFNjYWxlZCA9IHRvQmFj
a2VuZENvb3JkaW5hdGVzKHNvdXJjZVJlY3QpOworICAgIEludFBvaW50IGRlc3RpbmF0aW9uUG9p
bnRTY2FsZWQgPSB0b0JhY2tlbmRDb29yZGluYXRlcyhkZXN0aW5hdGlvblBvaW50KTsKKyAgICBj
YWlyb19zdXJmYWNlX21hcmtfZGlydHlfcmVjdGFuZ2xlKG1fc3VyZmFjZS5nZXQoKSwgZGVzdGlu
YXRpb25Qb2ludFNjYWxlZC54KCksIGRlc3RpbmF0aW9uUG9pbnRTY2FsZWQueSgpLCBzb3VyY2VS
ZWN0U2NhbGVkLndpZHRoKCksIHNvdXJjZVJlY3RTY2FsZWQuaGVpZ2h0KCkpOworfQorCit2b2lk
IEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8oSW1hZ2VC
dWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAoreworICAgIGRlc3Rp
bmF0aW9uQmFja2VuZC5jb3B5SW1hZ2VQaXhlbHNGcm9tKCp0aGlzLCBzb3VyY2VSZWN0LCBkZXN0
aW5hdGlvblBvaW50LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1fc3VyZmFjZS5nZXQo
KSkpOworfQorCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdl
UGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBj
b25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUlt
YWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50
LCBzb3VyY2VEYXRhLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1fc3VyZmFjZS5nZXQo
KSkpOworCisgICAgSW50UmVjdCBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0
ZXMoc291cmNlUmVjdCk7CisgICAgSW50UG9pbnQgZGVzdGluYXRpb25Qb2ludFNjYWxlZCA9IHRv
QmFja2VuZENvb3JkaW5hdGVzKGRlc3RpbmF0aW9uUG9pbnQpOworICAgIGNhaXJvX3N1cmZhY2Vf
bWFya19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0aW5hdGlvblBvaW50U2Nh
bGVkLngoKSwgZGVzdGluYXRpb25Qb2ludFNjYWxlZC55KCksIHNvdXJjZVJlY3RTY2FsZWQud2lk
dGgoKSwgc291cmNlUmVjdFNjYWxlZC5oZWlnaHQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5kZXgg
MDM3MDc4N2I2OTk5Y2ZkZTA2YWUwZmExY2QwNjY2MTM5MTU3MjM5Yy4uN2RhM2M5ZmE1NDVlMjQz
ZmJhM2Y1OGFhN2ZjZGQ4YzE5OWRhN2MxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b1N1cmZhY2VCYWNrZW5kLmgKQEAgLTQ0LDggKzQ0LDExIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxQaXhlbEJ1
ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1h
dCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBw
dXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGRlc3RpbmF0aW9uRm9ybWF0KSBvdmVycmlkZTsKKworICAgIHZvaWQgY29weUltYWdlUGl4
ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291
cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQm
IHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50
JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKSBvdmVycmlkZTsKIAog
cHJvdGVjdGVkOgogICAgIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJh
bWV0ZXJzJiwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZC5jcHAKaW5kZXggNjg2NWYwYmQ0MWJiNDg0NjBkYmExZjRmNmJhNTgwNzg0Y2Nh
ZWU2MS4uMGI2ODE0MmQ2MmIyMGQ3ZTQ0MmRkMmU4Yzk5NjkwNzg4ZmFiY2QwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1h
cEJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcApAQCAtMTYzLDYgKzE2MywxNiBAQCB2b2lkIElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ciYgcGl4ZWxCdWZmZXIsCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihw
aXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0LCBtX2RhdGEpOwogfQog
Cit2b2lkIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJbWFn
ZUJ1ZmZlckJhY2tlbmQmIGRlc3RpbmF0aW9uQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0Cit7CisgICAgZGVz
dGluYXRpb25CYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRl
c3RpbmF0aW9uUG9pbnQsIG1fZGF0YSk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kJiBzb3Vy
Y2VCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVz
dGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0YSkKK3sKKyAgICBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oc291cmNlQmFja2VuZCwgc291cmNlUmVjdCwg
ZGVzdGluYXRpb25Qb2ludCwgc291cmNlRGF0YSwgbV9kYXRhKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kLmgKaW5kZXggMDg5NzNmMzgxODlhZTZiNjBmODI4MGQwMDMyNWRiYjQ4MGJhZTJmNC4uOTQw
NjZmOWRkYTQwMmJhMDRmMDRjMzE4NzNlN2JmY2JiZTA3YWZhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxQ
aXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1
dEZvcm1hdCwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4
ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQp
IG92ZXJyaWRlOwogCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tl
bmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5SW1hZ2VQ
aXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNv
bnN0IHZvaWQqIHNvdXJjZURhdGEpIG92ZXJyaWRlOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGlzT3JpZ2luQXRVcHBlckxlZnRDb3JuZXIgPSB0cnVlOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggMGM3MDZkMTgzMzk1ZDk1OTY4ZmJm
YmZjNmM5NzQwOWZkNWI4OTIyMy4uYTA2ZGNiYWE5ZTgwODI1ODhiMDc2MTI2NThiMzJmYmUzZjU5
ZTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0xNzYsMTAg
KzE3NiwxMCBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kOjpjb3B5Q0dJbWFnZUZvckVuY29kaW5nKENGU3RyaQogICAgIHJldHVybiBJbWFnZUJ1ZmZl
ckNHQmFja2VuZDo6Y29weUNHSW1hZ2VGb3JFbmNvZGluZyhkZXN0aW5hdGlvblVUSSwgcHJlc2Vy
dmVSZXNvbHV0aW9uKTsKIH0KIAotT3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91
dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QKK09wdGlvbmFsPFBpeGVs
QnVmZmVyPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QpIGNvbnN0CiB7CiAgICAgSU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqbV9zdXJmYWNlKTsKLSAg
ICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQs
IHNyY1JlY3QsIGxvY2suc3VyZmFjZUJhc2VBZGRyZXNzKCkpOworICAgIHJldHVybiBJbWFnZUJ1
ZmZlckJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKG91dHB1dEZvcm1hdCwgc291cmNlUmVjdCwgbG9j
ay5zdXJmYWNlQmFzZUFkZHJlc3MoKSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNv
bnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKQEAgLTE4OSw2ICsxODksMTkgQEAgdm9pZCBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiBwaXhlbEJ1ZmZlciwKICAgICBtX3JlcXVpcmVzRHJhd0FmdGVyUHV0UGl4ZWxCdWZmZXIgPSB0
cnVlOwogfQogCit2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4
ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAor
eworICAgIElPU3VyZmFjZTo6TG9ja2VyIGxvY2soKm1fc3VyZmFjZSwgSU9TdXJmYWNlOjpMb2Nr
ZXI6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSk7CisgICAgZGVzdGluYXRpb25CYWNrZW5kLmNvcHlJ
bWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIGxvY2su
c3VyZmFjZUJhc2VBZGRyZXNzKCkpOworfQorCit2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJj
ZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0
aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIElPU3VyZmFjZTo6
TG9ja2VyIGxvY2soKm1fc3VyZmFjZSwgSU9TdXJmYWNlOjpMb2NrZXI6OkFjY2Vzc01vZGU6OlJl
YWRXcml0ZSk7CisgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKHNv
dXJjZUJhY2tlbmQsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZURhdGEsIGxv
Y2suc3VyZmFjZUJhc2VBZGRyZXNzKCkpOworICAgIG1fcmVxdWlyZXNEcmF3QWZ0ZXJQdXRQaXhl
bEJ1ZmZlciA9IHRydWU7Cit9CisKIElPU3VyZmFjZSogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kOjpzdXJmYWNlKCkKIHsKICAgICBmbHVzaENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmgKaW5kZXggZWU5ZGVmYzIwODQ3NWZiZmI4ZTUxYmI3YWZhNDcyZTg2Njdm
ODUzYy4uOTA3ZjdmZjhhMmUzMTBmZjUzNWE3ODNiNzUwMjgyZmIzYjgzZDM5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTYxLDggKzYxLDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRyYXdDb25zdW1pbmcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogCiAKLSAgICBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxC
dWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVj
dCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOworICAgIE9wdGlv
bmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYg
b3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBj
b3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJ
bnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVm
ZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29u
c3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBpc0luVXNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNw
cAppbmRleCBhNmZiNjhmODk3MDc5ZjIyYjJlNjg2NzMxZGZmZjA4NDAzNmIyN2Y2Li4zMDc4ZGY2
NWRiYWY3MzU5ZDgwYTdhOWE1YzQ5NGY4YWI0ZjU3MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dC5jcHAKQEAgLTI1Miw2ICsyNTIsOCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhh
bmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPERyYXdHbHlwaHM+KGl0ZW0uZ2V0PERy
YXdHbHlwaHM+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKICAgICAg
ICAgcmV0dXJuIGFwcGVuZDxEcmF3SW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PERyYXdJbWFnZUJ1ZmZl
cj4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVy
biBhcHBlbmQ8UHV0SW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PFB1dEltYWdlQnVmZmVyPigpKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8
RHJhd05hdGl2ZUltYWdlPihpdGVtLmdldDxEcmF3TmF0aXZlSW1hZ2U+KCkpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
QnVmZmVyLmNwcAppbmRleCA3NjdhZTFjZTI3MDA1YjBmZGQzNTdkMTlmYjdmODhjMzc2MTY3ZWRk
Li4xZWRmMjI0MTBjYjk2OGZiZWRhYjg4MGZiZDc0MDU0NjM5ZmMwNmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTkwLDYgKzE5MCw3IEBAIHZv
aWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXI6CiAgICAgY2FzZSBJdGVt
VHlwZTo6UHV0UGl4ZWxCdWZmZXI6CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6
CiAgICAgICAgIC8vIFNob3VsZCBhbHJlYWR5IGJlIGhhbmRsZWQgYnkgdGhlIGRlbGVnYXRlLgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjg2LDYg
KzI4Nyw5IEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBJdGVtVHlwZTo6
UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIGdldDxQdXRQaXhlbEJ1ZmZlcj4oKS5+UHV0UGl4ZWxC
dWZmZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVm
ZmVyOgorICAgICAgICBnZXQ8UHV0SW1hZ2VCdWZmZXI+KCkuflB1dEltYWdlQnVmZmVyKCk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAgICAg
Z2V0PFNldExpbmVEYXNoPigpLn5TZXRMaW5lRGFzaCgpOwogICAgICAgICByZXR1cm47CkBAIC01
MDgsNiArNTEyLDggQEAgYm9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtVHlwZSBpdGVtVHlw
ZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PEdldFBpeGVsQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxQdXRQaXhlbEJ1ZmZlcj4o
aXRlbU9mZnNldCwgKnRoaXMpOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOgor
ICAgICAgICByZXR1cm4gY29weUludG88UHV0SW1hZ2VCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKICAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPFNldExpbmVEYXNoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0U3RhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXgg
MDM4MTNiODM4OGIwMjM4YThlNzY3MjkwNzhiNWEyMjNkYzEzMzJlYi4uNmM1NTkxMzY5YjIzMDMz
MDgxYzUyODIyMzNiYzBkYTZhOWE2MzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRl
bUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihHZXRQaXhlbEJ1
ZmZlcik7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIHJldHVy
biBzaXplb2YoUHV0UGl4ZWxCdWZmZXIpOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVm
ZmVyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKFB1dEltYWdlQnVmZmVyKTsKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFBhaW50RnJhbWVGb3JNZWRpYSk7CkBAIC0yNDEsNiArMjQzLDcgQEAgYm9v
bCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRG
cmFtZUZvck1lZGlhOgogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6
CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6
U3Ryb2tlRWxsaXBzZToKICNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKICAgICBjYXNlIEl0
ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRoOgpAQCAtMzMzLDYgKzMzNiw3IEBAIGJvb2wgaXNJbmxp
bmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5
cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICNlbmRpZgorICAgIGNhc2UgSXRlbVR5cGU6OlB1dElt
YWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgY2FzZSBJdGVtVHlw
ZTo6Um90YXRlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbVR5cGUuaAppbmRleCBjM2UxY2VjZjBlYzRiZGQ1NTU5MTY3N2FhNDBhYWVkZDYy
NzAyMjliLi44NmFiZDFiMTA0Mjg2ZWQ3MTg1NDA3YTQ3OTkyZTI3MjdmZjZjNTc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTgxLDYgKzgxLDcgQEAgZW51bSBj
bGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZl
ciwKICAgICBHZXRQaXhlbEJ1ZmZlciwKICAgICBQdXRQaXhlbEJ1ZmZlciwKKyAgICBQdXRJbWFn
ZUJ1ZmZlciwKICNpZiBFTkFCTEUoVklERU8pCiAgICAgUGFpbnRGcmFtZUZvck1lZGlhLAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZjIyMmUyMTgzYTM5
MTAzYmQ2OTg1MzQ0NjRkZjNjYjBhOGZmOTA3ZS4uMGQwZmE1YzkxMWYyN2FjMDUyZWI4NWRmZDU4
YWI3NDQ1MmQ3NmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAt
Nzg3LDMxICs3ODcsMzEgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEZpbGxFbGxpcHNlJiBpdGVtKQogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEdldFBpeGVsQnVmZmVyJiBpdGVtKQogewogICAg
IHRzLmR1bXBQcm9wZXJ0eSgib3V0cHV0Rm9ybWF0IiwgaXRlbS5vdXRwdXRGb3JtYXQoKSk7Ci0g
ICAgdHMuZHVtcFByb3BlcnR5KCJzcmNSZWN0IiwgaXRlbS5zcmNSZWN0KCkpOworICAgIHRzLmR1
bXBQcm9wZXJ0eSgic291cmNlUmVjdCIsIGl0ZW0uc291cmNlUmVjdCgpKTsKICAgICByZXR1cm4g
dHM7CiB9CiAKLVB1dFBpeGVsQnVmZmVyOjpQdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKLSAgICA6IG1fc3Jj
UmVjdChzcmNSZWN0KQotICAgICwgbV9kZXN0UG9pbnQoZGVzdFBvaW50KQorUHV0UGl4ZWxCdWZm
ZXI6OlB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpCisgICAgOiBtX3NvdXJjZVJl
Y3Qoc291cmNlUmVjdCkKKyAgICAsIG1fZGVzdGluYXRpb25Qb2ludChkZXN0aW5hdGlvblBvaW50
KQogICAgICwgbV9waXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlci5kZWVwQ2xvbmUoKSkgLy8gVGhpcyBj
b3B5IGlzIGFjdHVhbGx5IHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBzZW1hbnRpY3Mgb2YgcHV0
UGl4ZWxCdWZmZXIoKS4KLSAgICAsIG1fZGVzdEZvcm1hdChkZXN0Rm9ybWF0KQorICAgICwgbV9k
ZXN0aW5hdGlvbkZvcm1hdChkZXN0aW5hdGlvbkZvcm1hdCkKIHsKIH0KIAotUHV0UGl4ZWxCdWZm
ZXI6OlB1dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVyJiYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gZGVzdEZvcm1hdCkKLSAgICA6IG1fc3JjUmVjdChzcmNSZWN0KQotICAgICwgbV9kZXN0
UG9pbnQoZGVzdFBvaW50KQorUHV0UGl4ZWxCdWZmZXI6OlB1dFBpeGVsQnVmZmVyKFBpeGVsQnVm
ZmVyJiYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBv
aW50JiBkZXN0aW5hdGlvblBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9u
Rm9ybWF0KQorICAgIDogbV9zb3VyY2VSZWN0KHNvdXJjZVJlY3QpCisgICAgLCBtX2Rlc3RpbmF0
aW9uUG9pbnQoZGVzdGluYXRpb25Qb2ludCkKICAgICAsIG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShw
aXhlbEJ1ZmZlcikpCi0gICAgLCBtX2Rlc3RGb3JtYXQoZGVzdEZvcm1hdCkKKyAgICAsIG1fZGVz
dGluYXRpb25Gb3JtYXQoZGVzdGluYXRpb25Gb3JtYXQpCiB7CiB9CiAKIFB1dFBpeGVsQnVmZmVy
OjpQdXRQaXhlbEJ1ZmZlcihjb25zdCBQdXRQaXhlbEJ1ZmZlciYgb3RoZXIpCi0gICAgOiBtX3Ny
Y1JlY3Qob3RoZXIubV9zcmNSZWN0KQotICAgICwgbV9kZXN0UG9pbnQob3RoZXIubV9kZXN0UG9p
bnQpCisgICAgOiBtX3NvdXJjZVJlY3Qob3RoZXIubV9zb3VyY2VSZWN0KQorICAgICwgbV9kZXN0
aW5hdGlvblBvaW50KG90aGVyLm1fZGVzdGluYXRpb25Qb2ludCkKICAgICAsIG1fcGl4ZWxCdWZm
ZXIob3RoZXIubV9waXhlbEJ1ZmZlci5kZWVwQ2xvbmUoKSkKLSAgICAsIG1fZGVzdEZvcm1hdChv
dGhlci5tX2Rlc3RGb3JtYXQpCisgICAgLCBtX2Rlc3RpbmF0aW9uRm9ybWF0KG90aGVyLm1fZGVz
dGluYXRpb25Gb3JtYXQpCiB7CiB9CiAKQEAgLTgyNCwxOCArODI0LDI1IEBAIFB1dFBpeGVsQnVm
ZmVyJiBQdXRQaXhlbEJ1ZmZlcjo6b3BlcmF0b3I9KGNvbnN0IFB1dFBpeGVsQnVmZmVyJiBvdGhl
cikKIAogdm9pZCBQdXRQaXhlbEJ1ZmZlcjo6c3dhcChQdXRQaXhlbEJ1ZmZlciYgb3RoZXIpCiB7
Ci0gICAgc3RkOjpzd2FwKG1fc3JjUmVjdCwgb3RoZXIubV9zcmNSZWN0KTsKLSAgICBzdGQ6OnN3
YXAobV9kZXN0UG9pbnQsIG90aGVyLm1fZGVzdFBvaW50KTsKKyAgICBzdGQ6OnN3YXAobV9zb3Vy
Y2VSZWN0LCBvdGhlci5tX3NvdXJjZVJlY3QpOworICAgIHN0ZDo6c3dhcChtX2Rlc3RpbmF0aW9u
UG9pbnQsIG90aGVyLm1fZGVzdGluYXRpb25Qb2ludCk7CiAgICAgc3RkOjpzd2FwKG1fcGl4ZWxC
dWZmZXIsIG90aGVyLm1fcGl4ZWxCdWZmZXIpOwotICAgIHN0ZDo6c3dhcChtX2Rlc3RGb3JtYXQs
IG90aGVyLm1fZGVzdEZvcm1hdCk7CisgICAgc3RkOjpzd2FwKG1fZGVzdGluYXRpb25Gb3JtYXQs
IG90aGVyLm1fZGVzdGluYXRpb25Gb3JtYXQpOwogfQogCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUHV0UGl4ZWxCdWZmZXImIGl0ZW0pCiB7CiAg
ICAgdHMuZHVtcFByb3BlcnR5KCJwaXhlbEJ1ZmZlclNpemUiLCBpdGVtLnBpeGVsQnVmZmVyKCku
c2l6ZSgpKTsKLSAgICB0cy5kdW1wUHJvcGVydHkoInNyY1JlY3QiLCBpdGVtLnNyY1JlY3QoKSk7
Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0UG9pbnQiLCBpdGVtLmRlc3RQb2ludCgpKTsKLSAg
ICB0cy5kdW1wUHJvcGVydHkoImRlc3RGb3JtYXQiLCBpdGVtLmRlc3RGb3JtYXQoKSk7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJzb3VyY2VSZWN0IiwgaXRlbS5zb3VyY2VSZWN0KCkpOworICAgIHRz
LmR1bXBQcm9wZXJ0eSgiZGVzdGluYXRpb25Qb2ludCIsIGl0ZW0uZGVzdGluYXRpb25Qb2ludCgp
KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImRlc3RpbmF0aW9uRm9ybWF0IiwgaXRlbS5kZXN0aW5h
dGlvbkZvcm1hdCgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBQdXRJbWFnZUJ1ZmZlciYgaXRlbSkKK3sK
KyAgICB0cy5kdW1wUHJvcGVydHkoInNvdXJjZVJlY3QiLCBpdGVtLnNvdXJjZVJlY3QoKSk7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0aW5hdGlvblBvaW50IiwgaXRlbS5kZXN0aW5hdGlvblBv
aW50KCkpOwogICAgIHJldHVybiB0czsKIH0KIApAQCAtMTEwMSw2ICsxMTA4LDcgQEAgc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOiB0cyA8PCAibWV0
YS1jb21tYW5kLWNoYW5nZS1pdGVtLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkdldFBpeGVsQnVmZmVyOiB0cyA8PCAiZ2V0LXBpeGVsLWJ1ZmZlciI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyOiB0cyA8PCAicHV0LXBpeGVsLWJ1ZmZlciI7IGJy
ZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlQnVmZmVyOiB0cyA8PCAicHV0LWltYWdl
LWJ1ZmZlciI7IGJyZWFrOwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQ
YWludEZyYW1lRm9yTWVkaWE6IHRzIDw8ICJwYWludC1mcmFtZS1mb3ItbWVkaWEiOyBicmVhazsK
ICNlbmRpZgpAQCAtMTI3Miw2ICsxMjgwLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OlB1dFBpeGVs
QnVmZmVyOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxQdXRQaXhlbEJ1ZmZlcj4oKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VCdWZmZXI6CisgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PFB1dEltYWdlQnVmZmVyPigpOworICAgICAgICBicmVhazsKICNpZiBFTkFC
TEUoVklERU8pCiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAg
ICB0cyA8PCBpdGVtLmdldDxQYWludEZyYW1lRm9yTWVkaWE+KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAppbmRleCA4Mzk0YmQzODJmOTI1NWIzOTQzNDIzZDE5M2EwMDljYzc4YTU4
NTg1Li5jOTgwMjYyMDExYmZlMjM3MjA0OWNiOTljMGEyYjljYzJkMWY1ZGM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTE5NjQsOCArMTk2NCw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gZmFsc2U7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAotICAgIEdldFBpeGVsQnVm
ZmVyKFBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVj
dCkKLSAgICAgICAgOiBtX3NyY1JlY3Qoc3JjUmVjdCkKKyAgICBHZXRQaXhlbEJ1ZmZlcihQaXhl
bEJ1ZmZlckZvcm1hdCBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpCisg
ICAgICAgIDogbV9zb3VyY2VSZWN0KHNvdXJjZVJlY3QpCiAgICAgICAgICwgbV9vdXRwdXRGb3Jt
YXQoV1RGTW92ZShvdXRwdXRGb3JtYXQpKQogICAgIHsKICAgICB9CkBAIC0xOTc2LDI5ICsxOTc2
LDI5IEBAIHB1YmxpYzoKICAgICB+R2V0UGl4ZWxCdWZmZXIoKSB7IH0KIAogICAgIGNvbnN0IFBp
eGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX291dHB1dEZv
cm1hdDsgfQotICAgIEludFJlY3Qgc3JjUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsg
fQorICAgIEludFJlY3Qgc291cmNlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlUmVjdDsg
fQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHZXRQaXhl
bEJ1ZmZlcj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBJbnRSZWN0IG1fc3Jj
UmVjdDsKKyAgICBJbnRSZWN0IG1fc291cmNlUmVjdDsKICAgICBQaXhlbEJ1ZmZlckZvcm1hdCBt
X291dHB1dEZvcm1hdDsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIEdldFBp
eGVsQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IG1fc3JjUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fc291cmNlUmVjdDsKICAgICBlbmNvZGVy
IDw8IG1fb3V0cHV0Rm9ybWF0OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogT3B0aW9u
YWw8R2V0UGl4ZWxCdWZmZXI+IEdldFBpeGVsQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBPcHRpb25hbDxJbnRSZWN0PiBzcmNSZWN0OwotICAgIGRlY29kZXIgPj4gc3Jj
UmVjdDsKLSAgICBpZiAoIXNyY1JlY3QpCisgICAgT3B0aW9uYWw8SW50UmVjdD4gc291cmNlUmVj
dDsKKyAgICBkZWNvZGVyID4+IHNvdXJjZVJlY3Q7CisgICAgaWYgKCFzb3VyY2VSZWN0KQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8UGl4ZWxCdWZmZXJGb3Jt
YXQ+IG91dHB1dEZvcm1hdDsKQEAgLTIwMDYsNyArMjAwNiw3IEBAIE9wdGlvbmFsPEdldFBpeGVs
QnVmZmVyPiBHZXRQaXhlbEJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYg
KCFvdXRwdXRGb3JtYXQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1
cm4ge3sgV1RGTW92ZSgqb3V0cHV0Rm9ybWF0KSwgKnNyY1JlY3QgfX07CisgICAgcmV0dXJuIHt7
IFdURk1vdmUoKm91dHB1dEZvcm1hdCksICpzb3VyY2VSZWN0IH19OwogfQogCiBjbGFzcyBQdXRQ
aXhlbEJ1ZmZlciB7CkBAIC0yMDE1LDggKzIwMTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc0RyYXdpbmdJdGVtID0gdHJ1ZTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVs
QnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBQdXRQaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlciYmLCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RGb3JtYXQpOworICAgIFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVsQnVmZmVy
KGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRp
b25Gb3JtYXQpOworICAgIFdFQkNPUkVfRVhQT1JUIFB1dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVy
JiYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlv
blBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9ybWF0KTsKIAogICAg
IFB1dFBpeGVsQnVmZmVyKGNvbnN0IFB1dFBpeGVsQnVmZmVyJik7CiAgICAgUHV0UGl4ZWxCdWZm
ZXIoUHV0UGl4ZWxCdWZmZXImJikgPSBkZWZhdWx0OwpAQCAtMjAyNiw1OSArMjAyNiw4NiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzd2FwKFB1dFBpeGVsQnVmZmVyJik7CiAKICAgICBjb25zdCBQaXhl
bEJ1ZmZlciYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVyOyB9Ci0g
ICAgSW50UmVjdCBzcmNSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9Ci0gICAgSW50
UG9pbnQgZGVzdFBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0UG9pbnQ7IH0KLSAgICBBbHBo
YVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RGb3Jt
YXQ7IH0KKyAgICBJbnRSZWN0IHNvdXJjZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVJl
Y3Q7IH0KKyAgICBJbnRQb2ludCBkZXN0aW5hdGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvblBvaW50OyB9CisgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0aW5hdGlv
bkZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25Gb3JtYXQ7IH0KIAogICAgIE9w
dGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29u
c3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9i
YWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiB7eyBtX2Rlc3RQb2ludCwgbV9zcmNSZWN0LnNpemUo
KSB9fTsgfQorICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyBy
ZXR1cm4ge3sgbV9kZXN0aW5hdGlvblBvaW50LCBtX3NvdXJjZVJlY3Quc2l6ZSgpIH19OyB9CiAK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFB1dFBpeGVsQnVm
ZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIEludFJlY3QgbV9zcmNSZWN0
OwotICAgIEludFBvaW50IG1fZGVzdFBvaW50OworICAgIEludFJlY3QgbV9zb3VyY2VSZWN0Owor
ICAgIEludFBvaW50IG1fZGVzdGluYXRpb25Qb2ludDsKICAgICBQaXhlbEJ1ZmZlciBtX3BpeGVs
QnVmZmVyOwotICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gbV9kZXN0Rm9ybWF0OworICAgIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24gbV9kZXN0aW5hdGlvbkZvcm1hdDsKIH07CiAKIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1dFBpeGVsQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7Ci0gICAgZW5jb2Rl
ciA8PCBtX3NyY1JlY3Q7Ci0gICAgZW5jb2RlciA8PCBtX2Rlc3RQb2ludDsKLSAgICBlbmNvZGVy
IDw8IG1fZGVzdEZvcm1hdDsKKyAgICBlbmNvZGVyIDw8IG1fc291cmNlUmVjdDsKKyAgICBlbmNv
ZGVyIDw8IG1fZGVzdGluYXRpb25Qb2ludDsKKyAgICBlbmNvZGVyIDw8IG1fZGVzdGluYXRpb25G
b3JtYXQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CiBPcHRpb25hbDxQdXRQaXhlbEJ1
ZmZlcj4gUHV0UGl4ZWxCdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIE9w
dGlvbmFsPFBpeGVsQnVmZmVyPiBwaXhlbEJ1ZmZlcjsKLSAgICBPcHRpb25hbDxJbnRSZWN0PiBz
cmNSZWN0OwotICAgIE9wdGlvbmFsPEludFBvaW50PiBkZXN0UG9pbnQ7Ci0gICAgT3B0aW9uYWw8
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbj4gZGVzdEZvcm1hdDsKKyAgICBPcHRpb25hbDxJbnRSZWN0
PiBzb3VyY2VSZWN0OworICAgIE9wdGlvbmFsPEludFBvaW50PiBkZXN0aW5hdGlvblBvaW50Owor
ICAgIE9wdGlvbmFsPEFscGhhUHJlbXVsdGlwbGljYXRpb24+IGRlc3RpbmF0aW9uRm9ybWF0Owog
CiAgICAgZGVjb2RlciA+PiBwaXhlbEJ1ZmZlcjsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgZGVjb2RlciA+PiBzcmNSZWN0OwotICAg
IGlmICghc3JjUmVjdCkKKyAgICBkZWNvZGVyID4+IHNvdXJjZVJlY3Q7CisgICAgaWYgKCFzb3Vy
Y2VSZWN0KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgZGVjb2RlciA+PiBk
ZXN0UG9pbnQ7Ci0gICAgaWYgKCFkZXN0UG9pbnQpCisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlv
blBvaW50OworICAgIGlmICghZGVzdGluYXRpb25Qb2ludCkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAotICAgIGRlY29kZXIgPj4gZGVzdEZvcm1hdDsKLSAgICBpZiAoIWRlc3RGb3Jt
YXQpCisgICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbkZvcm1hdDsKKyAgICBpZiAoIWRlc3RpbmF0
aW9uRm9ybWF0KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHt7
IFdURk1vdmUoKnBpeGVsQnVmZmVyKSwgKnNyY1JlY3QsICpkZXN0UG9pbnQsICpkZXN0Rm9ybWF0
IH19OworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpzb3VyY2VSZWN0LCAq
ZGVzdGluYXRpb25Qb2ludCwgKmRlc3RpbmF0aW9uRm9ybWF0IH19OwogfQogCitjbGFzcyBQdXRJ
bWFnZUJ1ZmZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVt
VHlwZSA9IEl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3
aW5nSXRlbSA9IHRydWU7CisKKyAgICBQdXRJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkKKyAgICAgICAgOiBtX2ltYWdlQnVm
ZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2VS
ZWN0KHNvdXJjZVJlY3QpCisgICAgICAgICwgbV9kZXN0aW5hdGlvblBvaW50KGRlc3RpbmF0aW9u
UG9pbnQpCisgICAgeworICAgIH0KKworICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRp
ZmllcjsgfQorICAgIEludFJlY3Qgc291cmNlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
UmVjdDsgfQorICAgIEludFBvaW50IGRlc3RpbmF0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBt
X2Rlc3RpbmF0aW9uUG9pbnQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBt
X2ltYWdlQnVmZmVySWRlbnRpZmllci5pc1ZhbGlkKCk7IH0KKworICAgIE9wdGlvbmFsPEZsb2F0
UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAg
T3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBj
b25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgSW50UmVjdCBt
X3NvdXJjZVJlY3Q7CisgICAgSW50UG9pbnQgbV9kZXN0aW5hdGlvblBvaW50OworfTsKKwogI2lm
IEVOQUJMRShWSURFTykKIGNsYXNzIFBhaW50RnJhbWVGb3JNZWRpYSB7CiBwdWJsaWM6CkBAIC0y
NTA5LDYgKzI1MzYsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlciwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlB1dEltYWdlQnVmZmVyLAogI2lmIEVOQUJMRShWSURFTykKICAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYSwKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDgyYjJjN2FiNjUxMzgyMTBiZjNi
NjU0ZTU5MmVkMzA3MWU0ZjgxMGEuLmJiMjAwYTBlYWMxY2VjZmJkNWE1YjU1NzgyMWVhNzMwMWRl
ZDRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTcx
LDkgKzcxLDE0IEBAIHZvaWQgUmVjb3JkZXI6OmdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlCiAgICAgYXBwZW5kPEdldFBpeGVs
QnVmZmVyPihvdXRwdXRGb3JtYXQsIHNvdXJjZVJlY3QpOwogfQogCi12b2lkIFJlY29yZGVyOjpw
dXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBk
ZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3Zv
aWQgUmVjb3JkZXI6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZl
ciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpCiB7Ci0gICAg
YXBwZW5kPFB1dFBpeGVsQnVmZmVyPihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBk
ZXN0Rm9ybWF0KTsKKyAgICBhcHBlbmQ8UHV0UGl4ZWxCdWZmZXI+KHBpeGVsQnVmZmVyLCBzb3Vy
Y2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBkZXN0aW5hdGlvbkZvcm1hdCk7Cit9CisKK3ZvaWQg
UmVjb3JkZXI6OnB1dEltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3VyY2VJbWFn
ZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQpCit7CisgICAgYXBwZW5kPFB1dEltYWdlQnVmZmVyPihzb3VyY2VJbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCk7CiB9
CiAKIHN0YXRpYyBib29sIGNvbnRhaW5zT25seUlubGluZVN0YXRlQ2hhbmdlcyhjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0
YXRlQ2hhbmdlRmxhZ3MgY2hhbmdlRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaAppbmRleCA2MWJmNzlkNDgwOGRhNjBjYmE5NWE0MzAxMzYwMDVkZjZhYTRmMGMzLi5h
NTNlMjNmMTk2NDU3YjA0MWE0ZmUxZTljNGRjNDliMDY5ZGJjNDk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTU5LDcgKzU5LDggQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgflJlY29yZGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQs
IGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0
UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3Jt
YXQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGlu
YXRpb25Qb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0aW5hdGlvbkZvcm1hdCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZl
ciYsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlv
blBvaW50KTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxp
c3QuaXNFbXB0eSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4YTM2YTQxMDI2YmQz
YTU4NTQ0NzgyMDI3NGMxMTA3ZDc4MzkyZTkuLmMwZmZkNmY3ZTlhNGU2N2Q1OTM5ZmMyN2YyYWRi
NDM5NWRkMzgwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lk
IFNvdXJjZUdyYXBoaWM6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgaWYgKCFyZXN1bHRJ
bWFnZSB8fCAhc291cmNlSW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc3VsdEltYWdl
LT5jb250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgSW50UG9pbnQoKSk7Cisg
ICAgcmVzdWx0SW1hZ2UtPnB1dEltYWdlQnVmZmVyKCpzb3VyY2VJbWFnZSwgeyBJbnRQb2ludCgp
LCBzb3VyY2VJbWFnZS0+bG9naWNhbFNpemUoKSB9LCBJbnRQb2ludCgpKTsKIH0KIAogVGV4dFN0
cmVhbSYgU291cmNlR3JhcGhpYzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0
cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBlOTBiMzExYjcxNTVl
NDY4NDQ1NmRiYWQyYjE4YzM0NjcwOGE4MjVlLi41MmI0ZjY2MzUyOTEzZGEwY2VlNTA5NTM3YWRm
OGVjZDNiYzJkNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBSZW1vdGVJ
bWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRU
eXBlPiwgcHVibAogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0Owog
ICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcg
QmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dFBpeGVsQnVmZmVyOworICAgIHVzaW5nIEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcjsKIAogcHVibGljOgogICAgIHN0YXRp
YyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgY29uc3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNw
YWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTc4LDE0ICs3OSwyNSBA
QCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkdldFBpeGVsQnVmZmVyPigpKSB7CiAgICAgICAgICAgICBhdXRvJiBnZXRQaXhlbEJ1ZmZl
ckl0ZW0gPSBpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6R2V0UGl4ZWxCdWZmZXI+KCk7
Ci0gICAgICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6
OmdldFBpeGVsQnVmZmVyKGdldFBpeGVsQnVmZmVySXRlbS5vdXRwdXRGb3JtYXQoKSwgZ2V0UGl4
ZWxCdWZmZXJJdGVtLnNyY1JlY3QoKSk7CisgICAgICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0g
QmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmdldFBpeGVsQnVmZmVyKGdldFBpeGVsQnVmZmVySXRl
bS5vdXRwdXRGb3JtYXQoKSwgZ2V0UGl4ZWxCdWZmZXJJdGVtLnNvdXJjZVJlY3QoKSk7CiAgICAg
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucG9wdWxhdGVHZXRQaXhlbEJ1ZmZlclNo
YXJlZE1lbW9yeShXVEZNb3ZlKHBpeGVsQnVmZmVyKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpQdXRQaXhlbEJ1ZmZlcj4oKSkgewogICAgICAgICAgICAgYXV0byYgcHV0UGl4ZWxCdWZmZXJJ
dGVtID0gaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dFBpeGVsQnVmZmVyPigpOwot
ICAgICAgICAgICAgcHV0UGl4ZWxCdWZmZXIocHV0UGl4ZWxCdWZmZXJJdGVtLnBpeGVsQnVmZmVy
KCksIHB1dFBpeGVsQnVmZmVySXRlbS5zcmNSZWN0KCksIHB1dFBpeGVsQnVmZmVySXRlbS5kZXN0
UG9pbnQoKSwgcHV0UGl4ZWxCdWZmZXJJdGVtLmRlc3RGb3JtYXQoKSk7CisgICAgICAgICAgICBw
dXRQaXhlbEJ1ZmZlcihwdXRQaXhlbEJ1ZmZlckl0ZW0ucGl4ZWxCdWZmZXIoKSwgcHV0UGl4ZWxC
dWZmZXJJdGVtLnNvdXJjZVJlY3QoKSwgcHV0UGl4ZWxCdWZmZXJJdGVtLmRlc3RpbmF0aW9uUG9p
bnQoKSwgcHV0UGl4ZWxCdWZmZXJJdGVtLmRlc3RpbmF0aW9uRm9ybWF0KCkpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlbS5pczxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VCdWZmZXI+KCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHB1
dEltYWdlQnVmZmVySXRlbSA9IGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFn
ZUJ1ZmZlcj4oKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlSW1hZ2UgPSBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQucmVtb3RlUmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKHB1dElt
YWdlQnVmZmVySXRlbS5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBpZiAo
IXNvdXJjZUltYWdlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cHV0SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlLCBwdXRJbWFnZUJ1ZmZlckl0ZW0uc291cmNlUmVj
dCgpLCBwdXRJbWFnZUJ1ZmZlckl0ZW0uZGVzdGluYXRpb25Qb2ludCgpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBk
MzQ0NWZlYTcyZDVkYzNlMWRjMzM1NjFiODExMjM5ZmUwMTNmZDY2Li4zMTNkMDkxYjg1NWMzMGQz
NDQxYTViNWI5MjgwN2RkNDFjZGU3MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC01
NjgsNiArNTY4LDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5V
U0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWMKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICNl
bmRpZgorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZUJ1ZmZlcjoKICAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIERpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6Um90YXRlOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
YXZlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3Bw
CmluZGV4IDRmYTdjMjgyZmJkMDgyY2Y4YjY3ZTgxNDBmNGU1NTY2MDNlMWY1NzEuLmMwM2ZlOTM2
NzRhZWQ3YzExZjMzZjdhYTliZjJjZjQ4OWI1YjIzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKQEAgLTE1NCwxNCArMTU0LDI0IEBAIFJl
ZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2Uo
QmFja2luZ1N0b3JlQ29weSwgUHJlCiAgICAgcmV0dXJuIG1fYml0bWFwLT5jcmVhdGVJbWFnZSgp
OwogfQogCi1PcHRpb25hbDxQaXhlbEJ1ZmZlcj4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9y
bWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdAorT3B0aW9uYWw8UGl4ZWxCdWZmZXI+
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3Qg
UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCkgY29uc3QKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZl
cihvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIG1fYml0bWFwLT5kYXRhKCkpOworICAgIHJldHVybiBJ
bWFnZUJ1ZmZlckJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKG91dHB1dEZvcm1hdCwgc291cmNlUmVj
dCwgbV9iaXRtYXAtPmRhdGEoKSk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3ZvaWQgSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYg
cGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3Jt
YXQpCiB7Ci0gICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZl
ciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0LCBtX2JpdG1hcC0+ZGF0YSgpKTsKKyAg
ICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzb3VyY2VS
ZWN0LCBkZXN0aW5hdGlvblBvaW50LCBkZXN0Rm9ybWF0LCBtX2JpdG1hcC0+ZGF0YSgpKTsKK30K
Kwordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVs
c1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAoreworICAgIGRl
c3RCYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0
aW9uUG9pbnQsIG1fYml0bWFwLT5kYXRhKCkpOworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJh
Y2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAg
IEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBz
b3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBtX2JpdG1hcC0+ZGF0YSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCBiNmE5NGYxMDMxMTA0N2Y5MjE4OTNiNjc0ZTEx
NzJlMjczZTM2NDY3Li45NWE1ODUxOWMwYTMyNWEyYzNkYzBhZTg1MmVlZGNmM2E1NmJmYmVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTU4
LDggKzU4LDExIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNv
cHlOYXRpdmVJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5ID0gV2ViQ29yZTo6Q29weUJh
Y2tpbmdTdG9yZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBj
b3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSA9IFdlYkNvcmU6OkNvcHlCYWNraW5n
U3RvcmUsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiA9IFdlYkNvcmU6OlByZXNlcnZlUmVz
b2x1dGlvbjo6Tm8pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGl4
ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0
JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRl
c3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVy
cmlkZTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIo
Y29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgc291cmNlUmVjdCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBv
aW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RpbmF0aW9uRm9ybWF0KSBv
dmVycmlkZTsKKworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZm
ZXJCYWNrZW5kJiBkZXN0QmFja2VuZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1
ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2
b2lkKiBzb3VyY2VEYXRhKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRl
c1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRl
eCAxMjNkNTM5YzgyYTQ2NTIzZTZlYTg4YzA5NGNjZDljMWI3ZmI5Y2M2Li5mNGY4NWFiZWFlNDdh
OTg2OTdjNWVmYjJiNDk3MzVlMjM2NmVmMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aApAQCAtMTk1LDEyICsxOTUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gYml0bWFw
LT5jcmVhdGVJbWFnZSgpOwogICAgIH0KIAotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVm
ZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgZGVz
dGluYXRpb25Gb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92
ZXJyaWRlCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBkZXN0aW5hdGlvbkZvcm1hdCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQogICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgICAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gV2ViQ29yZTo6UGl4ZWxCdWZmZXI6OnRyeUNyZWF0ZShkZXN0aW5hdGlvbkZvcm1hdCwgc3Jj
UmVjdC5zaXplKCkpOworICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6UGl4ZWxC
dWZmZXI6OnRyeUNyZWF0ZShkZXN0aW5hdGlvbkZvcm1hdCwgc291cmNlUmVjdC5zaXplKCkpOwog
ICAgICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgc2l6ZV90IGRhdGFTaXplID0gcGl4ZWxCdWZmZXItPmRhdGEoKS5ieXRlTGVu
Z3RoKCk7CkBAIC0yMTEsNyArMjExLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBhdXRvJiBtdXRhYmxlVGhpcyA9IGNvbnN0X2Nhc3Q8
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSY+KCp0aGlzKTsKLSAgICAgICAgbXV0YWJsZVRoaXMubV9k
cmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLmdldFBpeGVsQnVmZmVyKGRlc3RpbmF0aW9uRm9ybWF0
LCBzcmNSZWN0KTsKKyAgICAgICAgbXV0YWJsZVRoaXMubV9kcmF3aW5nQ29udGV4dC5yZWNvcmRl
cigpLmdldFBpeGVsQnVmZmVyKGRlc3RpbmF0aW9uRm9ybWF0LCBzb3VyY2VSZWN0KTsKICAgICAg
ICAgbXV0YWJsZVRoaXMuZmx1c2hEcmF3aW5nQ29udGV4dEFzeW5jKCk7CiAKICAgICAgICAgaWYg
KG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT53YWl0Rm9yR2V0UGl4ZWxCdWZmZXJUb0Nv
bXBsZXRlKHRpbWVvdXQpKQpAQCAtMjIxLDEyICsyMjEsMjAgQEAgcHJvdGVjdGVkOgogICAgICAg
ICByZXR1cm4gcGl4ZWxCdWZmZXI7CiAgICAgfQogCi0gICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihj
b25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0s
IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCA9IFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQpIG92ZXJyaWRlCisgICAgdm9pZCBw
dXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBkZXN0aW5hdGlvblBvaW50ID0geyB9LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IGRlc3RpbmF0aW9uRm9ybWF0ID0gV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJl
bXVsdGlwbGllZCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIFRoZSBtYXRoIGluc2lkZSBQ
aXhlbEJ1ZmZlcjo6Y3JlYXRlKCkgZG9lc24ndCBhZ3JlZSB3aXRoIHRoZSBtYXRoIGluc2lkZSBJ
bWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKCkgYWJvdXQgaG93IG1fcmVzb2x1dGlv
blNjYWxlIGludGVyYWN0cyB3aXRoIHRoZSBkYXRhIGluIHRoZSBJbWFnZUJ1ZmZlci4KICAgICAg
ICAgLy8gVGhpcyBtZWFucyB0aGF0IHB1dFBpeGVsQnVmZmVyKCkgaXMgb25seSBjYWxsZWQgd2hl
biByZXNvbHV0aW9uU2NhbGUoKSA9PSAxLgogICAgICAgICBBU1NFUlQocmVzb2x1dGlvblNjYWxl
KCkgPT0gMSk7Ci0gICAgICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRQaXhlbEJ1
ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKKyAgICAg
ICAgbV9kcmF3aW5nQ29udGV4dC5yZWNvcmRlcigpLnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVy
LCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBkZXN0aW5hdGlvbkZvcm1hdCk7CisgICAg
fQorCisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgc291cmNl
SW1hZ2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYg
KGlzQ2FjaGVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UpKQorICAgICAgICAgICAgbV9kcmF3aW5n
Q29udGV4dC5yZWNvcmRlcigpLnB1dEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VSZWN0
LCBkZXN0aW5hdGlvblBvaW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXI6OnB1dEltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VSZWN0
LCBkZXN0aW5hdGlvblBvaW50KTsKICAgICB9CiAKICAgICBib29sIHByZWZlcnNQcmVwYXJhdGlv
bkZvckRpc3BsYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5k
ZXggNGNmMzlhMWM0NjA0YmQxMTZlMDM5OGY4YTU1ZjlmNTU1ZmJmNTI4Ni4uZWExYTg3Y2NlYzM3
YzAwOGMwOTVjMjRmNDc5ZDdhMmJmMzc5ODMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTI1LDYg
KzEyNSwxNiBAQCB2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6cHV0
UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjbwogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UG9pbnQmKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpj
b3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYsIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IHZvaWQqKQoreworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
SEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCAzNzBiZTFmMjE0ZjgxNDU2ZmFhMjU1MDcx
NzNmYzVkM2QwYTMzNWFkLi40OTQyZGI5MjYxZDM2MjFjZjBlN2Y4YzhjOTJiNTc4YWJiODRhZTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmgKQEAgLTU5LDggKzU5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdQ
YXR0ZXJuKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFN0cmluZyB0
b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5
LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIFZlY3Rv
cjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91Ymxl
PiBxdWFsaXR5KSBjb25zdCBvdmVycmlkZTsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1
ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91
dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBv
aW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRl
OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25z
dCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzb3VyY2VSZWN0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHB1dFBpeGVs
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQs
IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdGluYXRpb25Gb3JtYXQpIG92ZXJy
aWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNr
ZW5kJiBkZXN0QmFja2VuZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJh
Y2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBz
b3VyY2VEYXRhKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdp
bkF0VXBwZXJMZWZ0Q29ybmVyID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2Fu
TWFwQmFja2luZ1N0b3JlID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430196</attachid>
            <date>2021-05-31 04:43:41 -0700</date>
            <delta_ts>2021-05-31 05:33:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210531044340.patch</filename>
            <type>text/plain</type>
            <size>36278</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uODhjZmU1NzdkM2E4NjM2OGRlZTZlN2I2MjNjYzA0
ZDFjYjAyNmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA1LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIEFkZCBh
IG5ldyBmdW5jdGlvbiB3aGljaCBjb3BpZXMgcGl4ZWxzIGJldHdlZW4gdHdvIEltYWdlQnVmZmVy
IGJhY2tlbmRzLgorICAgICAgICBUaGUgYmFja2VuZHMgbWF5IGRpZmZlciBpbiB0aGUgcGl4ZWwg
Zm9ybWF0IG9yIHRoZSBjb2xvciBTcGFjZS4gQnV0IHRoZXkKKyAgICAgICAgaGF2ZSB0byBhZ3Jl
ZSBpbiB0aGUgc2NhbGUgcmVzb2x1dGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW1h
Z2VQaXhlbHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3Jt
YXQuaDoKKyAgICAgICAgV2UgaGF2ZSB0byB1c2UgY29udmVydEltYWdlUGl4ZWxzQWNjZWxlcmF0
ZWQoKSBpZiB3ZSBhcmUgY29weWluZyBiZXR3ZWVuCisgICAgICAgIGRpZmZlcmVudCBjb2xvciBz
cGFjZXMgc2luY2UgdGhlIG5vbi1hY2NlbGVyYXRlZCBwYXRoIGRvZXMgbm90IHN1cHBvcnQKKyAg
ICAgICAgY29udmVyc2lvbiBiZXR3ZWVuIGRpZmZlcmVudCBjb2xvciBzcGFjZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
Ojpjb3B5SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMg
ZnJvbSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBiYWNrZW5kcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICBVcyB0
aGUgbmV3IGZ1bmN0aW9uIHRvIGNvcHkgdGhlIEZpbHRlciBpbnB1dCBJbWFnZUJ1ZmZlciB0byBp
dHMKKyAgICAgICAgU291cmNlR3JhcGhpYy4KKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9w
dGlvbmFsIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjc2MGQ2NDdkNjljZjEyNmE0YjQwMjAwODMxYTM3NmU2YTI2NmUxMC4uNjUy
YzgxNjNmYjZhMTU3ZmMwZjk0MDEzN2JlMTk4ZWM0Mzk4NmRhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMS0wNS0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBNYWtlIEltYWdlQnVmZmVyIGJlIGFibGUgdG8gcHV0IHBpeGVscyBkaXJlY3Rs
eSBpbnRvIGl0cyBiYWNrZW5kIGZyb20gYW5vdGhlciBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0dGluZyBhbiBJbWFnZUJ1ZmZl
ciBpbnRvIGFub3RoZXIgc2hvdWxkIGhhdmUgYSBzcGVjaWFsIGNhc2UgaWYgdGhleSAKKyAgICAg
ICAgYXJlIGJvdGggcmVtb3RlIEltYWdlQnVmZmVycy4gUmVhZC1iYWNrIHNob3VsZCBiZSBhdm9p
ZGVkIGluIHRoaXMgY2FzZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnB1dEltYWdlQnVmZmVyRm9ySW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluOgorICAgICAgICBJbXBsZW1lbnQgUHV0SW1hZ2VCdWZmZXIgYXMgYSBzeW5jIG1l
c3NhZ2UgdG8gZW5zdXJlIG5laXRoZXIgdGhlIHNvdXJjZQorICAgICAgICBub3IgdGhlIGRlc3Rp
bmF0aW9uIGJ1ZmZlcnMgd2lsbCBjaGFuZ2UgYmVmb3JlIGNvcHlpbmcgdGhlIHBpeGVscy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZC5oOgorICAgICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMgZnJvbSB0aGUgc291
cmNlIGFuZCBkZXN0aW5hdGlvbiBiYWNrZW5kcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnB1dEltYWdlQnVmZmVyRm9ySW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICBEZWNpZGUgd2hldGhlciBwdXR0aW5nIGFuIElt
YWdlQnVmZmVyIGNhbiBiZSBkb25lIGluIEdQVVAgb3IgaXQgaGFzIHRvIAorICAgICAgICBnbyB0
aHJvdWdoIHRoZSBkcmF3aW5nIHNsb3cgcGF0aC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6
Y29weUltYWdlUGl4ZWxzVG8gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5oOgorCiAyMDIxLTA1LTI3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkIHVzaW5nIHN0ZDo6b3B0aW9uYWwgZGlyZWN0
bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0aW9uYWwgdHlwZWRlZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmlu
ZGV4IGVjMmRhMDIzOTJmMGFjOWNiODQ0ZGQ0NGMyZmJiYWRiNzVhNjg1OTUuLjFiOTZlYjcxMzY4
N2YxYmZmNGQwMjNmNzRmNmQxNDhlNjU1YmJlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTIzOSw2ICsy
MzksMjEgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IE9wdGlvbmFsPEludFJlY3Q+
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIGF1dG8gYWN0dWFsU291cmNlUmVjdCA9IHNvdXJjZVJlY3QudmFsdWVf
b3IoSW50UmVjdCh7IH0sIHNvdXJjZUltYWdlLmxvZ2ljYWxTaXplKCkpKTsKKyAgICAgICAgCisg
ICAgICAgIGlmIChyZXNvbHV0aW9uU2NhbGUoKSAhPSBzb3VyY2VJbWFnZS5yZXNvbHV0aW9uU2Nh
bGUoKSkgeworICAgICAgICAgICAgY29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcihzb3VyY2VJbWFn
ZSwgRmxvYXRSZWN0IHsgZGVzdGluYXRpb25Qb2ludCwgc291cmNlSW1hZ2UubG9naWNhbFNpemUo
KSB9LCBGbG9hdFJlY3QoYWN0dWFsU291cmNlUmVjdCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVk
KCk7CisgICAgICAgIGF1dG8qIHNvdXJjZUJhY2tlbmQgPSBzb3VyY2VJbWFnZS5lbnN1cmVCYWNr
ZW5kQ3JlYXRlZCgpOworICAgICAgICBpZiAoYmFja2VuZCAmJiBzb3VyY2VCYWNrZW5kKQorICAg
ICAgICAgICAgc291cmNlQmFja2VuZC0+Y29weUltYWdlUGl4ZWxzVG8oKmJhY2tlbmQsIGFjdHVh
bFNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQpOworICAgIH0KKwogICAgIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1
dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggNjRlYTQ4MzcyNjk2ZGFlOTA1
MGJhMDQxMjVhYzIwZmEwNGUwMGI5Yy4uNThkZGU2ODc3NzBkZjQwMjRhZThmYjNlNmNjOWY2ZTUy
ZWNjMzY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCkBAIC0xMjcsNiArMTI3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBPcHRpb25h
bDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91
dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQgPSB7IH0sIEFscGhhUHJlbXVsdGlw
bGljYXRpb24gZGVzdEZvcm1hdCA9IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxp
ZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBj
b25zdCBPcHRpb25hbDxJbnRSZWN0PiYgc291cmNlUmVjdCA9IHN0ZDo6bnVsbG9wdCwgY29uc3Qg
SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQgPSB7IH0pID0gMDsKIAogICAgIC8vIEZJWE1FOiBj
dXJyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlv
biB0aGF0IHRoZXkgb25seSB3b3JrCiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFyZSBSR0Ig
b3IgUkdCQSBmb3JtYXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAppbmRl
eCA0M2Y1MmJkNGJkODlkNTE2OTUzN2NiOTRjYzg1ZTA1MjljZWY4YzM1Li4zNzE5ZjhmM2ZmYjAz
YWNmYzA3NzZhMmVlZmY0MWYyNDI2MTM2MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKQEAgLTE2Niw0ICsx
NjYsMzkgQEAgdm9pZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBp
eGVsQnVmZmVyJiBzb3VyY2VQaXhlbEJ1ZmZlciwgY28KICAgICBjb252ZXJ0SW1hZ2VQaXhlbHMo
c291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7CiB9CiAKK3ZvaWQg
SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVy
QmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQq
IGRhdGEpCit7CisgICAgQVNTRVJUKHNvdXJjZUJhY2tlbmQucmVzb2x1dGlvblNjYWxlKCkgPT0g
cmVzb2x1dGlvblNjYWxlKCkpOworCisgICAgYXV0byBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNr
ZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVjdCk7CisgICAgYXV0byBkZXN0aW5hdGlvblBvaW50U2Nh
bGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0ZXMoZGVzdGluYXRpb25Qb2ludCk7CisKKyAgICBhdXRv
IHNvdXJjZVJlY3RDbGlwcGVkID0gaW50ZXJzZWN0aW9uKHsgSW50UG9pbnQ6Onplcm8oKSwgc291
cmNlQmFja2VuZC5iYWNrZW5kU2l6ZSgpIH0sIHNvdXJjZVJlY3RTY2FsZWQpOworICAgIGF1dG8g
ZGVzdGluYXRpb25SZWN0ID0gc291cmNlUmVjdENsaXBwZWQ7CisgICAgZGVzdGluYXRpb25SZWN0
Lm1vdmVCeShkZXN0aW5hdGlvblBvaW50U2NhbGVkKTsKKworICAgIGlmIChzb3VyY2VSZWN0U2Nh
bGVkLngoKSA8IDApCisgICAgICAgIGRlc3RpbmF0aW9uUmVjdC5zZXRYKGRlc3RpbmF0aW9uUmVj
dC54KCkgLSBzb3VyY2VSZWN0U2NhbGVkLngoKSk7CisKKyAgICBpZiAoc291cmNlUmVjdFNjYWxl
ZC55KCkgPCAwKQorICAgICAgICBkZXN0aW5hdGlvblJlY3Quc2V0WShkZXN0aW5hdGlvblJlY3Qu
eSgpIC0gc291cmNlUmVjdFNjYWxlZC55KCkpOworCisgICAgZGVzdGluYXRpb25SZWN0LmludGVy
c2VjdChiYWNrZW5kUmVjdCgpKTsKKyAgICBzb3VyY2VSZWN0Q2xpcHBlZC5zZXRTaXplKGRlc3Rp
bmF0aW9uUmVjdC5zaXplKCkpOworCisgICAgQ29uc3RQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3
IHNvdXJjZSB7CisgICAgICAgIHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGll
ZCwgc291cmNlQmFja2VuZC5waXhlbEZvcm1hdCgpLCBzb3VyY2VCYWNrZW5kLmNvbG9yU3BhY2Uo
KSB9LAorICAgICAgICBzb3VyY2VCYWNrZW5kLmJ5dGVzUGVyUm93KCksCisgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpICsgc291cmNlUmVjdENsaXBw
ZWQueSgpICogc291cmNlLmJ5dGVzUGVyUm93ICsgc291cmNlUmVjdENsaXBwZWQueCgpICogNAor
ICAgIH07CisKKyAgICBQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IGRlc3RpbmF0aW9uIHsKKyAg
ICAgICAgeyBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1h
dCgpLCBjb2xvclNwYWNlKCkgfSwKKyAgICAgICAgYnl0ZXNQZXJSb3coKSwKKyAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVz
dGluYXRpb24uYnl0ZXNQZXJSb3cgKyBkZXN0aW5hdGlvblJlY3QueCgpICogNAorICAgIH07CisK
KyAgICBjb252ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25S
ZWN0LnNpemUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXgg
ZTczYTJhOWYzYmJiZTA1YjgxOTM2YjY4ZDkxN2IxMWNhZGRjMWFiMC4uY2VhMzMxZmUxMDFjMDU5
ODFjZjBmNmY2OGEzZTU3NWEzMTAyYWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTExMCw2ICsxMTAsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZm
ZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpID0gMDsKIAorICAgIHZpcnR1YWwg
dm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RpbmF0aW9uQmFj
a2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0
aW9uUG9pbnQpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUltYWdlUGl4ZWxzRnJv
bShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lk
KiBzb3VyY2VEYXRhKSA9IDA7CisKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGNvcHlU
b1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCYsIEdDR0xlbnVtLCBQbGF0Zm9ybUdM
T2JqZWN0LCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApA
QCAtMTQ4LDYgKzE1MSw3IEBAIHByb3RlY3RlZDoKIAogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlv
bmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYg
b3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCB2b2lkKiBkYXRhKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0LCB2b2lkKiBkYXRhKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5k
JiBzb3VyY2VCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0YSwgdm9pZCogZGF0YSk7
CiAKICAgICBQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcApp
bmRleCA5YWNmMzA0ZDcxOTkyNGUxYzk5MWUzMDUxNWY5M2EzNjUzOWFiMTUxLi4zOTI3Nzc5MjYw
MzI4OGE3YmJiZGVjMmMwZTYyOTcxY2JiNzYyMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHAKQEAg
LTI0MSw3ICsyNDEsNyBAQCB2b2lkIGNvbnZlcnRJbWFnZVBpeGVscyhjb25zdCBDb25zdFBpeGVs
QnVmZmVyQ29udmVyc2lvblZpZXcmIHNvdXJjZSwgY29uc3QgUGl4ZQogICAgIEFTU0VSVChkZXN0
aW5hdGlvbi5mb3JtYXQucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OlJHQkE4IHx8IGRlc3Rp
bmF0aW9uLmZvcm1hdC5waXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOwogCiAjaWYg
VVNFKEFDQ0VMRVJBVEUpICYmIFVTRShDRykKLSAgICBpZiAoc291cmNlLmZvcm1hdC5hbHBoYUZv
cm1hdCA9PSBkZXN0aW5hdGlvbi5mb3JtYXQuYWxwaGFGb3JtYXQgJiYgc291cmNlLmZvcm1hdC5w
aXhlbEZvcm1hdCA9PSBkZXN0aW5hdGlvbi5mb3JtYXQucGl4ZWxGb3JtYXQpIHsKKyAgICBpZiAo
c291cmNlLmZvcm1hdCA9PSBkZXN0aW5hdGlvbi5mb3JtYXQpIHsKICAgICAgICAgLy8gRklYTUU6
IENhbiB0aGVzIGJvdGgganVzdCB1c2UgcGVyLXJvdyBtZW1jcHk/CiAgICAgICAgIGlmIChzb3Vy
Y2UuZm9ybWF0LmFscGhhRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQpCiAgICAgICAgICAgICBjb252ZXJ0SW1hZ2VQaXhlbHNVbmFjY2VsZXJhdGVkPGNvbnZl
cnRTaW5nbGVQaXhlbFByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQ8UGl4ZWxGb3JtYXRDb252
ZXJzaW9uOjpOb25lPj4oc291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25TaXplKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9y
bWF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9y
bWF0LmNwcAppbmRleCBmOTRkYTVmYjYzMTM4NTFiNjAyNGM5ODdiYTBlOTVjNWRmMDI4MTliLi41
MWY3ZWVkZjgzMWQ5NTUwYjdhN2U2ODJkODQ2YjY1ZDk3ZGMxMGQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwCkBA
IC0zMCw2ICszMCwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgb3BlcmF0b3I9
PShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgYSwgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGIp
Cit7CisgICAgcmV0dXJuIGEuYWxwaGFGb3JtYXQgPT0gYi5hbHBoYUZvcm1hdCAmJiBhLnBpeGVs
Rm9ybWF0ID09IGIucGl4ZWxGb3JtYXQgJiYgYS5jb2xvclNwYWNlID09IGIuY29sb3JTcGFjZTsK
K30KKworYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBhLCBjb25zdCBQ
aXhlbEJ1ZmZlckZvcm1hdCYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1h
dCYgcGl4ZWxCdWZmZXIpCiB7CiAgICAgcmV0dXJuIHRzIDw8IHBpeGVsQnVmZmVyLmFscGhhRm9y
bWF0IDw8ICcgJyA8PCBwaXhlbEJ1ZmZlci5waXhlbEZvcm1hdCA8PCAnICcgPDwgcGl4ZWxCdWZm
ZXIuY29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BpeGVsQnVmZmVyRm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QaXhlbEJ1ZmZlckZvcm1hdC5oCmluZGV4IDYwODJlNWI4NDY0MTAzZTUxYjQ0ZmVkZjBhN2Jh
NmRmZDU4MGJmYzcuLmZlMDQ0N2Q5ZDAyMjhlZjA4Mjk5MmU0YjQzOWUxMDI2OWI5ZTIxMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9y
bWF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJG
b3JtYXQuaApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgUGl4ZWxCdWZmZXJGb3JtYXQgewogICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQaXhlbEJ1ZmZlckZvcm1h
dD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK1dFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0Jik7CitX
RUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yIT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmLCBj
b25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOworCiBXRUJDT1JFX0VYUE9SVCBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOwogCiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFBpeGVsQnVmZmVyRm9ybWF0OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQuY3BwCmluZGV4IDliNWMwYWQwNzQ0NTE4ODBkZWZkZDNjNDg5MmU0ZjczYzI4NjQyYzku
LmQ1NjYwZjA2MzEwYjIyMTYzZjZiOWQ2YjQ2OWZlY2E5MmVlODgyMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJm
YWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTE3LDYgKzExNywyMCBA
QCB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZgogICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eV9y
ZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0UG9pbnRTY2FsZWQueCgpLCBkZXN0UG9pbnRT
Y2FsZWQueSgpLCBzcmNSZWN0U2NhbGVkLndpZHRoKCksIHNyY1JlY3RTY2FsZWQuaGVpZ2h0KCkp
OwogfQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4
ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAor
eworICAgIGRlc3RpbmF0aW9uQmFja2VuZC5jb3B5SW1hZ2VQaXhlbHNGcm9tKCp0aGlzLCBzb3Vy
Y2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1f
c3VyZmFjZS5nZXQoKSkpOworfQorCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2Vu
ZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJh
Y2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5h
dGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFj
a2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0
aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1f
c3VyZmFjZS5nZXQoKSkpOworCisgICAgSW50UmVjdCBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNr
ZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVjdCk7CisgICAgSW50UG9pbnQgZGVzdGluYXRpb25Qb2lu
dFNjYWxlZCA9IHRvQmFja2VuZENvb3JkaW5hdGVzKGRlc3RpbmF0aW9uUG9pbnQpOworICAgIGNh
aXJvX3N1cmZhY2VfbWFya19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0aW5h
dGlvblBvaW50U2NhbGVkLngoKSwgZGVzdGluYXRpb25Qb2ludFNjYWxlZC55KCksIHNvdXJjZVJl
Y3RTY2FsZWQud2lkdGgoKSwgc291cmNlUmVjdFNjYWxlZC5oZWlnaHQoKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDQUlSTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJm
YWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggMDM3MDc4N2I2OTk5Y2ZkZTA2YWUw
ZmExY2QwNjY2MTM5MTU3MjM5Yy4uYjAxYzhmYWUzODllZGRhOTRkZjI4NmM4ZjE0OGI5N2UxOGI5
MDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhl
bEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRS
ZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhl
bEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9p
bnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CiAKKyAgICB2
b2lkIGNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgSW1h
Z2VCdWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0
YSkgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQoY29uc3QgUGFyYW1ldGVycyYsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKaW5kZXggNjg2NWYwYmQ0MWJiNDg0NjBk
YmExZjRmNmJhNTgwNzg0Y2NhZWU2MS4uMGI2ODE0MmQ2MmIyMGQ3ZTQ0MmRkMmU4Yzk5NjkwNzg4
ZmFiY2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcApAQCAtMTYzLDYg
KzE2MywxNiBAQCB2b2lkIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZl
cihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5k
OjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9y
bWF0LCBtX2RhdGEpOwogfQogCit2b2lkIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RpbmF0aW9uQmFja2VuZCwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQp
IGNvbnN0Cit7CisgICAgZGVzdGluYXRpb25CYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRo
aXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fZGF0YSk7Cit9CisKK3ZvaWQgSW1h
Z2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgSW1hZ2VC
dWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0YSkK
K3sKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oc291cmNlQmFj
a2VuZCwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlRGF0YSwgbV9kYXRhKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENHKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKaW5kZXggMDg5NzNmMzgxODlhZTZiNjBmODI4MGQwMDMy
NWRiYjQ4MGJhZTJmNC4uOTQwNjZmOWRkYTQwMmJhMDRmMDRjMzE4NzNlN2JmY2JiZTA3YWZhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDR0JpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1Ymxp
YzoKICAgICBPcHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNU
byhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291
cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpIG92ZXJyaWRlOworCiAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRVcHBlckxlZnRDb3JuZXIgPSB0cnVlOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggMGM3
MDZkMTgzMzk1ZDk1OTY4ZmJmYmZjNmM5NzQwOWZkNWI4OTIyMy4uYjg0NTRkYTM3NjcxNTc2ZDk2
ZjZmZTE1ODJmNjgwNzEwODFmMmRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuY3BwCkBAIC0xODksNiArMTg5LDE5IEBAIHZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsCiAgICAg
bV9yZXF1aXJlc0RyYXdBZnRlclB1dFBpeGVsQnVmZmVyID0gdHJ1ZTsKIH0KIAordm9pZCBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFj
a2VuZCYgZGVzdGluYXRpb25CYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3QKK3sKKyAgICBJT1N1cmZhY2U6Okxv
Y2tlciBsb2NrKCptX3N1cmZhY2UsIElPU3VyZmFjZTo6TG9ja2VyOjpBY2Nlc3NNb2RlOjpSZWFk
V3JpdGUpOworICAgIGRlc3RpbmF0aW9uQmFja2VuZC5jb3B5SW1hZ2VQaXhlbHNGcm9tKCp0aGlz
LCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBsb2NrLnN1cmZhY2VCYXNlQWRkcmVzcygp
KTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVs
c0Zyb20oY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qg
dm9pZCogc291cmNlRGF0YSkKK3sKKyAgICBJT1N1cmZhY2U6OkxvY2tlciBsb2NrKCptX3N1cmZh
Y2UsIElPU3VyZmFjZTo6TG9ja2VyOjpBY2Nlc3NNb2RlOjpSZWFkV3JpdGUpOworICAgIEltYWdl
QnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VS
ZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBsb2NrLnN1cmZhY2VCYXNlQWRkcmVz
cygpKTsKKyAgICBtX3JlcXVpcmVzRHJhd0FmdGVyUHV0UGl4ZWxCdWZmZXIgPSB0cnVlOworfQor
CiBJT1N1cmZhY2UqIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6c3VyZmFjZSgpCiB7CiAg
ICAgZmx1c2hDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCmluZGV4
IGVlOWRlZmMyMDg0NzVmYmZiOGU1MWJiN2FmYTQ3MmU4NjY3Zjg1M2MuLjFkOWY5Njc1YzQ2OGNm
YzVmMjExNWMzYzg1OGY2ZTRlZjgwMGEwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZC5oCkBAIC02NCw2ICs2NCw5IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIo
Y29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRl
OwogCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RC
YWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGlu
YXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9t
KGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQq
IHNvdXJjZURhdGEpIG92ZXJyaWRlOworCiAgICAgYm9vbCBpc0luVXNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CiAgICAgVm9s
YXRpbGl0eVN0YXRlIHNldFZvbGF0aWxlKGJvb2wpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5j
cHAKaW5kZXggODhhMzZhNDEwMjZiZDNhNTg1NDQ3ODIwMjc0YzExMDdkNzgzOTJlOS4uODcxYzcw
ZmE1Y2RjYjU2YWZjNzUyNjk0MThlOWVlZmVjYjNmNjZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
CkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU291cmNlR3JhcGhpYzo6cGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkKICAgICBpZiAoIXJlc3VsdEltYWdlIHx8ICFzb3VyY2VJbWFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgcmVzdWx0SW1hZ2UtPmNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoKnNvdXJj
ZUltYWdlLCBJbnRQb2ludCgpKTsKKyAgICByZXN1bHRJbWFnZS0+cHV0SW1hZ2VCdWZmZXIoKnNv
dXJjZUltYWdlKTsKIH0KIAogVGV4dFN0cmVhbSYgU291cmNlR3JhcGhpYzo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGQzNDQ1ZmVhNzJkNWRjM2UxZGMzMzU2MWI4MTEyMzlm
ZTAxM2ZkNjYuLjdjMTYwMjU0ODJkNDVhZjY1Zjk5MDY4NzQyMjcxZmQ5ODU4ZmJmN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQwOSw3ICs0MDksMTkgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgT3B0aW8KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRhdGEpKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZl
cihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZl
cihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc291cmNlSW1hZ2VCdWZmZXJJZGVudGlmaWVy
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Q
b2ludCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBzb3VyY2VJbWFnZUJ1ZmZlciA9
IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUJ1ZmZl
cklkZW50aWZpZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2Fj
aGUuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoc291
cmNlSW1hZ2VCdWZmZXIgJiYgaW1hZ2VCdWZmZXIpCisgICAgICAgIGltYWdlQnVmZmVyLT5wdXRJ
bWFnZUJ1ZmZlcigqc291cmNlSW1hZ2VCdWZmZXIsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9p
bnQpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVz
b2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggZGNjYzgyMDgyMTFjMWZiYzg4ODNhODMxNDgw
YTI0YTQ5YTMxOTljNi4uMWJlMWE1MGYyMzFiZWQzZGIwYjA4YWRkMTEyMDhhYWQzNjFiNzZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRp
b25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyYmKT4mJik7CiAgICAgdm9pZCBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpPiYmKTsKICAgICB2b2lkIGdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0
aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiYpPiYm
KTsKKyAgICB2b2lkIHB1dEltYWdlQnVmZmVyRm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHNvdXJjZUltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGNhY2hlRm9udChSZWY8
V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBhMWUzNWFkNTAzOWE0YjU0OTQyOWJi
NGU4OWFjOTNmNmFjZGU1MzA4Li44YWQwNTZjYjgzNzVmMWViZjI4NDFlZjIwZDY4MDhiNTExYTRj
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMzEsNiAr
MzEsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBEZXN0cm95
R2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkoKQogICAgIEdldERhdGFVUkxGb3JJbWFnZUJ1ZmZl
cihTdHJpbmcgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24sIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
IC0+IChTdHJpbmcgdXJsU3RyaW5nKSBTeW5jaHJvbm91cwogICAgIEdldERhdGFGb3JJbWFnZUJ1
ZmZlcihTdHJpbmcgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikg
LT4gKFZlY3Rvcjx1aW50OF90PiBkYXRhKSBTeW5jaHJvbm91cworICAgIFB1dEltYWdlQnVmZmVy
Rm9ySW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHNvdXJj
ZUltYWdlQnVmZmVySWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBzb3VyY2VSZWN0LCBXZWJD
b3JlOjpJbnRQb2ludCBkZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cwogICAg
IEdldFNoYXJlYWJsZUJpdG1hcEZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlByZXNlcnZl
UmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24pIC0+IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZSkgU3luY2hyb25vdXMKICAgICBDYWNoZU5hdGl2ZUltYWdlKFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIENhY2hlRm9u
dChJUEM6OkZvbnRSZWZlcmVuY2UgZm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA0ZmE3YzI4MmZiZDA4MmNmOGI2N2U4MTQwZjRl
NTU2NjAzZTFmNTcxLi43OTQ1MzZhZTQ5MDU2YzVkN2E5NDhlODk4MjUwYjkzNjM3MmRjYmI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCkBA
IC0xNjQsNiArMTY0LDE2IEBAIHZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
OjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCCiAgICAgSW1hZ2VCdWZm
ZXJCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50
LCBkZXN0Rm9ybWF0LCBtX2JpdG1hcC0+ZGF0YSgpKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2Vu
ZCYgZGVzdEJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50
JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdAoreworICAgIGRlc3RCYWNrZW5kLmNvcHlJbWFnZVBp
eGVsc0Zyb20oKnRoaXMsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fYml0bWFwLT5k
YXRhKCkpOworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29w
eUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQs
IGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBv
aW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6
Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlv
blBvaW50LCBzb3VyY2VEYXRhLCBtX2JpdG1hcC0+ZGF0YSgpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCBiNmE5NGYxMDMxMTA0N2Y5
MjE4OTNiNjc0ZTExNzJlMjczZTM2NDY3Li43ZTUwMjBmZDAxOTJmZDI0OThmNWI1NmZmMzY1OGFl
OTQ0MGYwMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBp
eGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1h
dCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBk
ZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc1RvKFdlYkNvcmU6OkltYWdlQnVmZmVy
QmFja2VuZCYgZGVzdEJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZm
ZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9p
ZCogc291cmNlRGF0YSkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQ
ZXJSb3coKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRl
eCAxMjNkNTM5YzgyYTQ2NTIzZTZlYTg4YzA5NGNjZDljMWI3ZmI5Y2M2Li4zMGE2NTM0N2ZiYWU1
MWY0NjYwZWI5YTZlNzQ2NGMwYjA1NmI4MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aApAQCAtNTEsNiArNTEsNyBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGlj
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjxCYWNrZW5kVAogICAgIHVzaW5nIEJh
c2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7CiAgICAgdXNpbmcgQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXI6Om1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOworICAgIHVz
aW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyOjpjb250ZXh0OwogICAgIHVzaW5nIEJhc2VE
aXNwbGF5TGlzdEltYWdlQnVmZmVyOjpyZXNvbHV0aW9uU2NhbGU7CiAKIHB1YmxpYzoKQEAgLTIy
OSw2ICsyMzAsMTkgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LnJlY29y
ZGVyKCkucHV0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVz
dEZvcm1hdCk7CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciYgc291cmNlSW1hZ2UsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+JiBz
b3VyY2VSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIGlmIChVTkxJS0VMWSghbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gYWN0dWFsU291
cmNlUmVjdCA9IHNvdXJjZVJlY3QudmFsdWVfb3IoSW50UmVjdCh7IH0sIHNvdXJjZUltYWdlLmxv
Z2ljYWxTaXplKCkpKTsKKworICAgICAgICBpZiAoIWlzQ2FjaGVkSW1hZ2VCdWZmZXIoc291cmNl
SW1hZ2UpKQorICAgICAgICAgICAgY29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcihzb3VyY2VJbWFn
ZSwgRmxvYXRSZWN0IHsgZGVzdGluYXRpb25Qb2ludCwgc291cmNlSW1hZ2UubG9naWNhbFNpemUo
KSB9LCBGbG9hdFJlY3QoYWN0dWFsU291cmNlUmVjdCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cHV0SW1hZ2VCdWZmZXJGb3JJbWFn
ZUJ1ZmZlcihzb3VyY2VJbWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgYWN0dWFs
U291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIH0KKwogICAgIGJvb2wgcHJlZmVyc1ByZXBhcmF0aW9uRm9yRGlzcGxheSgpIG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJp
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA3MTk4YWRl
MDE2ODZjZTIyYTIyNzZlMjJiZGQyODkzMWQxMjUxMzA0Li40NDA5N2RjNjA2NTM5MDk4NmVhZTI3
YjJjNTgwOTliNTM2Y2EyYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCkBAIC0yMTksNiArMjE5LDEyIEBAIFZlY3Rvcjx1aW50OF90PiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmdldERhdGFGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmCiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpwdXRJ
bWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzb3Vy
Y2VJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKQoreworICAgIHNlbmREZWZlcnJlZFdha2V1cE1lc3NhZ2VJ
Zk5lZWRlZCgpOworICAgIHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpQdXRJbWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyKHNvdXJjZUltYWdlQnVmZmVySWRlbnRpZmll
ciwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwg
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlB1dEltYWdlQnVmZmVyRm9ySW1hZ2VC
dWZmZXI6OlJlcGx5KCksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7Cit9CisK
IFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0
U2hhcmVhYmxlQml0bWFwKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlciwg
UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbikKIHsKICAgICBzZW5kRGVmZXJy
ZWRXYWtldXBNZXNzYWdlSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oCmluZGV4IDFlMmZjM2ZlMzdjZmFlOTEyMGRjMThlMGRhZmNlOWY2OWQwMmRjMGIuLjUx
NjNjNTcxMWZmMDJjNjAwNDhjNTk5ZDVhMGRkZWI4MzQyOGZmYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFdlYkNvcmU6OlBpeGVs
Rm9ybWF0KTsKICAgICBTdHJpbmcgZ2V0RGF0YVVSTEZvckltYWdlQnVmZmVyKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVS
ZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFZl
Y3Rvcjx1aW50OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgcHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc291cmNlSW1hZ2VCdWZmZXJJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZGVzdGluYXRpb25Qb2ludCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZs
dXNoSWRlbnRpZmllciBmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZ2V0U2hhcmVhYmxlQml0bWFwKFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNv
bHV0aW9uKTsKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwCmluZGV4IDRjZjM5YTFjNDYwNGJkMTE2ZTAzOThmOGE1NWY5ZjU1NWZiZjUyODYuLmVh
MWE4N2NjZWMzN2MwMDhjMDk1YzI0ZjQ3OWQ3YTJiZjM3OTgzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAK
QEAgLTEyNSw2ICsxMjUsMTYgQEAgdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY28KICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50JikgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmLCBj
b25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCB2b2lkKikKK3sKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggMzcwYmUxZjIxNGY4MTQ1
NmZhYTI1NTA3MTczZmM1ZDNkMGEzMzVhZC4uZmUxNjFiMDk2ZjRkMWUxNmQwMTcwMzkxMjNkNDc4
YWQ2NjY0ZWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBW
ZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRv
dWJsZT4gcXVhbGl0eSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGl4
ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0
JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRl
c3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc1RvKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFj
a2VuZCYgZGVzdEJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXJC
YWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCog
c291cmNlRGF0YSkgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmln
aW5BdFVwcGVyTGVmdENvcm5lciA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNh
bk1hcEJhY2tpbmdTdG9yZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430198</attachid>
            <date>2021-05-31 05:33:58 -0700</date>
            <delta_ts>2021-05-31 05:53:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210531053357.patch</filename>
            <type>text/plain</type>
            <size>36404</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQzOWUyY2Y2MWUwMGZj
MDVkZjAxZTczZDBkZDJmMjRhNTdiOWRmZS4uYjFkNjQzNWYyMDAzNmE5Y2Q3ZWYzZmIxZWRkMDI3
OTk3OGUxNDY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA1LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIEFkZCBh
IG5ldyBmdW5jdGlvbiB3aGljaCBjb3BpZXMgcGl4ZWxzIGJldHdlZW4gdHdvIEltYWdlQnVmZmVy
IGJhY2tlbmRzLgorICAgICAgICBUaGUgYmFja2VuZHMgbWF5IGRpZmZlciBpbiB0aGUgcGl4ZWwg
Zm9ybWF0IG9yIHRoZSBjb2xvciBTcGFjZS4gQnV0IHRoZXkKKyAgICAgICAgaGF2ZSB0byBhZ3Jl
ZSBpbiB0aGUgc2NhbGUgcmVzb2x1dGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW1h
Z2VQaXhlbHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3Jt
YXQuaDoKKyAgICAgICAgV2UgaGF2ZSB0byB1c2UgY29udmVydEltYWdlUGl4ZWxzQWNjZWxlcmF0
ZWQoKSBpZiB3ZSBhcmUgY29weWluZyBiZXR3ZWVuCisgICAgICAgIGRpZmZlcmVudCBjb2xvciBz
cGFjZXMgc2luY2UgdGhlIG5vbi1hY2NlbGVyYXRlZCBwYXRoIGRvZXMgbm90IHN1cHBvcnQKKyAg
ICAgICAgY29udmVyc2lvbiBiZXR3ZWVuIGRpZmZlcmVudCBjb2xvciBzcGFjZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
Ojpjb3B5SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMg
ZnJvbSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBiYWNrZW5kcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICBVcyB0
aGUgbmV3IGZ1bmN0aW9uIHRvIGNvcHkgdGhlIEZpbHRlciBpbnB1dCBJbWFnZUJ1ZmZlciB0byBp
dHMKKyAgICAgICAgU291cmNlR3JhcGhpYy4KKwogMjAyMS0wNS0zMSAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFRyZWF0IHdpZHRoOiBpbnRyaW5zaWMgYXMgbm9uIGRl
ZmluaXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGYyMmRkODE0MDMxYWY2N2UyYzcwNGMxNTk2NDc5MThhMmI4MTky
MGYuLjA5YWNhNzY2ZTdlM2VlZTA4NGI4NjViNTQ0Yjk5MDIwZjM3MGRlN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFnZUJ1ZmZlciBiZSBhYmxlIHRvIHB1dCBwaXhlbHMg
ZGlyZWN0bHkgaW50byBpdHMgYmFja2VuZCBmcm9tIGFub3RoZXIgSW1hZ2VCdWZmZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM4NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1dHRpbmcgYW4gSW1h
Z2VCdWZmZXIgaW50byBhbm90aGVyIHNob3VsZCBoYXZlIGEgc3BlY2lhbCBjYXNlIGlmIHRoZXkg
CisgICAgICAgIGFyZSBib3RoIHJlbW90ZSBJbWFnZUJ1ZmZlcnMuIFJlYWQtYmFjayBzaG91bGQg
YmUgYXZvaWRlZCBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpwdXRJbWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VC
dWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgSW1wbGVtZW50IFB1dEltYWdlQnVmZmVyIGFzIGEg
c3luYyBtZXNzYWdlIHRvIGVuc3VyZSBuZWl0aGVyIHRoZSBzb3VyY2UKKyAgICAgICAgbm9yIHRo
ZSBkZXN0aW5hdGlvbiBidWZmZXJzIHdpbGwgY2hhbmdlIGJlZm9yZSBjb3B5aW5nIHRoZSBwaXhl
bHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNG
cm9tKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgR2V0IHRoZSBkYXRhIHBvaW50ZXJzIGZyb20g
dGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYmFja2VuZHMuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpwdXRJbWFnZUJ1ZmZl
ckZvckltYWdlQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgRGVjaWRlIHdoZXRoZXIgcHV0dGlu
ZyBhbiBJbWFnZUJ1ZmZlciBjYW4gYmUgZG9uZSBpbiBHUFVQIG9yIGl0IGhhcyB0byAKKyAgICAg
ICAgZ28gdGhyb3VnaCB0aGUgZHJhd2luZyBzbG93IHBhdGguCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMS0wNS0zMCAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTZW5kIHJlY29tbWVuZGVkUmVzb2x1dGlvbiB1
c2luZyBEZXZpY2VQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGViMmQxNjIzYTNhMWRlMjAzMzZmZjI2
ZDI4ZDc5NWQ2MjNkNjJkYTQuLjRjNjFlOTE3Njk5ZTZmYzg0YzNiM2YxNGZmZmY0NjVkOWJjZDhk
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRl
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKQEAgLTIzOSw2ICsyMzksMjEgQEAgcHJvdGVjdGVkOgogICAgICAg
ICB9CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgc291cmNl
SW1hZ2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW50UmVjdD4mIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byBh
Y3R1YWxTb3VyY2VSZWN0ID0gc291cmNlUmVjdC52YWx1ZV9vcihJbnRSZWN0KHsgfSwgc291cmNl
SW1hZ2UubG9naWNhbFNpemUoKSkpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc29sdXRpb25T
Y2FsZSgpICE9IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgICAgICBj
b250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBGbG9hdFJlY3QgeyBkZXN0aW5h
dGlvblBvaW50LCBzb3VyY2VJbWFnZS5sb2dpY2FsU2l6ZSgpIH0sIEZsb2F0UmVjdChhY3R1YWxT
b3VyY2VSZWN0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBh
dXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKTsKKyAgICAgICAgYXV0byogc291
cmNlQmFja2VuZCA9IHNvdXJjZUltYWdlLmVuc3VyZUJhY2tlbmRDcmVhdGVkKCk7CisgICAgICAg
IGlmIChiYWNrZW5kICYmIHNvdXJjZUJhY2tlbmQpCisgICAgICAgICAgICBzb3VyY2VCYWNrZW5k
LT5jb3B5SW1hZ2VQaXhlbHNUbygqYmFja2VuZCwgYWN0dWFsU291cmNlUmVjdCwgZGVzdGluYXRp
b25Qb2ludCk7CisgICAgfQorCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJh
Y2tlbmRDcmVhdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAppbmRleCBmMWM3ZGIxM2Q4NTY1NzRhMTRkMjg4ZTc1NDlkOGIwY2JmYWI1ZThi
Li40NjJkNTY1NDFiMGViNGQ1YjMwMzY2YmViOGZjOTYyZmZlNmYxNDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNyw2ICsxMjcs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdl
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0
IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxC
dWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3Jt
YXQgPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHB1dEltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxJbnRSZWN0PiYgc291cmNlUmVjdCA9IHN0ZDo6bnVsbG9wdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQgPSB7IH0pID0gMDsKIAogICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxl
bWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkg
b25seSB3b3JrCiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFyZSBSR0Igb3IgUkdCQSBmb3Jt
YXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAppbmRleCBhNjJiM2M3YmQ2
MzBkYjk4YmMyYWNjYTdiN2FkNDVhY2EwOTE2YTAxLi43ZjE0YjVlNmJlMGFhMjRiNDAxY2QzZDQ2
NDc0MGE5YjVhNDI3YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKQEAgLTE2Niw0ICsxNjYsMzkgQEAgdm9p
ZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBz
b3VyY2VQaXhlbEJ1ZmZlciwgY28KICAgICBjb252ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0
aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJC
YWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291
cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRhdGEpCit7Cisg
ICAgQVNTRVJUKHNvdXJjZUJhY2tlbmQucmVzb2x1dGlvblNjYWxlKCkgPT0gcmVzb2x1dGlvblNj
YWxlKCkpOworCisgICAgYXV0byBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0
ZXMoc291cmNlUmVjdCk7CisgICAgYXV0byBkZXN0aW5hdGlvblBvaW50U2NhbGVkID0gdG9CYWNr
ZW5kQ29vcmRpbmF0ZXMoZGVzdGluYXRpb25Qb2ludCk7CisKKyAgICBhdXRvIHNvdXJjZVJlY3RD
bGlwcGVkID0gaW50ZXJzZWN0aW9uKHsgSW50UG9pbnQ6Onplcm8oKSwgc291cmNlQmFja2VuZC5i
YWNrZW5kU2l6ZSgpIH0sIHNvdXJjZVJlY3RTY2FsZWQpOworICAgIGF1dG8gZGVzdGluYXRpb25S
ZWN0ID0gc291cmNlUmVjdENsaXBwZWQ7CisgICAgZGVzdGluYXRpb25SZWN0Lm1vdmVCeShkZXN0
aW5hdGlvblBvaW50U2NhbGVkKTsKKworICAgIGlmIChzb3VyY2VSZWN0U2NhbGVkLngoKSA8IDAp
CisgICAgICAgIGRlc3RpbmF0aW9uUmVjdC5zZXRYKGRlc3RpbmF0aW9uUmVjdC54KCkgLSBzb3Vy
Y2VSZWN0U2NhbGVkLngoKSk7CisKKyAgICBpZiAoc291cmNlUmVjdFNjYWxlZC55KCkgPCAwKQor
ICAgICAgICBkZXN0aW5hdGlvblJlY3Quc2V0WShkZXN0aW5hdGlvblJlY3QueSgpIC0gc291cmNl
UmVjdFNjYWxlZC55KCkpOworCisgICAgZGVzdGluYXRpb25SZWN0LmludGVyc2VjdChiYWNrZW5k
UmVjdCgpKTsKKyAgICBzb3VyY2VSZWN0Q2xpcHBlZC5zZXRTaXplKGRlc3RpbmF0aW9uUmVjdC5z
aXplKCkpOworCisgICAgQ29uc3RQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IHNvdXJjZSB7Cisg
ICAgICAgIHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgc291cmNlQmFj
a2VuZC5waXhlbEZvcm1hdCgpLCBzb3VyY2VCYWNrZW5kLmNvbG9yU3BhY2UoKSB9LAorICAgICAg
ICBzb3VyY2VCYWNrZW5kLmJ5dGVzUGVyUm93KCksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpICsgc291cmNlUmVjdENsaXBwZWQueSgpICogc291
cmNlLmJ5dGVzUGVyUm93ICsgc291cmNlUmVjdENsaXBwZWQueCgpICogNAorICAgIH07CisKKyAg
ICBQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IGRlc3RpbmF0aW9uIHsKKyAgICAgICAgeyBBbHBo
YVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBjb2xvclNw
YWNlKCkgfSwKKyAgICAgICAgYnl0ZXNQZXJSb3coKSwKKyAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVzdGluYXRpb24uYnl0
ZXNQZXJSb3cgKyBkZXN0aW5hdGlvblJlY3QueCgpICogNAorICAgIH07CisKKyAgICBjb252ZXJ0
SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggNDIwOTlkNGQzNjI1
YzViOTJkYTQ0OTJjMjI2OWI3MjZiMDViMjc4NS4uZmZhYWE5OTM3Y2U2MmJkYzAwN2FhMTE1MGNl
Mzc0MmQ4OGM0NDk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTExMCw2ICsxMTAsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGNv
cHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdGluYXRpb25CYWNrZW5kLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2lu
dCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0
IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJj
ZURhdGEpID0gMDsKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgY29weVRvUGxhdGZv
cm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMJiwgR0NHTGVudW0sIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBib29sLCBib29sKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC0xNDgs
NiArMTUxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25h
bDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91
dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgdm9pZCogZGF0YSkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCwgdm9pZCogZGF0YSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYg
c291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRhdGEpOwog
CiAgICAgUGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHAKaW5k
ZXggOWFjZjMwNGQ3MTk5MjRlMWM5OTFlMzA1MTVmOTNhMzY1MzlhYjE1MS4uMzkyNzc3OTI2MDMy
ODhhN2JiYmRlYzJjMGU2Mjk3MWNiYjc2MjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwCkBAIC0y
NDEsNyArMjQxLDcgQEAgdm9pZCBjb252ZXJ0SW1hZ2VQaXhlbHMoY29uc3QgQ29uc3RQaXhlbEJ1
ZmZlckNvbnZlcnNpb25WaWV3JiBzb3VyY2UsIGNvbnN0IFBpeGUKICAgICBBU1NFUlQoZGVzdGlu
YXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCBkZXN0aW5h
dGlvbi5mb3JtYXQucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIAogI2lmIFVT
RShBQ0NFTEVSQVRFKSAmJiBVU0UoQ0cpCi0gICAgaWYgKHNvdXJjZS5mb3JtYXQuYWxwaGFGb3Jt
YXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LmFscGhhRm9ybWF0ICYmIHNvdXJjZS5mb3JtYXQucGl4
ZWxGb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0KSB7CisgICAgaWYgKHNv
dXJjZS5mb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0KSB7CiAgICAgICAgIC8vIEZJWE1FOiBD
YW4gdGhlcyBib3RoIGp1c3QgdXNlIHBlci1yb3cgbWVtY3B5PwogICAgICAgICBpZiAoc291cmNl
LmZvcm1hdC5hbHBoYUZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkKQogICAgICAgICAgICAgY29udmVydEltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb252ZXJ0
U2luZ2xlUGl4ZWxQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkPFBpeGVsRm9ybWF0Q29udmVy
c2lvbjo6Tm9uZT4+KHNvdXJjZSwgZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uU2l6ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5jcHAKaW5kZXggZjk0ZGE1ZmI2MzEzODUxYjYwMjRjOTg3YmEwZTk1YzVkZjAyODE5Yi4uNTFm
N2VlZGY4MzFkOTU1MGI3YTdlNjgyZDg0NmI2NWQ5N2RjMTBkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0LmNwcApAQCAt
MzAsNiArMzAsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIG9wZXJhdG9yPT0o
Y29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGEsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBiKQor
eworICAgIHJldHVybiBhLmFscGhhRm9ybWF0ID09IGIuYWxwaGFGb3JtYXQgJiYgYS5waXhlbEZv
cm1hdCA9PSBiLnBpeGVsRm9ybWF0ICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3BhY2U7Cit9
CisKK2Jvb2wgb3BlcmF0b3IhPShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgYSwgY29uc3QgUGl4
ZWxCdWZmZXJGb3JtYXQmIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQm
IHBpeGVsQnVmZmVyKQogewogICAgIHJldHVybiB0cyA8PCBwaXhlbEJ1ZmZlci5hbHBoYUZvcm1h
dCA8PCAnICcgPDwgcGl4ZWxCdWZmZXIucGl4ZWxGb3JtYXQgPDwgJyAnIDw8IHBpeGVsQnVmZmVy
LmNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QaXhlbEJ1ZmZlckZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGl4ZWxCdWZmZXJGb3JtYXQuaAppbmRleCBkNGY1YjAzZjYyMmY5ZDc3Njg1YjBlZDhmOWFlYTdh
NGNlYTdhNjFkLi41N2VkY2VhNWQzOGU1ZmUxZjMzOGNlZjc5OWQyODNlMmI2MzczMmVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9y
bWF0LmgKQEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IFBpeGVsQnVmZmVyRm9ybWF0IHsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlckZv
cm1hdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK1dFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0Jik7
CitXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yIT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQm
LCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOworCiBXRUJDT1JFX0VYUE9SVCBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOwogCiB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFBpeGVsQnVmZmVyRm9ybWF0OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFj
ZUJhY2tlbmQuY3BwCmluZGV4IGFkNzE2YjhjNjNiMmFjMDRhOWIzMjBlMDIwY2Y1YTY1YzEzZGQ5
MTIuLjg0YWE2YTNlZmMwM2U0YjUyZGVlYzFmZGM1MTU1NDVlNmVhZDdkYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTE3LDYgKzExNywy
MCBAQCB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIo
Y29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZgogICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0
eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0UG9pbnRTY2FsZWQueCgpLCBkZXN0UG9p
bnRTY2FsZWQueSgpLCBzcmNSZWN0U2NhbGVkLndpZHRoKCksIHNyY1JlY3RTY2FsZWQuaGVpZ2h0
KCkpOwogfQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdl
UGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25z
dAoreworICAgIGRlc3RpbmF0aW9uQmFja2VuZC5jb3B5SW1hZ2VQaXhlbHNGcm9tKCp0aGlzLCBz
b3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRh
KG1fc3VyZmFjZS5nZXQoKSkpOworfQorCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFj
a2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJj
ZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0
aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVy
QmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBk
ZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRh
KG1fc3VyZmFjZS5nZXQoKSkpOworCisgICAgSW50UmVjdCBzb3VyY2VSZWN0U2NhbGVkID0gdG9C
YWNrZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVjdCk7CisgICAgSW50UG9pbnQgZGVzdGluYXRpb25Q
b2ludFNjYWxlZCA9IHRvQmFja2VuZENvb3JkaW5hdGVzKGRlc3RpbmF0aW9uUG9pbnQpOworICAg
IGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0
aW5hdGlvblBvaW50U2NhbGVkLngoKSwgZGVzdGluYXRpb25Qb2ludFNjYWxlZC55KCksIHNvdXJj
ZVJlY3RTY2FsZWQud2lkdGgoKSwgc291cmNlUmVjdFNjYWxlZC5oZWlnaHQoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDQUlSTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggMDY0MjI5NzAzNjc2MGU1OTI0
NDY3YzlmOThkYjNmMTA1MzkwMTUwNy4uMzI5MGFmNWNjOTE2ODRmYWU0YzAyNDlmNjM1NGI3NDM3
MzdhMzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgK
QEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+
IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNv
bnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNv
bnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsK
IAorICAgIHZvaWQgY29weUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFj
a2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0
aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShj
b25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBz
b3VyY2VEYXRhKSBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIEltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4m
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA1MDA5NzcyZDBi
Mjg1NDllODQ5ZTg2N2ZkMDEzY2Q1Y2RmZWFkODE1Li44Y2E5MGNmYTc1MDI0YWZiMGFjYzhjN2Y1
M2RhYWQ3NzMwZWRlOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCkBA
IC0xNjMsNiArMTYzLDE2IEBAIHZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OnB1dFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwKICAgICBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQs
IGRlc3RGb3JtYXQsIG1fZGF0YSk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdGluYXRpb25CYWNr
ZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRp
b25Qb2ludCkgY29uc3QKK3sKKyAgICBkZXN0aW5hdGlvbkJhY2tlbmQuY29weUltYWdlUGl4ZWxz
RnJvbSgqdGhpcywgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgbV9kYXRhKTsKK30KKwor
dm9pZCBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25z
dCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3Vy
Y2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShz
b3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBt
X2RhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0cp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAppbmRleCBjODkwZTlmZThmMmU4NjRmNTBi
Njg4OWM5ZWI0ZjBmNTg3MmJiOTE4Li5mZjYwNWE2MDFmYjNlYzAxMGU0Yzg5ZDFiMjE2NTBkNzg1
ZmRjYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTUzLDYgKzUzLDkg
QEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVy
KGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAgIHZvaWQgY29w
eUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFja2VuZCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZl
ckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKSBvdmVy
cmlkZTsKKwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0VXBwZXJMZWZ0Q29y
bmVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
Y3BwCmluZGV4IDA3YTIwMmExZTM0ODVlN2JhNTIwNDI3ZjBiZjJiNGJmZjJmMWU3NDIuLjcyODIz
ZjhjYjVlOGMwNjk5NmIxZDhhN2NhOTJmOThhMWViMDk2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTg5LDYgKzE4OSwxOSBAQCB2b2lkIEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVs
QnVmZmVyLAogICAgIG1fcmVxdWlyZXNEcmF3QWZ0ZXJQdXRQaXhlbEJ1ZmZlciA9IHRydWU7CiB9
CiAKK3ZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJ
bWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RpbmF0aW9uQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291
cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0Cit7CisgICAg
SU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqbV9zdXJmYWNlLCBJT1N1cmZhY2U6OkxvY2tlcjo6QWNj
ZXNzTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBkZXN0aW5hdGlvbkJhY2tlbmQuY29weUltYWdlUGl4
ZWxzRnJvbSgqdGhpcywgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgbG9jay5zdXJmYWNl
QmFzZUFkZHJlc3MoKSk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpj
b3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2Vu
ZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpCit7CisgICAgSU9TdXJmYWNlOjpMb2NrZXIg
bG9jaygqbV9zdXJmYWNlLCBJT1N1cmZhY2U6OkxvY2tlcjo6QWNjZXNzTW9kZTo6UmVhZFdyaXRl
KTsKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oc291cmNlQmFj
a2VuZCwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlRGF0YSwgbG9jay5zdXJm
YWNlQmFzZUFkZHJlc3MoKSk7CisgICAgbV9yZXF1aXJlc0RyYXdBZnRlclB1dFBpeGVsQnVmZmVy
ID0gdHJ1ZTsKK30KKwogSU9TdXJmYWNlKiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnN1
cmZhY2UoKQogewogICAgIGZsdXNoQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaAppbmRleCA4M2FlYzhjZDkyNmRjNTVmMWQ2ODI5YmI1MTMyODYzYTUyMTEwN2EwLi40
NzY4YmQzNWVjYTY1ZWFmOGI2ZjY4ZmM4ZWJkMjEzNDk4YmJmYjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1
ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2Vu
ZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpIG92ZXJyaWRlOworCiAgICAgYm9vbCBpc0lu
VXNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkg
b3ZlcnJpZGU7CiAgICAgVm9sYXRpbGl0eVN0YXRlIHNldFZvbGF0aWxlKGJvb2wpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggODhhMzZhNDEwMjZiZDNhNTg1NDQ3ODIwMjc0YzEx
MDdkNzgzOTJlOS4uODcxYzcwZmE1Y2RjYjU2YWZjNzUyNjk0MThlOWVlZmVjYjNmNjZmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU291cmNlR3JhcGhpYzo6
cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBpZiAoIXJlc3VsdEltYWdlIHx8ICFzb3VyY2VJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzdWx0SW1hZ2UtPmNvbnRleHQoKS5kcmF3
SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlLCBJbnRQb2ludCgpKTsKKyAgICByZXN1bHRJbWFnZS0+
cHV0SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlKTsKIH0KIAogVGV4dFN0cmVhbSYgU291cmNlR3Jh
cGhpYzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRp
b25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGNiNTAxMTY3YjRkZDU3
MmM0YzVjMjk4MTM4MmYxMjZjYjI5NzhmZTcuLmU1N2VhNmFjNGYyZDc4NzQwNjEyZDQ1ZDRkNDQ3
MzBiMGUxNzQ5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQxMiw3ICs0MTIsMTkg
QEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjoKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGRhdGEpKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVC
aXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlv
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cHV0SW1hZ2VC
dWZmZXJGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc291cmNlSW1h
Z2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQ
b2ludCYgZGVzdGluYXRpb25Qb2ludCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBz
b3VyY2VJbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZl
cihzb3VyY2VJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBt
X3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKTsKKyAgICBpZiAoc291cmNlSW1hZ2VCdWZmZXIgJiYgaW1hZ2VCdWZmZXIpCisgICAgICAg
IGltYWdlQnVmZmVyLT5wdXRJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2VCdWZmZXIsIHNvdXJjZVJl
Y3QsIGRlc3RpbmF0aW9uUG9pbnQpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1
ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHJlc2VydmVSZXNv
bHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNzM0MjdhOTY0
Zjc0NTEyMWJhZmExMTllZWY0ZmViMzMzYjRjOTM5MS4uOGVjMDdlYThkYWIyZmU1ZTIwMzM1YjJi
YjcwZTNhNTFmZmJkNTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xMzYsNiArMTM2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJl
c2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmKTsKICAgICB2b2lkIGdldERhdGFGb3JJ
bWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4g
cXVhbGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiAgICAgdm9pZCBnZXRTaGFyZWFi
bGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJik7CisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlckZv
ckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzb3VyY2VJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQg
ZGVsZXRlQWxsRm9udHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4K
aW5kZXggNGIzZmU5YTAyNjJlOGE1NDkxODUyYzZkNmEwNDA0NWQ2YTY5NjM5Ny4uZTcxNTQ0NmVk
NDQyNzI0Y2Y1YzdjNDAwMWIxZmY4YTBhMmI3ZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCB7CiAgICAgVXBkYXRlU2hhcmVkTWVtb3J5QW5kU2VtYXBob3JlRm9yR2V0
UGl4ZWxCdWZmZXIodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSBoYW5kbGUsIElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkgU3luY2hyb25vdXMK
ICAgICBEZXN0cm95R2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkoKQogICAgIEdldERhdGFVUkxG
b3JJbWFnZUJ1ZmZlcihTdHJpbmcgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVz
b2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikgLT4gKFN0cmluZyB1cmxTdHJpbmcpIFN5bmNocm9ub3VzCisgICAg
UHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgc291cmNlSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IHNv
dXJjZVJlY3QsIFdlYkNvcmU6OkludFBvaW50IGRlc3RpbmF0aW9uUG9pbnQsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpIC0+ICgpIFN5
bmNocm9ub3VzCiAgICAgR2V0RGF0YUZvckltYWdlQnVmZmVyKFN0cmluZyBtaW1lVHlwZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8dWludDhfdD4g
ZGF0YSkgU3luY2hyb25vdXMKICAgICBHZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uKSAtPiAo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzCiAgICAg
Q2FjaGVOYXRpdmVJbWFnZShXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
LmNwcAppbmRleCBlM2IzZjdkY2U1OGYzMjcxMzQzOGRmYmJiZTA0YjcwOGYwOWMxNmM2Li42MTFm
NmEwNjIxNjk5N2E0YTAxOTg2NTVmMDg5OTQ3OGFiMWU2ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCkBAIC0xNjQsNiArMTY0LDE2IEBA
IHZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihj
b25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0LCBtX2Jp
dG1hcC0+ZGF0YSgpKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50
KSBjb25zdAoreworICAgIGRlc3RCYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNv
dXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fYml0bWFwLT5kYXRhKCkpOworfQorCit2b2lk
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShj
b25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBz
b3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJv
bShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRh
LCBtX2JpdG1hcC0+ZGF0YSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVl
MzZiYjNkLi4zYTQ5NGJiOWY1YTkyODdiY2NhNjBhYTBkYmFhYjY1YjcwMTljYTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTYxLDYgKzYx
LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdl
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3Jt
YXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAg
IHZvaWQgY29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0
QmFja2VuZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQmIHNv
dXJjZUJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRh
KSBvdmVycmlkZTsKKwogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDZkY2YxZDUyZjFh
OGExOTgxN2Y1YTUxYzBiZDAzOTczNDljOTE0N2EuLjc5YTRhMmFjNGNjY2Q1YzE4ZGRkNWZlNmM5
ZWUyZmYzNDRkYzExMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC01Miw2ICs1
Miw3IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUCiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0
SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlcjo6bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgdXNpbmcgQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1h
Z2VCdWZmZXI6OnJlc29sdXRpb25TY2FsZTsKIAogcHVibGljOgpAQCAtMjM1LDYgKzIzNiwxOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRQaXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKICAg
ICB9CiAKKyAgICB2b2lkIHB1dEltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3Vy
Y2VJbWFnZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0PiYgc291cmNlUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGFjdHVhbFNvdXJjZVJlY3Qg
PSBzb3VyY2VSZWN0LnZhbHVlX29yKEludFJlY3QoeyB9LCBzb3VyY2VJbWFnZS5sb2dpY2FsU2l6
ZSgpKSk7CisKKyAgICAgICAgaWYgKCFpc0NhY2hlZEltYWdlQnVmZmVyKHNvdXJjZUltYWdlKSkK
KyAgICAgICAgICAgIGNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIEZsb2F0
UmVjdCB7IGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZUltYWdlLmxvZ2ljYWxTaXplKCkgfSwgRmxv
YXRSZWN0KGFjdHVhbFNvdXJjZVJlY3QpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnB1dEltYWdlQnVmZmVyRm9ySW1hZ2VCdWZmZXIo
c291cmNlSW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIGFjdHVhbFNvdXJjZVJl
Y3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB9CisKICAgICBib29sIHByZWZlcnNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMDE0NTg3MTY4N2M0OWIw
YjE1NmJlYzg2MjA5ODJlM2JjMDU2ZGZhNC4uYmI4NzMyMjA3OWFlZmU2M2M4YzJhNjcwMzk4ZmZk
MmUxYjIxMjc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApA
QCAtMjIwLDYgKzIyMCwxMiBAQCBWZWN0b3I8dWludDhfdD4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBk
YXRhOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cHV0SW1hZ2VCdWZm
ZXJGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc291cmNlSW1hZ2VC
dWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdGluYXRpb25Qb2ludCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVm
ZmVySWRlbnRpZmllcikKK3sKKyAgICBzZW5kRGVmZXJyZWRXYWtldXBNZXNzYWdlSWZOZWVkZWQo
KTsKKyAgICBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UHV0SW1h
Z2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHNvdXJj
ZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIGltYWdlQnVmZmVySWRlbnRpZmllciksIE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpQdXRJbWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyOjpS
ZXBseSgpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAxX3MpOworfQorCiBSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldFNoYXJlYWJs
ZUJpdG1hcChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIFByZXNlcnZl
UmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24pCiB7CiAgICAgc2VuZERlZmVycmVkV2FrZXVw
TWVzc2FnZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApp
bmRleCA2MzE0OTY3MGEzNTk0ZTI1YTJkYTVjZDE5NzYxMTQ2MWM2MTc5NzQwLi44NTk2M2MzYTQ3
ZWJmZWEzMGZiMGVkMmM3ZGVmYzRjYWJhNTQ3ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJD
b3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25z
dCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCk7
CiAgICAgU3RyaW5nIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNv
bHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIFZlY3Rv
cjx1aW50OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
c3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzb3VyY2VJbWFnZUJ1ZmZlcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBnZXRTaGFyZWFibGVCaXRtYXAo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQcmVzZXJ2ZVJl
c29sdXRpb24pOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5jcHAKaW5kZXggNjBlODllMTQ2MDlkZmNlMGRmMWRhZDM2ODVkYWZkODQ4ODUyYzIzNS4u
NTI5MTVkYzljMGQ1MWQ2MTQ3YWIwMWNhZDUzNTA1YjI4N2ZkMjQ0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNw
cApAQCAtMTI1LDYgKzEyNSwxNiBAQCB2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjbwogICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmLCBj
b25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYs
IGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IHZvaWQqKQoreworICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCA3MzkzNWUyYjM3MDhm
MDZlYTc4Nzc1NTBmYTEzMWQ5YjliODBlN2EzLi5hYmMyZTgwYjdlZjA4ZjA4NDljMmY4MGU3NzIy
NmMzMmU1NWVhM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAg
IFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRp
b25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVs
QnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVs
QnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0
Rm9ybWF0KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc1RvKFdlYkNvcmU6Oklt
YWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25z
dCBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlJbWFnZVBpeGVsc0Zyb20oY29uc3QgV2ViQ29yZTo6
SW1hZ2VCdWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNrZW5kLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwg
Y29uc3Qgdm9pZCogc291cmNlRGF0YSkgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGNhbk1hcEJhY2tpbmdTdG9yZSA9IGZhbHNlOwo=
</data>
<flag name="commit-queue"
          id="451575"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430199</attachid>
            <date>2021-05-31 05:46:42 -0700</date>
            <delta_ts>2021-05-31 05:46:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226384-20210531054641.patch</filename>
            <type>text/plain</type>
            <size>36431</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQzOWUyY2Y2MWUwMGZj
MDVkZjAxZTczZDBkZDJmMjRhNTdiOWRmZS4uYjFkNjQzNWYyMDAzNmE5Y2Q3ZWYzZmIxZWRkMDI3
OTk3OGUxNDY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA1LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYmUgYWJsZSB0byBwdXQgcGl4ZWxzIGRpcmVjdGx5IGludG8gaXRzIGJhY2tlbmQgZnJvbSBh
bm90aGVyIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbmV3IGZ1bmN0aW9uIGNhbiByZXBsYWNlIHRoZSBjYWxsIHRvIEltYWdl
QnVmZmVyOjpkcmF3KCkgd2hlcmUgYWxwaGEKKyAgICAgICAgYmxlbmRpbmcgb3Igc2NhbGluZyBp
cyBub3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIEFkZCBh
IG5ldyBmdW5jdGlvbiB3aGljaCBjb3BpZXMgcGl4ZWxzIGJldHdlZW4gdHdvIEltYWdlQnVmZmVy
IGJhY2tlbmRzLgorICAgICAgICBUaGUgYmFja2VuZHMgbWF5IGRpZmZlciBpbiB0aGUgcGl4ZWwg
Zm9ybWF0IG9yIHRoZSBjb2xvciBTcGFjZS4gQnV0IHRoZXkKKyAgICAgICAgaGF2ZSB0byBhZ3Jl
ZSBpbiB0aGUgc2NhbGUgcmVzb2x1dGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SW1h
Z2VQaXhlbHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3Jt
YXQuaDoKKyAgICAgICAgV2UgaGF2ZSB0byB1c2UgY29udmVydEltYWdlUGl4ZWxzQWNjZWxlcmF0
ZWQoKSBpZiB3ZSBhcmUgY29weWluZyBiZXR3ZWVuCisgICAgICAgIGRpZmZlcmVudCBjb2xvciBz
cGFjZXMgc2luY2UgdGhlIG5vbi1hY2NlbGVyYXRlZCBwYXRoIGRvZXMgbm90IHN1cHBvcnQKKyAg
ICAgICAgY29udmVyc2lvbiBiZXR3ZWVuIGRpZmZlcmVudCBjb2xvciBzcGFjZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
Ojpjb3B5SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckNhaXJvU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHNUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVsc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICBHZXQgdGhlIGRhdGEgcG9pbnRlcnMg
ZnJvbSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBiYWNrZW5kcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICBVcyB0
aGUgbmV3IGZ1bmN0aW9uIHRvIGNvcHkgdGhlIEZpbHRlciBpbnB1dCBJbWFnZUJ1ZmZlciB0byBp
dHMKKyAgICAgICAgU291cmNlR3JhcGhpYy4KKwogMjAyMS0wNS0zMSAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFRyZWF0IHdpZHRoOiBpbnRyaW5zaWMgYXMgbm9uIGRl
ZmluaXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGYyMmRkODE0MDMxYWY2N2UyYzcwNGMxNTk2NDc5MThhMmI4MTky
MGYuLjA5YWNhNzY2ZTdlM2VlZTA4NGI4NjViNTQ0Yjk5MDIwZjM3MGRlN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFnZUJ1ZmZlciBiZSBhYmxlIHRvIHB1dCBwaXhlbHMg
ZGlyZWN0bHkgaW50byBpdHMgYmFja2VuZCBmcm9tIGFub3RoZXIgSW1hZ2VCdWZmZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM4NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1dHRpbmcgYW4gSW1h
Z2VCdWZmZXIgaW50byBhbm90aGVyIHNob3VsZCBoYXZlIGEgc3BlY2lhbCBjYXNlIGlmIHRoZXkg
CisgICAgICAgIGFyZSBib3RoIHJlbW90ZSBJbWFnZUJ1ZmZlcnMuIFJlYWQtYmFjayBzaG91bGQg
YmUgYXZvaWRlZCBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpwdXRJbWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0U2hhcmVhYmxlQml0bWFwRm9ySW1hZ2VC
dWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgSW1wbGVtZW50IFB1dEltYWdlQnVmZmVyIGFzIGEg
c3luYyBtZXNzYWdlIHRvIGVuc3VyZSBuZWl0aGVyIHRoZSBzb3VyY2UKKyAgICAgICAgbm9yIHRo
ZSBkZXN0aW5hdGlvbiBidWZmZXJzIHdpbGwgY2hhbmdlIGJlZm9yZSBjb3B5aW5nIHRoZSBwaXhl
bHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNG
cm9tKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgR2V0IHRoZSBkYXRhIHBvaW50ZXJzIGZyb20g
dGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYmFja2VuZHMuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpwdXRJbWFnZUJ1ZmZl
ckZvckltYWdlQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgRGVjaWRlIHdoZXRoZXIgcHV0dGlu
ZyBhbiBJbWFnZUJ1ZmZlciBjYW4gYmUgZG9uZSBpbiBHUFVQIG9yIGl0IGhhcyB0byAKKyAgICAg
ICAgZ28gdGhyb3VnaCB0aGUgZHJhd2luZyBzbG93IHBhdGguCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNvcHlJbWFnZVBpeGVsc1RvIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMS0wNS0zMCAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTZW5kIHJlY29tbWVuZGVkUmVzb2x1dGlvbiB1
c2luZyBEZXZpY2VQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGViMmQxNjIzYTNhMWRlMjAzMzZmZjI2
ZDI4ZDc5NWQ2MjNkNjJkYTQuLjRjNjFlOTE3Njk5ZTZmYzg0YzNiM2YxNGZmZmY0NjVkOWJjZDhk
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRl
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKQEAgLTIzOSw2ICsyMzksMjEgQEAgcHJvdGVjdGVkOgogICAgICAg
ICB9CiAgICAgfQogCisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgc291cmNl
SW1hZ2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW50UmVjdD4mIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byBh
Y3R1YWxTb3VyY2VSZWN0ID0gc291cmNlUmVjdC52YWx1ZV9vcihJbnRSZWN0KHsgfSwgc291cmNl
SW1hZ2UubG9naWNhbFNpemUoKSkpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc29sdXRpb25T
Y2FsZSgpICE9IHNvdXJjZUltYWdlLnJlc29sdXRpb25TY2FsZSgpKSB7CisgICAgICAgICAgICBj
b250ZXh0KCkuZHJhd0ltYWdlQnVmZmVyKHNvdXJjZUltYWdlLCBGbG9hdFJlY3QgeyBkZXN0aW5h
dGlvblBvaW50LCBzb3VyY2VJbWFnZS5sb2dpY2FsU2l6ZSgpIH0sIEZsb2F0UmVjdChhY3R1YWxT
b3VyY2VSZWN0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBh
dXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENyZWF0ZWQoKTsKKyAgICAgICAgYXV0byogc291
cmNlQmFja2VuZCA9IHNvdXJjZUltYWdlLmVuc3VyZUJhY2tlbmRDcmVhdGVkKCk7CisgICAgICAg
IGlmIChiYWNrZW5kICYmIHNvdXJjZUJhY2tlbmQpCisgICAgICAgICAgICBzb3VyY2VCYWNrZW5k
LT5jb3B5SW1hZ2VQaXhlbHNUbygqYmFja2VuZCwgYWN0dWFsU291cmNlUmVjdCwgZGVzdGluYXRp
b25Qb2ludCk7CisgICAgfQorCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJh
Y2tlbmRDcmVhdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAppbmRleCBmMWM3ZGIxM2Q4NTY1NzRhMTRkMjg4ZTc1NDlkOGIwY2JmYWI1ZThi
Li40NjJkNTY1NDFiMGViNGQ1YjMwMzY2YmViOGZjOTYyZmZlNmYxNDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTEyNyw2ICsxMjcs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdl
dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0
IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHV0UGl4ZWxC
dWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdFBvaW50ID0geyB9LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3Jt
YXQgPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHB1dEltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxJbnRSZWN0PiYgc291cmNlUmVjdCA9IHN0ZDo6bnVsbG9wdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQgPSB7IH0pID0gMDsKIAogICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxl
bWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkg
b25seSB3b3JrCiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFyZSBSR0Igb3IgUkdCQSBmb3Jt
YXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAppbmRleCBhNjJiM2M3YmQ2
MzBkYjk4YmMyYWNjYTdiN2FkNDVhY2EwOTE2YTAxLi43ZjE0YjVlNmJlMGFhMjRiNDAxY2QzZDQ2
NDc0MGE5YjVhNDI3YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKQEAgLTE2Niw0ICsxNjYsMzkgQEAgdm9p
ZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBz
b3VyY2VQaXhlbEJ1ZmZlciwgY28KICAgICBjb252ZXJ0SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0
aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJC
YWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291
cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRhdGEpCit7Cisg
ICAgQVNTRVJUKHNvdXJjZUJhY2tlbmQucmVzb2x1dGlvblNjYWxlKCkgPT0gcmVzb2x1dGlvblNj
YWxlKCkpOworCisgICAgYXV0byBzb3VyY2VSZWN0U2NhbGVkID0gdG9CYWNrZW5kQ29vcmRpbmF0
ZXMoc291cmNlUmVjdCk7CisgICAgYXV0byBkZXN0aW5hdGlvblBvaW50U2NhbGVkID0gdG9CYWNr
ZW5kQ29vcmRpbmF0ZXMoZGVzdGluYXRpb25Qb2ludCk7CisKKyAgICBhdXRvIHNvdXJjZVJlY3RD
bGlwcGVkID0gaW50ZXJzZWN0aW9uKHsgSW50UG9pbnQ6Onplcm8oKSwgc291cmNlQmFja2VuZC5i
YWNrZW5kU2l6ZSgpIH0sIHNvdXJjZVJlY3RTY2FsZWQpOworICAgIGF1dG8gZGVzdGluYXRpb25S
ZWN0ID0gc291cmNlUmVjdENsaXBwZWQ7CisgICAgZGVzdGluYXRpb25SZWN0Lm1vdmVCeShkZXN0
aW5hdGlvblBvaW50U2NhbGVkKTsKKworICAgIGlmIChzb3VyY2VSZWN0U2NhbGVkLngoKSA8IDAp
CisgICAgICAgIGRlc3RpbmF0aW9uUmVjdC5zZXRYKGRlc3RpbmF0aW9uUmVjdC54KCkgLSBzb3Vy
Y2VSZWN0U2NhbGVkLngoKSk7CisKKyAgICBpZiAoc291cmNlUmVjdFNjYWxlZC55KCkgPCAwKQor
ICAgICAgICBkZXN0aW5hdGlvblJlY3Quc2V0WShkZXN0aW5hdGlvblJlY3QueSgpIC0gc291cmNl
UmVjdFNjYWxlZC55KCkpOworCisgICAgZGVzdGluYXRpb25SZWN0LmludGVyc2VjdChiYWNrZW5k
UmVjdCgpKTsKKyAgICBzb3VyY2VSZWN0Q2xpcHBlZC5zZXRTaXplKGRlc3RpbmF0aW9uUmVjdC5z
aXplKCkpOworCisgICAgQ29uc3RQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IHNvdXJjZSB7Cisg
ICAgICAgIHsgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgc291cmNlQmFj
a2VuZC5waXhlbEZvcm1hdCgpLCBzb3VyY2VCYWNrZW5kLmNvbG9yU3BhY2UoKSB9LAorICAgICAg
ICBzb3VyY2VCYWNrZW5kLmJ5dGVzUGVyUm93KCksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpICsgc291cmNlUmVjdENsaXBwZWQueSgpICogc291
cmNlLmJ5dGVzUGVyUm93ICsgc291cmNlUmVjdENsaXBwZWQueCgpICogNAorICAgIH07CisKKyAg
ICBQaXhlbEJ1ZmZlckNvbnZlcnNpb25WaWV3IGRlc3RpbmF0aW9uIHsKKyAgICAgICAgeyBBbHBo
YVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBjb2xvclNw
YWNlKCkgfSwKKyAgICAgICAgYnl0ZXNQZXJSb3coKSwKKyAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oZGF0YSkgKyBkZXN0aW5hdGlvblJlY3QueSgpICogZGVzdGluYXRpb24uYnl0
ZXNQZXJSb3cgKyBkZXN0aW5hdGlvblJlY3QueCgpICogNAorICAgIH07CisKKyAgICBjb252ZXJ0
SW1hZ2VQaXhlbHMoc291cmNlLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggNDIwOTlkNGQzNjI1
YzViOTJkYTQ0OTJjMjI2OWI3MjZiMDViMjc4NS4uZmZhYWE5OTM3Y2U2MmJkYzAwN2FhMTE1MGNl
Mzc0MmQ4OGM0NDk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTExMCw2ICsxMTAsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGNv
cHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdGluYXRpb25CYWNrZW5kLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2lu
dCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0
IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJj
ZURhdGEpID0gMDsKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgY29weVRvUGxhdGZv
cm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMJiwgR0NHTGVudW0sIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBib29sLCBib29sKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC0xNDgs
NiArMTUxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25h
bDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91
dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgdm9pZCogZGF0YSkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCwgdm9pZCogZGF0YSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjb3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYg
c291cmNlQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RpbmF0aW9uUG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEsIHZvaWQqIGRhdGEpOwog
CiAgICAgUGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyQ29udmVyc2lvbi5jcHAKaW5k
ZXggOWFjZjMwNGQ3MTk5MjRlMWM5OTFlMzA1MTVmOTNhMzY1MzlhYjE1MS4uMzkyNzc3OTI2MDMy
ODhhN2JiYmRlYzJjMGU2Mjk3MWNiYjc2MjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckNvbnZlcnNpb24uY3BwCkBAIC0y
NDEsNyArMjQxLDcgQEAgdm9pZCBjb252ZXJ0SW1hZ2VQaXhlbHMoY29uc3QgQ29uc3RQaXhlbEJ1
ZmZlckNvbnZlcnNpb25WaWV3JiBzb3VyY2UsIGNvbnN0IFBpeGUKICAgICBBU1NFUlQoZGVzdGlu
YXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCBkZXN0aW5h
dGlvbi5mb3JtYXQucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIAogI2lmIFVT
RShBQ0NFTEVSQVRFKSAmJiBVU0UoQ0cpCi0gICAgaWYgKHNvdXJjZS5mb3JtYXQuYWxwaGFGb3Jt
YXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LmFscGhhRm9ybWF0ICYmIHNvdXJjZS5mb3JtYXQucGl4
ZWxGb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0LnBpeGVsRm9ybWF0KSB7CisgICAgaWYgKHNv
dXJjZS5mb3JtYXQgPT0gZGVzdGluYXRpb24uZm9ybWF0KSB7CiAgICAgICAgIC8vIEZJWE1FOiBD
YW4gdGhlcyBib3RoIGp1c3QgdXNlIHBlci1yb3cgbWVtY3B5PwogICAgICAgICBpZiAoc291cmNl
LmZvcm1hdC5hbHBoYUZvcm1hdCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkKQogICAgICAgICAgICAgY29udmVydEltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb252ZXJ0
U2luZ2xlUGl4ZWxQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkPFBpeGVsRm9ybWF0Q29udmVy
c2lvbjo6Tm9uZT4+KHNvdXJjZSwgZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uU2l6ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5jcHAKaW5kZXggZjk0ZGE1ZmI2MzEzODUxYjYwMjRjOTg3YmEwZTk1YzVkZjAyODE5Yi4uNTFm
N2VlZGY4MzFkOTU1MGI3YTdlNjgyZDg0NmI2NWQ5N2RjMTBkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9ybWF0LmNwcApAQCAt
MzAsNiArMzAsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIG9wZXJhdG9yPT0o
Y29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmIGEsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBiKQor
eworICAgIHJldHVybiBhLmFscGhhRm9ybWF0ID09IGIuYWxwaGFGb3JtYXQgJiYgYS5waXhlbEZv
cm1hdCA9PSBiLnBpeGVsRm9ybWF0ICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3BhY2U7Cit9
CisKK2Jvb2wgb3BlcmF0b3IhPShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgYSwgY29uc3QgUGl4
ZWxCdWZmZXJGb3JtYXQmIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQm
IHBpeGVsQnVmZmVyKQogewogICAgIHJldHVybiB0cyA8PCBwaXhlbEJ1ZmZlci5hbHBoYUZvcm1h
dCA8PCAnICcgPDwgcGl4ZWxCdWZmZXIucGl4ZWxGb3JtYXQgPDwgJyAnIDw8IHBpeGVsQnVmZmVy
LmNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QaXhlbEJ1ZmZlckZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGl4ZWxCdWZmZXJGb3JtYXQuaAppbmRleCBkNGY1YjAzZjYyMmY5ZDc3Njg1YjBlZDhmOWFlYTdh
NGNlYTdhNjFkLi41N2VkY2VhNWQzOGU1ZmUxZjMzOGNlZjc5OWQyODNlMmI2MzczMmVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1h
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyRm9y
bWF0LmgKQEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IFBpeGVsQnVmZmVyRm9ybWF0IHsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlckZv
cm1hdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK1dFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0Jik7
CitXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yIT0oY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQm
LCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOworCiBXRUJDT1JFX0VYUE9SVCBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYpOwogCiB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFBpeGVsQnVmZmVyRm9ybWF0OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFj
ZUJhY2tlbmQuY3BwCmluZGV4IGFkNzE2YjhjNjNiMmFjMDRhOWIzMjBlMDIwY2Y1YTY1YzEzZGQ5
MTIuLjg0YWE2YTNlZmMwM2U0YjUyZGVlYzFmZGM1MTU1NDVlNmVhZDdkYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTE3LDYgKzExNywy
MCBAQCB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIo
Y29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZgogICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0
eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0UG9pbnRTY2FsZWQueCgpLCBkZXN0UG9p
bnRTY2FsZWQueSgpLCBzcmNSZWN0U2NhbGVkLndpZHRoKCksIHNyY1JlY3RTY2FsZWQuaGVpZ2h0
KCkpOwogfQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdl
UGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0aW5hdGlvbkJhY2tlbmQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25z
dAoreworICAgIGRlc3RpbmF0aW9uQmFja2VuZC5jb3B5SW1hZ2VQaXhlbHNGcm9tKCp0aGlzLCBz
b3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRh
KG1fc3VyZmFjZS5nZXQoKSkpOworfQorCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFj
a2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJj
ZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0
aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVy
QmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBk
ZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRh
KG1fc3VyZmFjZS5nZXQoKSkpOworCisgICAgSW50UmVjdCBzb3VyY2VSZWN0U2NhbGVkID0gdG9C
YWNrZW5kQ29vcmRpbmF0ZXMoc291cmNlUmVjdCk7CisgICAgSW50UG9pbnQgZGVzdGluYXRpb25Q
b2ludFNjYWxlZCA9IHRvQmFja2VuZENvb3JkaW5hdGVzKGRlc3RpbmF0aW9uUG9pbnQpOworICAg
IGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eV9yZWN0YW5nbGUobV9zdXJmYWNlLmdldCgpLCBkZXN0
aW5hdGlvblBvaW50U2NhbGVkLngoKSwgZGVzdGluYXRpb25Qb2ludFNjYWxlZC55KCksIHNvdXJj
ZVJlY3RTY2FsZWQud2lkdGgoKSwgc291cmNlUmVjdFNjYWxlZC5oZWlnaHQoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDQUlSTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggMDY0MjI5NzAzNjc2MGU1OTI0
NDY3YzlmOThkYjNmMTA1MzkwMTUwNy4uMzI5MGFmNWNjOTE2ODRmYWU0YzAyNDlmNjM1NGI3NDM3
MzdhMzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmgK
QEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+
IGdldFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNv
bnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNv
bnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsK
IAorICAgIHZvaWQgY29weUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFj
a2VuZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0
aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShj
b25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBz
b3VyY2VEYXRhKSBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIEltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4m
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA1MDA5NzcyZDBi
Mjg1NDllODQ5ZTg2N2ZkMDEzY2Q1Y2RmZWFkODE1Li44Y2E5MGNmYTc1MDI0YWZiMGFjYzhjN2Y1
M2RhYWQ3NzMwZWRlOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCkBA
IC0xNjMsNiArMTYzLDE2IEBAIHZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OnB1dFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwKICAgICBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQs
IGRlc3RGb3JtYXQsIG1fZGF0YSk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdGluYXRpb25CYWNr
ZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRp
b25Qb2ludCkgY29uc3QKK3sKKyAgICBkZXN0aW5hdGlvbkJhY2tlbmQuY29weUltYWdlUGl4ZWxz
RnJvbSgqdGhpcywgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgbV9kYXRhKTsKK30KKwor
dm9pZCBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShjb25z
dCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3Vy
Y2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShz
b3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRhLCBt
X2RhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0cp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAppbmRleCBjODkwZTlmZThmMmU4NjRmNTBi
Njg4OWM5ZWI0ZjBmNTg3MmJiOTE4Li5mZjYwNWE2MDFmYjNlYzAxMGU0Yzg5ZDFiMjE2NTBkNzg1
ZmRjYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTUzLDYgKzUzLDkg
QEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVy
KGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVy
JiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAgIHZvaWQgY29w
eUltYWdlUGl4ZWxzVG8oSW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0QmFja2VuZCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgY29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBJbWFnZUJ1ZmZl
ckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRhKSBvdmVy
cmlkZTsKKwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0VXBwZXJMZWZ0Q29y
bmVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
Y3BwCmluZGV4IDA3YTIwMmExZTM0ODVlN2JhNTIwNDI3ZjBiZjJiNGJmZjJmMWU3NDIuLjcyODIz
ZjhjYjVlOGMwNjk5NmIxZDhhN2NhOTJmOThhMWViMDk2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTg5LDYgKzE4OSwxOSBAQCB2b2lkIEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVs
QnVmZmVyLAogICAgIG1fcmVxdWlyZXNEcmF3QWZ0ZXJQdXRQaXhlbEJ1ZmZlciA9IHRydWU7CiB9
CiAKK3ZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNUbyhJ
bWFnZUJ1ZmZlckJhY2tlbmQmIGRlc3RpbmF0aW9uQmFja2VuZCwgY29uc3QgSW50UmVjdCYgc291
cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0Cit7CisgICAg
SU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqbV9zdXJmYWNlLCBJT1N1cmZhY2U6OkxvY2tlcjo6QWNj
ZXNzTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBkZXN0aW5hdGlvbkJhY2tlbmQuY29weUltYWdlUGl4
ZWxzRnJvbSgqdGhpcywgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgbG9jay5zdXJmYWNl
QmFzZUFkZHJlc3MoKSk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpj
b3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2Vu
ZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpCit7CisgICAgSU9TdXJmYWNlOjpMb2NrZXIg
bG9jaygqbV9zdXJmYWNlLCBJT1N1cmZhY2U6OkxvY2tlcjo6QWNjZXNzTW9kZTo6UmVhZFdyaXRl
KTsKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVsc0Zyb20oc291cmNlQmFj
a2VuZCwgc291cmNlUmVjdCwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlRGF0YSwgbG9jay5zdXJm
YWNlQmFzZUFkZHJlc3MoKSk7CisgICAgbV9yZXF1aXJlc0RyYXdBZnRlclB1dFBpeGVsQnVmZmVy
ID0gdHJ1ZTsKK30KKwogSU9TdXJmYWNlKiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnN1
cmZhY2UoKQogewogICAgIGZsdXNoQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaAppbmRleCA4M2FlYzhjZDkyNmRjNTVmMWQ2ODI5YmI1MTMyODYzYTUyMTEwN2EwLi40
NzY4YmQzNWVjYTY1ZWFmOGI2ZjY4ZmM4ZWJkMjEzNDk4YmJmYjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImLCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9pZCBjb3B5SW1hZ2VQaXhlbHNUbyhJbWFnZUJ1
ZmZlckJhY2tlbmQmIGRlc3RCYWNrZW5kLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b3B5SW1hZ2VQaXhlbHNGcm9tKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYgc291cmNlQmFja2Vu
ZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RpbmF0aW9u
UG9pbnQsIGNvbnN0IHZvaWQqIHNvdXJjZURhdGEpIG92ZXJyaWRlOworCiAgICAgYm9vbCBpc0lu
VXNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCkg
b3ZlcnJpZGU7CiAgICAgVm9sYXRpbGl0eVN0YXRlIHNldFZvbGF0aWxlKGJvb2wpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggODhhMzZhNDEwMjZiZDNhNTg1NDQ3ODIwMjc0YzEx
MDdkNzgzOTJlOS4uODcxYzcwZmE1Y2RjYjU2YWZjNzUyNjk0MThlOWVlZmVjYjNmNjZmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU291cmNlR3JhcGhpYzo6
cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBpZiAoIXJlc3VsdEltYWdlIHx8ICFzb3VyY2VJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzdWx0SW1hZ2UtPmNvbnRleHQoKS5kcmF3
SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlLCBJbnRQb2ludCgpKTsKKyAgICByZXN1bHRJbWFnZS0+
cHV0SW1hZ2VCdWZmZXIoKnNvdXJjZUltYWdlKTsKIH0KIAogVGV4dFN0cmVhbSYgU291cmNlR3Jh
cGhpYzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRp
b25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGNiNTAxMTY3YjRkZDU3
MmM0YzVjMjk4MTM4MmYxMjZjYjI5NzhmZTcuLmU1N2VhNmFjNGYyZDc4NzQwNjEyZDQ1ZDRkNDQ3
MzBiMGUxNzQ5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQxMiw3ICs0MTIsMTkg
QEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhRm9ySW1hZ2VCdWZmZXIoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjoKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGRhdGEpKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVC
aXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVzb2x1dGlv
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cHV0SW1hZ2VC
dWZmZXJGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgc291cmNlSW1h
Z2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQ
b2ludCYgZGVzdGluYXRpb25Qb2ludCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBz
b3VyY2VJbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZl
cihzb3VyY2VJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBt
X3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKTsKKyAgICBpZiAoc291cmNlSW1hZ2VCdWZmZXIgJiYgaW1hZ2VCdWZmZXIpCisgICAgICAg
IGltYWdlQnVmZmVyLT5wdXRJbWFnZUJ1ZmZlcigqc291cmNlSW1hZ2VCdWZmZXIsIHNvdXJjZVJl
Y3QsIGRlc3RpbmF0aW9uUG9pbnQpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1
ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHJlc2VydmVSZXNv
bHV0aW9uIHByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNzM0MjdhOTY0
Zjc0NTEyMWJhZmExMTllZWY0ZmViMzMzYjRjOTM5MS4uOGVjMDdlYThkYWIyZmU1ZTIwMzM1YjJi
YjcwZTNhNTFmZmJkNTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xMzYsNiArMTM2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcihjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJl
c2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmKTsKICAgICB2b2lkIGdldERhdGFGb3JJ
bWFnZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4g
cXVhbGl0eSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiAgICAgdm9pZCBnZXRTaGFyZWFi
bGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSYmKT4mJik7CisgICAgdm9pZCBwdXRJbWFnZUJ1ZmZlckZv
ckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBzb3VyY2VJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQg
ZGVsZXRlQWxsRm9udHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4K
aW5kZXggNGIzZmU5YTAyNjJlOGE1NDkxODUyYzZkNmEwNDA0NWQ2YTY5NjM5Ny4uZTcxNTQ0NmVk
NDQyNzI0Y2Y1YzdjNDAwMWIxZmY4YTBhMmI3ZmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCB7CiAgICAgVXBkYXRlU2hhcmVkTWVtb3J5QW5kU2VtYXBob3JlRm9yR2V0
UGl4ZWxCdWZmZXIodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSBoYW5kbGUsIElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkgU3luY2hyb25vdXMK
ICAgICBEZXN0cm95R2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkoKQogICAgIEdldERhdGFVUkxG
b3JJbWFnZUJ1ZmZlcihTdHJpbmcgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uIHByZXNlcnZlUmVz
b2x1dGlvbiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikgLT4gKFN0cmluZyB1cmxTdHJpbmcpIFN5bmNocm9ub3VzCisgICAg
UHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgc291cmNlSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IHNv
dXJjZVJlY3QsIFdlYkNvcmU6OkludFBvaW50IGRlc3RpbmF0aW9uUG9pbnQsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpIC0+ICgpIFN5
bmNocm9ub3VzCiAgICAgR2V0RGF0YUZvckltYWdlQnVmZmVyKFN0cmluZyBtaW1lVHlwZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIC0+IChWZWN0b3I8dWludDhfdD4g
ZGF0YSkgU3luY2hyb25vdXMKICAgICBHZXRTaGFyZWFibGVCaXRtYXBGb3JJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24gcHJlc2VydmVSZXNvbHV0aW9uKSAtPiAo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzCiAgICAg
Q2FjaGVOYXRpdmVJbWFnZShXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
LmNwcAppbmRleCBlM2IzZjdkY2U1OGYzMjcxMzQzOGRmYmJiZTA0YjcwOGYwOWMxNmM2Li42MTFm
NmEwNjIxNjk5N2E0YTAxOTg2NTVmMDg5OTQ3OGFiMWU2ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCkBAIC0xNjQsNiArMTY0LDE2IEBA
IHZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihj
b25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRQaXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0LCBtX2Jp
dG1hcC0+ZGF0YSgpKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQ6OmNvcHlJbWFnZVBpeGVsc1RvKEltYWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50
KSBjb25zdAoreworICAgIGRlc3RCYWNrZW5kLmNvcHlJbWFnZVBpeGVsc0Zyb20oKnRoaXMsIHNv
dXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fYml0bWFwLT5kYXRhKCkpOworfQorCit2b2lk
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJvbShj
b25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQmIHNvdXJjZUJhY2tlbmQsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBz
b3VyY2VEYXRhKQoreworICAgIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzRnJv
bShzb3VyY2VCYWNrZW5kLCBzb3VyY2VSZWN0LCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VEYXRh
LCBtX2JpdG1hcC0+ZGF0YSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVl
MzZiYjNkLi4zYTQ5NGJiOWY1YTkyODdiY2NhNjBhYTBkYmFhYjY1YjcwMTljYTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTYxLDYgKzYx
LDkgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdl
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3Jt
YXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAg
IHZvaWQgY29weUltYWdlUGl4ZWxzVG8oV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kJiBkZXN0
QmFja2VuZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
Y29weUltYWdlUGl4ZWxzRnJvbShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQmIHNv
dXJjZUJhY2tlbmQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBjb25zdCB2b2lkKiBzb3VyY2VEYXRh
KSBvdmVycmlkZTsKKwogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDZkY2YxZDUyZjFh
OGExOTgxN2Y1YTUxYzBiZDAzOTczNDljOTE0N2EuLjE5NzhlODQ2ZjVjMjU2ZmUzNjEzYzZmYjZk
NWYyYzIyZDRhNDI0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC01Miw2ICs1
Miw3IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUCiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0
SW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlcjo6bV9kcmF3aW5nQ29udGV4dDsKICAgICB1c2luZyBCYXNlRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlcjo6bV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgdXNpbmcgQmFzZURpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1h
Z2VCdWZmZXI6OnJlc29sdXRpb25TY2FsZTsKIAogcHVibGljOgpAQCAtMjM1LDYgKzIzNiwxOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZHJhd2luZ0NvbnRleHQucmVjb3JkZXIoKS5wdXRQaXhl
bEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKICAg
ICB9CiAKKyAgICB2b2lkIHB1dEltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBzb3Vy
Y2VJbWFnZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0PiYgc291cmNlUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RpbmF0aW9uUG9pbnQpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGFjdHVhbFNvdXJjZVJlY3Qg
PSBzb3VyY2VSZWN0LnZhbHVlX29yKFdlYkNvcmU6OkludFJlY3QoeyB9LCBzb3VyY2VJbWFnZS5s
b2dpY2FsU2l6ZSgpKSk7CisKKyAgICAgICAgaWYgKCFpc0NhY2hlZEltYWdlQnVmZmVyKHNvdXJj
ZUltYWdlKSkKKyAgICAgICAgICAgIGNvbnRleHQoKS5kcmF3SW1hZ2VCdWZmZXIoc291cmNlSW1h
Z2UsIFdlYkNvcmU6OkZsb2F0UmVjdCB7IGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZUltYWdlLmxv
Z2ljYWxTaXplKCkgfSwgV2ViQ29yZTo6RmxvYXRSZWN0KGFjdHVhbFNvdXJjZVJlY3QpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnB1
dEltYWdlQnVmZmVyRm9ySW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKCksIGFjdHVhbFNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIG1fcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB9CisKICAgICBib29sIHByZWZlcnNQcmVwYXJh
dGlvbkZvckRpc3BsYXkoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGZs
dXNoQ29udGV4dCgpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAKaW5kZXggMDE0NTg3MTY4N2M0OWIwYjE1NmJlYzg2MjA5ODJlM2JjMDU2ZGZhNC4uYmI4
NzMyMjA3OWFlZmU2M2M4YzJhNjcwMzk4ZmZkMmUxYjIxMjc2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMjIwLDYgKzIyMCwxMiBAQCBWZWN0b3I8dWlu
dDhfdD4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXREYXRhRm9ySW1hZ2VCdWZmZXIo
Y29uc3QgU3RyaW5nJgogICAgIHJldHVybiBkYXRhOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6cHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgc291cmNlSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3sKKyAgICBzZW5kRGVm
ZXJyZWRXYWtldXBNZXNzYWdlSWZOZWVkZWQoKTsKKyAgICBzZW5kU3luYyhNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UHV0SW1hZ2VCdWZmZXJGb3JJbWFnZUJ1ZmZlcihzb3VyY2VJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIsIHNvdXJjZVJlY3QsIGRlc3RpbmF0aW9uUG9pbnQsIGltYWdl
QnVmZmVySWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpQdXRJ
bWFnZUJ1ZmZlckZvckltYWdlQnVmZmVyOjpSZXBseSgpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcigpLCAxX3MpOworfQorCiBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmdldFNoYXJlYWJsZUJpdG1hcChSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXIsIFByZXNlcnZlUmVzb2x1dGlvbiBwcmVzZXJ2ZVJlc29sdXRpb24p
CiB7CiAgICAgc2VuZERlZmVycmVkV2FrZXVwTWVzc2FnZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCA2MzE0OTY3MGEzNTk0ZTI1YTJkYTVjZDE5
NzYxMTQ2MWM2MTc5NzQwLi44NTk2M2MzYTQ3ZWJmZWEzMGZiMGVkMmM3ZGVmYzRjYWJhNTQ3ZWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTk5LDYgKzk5LDcg
QEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UmLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCk7CiAgICAgU3RyaW5nIGdldERhdGFVUkxGb3JJbWFn
ZUJ1ZmZlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVh
bGl0eSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIFZlY3Rvcjx1aW50OF90PiBnZXREYXRhRm9ySW1hZ2VCdWZm
ZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHks
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBwdXRJbWFn
ZUJ1ZmZlckZvckltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBzb3VyY2VJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0aW5hdGlvblBvaW50LCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsK
ICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxp
c3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBnZXRTaGFyZWFibGVCaXRtYXAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pOwogICAgIHZvaWQgY2FjaGVOYXRp
dmVJbWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggNjBlODllMTQ2MDlkZmNl
MGRmMWRhZDM2ODVkYWZkODQ4ODUyYzIzNS4uNTI5MTVkYzljMGQ1MWQ2MTQ3YWIwMWNhZDUzNTA1
YjI4N2ZkMjQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMTI1LDYgKzEyNSwxNiBAQCB2b2lkIElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29uc3Qg
UGl4ZWxCdWZmZXImLCBjbwogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
K3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhl
bHNUbyhJbWFnZUJ1ZmZlckJhY2tlbmQmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQm
KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQg
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHNGcm9t
KGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2lu
dCYsIGNvbnN0IHZvaWQqKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaAppbmRleCA3MzkzNWUyYjM3MDhmMDZlYTc4Nzc1NTBmYTEzMWQ5YjliODBlN2EzLi5h
YmMyZTgwYjdlZjA4ZjA4NDljMmY4MGU3NzIyNmMzMmU1NWVhM2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTYxLDYgKzYxLDggQEAgcHVibGljOgogICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVs
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVs
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlJbWFnZVBpeGVsc1RvKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZCYgZGVzdEJhY2tlbmQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBkZXN0aW5hdGlvblBvaW50KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlJbWFn
ZVBpeGVsc0Zyb20oY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kJiBzb3VyY2VCYWNr
ZW5kLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVzdGluYXRpb25Qb2ludCwgY29uc3Qgdm9pZCogc291cmNlRGF0YSkgb3ZlcnJp
ZGU7CiAKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5l
ciA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJhY2tpbmdTdG9yZSA9
IGZhbHNlOwo=
</data>
<flag name="review"
          id="451574"
          type_id="1"
          status="?"
          setter="sabouhallawa"
    />
          </attachment>
      

    </bug>

</bugzilla>