<?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>202403</bug_id>
          
          <creation_ts>2019-10-01 06:54:22 -0700</creation_ts>
          <short_desc>Allow to suspend RTCPeerConnection when not connected</short_desc>
          <delta_ts>2019-10-04 09:31:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>202395</dependson>
    
    <dependson>202396</dependson>
    
    <dependson>202400</dependson>
    
    <dependson>202521</dependson>
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575518</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 06:54:22 -0700</bug_when>
    <thetext>Allow to suspend RTCPeerConnection when not connected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575521</commentid>
    <comment_count>1</comment_count>
      <attachid>379901</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 06:58:02 -0700</bug_when>
    <thetext>Created attachment 379901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576327</commentid>
    <comment_count>2</comment_count>
      <attachid>380087</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-03 01:19:54 -0700</bug_when>
    <thetext>Created attachment 380087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576375</commentid>
    <comment_count>3</comment_count>
      <attachid>380104</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-03 06:08:46 -0700</bug_when>
    <thetext>Created attachment 380104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576863</commentid>
    <comment_count>4</comment_count>
      <attachid>380104</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-04 08:28:18 -0700</bug_when>
    <thetext>Comment on attachment 380104
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:502
&gt; +    // FIXME: Evaluate whether to extend this to connected cases as well.

Once this lands, I&apos;ll try it out on top sites and let you know if this did the trick or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576882</commentid>
    <comment_count>5</comment_count>
      <attachid>380104</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 09:30:25 -0700</bug_when>
    <thetext>Comment on attachment 380104
Patch

Clearing flags on attachment: 380104

Committed r250726: &lt;https://trac.webkit.org/changeset/250726&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576883</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 09:30:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576884</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-04 09:31:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/55985113&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379901</attachid>
            <date>2019-10-01 06:58:02 -0700</date>
            <delta_ts>2019-10-03 01:19:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202403-20191001155800.patch</filename>
            <type>text/plain</type>
            <size>31904</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3NGI4NmMwMWFmNjc0
MDVmMzc2YzEzNTlkNTFjMTdiYzVhNTcxYi4uZThiOTgxNzI3ZDU4OTc0NjJjNDgxMDE3OTdhM2Jm
YTZiNjRkYjJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0byBzdXNwZW5k
IFJUQ1BlZXJDb25uZWN0aW9uIHdoZW4gbm90IGNvbm5lY3RlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIGlu
IFJUQ1BlZXJDb25uZWN0aW9uIGJ5IHNlbmRpbmcgc3VzcGVuZC9yZXN1bWUgdG8gdGhlIGxpYndl
YnJ0YyBtZWRpYSBlbmRwb2ludCwKKyAgICAgICAgd2hpY2ggc3VzcGVuZHMvcmVzdW1lcyBpdHMg
c29ja2V0IGZhY3RvcnkuCisgICAgICAgIFNvY2tldCBmYWN0b3J5IHdpbGwgY2xvc2UgdGhlIHNv
Y2tldHMgYXQgc3VzcGVuZCB0aW1lIGFuZCBub3RpZnkgbGlid2VicnRjIHRoYXQgdGhlIHNvY2tl
dHMgYXJlIGNsb3NlZCBhdCByZXN1bWUgdGltZS4KKworICAgICAgICBUZXN0OiB3ZWJydGMvZGF0
YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAoV2ViQ29yZTo6
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJD
b25uZWN0aW9uQmFja2VuZDo6cmVzdW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0
aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uOjpyZXN1bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENNZWRpYUVuZHBvaW50OjpyZXN1bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
cmVzdW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisKIDIwMTktMTAtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVycyBm
b3Igd2VicnRjIHNvY2tldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDgzN2NkYTcxZjJmNGZhNTkzNDAxZTk4NTg2
ZGFiNWNjMDBiMjQyMS4uNjFkMDQ0NjdiMThhNmE3MDFmODExZjBmNGQzZjM5NTYxNDI3YThmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gc3VzcGVuZCBSVENQZWVyQ29ubmVj
dGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXNwZW5kL3Jlc3VtZSBvZiBzb2NrZXRzIGJ5IGNs
b3Npbmcgc29ja2V0cworICAgICAgICBhdCBzdXNwZW5kIHRpbWUgYW5kIG5vdGlmeSBsaWJ3ZWJy
dGMgdGhhdCBzb2NrZXRzIGFyZSBlcnJvcmVkIGF0IHJlc3VtZSB0aW1lLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0b3J5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNlbmRPbk1haW5UaHJlYWQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OkNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDU29ja2V0OjpyZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6
OnN1c3BlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6Y2xvc2UpOgorCiAyMDE5LTEwLTAxICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ugc3Ryb25nbHkgdHlwZWQgaWRl
bnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCAxYWMw
OTU4OTNlODhkMjg0OTJhMDIzZTAyODg0MmNjMjQ0N2NhODc2Li44YjIxNTIyZGNhMzdjNWM5NGZk
MmRjYjViYjg3ZTg2MzRkMzE5YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTE3Miw2ICsx
NzIsOSBAQCBwdWJsaWM6CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCgpIGNv
bnN0OwogICAgIFJUQ1J0cFRyYW5zY2VpdmVyKiB0cmFuc2NlaXZlckZyb21TZW5kZXIoY29uc3Qg
UlRDUnRwU2VuZGVyJik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCByZXN1bWUoKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZmlyZUlDRUNh
bmRpZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYsIFN0cmluZyYmIHVybCk7CiAg
ICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAy
ZmY5MzNjYjcwYmQ2MjY5OTY4NWIyN2UzZDQ3OTZiZTI0OTg3NWMyLi5jYmM4ZjAwZWZjMTE2MmNj
ZjI4NTg1OWQzZTc4OWZkZjMzNmQxZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNDk3LDEwICs0
OTcsOSBAQCBjb25zdCBjaGFyKiBSVENQZWVyQ29ubmVjdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuICJSVENQZWVyQ29ubmVjdGlvbiI7CiB9CiAKLS8vIEZJWE1F
OiBXZSBzaG91bGQgZG8gYmV0dGVyIGhlcmUsIGl0IGlzIHdheSB0b28gZWFzeSB0byBwcmV2ZW50
IFBhZ2VDYWNoZS4KIGJvb2wgUlRDUGVlckNvbm5lY3Rpb246OmNhblN1c3BlbmRGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKSBjb25zdAogewotICAgIHJldHVybiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7
CisgICAgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0YXRlICE9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0
ZTo6Q29tcGxldGVkICYmIG1faWNlQ29ubmVjdGlvblN0YXRlICE9IFJUQ0ljZUNvbm5lY3Rpb25T
dGF0ZTo6Q29ubmVjdGVkOwogfQogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQpAQCAtNTA5LDYgKzUwOCw3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fc2hvdWxkRGVsYXlUYXNrcyA9IHRydWU7CisgICAgbV9iYWNrZW5k
LT5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnJlc3VtZSgpCkBAIC01
MTYsNiArNTE2LDggQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVzdW1lKCkKICAgICBpZiAo
IW1fc2hvdWxkRGVsYXlUYXNrcykKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9iYWNrZW5kLT5y
ZXN1bWUoKTsKKwogICAgIG1fc2hvdWxkRGVsYXlUYXNrcyA9IGZhbHNlOwogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oYXV0byYpIHsKICAgICAgICAgaWYgKG1faXNTdG9wcGVkIHx8IG1fc2hvdWxkRGVs
YXlUYXNrcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5k
ZXggZWYyODc2OTQwZTBlZDMyOGJlNzgxNTY5NjFlNDNkMDFjNGZiNWRmZi4uOGU3MDFlODI3MjA1
NmRjMTZiMGNlZDI4Mjk5ZjgxZDFiM2NhNDc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTk4LDYgKzk4LDE4IEBAIGJvb2wgTGliV2ViUlRDTWVk
aWFFbmRwb2ludDo6c2V0Q29uZmlndXJhdGlvbihMaWJXZWJSVENQcm92aWRlciYgY2xpZW50LCB3
ZWJydGM6CiAgICAgcmV0dXJuIG1fYmFja2VuZC0+U2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pKTsKIH0KIAordm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzdXNwZW5k
KCkKK3sKKyAgICBpZiAobV9ydGNTb2NrZXRGYWN0b3J5KQorICAgICAgICBtX3J0Y1NvY2tldEZh
Y3RvcnktPnN1c3BlbmQoKTsKK30KKwordm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZXN1
bWUoKQoreworICAgIGlmIChtX3J0Y1NvY2tldEZhY3RvcnkpCisgICAgICAgIG1fcnRjU29ja2V0
RmFjdG9yeS0+cmVzdW1lKCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogc2Vzc2lv
bkRlc2NyaXB0aW9uVHlwZShSVENTZHBUeXBlIHNkcFR5cGUpCiB7CiAgICAgc3dpdGNoIChzZHBU
eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggY2E5
ZGY4NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5My4uODI4ZThlYTkxOGFlZDhiZmEw
ZmQ3OTVmNDUwYWE1YzYwNGIxYWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuaApAQCAtMTEzLDYgKzExMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbmRl
clNvdXJjZUZyb21UcmFjayhMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kJiwgTWVkaWFTdHJlYW1U
cmFjayYpOwogICAgIHZvaWQgY29sbGVjdFRyYW5zY2VpdmVycygpOwogCisgICAgdm9pZCBzdXNw
ZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKwogcHJpdmF0ZToKICAgICBMaWJXZWJSVENNZWRp
YUVuZHBvaW50KExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZCYsIExpYldlYlJUQ1Byb3Zp
ZGVyJik7CiAKQEAgLTE5OCw3ICsyMDEsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxTdHJp
bmcsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlPj4gbV9s
b2NhbFN0cmVhbXM7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0
b3J5PiBtX3J0Y1NvY2tldEZhY3Rvcnk7CisgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1By
b3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFjdG9yeTsKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJl
ZFRpbWVzdGFtcCB7IDAgfTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmlu
ZGV4IGZjOTFjY2QwYmJkMWZkYmJhNzY0MmU3MDRmMzdmZTg1Y2M3MmZkNWEuLmZlNzBhMTM0NWU2
YTc5ZjAzMTJkZWEyNzg0ZDU0N2NiYmVlYmQ4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtOTAsNiArOTAsMTYgQEAg
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQoUlRDUGVlckNvbm5lY3Rpb24KIAogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
Ojp+TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kKCkgPSBkZWZhdWx0OwogCit2b2lkIExp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c3VzcGVuZCgpCit7CisgICAgbV9lbmRwb2lu
dC0+c3VzcGVuZCgpOworfQorCit2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
cmVzdW1lKCkKK3sKKyAgICBtX2VuZHBvaW50LT5yZXN1bWUoKTsKK30KKwogc3RhdGljIGlubGlu
ZSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpCdW5kbGVQb2xpY3kgYnVuZGxlUG9s
aWN5ZnJvbUNvbmZpZ3VyYXRpb24oY29uc3QgTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCiB7CiAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aAppbmRleCBjMTQ3YjQ3OTNmZjZhMGI0ZDgwM2EwZDUzYTI4Mzc1OTZmZTNmZTEyLi41OTMzYzhh
N2VkYTA1MmRiZmIxZWQ5MzA5YmNkNjI1MTI1ODE2YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMTI0LDYgKzEyNCw5IEBA
IHByaXZhdGU6CiAKICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyRm9yU291
cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDUnRwUmVj
ZWl2ZXJCYWNrZW5kPiYmKTsKIAorICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOworICAgIHZvaWQg
cmVzdW1lKCkgZmluYWw7CisKICAgICBSZWY8TGliV2ViUlRDTWVkaWFFbmRwb2ludD4gbV9lbmRw
b2ludDsKICAgICBib29sIG1faXNMb2NhbERlc2NyaXB0aW9uU2V0IHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNSZW1vdGVEZXNjcmlwdGlvblNldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWNkYjc5MDc4YTkz
OGQ2NWJiOTAyOTcwYTlmZWZjNTY4MDFjZGZkZi4uM2ZiYjU1ZWVjMDlkYzY2MjdkMDIxNTcyODk5
OWNiNGUzYmIzZGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjg5MDUsNyArMjg5MDUsNiBAQAogCQkJCUFBMjFFQ0NEMEFC
RjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NDQ0Q0JFNDFEODg2MTk5MDA3M0EwNzQgLyogQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM3NzlFMTQxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3Bl
cnR5VmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMEU0NDYxMjM0MzczRTkwMDAxNzNENCAv
KiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTlDQzgx
ODE2QkI5QUM2MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NDQ3NkJEQjFERkNBQzAzMDA2OTBFMjMgLyogQ1NTRGVmZXJyZWRQYXJzZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJ
bWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNzQ5LDYgKzMwNzQ4LDcgQEAKIAkJCQk0
MTc2MTJCMjFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTU3NDc0ODFFMzg2OUE3MDBFOTE0RDggLyogTGliV2Vi
UlRDUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjI4QjNEMUY4NjBFRjMwMEZCNTJB
QyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTBFNDQ2
MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyNzk2NTBEMDBCRjIyMDA3MUI3ODIgLyogTGluZWFyR3JhZGll
bnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjMxQzkxRTEwQUUxQjhFMDAwQzdC
OTIgLyogTGluZUNsYW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAppbmRleCBhMTQ0ZjY3OWQwMTYwZDBiN2JiZDE4Mjk1MDhmODM1YmMyNTg3
ODViLi43ZTk5YTdjOTgxYjczZTA0YjBlZDlkZmI5NTU3ZGMzMTM5MTRiMWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtMTE5LDcgKzExOSwxMyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0VXNl
RFRMUzEwKGJvb2wpOwogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNrZXRT
b2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAq
LykgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGNsYXNzIFN1c3BlbmRhYmxlU29ja2V0RmFjdG9y
eSA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgdmlydHVhbCB+U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5KCkgPSBkZWZhdWx0OworICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc3Vt
ZSgpIHsgfTsKKyAgICB9OworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxl
U29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQg
Ki8pIHsgcmV0dXJuIG51bGxwdHI7IH0KIAogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1Byb3Zp
ZGVyKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggY2MwOTYxYTEy
YjgxNjI4M2M3NjI3M2JiN2MwNTMwMmU5MGM5NDNiNi4uZTE0ZWMzNWY1NDIyZWYwNDlkZjhlOTNj
YzIzY2YyMzQwNTc0YmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0yOSw5ICsy
OSwxMiBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNsdWRlICJMaWJXZWJSVENOZXR3b3Jr
LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTmV0
d29ya1JUQ1NvY2tldE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPHdlYnJ0Yy9hcGkvYXN5bmNyZXNvbHZlcmZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMv
cGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02NSw3
ICs2OCw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUodWludDY0
X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkubGliV2ViUlRDTmV0d29yaygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUo
ZG9jdW1lbnRJZGVudGlmaWVyLCBpcEFkZHJlc3MsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAot
Y2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZh
Y3RvcnkgeworY2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBMaWJXZWJSVENQ
cm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYm
IHVzZXJBZ2VudCkKQEAgLTc2LDE3ICs3OSwyMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpIGZpbmFs
CiAgICAgewotICAgICAgICByZXR1cm4gZmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldChhZGRyZXNz
LCBtaW5Qb3J0LCBtYXhQb3J0KTsKKyAgICAgICAgYXV0byBzb2NrZXQgPSBmYWN0b3J5KCkuY3Jl
YXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOworICAgICAgICBtX3NvY2tl
dHMuYWRkKHNvY2tldC5nZXQoKSk7CisgICAgICAgIHJldHVybiBzb2NrZXQubW92ZVRvVW5pcXVl
UHRyKCkucmVsZWFzZSgpOwogICAgIH0KIAogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENy
ZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKSBmaW5hbAogICAg
IHsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoYWRkcmVz
cywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyk7CisgICAgICAgIGF1dG8gc29ja2V0ID0gZmFj
dG9yeSgpLmNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBv
cHRpb25zKTsKKyAgICAgICAgbV9zb2NrZXRzLmFkZChzb2NrZXQuZ2V0KCkpOworICAgICAgICBy
ZXR1cm4gc29ja2V0Lm1vdmVUb1VuaXF1ZVB0cigpLnJlbGVhc2UoKTsKICAgICB9CiAKICAgICBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVt
b3RlQWRkcmVzcywgY29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGlu
dCBvcHRpb25zKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVD
bGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBTdHJpbmcgeyBtX3Vz
ZXJBZ2VudCB9LCBvcHRpb25zKTsKKyAgICAgICAgYXV0byBzb2NrZXQgPSBmYWN0b3J5KCkuY3Jl
YXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsg
bV91c2VyQWdlbnQgfSwgb3B0aW9ucyk7CisgICAgICAgIG1fc29ja2V0cy5hZGQoc29ja2V0Lmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIHNvY2tldC5tb3ZlVG9VbmlxdWVQdHIoKS5yZWxlYXNlKCk7
CiAgICAgfQogCiAgICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jl
c29sdmVyKCkgZmluYWwKQEAgLTk2LDExICsxMDUsMzYgQEAgcHJpdmF0ZToKIAogICAgIExpYldl
YlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnkoKSB7IHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpOyB9CiAKKyAgICB2b2lkIHN1
c3BlbmQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBhIGNvcHlUb1ZlY3Rv
ciByb3V0aW5lLgorICAgICAgICBWZWN0b3I8TGliV2ViUlRDU29ja2V0Kj4gc29ja2V0czsKKyAg
ICAgICAgc29ja2V0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fc29ja2V0cy5jb21wdXRlU2l6
ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBzb2NrZXQgOiBtX3NvY2tldHMpCisgICAgICAgICAg
ICBzb2NrZXRzLnVuY2hlY2tlZEFwcGVuZCgmc29ja2V0KTsKKworICAgICAgICBmb3IgKGF1dG8g
c29ja2V0IDogc29ja2V0cykKKyAgICAgICAgICAgIHNvY2tldC0+c3VzcGVuZCgpOworICAgIH0K
KworICAgIHZvaWQgcmVzdW1lKCkgZmluYWwKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQg
YSBjb3B5VG9WZWN0b3Igcm91dGluZS4KKyAgICAgICAgVmVjdG9yPExpYldlYlJUQ1NvY2tldCo+
IHNvY2tldHM7CisgICAgICAgIHNvY2tldHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX3NvY2tl
dHMuY29tcHV0ZVNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgc29ja2V0IDogbV9zb2NrZXRz
KQorICAgICAgICAgICAgc29ja2V0cy51bmNoZWNrZWRBcHBlbmQoJnNvY2tldCk7CisKKyAgICAg
ICAgZm9yIChhdXRvIHNvY2tldCA6IHNvY2tldHMpCisgICAgICAgICAgICBzb2NrZXQtPnJlc3Vt
ZSgpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CisgICAgV1RG
OjpXZWFrSGFzaFNldDxMaWJXZWJSVENTb2NrZXQ+IG1fc29ja2V0czsKIH07CiAKLXN0ZDo6dW5p
cXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVh
dGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKK3N0ZDo6dW5pcXVlX3B0cjxMaWJX
ZWJSVENQcm92aWRlcjo6U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRl
cjo6Y3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgcmV0dXJu
IG1ha2VVbmlxdWU8UlRDU29ja2V0RmFjdG9yeT4oV1RGTW92ZSh1c2VyQWdlbnQpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMTAzN2U2NTFkNzNhM2Y5OTc2Y2I0OGIxYjNhM2I3Y2E3
ZWU0YzYwNC4uMDI0OGVlZDkzMzAwNGI0MWIzMDIwMjQ5MjU2NDdhM2VlNDAxMGQwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIExpYldlYlJU
Q1Byb3ZpZGVyKCkgeyBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyID0gZmFsc2U7
IH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0
b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29j
a2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIGZpbmFsOwogCiAgICAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJD
b25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6UGFja2V0U29j
a2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3Vy
YXRpb24mJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggYjI2NzFjNTE2NmUy
MDc1Y2M4YzdjYmI5NDBhOTA1NzYyZmQ1YzA4Ni4uZDc4NTg0N2U1NDY4MDRlMjA3NzVjYjdiYmI1
MmJiZjgyNDNlNDQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTU4LDYgKzU4LDkgQEAg
TGliV2ViUlRDU29ja2V0Ojp+TGliV2ViUlRDU29ja2V0KCkKIAogdm9pZCBMaWJXZWJSVENTb2Nr
ZXQ6OnNlbmRPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJiBj
YWxsYmFjaykKIHsKKyAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CiAg
ICAgICAgIGNhbGxiYWNrKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CiAgICAgfSk7CkBAIC0xNDcsNiArMTUwLDcg
QEAgaW50IExpYldlYlJUQ1NvY2tldDo6Q2xvc2UoKQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IG1fc3RhdGUgPSBTVEFURV9DTE9TRUQ7CisKICAgICBhdXRvIGlkZW50aWZpZXIgPSB0aGlzLT5p
ZGVudGlmaWVyKCk7CiAgICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllcl0oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6
TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2UoKSwgaWRlbnRpZmllcik7CkBAIC0xNzcsNiArMTgxLDIx
IEBAIGludCBMaWJXZWJSVENTb2NrZXQ6OlNldE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9w
dGlvbiwgaW50IHZhbHVlKQogICAgIHJldHVybiAwOwogfQogCit2b2lkIExpYldlYlJUQ1NvY2tl
dDo6cmVzdW1lKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1faXNTdXNw
ZW5kZWQgPSBmYWxzZTsKKyAgICBXZWJSVENTb2NrZXQoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKSwgaWRlbnRpZmllcigpKS5jbG9zZSgt
MSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOworICAgIGF1dG8mIGNv
bm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUlRDU29ja2V0OjpDbG9zZSB7IH0sIGlkZW50aWZpZXIoKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQu
aAppbmRleCA2NDRlZTVhMGJiMWYzZjk4YWY2OWVjZDQwY2VlZTliOWMyMDJiOTA4Li5lYzAxNWUz
MGNlYmIwNDI5NDk5NDMyOGIyODY5NmZjMDIwMjIwMmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29j
a2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5l
Y3Rpb247CkBAIC00Nyw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OwogCi1jbGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwgOiBwdWJs
aWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCB7CitjbGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwg
OiBwdWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCwgcHVibGljIENhbk1ha2VXZWFrUHRyPExp
YldlYlJUQ1NvY2tldD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNv
bm5lY3Rpb25UQ1AgfTsKQEAgLTYyLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RXJy
b3IoaW50IGVycm9yKSB7IG1fZXJyb3IgPSBlcnJvcjsgfQogICAgIHZvaWQgc2V0U3RhdGUoU3Rh
dGUgc3RhdGUpIHsgbV9zdGF0ZSA9IHN0YXRlOyB9CiAKKyAgICB2b2lkIHJlc3VtZSgpOworICAg
IHZvaWQgc3VzcGVuZCgpOworCiBwcml2YXRlOgogICAgIGJvb2wgd2lsbFNlbmQoc2l6ZV90KTsK
IApAQCAtODUsNyArODksNyBAQCBwcml2YXRlOgogICAgIGludCBHZXRPcHRpb24ocnRjOjpTb2Nr
ZXQ6Ok9wdGlvbiwgaW50KikgZmluYWw7CiAgICAgaW50IFNldE9wdGlvbihydGM6OlNvY2tldDo6
T3B0aW9uLCBpbnQpIGZpbmFsOwogCi0gICAgc3RhdGljIHZvaWQgc2VuZE9uTWFpblRocmVhZChG
dW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsKKyAgICB2b2lkIHNlbmRPbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7CiAKICAgICBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7CiAgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CkBAIC0xMDIsNiArMTA2LDcgQEAgcHJpdmF0ZToKICAg
ICBEZXF1ZTxzaXplX3Q+IG1fYmVpbmdTZW50UGFja2V0U2l6ZXM7CiAgICAgc2l6ZV90IG1fYXZh
aWxhYmxlU2VuZGluZ0J5dGVzIHsgNjU1MzYgfTsKICAgICBib29sIG1fc2hvdWxkU2lnbmFsUmVh
ZHlUb1NlbmQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmNwcAppbmRleCAzMDAyZTgzODg2YzM5MDJmZjNkMDM1NzNjMzM2MWNjYzgxNWExY2VlLi5jNWRl
YzE4NDk4MDc2NWE0NzZhMjk5NWZmOGM4YTEzYmRkZDIzYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldEZhY3RvcnkuY3BwCkBAIC00NywxMCArNDcsMTAgQEAgc3RhdGljIGlubGluZSBydGM6
OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQs
IGludCBvcHRpb25zKQorVW5pcXVlUmVmPExpYldlYlJUQ1NvY2tldD4gTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
YWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMp
CiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMs
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFk
ZHJlc3MoKSk7Ci0gICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0
LmdldCgpKTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDU29ja2V0
PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6
U29ja2V0QWRkcmVzcygpKTsKKyAgICBtX3NvY2tldHMuYWRkKHNvY2tldC0+aWRlbnRpZmllcigp
LCAmc29ja2V0KTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQt
PmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9u
c10oKSB7CiAgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Q3JlYXRlU2VydmVyVENQU29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpLCAwKSkg
ewpAQCAtNTksMTQgKzU5LDEzIEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAgICAgICAgIH0K
IAogICAgIH0pOwotCi0gICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNv
Y2tldDsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK1VuaXF1ZVJlZjxMaWJXZWJSVENTb2Nr
ZXQ+IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQp
CiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMs
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3Mo
KSk7Ci0gICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgp
KTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDU29ja2V0PigqdGhp
cywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVz
cygpKTsKKyAgICBtX3NvY2tldHMuYWRkKHNvY2tldC0+aWRlbnRpZmllcigpLCAmc29ja2V0KTsK
IAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIo
KSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxv
Y2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CiAgICAgICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlVURQ
U29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQpLCAwKSkgewpAQCAtNzQsMTQgKzczLDE0IEBAIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCBy
dGM6OlNvY2tlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9KTsKLSAgICBy
ZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gc29ja2V0OwogfQogCi1ydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0
aW9ucykKK1VuaXF1ZVJlZjxMaWJXZWJSVENTb2NrZXQ+IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRk
cmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGludCBvcHRpb25zKQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwg
bG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzKTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlx
dWVSZWY8TGliV2ViUlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGll
bnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0
ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwotICAgIG1fc29ja2V0cy5zZXQo
c29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisgICAgbV9zb2NrZXRzLmFkZChz
b2NrZXQtPmlkZW50aWZpZXIoKSwgJnNvY2tldCk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtp
ZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVT
b2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywg
bV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVz
ZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgewogICAgICAgICBpZiAoIVdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRD
UFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVz
cyksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwg
b3B0aW9ucyksIDApKSB7CkBAIC04OSwxNSArODgsMTQgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0
YzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0pOwotCi0gICAgcmV0dXJu
IHNvY2tldC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNvY2tldDsKIH0KIAotcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNv
Y2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiByZW1vdGVBZGRyZXNzKQorVW5pcXVlUmVmPExpYldlYlJUQ1NvY2tldD4gTGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQm
IHNlcnZlclNvY2tldCwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQog
ewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBM
aWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5s
b2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5p
cXVlUmVmPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2Vy
dmVyQ29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRy
ZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVD
VEVEKTsKLSAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0
KCkpOworICAgIG1fc29ja2V0cy5hZGQoc29ja2V0LT5pZGVudGlmaWVyKCksICZzb2NrZXQpOwog
CiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigp
LCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CiAgICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6V3JhcE5ld1RDUENvbm5l
Y3Rpb24oaWRlbnRpZmllciwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpLCAwKSkgewpA
QCAtMTA1LDcgKzEwMyw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9KTsKLSAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsK
KyAgICByZXR1cm4gc29ja2V0OwogfQogCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmRl
dGFjaChMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5oCmluZGV4IGE5NDViMTBkYWFkYWFmNmI0NWQ0ZDg1NmM4NmI2N2IxNDJiNzczZDUuLmViMDI5
YmE0MGJlMzVkZWNmMjIzN2YwMDVkZGIyZjNjMjVkZjVlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuaApAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
Y2xhc3MgTGliV2ViUlRDU29ja2V0OworCiBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IHsK
IHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CkBAIC00NCwxMCArNDYs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoKExpYldlYlJUQ1NvY2tldCYpOwogICAgIExp
YldlYlJUQ1NvY2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKTsgfQogCi0gICAg
cnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOwotICAgIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9u
cyk7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpOwot
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGli
V2ViUlRDU29ja2V0JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25u
ZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CisgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1NvY2tldD4gY3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOworICAgIFVu
aXF1ZVJlZjxMaWJXZWJSVENTb2NrZXQ+IGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQg
b3B0aW9ucyk7CisgICAgVW5pcXVlUmVmPExpYldlYlJUQ1NvY2tldD4gY3JlYXRlQ2xpZW50VGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9w
dGlvbnMpOworICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENTb2NrZXQ+IGNyZWF0ZU5ld0Nvbm5lY3Rp
b25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJik7CiAKICAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3QgaWRlbnRp
ZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9CiAgICAgc3RkOjp1
bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRp
ZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0
LmNwcAppbmRleCAyOTYxZWI3MWE1NzE0MWEwNmJmMmRmYWJhYzQ0NWEyNGJkODcwOTg0Li4zOWZk
ODFkNmQ2M2UwMmQ1YjNjMDIyZjk1NWQ3ZDkzMzQyOTA1ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApA
QCAtOTUsNyArOTUsNyBAQCB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UoaW50IGVycm9y
KQogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogewogICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2Zh
Y3RvcnksIG1faWRlbnRpZmllciwgW25ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3Mg
PSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSldKGF1dG8mIHNv
Y2tldCkgewotICAgICAgICBzb2NrZXQuc2lnbmFsTmV3Q29ubmVjdGlvbihzb2NrZXQubV9mYWN0
b3J5LmNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoc29ja2V0LCBuZXdTb2NrZXRJZGVudGlmaWVy
LCByZW1vdGVBZGRyZXNzKSk7CisgICAgICAgIHNvY2tldC5zaWduYWxOZXdDb25uZWN0aW9uKHNv
Y2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChzb2NrZXQsIG5ld1NvY2tl
dElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MpLm1vdmVUb1VuaXF1ZVB0cigpLnJlbGVhc2UoKSk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAppbmRleCA1N2UxOGRmZTMwMzhmY2U3ZTcyYWI0OWVm
ZThhMjg3MGI0Zjk4MmZjLi44NTk3MGFkMGU4MmQ3N2IyMGRkNjBjMWFhODZlNTM3ZWEzZDc0NWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2
b2lkIHNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2Nr
ZXQmKT4mJik7CiAKKyAgICB2b2lkIGNsb3NlKGludCBlcnJvcikgeyBzaWduYWxDbG9zZShlcnJv
cik7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9y
dCwgaW50NjRfdCk7CiAgICAgdm9pZCBzaWduYWxTZW50UGFja2V0KGludCwgaW50NjRfdCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZjc1NDliYjI1OGI4NTUwMDQ1NjQ1NTZiNmM3Yzk0Y2ZiNWQzNGNmNC4uNTMxOWYwNDM2
ZDUzNzk1YmJmNzI1NjRlOTc4MWIxNjY3M2NhZDYyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE5LTEwLTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
bGxvdyB0byBzdXNwZW5kIFJUQ1BlZXJDb25uZWN0aW9uIHdoZW4gbm90IGNvbm5lY3RlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDAzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvZGF0
YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWw6IEFk
ZGVkLgorCiAyMDE5LTA5LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBKUyBGb3JtYXR0ZXI6IHVuZXhwZWN0ZWQgbmV3bGluZXMg
YWRkZWQgaW5zaWRlIHRlbXBsYXRlIHN0cmluZyBleHByZXNzaW9uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1j
YWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyYWIxN2IwYWM5OGUwODE5NDQ2MDU5YjU1
MDUxMmYyYTE1MTE1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRh
Y2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBkYXRhY2hhbm5lbC1wYWdlLWNhY2hlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNzU0ODIxYjU0MzU5NjIwMzFhNmJlY2JjYTc3MGFjNTg5NmM3Yjg2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVs
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK3QgPSBhc3luY190ZXN0KCk7CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LnBl
cnNpc3RlZCkKKyAgICAgICAgdC5kb25lKCk7Cit9KTsKKyAKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJwYWdlaGlkZSIsIHQuc3RlcF9mdW5jKChldmVudCkgPT4geworICAgIGlmICghZXZlbnQu
cGVyc2lzdGVkKQorICAgICAgICBhc3NlcnRfdW5lYWNoZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVy
IHBhZ2UgY2FjaGUiKTsKK30pKTsKKyAKK29ubG9hZCA9ICgpID0+IHsKKyAgICBzZXRUaW1lb3V0
KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICAgICAgY29uc3QgY2hhbm5lbCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCJ0ZXN0Iik7
CisgICAgICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAg
YXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICAgIHdpbmRvdy5sb2Nh
dGlvbiA9ICIuLi8uLi9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0
bWwiOworICAgIH0sIDApOworfTsKKzwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380087</attachid>
            <date>2019-10-03 01:19:54 -0700</date>
            <delta_ts>2019-10-03 06:08:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202403-20191003101952.patch</filename>
            <type>text/plain</type>
            <size>39680</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBmMmY3MWZjMWQzMjI0MGRkZjBmMDFmYmEyOTllYTc2OWQyOWEyNTQ2Li5lYWYw
MTI1MDhkYjJlNGI3N2UwODcwMjY0NDI1NDBjY2NjOWU3MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wMyAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gc3VzcGVuZCBSVENQ
ZWVyQ29ubmVjdGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCBydGM6OlRpbWVNaWxsaXMoKQorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLm1hYy5leHA6CisKIDIwMTktMDktMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgRFRMUzEuMApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMxNzhh
MzgzOTJjMzYwZWEzZmRiNjU4YzcxNTZmZWY1MWEwMmUyM2EuLmExMmMzOTNiMzhiZThiMWZjNzhl
MDllYzY1NGZjYWI2OTZkZGNmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxOS0x
MC0wMyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
dG8gc3VzcGVuZCBSVENQZWVyQ29ubmVjdGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXNwZW5k
L3Jlc3VtZSBpbiBSVENQZWVyQ29ubmVjdGlvbiBieSBzZW5kaW5nIHN1c3BlbmQvcmVzdW1lIHRv
IHRoZSBsaWJ3ZWJydGMgbWVkaWEgZW5kcG9pbnQsCisgICAgICAgIHdoaWNoIHN1c3BlbmRzL3Jl
c3VtZXMgaXRzIHNvY2tldCBmYWN0b3J5LgorCisgICAgICAgIFdlIGFsbG93IHN1c3BlbnNpb24g
d2hlbiB0aGUgY29ubmVjdGlvbiBpcyBub3QgY29ubmVjdGVkLgorICAgICAgICBQYWdlcyB3aXRo
IGNvbm5lY3RlZCBjb25uZWN0aW9ucyB3aWxsIG5vdCBnbyBpbiBwYWdlIGNhY2hlIHlldC4KKwor
ICAgICAgICBUZXN0czogd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUt
c2VuZC5odG1sCisgICAgICAgICAgICAgICB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwt
cGFnZS1jYWNoZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5k
OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVz
dW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0
aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZXN1
bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2lu
dDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpy
ZXN1bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVzdW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaDoKKwogMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXJzIGZvciB3ZWJydGMg
c29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlMzY2NjMzYjRkMjI2ZDYwYTQ2NWY0MTRhZTA5YzU0NzRhYmZm
M2YwLi4wMjRkYWYzYjJjZTk1MTJmN2ZmMjNmMWFjNzc4YmIzYmJlNTc0OTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU0IEBACisyMDE5LTEwLTAzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBbGxvdyB0byBzdXNwZW5kIFJUQ1BlZXJDb25uZWN0aW9uIHdoZW4g
bm90IGNvbm5lY3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAyNDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIG9mIHNvY2tldHMgYnkgZG9pbmcgdGhlIGZv
bGxvd2luZzoKKyAgICAgICAgLSBGb3IgVURQIHNvY2tldHMsIHdlIHNpbXVsYXRlIGFzIGlmIGJl
aW5nIHNlbnQgZGF0YSBpcyBxdWV1ZWQgd2hlbiBiZWluZyBzdXNwZW5kZWQuCisgICAgICAgIHRo
ZSB3ZWJydGMgYmFja2VuZCB3aWxsIHRoZW4gc3RvcCBzZW5kaW5nIHBhY2tldHMgdW50aWwgdGhl
IHF1ZXVlIGlzIGVtcHRpZWQuCisgICAgICAgIEF0IHJlc3VtZSB0aW1lLCB3ZSBkbyBhcyBpZiB0
aGUgcXVldWUgaXMgZW1wdGllZCBhbmQgcGFja2V0cyBzZW50IChldmVuIHRob3VnaCBwYWNrZXRz
IGFyZSBub3Qgc2VudCkuCisgICAgICAgIEZvciBpbmNvbWluZyB0cmFmZmljLCB3ZSBpZ25vcmUg
aXQgd2hlbiBiZWluZyBzdXNwZW5kZWQuCisgICAgICAgIC0gRm9yIFRDUCBzb2NrZXRzLCB3ZSBj
bG9zZSB0aGVtIGF0IHN1c3BlbmQgdGltZS4gV2UgdGhlbiBub3RpZnkgYXQgcmVzdW1lIHRpbWUg
dGhhdCBhbiBlcnJvciBoYXBwZW5lZGVkCisgICAgICAgIGZvciB0aGVzZSBzb2NrZXRzIHRvIHRo
ZSB3ZWJydGMgYmFja2VuZC4gV2UgY2Fubm90IHNpbXVsYXRlIHBhY2tldCBkcm9wcGluZyBsaWtl
IGluIHRoZSBVRFAgY2FzZS4KKworICAgICAgICBUbyBtYW5hZ2UgcmVzdW1lL3N1c3BlbmQsIGVh
Y2ggc29ja2V0IG5vdyBoYXMgYSBpc1N1c3BlbmRlZCBzdGF0ZSBhbmQgYSBzb2NrZXQgZ3JvdXAu
CisgICAgICAgIFRoZSBzb2NrZXQgZ3JvdXAgaXMgcGVyIHBlZXIgY29ubmVjdGlvbi4KKyAgICAg
ICAgQSBwZWVyIGNvbm5lY3Rpb24gd2lsbCBub3RpZnkgdGhlIGZhY3RvcnkgdGhhdCBpdCBpcyBz
dXNwZW5kZWQvcmVzdW1lZC4KKyAgICAgICAgVGhlIGZhY3Rvcnkgd2lsbCBpdGVyYXRlIHRocm91
Z2ggYWxsIHNvY2tldHMgYW5kIHdpbGwgc3VzcGVuZC9yZXN1bWUgZWFjaCBzb2NrZXQgb2YgdGhl
IHNvY2tldCBncm91cC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpS
VENTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3Jl
YXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
U2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3Jl
YXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6
Q3JlYXRlQXN5bmNSZXNvbHZlcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6
OnN1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpyZXN1bWUpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpMaWJXZWJSVENTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbFJlYWRQYWNrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNrZXQpOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OlNlbmRUbyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ1NvY2tldDo6Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OlNl
dE9wdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6cmVzdW1lKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVu
dFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjphZGRTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpyZW1vdmVTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAxOS0xMC0wMSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlk
ZW50aWZpZXJzIGZvciB3ZWJydGMgc29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4
IGMwYWQxZmVjZTI5NTZmY2YyZjI2MzgzZDc5ZTE3YjU3NGM3ODlkZDIuLjQ0NGZjY2M5NmEwZmRj
MjhiM2ZmZTkxMjRlOWZmZGZmMjQ3MWJlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAg
LTEzLDYgKzEzLDcgQEAgX19aTjNydGM2VGhyZWFkN1NldE5hbWVFUktOU3QzX18xMTJiYXNpY19z
dHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2MKIF9fWk4zcnRjNlRocmVhZDdT
bGVlcE1zRWkKIF9fWk4zcnRjOExvY2F0aW9uQzFFUEtjUzJfCiBfX1pOM3J0YzhMb2NhdGlvbkMx
RXYKK19fWk4zcnRjMTBUaW1lTWlsbGlzRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJNdXRh
YmxlRGF0YVVFdgogX19aTjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhVkV2CiBfX1pO
NndlYnJ0YzEwSTQyMEJ1ZmZlcjEyTXV0YWJsZURhdGFZRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAppbmRleCA0Y2E2ZjQ5Nzg5M2I2YWZmNTU4YjZmZGYwNjhmMjEwN2YwZGUyMGY3Li4x
OTNiZGQ4NmU0M2Y2YTMyMzhkZDQ3ZWNjZDczYjM3ZTVlYTljY2E2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1NzaW0uZXhwCkBAIC0xMyw2ICsxMyw3IEBAIF9fWk4zcnRjNlRocmVhZDdTZXROYW1l
RVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9j
CiBfX1pOM3J0YzZUaHJlYWQ3U2xlZXBNc0VpCiBfX1pOM3J0YzhMb2NhdGlvbkMxRVBLY1MyXwog
X19aTjNydGM4TG9jYXRpb25DMUV2CitfX1pOM3J0YzEwVGltZU1pbGxpc0V2CiBfX1pONndlYnJ0
YzEwSTQyMEJ1ZmZlcjEyTXV0YWJsZURhdGFVRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJN
dXRhYmxlRGF0YVZFdgogX19aTjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhWUV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlv
bnMvbGlid2VicnRjLm1hYy5leHAKaW5kZXggNGNhNmY0OTc4OTNiNmFmZjU1OGI2ZmRmMDY4ZjIx
MDdmMGRlMjBmNy4uMTkzYmRkODZlNDNmNmEzMjM4ZGQ0N2VjY2Q3M2IzN2U1ZWE5Y2NhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5tYWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0
aW9ucy9saWJ3ZWJydGMubWFjLmV4cApAQCAtMTMsNiArMTMsNyBAQCBfX1pOM3J0YzZUaHJlYWQ3
U2V0TmFtZUVSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMx
XzlhbGxvYwogX19aTjNydGM2VGhyZWFkN1NsZWVwTXNFaQogX19aTjNydGM4TG9jYXRpb25DMUVQ
S2NTMl8KIF9fWk4zcnRjOExvY2F0aW9uQzFFdgorX19aTjNydGMxMFRpbWVNaWxsaXNFdgogX19a
TjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhVUV2CiBfX1pONndlYnJ0YzEwSTQyMEJ1
ZmZlcjEyTXV0YWJsZURhdGFWRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJNdXRhYmxlRGF0
YVlFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggMWFjMDk1ODkzZTg4ZDI4NDkyYTAyM2UwMjg4
NDJjYzI0NDdjYTg3Ni4uOGIyMTUyMmRjYTM3YzVjOTRmZDJkY2I1YmI4N2U4NjM0ZDMxOWM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xNzIsNiArMTcyLDkgQEAgcHVibGljOgogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogdHJhbnNjZWl2ZXJGcm9tU2VuZGVyKGNvbnN0IFJUQ1J0cFNlbmRlciYpOwogCisgICAg
dmlydHVhbCB2b2lkIHN1c3BlbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgeyB9
CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSZWZQdHI8UlRD
SWNlQ2FuZGlkYXRlPiYmLCBTdHJpbmcmJiB1cmwpOwogICAgIHZvaWQgZG9uZUdhdGhlcmluZ0Nh
bmRpZGF0ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYzk4M2ZhM2UzYTJiMjQ2OWVlZTAwZmYz
MDdkY2QzM2MyNjY4MWY5MS4uNDY0ZDE3ZDJjZmVhNjY1ZjUyZDBhNTFlZTU1YjFlZjc4OWI3NjRh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ5NywxMCArNDk3LDEwIEBAIGNvbnN0IGNoYXIqIFJU
Q1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4g
IlJUQ1BlZXJDb25uZWN0aW9uIjsKIH0KIAotLy8gRklYTUU6IFdlIHNob3VsZCBkbyBiZXR0ZXIg
aGVyZSwgaXQgaXMgd2F5IHRvbyBlYXN5IHRvIHByZXZlbnQgUGFnZUNhY2hlLgogYm9vbCBSVENQ
ZWVyQ29ubmVjdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuICFoYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICAvLyBGSVhNRTogRXZhbHVh
dGUgd2hldGhlciB0byBleHRlbmQgdGhpcyB0byBjb25uZWN0ZWQgY2FzZXMgYXMgd2VsbC4KKyAg
ICByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGUgIT0gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpD
b21wbGV0ZWQgJiYgbV9pY2VDb25uZWN0aW9uU3RhdGUgIT0gUlRDSWNlQ29ubmVjdGlvblN0YXRl
OjpDb25uZWN0ZWQ7CiB9CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCkBAIC01MDksNiArNTA5LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9zaG91bGREZWxheVRhc2tzID0gdHJ1ZTsKKyAgICBtX2JhY2tlbmQtPnN1
c3BlbmQoKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVzdW1lKCkKQEAgLTUxNyw2
ICs1MTgsOCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpyZXN1bWUoKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFza3MgPSBmYWxzZTsKKyAgICBtX2JhY2tlbmQtPnJl
c3VtZSgpOworCiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRvJikgewogICAgICAgICBpZiAobV9p
c1N0b3BwZWQgfHwgbV9zaG91bGREZWxheVRhc2tzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCA5MDBmNDliNGYx
NGQ2Y2QzYjk2OTY0NTMzZDg5ZjUyOWIzMDA2YWFmLi5lOGQwNmUxOWVkMzQ2YTJhMTUwYTZhNTBm
YTVhZGViZDk4YmQ4NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmNwcApAQCAtOTgsNiArOTgsMTggQEAgYm9vbCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpz
ZXRDb25maWd1cmF0aW9uKExpYldlYlJUQ1Byb3ZpZGVyJiBjbGllbnQsIHdlYnJ0YzoKICAgICBy
ZXR1cm4gbV9iYWNrZW5kLT5TZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwogfQogCit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN1c3BlbmQoKQoreworICAgIGlm
IChtX3J0Y1NvY2tldEZhY3RvcnkpCisgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+c3VzcGVu
ZCgpOworfQorCit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnJlc3VtZSgpCit7CisgICAg
aWYgKG1fcnRjU29ja2V0RmFjdG9yeSkKKyAgICAgICAgbV9ydGNTb2NrZXRGYWN0b3J5LT5yZXN1
bWUoKTsKK30KKwogc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBzZXNzaW9uRGVzY3JpcHRpb25U
eXBlKFJUQ1NkcFR5cGUgc2RwVHlwZSkKIHsKICAgICBzd2l0Y2ggKHNkcFR5cGUpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAppbmRleCBjYTlkZjg2ZDc4YzcyZWVh
MjJhMDI5ZTljMzlmYjExYTMwZTIwODkzLi44MjhlOGVhOTE4YWVkOGJmYTBmZDc5NWY0NTBhYTVj
NjA0YjFhYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCkBA
IC0xMTMsNiArMTEzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VuZGVyU291cmNlRnJvbVRy
YWNrKExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQmLCBNZWRpYVN0cmVhbVRyYWNrJik7CiAgICAg
dm9pZCBjb2xsZWN0VHJhbnNjZWl2ZXJzKCk7CiAKKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2
b2lkIHJlc3VtZSgpOworCiBwcml2YXRlOgogICAgIExpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRDUHJvdmlkZXImKTsKIApAQCAt
MTk4LDcgKzIwMSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29j
a2V0RmFjdG9yeTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3Bl
bmRhYmxlU29ja2V0RmFjdG9yeT4gbV9ydGNTb2NrZXRGYWN0b3J5OwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGludDY0X3QgbV9zdGF0c0ZpcnN0RGVsaXZlcmVkVGltZXN0YW1wIHsg
MCB9OwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZmM5MWNjZDBi
YmQxZmRiYmE3NjQyZTcwNGYzN2ZlODVjYzcyZmQ1YS4uZmU3MGExMzQ1ZTZhNzlmMDMxMmRlYTI3
ODRkNTQ3Y2JiZWViZDgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC05MCw2ICs5MCwxNiBAQCBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVy
Q29ubmVjdGlvbgogCiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6On5MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpzdXNwZW5kKCkKK3sKKyAgICBtX2VuZHBvaW50LT5zdXNwZW5kKCk7
Cit9CisKK3ZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZXN1bWUoKQorewor
ICAgIG1fZW5kcG9pbnQtPnJlc3VtZSgpOworfQorCiBzdGF0aWMgaW5saW5lIHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U6OkJ1bmRsZVBvbGljeSBidW5kbGVQb2xpY3lmcm9tQ29uZmln
dXJhdGlvbihjb25zdCBNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikK
IHsKICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGMxNDdi
NDc5M2ZmNmEwYjRkODAzYTBkNTNhMjgzNzU5NmZlM2ZlMTIuLjU5MzNjOGE3ZWRhMDUyZGJmYjFl
ZDkzMDliY2Q2MjUxMjU4MTZiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xMjQsNiArMTI0LDkgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+
JiYpOwogCisgICAgdm9pZCBzdXNwZW5kKCkgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5h
bDsKKwogICAgIFJlZjxMaWJXZWJSVENNZWRpYUVuZHBvaW50PiBtX2VuZHBvaW50OwogICAgIGJv
b2wgbV9pc0xvY2FsRGVzY3JpcHRpb25TZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlbW90
ZURlc2NyaXB0aW9uU2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKaW5kZXggYTE0NGY2NzlkMDE2MGQwYjdiYmQxODI5NTA4ZjgzNWJjMjU4Nzg1Yi4uN2U5OWE3
Yzk4MWI3M2UwNGIwZWQ5ZGZiOTU1N2RjMzEzOTE0YjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKQEAgLTExOSw3ICsxMTksMTMgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
RW5hYmxlV2ViUlRDRW5jcnlwdGlvbihib29sKTsKICAgICB2b2lkIHNldFVzZURUTFMxMChib29s
KTsKIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9y
eT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJu
IG51bGxwdHI7IH0KKyAgICBjbGFzcyBTdXNwZW5kYWJsZVNvY2tldEZhY3RvcnkgOiBwdWJsaWMg
cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwg
flN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHN1c3BlbmQoKSB7IH07CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSB7IH07Cisg
ICAgfTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rv
cnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovKSB7IHJldHVy
biBudWxscHRyOyB9CiAKIHByb3RlY3RlZDoKICAgICBMaWJXZWJSVENQcm92aWRlcigpID0gZGVm
YXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGNjMDk2MWExMmI4MTYyODNjNzYy
NzNiYjdjMDUzMDJlOTBjOTQzYjYuLjEzZGQ0ZjAyZThlM2FkMmU5NmIyNTc2ODU1ZmM2MmY4MTM3
MDkzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtNjUsNDIgKzY1LDY4IEBAIHZv
aWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUodWludDY0X3QgZG9jdW1lbnRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2Vi
UlRDTmV0d29yaygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUoZG9jdW1lbnRJZGVu
dGlmaWVyLCBpcEFkZHJlc3MsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotY2xhc3MgUlRDU29j
a2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkgeworY2xh
c3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBMaWJXZWJSVENQcm92aWRlcjo6U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkK
LSAgICAgICAgOiBtX3VzZXJBZ2VudChXVEZNb3ZlKHVzZXJBZ2VudCkpCi0gICAgewotICAgIH0K
KyAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCk7CiAKIHBy
aXZhdGU6Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkgZmluYWwKLSAgICB7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlVWRw
U29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOwotICAgIH0KKyAgICAvLyBTdXNwZW5k
YWJsZVNvY2tldEZhY3RvcnkKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVVZHBT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCkgZmluYWw7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2Vy
dmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKSBmaW5hbDsKKyAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywg
Y29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKSBm
aW5hbDsKKyAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIENyZWF0ZUFzeW5jUmVzb2x2
ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgp
IGZpbmFsOwogCi0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2VydmVyVGNwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpIGZpbmFsCi0gICAgewotICAgICAgICByZXR1
cm4gZmFjdG9yeSgpLmNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQ
b3J0LCBvcHRpb25zKTsKLSAgICB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX3VzZXJBZ2VudDsK
K307CiAKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQo
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6
OnN0cmluZyYsIGludCBvcHRpb25zKSBmaW5hbAotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhY3Rv
cnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBT
dHJpbmcgeyBtX3VzZXJBZ2VudCB9LCBvcHRpb25zKTsKLSAgICB9CitSVENTb2NrZXRGYWN0b3J5
OjpSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKKyAgICA6IG1fdXNlckFnZW50
KFdURk1vdmUodXNlckFnZW50KSkKK3sKK30KIAotICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVy
ZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsCi0gICAgewotICAgICAgICByZXR1cm4g
ZmFjdG9yeSgpLmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKLSAgICB9CitydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQor
eworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCku
c29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlzLCBhZGRyZXNzLCBtaW5Qb3J0LCBt
YXhQb3J0KTsKK30KIAotICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnkoKSB7IHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFj
dG9yeSgpOyB9CitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVh
dGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKK3sKKyAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3Rv
cnkoKS5jcmVhdGVTZXJ2ZXJUY3BTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9y
dCwgb3B0aW9ucyk7Cit9CiAKLXByaXZhdGU6Ci0gICAgU3RyaW5nIG1fdXNlckFnZW50OwotfTsK
K3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYsIGNv
bnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpCit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQ2xp
ZW50VGNwU29ja2V0KHRoaXMsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsg
bV91c2VyQWdlbnQgfSwgb3B0aW9ucyk7Cit9CisKK3J0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFj
ZSogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQXN5bmNSZXNvbHZlcigpCit7CisgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5
KCkuY3JlYXRlQXN5bmNSZXNvbHZlcigpOworfQorCit2b2lkIFJUQ1NvY2tldEZhY3Rvcnk6OnN1
c3BlbmQoKQoreworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENO
ZXR3b3JrVGhyZWFkKFtzb2NrZXRHcm91cCA9IHRoaXNdIHsKKyAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5mb3JTb2NrZXRJ
bkdyb3VwKHNvY2tldEdyb3VwLCBbXShhdXRvJiBzb2NrZXQpIHsKKyAgICAgICAgICAgIHNvY2tl
dC5zdXNwZW5kKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFJUQ1NvY2tldEZh
Y3Rvcnk6OnJlc3VtZSgpCit7CisgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ05ldHdvcmtUaHJlYWQoW3NvY2tldEdyb3VwID0gdGhpc10geworICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmZv
clNvY2tldEluR3JvdXAoc29ja2V0R3JvdXAsIFtdKGF1dG8mIHNvY2tldCkgeworICAgICAgICAg
ICAgc29ja2V0LnJlc3VtZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KIAotc3RkOjp1bmlx
dWVfcHRyPHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQorc3RkOjp1bmlxdWVfcHRyPExpYldl
YlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKIHsKICAgICByZXR1cm4g
bWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaAppbmRleCAxMDM3ZTY1MWQ3M2EzZjk5NzZjYjQ4YjFiM2EzYjdjYTdl
ZTRjNjA0Li4wMjQ4ZWVkOTMzMDA0YjQxYjMwMjAyNDkyNTY0N2EzZWU0MDEwZDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRD
UHJvdmlkZXIoKSB7IG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSBmYWxzZTsg
fQogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovKSBmaW5hbDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2Nr
ZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CiAKICAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNv
bm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJh
dGlvbiYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAppbmRleCBjY2Y5NTBiNjBlYWUz
MjUxZGI0MThmMzZlZTc5OTQ2YTY2NTlmM2U5Li41NmYyOGM1OGJiMzgyZDY4ZThkYWMzMDU4ZjY1
ZTU5YzViNWU5NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcApAQCAtNDAsMTkgKzQwLDIxIEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tl
dChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBUeXBlIHR5cGUsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MpCitMaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJXZWJSVENT
b2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgVHlwZSB0eXBl
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogICAgIDogbV9mYWN0b3J5KGZhY3RvcnkpCiAgICAg
LCBtX2lkZW50aWZpZXIoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJh
dGUoKSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRy
ZXNzKQogICAgICwgbV9yZW1vdGVBZGRyZXNzKHJlbW90ZUFkZHJlc3MpCisgICAgLCBtX3NvY2tl
dEdyb3VwKHNvY2tldEdyb3VwKQogeworICAgIG1fZmFjdG9yeS5hZGRTb2NrZXQoKnRoaXMpOwog
fQogCiBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogewogICAgIENsb3NlKCk7
Ci0gICAgbV9mYWN0b3J5LmRldGFjaCgqdGhpcyk7CisgICAgbV9mYWN0b3J5LnJlbW92ZVNvY2tl
dCgqdGhpcyk7CiB9CiAKIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzZW5kT25NYWluVGhyZWFkKEZ1
bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJhY2spCkBAIC04MSwxMiArODMs
MTggQEAgdm9pZCBMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJlc3NSZWFkeShjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MpCiAKIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxS
ZWFkUGFja2V0KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBydGM6OlNvY2tl
dEFkZHJlc3MmJiBhZGRyZXNzLCBpbnQ2NF90IHRpbWVzdGFtcCkKIHsKKyAgICBpZiAobV9pc1N1
c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9yZW1vdGVBZGRyZXNzID0gV1RGTW92
ZShhZGRyZXNzKTsKICAgICBTaWduYWxSZWFkUGFja2V0KHRoaXMsIGJ1ZmZlci5kYXRhKCksIGJ1
ZmZlci5zaXplKCksIG1fcmVtb3RlQWRkcmVzcywgdGltZXN0YW1wKTsKIH0KIAogdm9pZCBMaWJX
ZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNrZXQoaW50IHJ0Y1BhY2tldElELCBpbnQ2NF90IHNl
bmRUaW1lTXMpCiB7CisgICAgaWYgKCFtX2JlaW5nU2VudFBhY2tldFNpemVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgbV9hdmFpbGFibGVTZW5kaW5nQnl0ZXMgKz0gbV9iZWlu
Z1NlbnRQYWNrZXRTaXplcy50YWtlRmlyc3QoKTsKICAgICBTaWduYWxTZW50UGFja2V0KHRoaXMs
IHJ0Yzo6U2VudFBhY2tldChydGNQYWNrZXRJRCwgc2VuZFRpbWVNcykpOwogICAgIGlmIChtX3No
b3VsZFNpZ25hbFJlYWR5VG9TZW5kKSB7CkBAIC0xMzAsMTAgKzEzOCwxMyBAQCBpbnQgTGliV2Vi
UlRDU29ja2V0OjpTZW5kVG8oY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBjb25zdCBy
dGM6OlNvY2tldEFkZAogICAgIGlmICghd2lsbFNlbmQoc2l6ZSkpCiAgICAgICAgIHJldHVybiAt
MTsKIAorICAgIGlmIChtX2lzU3VzcGVuZGVkKQorICAgICAgICByZXR1cm4gc2l6ZTsKKwogICAg
IGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHZhbHVlKSwgc2l6ZSk7CiAgICAgYXV0byBpZGVudGlmaWVyID0gdGhp
cy0+aWRlbnRpZmllcigpOwogCi0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgYnVm
ZmVyID0gV1RGTW92ZShidWZmZXIpLCBhZGRyZXNzLCBvcHRpb25zXShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24pIHsKKyAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBidWZmZXIg
PSBXVEZNb3ZlKGJ1ZmZlciksIGFkZHJlc3MsIG9wdGlvbnNdKGF1dG8mIGNvbm5lY3Rpb24pIHsK
ICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNpemUoKSk7CiAgICAgICAgIGNvbm5l
Y3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tldDo6U2VuZFRvIHsgZGF0YSwgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyB7IGFkZHJlc3MgfSwgUlRDUGFja2V0T3B0aW9ucyB7IG9w
dGlvbnMgfSB9LCBpZGVudGlmaWVyKTsKICAgICB9KTsKQEAgLTE0Niw4ICsxNTcsOCBAQCBpbnQg
TGliV2ViUlRDU29ja2V0OjpDbG9zZSgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9zdGF0
ZSA9IFNUQVRFX0NMT1NFRDsKLSAgICBhdXRvIGlkZW50aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVy
KCk7Ci0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllcl0oSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKSB7CisKKyAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gaWRlbnRp
ZmllcigpXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNz
YWdlczo6TmV0d29ya1JUQ1NvY2tldDo6Q2xvc2UoKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CiAg
ICAgcmV0dXJuIDA7CkBAIC0xNjksMTMgKzE4MCw0MCBAQCBpbnQgTGliV2ViUlRDU29ja2V0OjpT
ZXRPcHRpb24ocnRjOjpTb2NrZXQ6Ok9wdGlvbiBvcHRpb24sIGludCB2YWx1ZSkKIAogICAgIG1f
b3B0aW9uc1tvcHRpb25dID0gdmFsdWU7CiAKLSAgICBhdXRvIGlkZW50aWZpZXIgPSB0aGlzLT5p
ZGVudGlmaWVyKCk7Ci0gICAgc2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgb3B0aW9uLCB2
YWx1ZV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgc2VuZE9uTWFpblRocmVh
ZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKSwgb3B0aW9uLCB2YWx1ZV0oYXV0byYgY29ubmVj
dGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENTb2Nr
ZXQ6OlNldE9wdGlvbihvcHRpb24sIHZhbHVlKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CiAgICAg
cmV0dXJuIDA7CiB9CiAKK3ZvaWQgTGliV2ViUlRDU29ja2V0OjpyZXN1bWUoKQoreworICAgIG1f
aXNTdXNwZW5kZWQgPSBmYWxzZTsKKworICAgIC8vIE9uIHJlc3VtZSwgd2Ugbm90aWZ5IGxpYndl
YnJ0YyB0aGF0IFRDUCBzb2NrZXRzIGFyZSBlcnJvcmVkLgorICAgIC8vIFdlIG5vdGlmeSBsaWJ3
ZWJydGMgdGhhdCBhbGwgcGVuZGluZyBVRFAgcGFja2V0cyBoYXZlIGJlZW4gc2VudCBldmVuIHRo
b3VnaCB3ZSBhY3R1YWxseSBkcm9wcGVkIHRoZW0uCisgICAgaWYgKG1fdHlwZSAhPSBUeXBlOjpV
RFApIHsKKyAgICAgICAgc2lnbmFsQ2xvc2UoLTEpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjdXJyZW50VGltZSA9IHJ0Yzo6VGltZU1pbGxpcygpOworICAgIHdoaWxlICgh
bV9iZWluZ1NlbnRQYWNrZXRTaXplcy5pc0VtcHR5KCkpCisgICAgICAgIHNpZ25hbFNlbnRQYWNr
ZXQoLTEsIGN1cnJlbnRUaW1lKTsKK30KKwordm9pZCBMaWJXZWJSVENTb2NrZXQ6OnN1c3BlbmQo
KQoreworICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOworCisgICAgLy8gT24gc3VzcGVuZCwgd2Ug
Y2xvc2UgVENQIHNvY2tldHMgYXMgd2UgY2Fubm90IG1ha2Ugc3VyZSBwYWNrZXRzIGFyZSBkZWxp
dmVyZWQgcmVsaWFibHkuCisgICAgaWYgKG1fdHlwZSAhPSBUeXBlOjpVRFApIHsKKyAgICAgICAg
c2VuZE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IGlkZW50aWZpZXIoKV0oYXV0byYgY29ubmVj
dGlvbikgeworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRD
U29ja2V0OjpDbG9zZSB7IH0sIGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICB9Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXQuaAppbmRleCA2NDRlZTVhMGJiMWYzZjk4YWY2OWVjZDQwY2VlZTliOWMyMDJiOTA4
Li4wOGNkOWNmZTgwODMwMzZlNjdkNDU0MDM3YmI0ZTRjYzdhNzIyZjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldC5oCkBAIC01Miw5ICs1MiwxMCBAQCBjbGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwgOiBw
dWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBU
eXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9Owog
Ci0gICAgTGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBUeXBlLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiByZW1vdGVBZGRyZXNzKTsKKyAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0
RmFjdG9yeSYsIGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBUeXBlLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzKTsKICAgICB+TGliV2ViUlRDU29ja2V0KCk7CiAKKyAgICBjb25zdCB2b2lkKiBzb2Nr
ZXRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fc29ja2V0R3JvdXA7IH0KICAgICBXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KICAgICBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcygp
IGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOyB9CiAgICAgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiByZW1vdGVBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVBZGRyZXNzOyB9
CkBAIC02Miw2ICs2Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVycm9yKGludCBlcnJvcikg
eyBtX2Vycm9yID0gZXJyb3I7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0YXRlIHN0YXRlKSB7IG1f
c3RhdGUgPSBzdGF0ZTsgfQogCisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUo
KTsKKwogcHJpdmF0ZToKICAgICBib29sIHdpbGxTZW5kKHNpemVfdCk7CiAKQEAgLTEwMiw2ICsx
MDYsOCBAQCBwcml2YXRlOgogICAgIERlcXVlPHNpemVfdD4gbV9iZWluZ1NlbnRQYWNrZXRTaXpl
czsKICAgICBzaXplX3QgbV9hdmFpbGFibGVTZW5kaW5nQnl0ZXMgeyA2NTUzNiB9OwogICAgIGJv
b2wgbV9zaG91bGRTaWduYWxSZWFkeVRvU2VuZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKKyAgICBjb25zdCB2b2lkKiBtX3NvY2tldEdyb3VwIHsgbnVsbHB0
ciB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0
RmFjdG9yeS5jcHAKaW5kZXggZTNmOTA4MGQyYWY5YTc2MTIxMjQ1YTVjMDUyZWMwZWE3MmEzZmY0
MS4uZjViODBjMDMxZmM4NzE2YTMwNWE2ZDgwODhmNDYzY2UwMjY1OTAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtNDgsMTAgKzQ4LDkgQEAgc3RhdGljIGlubGlu
ZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3Vw
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVu
aXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZl
clRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwotICAgIG1fc29ja2V0cy5zZXQo
c29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisgICAgYXV0byBzb2NrZXQgPSBt
YWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3VwLCBMaWJXZWJSVENT
b2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwog
CiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigp
LCBhZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKICAgICAg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpD
cmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyhhZGRyZXNzKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyksIDApKSB7CkBAIC02MCwxNCAr
NTksMTIgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6
Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0YzoKICAgICAgICAgfQogCiAgICAgfSk7Ci0K
ICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkK
K3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVk
cFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewotICAgIGF1
dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENT
b2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwotICAgIG1f
c29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisgICAgYXV0
byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdyb3Vw
LCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNz
KCkpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRp
ZmllcigpLCBhZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKICAgICAgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVh
dGVVRFBTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhhZGRyZXNz
KSwgbWluUG9ydCwgbWF4UG9ydCksIDApKSB7CkBAIC03OCwxMSArNzUsMTAgQEAgcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNv
bnN0IHJ0Yzo6U29ja2UKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpB
c3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9w
dGlvbnMpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpj
cmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0
byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MpOworICAg
IGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBzb2NrZXRH
cm91cCwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVt
b3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRF
X0NPTk5FQ1RJTkcpOwotICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNv
Y2tldC5nZXQoKSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0
LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2Fs
QWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNz
ID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMpLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnNdKCkgewogICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVy
LCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHVzZXJBZ2VudCwgb3B0aW9ucyksIDApKSB7CkBA
IC05MCwxNSArODYsMTMgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0YzoKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0pOwotCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7
CiB9CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKLSAgICBhdXRvIHNvY2tl
dCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpU
eXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJl
bW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2Nr
ZXQ+KCp0aGlzLCBzZXJ2ZXJTb2NrZXQuc29ja2V0R3JvdXAoKSwgTGliV2ViUlRDU29ja2V0OjpU
eXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJl
bW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpTVEFU
RV9DT05ORUNURUQpOwotICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNv
Y2tldC5nZXQoKSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0
LT5pZGVudGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyXSgpIHsKICAgICAg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpX
cmFwTmV3VENQQ29ubmVjdGlvbihpZGVudGlmaWVyLCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRp
ZmllciksIDApKSB7CkBAIC0xMDksMTIgKzEwMywyNiBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldl
YgogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmRldGFjaChMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkKK3ZvaWQgTGliV2ViUlRD
U29ja2V0RmFjdG9yeTo6YWRkU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc29ja2V0KQoreworICAg
IEFTU0VSVCghbV9zb2NrZXRzLmNvbnRhaW5zKHNvY2tldC5pZGVudGlmaWVyKCkpKTsKKyAgICBt
X3NvY2tldHMuYWRkKHNvY2tldC5pZGVudGlmaWVyKCksICZzb2NrZXQpOworfQorCit2b2lkIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OnJlbW92ZVNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNvY2tl
dCkKIHsKICAgICBBU1NFUlQobV9zb2NrZXRzLmNvbnRhaW5zKHNvY2tldC5pZGVudGlmaWVyKCkp
KTsKICAgICBtX3NvY2tldHMucmVtb3ZlKHNvY2tldC5pZGVudGlmaWVyKCkpOwogfQogCit2b2lk
IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmZvclNvY2tldEluR3JvdXAoY29uc3Qgdm9pZCogc29j
a2V0R3JvdXAsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiBjYWxsYmFj
aykKK3sKKyAgICBmb3IgKGF1dG8qIHNvY2tldCA6IG1fc29ja2V0cy52YWx1ZXMoKSkgeworICAg
ICAgICBpZiAoc29ja2V0LT5zb2NrZXRHcm91cCgpID09IHNvY2tldEdyb3VwKQorICAgICAgICAg
ICAgY2FsbGJhY2soKnNvY2tldCk7CisgICAgfQorfQorCiBydGM6OkFzeW5jUmVzb2x2ZXJJbnRl
cmZhY2UqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKQogewog
ICAgIGF1dG8gcmVzb2x2ZXIgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1Jlc29sdmVyPigrK3NfdW5p
cXVlUmVzb2x2ZXJJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCmlu
ZGV4IGE5NDViMTBkYWFkYWFmNmI0NWQ0ZDg1NmM4NmI2N2IxNDJiNzczZDUuLmFhOGIxNGViNTI4
NjVkN2E1ZDkyMzViNjVkMjhmMTI0YzcyNmQ2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaApAQCAtMzcsMTYgKzM3LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFz
cyBMaWJXZWJSVENTb2NrZXQ7CisKIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgewogcHVi
bGljOgogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkoKSB7IH0KIAotICAgIHZvaWQgZGV0YWNo
KExpYldlYlJUQ1NvY2tldCYpOworICAgIHZvaWQgYWRkU29ja2V0KExpYldlYlJUQ1NvY2tldCYp
OworICAgIHZvaWQgcmVtb3ZlU29ja2V0KExpYldlYlJUQ1NvY2tldCYpOwogICAgIExpYldlYlJU
Q1NvY2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKTsgfQogCi0gICAgcnRjOjpB
c3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOwotICAgIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucyk7Ci0g
ICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpOworICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRH
cm91cCwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCk7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlU2VydmVyVGNw
U29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucyk7CisgICAg
cnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHZvaWQq
IHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQs
IGludCBvcHRpb25zKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25u
ZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYpOwogCiAgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90IGlk
ZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQpAQCAtNTUs
NiArNTgsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQog
CisgICAgdm9pZCBmb3JTb2NrZXRJbkdyb3VwKGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25z
dCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYpOworCiBwcml2YXRlOgogICAgIC8v
IFdlIGNhbm5vdCBvd24gc29ja2V0cywgY2xpZW50cyBvZiB0aGUgZmFjdG9yeSBhcmUgcmVzcG9u
c2libGUgdG8gZnJlZSB0aGVtLgogICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0Kj4gbV9zb2NrZXRzOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY3NTQ5YmIy
NThiODU1MDA0NTY0NTU2YjZjN2M5NGNmYjVkMzRjZjQuLjI3OTVjNGM2NTk3MjVkNzhkNGY4NzVk
ZDEwZWIwNjgwM2EzNjU3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMC0wMyAgeW91
ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gc3VzcGVu
ZCBSVENQZWVyQ29ubmVjdGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2VicnRjL2RhdGFjaGFubmVsL2RhdGFj
aGFubmVsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMv
ZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUt
c2VuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5u
ZWwtcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOS0zMCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSlMgRm9ybWF0dGVy
OiB1bmV4cGVjdGVkIG5ld2xpbmVzIGFkZGVkIGluc2lkZSB0ZW1wbGF0ZSBzdHJpbmcgZXhwcmVz
c2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFu
bmVsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFu
bmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMmFi
MTdiMGFjOThlMDgxOTQ0NjA1OWI1NTA1MTJmMmExNTExNTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgZGF0YWNoYW5uZWwtcGFnZS1jYWNoZSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVs
LXBhZ2UtY2FjaGUtc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNo
YW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNzU1M2Y0NTFlOTFhYmI4NzY5MDQxYmFkMzA5NWE2NzIyNmMwNDk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2Fj
aGUtc2VuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgZGF0YWNoYW5uZWwt
cGFnZS1jYWNoZS1zZW5kIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNo
YW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJy
dGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWY4NGEyMzlkOTFjM2RiNTcxMzhiNmNhNzMyM2E5YjZmNWUzZGRkNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNh
Y2hlLXNlbmQuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK3QgPSBhc3luY190ZXN0KCk7CisKK2NvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisKK3BjMS5vbmljZWNhbmRpZGF0ZSA9IChlKSA9PiBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2Fu
ZGlkYXRlKTsKK3BjMi5vbmljZWNhbmRpZGF0ZSA9IChlKSA9PiBwYzEuYWRkSWNlQ2FuZGlkYXRl
KGUuY2FuZGlkYXRlKTsKK3BjMi5vbmRhdGFjaGFubmVsID0gKGUpID0+ICB7IGUuY2hhbm5lbC5v
bm1lc3NhZ2UgPSB0LmRvbmUoKTsgfTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2Vz
aG93IiwgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFu
c3dlcigpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAg
YXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Cit9KTsKKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7CisgICAg
aWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIGFzc2VydF91bmVhY2hlZCgiUGFnZSBmYWls
ZWQgdG8gZW50ZXIgcGFnZSBjYWNoZSIpOworfSkpOworCitvbmxvYWQgPSAoKSA9PiB7CisgICAg
c2V0VGltZW91dChhc3luYyAoKSA9PiB7CisgICAgICAgIGxvY2FsQ2hhbm5lbCA9IHBjMS5jcmVh
dGVEYXRhQ2hhbm5lbCgidGVzdCIpOworICAgICAgICBsb2NhbENoYW5uZWwub25vcGVuID0gKCkg
PT4gbG9jYWxDaGFubmVsLnNlbmQoIm9rIik7CisKKyAgICAgICAgY29uc3Qgb2ZmZXIgPSBhd2Fp
dCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24ob2ZmZXIpOworICAgICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
OworICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiLi4vLi4vZmFzdC9oaXN0b3J5L3Jlc291cmNl
cy9wYWdlLWNhY2hlLWhlbHBlci5odG1sIjsKKyAgICB9LCAwKTsKK307Cis8L3NjcmlwdD4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hh
bm5lbC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0
YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MGJiOWZkZjcxMThhMjdlNjRl
Y2VjOWVlOGRlYTg2ZThjOTU2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJy
dGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsMzAg
QEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordCA9IGFzeW5j
X3Rlc3QoKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICB0LmRvbmUoKTsKK30p
OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCB0LnN0ZXBfZnVuYygoZXZl
bnQpID0+IHsKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgYXNzZXJ0X3VuZWFj
aGVkKCJQYWdlIGZhaWxlZCB0byBlbnRlciBwYWdlIGNhY2hlIik7Cit9KSk7CisKK29ubG9hZCA9
ICgpID0+IHsKKyAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgY29uc3QgY2hhbm5lbCA9IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCJ0ZXN0Iik7CisgICAgICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMu
Y3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZl
cik7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi8uLi9mYXN0L2hpc3RvcnkvcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgIH0sIDApOworfTsKKzwvc2NyaXB0Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380104</attachid>
            <date>2019-10-03 06:08:46 -0700</date>
            <delta_ts>2019-10-04 09:30:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202403-20191003150845.patch</filename>
            <type>text/plain</type>
            <size>39679</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBmMmY3MWZjMWQzMjI0MGRkZjBmMDFmYmEyOTllYTc2OWQyOWEyNTQ2Li5lYWYw
MTI1MDhkYjJlNGI3N2UwODcwMjY0NDI1NDBjY2NjOWU3MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wMyAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gc3VzcGVuZCBSVENQ
ZWVyQ29ubmVjdGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCBydGM6OlRpbWVNaWxsaXMoKQorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLm1hYy5leHA6CisKIDIwMTktMDktMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgRFRMUzEuMApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMxNzhh
MzgzOTJjMzYwZWEzZmRiNjU4YzcxNTZmZWY1MWEwMmUyM2EuLmExMmMzOTNiMzhiZThiMWZjNzhl
MDllYzY1NGZjYWI2OTZkZGNmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxOS0x
MC0wMyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
dG8gc3VzcGVuZCBSVENQZWVyQ29ubmVjdGlvbiB3aGVuIG5vdCBjb25uZWN0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXNwZW5k
L3Jlc3VtZSBpbiBSVENQZWVyQ29ubmVjdGlvbiBieSBzZW5kaW5nIHN1c3BlbmQvcmVzdW1lIHRv
IHRoZSBsaWJ3ZWJydGMgbWVkaWEgZW5kcG9pbnQsCisgICAgICAgIHdoaWNoIHN1c3BlbmRzL3Jl
c3VtZXMgaXRzIHNvY2tldCBmYWN0b3J5LgorCisgICAgICAgIFdlIGFsbG93IHN1c3BlbnNpb24g
d2hlbiB0aGUgY29ubmVjdGlvbiBpcyBub3QgY29ubmVjdGVkLgorICAgICAgICBQYWdlcyB3aXRo
IGNvbm5lY3RlZCBjb25uZWN0aW9ucyB3aWxsIG5vdCBnbyBpbiBwYWdlIGNhY2hlIHlldC4KKwor
ICAgICAgICBUZXN0czogd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUt
c2VuZC5odG1sCisgICAgICAgICAgICAgICB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwt
cGFnZS1jYWNoZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5k
OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVz
dW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0
aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZXN1
bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2lu
dDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpy
ZXN1bWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVzdW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaDoKKwogMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXJzIGZvciB3ZWJydGMg
c29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlMzY2NjMzYjRkMjI2ZDYwYTQ2NWY0MTRhZTA5YzU0NzRhYmZm
M2YwLi4wMjRkYWYzYjJjZTk1MTJmN2ZmMjNmMWFjNzc4YmIzYmJlNTc0OTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU0IEBACisyMDE5LTEwLTAzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBbGxvdyB0byBzdXNwZW5kIFJUQ1BlZXJDb25uZWN0aW9uIHdoZW4g
bm90IGNvbm5lY3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAyNDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIG9mIHNvY2tldHMgYnkgZG9pbmcgdGhlIGZv
bGxvd2luZzoKKyAgICAgICAgLSBGb3IgVURQIHNvY2tldHMsIHdlIHNpbXVsYXRlIGFzIGlmIGJl
aW5nIHNlbnQgZGF0YSBpcyBxdWV1ZWQgd2hlbiBiZWluZyBzdXNwZW5kZWQuCisgICAgICAgIHRo
ZSB3ZWJydGMgYmFja2VuZCB3aWxsIHRoZW4gc3RvcCBzZW5kaW5nIHBhY2tldHMgdW50aWwgdGhl
IHF1ZXVlIGlzIGVtcHRpZWQuCisgICAgICAgIEF0IHJlc3VtZSB0aW1lLCB3ZSBkbyBhcyBpZiB0
aGUgcXVldWUgaXMgZW1wdGllZCBhbmQgcGFja2V0cyBzZW50IChldmVuIHRob3VnaCBwYWNrZXRz
IGFyZSBub3Qgc2VudCkuCisgICAgICAgIEZvciBpbmNvbWluZyB0cmFmZmljLCB3ZSBpZ25vcmUg
aXQgd2hlbiBiZWluZyBzdXNwZW5kZWQuCisgICAgICAgIC0gRm9yIFRDUCBzb2NrZXRzLCB3ZSBj
bG9zZSB0aGVtIGF0IHN1c3BlbmQgdGltZS4gV2UgdGhlbiBub3RpZnkgYXQgcmVzdW1lIHRpbWUg
dGhhdCBhbiBlcnJvciBoYXBwZW5lZGVkCisgICAgICAgIGZvciB0aGVzZSBzb2NrZXRzIHRvIHRo
ZSB3ZWJydGMgYmFja2VuZC4gV2UgY2Fubm90IHNpbXVsYXRlIHBhY2tldCBkcm9wcGluZyBsaWtl
IGluIHRoZSBVRFAgY2FzZS4KKworICAgICAgICBUbyBtYW5hZ2UgcmVzdW1lL3N1c3BlbmQsIGVh
Y2ggc29ja2V0IG5vdyBoYXMgYSBpc1N1c3BlbmRlZCBzdGF0ZSBhbmQgYSBzb2NrZXQgZ3JvdXAu
CisgICAgICAgIFRoZSBzb2NrZXQgZ3JvdXAgaXMgcGVyIHBlZXIgY29ubmVjdGlvbi4KKyAgICAg
ICAgQSBwZWVyIGNvbm5lY3Rpb24gd2lsbCBub3RpZnkgdGhlIGZhY3RvcnkgdGhhdCBpdCBpcyBz
dXNwZW5kZWQvcmVzdW1lZC4KKyAgICAgICAgVGhlIGZhY3Rvcnkgd2lsbCBpdGVyYXRlIHRocm91
Z2ggYWxsIHNvY2tldHMgYW5kIHdpbGwgc3VzcGVuZC9yZXN1bWUgZWFjaCBzb2NrZXQgb2YgdGhl
IHNvY2tldCBncm91cC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpS
VENTb2NrZXRGYWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3Jl
YXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
U2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6Q3Jl
YXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6UlRDU29ja2V0RmFjdG9yeTo6
Q3JlYXRlQXN5bmNSZXNvbHZlcik6CisgICAgICAgIChXZWJLaXQ6OlJUQ1NvY2tldEZhY3Rvcnk6
OnN1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpSVENTb2NrZXRGYWN0b3J5OjpyZXN1bWUpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpMaWJXZWJSVENTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbFJlYWRQYWNrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNrZXQpOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OlNlbmRUbyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ1NvY2tldDo6Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OlNl
dE9wdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldDo6cmVzdW1lKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVu
dFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjphZGRTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpyZW1vdmVTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5Ojpmb3JTb2NrZXRJbkdyb3VwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKwogMjAxOS0xMC0wMSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlk
ZW50aWZpZXJzIGZvciB3ZWJydGMgc29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4
IGMwYWQxZmVjZTI5NTZmY2YyZjI2MzgzZDc5ZTE3YjU3NGM3ODlkZDIuLjQ0NGZjY2M5NmEwZmRj
MjhiM2ZmZTkxMjRlOWZmZGZmMjQ3MWJlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAg
LTEzLDYgKzEzLDcgQEAgX19aTjNydGM2VGhyZWFkN1NldE5hbWVFUktOU3QzX18xMTJiYXNpY19z
dHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2MKIF9fWk4zcnRjNlRocmVhZDdT
bGVlcE1zRWkKIF9fWk4zcnRjOExvY2F0aW9uQzFFUEtjUzJfCiBfX1pOM3J0YzhMb2NhdGlvbkMx
RXYKK19fWk4zcnRjMTBUaW1lTWlsbGlzRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJNdXRh
YmxlRGF0YVVFdgogX19aTjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhVkV2CiBfX1pO
NndlYnJ0YzEwSTQyMEJ1ZmZlcjEyTXV0YWJsZURhdGFZRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAppbmRleCA0Y2E2ZjQ5Nzg5M2I2YWZmNTU4YjZmZGYwNjhmMjEwN2YwZGUyMGY3Li4x
OTNiZGQ4NmU0M2Y2YTMyMzhkZDQ3ZWNjZDczYjM3ZTVlYTljY2E2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1NzaW0uZXhwCkBAIC0xMyw2ICsxMyw3IEBAIF9fWk4zcnRjNlRocmVhZDdTZXROYW1l
RVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9j
CiBfX1pOM3J0YzZUaHJlYWQ3U2xlZXBNc0VpCiBfX1pOM3J0YzhMb2NhdGlvbkMxRVBLY1MyXwog
X19aTjNydGM4TG9jYXRpb25DMUV2CitfX1pOM3J0YzEwVGltZU1pbGxpc0V2CiBfX1pONndlYnJ0
YzEwSTQyMEJ1ZmZlcjEyTXV0YWJsZURhdGFVRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJN
dXRhYmxlRGF0YVZFdgogX19aTjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhWUV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlv
bnMvbGlid2VicnRjLm1hYy5leHAKaW5kZXggNGNhNmY0OTc4OTNiNmFmZjU1OGI2ZmRmMDY4ZjIx
MDdmMGRlMjBmNy4uMTkzYmRkODZlNDNmNmEzMjM4ZGQ0N2VjY2Q3M2IzN2U1ZWE5Y2NhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5tYWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0
aW9ucy9saWJ3ZWJydGMubWFjLmV4cApAQCAtMTMsNiArMTMsNyBAQCBfX1pOM3J0YzZUaHJlYWQ3
U2V0TmFtZUVSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMx
XzlhbGxvYwogX19aTjNydGM2VGhyZWFkN1NsZWVwTXNFaQogX19aTjNydGM4TG9jYXRpb25DMUVQ
S2NTMl8KIF9fWk4zcnRjOExvY2F0aW9uQzFFdgorX19aTjNydGMxMFRpbWVNaWxsaXNFdgogX19a
TjZ3ZWJydGMxMEk0MjBCdWZmZXIxMk11dGFibGVEYXRhVUV2CiBfX1pONndlYnJ0YzEwSTQyMEJ1
ZmZlcjEyTXV0YWJsZURhdGFWRXYKIF9fWk42d2VicnRjMTBJNDIwQnVmZmVyMTJNdXRhYmxlRGF0
YVlFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggMWFjMDk1ODkzZTg4ZDI4NDkyYTAyM2UwMjg4
NDJjYzI0NDdjYTg3Ni4uOGIyMTUyMmRjYTM3YzVjOTRmZDJkY2I1YmI4N2U4NjM0ZDMxOWM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xNzIsNiArMTcyLDkgQEAgcHVibGljOgogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogdHJhbnNjZWl2ZXJGcm9tU2VuZGVyKGNvbnN0IFJUQ1J0cFNlbmRlciYpOwogCisgICAg
dmlydHVhbCB2b2lkIHN1c3BlbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgeyB9
CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSZWZQdHI8UlRD
SWNlQ2FuZGlkYXRlPiYmLCBTdHJpbmcmJiB1cmwpOwogICAgIHZvaWQgZG9uZUdhdGhlcmluZ0Nh
bmRpZGF0ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYzk4M2ZhM2UzYTJiMjQ2OWVlZTAwZmYz
MDdkY2QzM2MyNjY4MWY5MS4uNDY0ZDE3ZDJjZmVhNjY1ZjUyZDBhNTFlZTU1YjFlZjc4OWI3NjRh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ5NywxMCArNDk3LDEwIEBAIGNvbnN0IGNoYXIqIFJU
Q1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4g
IlJUQ1BlZXJDb25uZWN0aW9uIjsKIH0KIAotLy8gRklYTUU6IFdlIHNob3VsZCBkbyBiZXR0ZXIg
aGVyZSwgaXQgaXMgd2F5IHRvbyBlYXN5IHRvIHByZXZlbnQgUGFnZUNhY2hlLgogYm9vbCBSVENQ
ZWVyQ29ubmVjdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuICFoYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICAvLyBGSVhNRTogRXZhbHVh
dGUgd2hldGhlciB0byBleHRlbmQgdGhpcyB0byBjb25uZWN0ZWQgY2FzZXMgYXMgd2VsbC4KKyAg
ICByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGUgIT0gUlRDSWNlQ29ubmVjdGlvblN0YXRlOjpD
b21wbGV0ZWQgJiYgbV9pY2VDb25uZWN0aW9uU3RhdGUgIT0gUlRDSWNlQ29ubmVjdGlvblN0YXRl
OjpDb25uZWN0ZWQ7CiB9CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCkBAIC01MDksNiArNTA5LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9zaG91bGREZWxheVRhc2tzID0gdHJ1ZTsKKyAgICBtX2JhY2tlbmQtPnN1
c3BlbmQoKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVzdW1lKCkKQEAgLTUxNyw2
ICs1MTgsOCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpyZXN1bWUoKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFza3MgPSBmYWxzZTsKKyAgICBtX2JhY2tlbmQtPnJl
c3VtZSgpOworCiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRvJikgewogICAgICAgICBpZiAobV9p
c1N0b3BwZWQgfHwgbV9zaG91bGREZWxheVRhc2tzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCA5MDBmNDliNGYx
NGQ2Y2QzYjk2OTY0NTMzZDg5ZjUyOWIzMDA2YWFmLi5lOGQwNmUxOWVkMzQ2YTJhMTUwYTZhNTBm
YTVhZGViZDk4YmQ4NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmNwcApAQCAtOTgsNiArOTgsMTggQEAgYm9vbCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpz
ZXRDb25maWd1cmF0aW9uKExpYldlYlJUQ1Byb3ZpZGVyJiBjbGllbnQsIHdlYnJ0YzoKICAgICBy
ZXR1cm4gbV9iYWNrZW5kLT5TZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwogfQogCit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN1c3BlbmQoKQoreworICAgIGlm
IChtX3J0Y1NvY2tldEZhY3RvcnkpCisgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeS0+c3VzcGVu
ZCgpOworfQorCit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnJlc3VtZSgpCit7CisgICAg
aWYgKG1fcnRjU29ja2V0RmFjdG9yeSkKKyAgICAgICAgbV9ydGNTb2NrZXRGYWN0b3J5LT5yZXN1
bWUoKTsKK30KKwogc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBzZXNzaW9uRGVzY3JpcHRpb25U
eXBlKFJUQ1NkcFR5cGUgc2RwVHlwZSkKIHsKICAgICBzd2l0Y2ggKHNkcFR5cGUpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAppbmRleCBjYTlkZjg2ZDc4YzcyZWVh
MjJhMDI5ZTljMzlmYjExYTMwZTIwODkzLi44MjhlOGVhOTE4YWVkOGJmYTBmZDc5NWY0NTBhYTVj
NjA0YjFhYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCkBA
IC0xMTMsNiArMTEzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VuZGVyU291cmNlRnJvbVRy
YWNrKExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQmLCBNZWRpYVN0cmVhbVRyYWNrJik7CiAgICAg
dm9pZCBjb2xsZWN0VHJhbnNjZWl2ZXJzKCk7CiAKKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2
b2lkIHJlc3VtZSgpOworCiBwcml2YXRlOgogICAgIExpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRDUHJvdmlkZXImKTsKIApAQCAt
MTk4LDcgKzIwMSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29j
a2V0RmFjdG9yeTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUHJvdmlkZXI6OlN1c3Bl
bmRhYmxlU29ja2V0RmFjdG9yeT4gbV9ydGNTb2NrZXRGYWN0b3J5OwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGludDY0X3QgbV9zdGF0c0ZpcnN0RGVsaXZlcmVkVGltZXN0YW1wIHsg
MCB9OwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZmM5MWNjZDBi
YmQxZmRiYmE3NjQyZTcwNGYzN2ZlODVjYzcyZmQ1YS4uZmU3MGExMzQ1ZTZhNzlmMDMxMmRlYTI3
ODRkNTQ3Y2JiZWViZDgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC05MCw2ICs5MCwxNiBAQCBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVy
Q29ubmVjdGlvbgogCiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6On5MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpzdXNwZW5kKCkKK3sKKyAgICBtX2VuZHBvaW50LT5zdXNwZW5kKCk7
Cit9CisKK3ZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZXN1bWUoKQorewor
ICAgIG1fZW5kcG9pbnQtPnJlc3VtZSgpOworfQorCiBzdGF0aWMgaW5saW5lIHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U6OkJ1bmRsZVBvbGljeSBidW5kbGVQb2xpY3lmcm9tQ29uZmln
dXJhdGlvbihjb25zdCBNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikK
IHsKICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGMxNDdi
NDc5M2ZmNmEwYjRkODAzYTBkNTNhMjgzNzU5NmZlM2ZlMTIuLjU5MzNjOGE3ZWRhMDUyZGJmYjFl
ZDkzMDliY2Q2MjUxMjU4MTZiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xMjQsNiArMTI0LDkgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+
JiYpOwogCisgICAgdm9pZCBzdXNwZW5kKCkgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5h
bDsKKwogICAgIFJlZjxMaWJXZWJSVENNZWRpYUVuZHBvaW50PiBtX2VuZHBvaW50OwogICAgIGJv
b2wgbV9pc0xvY2FsRGVzY3JpcHRpb25TZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlbW90
ZURlc2NyaXB0aW9uU2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKaW5kZXggYTE0NGY2NzlkMDE2MGQwYjdiYmQxODI5NTA4ZjgzNWJjMjU4Nzg1Yi4uN2U5OWE3
Yzk4MWI3M2UwNGIwZWQ5ZGZiOTU1N2RjMzEzOTE0YjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKQEAgLTExOSw3ICsxMTksMTMgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
RW5hYmxlV2ViUlRDRW5jcnlwdGlvbihib29sKTsKICAgICB2b2lkIHNldFVzZURUTFMxMChib29s
KTsKIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9y
eT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJu
IG51bGxwdHI7IH0KKyAgICBjbGFzcyBTdXNwZW5kYWJsZVNvY2tldEZhY3RvcnkgOiBwdWJsaWMg
cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwg
flN1c3BlbmRhYmxlU29ja2V0RmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHN1c3BlbmQoKSB7IH07CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSB7IH07Cisg
ICAgfTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rv
cnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovKSB7IHJldHVy
biBudWxscHRyOyB9CiAKIHByb3RlY3RlZDoKICAgICBMaWJXZWJSVENQcm92aWRlcigpID0gZGVm
YXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGNjMDk2MWExMmI4MTYyODNjNzYy
NzNiYjdjMDUzMDJlOTBjOTQzYjYuLjEzZGQ0ZjAyZThlM2FkMmU5NmIyNTc2ODU1ZmM2MmY4MTM3
MDkzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtNjUsNDIgKzY1LDY4IEBAIHZv
aWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUodWludDY0X3QgZG9jdW1lbnRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2Vi
UlRDTmV0d29yaygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUoZG9jdW1lbnRJZGVu
dGlmaWVyLCBpcEFkZHJlc3MsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotY2xhc3MgUlRDU29j
a2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkgeworY2xh
c3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBMaWJXZWJSVENQcm92aWRlcjo6U3Vz
cGVuZGFibGVTb2NrZXRGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkK
LSAgICAgICAgOiBtX3VzZXJBZ2VudChXVEZNb3ZlKHVzZXJBZ2VudCkpCi0gICAgewotICAgIH0K
KyAgICBleHBsaWNpdCBSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCk7CiAKIHBy
aXZhdGU6Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkgZmluYWwKLSAgICB7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlVWRw
U29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOwotICAgIH0KKyAgICAvLyBTdXNwZW5k
YWJsZVNvY2tldEZhY3RvcnkKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVVZHBT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCkgZmluYWw7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2Vy
dmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKSBmaW5hbDsKKyAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywg
Y29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKSBm
aW5hbDsKKyAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIENyZWF0ZUFzeW5jUmVzb2x2
ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgp
IGZpbmFsOwogCi0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2VydmVyVGNwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpIGZpbmFsCi0gICAgewotICAgICAgICByZXR1
cm4gZmFjdG9yeSgpLmNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQ
b3J0LCBvcHRpb25zKTsKLSAgICB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX3VzZXJBZ2VudDsK
K307CiAKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQo
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6
OnN0cmluZyYsIGludCBvcHRpb25zKSBmaW5hbAotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhY3Rv
cnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBT
dHJpbmcgeyBtX3VzZXJBZ2VudCB9LCBvcHRpb25zKTsKLSAgICB9CitSVENTb2NrZXRGYWN0b3J5
OjpSVENTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKKyAgICA6IG1fdXNlckFnZW50
KFdURk1vdmUodXNlckFnZW50KSkKK3sKK30KIAotICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVy
ZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsCi0gICAgewotICAgICAgICByZXR1cm4g
ZmFjdG9yeSgpLmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKLSAgICB9CitydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQor
eworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCku
c29ja2V0RmFjdG9yeSgpLmNyZWF0ZVVkcFNvY2tldCh0aGlzLCBhZGRyZXNzLCBtaW5Qb3J0LCBt
YXhQb3J0KTsKK30KIAotICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnkoKSB7IHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFj
dG9yeSgpOyB9CitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBSVENTb2NrZXRGYWN0b3J5OjpDcmVh
dGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKK3sKKyAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3Rv
cnkoKS5jcmVhdGVTZXJ2ZXJUY3BTb2NrZXQodGhpcywgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9y
dCwgb3B0aW9ucyk7Cit9CiAKLXByaXZhdGU6Ci0gICAgU3RyaW5nIG1fdXNlckFnZW50OwotfTsK
K3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIFJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYsIGNv
bnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpCit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQ2xp
ZW50VGNwU29ja2V0KHRoaXMsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHsg
bV91c2VyQWdlbnQgfSwgb3B0aW9ucyk7Cit9CisKK3J0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFj
ZSogUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQXN5bmNSZXNvbHZlcigpCit7CisgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5
KCkuY3JlYXRlQXN5bmNSZXNvbHZlcigpOworfQorCit2b2lkIFJUQ1NvY2tldEZhY3Rvcnk6OnN1
c3BlbmQoKQoreworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENO
ZXR3b3JrVGhyZWFkKFtzb2NrZXRHcm91cCA9IHRoaXNdIHsKKyAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKS5mb3JTb2NrZXRJ
bkdyb3VwKHNvY2tldEdyb3VwLCBbXShhdXRvJiBzb2NrZXQpIHsKKyAgICAgICAgICAgIHNvY2tl
dC5zdXNwZW5kKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFJUQ1NvY2tldEZh
Y3Rvcnk6OnJlc3VtZSgpCit7CisgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ05ldHdvcmtUaHJlYWQoW3NvY2tldEdyb3VwID0gdGhpc10geworICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLmZv
clNvY2tldEluR3JvdXAoc29ja2V0R3JvdXAsIFtdKGF1dG8mIHNvY2tldCkgeworICAgICAgICAg
ICAgc29ja2V0LnJlc3VtZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KIAotc3RkOjp1bmlx
dWVfcHRyPHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgdXNlckFnZW50KQorc3RkOjp1bmlxdWVfcHRyPExpYldl
YlJUQ1Byb3ZpZGVyOjpTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIHVzZXJBZ2VudCkKIHsKICAgICByZXR1cm4g
bWFrZVVuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihXVEZNb3ZlKHVzZXJBZ2VudCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaAppbmRleCAxMDM3ZTY1MWQ3M2EzZjk5NzZjYjQ4YjFiM2EzYjdjYTdl
ZTRjNjA0Li4wMjQ4ZWVkOTMzMDA0YjQxYjMwMjAyNDkyNTY0N2EzZWU0MDEwZDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRD
UHJvdmlkZXIoKSB7IG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSBmYWxzZTsg
fQogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovKSBmaW5hbDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2Nr
ZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CiAKICAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNv
bm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJh
dGlvbiYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAppbmRleCBjY2Y5NTBiNjBlYWUz
MjUxZGI0MThmMzZlZTc5OTQ2YTY2NTlmM2U5Li5iNWU0M2Y0NTZlYjMwZTAyZmYxZDM0ZDVjMTU3
MmYxMmE1MTM3Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcApAQCAtNDAsMTkgKzQwLDIxIEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tl
dChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBUeXBlIHR5cGUsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MpCitMaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJXZWJSVENT
b2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgVHlwZSB0eXBl
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogICAgIDogbV9mYWN0b3J5KGZhY3RvcnkpCiAgICAg
LCBtX2lkZW50aWZpZXIoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJh
dGUoKSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRy
ZXNzKQogICAgICwgbV9yZW1vdGVBZGRyZXNzKHJlbW90ZUFkZHJlc3MpCisgICAgLCBtX3NvY2tl
dEdyb3VwKHNvY2tldEdyb3VwKQogeworICAgIG1fZmFjdG9yeS5hZGRTb2NrZXQoKnRoaXMpOwog
fQogCiBMaWJXZWJSVENTb2NrZXQ6On5MaWJXZWJSVENTb2NrZXQoKQogewogICAgIENsb3NlKCk7
Ci0gICAgbV9mYWN0b3J5LmRldGFjaCgqdGhpcyk7CisgICAgbV9mYWN0b3J5LnJlbW92ZVNvY2tl
dCgqdGhpcyk7CiB9CiAKIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzZW5kT25NYWluVGhyZWFkKEZ1
bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2FsbGJhY2spCkBAIC04MSwxMiArODMs
MTggQEAgdm9pZCBMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbEFkZHJlc3NSZWFkeShjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MpCiAKIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxS
ZWFkUGFja2V0KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBydGM6OlNvY2tl
dEFkZHJlc3MmJiBhZGRyZXNzLCBpbnQ2NF90IHRpbWVzdGFtcCkKIHsKKyAgICBpZiAobV9pc1N1
c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9yZW1vdGVBZGRyZXNzID0gV1RGTW92
ZShhZGRyZXNzKTsKICAgICBTaWduYWxSZWFkUGFja2V0KHRoaXMsIGJ1ZmZlci5kYXRhKCksIGJ1
ZmZlci5zaXplKCksIG1fcmVtb3RlQWRkcmVzcywgdGltZXN0YW1wKTsKIH0KIAogdm9pZCBMaWJX
ZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNrZXQoaW50IHJ0Y1BhY2tldElELCBpbnQ2NF90IHNl
bmRUaW1lTXMpCiB7CisgICAgaWYgKG1fYmVpbmdTZW50UGFja2V0U2l6ZXMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX2F2YWlsYWJsZVNlbmRpbmdCeXRlcyArPSBtX2JlaW5n
U2VudFBhY2tldFNpemVzLnRha2VGaXJzdCgpOwogICAgIFNpZ25hbFNlbnRQYWNrZXQodGhpcywg
cnRjOjpTZW50UGFja2V0KHJ0Y1BhY2tldElELCBzZW5kVGltZU1zKSk7CiAgICAgaWYgKG1fc2hv
dWxkU2lnbmFsUmVhZHlUb1NlbmQpIHsKQEAgLTEzMCwxMCArMTM4LDEzIEBAIGludCBMaWJXZWJS
VENTb2NrZXQ6OlNlbmRUbyhjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkCiAgICAgaWYgKCF3aWxsU2VuZChzaXplKSkKICAgICAgICAgcmV0dXJuIC0x
OwogCisgICAgaWYgKG1faXNTdXNwZW5kZWQpCisgICAgICAgIHJldHVybiBzaXplOworCiAgICAg
YXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4odmFsdWUpLCBzaXplKTsKICAgICBhdXRvIGlkZW50aWZpZXIgPSB0aGlz
LT5pZGVudGlmaWVyKCk7CiAKLSAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBidWZm
ZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIGFkZHJlc3MsIG9wdGlvbnNdKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikgeworICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIsIGJ1ZmZlciA9
IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcywgb3B0aW9uc10oYXV0byYgY29ubmVjdGlvbikgewog
ICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgpKTsKICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDU29ja2V0OjpTZW5kVG8geyBkYXRhLCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHsgYWRkcmVzcyB9LCBSVENQYWNrZXRPcHRpb25zIHsgb3B0
aW9ucyB9IH0sIGlkZW50aWZpZXIpOwogICAgIH0pOwpAQCAtMTQ2LDggKzE1Nyw4IEBAIGludCBM
aWJXZWJSVENTb2NrZXQ6OkNsb3NlKCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3N0YXRl
ID0gU1RBVEVfQ0xPU0VEOwotICAgIGF1dG8gaWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIo
KTsKLSAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyXShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pIHsKKworICAgIHNlbmRPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBpZGVudGlm
aWVyKCldKGF1dG8mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUlRDU29ja2V0OjpDbG9zZSgpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKICAg
ICByZXR1cm4gMDsKQEAgLTE2OSwxMyArMTgwLDQwIEBAIGludCBMaWJXZWJSVENTb2NrZXQ6OlNl
dE9wdGlvbihydGM6OlNvY2tldDo6T3B0aW9uIG9wdGlvbiwgaW50IHZhbHVlKQogCiAgICAgbV9v
cHRpb25zW29wdGlvbl0gPSB2YWx1ZTsKIAotICAgIGF1dG8gaWRlbnRpZmllciA9IHRoaXMtPmlk
ZW50aWZpZXIoKTsKLSAgICBzZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBvcHRpb24sIHZh
bHVlXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKKyAgICBzZW5kT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyID0gaWRlbnRpZmllcigpLCBvcHRpb24sIHZhbHVlXShhdXRvJiBjb25uZWN0
aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1NvY2tl
dDo6U2V0T3B0aW9uKG9wdGlvbiwgdmFsdWUpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKICAgICBy
ZXR1cm4gMDsKIH0KIAordm9pZCBMaWJXZWJSVENTb2NrZXQ6OnJlc3VtZSgpCit7CisgICAgbV9p
c1N1c3BlbmRlZCA9IGZhbHNlOworCisgICAgLy8gT24gcmVzdW1lLCB3ZSBub3RpZnkgbGlid2Vi
cnRjIHRoYXQgVENQIHNvY2tldHMgYXJlIGVycm9yZWQuCisgICAgLy8gV2Ugbm90aWZ5IGxpYndl
YnJ0YyB0aGF0IGFsbCBwZW5kaW5nIFVEUCBwYWNrZXRzIGhhdmUgYmVlbiBzZW50IGV2ZW4gdGhv
dWdoIHdlIGFjdHVhbGx5IGRyb3BwZWQgdGhlbS4KKyAgICBpZiAobV90eXBlICE9IFR5cGU6OlVE
UCkgeworICAgICAgICBzaWduYWxDbG9zZSgtMSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGN1cnJlbnRUaW1lID0gcnRjOjpUaW1lTWlsbGlzKCk7CisgICAgd2hpbGUgKCFt
X2JlaW5nU2VudFBhY2tldFNpemVzLmlzRW1wdHkoKSkKKyAgICAgICAgc2lnbmFsU2VudFBhY2tl
dCgtMSwgY3VycmVudFRpbWUpOworfQorCit2b2lkIExpYldlYlJUQ1NvY2tldDo6c3VzcGVuZCgp
Cit7CisgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7CisKKyAgICAvLyBPbiBzdXNwZW5kLCB3ZSBj
bG9zZSBUQ1Agc29ja2V0cyBhcyB3ZSBjYW5ub3QgbWFrZSBzdXJlIHBhY2tldHMgYXJlIGRlbGl2
ZXJlZCByZWxpYWJseS4KKyAgICBpZiAobV90eXBlICE9IFR5cGU6OlVEUCkgeworICAgICAgICBz
ZW5kT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gaWRlbnRpZmllcigpXShhdXRvJiBjb25uZWN0
aW9uKSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENT
b2NrZXQ6OkNsb3NlIHsgfSwgaWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldC5oCmluZGV4IDY0NGVlNWEwYmIxZjNmOThhZjY5ZWNkNDBjZWVlOWI5YzIwMmI5MDgu
LjA4Y2Q5Y2ZlODA4MzAzNmU2N2Q0NTQwMzdiYjRlNGNjN2E3MjJmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0LmgKQEAgLTUyLDkgKzUyLDEwIEBAIGNsYXNzIExpYldlYlJUQ1NvY2tldCBmaW5hbCA6IHB1
YmxpYyBydGM6OkFzeW5jUGFja2V0U29ja2V0IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFR5
cGUgeyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQLCBTZXJ2ZXJDb25uZWN0aW9uVENQIH07CiAK
LSAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYsIFR5cGUsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MpOworICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRG
YWN0b3J5JiwgY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIFR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFk
ZHJlc3MpOwogICAgIH5MaWJXZWJSVENTb2NrZXQoKTsKIAorICAgIGNvbnN0IHZvaWQqIHNvY2tl
dEdyb3VwKCkgY29uc3QgeyByZXR1cm4gbV9zb2NrZXRHcm91cDsgfQogICAgIFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQogICAgIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzKCkg
Y29uc3QgeyByZXR1cm4gbV9sb2NhbEFkZHJlc3M7IH0KICAgICBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIHJlbW90ZUFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUFkZHJlc3M7IH0K
QEAgLTYyLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RXJyb3IoaW50IGVycm9yKSB7
IG1fZXJyb3IgPSBlcnJvcjsgfQogICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUgc3RhdGUpIHsgbV9z
dGF0ZSA9IHN0YXRlOyB9CiAKKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2b2lkIHJlc3VtZSgp
OworCiBwcml2YXRlOgogICAgIGJvb2wgd2lsbFNlbmQoc2l6ZV90KTsKIApAQCAtMTAyLDYgKzEw
Niw4IEBAIHByaXZhdGU6CiAgICAgRGVxdWU8c2l6ZV90PiBtX2JlaW5nU2VudFBhY2tldFNpemVz
OwogICAgIHNpemVfdCBtX2F2YWlsYWJsZVNlbmRpbmdCeXRlcyB7IDY1NTM2IH07CiAgICAgYm9v
bCBtX3Nob3VsZFNpZ25hbFJlYWR5VG9TZW5kIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OworICAgIGNvbnN0IHZvaWQqIG1fc29ja2V0R3JvdXAgeyBudWxscHRy
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmNwcAppbmRleCBlM2Y5MDgwZDJhZjlhNzYxMjEyNDVhNWMwNTJlYzBlYTcyYTNmZjQx
Li5mNWI4MGMwMzFmYzg3MTZhMzA1YTZkODA4OGY0NjNjZTAyNjU5MDBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFj
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC00OCwxMCArNDgsOSBAQCBzdGF0aWMgaW5saW5l
IHJ0Yzo6U29ja2V0QWRkcmVzcyBwcmVwYXJlU29ja2V0QWRkcmVzcyhjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWlu
dDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5p
cXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVy
VENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7Ci0gICAgbV9zb2NrZXRzLnNldChz
b2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKKyAgICBhdXRvIHNvY2tldCA9IG1h
a2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCks
IGFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewogICAgICAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNy
ZWF0ZVNlcnZlclRDUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
KGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwgMCkpIHsKQEAgLTYwLDE0ICs1
OSwxMiBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpj
cmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgICAgICB9CiAKICAgICB9KTsKLQog
ICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQor
cnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRw
U29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdyb3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgYXV0
byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7Ci0gICAgbV9z
b2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKKyAgICBhdXRv
IHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgc29ja2V0R3JvdXAs
IExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3Mo
KSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlm
aWVyKCksIGFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVO
b25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnRdKCkgewogICAgICAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0
ZVVEUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3Mp
LCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCkpIHsKQEAgLTc4LDExICs3NSwxMCBAQCBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29u
c3QgcnRjOjpTb2NrZQogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0
aW9ucykKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCB2b2lkKiBzb2NrZXRHcm91cCwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVt
b3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRv
IHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29j
a2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CisgICAg
YXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIHNvY2tldEdy
b3VwLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxBZGRyZXNzLCByZW1v
dGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVf
Q09OTkVDVElORyk7Ci0gICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29j
a2V0LmdldCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQt
PmlkZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MobG9jYWxB
ZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIHJlbW90ZUFkZHJlc3Mg
PSBwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucyksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENv
cHkoKSwgb3B0aW9uc10oKSB7CiAgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIs
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzKSwgUlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSwgdXNlckFnZW50LCBvcHRpb25zKSwgMCkpIHsKQEAg
LTkwLDE1ICs4NiwxMyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfSk7Ci0KICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsK
IH0KIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVt
b3RlQWRkcmVzcyk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tl
dD4oKnRoaXMsIHNlcnZlclNvY2tldC5zb2NrZXRHcm91cCgpLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVt
b3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRF
X0NPTk5FQ1RFRCk7Ci0gICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29j
a2V0LmdldCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQt
PmlkZW50aWZpZXIoKSwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXJdKCkgewogICAgICAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6Oldy
YXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlm
aWVyKSwgMCkpIHsKQEAgLTEwOSwxMiArMTAzLDI2IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2Vi
CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6ZGV0YWNoKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KQordm9pZCBMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjphZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpCit7CisgICAg
QVNTRVJUKCFtX3NvY2tldHMuY29udGFpbnMoc29ja2V0LmlkZW50aWZpZXIoKSkpOworICAgIG1f
c29ja2V0cy5hZGQoc29ja2V0LmlkZW50aWZpZXIoKSwgJnNvY2tldCk7Cit9CisKK3ZvaWQgTGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6cmVtb3ZlU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc29ja2V0
KQogewogICAgIEFTU0VSVChtX3NvY2tldHMuY29udGFpbnMoc29ja2V0LmlkZW50aWZpZXIoKSkp
OwogICAgIG1fc29ja2V0cy5yZW1vdmUoc29ja2V0LmlkZW50aWZpZXIoKSk7CiB9CiAKK3ZvaWQg
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Zm9yU29ja2V0SW5Hcm91cChjb25zdCB2b2lkKiBzb2Nr
ZXRHcm91cCwgY29uc3QgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mIGNhbGxiYWNr
KQoreworICAgIGZvciAoYXV0byogc29ja2V0IDogbV9zb2NrZXRzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmIChzb2NrZXQtPnNvY2tldEdyb3VwKCkgPT0gc29ja2V0R3JvdXApCisgICAgICAgICAg
ICBjYWxsYmFjaygqc29ja2V0KTsKKyAgICB9Cit9CisKIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVy
ZmFjZSogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQXN5bmNSZXNvbHZlcigpCiB7CiAg
ICAgYXV0byByZXNvbHZlciA9IG1ha2VVbmlxdWU8TGliV2ViUlRDUmVzb2x2ZXI+KCsrc191bmlx
dWVSZXNvbHZlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5k
ZXggYTk0NWIxMGRhYWRhYWY2YjQ1ZDRkODU2Yzg2YjY3YjE0MmI3NzNkNS4uYWE4YjE0ZWI1Mjg2
NWQ3YTVkOTIzNWI2NWQyOGYxMjRjNzI2ZDZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFj
dG9yeS5oCkBAIC0zNywxNiArMzcsMTkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNz
IExpYldlYlJUQ1NvY2tldDsKKwogY2xhc3MgTGliV2ViUlRDU29ja2V0RmFjdG9yeSB7CiBwdWJs
aWM6CiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSgpIHsgfQogCi0gICAgdm9pZCBkZXRhY2go
TGliV2ViUlRDU29ja2V0Jik7CisgICAgdm9pZCBhZGRTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7
CisgICAgdm9pZCByZW1vdmVTb2NrZXQoTGliV2ViUlRDU29ja2V0Jik7CiAgICAgTGliV2ViUlRD
U29ja2V0KiBzb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyKSB7IHJldHVybiBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIpOyB9CiAKLSAgICBydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCk7Ci0gICAgcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogY3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKLSAg
ICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
cmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucyk7CisgICAgcnRj
OjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2tldEdy
b3VwLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZf
dCBtYXhQb3J0KTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BT
b2NrZXQoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKKyAgICBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZCog
c29ja2V0R3JvdXAsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwg
aW50IG9wdGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5l
Y3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJik7CiAKICAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9CkBAIC01NSw2
ICs1OCw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAK
KyAgICB2b2lkIGZvclNvY2tldEluR3JvdXAoY29uc3Qgdm9pZCogc29ja2V0R3JvdXAsIGNvbnN0
IEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+Jik7CisKIHByaXZhdGU6CiAgICAgLy8g
V2UgY2Fubm90IG93biBzb2NrZXRzLCBjbGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25z
aWJsZSB0byBmcmVlIHRoZW0uCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjc1NDliYjI1
OGI4NTUwMDQ1NjQ1NTZiNmM3Yzk0Y2ZiNWQzNGNmNC4uMjc5NWM0YzY1OTcyNWQ3OGQ0Zjg3NWRk
MTBlYjA2ODAzYTM2NTc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTAzICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0byBzdXNwZW5k
IFJUQ1BlZXJDb25uZWN0aW9uIHdoZW4gbm90IGNvbm5lY3RlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNo
YW5uZWwtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9k
YXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1z
ZW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5l
bC1wYWdlLWNhY2hlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA5LTMwICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBKUyBGb3JtYXR0ZXI6
IHVuZXhwZWN0ZWQgbmV3bGluZXMgYWRkZWQgaW5zaWRlIHRlbXBsYXRlIHN0cmluZyBleHByZXNz
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5u
ZWwtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5u
ZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyYWIx
N2IwYWM5OGUwODE5NDQ2MDU5YjU1MDUxMmYyYTE1MTE1MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBkYXRhY2hhbm5lbC1wYWdlLWNhY2hlIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwt
cGFnZS1jYWNoZS1zZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hh
bm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI3NTUzZjQ1MWU5MWFiYjg3NjkwNDFiYWQzMDk1YTY3MjI2YzA0OTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNo
ZS1zZW5kLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBkYXRhY2hhbm5lbC1w
YWdlLWNhY2hlLXNlbmQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hh
bm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41Zjg0YTIzOWQ5MWMzZGI1NzEzOGI2Y2E3MzIzYTliNmY1ZTNkZGQ3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2Fj
aGUtc2VuZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgordCA9IGFzeW5jX3Rlc3QoKTsKKworY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7Citjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KworcGMxLm9uaWNlY2FuZGlkYXRlID0gKGUpID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5k
aWRhdGUpOworcGMyLm9uaWNlY2FuZGlkYXRlID0gKGUpID0+IHBjMS5hZGRJY2VDYW5kaWRhdGUo
ZS5jYW5kaWRhdGUpOworcGMyLm9uZGF0YWNoYW5uZWwgPSAoZSkgPT4gIHsgZS5jaGFubmVsLm9u
bWVzc2FnZSA9IHQuZG9uZSgpOyB9OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNo
b3ciLCBhc3luYyBmdW5jdGlvbihldmVudCkgeworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5z
d2VyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICBh
d2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKK30pOworCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCB0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICBp
ZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgYXNzZXJ0X3VuZWFjaGVkKCJQYWdlIGZhaWxl
ZCB0byBlbnRlciBwYWdlIGNhY2hlIik7Cit9KSk7CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBz
ZXRUaW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAgICAgbG9jYWxDaGFubmVsID0gcGMxLmNyZWF0
ZURhdGFDaGFubmVsKCJ0ZXN0Iik7CisgICAgICAgIGxvY2FsQ2hhbm5lbC5vbm9wZW4gPSAoKSA9
PiBsb2NhbENoYW5uZWwuc2VuZCgib2siKTsKKworICAgICAgICBjb25zdCBvZmZlciA9IGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpOworICAgICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bihvZmZlcik7CisgICAgICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7
CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi8uLi9mYXN0L2hpc3RvcnkvcmVzb3VyY2Vz
L3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgIH0sIDApOworfTsKKzwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFu
bmVsLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRh
Y2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwYmI5ZmRmNzExOGEyN2U2NGVj
ZWM5ZWU4ZGVhODZlOGM5NTZhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit0ID0gYXN5bmNf
dGVzdCgpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihl
dmVudCkgeworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHQuZG9uZSgpOworfSk7
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIHQuc3RlcF9mdW5jKChldmVu
dCkgPT4geworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQorICAgICAgICBhc3NlcnRfdW5lYWNo
ZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKK30pKTsKKworb25sb2FkID0g
KCkgPT4geworICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBjb25zdCBjaGFubmVsID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoInRlc3QiKTsKKyAgICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5j
cmVhdGVPZmZlcigpOworICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVy
KTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uLy4uL2Zhc3QvaGlzdG9yeS9yZXNvdXJj
ZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgfSwgMCk7Cit9OworPC9zY3JpcHQ+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>