<?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>188438</bug_id>
          
          <creation_ts>2018-08-09 07:42:30 -0700</creation_ts>
          <short_desc>Storing blobs in IDB on iOS: &quot;Error preparing blob/file&quot;</short_desc>
          <delta_ts>2026-01-23 14:40:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari 11</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jake Archibald">jaffathecake</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>daniel</cc>
    
    <cc>dillon</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hello</cc>
    
    <cc>henry</cc>
    
    <cc>hi</cc>
    
    <cc>jsbell</cc>
    
    <cc>oneillua</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>tom</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448996</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2018-08-09 07:42:30 -0700</bug_when>
    <thetext>I&apos;m seeing reports of this error on iOS 11.4.1:

https://github.com/jakearchibald/idb/issues/58
https://github.com/localForage/localForage/issues/834

It doesn&apos;t seem to happen on all devices, but I&apos;ve seen it on a colleague&apos;s device.

Test: https://static-misc.glitch.me/idb-blob-test - you should see a picture of a cat.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448997</commentid>
    <comment_count>1</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2018-08-09 07:42:58 -0700</bug_when>
    <thetext>I haven&apos;t been able to recreate it on an iOS simulator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449012</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-09 09:26:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/43097279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478302</commentid>
    <comment_count>3</comment_count>
      <attachid>354759</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-11-13 20:25:19 -0800</bug_when>
    <thetext>Created attachment 354759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478520</commentid>
    <comment_count>4</comment_count>
      <attachid>354759</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-14 10:44:41 -0800</bug_when>
    <thetext>Comment on attachment 354759
Patch

This should have a test so we don&apos;t regress it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478926</commentid>
    <comment_count>5</comment_count>
      <attachid>354939</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-11-15 08:54:36 -0800</bug_when>
    <thetext>Created attachment 354939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478944</commentid>
    <comment_count>6</comment_count>
      <attachid>354939</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-15 09:20:05 -0800</bug_when>
    <thetext>Comment on attachment 354939
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Since network process always has access to temp folder now, we don&apos;t need to grant access to each temp file.

&quot;Since network process always has access to temp folder now&quot;.
-&gt; You mean that you are introducing this behavior in this patch right? This is not pre-existing behavior right? If so, the change log should be clearer about that. It seems we are granting wider sandbox access to the network process with your patch and it is important to point out.

&gt; Source/WebCore/ChangeLog:11
&gt; +        No behavior change. Make three existing tests pass on iOS device. 

Sounds like a behavior change to me no? Presumably there was some use-case that was broken / did not work before and now works?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478983</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-11-15 11:20:50 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 354939 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354939&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Since network process always has access to temp folder now, we don&apos;t need to grant access to each temp file.
&gt; 
&gt; &quot;Since network process always has access to temp folder now&quot;.
&gt; -&gt; You mean that you are introducing this behavior in this patch right? This
&gt; is not pre-existing behavior right? If so, the change log should be clearer
&gt; about that. It seems we are granting wider sandbox access to the network
&gt; process with your patch and it is important to point out.
&gt; 

This is specified in Source/WebKit/ChangeLog. Will add to this one also.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        No behavior change. Make three existing tests pass on iOS device. 
&gt; 
&gt; Sounds like a behavior change to me no? Presumably there was some use-case
&gt; that was broken / did not work before and now works?

We expected network process had access to temp folder in our code, so I though this is an &quot;old&quot; behavior which doesn&apos;t work... Will remove the &quot;No behavior change&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478986</commentid>
    <comment_count>8</comment_count>
      <attachid>354959</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-11-15 11:33:16 -0800</bug_when>
    <thetext>Created attachment 354959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479425</commentid>
    <comment_count>9</comment_count>
      <attachid>354959</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 08:58:44 -0800</bug_when>
    <thetext>Comment on attachment 354959
Patch

Clearing flags on attachment: 354959

Committed r238283: &lt;https://trac.webkit.org/changeset/238283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479426</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 08:58:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727302</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Westendorf">daniel</who>
    <bug_when>2021-02-09 15:33:20 -0800</bug_when>
    <thetext>I&apos;m seeing this issue again on iOS 14.5 (18E5140k). The error is not present in 14.5 (18E5140i) or iOS 14.4.

UnknownError: Error preparing Blob/File data to be stored in object store</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729814</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Westendorf">daniel</who>
    <bug_when>2021-02-16 11:18:47 -0800</bug_when>
    <thetext>Regression no longer present in 14.5 (18E5154f), sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804013</commentid>
    <comment_count>13</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2021-10-13 15:28:27 -0700</bug_when>
    <thetext>I&apos;m still seeing this issue and can easily re-create by opening Safari in private browsing on 14.7.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2174602</commentid>
    <comment_count>14</comment_count>
    <who name="">henry</who>
    <bug_when>2026-01-23 14:40:03 -0800</bug_when>
    <thetext>I&apos;m still seeing this issue in iOS 18.7 for 2 devices.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354759</attachid>
            <date>2018-11-13 20:25:19 -0800</date>
            <delta_ts>2018-11-15 08:54:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188438-20181113202518.patch</filename>
            <type>text/plain</type>
            <size>24367</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjMGViNTliYWIzYmZj
YTk1ZDc3Yzg5NjFhOGViMWU1MTA5MWEyYS4uM2UzZDNmYTFmNmJmNGFkYjZiODBkZjY2MWY2ODE2
YTlmZDcwZGY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTExLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JpbmcgYmxvYnMgaW4g
SURCIG9uIGlPUzogIkVycm9yIHByZXBhcmluZyBibG9iL2ZpbGUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzMDk3Mjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNpbmNlIG5ldHdvcmsgcHJvY2VzcyBhbHdheXMgaGFzIGFjY2VzcyB0byB0ZW1w
IGZvbGRlciwgd2UgZG9uJ3QgbmVlZCB0byBtYW5hZ2UgdGhlIGFjY2VzcyB0byBlYWNoIHRlbXAg
ZmlsZS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6U1FMaXRlSURCVHJhbnNhY3Rpb246Om1vdmVCbG9iRmlsZXNJZk5lY2Vz
c2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9u
OjpkZWxldGVCbG9iRmlsZXNJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAyMDE4LTExLTA4ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgUmV2ZWFs
IEZyYW1ld29yayB0byByZXBsYWNlIExvb2t1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNDMyOWRmYTViM2ExZTc2
MzMxOTA0YzQ0ZjQyNGQ3YTljZTQwZmJhLi5hNzQ5YjBmMzA5ZmM2YWRlODg1YjA5NjYzMjMzODkw
YTU3MzJjNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTExLTEzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JpbmcgYmxvYnMgaW4gSURC
IG9uIGlPUzogIkVycm9yIHByZXBhcmluZyBibG9iL2ZpbGUiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQzMDk3Mjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEdyYW50IHNhbmRib3ggZXh0ZW5zaW9uIG9mIHRlbXAgZm9sZGVyIHRvIG5ldHdvcmsg
cHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCbG9iUmVnaXN0cnk6OnJlZ2lz
dGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpoYW5kbGVHZXRSZXN1bHQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1Rl
bXBvcmFyeUZpbGVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNGb3JPcHRpb25hbGx5RmlsZUJhY2tl
ZEJsb2IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Z2V0QmxvYkRhdGFGaWxlUmVmZXJlbmNlRm9yUGF0aCk6IERlbGV0ZWQuCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21w
bGV0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5z
aW9uc0ZvckJsb2JGaWxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVw
YXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9ucyk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5z
dXJlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkT3BlbkN1cnNvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvcik6CisgICAg
ICAgIChXZWJLaXQ6OnByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeSk6IERl
bGV0ZWQuCisKIDIwMTgtMTEtMDggIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZG9wdCBSZXZlYWwgRnJhbWV3b3JrIHRvIHJlcGxhY2UgTG9va3Vw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQmFja2luZ1N0b3JlLmgKaW5kZXggYmJmMzU2Yjg1Y2NlZGNkZThjNGEzMzdiM2E0NDIzZTBj
MDc0YWE1Yy4uNGY2MWM3MjUxOGRiMTlkYzhiNDhiMzc2YTYwMzVlYTcxZDYwYmQ5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJC
YWNraW5nU3RvcmUuaApAQCAtNTksNyArNTksNiBAQCBuYW1lc3BhY2UgSURCU2VydmVyIHsKIGNs
YXNzIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyIHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlcigpID0gZGVmYXVsdDsK
LSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShjb25zdCBT
dHJpbmcmIHBhdGgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzVG9UZW1wb3JhcnlGaWxl
Q29tcGxldGUoY29uc3QgU3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRy
YW5zYWN0aW9uLmNwcAppbmRleCBhMDJmNjQxYmRhOGMyNTAyMTM5ZTZhNzRkOGIxOTRjY2E3MmY2
ZDY4Li43ODFiNzlmNjNhMDYxZDU4ZDFjOTJhNDEzYzIxYWZkZTY1NjQ5MzZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNh
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJUcmFuc2FjdGlvbi5jcHAKQEAgLTg5LDggKzg5LDYgQEAgdm9pZCBTUUxpdGVJREJU
cmFuc2FjdGlvbjo6bW92ZUJsb2JGaWxlc0lmTmVjZXNzYXJ5KCkKIHsKICAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnkgPSBtX2JhY2tpbmdTdG9yZS5mdWxsRGF0YWJhc2VEaXJlY3RvcnkoKTsK
ICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9ibG9iVGVtcG9yYXJ5QW5kU3RvcmVkRmlsZW5hbWVz
KSB7Ci0gICAgICAgIG1fYmFja2luZ1N0b3JlLnRlbXBvcmFyeUZpbGVIYW5kbGVyKCkucHJlcGFy
ZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShlbnRyeS5maXJzdCk7Ci0KICAgICAgICAgaWYgKCFG
aWxlU3lzdGVtOjpoYXJkTGlua09yQ29weUZpbGUoZW50cnkuZmlyc3QsIEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZURpcmVjdG9yeSwgZW50cnkuc2Vjb25kKSkp
CiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBsaW5rL2NvcHkgdGVtcG9yYXJ5IGJs
b2IgZmlsZSAnJXMnIHRvIGxvY2F0aW9uICclcyciLCBlbnRyeS5maXJzdC51dGY4KCkuZGF0YSgp
LCBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VEaXJlY3Rvcnks
IGVudHJ5LnNlY29uZCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTEwOCw3ICsxMDYsNiBAQCB2b2lk
IFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpkZWxldGVCbG9iRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5ID0gbV9iYWNraW5nU3RvcmUuZnVsbERhdGFiYXNlRGly
ZWN0b3J5KCk7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYmxvYlJlbW92ZWRGaWxlbmFtZXMp
IHsKICAgICAgICAgU3RyaW5nIGZ1bGxQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KGRhdGFiYXNlRGlyZWN0b3J5LCBlbnRyeSk7Ci0gICAgICAgIG1fYmFja2luZ1N0
b3JlLnRlbXBvcmFyeUZpbGVIYW5kbGVyKCkucHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5Rmls
ZShmdWxsUGF0aCk7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlLnRlbXBvcmFyeUZpbGVIYW5kbGVy
KCkuYWNjZXNzVG9UZW1wb3JhcnlGaWxlQ29tcGxldGUoZnVsbFBhdGgpOwogICAgIH0KIApAQCAt
MTE3LDEwICsxMTQsOCBAQCB2b2lkIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpkZWxldGVCbG9iRmls
ZXNJZk5lY2Vzc2FyeSgpCiAKIElEQkVycm9yIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjphYm9ydCgp
CiB7Ci0gICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYmxvYlRlbXBvcmFyeUFuZFN0b3JlZEZpbGVu
YW1lcykgewotICAgICAgICBtX2JhY2tpbmdTdG9yZS50ZW1wb3JhcnlGaWxlSGFuZGxlcigpLnBy
ZXBhcmVGb3JBY2Nlc3NUb1RlbXBvcmFyeUZpbGUoZW50cnkuZmlyc3QpOworICAgIGZvciAoYXV0
byYgZW50cnkgOiBtX2Jsb2JUZW1wb3JhcnlBbmRTdG9yZWRGaWxlbmFtZXMpCiAgICAgICAgIG1f
YmFja2luZ1N0b3JlLnRlbXBvcmFyeUZpbGVIYW5kbGVyKCkuYWNjZXNzVG9UZW1wb3JhcnlGaWxl
Q29tcGxldGUoZW50cnkuZmlyc3QpOwotICAgIH0KIAogICAgIG1fYmxvYlRlbXBvcmFyeUFuZFN0
b3JlZEZpbGVuYW1lcy5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggNDcz
ZWE1YjE3MmFmZTdlYTQ3ODFhYmFjMGI0MWQwZjcwODhmM2U1YS4uYzc5NDRkMWIzNmY3MzU5ZDNj
YjYxNzA2OWMzMDEyMTg4NTUzNDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtMTEy
LDcgKzExMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRl
ZDxJblByb2Nlc3NJREJTZXJ2ZXI+OjpyZWYoKTsgfQogICAgIHZvaWQgZGVyZWYoKSBvdmVycmlk
ZSB7IFJlZkNvdW50ZWQ8SW5Qcm9jZXNzSURCU2VydmVyPjo6ZGVyZWYoKTsgfQogCi0gICAgdm9p
ZCBwcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
IHsgfQogICAgIHZvaWQgYWNjZXNzVG9UZW1wb3JhcnlGaWxlQ29tcGxldGUoY29uc3QgU3RyaW5n
JiBwYXRoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAppbmRl
eCBiNjc2NjE0OWVlZDExZTljMjhiMGUxNDMzYWU2ZGVjMGFkNWQ2OTk3Li42M2QyMzdkOTk3NTU1
M2M1NGNjOGRiNjBiMzBjYjIyYTA2NjYyZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCkBA
IC04OCwxMCArODgsNyBAQCB2b2lkIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVS
TChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdAogCiB2b2lkIE5ldHdvcmtC
bG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpCiB7Ci0gICAgYXV0byBmaWxlUmVmZXJlbmNlID0gY29ubmVjdGlvbi0+Z2V0
QmxvYkRhdGFGaWxlUmVmZXJlbmNlRm9yUGF0aChmaWxlQmFja2VkUGF0aCk7Ci0gICAgQVNTRVJU
KGZpbGVSZWZlcmVuY2UpOwotCi0gICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUoZmlsZVJlZmVyZW5jZSksIGNv
bnRlbnRUeXBlKTsKKyAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5
RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZShmaWxlQmFja2VkUGF0aCwgbnVsbHB0ciksIGNvbnRlbnRUeXBlKTsK
IAogICAgIEFTU0VSVCghbV9ibG9ic0ZvckNvbm5lY3Rpb24uZ2V0KGNvbm5lY3Rpb24pLmNvbnRh
aW5zKHVybCkpOwogICAgIEJsb2JGb3JDb25uZWN0aW9uTWFwOjppdGVyYXRvciBtYXBJdGVyYXRv
ciA9IG1fYmxvYnNGb3JDb25uZWN0aW9uLmZpbmQoY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA0ZGQ5NTRlZTQ3ZWVmZGM1MjEwNDhkOGJjYzcw
YTM2ZWQwM2M3ZDk3Li4xYWYyNTllOWU2MDFmYjg5NWI3N2Y0ZWRjM2Q1OWFlMDg2YTM4ZmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTE1NywxMyArMTU3LDcg
QEAgdGVtcGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpoYW5kbGVHZXRSZXN1bHQoY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRv
bigpLmdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGJsb2JGaWxlUGF0aHMsIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMsIHJlc3VsdERhdGFdKFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5JiYgaGFuZGxlcykgewotICAgICAgICBzZW5kKE1lc3NhZ2VUeXBl
KHsgcmVzdWx0RGF0YSwgV1RGTW92ZShoYW5kbGVzKSB9KSk7Ci0gICAgfSk7Ci0jZWxzZQogICAg
IHNlbmQoTWVzc2FnZVR5cGUocmVzdWx0RGF0YSkpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYgcmVzdWx0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWM5NDIy
NDA0MThmYTIyYjMzYzRmN2IzMDYxMDBlMjIwZTY1ZDI4OC4uNGRkM2Y3MjA2YWQxNTAzNDg0Y2M4
NmRmMWY0MWExYTM1OGM2Yzg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUw
NywyNSArNTA3LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0
ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBOZXR3b3JrQmxvYlJl
Z2lzdHJ5OjpzaW5nbGV0b24oKS5yZWdpc3RlckJsb2JVUkwodGhpcywgdXJsLCBzcmNVUkwsIHNo
b3VsZEJ5cGFzc0Nvbm5lY3Rpb25DaGVjayk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNGb3JPcHRpb25hbGx5Rmls
ZUJhY2tlZEJsb2IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVQYXRocywgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmJiBoYW5kbGVzKQotewotI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCi0gICAgQVNTRVJUKGZpbGVQYXRocy5zaXplKCkgPT0gaGFuZGxlcy5zaXplKCkpOwot
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWxlUGF0aHMuc2l6ZSgpOyArK2kpCi0gICAg
ICAgIG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlcy5hZGQoZmlsZVBhdGhzW2ldLCBCbG9iRGF0YUZp
bGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVQYXRoc1tpXSwgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoaGFuZGxlc1tpXSkpKSk7Ci0jZWxzZQotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsZVBhdGhzLnNpemUoKTsgKytpKQotICAgICAgICBt
X2Jsb2JEYXRhRmlsZVJlZmVyZW5jZXMuYWRkKGZpbGVQYXRoc1tpXSwgQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShmaWxlUGF0aHNbaV0sIG51bGxwdHIp
KTsKLSNlbmRpZgotfQotCi1SZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0QmxvYkRhdGFGaWxlUmVmZXJlbmNlRm9y
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgQVNTRVJUKG1fYmxvYkRhdGFGaWxlUmVm
ZXJlbmNlcy5jb250YWlucyhwYXRoKSk7Ci0gICAgcmV0dXJuIG1fYmxvYkRhdGFGaWxlUmVmZXJl
bmNlcy5nZXQocGF0aCk7Ci19Ci0KIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkKIHsKICAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5y
ZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh0aGlzLCB1cmwsIHNyY1VSTCwgZmls
ZUJhY2tlZFBhdGgsIGNvbnRlbnRUeXBlKTsKQEAgLTU1OSwxMyArNTQwLDYgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29u
c3QgVmVjdG9yPFN0cmkKICAgICAgICAgZm9yIChhdXRvJiBmaWxlIDogZmlsZVJlZmVyZW5jZXMp
CiAgICAgICAgICAgICBmaWxlLT5yZXZva2VGaWxlQWNjZXNzKCk7CiAKLSNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQotICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZ2V0
U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoZmlsZU5hbWVzLCBbcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZpbGVOYW1lc10oU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkmJiBoYW5kbGVzKSB7Ci0gICAgICAgICAgICBBU1NFUlQoZmlsZU5hbWVzLnNpemUo
KSA9PSBoYW5kbGVzLnNpemUoKSk7Ci0gICAgICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xl
dG9uKCkudXBkYXRlVGVtcG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25zKGZpbGVOYW1lcywgaGFu
ZGxlcyk7Ci0gICAgICAgIH0pOwotI2VuZGlmCi0KICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZFdyaXRlQmxvYnNUb1RlbXBv
cmFyeUZpbGVzKHJlcXVlc3RJZGVudGlmaWVyLCBmaWxlTmFtZXMpLCAwKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiMjViMzY2MTBlZTA4YWFmMTI4YTBjN2NhMGVj
MTc0YTI2MjczYmJmLi5kZTRkYWMwNWUzYmVkYTQ4NGI1NDhlN2Y2NzBkNzFlZTYzNTk3ZjAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xNjQsNyArMTY0LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwg
VmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsK
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29u
c3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwsIGJvb2wgc2hvdWxkQnlwYXNzQ29ubmVjdGlvbkNoZWNr
KTsKLSAgICB2b2lkIHByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNGb3JPcHRpb25hbGx5Rmls
ZUJhY2tlZEJsb2IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVCYWNrZWRQYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlv
bmFsbHlGaWxlQmFja2VkKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
c3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90
IGVuZCk7CiAgICAgdm9pZCBibG9iU2l6ZShjb25zdCBXZWJDb3JlOjpVUkwmLCB1aW50NjRfdCYg
cmVzdWx0U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCBlM2ZiYmNiMWMxMzM0ZjZkNzNjMmM3NjQ3NDA5YzI4NGRlNzRkZGNkLi4yYTUxYTU3OTUw
ZTIyN2RhYmEyYWY3YTdkMmUxOGQ0ZTNmM2QxYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQ0LDcgKzQ0LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlZ2lzdGVyRmls
ZUJsb2JVUkwoV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAg
IFJlZ2lzdGVyQmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBh
cnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6VVJMIHNyY1VSTCwgYm9vbCBzaG91bGRC
eXBhc3NDb25uZWN0aW9uQ2hlY2spCi0gICAgUHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zv
ck9wdGlvbmFsbHlGaWxlQmFja2VkQmxvYihWZWN0b3I8U3RyaW5nPiBmaWxlUGF0aHMsIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5zaW9uSGFuZGxlcykKICAgICBS
ZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChXZWJDb3JlOjpVUkwgdXJsLCBXZWJD
b3JlOjpVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlw
ZSkKICAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShXZWJDb3JlOjpVUkwgdXJsLCBXZWJDb3Jl
OjpVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKICAgICBVbnJlZ2lzdGVy
QmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwNzNmMzRmM2FmMWNhYjFkODIxMWE0YTRjZDhj
NTg5MzJiNjUxYjJlLi43NDNhN2ZiODIzYTQzYzk1ODNkZDQxYTExODc0Yzg2ZjBmODIzYjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtMTE0NywyMSArMTE0NywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwZXJmb3JtTmV4dFN0
b3JhZ2VUYXNrKCkKICAgICB0YXNrLnBlcmZvcm1UYXNrKCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OnByZXBhcmVGb3JBY2Nlc3NUb1RlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KQotewotICAgIGlmIChhdXRvIGV4dGVuc2lvbiA9IG1fYmxvYlRlbXBvcmFyeUZpbGVTYW5kYm94
RXh0ZW5zaW9ucy5nZXQocGF0aCkpCi0gICAgICAgIGV4dGVuc2lvbi0+Y29uc3VtZSgpOwotfQot
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShjb25z
dCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgLy8gV2UndmUgZWl0aGVyIGhhcmQgbGlua2VkIHRoZSB0
ZW1wb3JhcnkgYmxvYiBmaWxlIHRvIHRoZSBkYXRhYmFzZSBkaXJlY3RvcnksIGNvcGllZCBpdCB0
aGVyZSwKICAgICAvLyBvciB0aGUgdHJhbnNhY3Rpb24gaXMgYmVpbmcgYWJvcnRlZC4KICAgICAv
LyBJbiBhbnkgb2YgdGhvc2UgY2FzZXMsIHdlIGNhbiBkZWxldGUgdGhlIHRlbXBvcmFyeSBibG9i
IGZpbGUgbm93LgogICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUocGF0aCk7Ci0gICAgCi0gICAg
aWYgKGF1dG8gZXh0ZW5zaW9uID0gbV9ibG9iVGVtcG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25z
LnRha2UocGF0aCkpCi0gICAgICAgIGV4dGVuc2lvbi0+cmV2b2tlKCk7CiB9CiAKIEhhc2hTZXQ8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBOZXR3b3JrUHJvY2Vzczo6aW5kZXhlZERhdGFi
YXNlT3JpZ2lucyhjb25zdCBTdHJpbmcmIHBhdGgpCkBAIC0xMjEyLDE0ICsxMjAzLDYgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6Z2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGUKIHsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGZpbGVuYW1lcyksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6dXBkYXRlVGVtcG9yYXJ5RmlsZVNh
bmRib3hFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocywgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmIGhhbmRsZXMpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBoYW5kbGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV9ibG9iVGVt
cG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25zLmFkZChwYXRoc1tpXSwgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlKFdURk1vdmUoaGFuZGxlc1tpXSkpKTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChy
ZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKLSAgICB9Ci19CiAjZW5kaWYgLy8gRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBiYjBjZTgzNWZi
MmI0OWI5N2Y5YmI0MWRjOWFmODQ2MzNjOTU2YjE2Li41MmY0MzJkNTYzYmIxODA0MjRkZjdlYjM5
OGFjZGFhYmRlMmM1NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC0xODksMTQgKzE4OSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNl
cnZlcihQQUw6OlNlc3Npb25JRCk7CiAgICAgLy8gV2ViQ29yZTo6SURCU2VydmVyOjpJREJCYWNr
aW5nU3RvcmVGaWxlSGFuZGxlci4KLSAgICB2b2lkIHByZXBhcmVGb3JBY2Nlc3NUb1RlbXBvcmFy
eUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICB2b2lkIGFjY2Vzc1RvVGVtcG9y
YXJ5RmlsZUNvbXBsZXRlKGNvbnN0IFN0cmluZyYgcGF0aCkgZmluYWw7CiAgICAgdm9pZCBzZXRJ
REJQZXJPcmlnaW5RdW90YSh1aW50NjRfdCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTQU5EQk9Y
X0VYVEVOU0lPTlMpCiAgICAgdm9pZCBnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpPiYmKTsKLSAgICB2b2lkIHVwZGF0ZVRlbXBv
cmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMsIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVj
ZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKQEAgLTM5NSw4ICszOTMsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9u
SUQsIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4+IG1faWRiU2VydmVyczsK
ICAgICB1aW50NjRfdCBtX2lkYlBlck9yaWdpblF1b3RhOwogI2VuZGlmCi0KLSAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlGaWxlU2Fu
ZGJveEV4dGVuc2lvbnM7CiAgICAgCiAgICAgRGVxdWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX3N0b3Jh
Z2VUYXNrczsKICAgICBMb2NrIG1fc3RvcmFnZVRhc2tNdXRleDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggNTFkMmI4ZjgyZDFiOWQxNDIxNDQ1NzIxZGViMWYyNDQ0MTIx
OTc1Ny4uMmU4ZDE3OGRjMGJmNzQ1Yjk3MTA1ODhiNTJjNDI3Y2Q0ZjBmMWUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTU5LDYgKzU5LDkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CiAgICAgZW5jb2RlciA8PCBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CiAgICAgZW5jb2RlciA8PCBwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgZW5jb2RlciA8PCBpbmRleGVkRGF0
YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgogI2VuZGlmCiAg
ICAgZW5jb2RlciA8PCBzaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlcjsKICAgICBl
bmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKQEAgLTE2OCw2ICsxNzEs
MTQgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBpZiAoIXBhcmVudEJ1bmRsZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdC5w
YXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpwYXJlbnRCdW5k
bGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGluZGV4ZWRE
YXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4g
aW5kZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYg
KCFpbmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5pbmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmluZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogI2VuZGlmCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYzQw
ZTIxYWMwZjdjYTNmOGYwZjBhMTU2ZTIzOTIxZTcyMmRhNmM5My4uMTAxYWMxMjBhNzIyMTcwMGY0
NGY3Yzc4ODkwYWExY2MyOGFiNmY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtNzAsNiArNzAsOSBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb250YWluZXJDYWNo
ZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IHBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaW5kZXhlZERhdGFiYXNl
VGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisjZW5kaWYKICNlbmRpZgogICAgIGJv
b2wgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogICAgIGJv
b2wgc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQppbmRleCAxYzU3NWIxYmI0ZDExOGE0YjY2ZGQwYzdlNDBkN2E2YjFkZjZlZjA2Li45NTk3
YmFjNDM4MjBmMjVlN2YyMmQ4ZjFkNDgxNWQ5NTg5ZjNlNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1t
CkBAIC03OCw2ICs3OCw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzQ29jb2EoY29uc3QgTmV0d29ya1Byb2Nlc3NDCiAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5w
YXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLmluZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
KyNlbmRpZgogI2VuZGlmCiAgICAgbV9kaXNrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLmRp
c2tDYWNoZURpcmVjdG9yeTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IGU0YTg3NzA0NzU3OGM0OGY0MGQ3MWM2OTI3Yzk2NWRiOTYyYjc5NDAuLjFm
ODBhN2M5Mzg0ZWEzYTQ2MmUzNWEwYjhlMWI5NmI4YjY0ODYwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTUxMSw2ICs1MTEsMTAgQEAgTmV0d29y
a1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNp
dGVEYXRhU3RvcmUqIHdpdGgKICAgICBTdHJpbmcgcGFyZW50QnVuZGxlRGlyZWN0b3J5ID0gdGhp
cy0+cGFyZW50QnVuZGxlRGlyZWN0b3J5KCk7CiAgICAgaWYgKCFwYXJlbnRCdW5kbGVEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocGFy
ZW50QnVuZGxlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcGFy
YW1ldGVycy5wYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yVGVtcG9yYXJ5RmlsZShlbXB0eVN0cmluZygpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkV3JpdGUsIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNl
VGVzdGluZ05ldHdvcmtTZXNzaW9uID0gbV9zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCAw
OWU3OWVhNmQwYTUxZTRjYjM3ZTkwNGI2NzhhNmE0NDkwZDc1NzExLi40MmU3M2M4MjI1ZGE5MWYw
MGI4ZjFmNGU2YmY5M2RlMDc0NjU4ZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTI3OSwzNCArMjc5LDEzIEBAIHZvaWQgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQp
CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZFB1dE9yQWRkKHJlc3VsdCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeShjb25zdCBX
ZWJJREJSZXN1bHQmIHJlc3VsdCkKLXsKLSAgICBhdXRvIHJlc3VsdFR5cGUgPSByZXN1bHQucmVz
dWx0RGF0YSgpLnR5cGUoKTsKLSAgICBpZiAocmVzdWx0VHlwZSAhPSBJREJSZXN1bHRUeXBlOjpH
ZXRSZWNvcmRTdWNjZXNzICYmIHJlc3VsdFR5cGUgIT0gSURCUmVzdWx0VHlwZTo6T3BlbkN1cnNv
clN1Y2Nlc3MgJiYgcmVzdWx0VHlwZSAhPSBJREJSZXN1bHRUeXBlOjpJdGVyYXRlQ3Vyc29yU3Vj
Y2VzcyAmJiByZXN1bHRUeXBlICE9IElEQlJlc3VsdFR5cGU6OkdldEFsbFJlY29yZHNTdWNjZXNz
KSB7Ci0gICAgICAgIEFTU0VSVChyZXN1bHRUeXBlID09IElEQlJlc3VsdFR5cGU6OkVycm9yKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvbnN0IGF1dG8gZmlsZVBhdGhzID0gcmVz
dWx0VHlwZSA9PSBJREJSZXN1bHRUeXBlOjpHZXRBbGxSZWNvcmRzU3VjY2VzcyA/IHJlc3VsdC5y
ZXN1bHREYXRhKCkuZ2V0QWxsUmVzdWx0KCkuYWxsQmxvYkZpbGVQYXRocygpIDogcmVzdWx0LnJl
c3VsdERhdGEoKS5nZXRSZXN1bHQoKS52YWx1ZSgpLmJsb2JGaWxlUGF0aHMoKTsKLQotI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgQVNTRVJUKGZpbGVQYXRocy5zaXplKCkgPT0g
cmVzdWx0LmhhbmRsZXMoKS5zaXplKCkpOwotI2VuZGlmCi0KLSAgICBpZiAoIWZpbGVQYXRocy5p
c0VtcHR5KCkpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zvck9wdGlv
bmFsbHlGaWxlQmFja2VkQmxvYihmaWxlUGF0aHMsIHJlc3VsdC5oYW5kbGVzKCkpLCAwKTsKLX0K
LQogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZChjb25zdCBXZWJJ
REJSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBwcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25zSWZO
ZWNlc3NhcnkocmVzdWx0KTsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0UmVjb3Jk
KHJlc3VsdC5yZXN1bHREYXRhKCkpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkR2V0QWxsUmVjb3Jkcyhjb25zdCBXZWJJREJSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBp
ZiAocmVzdWx0LnJlc3VsdERhdGEoKS5nZXRBbGxSZXN1bHQoKS50eXBlKCkgPT0gSW5kZXhlZERC
OjpHZXRBbGxUeXBlOjpWYWx1ZXMpCi0gICAgICAgIHByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lv
bnNJZk5lY2Vzc2FyeShyZXN1bHQpOwogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRB
bGxSZWNvcmRzKHJlc3VsdC5yZXN1bHREYXRhKCkpOwogfQogCkBAIC0zMjIsMTMgKzMwMSwxMSBA
QCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlUmVjb3JkKGNvbnN0IElE
QlJlc3VsdERhdGEmIHJlc3VsdCkKIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRp
ZE9wZW5DdXJzb3IoY29uc3QgV2ViSURCUmVzdWx0JiByZXN1bHQpCiB7Ci0gICAgcHJlcmVnaXN0
ZXJTYW5kYm94RXh0ZW5zaW9uc0lmTmVjZXNzYXJ5KHJlc3VsdCk7CiAgICAgbV9jb25uZWN0aW9u
VG9TZXJ2ZXItPmRpZE9wZW5DdXJzb3IocmVzdWx0LnJlc3VsdERhdGEoKSk7CiB9CiAKIHZvaWQg
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYklEQlJl
c3VsdCYgcmVzdWx0KQogewotICAgIHByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vz
c2FyeShyZXN1bHQpOwogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRJdGVyYXRlQ3Vyc29y
KHJlc3VsdC5yZXN1bHREYXRhKCkpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354939</attachid>
            <date>2018-11-15 08:54:36 -0800</date>
            <delta_ts>2018-11-15 11:33:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188438-20181115085435.patch</filename>
            <type>text/plain</type>
            <size>26293</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI5ODhiMjRkMWM5NzM4
OGE0N2YyNzdkYjkzMjgwNmQ0MGJiNWY5MC4uZDAyOWFmY2JjOGZkZGZjZjkxZDhkMzc3MDQyYzMz
MzJkYmI4N2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTExLTE1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JpbmcgYmxvYnMgaW4g
SURCIG9uIGlPUzogIkVycm9yIHByZXBhcmluZyBibG9iL2ZpbGUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzMDk3Mjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNpbmNlIG5ldHdvcmsgcHJvY2VzcyBhbHdheXMgaGFzIGFjY2VzcyB0byB0ZW1w
IGZvbGRlciBub3csIHdlIGRvbid0IG5lZWQgdG8gZ3JhbnQgYWNjZXNzIHRvIGVhY2ggdGVtcCBm
aWxlLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gTWFrZSB0aHJlZSBleGlzdGluZyB0
ZXN0cyBwYXNzIG9uIGlPUyBkZXZpY2UuIAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjptb3ZlQmxvYkZpbGVzSWZOZWNlc3NhcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6ZGVsZXRlQmxv
YkZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxOC0xMS0xNCAgS2VpdGggUm9sbGluICA8a3Jv
bGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzY3JpcHRzIGZvciBEZXJpdmVkIGFuZCBV
bmlmaWVkIFNvdXJjZXMgdG8gZXh0ZXJuYWwgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDYwMmI5MGJjYzlm
YmRlMjlkMTk2ZDlkOGI1NjVjNWVlZTZmMmM0NS4uYzk2NTBjMGJmNjVlNmVlYTUxOWFjOTYyNzAy
ZDhhZmYwZDUyY2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxOC0xMS0xNSAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yaW5nIGJsb2JzIGlu
IElEQiBvbiBpT1M6ICJFcnJvciBwcmVwYXJpbmcgYmxvYi9maWxlIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDM4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80MzA5NzI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBHcmFudCBzYW5kYm94IGV4dGVuc2lvbiBvZiB0ZW1wIGZvbGRlciB0byBuZXR3
b3JrIHByb2Nlc3MsIGFuZCBjbGVhbiB1cCBzb21lIGNvZGUgdGhhdCBtYW5hZ2VkIHNhbmRib3gg
ZXh0ZW5zaW9uCisgICAgICAgIG9mIElEQiBibG9iIGZpbGVzIGluIG5ldHdvcmsgcHJvY2Vzcy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpoYW5kbGVHZXRSZXN1bHQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBy
ZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNGb3JPcHRpb25hbGx5RmlsZUJhY2tlZEJsb2IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Z2V0QmxvYkRhdGFGaWxlUmVmZXJlbmNlRm9yUGF0aCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJs
b2JGaWxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlRm9yQWNj
ZXNzVG9UZW1wb3JhcnlGaWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnVwZGF0ZVRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRpZEdldFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkT3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJL
aXQ6OnByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeSk6IERlbGV0ZWQuCisK
IDIwMTgtMTEtMTQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgc2NyaXB0cyBmb3IgRGVyaXZlZCBhbmQgVW5pZmllZCBTb3VyY2VzIHRvIGV4dGVybmFs
IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKaW5kZXggYmJmMzU2Yjg1Y2NlZGNkZThjNGEzMzdiM2E0
NDIzZTBjMDc0YWE1Yy4uZjAxN2Q4NzgxYTlhZGExYTIwZDM4Y2MzYjE0YzhmNWVkYTFmNDFlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJCYWNraW5nU3RvcmUuaApAQCAtNTgsOCArNTgsNiBAQCBuYW1lc3BhY2UgSURCU2VydmVy
IHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIgewogcHVibGlj
OgotICAgIHZpcnR1YWwgfklEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyKCkgPSBk
ZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxl
KGNvbnN0IFN0cmluZyYgcGF0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NUb1RlbXBv
cmFyeUZpbGVDb21wbGV0ZShjb25zdCBTdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGEwMmY2NDFiZGE4YzI1MDIxMzllNmE3NGQ4YjE5
NGNjYTcyZjZkNjguLjc4MWI3OWY2M2EwNjFkNThkMWM5MmE0MTNjMjFhZmRlNjU2NDkzNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcApAQCAtODksOCArODksNiBAQCB2b2lkIFNR
TGl0ZUlEQlRyYW5zYWN0aW9uOjptb3ZlQmxvYkZpbGVzSWZOZWNlc3NhcnkoKQogewogICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeSA9IG1fYmFja2luZ1N0b3JlLmZ1bGxEYXRhYmFzZURpcmVj
dG9yeSgpOwogICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2Jsb2JUZW1wb3JhcnlBbmRTdG9yZWRG
aWxlbmFtZXMpIHsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRsZXIo
KS5wcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKGVudHJ5LmZpcnN0KTsKLQogICAgICAg
ICBpZiAoIUZpbGVTeXN0ZW06OmhhcmRMaW5rT3JDb3B5RmlsZShlbnRyeS5maXJzdCwgRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlRGlyZWN0b3J5LCBlbnRyeS5z
ZWNvbmQpKSkKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGxpbmsvY29weSB0ZW1w
b3JhcnkgYmxvYiBmaWxlICclcycgdG8gbG9jYXRpb24gJyVzJyIsIGVudHJ5LmZpcnN0LnV0Zjgo
KS5kYXRhKCksIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZURp
cmVjdG9yeSwgZW50cnkuc2Vjb25kKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTA4LDcgKzEwNiw2
IEBAIHZvaWQgU1FMaXRlSURCVHJhbnNhY3Rpb246OmRlbGV0ZUJsb2JGaWxlc0lmTmVjZXNzYXJ5
KCkKICAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnkgPSBtX2JhY2tpbmdTdG9yZS5mdWxsRGF0
YWJhc2VEaXJlY3RvcnkoKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9ibG9iUmVtb3ZlZEZp
bGVuYW1lcykgewogICAgICAgICBTdHJpbmcgZnVsbFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VEaXJlY3RvcnksIGVudHJ5KTsKLSAgICAgICAgbV9i
YWNraW5nU3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRsZXIoKS5wcmVwYXJlRm9yQWNjZXNzVG9UZW1w
b3JhcnlGaWxlKGZ1bGxQYXRoKTsKICAgICAgICAgbV9iYWNraW5nU3RvcmUudGVtcG9yYXJ5Rmls
ZUhhbmRsZXIoKS5hY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShmdWxsUGF0aCk7CiAgICAg
fQogCkBAIC0xMTcsMTAgKzExNCw4IEBAIHZvaWQgU1FMaXRlSURCVHJhbnNhY3Rpb246OmRlbGV0
ZUJsb2JGaWxlc0lmTmVjZXNzYXJ5KCkKIAogSURCRXJyb3IgU1FMaXRlSURCVHJhbnNhY3Rpb246
OmFib3J0KCkKIHsKLSAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9ibG9iVGVtcG9yYXJ5QW5kU3Rv
cmVkRmlsZW5hbWVzKSB7Ci0gICAgICAgIG1fYmFja2luZ1N0b3JlLnRlbXBvcmFyeUZpbGVIYW5k
bGVyKCkucHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShlbnRyeS5maXJzdCk7CisgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IG1fYmxvYlRlbXBvcmFyeUFuZFN0b3JlZEZpbGVuYW1lcykKICAg
ICAgICAgbV9iYWNraW5nU3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRsZXIoKS5hY2Nlc3NUb1RlbXBv
cmFyeUZpbGVDb21wbGV0ZShlbnRyeS5maXJzdCk7Ci0gICAgfQogCiAgICAgbV9ibG9iVGVtcG9y
YXJ5QW5kU3RvcmVkRmlsZW5hbWVzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaApp
bmRleCA0NzNlYTViMTcyYWZlN2VhNDc4MWFiYWMwYjQxZDBmNzA4OGYzZTVhLi5jNzk0NGQxYjM2
ZjczNTlkM2NiNjE3MDY5YzMwMTIxODg1NTM0OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5o
CkBAIC0xMTIsNyArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBS
ZWZDb3VudGVkPEluUHJvY2Vzc0lEQlNlcnZlcj46OnJlZigpOyB9CiAgICAgdm9pZCBkZXJlZigp
IG92ZXJyaWRlIHsgUmVmQ291bnRlZDxJblByb2Nlc3NJREJTZXJ2ZXI+OjpkZXJlZigpOyB9CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JBY2Nlc3NUb1RlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBhY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShjb25z
dCBTdHJpbmcmIHBhdGgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnku
Y3BwCmluZGV4IGI2NzY2MTQ5ZWVkMTFlOWMyOGIwZTE0MzNhZTZkZWMwYWQ1ZDY5OTcuLjYzZDIz
N2Q5OTc1NTUzYzU0Y2M4ZGI2MGIzMGNiMjJhMDY2NjJlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3Ry
eS5jcHAKQEAgLTg4LDEwICs4OCw3IEBAIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0
ZXJCbG9iVVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0CiAKIHZvaWQg
TmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKLSAgICBhdXRvIGZpbGVSZWZlcmVuY2UgPSBjb25uZWN0
aW9uLT5nZXRCbG9iRGF0YUZpbGVSZWZlcmVuY2VGb3JQYXRoKGZpbGVCYWNrZWRQYXRoKTsKLSAg
ICBBU1NFUlQoZmlsZVJlZmVyZW5jZSk7Ci0KLSAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJs
b2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShmaWxlUmVmZXJl
bmNlKSwgY29udGVudFR5cGUpOworICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRo
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNrZWRQYXRoLCBudWxscHRyKSwgY29udGVu
dFR5cGUpOwogCiAgICAgQVNTRVJUKCFtX2Jsb2JzRm9yQ29ubmVjdGlvbi5nZXQoY29ubmVjdGlv
bikuY29udGFpbnModXJsKSk7CiAgICAgQmxvYkZvckNvbm5lY3Rpb25NYXA6Oml0ZXJhdG9yIG1h
cEl0ZXJhdG9yID0gbV9ibG9ic0ZvckNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDRkZDk1NGVlNDdlZWZkYzUyMTA0
OGQ4YmNjNzBhMzZlZDAzYzdkOTcuLjFhZjI1OWU5ZTYwMWZiODk1Yjc3ZjRlZGMzZDU5YWUwODZh
MzhmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMTU3LDEz
ICsxNTcsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmhhbmRsZUdldFJlc3VsdChjb25zdAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICBOZXR3b3JrUHJvY2Vzczo6
c2luZ2xldG9uKCkuZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoYmxvYkZpbGVQYXRo
cywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgcmVzdWx0RGF0YV0oU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJiBoYW5kbGVzKSB7Ci0gICAgICAgIHNlbmQoTWVz
c2FnZVR5cGUoeyByZXN1bHREYXRhLCBXVEZNb3ZlKGhhbmRsZXMpIH0pKTsKLSAgICB9KTsKLSNl
bHNlCiAgICAgc2VuZChNZXNzYWdlVHlwZShyZXN1bHREYXRhKSk7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJ
REJSZXN1bHREYXRhJiByZXN1bHREYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRl
eCAxYzk0MjI0MDQxOGZhMjJiMzNjNGY3YjMwNjEwMGUyMjBlNjVkMjg4Li40ZGQzZjcyMDZhZDE1
MDM0ODRjYzg2ZGYxZjQxYTFhMzU4YzZjODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNTA3LDI1ICs1MDcsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIE5ldHdv
cmtCbG9iUmVnaXN0cnk6OnNpbmdsZXRvbigpLnJlZ2lzdGVyQmxvYlVSTCh0aGlzLCB1cmwsIHNy
Y1VSTCwgc2hvdWxkQnlwYXNzQ29ubmVjdGlvbkNoZWNrKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zvck9wdGlv
bmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBhdGhzLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZXMpCi17Ci0jaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKLSAgICBBU1NFUlQoZmlsZVBhdGhzLnNpemUoKSA9PSBoYW5kbGVzLnNp
emUoKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVQYXRocy5zaXplKCk7ICsr
aSkKLSAgICAgICAgbV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzLmFkZChmaWxlUGF0aHNbaV0sIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoZmlsZVBhdGhz
W2ldLCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShoYW5kbGVzW2ldKSkpKTsKLSNl
bHNlCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWxlUGF0aHMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlcy5hZGQoZmlsZVBhdGhzW2ldLCBCbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVQYXRoc1tpXSwg
bnVsbHB0cikpOwotI2VuZGlmCi19Ci0KLVJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRCbG9iRGF0YUZpbGVSZWZl
cmVuY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBBU1NFUlQobV9ibG9iRGF0
YUZpbGVSZWZlcmVuY2VzLmNvbnRhaW5zKHBhdGgpKTsKLSAgICByZXR1cm4gbV9ibG9iRGF0YUZp
bGVSZWZlcmVuY2VzLmdldChwYXRoKTsKLX0KLQogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogewogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNpbmds
ZXRvbigpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHRoaXMsIHVybCwgc3Jj
VVJMLCBmaWxlQmFja2VkUGF0aCwgY29udGVudFR5cGUpOwpAQCAtNTU5LDEzICs1NDAsNiBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaQogICAgICAgICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlUmVm
ZXJlbmNlcykKICAgICAgICAgICAgIGZpbGUtPnJldm9rZUZpbGVBY2Nlc3MoKTsKIAotI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0
b24oKS5nZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhmaWxlTmFtZXMsIFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZmlsZU5hbWVzXShTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZXMpIHsKLSAgICAgICAgICAgIEFTU0VSVChmaWxlTmFt
ZXMuc2l6ZSgpID09IGhhbmRsZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNz
OjpzaW5nbGV0b24oKS51cGRhdGVUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMoZmlsZU5h
bWVzLCBoYW5kbGVzKTsKLSAgICAgICAgfSk7Ci0jZW5kaWYKLQogICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkV3JpdGVCbG9i
c1RvVGVtcG9yYXJ5RmlsZXMocmVxdWVzdElkZW50aWZpZXIsIGZpbGVOYW1lcyksIDApOwogICAg
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGIyNWIzNjYxMGVlMDhhYWYxMjhh
MGM3Y2EwZWMxNzRhMjYyNzNiYmYuLmRlNGRhYzA1ZTNiZWRhNDg0YjU0OGU3ZjY3MGQ3MWVlNjM1
OTdmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE2NCw3ICsxNjQsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBj
b25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3Jl
OjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBXZWJDb3JlOjpV
UkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNyY1VSTCwgYm9vbCBzaG91bGRCeXBhc3NDb25uZWN0
aW9uQ2hlY2spOwotICAgIHZvaWQgcHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0Zvck9wdGlv
bmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZUJhY2tlZFBhdGgs
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3Qg
V2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQs
IGludDY0X3QgZW5kKTsKICAgICB2b2lkIGJsb2JTaXplKGNvbnN0IFdlYkNvcmU6OlVSTCYsIHVp
bnQ2NF90JiByZXN1bHRTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IGUzZmJiY2IxYzEzMzRmNmQ3M2MyYzc2NDc0MDljMjg0ZGU3NGRkY2QuLjJh
NTFhNTc5NTBlMjI3ZGFiYTJhZjdhN2QyZTE4ZDRlM2YzZDFiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDQsNyArNDQsNiBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVn
aXN0ZXJGaWxlQmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJpbmcgY29udGVudFR5
cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFZlY3RvcjxXZWJDb3Jl
OjpCbG9iUGFydD4gYmxvYlBhcnRzLCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJC
bG9iVVJMRnJvbVVSTChXZWJDb3JlOjpVUkwgdXJsLCBXZWJDb3JlOjpVUkwgc3JjVVJMLCBib29s
IHNob3VsZEJ5cGFzc0Nvbm5lY3Rpb25DaGVjaykKLSAgICBQcmVyZWdpc3RlclNhbmRib3hFeHRl
bnNpb25zRm9yT3B0aW9uYWxseUZpbGVCYWNrZWRCbG9iKFZlY3RvcjxTdHJpbmc+IGZpbGVQYXRo
cywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBleHRlbnNpb25IYW5kbGVz
KQogICAgIFJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFdlYkNvcmU6OlVSTCB1
cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwsIFN0cmluZyBmaWxlQmFja2VkUGF0aCwgU3RyaW5nIGNv
bnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFdlYkNvcmU6OlVSTCB1cmws
IFdlYkNvcmU6OlVSTCBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQogICAgIFVu
cmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE3YjAxNjc3MjQ2NTBjMmVkM2Ji
NmZhM2Q5ZGM4NWZiNzAxOWQwN2QuLjM5ZGNmNzVmNzllNjQwMzhiNjU5MWMyYzgyNjRkZTYyMDdm
YjU1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0xMTQ3LDIxICsxMTQ3LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBlcmZv
cm1OZXh0U3RvcmFnZVRhc2soKQogICAgIHRhc2sucGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJp
bmcmIHBhdGgpCi17Ci0gICAgaWYgKGF1dG8gZXh0ZW5zaW9uID0gbV9ibG9iVGVtcG9yYXJ5Rmls
ZVNhbmRib3hFeHRlbnNpb25zLmdldChwYXRoKSkKLSAgICAgICAgZXh0ZW5zaW9uLT5jb25zdW1l
KCk7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFjY2Vzc1RvVGVtcG9yYXJ5RmlsZUNvbXBs
ZXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBXZSd2ZSBlaXRoZXIgaGFyZCBsaW5r
ZWQgdGhlIHRlbXBvcmFyeSBibG9iIGZpbGUgdG8gdGhlIGRhdGFiYXNlIGRpcmVjdG9yeSwgY29w
aWVkIGl0IHRoZXJlLAogICAgIC8vIG9yIHRoZSB0cmFuc2FjdGlvbiBpcyBiZWluZyBhYm9ydGVk
LgogICAgIC8vIEluIGFueSBvZiB0aG9zZSBjYXNlcywgd2UgY2FuIGRlbGV0ZSB0aGUgdGVtcG9y
YXJ5IGJsb2IgZmlsZSBub3cuCiAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShwYXRoKTsKLSAg
ICAKLSAgICBpZiAoYXV0byBleHRlbnNpb24gPSBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4
dGVuc2lvbnMudGFrZShwYXRoKSkKLSAgICAgICAgZXh0ZW5zaW9uLT5yZXZva2UoKTsKIH0KIAog
SGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IE5ldHdvcmtQcm9jZXNzOjppbmRl
eGVkRGF0YWJhc2VPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTEyMTIsMTQgKzEyMDMs
NiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZQogewogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoZmlsZW5hbWVzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVUZW1wb3Jh
cnlGaWxlU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKLXsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGhhbmRsZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXV0byByZXN1bHQgPSBt
X2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMuYWRkKHBhdGhzW2ldLCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShoYW5kbGVzW2ldKSkpOwotICAgICAgICBBU1NFUlRf
VU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotICAgIH0KLX0KICNlbmRpZiAvLyBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDQy
OTFiMDc5ZWI0ZmYxMjFlM2NkYWQzZDYyZWZmOTM3ZjM2MWMwZDcuLmM3YzBlODgxN2ZiYzAzNjFh
NTU5MmIwMzRmNjYzYTZhODg1ZWYxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE5MCwxNCArMTkwLDEyIEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
ciYgaWRiU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKICAgICAvLyBXZWJDb3JlOjpJREJTZXJ2ZXI6
OklEQkJhY2tpbmdTdG9yZUZpbGVIYW5kbGVyLgotICAgIHZvaWQgcHJlcGFyZUZvckFjY2Vzc1Rv
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogICAgIHZvaWQgYWNjZXNz
VG9UZW1wb3JhcnlGaWxlQ29tcGxldGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICB2
b2lkIHNldElEQlBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFNBTkRCT1hfRVhURU5TSU9OUykKICAgICB2b2lkIGdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxv
YkZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik+JiYpOwotICAgIHZvaWQgdXBk
YXRlVGVtcG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXRocywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmKTsKICNlbmRpZgogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOwpAQCAtNDAwLDggKzM5OCw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9pZGJT
ZXJ2ZXJzOwogICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVvdGE7CiAjZW5kaWYKLQotICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4+IG1fYmxvYlRlbXBvcmFy
eUZpbGVTYW5kYm94RXh0ZW5zaW9uczsKICAgICAKICAgICBEZXF1ZTxDcm9zc1RocmVhZFRhc2s+
IG1fc3RvcmFnZVRhc2tzOwogICAgIExvY2sgbV9zdG9yYWdlVGFza011dGV4OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA1MWQyYjhmODJkMWI5ZDE0MjE0NDU3MjFkZWIx
ZjI0NDQxMjE5NzU3Li4yZThkMTc4ZGMwYmY3NDViOTcxMDU4OGI1MmM0MjdjZDRmMGYxZTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTksNiArNTksOSBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBlbmNvZGVyIDw8IGlu
ZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCiAj
ZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3VsZFN1cHByZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVy
OwogICAgIGVuY29kZXIgPDwgc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwpAQCAtMTY4
LDYgKzE3MSwxNCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgIGlmICghcGFyZW50QnVu
ZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
cmVzdWx0LnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnBh
cmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
aW5kZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVj
b2RlciA+PiBpbmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
KyAgICBpZiAoIWluZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LmluZGV4ZWREYXRhYmFzZVRlbXBC
bG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaW5kZXhlZERhdGFiYXNlVGVt
cEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAjZW5kaWYKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxl
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCBjNDBlMjFhYzBmN2NhM2Y4ZjBmMGExNTZlMjM5MjFlNzIyZGE2YzkzLi4xMDFhYzEyMGE3
MjIxNzAwZjQ0ZjdjNzg4OTBhYTFjYzI4YWI2ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC03MCw2ICs3MCw5IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvbnRh
aW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBpbmRleGVk
RGF0YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgogI2VuZGlm
CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlciB7IGZhbHNlIH07
CiAgICAgYm9vbCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24geyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vz
c0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tCmluZGV4IDFjNTc1YjFiYjRkMTE4YTRiNjZkZDBjN2U0MGQ3YTZiMWRmNmVm
MDYuLjk1OTdiYWM0MzgyMGYyNWU3ZjIyZDhmMWQ0ODE1ZDk1ODlmM2U1MmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KQEAgLTc4LDYgKzc4LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYShjb25zdCBOZXR3b3JrUHJvY2Vzc0MKICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOworI2VuZGlmCiAjZW5kaWYKICAgICBtX2Rpc2tDYWNoZURpcmVjdG9yeSA9IHBhcmFt
ZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggZDkyZjQyZTRjOTUzM2I2YzQ0ZWRmOTEzYWRmZjljNjEzMTEz
YjZhNC4uN2QxNzBiMmRiZGM1YzJiNDM3MjUxMDc5NDhhNzE3OGU4NTQzYjNiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTExLDYgKzUxMSwxMCBA
QCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nl
c3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0aAogICAgIFN0cmluZyBwYXJlbnRCdW5kbGVEaXJlY3Rv
cnkgPSB0aGlzLT5wYXJlbnRCdW5kbGVEaXJlY3RvcnkoKTsKICAgICBpZiAoIXBhcmVudEJ1bmRs
ZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZShwYXJlbnRCdW5kbGVEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRP
bmx5LCBwYXJhbWV0ZXJzLnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGVtcHR5U3RyaW5nKCksIFNhbmRib3hFeHRlbnNpb246
OlR5cGU6OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKICNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5z
aG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3Jr
U2Vzc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CmluZGV4IDA5ZTc5ZWE2ZDBhNTFlNGNiMzdlOTA0YjY3OGE2YTQ0OTBkNzU3MTEuLjQyZTczYzgy
MjVkYTkxZjAwYjhmMWY0ZTZiZjkzZGUwNzQ2NThkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjc5LDM0ICsyNzksMTMgQEAgdm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdCkKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkUHV0T3JBZGQocmVzdWx0KTsK
IH0KIAotc3RhdGljIHZvaWQgcHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9uc0lmTmVjZXNzYXJ5
KGNvbnN0IFdlYklEQlJlc3VsdCYgcmVzdWx0KQotewotICAgIGF1dG8gcmVzdWx0VHlwZSA9IHJl
c3VsdC5yZXN1bHREYXRhKCkudHlwZSgpOwotICAgIGlmIChyZXN1bHRUeXBlICE9IElEQlJlc3Vs
dFR5cGU6OkdldFJlY29yZFN1Y2Nlc3MgJiYgcmVzdWx0VHlwZSAhPSBJREJSZXN1bHRUeXBlOjpP
cGVuQ3Vyc29yU3VjY2VzcyAmJiByZXN1bHRUeXBlICE9IElEQlJlc3VsdFR5cGU6Okl0ZXJhdGVD
dXJzb3JTdWNjZXNzICYmIHJlc3VsdFR5cGUgIT0gSURCUmVzdWx0VHlwZTo6R2V0QWxsUmVjb3Jk
c1N1Y2Nlc3MpIHsKLSAgICAgICAgQVNTRVJUKHJlc3VsdFR5cGUgPT0gSURCUmVzdWx0VHlwZTo6
RXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29uc3QgYXV0byBmaWxlUGF0
aHMgPSByZXN1bHRUeXBlID09IElEQlJlc3VsdFR5cGU6OkdldEFsbFJlY29yZHNTdWNjZXNzID8g
cmVzdWx0LnJlc3VsdERhdGEoKS5nZXRBbGxSZXN1bHQoKS5hbGxCbG9iRmlsZVBhdGhzKCkgOiBy
ZXN1bHQucmVzdWx0RGF0YSgpLmdldFJlc3VsdCgpLnZhbHVlKCkuYmxvYkZpbGVQYXRocygpOwot
Ci0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICBBU1NFUlQoZmlsZVBhdGhzLnNp
emUoKSA9PSByZXN1bHQuaGFuZGxlcygpLnNpemUoKSk7Ci0jZW5kaWYKLQotICAgIGlmICghZmls
ZVBhdGhzLmlzRW1wdHkoKSkKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25z
Rm9yT3B0aW9uYWxseUZpbGVCYWNrZWRCbG9iKGZpbGVQYXRocywgcmVzdWx0LmhhbmRsZXMoKSks
IDApOwotfQotCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0UmVjb3JkKGNv
bnN0IFdlYklEQlJlc3VsdCYgcmVzdWx0KQogewotICAgIHByZXJlZ2lzdGVyU2FuZGJveEV4dGVu
c2lvbnNJZk5lY2Vzc2FyeShyZXN1bHQpOwogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRH
ZXRSZWNvcmQocmVzdWx0LnJlc3VsdERhdGEoKSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpkaWRHZXRBbGxSZWNvcmRzKGNvbnN0IFdlYklEQlJlc3VsdCYgcmVzdWx0KQog
ewotICAgIGlmIChyZXN1bHQucmVzdWx0RGF0YSgpLmdldEFsbFJlc3VsdCgpLnR5cGUoKSA9PSBJ
bmRleGVkREI6OkdldEFsbFR5cGU6OlZhbHVlcykKLSAgICAgICAgcHJlcmVnaXN0ZXJTYW5kYm94
RXh0ZW5zaW9uc0lmTmVjZXNzYXJ5KHJlc3VsdCk7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIt
PmRpZEdldEFsbFJlY29yZHMocmVzdWx0LnJlc3VsdERhdGEoKSk7CiB9CiAKQEAgLTMyMiwxMyAr
MzAxLDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVSZWNvcmQo
Y29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0KQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkT3BlbkN1cnNvcihjb25zdCBXZWJJREJSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBw
cmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25zSWZOZWNlc3NhcnkocmVzdWx0KTsKICAgICBtX2Nv
bm5lY3Rpb25Ub1NlcnZlci0+ZGlkT3BlbkN1cnNvcihyZXN1bHQucmVzdWx0RGF0YSgpKTsKIH0K
IAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEl0ZXJhdGVDdXJzb3IoY29uc3Qg
V2ViSURCUmVzdWx0JiByZXN1bHQpCiB7Ci0gICAgcHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5zaW9u
c0lmTmVjZXNzYXJ5KHJlc3VsdCk7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEl0ZXJh
dGVDdXJzb3IocmVzdWx0LnJlc3VsdERhdGEoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmODlkYWUzNmM4MTVh
MjY0MmUyYWM0NjMzODUxZWU2ODZiYThlZjYzLi42ZGZiODlmZDY3YzU3MGFhMDc5OGJhM2YyODEz
YTU0MzA3MGM4Y2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMTUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmluZyBibG9icyBpbiBJREIg
b24gaU9TOiAiRXJyb3IgcHJlcGFyaW5nIGJsb2IvZmlsZSIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODQzOAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDMwOTcyNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhyZWUgSURCIGJsb2IgdGVzdHMgYXJlIHBhc3Npbmcgb24gaU9TIGRldmljZSBub3cu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MtZGV2aWNlL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTgtMTEtMTQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAg
IERlZmF1bHQgdGhlIHZpZXcgYmFja2dyb3VuZCBjb2xvciBhbmQgdGV4dCBjb2xvciB0byBkaWZm
ZXJlbnQgdmFsdWVzIHdoZW4gaW4gZGFyayBtb2RlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLWRldmljZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLWRldmljZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNjZDc3ZWRhMjIxNTRjNTRmZDMy
Y2U1MDMxMTRhMDVkOTY1NTNkY2EuLjYzM2M0M2IxOTkyNzRiNzhlMWU5YWQ1NTA4ODI2NDk4NmRi
MDU5NTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1kZXZpY2UvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtZGV2aWNlL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTYwLDkgKzYwLDYgQEAgaHR0cC90ZXN0cy9wcmVsb2FkL29uZXJyb3JfZXZl
bnQuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9wcmVsb2FkL29ubG9hZF9ldmVudC5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL211bHRpcGxlLWNvbm5lY3Rp
b25zLmh0bWwgWyBTa2lwIF0KIAotaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIvYmxv
Yi1kZWxldGUtb2JqZWN0c3RvcmUtZGIuaHRtbCBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvYmxpbmsv
c3RvcmFnZS9pbmRleGVkZGIvYmxvYi12YWxpZC1hZnRlci1kZWxldGlvbi5odG1sIFsgRmFpbHVy
ZSBdCi1pbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWJlZm9yZS1j
b21taXQuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIva2V5cGF0aC1zcGVjaWFsLWlkZW50aWZpZXJzLmh0bSBbIEZhaWx1cmUgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3NvbS12aWV3L1NjcmVlbi1waXhlbERlcHRo
LVNjcmVlbi1jb2xvckRlcHRoMDAxLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3Nzb20tdmlldy9zY3JvbGxpbmctcXVpcmtzLXZzLW5vbnF1aXJrcy5o
dG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354959</attachid>
            <date>2018-11-15 11:33:16 -0800</date>
            <delta_ts>2018-11-16 08:58:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188438-20181115113315.patch</filename>
            <type>text/plain</type>
            <size>26205</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdjMmJhOTBkNTA3NTky
ZWEzMWFlODYyMjMxNmFkMjhlOTYzZWNmMy4uOTg1OTdhMmVkNzk0MDdlYjllOWU1NzZjNmQyM2Zj
MGZjNWE5OGE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTE1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JpbmcgYmxvYnMgaW4g
SURCIG9uIGlPUzogIkVycm9yIHByZXBhcmluZyBibG9iL2ZpbGUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzMDk3Mjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEdyYW50IHNhbmRib3ggZXh0ZW5zaW9uIG9mIHRlbXAgZm9sZGVyIHRvIG5ldHdv
cmsgcHJvY2VzcywgYmVjYXVzZSB3ZSBzdWdnZXN0ZWQgbmV0d29yayBwcm9jZXNzIGhhZCBhY2Nl
c3MgdG8gCisgICAgICAgIHRoZSBmb2xkZXIgb24gaU9TIGRldmljZSBidXQgaXQgZGlkbid0LiAK
KworICAgICAgICBUaGlzIG1ha2VzIHNvbWUgZXhpc3RpbmcgdGVzdHMgYWJvdXQgSURCIGJsb2Ig
cGFzcyBvbiBpT1MgZGV2aWNlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNR
TGl0ZUlEQlRyYW5zYWN0aW9uOjptb3ZlQmxvYkZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6ZGVsZXRlQmxvYkZpbGVz
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFu
c2FjdGlvbjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblBy
b2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxOC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIFJUQ1BlZXJDb25uZWN0aW9uIGhhbmRsaW5n
IG9mIHBlbmRpbmdBY3Rpdml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMTJhMTMyNDlhMDJlMGZhNWZiYmEyZDFl
M2M1ZTc1ODk1NjM5Zjc5Li5lZDlmN2Y1ZjZhMGJmNmIxYmI0MDE5NDk2N2UxZGYwMjE4ZjAxYjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTExLTE1ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JpbmcgYmxvYnMgaW4gSURCIG9uIGlPUzog
IkVycm9yIHByZXBhcmluZyBibG9iL2ZpbGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzMDk3
Mjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdy
YW50IHNhbmRib3ggZXh0ZW5zaW9uIG9mIHRlbXAgZm9sZGVyIHRvIG5ldHdvcmsgcHJvY2Vzcywg
YW5kIGNsZWFuIHVwIHNvbWUgY29kZSB0aGF0IG1hbmFnZWQgc2FuZGJveCBleHRlbnNpb24KKyAg
ICAgICAgb2YgSURCIHRlbXBvcmFyeSBibG9iIGZpbGVzIGluIG5ldHdvcmsgcHJvY2Vzcy4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpoYW5kbGVHZXRSZXN1bHQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZXJl
Z2lzdGVyU2FuZGJveEV4dGVuc2lvbnNGb3JPcHRpb25hbGx5RmlsZUJhY2tlZEJsb2IpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
QmxvYkRhdGFGaWxlUmVmZXJlbmNlRm9yUGF0aCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjphY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JG
aWxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlRm9yQWNjZXNz
VG9UZW1wb3JhcnlGaWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnVwZGF0ZVRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEdldFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6ZGlkR2V0QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGlkT3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6
OnByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeSk6IERlbGV0ZWQuCisKIDIw
MTgtMTEtMTUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERl
bGV0ZSBvbGQgLnhjZmlsZWxpc3QgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRleCBiYmYzNTZi
ODVjY2VkY2RlOGM0YTMzN2IzYTQ0MjNlMGMwNzRhYTVjLi40ZjYxYzcyNTE4ZGIxOWRjOGI0OGIz
NzZhNjAzNWVhNzFkNjBiZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCkBAIC01OSw3ICs1OSw2IEBA
IG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogY2xhc3MgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5Rmls
ZUhhbmRsZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgfklEQkJhY2tpbmdTdG9yZVRlbXBvcmFy
eUZpbGVIYW5kbGVyKCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yQWNj
ZXNzVG9UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBhY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShjb25zdCBTdHJpbmcmIHBhdGgpID0g
MDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGEwMmY2NDFiZGE4
YzI1MDIxMzllNmE3NGQ4YjE5NGNjYTcyZjZkNjguLjc4MWI3OWY2M2EwNjFkNThkMWM5MmE0MTNj
MjFhZmRlNjU2NDkzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcApAQCAtODks
OCArODksNiBAQCB2b2lkIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjptb3ZlQmxvYkZpbGVzSWZOZWNl
c3NhcnkoKQogewogICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSA9IG1fYmFja2luZ1N0b3Jl
LmZ1bGxEYXRhYmFzZURpcmVjdG9yeSgpOwogICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2Jsb2JU
ZW1wb3JhcnlBbmRTdG9yZWRGaWxlbmFtZXMpIHsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUudGVt
cG9yYXJ5RmlsZUhhbmRsZXIoKS5wcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKGVudHJ5
LmZpcnN0KTsKLQogICAgICAgICBpZiAoIUZpbGVTeXN0ZW06OmhhcmRMaW5rT3JDb3B5RmlsZShl
bnRyeS5maXJzdCwgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNl
RGlyZWN0b3J5LCBlbnRyeS5zZWNvbmQpKSkKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVk
IHRvIGxpbmsvY29weSB0ZW1wb3JhcnkgYmxvYiBmaWxlICclcycgdG8gbG9jYXRpb24gJyVzJyIs
IGVudHJ5LmZpcnN0LnV0ZjgoKS5kYXRhKCksIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChkYXRhYmFzZURpcmVjdG9yeSwgZW50cnkuc2Vjb25kKS51dGY4KCkuZGF0YSgpKTsK
IApAQCAtMTA4LDcgKzEwNiw2IEBAIHZvaWQgU1FMaXRlSURCVHJhbnNhY3Rpb246OmRlbGV0ZUJs
b2JGaWxlc0lmTmVjZXNzYXJ5KCkKICAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnkgPSBtX2Jh
Y2tpbmdTdG9yZS5mdWxsRGF0YWJhc2VEaXJlY3RvcnkoKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5
IDogbV9ibG9iUmVtb3ZlZEZpbGVuYW1lcykgewogICAgICAgICBTdHJpbmcgZnVsbFBhdGggPSBG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VEaXJlY3RvcnksIGVu
dHJ5KTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRsZXIoKS5wcmVw
YXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKGZ1bGxQYXRoKTsKICAgICAgICAgbV9iYWNraW5n
U3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRsZXIoKS5hY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0
ZShmdWxsUGF0aCk7CiAgICAgfQogCkBAIC0xMTcsMTAgKzExNCw4IEBAIHZvaWQgU1FMaXRlSURC
VHJhbnNhY3Rpb246OmRlbGV0ZUJsb2JGaWxlc0lmTmVjZXNzYXJ5KCkKIAogSURCRXJyb3IgU1FM
aXRlSURCVHJhbnNhY3Rpb246OmFib3J0KCkKIHsKLSAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9i
bG9iVGVtcG9yYXJ5QW5kU3RvcmVkRmlsZW5hbWVzKSB7Ci0gICAgICAgIG1fYmFja2luZ1N0b3Jl
LnRlbXBvcmFyeUZpbGVIYW5kbGVyKCkucHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShl
bnRyeS5maXJzdCk7CisgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYmxvYlRlbXBvcmFyeUFuZFN0
b3JlZEZpbGVuYW1lcykKICAgICAgICAgbV9iYWNraW5nU3RvcmUudGVtcG9yYXJ5RmlsZUhhbmRs
ZXIoKS5hY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShlbnRyeS5maXJzdCk7Ci0gICAgfQog
CiAgICAgbV9ibG9iVGVtcG9yYXJ5QW5kU3RvcmVkRmlsZW5hbWVzLmNsZWFyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJ
REJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblBy
b2Nlc3NJREJTZXJ2ZXIuaAppbmRleCA0NzNlYTViMTcyYWZlN2VhNDc4MWFiYWMwYjQxZDBmNzA4
OGYzZTVhLi5jNzk0NGQxYjM2ZjczNTlkM2NiNjE3MDY5YzMwMTIxODg1NTM0OTczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lu
UHJvY2Vzc0lEQlNlcnZlci5oCkBAIC0xMTIsNyArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQg
cmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPEluUHJvY2Vzc0lEQlNlcnZlcj46OnJlZigpOyB9
CiAgICAgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRlZDxJblByb2Nlc3NJREJTZXJ2
ZXI+OjpkZXJlZigpOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JBY2Nlc3NUb1RlbXBvcmFyeUZp
bGUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBhY2Nlc3NUb1RlbXBvcmFy
eUZpbGVDb21wbGV0ZShjb25zdCBTdHJpbmcmIHBhdGgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtC
bG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05l
dHdvcmtCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGI2NzY2MTQ5ZWVkMTFlOWMyOGIwZTE0MzNhZTZk
ZWMwYWQ1ZDY5OTcuLjYzZDIzN2Q5OTc1NTUzYzU0Y2M4ZGI2MGIzMGNiMjJhMDY2NjJlMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxv
YlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkv
TmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKQEAgLTg4LDEwICs4OCw3IEBAIHZvaWQgTmV0d29ya0Js
b2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiBjb25uZWN0CiAKIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rp
b24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxl
QmFja2VkUGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsKLSAgICBhdXRvIGZpbGVS
ZWZlcmVuY2UgPSBjb25uZWN0aW9uLT5nZXRCbG9iRGF0YUZpbGVSZWZlcmVuY2VGb3JQYXRoKGZp
bGVCYWNrZWRQYXRoKTsKLSAgICBBU1NFUlQoZmlsZVJlZmVyZW5jZSk7Ci0KLSAgICBibG9iUmVn
aXN0cnkoKS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwg
V1RGTW92ZShmaWxlUmVmZXJlbmNlKSwgY29udGVudFR5cGUpOworICAgIGJsb2JSZWdpc3RyeSgp
LnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBCbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNrZWRQYXRo
LCBudWxscHRyKSwgY29udGVudFR5cGUpOwogCiAgICAgQVNTRVJUKCFtX2Jsb2JzRm9yQ29ubmVj
dGlvbi5nZXQoY29ubmVjdGlvbikuY29udGFpbnModXJsKSk7CiAgICAgQmxvYkZvckNvbm5lY3Rp
b25NYXA6Oml0ZXJhdG9yIG1hcEl0ZXJhdG9yID0gbV9ibG9ic0ZvckNvbm5lY3Rpb24uZmluZChj
b25uZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDRk
ZDk1NGVlNDdlZWZkYzUyMTA0OGQ4YmNjNzBhMzZlZDAzYzdkOTcuLjFhZjI1OWU5ZTYwMWZiODk1
Yjc3ZjRlZGMzZDU5YWUwODZhMzhmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcApAQCAtMTU3LDEzICsxNTcsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBNZXNzYWdlVHlwZT4g
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmhhbmRsZUdldFJlc3VsdChjb25zdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAg
ICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9i
RmlsZXMoYmxvYkZpbGVQYXRocywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
cywgcmVzdWx0RGF0YV0oU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJiBoYW5kbGVzKSB7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZVR5cGUoeyByZXN1bHREYXRhLCBXVEZNb3ZlKGhhbmRsZXMp
IH0pKTsKLSAgICB9KTsKLSNlbHNlCiAgICAgc2VuZChNZXNzYWdlVHlwZShyZXN1bHREYXRhKSk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldFJlY29y
ZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCAxYzk0MjI0MDQxOGZhMjJiMzNjNGY3YjMwNjEwMGUyMjBlNjVk
Mjg4Li40ZGQzZjcyMDZhZDE1MDM0ODRjYzg2ZGYxZjQxYTFhMzU4YzZjODQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTA3LDI1ICs1MDcsNiBAQCB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYgdXJs
LCBjb25zdAogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNpbmdsZXRvbigpLnJlZ2lzdGVyQmxv
YlVSTCh0aGlzLCB1cmwsIHNyY1VSTCwgc2hvdWxkQnlwYXNzQ29ubmVjdGlvbkNoZWNrKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlcmVnaXN0ZXJTYW5kYm94
RXh0ZW5zaW9uc0Zvck9wdGlvbmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZVBhdGhzLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZXMpCi17
Ci0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICBBU1NFUlQoZmlsZVBhdGhzLnNp
emUoKSA9PSBoYW5kbGVzLnNpemUoKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZp
bGVQYXRocy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzLmFk
ZChmaWxlUGF0aHNbaV0sIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGUoZmlsZVBhdGhzW2ldLCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZSho
YW5kbGVzW2ldKSkpKTsKLSNlbHNlCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWxlUGF0
aHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlcy5hZGQoZmls
ZVBhdGhzW2ldLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlKGZpbGVQYXRoc1tpXSwgbnVsbHB0cikpOwotI2VuZGlmCi19Ci0KLVJlZlB0cjxXZWJDb3Jl
OjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpn
ZXRCbG9iRGF0YUZpbGVSZWZlcmVuY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAg
ICBBU1NFUlQobV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzLmNvbnRhaW5zKHBhdGgpKTsKLSAgICBy
ZXR1cm4gbV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzLmdldChwYXRoKTsKLX0KLQogdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZp
bGVCYWNrZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogewogICAgIE5ldHdvcmtC
bG9iUmVnaXN0cnk6OnNpbmdsZXRvbigpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKHRoaXMsIHVybCwgc3JjVVJMLCBmaWxlQmFja2VkUGF0aCwgY29udGVudFR5cGUpOwpAQCAt
NTU5LDEzICs1NDAsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3cml0
ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaQogICAgICAgICBmb3IgKGF1
dG8mIGZpbGUgOiBmaWxlUmVmZXJlbmNlcykKICAgICAgICAgICAgIGZpbGUtPnJldm9rZUZpbGVB
Y2Nlc3MoKTsKIAotI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgICAgIE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5nZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhm
aWxlTmFtZXMsIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZmlsZU5h
bWVzXShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZXMpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChmaWxlTmFtZXMuc2l6ZSgpID09IGhhbmRsZXMuc2l6ZSgpKTsKLSAgICAgICAg
ICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS51cGRhdGVUZW1wb3JhcnlGaWxlU2FuZGJv
eEV4dGVuc2lvbnMoZmlsZU5hbWVzLCBoYW5kbGVzKTsKLSAgICAgICAgfSk7Ci0jZW5kaWYKLQog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6RGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMocmVxdWVzdElkZW50aWZpZXIsIGZp
bGVOYW1lcyksIDApOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGIy
NWIzNjYxMGVlMDhhYWYxMjhhMGM3Y2EwZWMxNzRhMjYyNzNiYmYuLmRlNGRhYzA1ZTNiZWRhNDg0
YjU0OGU3ZjY3MGQ3MWVlNjM1OTdmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE2
NCw3ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxv
YlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJvbVVS
TChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNyY1VSTCwgYm9vbCBz
aG91bGRCeXBhc3NDb25uZWN0aW9uQ2hlY2spOwotICAgIHZvaWQgcHJlcmVnaXN0ZXJTYW5kYm94
RXh0ZW5zaW9uc0Zvck9wdGlvbmFsbHlGaWxlQmFja2VkQmxvYihjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZUJhY2tlZFBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpOwogICAg
IHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgV2ViQ29yZTo6
VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tl
ZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNV
UkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKICAgICB2b2lkIGJsb2JTaXplKGNvbnN0
IFdlYkNvcmU6OlVSTCYsIHVpbnQ2NF90JiByZXN1bHRTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGUzZmJiY2IxYzEzMzRmNmQ3M2MyYzc2NDc0
MDljMjg0ZGU3NGRkY2QuLjJhNTFhNTc5NTBlMjI3ZGFiYTJhZjdhN2QyZTE4ZDRlM2YzZDFiZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDQsNyAr
NDQsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsLCBTdHJp
bmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxl
LCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1
cmwsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4gYmxvYlBhcnRzLCBTdHJpbmcgY29udGVudFR5
cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChXZWJDb3JlOjpVUkwgdXJsLCBXZWJDb3Jl
OjpVUkwgc3JjVVJMLCBib29sIHNob3VsZEJ5cGFzc0Nvbm5lY3Rpb25DaGVjaykKLSAgICBQcmVy
ZWdpc3RlclNhbmRib3hFeHRlbnNpb25zRm9yT3B0aW9uYWxseUZpbGVCYWNrZWRCbG9iKFZlY3Rv
cjxTdHJpbmc+IGZpbGVQYXRocywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJh
eSBleHRlbnNpb25IYW5kbGVzKQogICAgIFJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwsIFN0cmluZyBmaWxlQmFj
a2VkUGF0aCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGlu
dDY0X3QgZW5kKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE3
YjAxNjc3MjQ2NTBjMmVkM2JiNmZhM2Q5ZGM4NWZiNzAxOWQwN2QuLjM5ZGNmNzVmNzllNjQwMzhi
NjU5MWMyYzgyNjRkZTYyMDdmYjU1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMTQ3LDIxICsxMTQ3LDEyIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnBlcmZvcm1OZXh0U3RvcmFnZVRhc2soKQogICAgIHRhc2sucGVyZm9ybVRh
c2soKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9y
YXJ5RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgaWYgKGF1dG8gZXh0ZW5zaW9uID0g
bV9ibG9iVGVtcG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25zLmdldChwYXRoKSkKLSAgICAgICAg
ZXh0ZW5zaW9uLT5jb25zdW1lKCk7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFjY2Vzc1Rv
VGVtcG9yYXJ5RmlsZUNvbXBsZXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBXZSd2
ZSBlaXRoZXIgaGFyZCBsaW5rZWQgdGhlIHRlbXBvcmFyeSBibG9iIGZpbGUgdG8gdGhlIGRhdGFi
YXNlIGRpcmVjdG9yeSwgY29waWVkIGl0IHRoZXJlLAogICAgIC8vIG9yIHRoZSB0cmFuc2FjdGlv
biBpcyBiZWluZyBhYm9ydGVkLgogICAgIC8vIEluIGFueSBvZiB0aG9zZSBjYXNlcywgd2UgY2Fu
IGRlbGV0ZSB0aGUgdGVtcG9yYXJ5IGJsb2IgZmlsZSBub3cuCiAgICAgRmlsZVN5c3RlbTo6ZGVs
ZXRlRmlsZShwYXRoKTsKLSAgICAKLSAgICBpZiAoYXV0byBleHRlbnNpb24gPSBtX2Jsb2JUZW1w
b3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMudGFrZShwYXRoKSkKLSAgICAgICAgZXh0ZW5zaW9u
LT5yZXZva2UoKTsKIH0KIAogSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IE5l
dHdvcmtQcm9jZXNzOjppbmRleGVkRGF0YWJhc2VPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCkK
QEAgLTEyMTIsMTQgKzEyMDMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXRTYW5kYm94RXh0
ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZQogewogICAgIHBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoZmlsZW5h
bWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQotCi12b2lkIE5ldHdvcmtQcm9j
ZXNzOjp1cGRhdGVUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhdGhzLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKLXsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbmRsZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMuYWRk
KHBhdGhzW2ldLCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShoYW5kbGVzW2ldKSkp
OwotICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotICAg
IH0KLX0KICNlbmRpZiAvLyBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IDQyOTFiMDc5ZWI0ZmYxMjFlM2NkYWQzZDYyZWZmOTM3ZjM2MWMwZDcu
Ljc2NzgzYzdhMzNmNWEyMjAxYjdkODJiNWU0MWY1YWRjMzQwZDIxZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE5MCwxNCArMTkwLDEy
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlciYgaWRiU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKICAgICAvLyBX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZUZpbGVIYW5kbGVyLgotICAgIHZvaWQg
cHJlcGFyZUZvckFjY2Vzc1RvVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFs
OwogICAgIHZvaWQgYWNjZXNzVG9UZW1wb3JhcnlGaWxlQ29tcGxldGUoY29uc3QgU3RyaW5nJiBw
YXRoKSBmaW5hbDsKICAgICB2b2lkIHNldElEQlBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAgICB2b2lkIGdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik+
JiYpOwotICAgIHZvaWQgdXBkYXRlVGVtcG9yYXJ5RmlsZVNhbmRib3hFeHRlbnNpb25zKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXRocywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmKTsK
ICNlbmRpZgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNDAxLDggKzM5OSw2IEBAIHByaXZhdGU6
CiAgICAgdWludDY0X3QgbV9pZGJQZXJPcmlnaW5RdW90YTsKICNlbmRpZgogCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gbV9ibG9iVGVtcG9yYXJ5RmlsZVNh
bmRib3hFeHRlbnNpb25zOwotICAgIAogICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9zdG9y
YWdlVGFza3M7CiAgICAgTG9jayBtX3N0b3JhZ2VUYXNrTXV0ZXg7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDUxZDJiOGY4MmQxYjlkMTQyMTQ0NTcyMWRlYjFm
MjQ0NDEyMTk3NTcuLjJlOGQxNzhkYzBiZjc0NWI5NzEwNTg4YjUyYzQyN2NkNGYwZjFlMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC01OSw2ICs1OSw5IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGVuY29kZXIgPDwgaW5k
ZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisjZW5kaWYKICNl
bmRpZgogICAgIGVuY29kZXIgPDwgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXI7
CiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CkBAIC0xNjgs
NiArMTcxLDE0IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAgICAgaWYgKCFwYXJlbnRCdW5k
bGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBy
ZXN1bHQucGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqcGFy
ZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBp
bmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IGluZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwor
ICAgIGlmICghaW5kZXhlZERhdGFiYXNlVGVtcEJsb2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQuaW5kZXhlZERhdGFiYXNlVGVtcEJs
b2JEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCppbmRleGVkRGF0YWJhc2VUZW1w
QmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKICNlbmRpZgogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZFN1cHByZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVy
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IGM0MGUyMWFjMGY3Y2EzZjhmMGYwYTE1NmUyMzkyMWU3MjJkYTZjOTMuLjEwMWFjMTIwYTcy
MjE3MDBmNDRmN2M3ODg5MGFhMWNjMjhhYjZmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKQEAgLTcwLDYgKzcwLDkgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29udGFp
bmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGluZGV4ZWRE
YXRhYmFzZVRlbXBCbG9iRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCiAjZW5kaWYK
ICAgICBib29sIHNob3VsZFN1cHByZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsK
ICAgICBib29sIHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbiB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW0KaW5kZXggMWM1NzViMWJiNGQxMThhNGI2NmRkMGM3ZTQwZDdhNmIxZGY2ZWYw
Ni4uOTU5N2JhYzQzODIwZjI1ZTdmMjJkOGYxZDQ4MTVkOTU4OWYzZTUyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQpAQCAtNzgsNiArNzgsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwogICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFt
ZXRlcnMucGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkocGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VUZW1wQmxvYkRpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CisjZW5kaWYKICNlbmRpZgogICAgIG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1l
dGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCBkOTJmNDJlNGM5NTMzYjZjNDRlZGY5MTNhZGZmOWM2MTMxMTNi
NmE0Li43ZDE3MGIyZGJkYzVjMmI0MzcyNTEwNzk0OGE3MTc4ZTg1NDNiM2I5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01MTEsNiArNTExLDEwIEBA
IE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2Vz
cyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgU3RyaW5nIHBhcmVudEJ1bmRsZURpcmVjdG9y
eSA9IHRoaXMtPnBhcmVudEJ1bmRsZURpcmVjdG9yeSgpOwogICAgIGlmICghcGFyZW50QnVuZGxl
RGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKHBhcmVudEJ1bmRsZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9u
bHksIHBhcmFtZXRlcnMucGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoZW1wdHlTdHJpbmcoKSwgU2FuZGJveEV4dGVuc2lvbjo6
VHlwZTo6UmVhZFdyaXRlLCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZVRlbXBCbG9iRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnNo
b3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbiA9IG1fc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtT
ZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
aW5kZXggMDllNzllYTZkMGE1MWU0Y2IzN2U5MDRiNjc4YTZhNDQ5MGQ3NTcxMS4uNDJlNzNjODIy
NWRhOTFmMDBiOGYxZjRlNmJmOTNkZTA3NDY1OGQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yNzksMzQgKzI3OSwxMyBAQCB2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0KQogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRQdXRPckFkZChyZXN1bHQpOwog
fQogCi1zdGF0aWMgdm9pZCBwcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25zSWZOZWNlc3Nhcnko
Y29uc3QgV2ViSURCUmVzdWx0JiByZXN1bHQpCi17Ci0gICAgYXV0byByZXN1bHRUeXBlID0gcmVz
dWx0LnJlc3VsdERhdGEoKS50eXBlKCk7Ci0gICAgaWYgKHJlc3VsdFR5cGUgIT0gSURCUmVzdWx0
VHlwZTo6R2V0UmVjb3JkU3VjY2VzcyAmJiByZXN1bHRUeXBlICE9IElEQlJlc3VsdFR5cGU6Ok9w
ZW5DdXJzb3JTdWNjZXNzICYmIHJlc3VsdFR5cGUgIT0gSURCUmVzdWx0VHlwZTo6SXRlcmF0ZUN1
cnNvclN1Y2Nlc3MgJiYgcmVzdWx0VHlwZSAhPSBJREJSZXN1bHRUeXBlOjpHZXRBbGxSZWNvcmRz
U3VjY2VzcykgewotICAgICAgICBBU1NFUlQocmVzdWx0VHlwZSA9PSBJREJSZXN1bHRUeXBlOjpF
cnJvcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25zdCBhdXRvIGZpbGVQYXRo
cyA9IHJlc3VsdFR5cGUgPT0gSURCUmVzdWx0VHlwZTo6R2V0QWxsUmVjb3Jkc1N1Y2Nlc3MgPyBy
ZXN1bHQucmVzdWx0RGF0YSgpLmdldEFsbFJlc3VsdCgpLmFsbEJsb2JGaWxlUGF0aHMoKSA6IHJl
c3VsdC5yZXN1bHREYXRhKCkuZ2V0UmVzdWx0KCkudmFsdWUoKS5ibG9iRmlsZVBhdGhzKCk7Ci0K
LSNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQotICAgIEFTU0VSVChmaWxlUGF0aHMuc2l6
ZSgpID09IHJlc3VsdC5oYW5kbGVzKCkuc2l6ZSgpKTsKLSNlbmRpZgotCi0gICAgaWYgKCFmaWxl
UGF0aHMuaXNFbXB0eSgpKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNG
b3JPcHRpb25hbGx5RmlsZUJhY2tlZEJsb2IoZmlsZVBhdGhzLCByZXN1bHQuaGFuZGxlcygpKSwg
MCk7Ci19Ci0KIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRSZWNvcmQoY29u
c3QgV2ViSURCUmVzdWx0JiByZXN1bHQpCiB7Ci0gICAgcHJlcmVnaXN0ZXJTYW5kYm94RXh0ZW5z
aW9uc0lmTmVjZXNzYXJ5KHJlc3VsdCk7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdl
dFJlY29yZChyZXN1bHQucmVzdWx0RGF0YSgpKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEdldEFsbFJlY29yZHMoY29uc3QgV2ViSURCUmVzdWx0JiByZXN1bHQpCiB7
Ci0gICAgaWYgKHJlc3VsdC5yZXN1bHREYXRhKCkuZ2V0QWxsUmVzdWx0KCkudHlwZSgpID09IElu
ZGV4ZWREQjo6R2V0QWxsVHlwZTo6VmFsdWVzKQotICAgICAgICBwcmVyZWdpc3RlclNhbmRib3hF
eHRlbnNpb25zSWZOZWNlc3NhcnkocmVzdWx0KTsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkR2V0QWxsUmVjb3JkcyhyZXN1bHQucmVzdWx0RGF0YSgpKTsKIH0KIApAQCAtMzIyLDEzICsz
MDEsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZVJlY29yZChj
b25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYklEQlJlc3VsdCYgcmVzdWx0KQogewotICAgIHBy
ZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeShyZXN1bHQpOwogICAgIG1fY29u
bmVjdGlvblRvU2VydmVyLT5kaWRPcGVuQ3Vyc29yKHJlc3VsdC5yZXN1bHREYXRhKCkpOwogfQog
CiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBX
ZWJJREJSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBwcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25z
SWZOZWNlc3NhcnkocmVzdWx0KTsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkSXRlcmF0
ZUN1cnNvcihyZXN1bHQucmVzdWx0RGF0YSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRiNDA4ZWQ3OGMwMzcx
N2I4ZWJlNjUyNTk4YTU1YWNiZTFjYThkNDQuLjJkMmJhYjJmOTM4OWE3MzVmNGMwOTU0NDQ1OTZi
ZDVmZDc3ODkyZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0xMS0xNSAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yaW5nIGJsb2JzIGluIElEQiBv
biBpT1M6ICJFcnJvciBwcmVwYXJpbmcgYmxvYi9maWxlIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDM4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS80MzA5NzI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaHJlZSBJREIgYmxvYiB0ZXN0cyBhcmUgcGFzc2luZyBvbiBpT1MgZGV2aWNlIG5vdy4K
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy1kZXZpY2UvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OC0xMS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBk
YXRlIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1aWx0LWlucyB0byBiZSBjbG9zZXIgdG8gc3BlY1dl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtZGV2aWNlL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtZGV2aWNlL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggM2NkNzdlZGEyMjE1NGM1NGZkMzJjZTUwMzExNGEwNWQ5NjU1M2RjYS4uNjMzYzQzYjE5
OTI3NGI3OGUxZTlhZDU1MDg4MjY0OTg2ZGIwNTk1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLWRldmljZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1kZXZpY2UvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjAsOSArNjAsNiBAQCBodHRw
L3Rlc3RzL3ByZWxvYWQvb25lcnJvcl9ldmVudC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3By
ZWxvYWQvb25sb2FkX2V2ZW50Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvbXVsdGlwbGUtY29ubmVjdGlvbnMuaHRtbCBbIFNraXAgXQogCi1pbXBvcnRlZC9i
bGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWRlbGV0ZS1vYmplY3RzdG9yZS1kYi5odG1sIFsg
RmFpbHVyZSBdCi1pbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWFm
dGVyLWRlbGV0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLWltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5k
ZXhlZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNvbW1pdC5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoLXNwZWNpYWwtaWRlbnRp
ZmllcnMuaHRtIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
c29tLXZpZXcvU2NyZWVuLXBpeGVsRGVwdGgtU2NyZWVuLWNvbG9yRGVwdGgwMDEuaHRtbCBbIEZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3NvbS12aWV3L3Njcm9s
bGluZy1xdWlya3MtdnMtbm9ucXVpcmtzLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>