<?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>239286</bug_id>
          
          <creation_ts>2022-04-13 06:51:05 -0700</creation_ts>
          <short_desc>A shared worker in a cached page should not allow the remote shared worker to continue executing</short_desc>
          <delta_ts>2022-04-14 00:17:32 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1861105</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-04-13 06:51:05 -0700</bug_when>
    <thetext>A shared worker in a cached page should not allow the remote shared worker to continue executing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861108</commentid>
    <comment_count>1</comment_count>
      <attachid>457528</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-04-13 07:00:08 -0700</bug_when>
    <thetext>Created attachment 457528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861131</commentid>
    <comment_count>2</comment_count>
      <attachid>457536</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-04-13 08:47:32 -0700</bug_when>
    <thetext>Created attachment 457536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861223</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-13 12:38:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/91708368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861225</commentid>
    <comment_count>4</comment_count>
      <attachid>457536</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-13 12:42:34 -0700</bug_when>
    <thetext>Comment on attachment 457536
Patch

Very nice, thank you for fixing. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861408</commentid>
    <comment_count>5</comment_count>
      <attachid>457536</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-04-13 23:29:02 -0700</bug_when>
    <thetext>Comment on attachment 457536
Patch

I&apos;ll check the case of last active being removed or newly added as first active in a follow-up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861413</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-14 00:17:29 -0700</bug_when>
    <thetext>Committed r292860 (249631@main): &lt;https://commits.webkit.org/249631@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457536.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457528</attachid>
            <date>2022-04-13 07:00:08 -0700</date>
            <delta_ts>2022-04-13 08:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239286-20220413160006.patch</filename>
            <type>text/plain</type>
            <size>32698</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1NmYzNmQwMmM0ZThi
MzhiMTc0NDBlYTI5M2Q5ZWQzMGI3NzY3OS4uZTNkYTE1OGY0ZjhmMGYzYmYxM2I1NDAwZDIxMzll
OWIwNDk0OGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTA0LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBIHNoYXJlZCB3b3JrZXIg
aW4gYSBjYWNoZWQgcGFnZSBzaG91bGQgbm90IGFsbG93IHRoZSByZW1vdGUgc2hhcmVkIHdvcmtl
ciB0byBjb250aW51ZSBleGVjdXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzOTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNoYXJlZFdvcmtlciBuZWVkIHRvIHJlYWN0IHRvIHJlc3VtZS9zdXNw
ZW5kIGluIGNhc2Ugb2YgcGFnZSBjYWNoZSBzbyB0aGF0IHRoZSBjb3JyZXNwb25kaW5nCisgICAg
ICAgIHJlbW90ZSBzaGFyZWQgd29ya2VyIG1pZ2h0IGdldCBzdXNwZW5kZWQgaWYgYWxsIGl0cyBz
aGFyZWQgd29ya2VyIG9iamVjdHMgYXJlIHN1c3BlbmRlZC4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1zaGFyZWQtd29ya2VyLmh0bWwKKworICAgICAg
ICAqIHdvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5jcHA6CisgICAgICAgICogd29ya2Vycy9z
aGFyZWQvU2hhcmVkV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9zaGFyZWQvU2hhcmVkV29y
a2VyT2JqZWN0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVkL2NvbnRleHQv
U2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVk
L2NvbnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKwogMjAyMi0wNC0xMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHdvcmtlcnMg
YXMgc2VydmljZSB3b3JrZXIgY2xpZW50cyBhbmQgaW1wbGVtZW50IHJlZ2lzdHJhdGlvbiBtYXRj
aGluZyBmb3IgZGVkaWNhdGVkIHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2I1OGZiY2QzMzNkZmMxZDE4
NGE2YjE3YjA3ZDEwNzI4ZGU2ZTQxZi4uMTdhMTljYjRlYTcwNDEwNDAyMzY3NGI3YTJiNjJmNjg5
ZDY3ZDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMi0wNC0xMyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQSBzaGFyZWQgd29ya2VyIGluIGEg
Y2FjaGVkIHBhZ2Ugc2hvdWxkIG5vdCBhbGxvdyB0aGUgcmVtb3RlIHNoYXJlZCB3b3JrZXIgdG8g
Y29udGludWUgZXhlY3V0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdG9yZSB3aGV0aGVyIHNoYXJlZCB3b3JrZXIgb2JqZWN0cyBhcmUgc3VzcGVu
ZGVkIG9yIHJlc3VtZWQuCisgICAgICAgIElmIGFsbCBvYmplY3RzIGFyZSBzdXNwZW5kZWQsIHN1
c3BlbmQgdGhlIHJlbW90ZSBzaGFyZWQgd29ya2VyLgorICAgICAgICBPdGhlcndpc2UsIGtlZXAg
dGhlIHJlbW90ZSBzaGFyZWQgd29ya2VyIGxpdmUuCisgICAgICAgIEFkZCBwbHVtYmluZyBjb2Rl
IHRvIG1ha2UgdGhpcyBoYXBwZW4uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlci5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVy
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2Vy
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
U2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTaGFyZWRXb3JrZXJPYmplY3RDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5oOgorCiAyMDIyLTA0LTEy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd29y
a2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGllbnRzIGFuZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9u
IG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2hhcmVkL1NoYXJlZFdvcmtlci5jcHAKaW5kZXggY2JhY2I0YTIwMDVkYjI1ZTE1YWYwMWQz
ZmU0ODE5MTVkZTVlMWViNC4uNDkxOGVlN2U1MDQ5NTZkMDY2NDFmZWVlNjRkNzYxMDMyMGIyNWQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXIuY3Bw
CkBAIC0xNjUsNiArMTY1LDIyIEBAIHZvaWQgU2hhcmVkV29ya2VyOjpzdG9wKCkKICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbigpLT5zaGFyZWRXb3JrZXJPYmplY3RJc0dvaW5nQXdheShtX2tleSwg
bV9pZGVudGlmaWVyKTsKIH0KIAordm9pZCBTaGFyZWRXb3JrZXI6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5z
aW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uKCkt
PnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKG1fa2V5LCBtX2lkZW50aWZpZXIpOworICAgICAg
ICBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgfQorfQorCit2
b2lkIFNoYXJlZFdvcmtlcjo6cmVzdW1lKCkKK3sKKyAgICBpZiAobV9pc1N1c3BlbmRlZEZvckJh
Y2tGb3J3YXJkQ2FjaGUpIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24oKS0+cmVzdW1l
Rm9yQmFja0ZvcndhcmRDYWNoZShtX2tleSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgbV9pc1N1
c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKKyAgICB9Cit9CisKICN1bmRlZiBT
SEFSRURfV09SS0VSX1JFTEVBU0VfTE9HCiAjdW5kZWYgU0hBUkVEX1dPUktFUl9SRUxFQVNFX0xP
R19FUlJPUgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFy
ZWRXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5o
CmluZGV4IGNkZDI2OWYzNjE5MTY5ZDRhYjA1ZjYwZDFhNzRiODhjMDIzZmQyMzEuLmJlMGI0Y2I4
YTI1MjgyNzE0ZjNmODY1ZDM4NWM1YTBmZTI3ZDY3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5oCkBAIC02Niw2ICs2Niw4IEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgc3RvcCgpIGZpbmFsOwogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsK
KyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogCiAKICAgICBTaGFyZWRXb3JrZXJLZXkgbV9rZXk7
CkBAIC03NCw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1faWRlbnRpZmllckZvcklu
c3BlY3RvcjsKICAgICBCbG9iVVJMSGFuZGxlIG1fYmxvYlVSTEV4dGVuc2lvbjsKICAgICBib29s
IG1faXNBY3RpdmUgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFja0Zvcndh
cmRDYWNoZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJPYmplY3RDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJPYmpl
Y3RDb25uZWN0aW9uLmgKaW5kZXggOGY5YzA0ZTk2NTE4NjhlMjJlODY1NDk2NTNmYWNjOGNkYzhh
ODhjYi4uZDJlMjQ3MzcxMTRmNjFkYTIwYWQ1OWI3ZjdmYjAwZDVlMDU5YmI3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlck9i
amVjdENvbm5lY3Rpb24uaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFNoYXJlZFdvcmtlcihjb25zdCBTaGFyZWRXb3JrZXJLZXkmLCBTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYsIGNvbnN0IFdv
cmtlck9wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNoYXJlZFdvcmtlck9iamVjdElz
R29pbmdBd2F5KGNvbnN0IFNoYXJlZFdvcmtlcktleSYsIFNoYXJlZFdvcmtlck9iamVjdElkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUo
Y29uc3QgU2hhcmVkV29ya2VyS2V5JiwgU2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKGNvbnN0IFNoYXJl
ZFdvcmtlcktleSYsIFNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIC8vIElQQyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKaW5kZXggYmQ2MGNlNmUwZmY0YWEzMDA5OThmYTYzYzI0OTI5MzU4MTA4OWNhZi4u
YzRkMWNmMDcyODVlOTZhZmMzNDA0NGZiYjk3Mzc2YjY2YmFjNzYyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKQEAgLTY0LDYgKzY0LDIyIEBAIHZvaWQgU2hhcmVk
V29ya2VyQ29udGV4dE1hbmFnZXI6OnN0b3BTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRp
ZmllciBzaGFyZWRXCiAgICAgfSk7CiB9CiAKK3ZvaWQgU2hhcmVkV29ya2VyQ29udGV4dE1hbmFn
ZXI6OnN1c3BlbmRTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllciBzaGFyZWRXb3Jr
ZXJJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzaGFy
ZWRXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJTaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3VzcGVuZFNoYXJlZFdvcmtlcjogc2hhcmVkV29ya2Vy
SWRlbnRpZmllcj0lIiBQUkl1NjQgIiwgd29ya2VyPSVwIiwgc2hhcmVkV29ya2VySWRlbnRpZmll
ci50b1VJbnQ2NCgpLCB3b3JrZXIpOworICAgIGlmICh3b3JrZXIpCisgICAgICAgIHdvcmtlci0+
dGhyZWFkKCkuc3VzcGVuZCgpOworfQorCit2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpyZXN1bWVTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllciBzaGFyZWRXb3JrZXJJ
ZGVudGlmaWVyKQoreworICAgIGF1dG8qIHdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzaGFyZWRX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJTaGFyZWRX
b3JrZXJDb250ZXh0TWFuYWdlcjo6cmVzdW1lU2hhcmVkV29ya2VyOiBzaGFyZWRXb3JrZXJJZGVu
dGlmaWVyPSUiIFBSSXU2NCAiLCB3b3JrZXI9JXAiLCBzaGFyZWRXb3JrZXJJZGVudGlmaWVyLnRv
VUludDY0KCksIHdvcmtlcik7CisgICAgaWYgKHdvcmtlcikKKyAgICAgICAgd29ya2VyLT50aHJl
YWQoKS5yZXN1bWUoKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3Rv
cEFsbFNoYXJlZFdvcmtlcnMoKQogewogICAgIHdoaWxlICghbV93b3JrZXJNYXAuaXNFbXB0eSgp
KQpAQCAtMTEzLDYgKzEyOSwxNiBAQCB2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpD
b25uZWN0aW9uOjp0ZXJtaW5hdGVTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySQogICAgIFNoYXJl
ZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zdG9wU2hhcmVkV29ya2VyKHNoYXJl
ZFdvcmtlcklkZW50aWZpZXIpOwogfQogCit2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpDb25uZWN0aW9uOjpzdXNwZW5kU2hhcmVkV29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuc3VzcGVuZFNoYXJlZFdvcmtlcihpZGVudGlmaWVyKTsKK30KKwordm9pZCBTaGFyZWRXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbjo6cmVzdW1lU2hhcmVkV29ya2VyKFNoYXJlZFdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBTaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkucmVzdW1lU2hhcmVkV29ya2VyKGlkZW50aWZpZXIpOworfQorCiB2
b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpmb3JFYWNoU2hhcmVkV29ya2VyKGNvbnN0
IEZ1bmN0aW9uPEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPigpPiYgY3Jl
YXRlVGFzaykKIHsKICAgICBmb3IgKGF1dG8mIHdvcmtlciA6IG1fd29ya2VyTWFwLnZhbHVlcygp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQv
Y29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlci5oCmluZGV4IGQ1MWZmMDA5Y2I5MzY3
OGU2ZmFlYmYyNDgwOTY2YTcwODIxODAxODMuLjZiYjk1ODc5ZTgwY2U2NTVjNWNhMzE0ZjhiYzYw
MDRkNzI5Mzg2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2Nv
bnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTQw
LDYgKzQwLDggQEAgcHVibGljOgogCiAgICAgU2hhcmVkV29ya2VyVGhyZWFkUHJveHkqIHNoYXJl
ZFdvcmtlcihTaGFyZWRXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICB2b2lkIHN0b3BTaGFy
ZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBzdXNwZW5kU2hhcmVk
V29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgcmVzdW1lU2hhcmVkV29y
a2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rv
cEFsbFNoYXJlZFdvcmtlcnMoKTsKIAogICAgIGNsYXNzIENvbm5lY3Rpb24gewpAQCAtNTYsNiAr
NTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RDb25uZWN0RXZlbnQoU2hhcmVkV29ya2VySWRlbnRp
ZmllciwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwog
ICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVNoYXJlZFdvcmtlcihTaGFyZWRX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdXNwZW5kU2hh
cmVkV29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOworICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlc3VtZVNoYXJlZFdvcmtlcihTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyLmNwcAppbmRleCAxNTg4MmEzZDQ2M2IzZWI5OTg5YmM0ZmE0MWU1NThkZmIyMTli
NWZmLi44MmJkOTUyMmQzODlhMjNiMGU2NWQ1NzI5NDI0MjNkMjJlYTFiZWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3Jr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlci5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXI6
OmRpZENyZWF0ZUNvbnRleHRDb25uZWN0aW9uKFdlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4
dEMKIAogdm9pZCBXZWJTaGFyZWRXb3JrZXI6OmFkZFNoYXJlZFdvcmtlck9iamVjdChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQmIHBvcnQpCiB7Ci0gICAg
bV9zaGFyZWRXb3JrZXJPYmplY3RzLmFkZChzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBw
b3J0KTsKKyAgICBtX3NoYXJlZFdvcmtlck9iamVjdHMuYWRkKHNoYXJlZFdvcmtlck9iamVjdElk
ZW50aWZpZXIsIFNoYXJlZFdvcmtlck9iamVjdFN0YXRlIHsgZmFsc2UsIHBvcnQgfSk7CiAgICAg
aWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVjdGlvbigpKQogICAgICAgICBjb25u
ZWN0aW9uLT5hZGRTaGFyZWRXb3JrZXJPYmplY3Qoc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cik7CiB9CkBAIC05MiwxMCArOTIsNDYgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXI6OnJlbW92ZVNo
YXJlZFdvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGkKICAgICAg
ICAgY29ubmVjdGlvbi0+cmVtb3ZlU2hhcmVkV29ya2VyT2JqZWN0KHNoYXJlZFdvcmtlck9iamVj
dElkZW50aWZpZXIpOwogfQogCit2b2lkIFdlYlNoYXJlZFdvcmtlcjo6c3VzcGVuZChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2hhcmVkV29ya2VyT2JqZWN0cy5maW5kKHNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NoYXJl
ZFdvcmtlck9iamVjdHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGl0ZXJhdG9yLT52
YWx1ZS5pc1N1c3BlbmRlZCA9IHRydWU7CisgICAgQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKKyAg
ICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBz
dGF0ZSA6IG1fc2hhcmVkV29ya2VyT2JqZWN0cy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIXN0
YXRlLmlzU3VzcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faXNT
dXNwZW5kZWQgPSB0cnVlOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gY29udGV4dENvbm5l
Y3Rpb24oKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c3VzcGVuZFNoYXJlZFdvcmtlcihpZGVudGlm
aWVyKCkpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlcjo6cmVzdW1lKFdlYkNvcmU6OlNoYXJl
ZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sK
KyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zaGFyZWRXb3JrZXJPYmplY3RzLmZpbmQoc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc2hhcmVkV29ya2Vy
T2JqZWN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaXRlcmF0b3ItPnZhbHVlLmlz
U3VzcGVuZGVkID0gZmFsc2U7CisgICAgaWYgKCFtX2lzU3VzcGVuZGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBjb250ZXh0Q29ubmVjdGlvbigpKQorICAgICAgICBjb25uZWN0aW9uLT5yZXN1bWVTaGFy
ZWRXb3JrZXIoaWRlbnRpZmllcigpKTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3JrZXI6OmZvckVh
Y2hTaGFyZWRXb3JrZXJPYmplY3QoY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQ
b3J0Jik+JiBhcHBseSkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIFtzaGFyZWRXb3JrZXJPYmpl
Y3RJZGVudGlmaWVyLCBwb3J0XSA6IG1fc2hhcmVkV29ya2VyT2JqZWN0cykKLSAgICAgICAgYXBw
bHkoc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgcG9ydCk7CisgICAgZm9yIChhdXRvJiBb
c2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgc3RhdGVdIDogbV9zaGFyZWRXb3JrZXJPYmpl
Y3RzKQorICAgICAgICBhcHBseShzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBzdGF0ZS5w
b3J0KTsKIH0KIAogc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gV2Vi
U2hhcmVkV29ya2VyOjpmaXJzdFNoYXJlZFdvcmtlck9iamVjdFByb2Nlc3MoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXIuaAppbmRleCA3NTM1MjRmNjRjMmIyY2RlNmFmYjllYWU4YTA1NDdlMWVh
NDk3NjVkLi4xMzlmNjA3MDIwNjBlMDRhNjg5MmI3ZjFhMzU3OGU4MmQwNjZiYTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXIuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFk
ZFNoYXJlZFdvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik7CiAgICAgdm9pZCByZW1v
dmVTaGFyZWRXb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cik7CisgICAgdm9pZCBzdXNwZW5kKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpOworICAgIHZvaWQgcmVzdW1lKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpOwogICAgIHVuc2lnbmVkIHNoYXJlZFdvcmtlck9iamVjdHNDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hhcmVkV29ya2VyT2JqZWN0cy5zaXplKCk7IH0KICAgICB2b2lkIGZvckVhY2hTaGFy
ZWRXb3JrZXJPYmplY3QoY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpTaGFyZWRXb3JrZXJP
YmplY3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik+
JikgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4g
Zmlyc3RTaGFyZWRXb3JrZXJPYmplY3RQcm9jZXNzKCkgY29uc3Q7CkBAIC03OSwxMyArODEsMTkg
QEAgcHJpdmF0ZToKICAgICBXZWJTaGFyZWRXb3JrZXIoY29uc3QgV2ViU2hhcmVkV29ya2VyJikg
PSBkZWxldGU7CiAgICAgV2ViU2hhcmVkV29ya2VyJiBvcGVyYXRvcj0oY29uc3QgV2ViU2hhcmVk
V29ya2VyJikgPSBkZWxldGU7CiAKKyAgICBzdHJ1Y3QgU2hhcmVkV29ya2VyT2JqZWN0U3RhdGUg
eworICAgICAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICAgICAgV2ViQ29yZTo6
VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0OworICAgIH07CisKICAgICBXZWJTaGFyZWRXb3Jr
ZXJTZXJ2ZXImIG1fc2VydmVyOwogICAgIFdlYkNvcmU6OlNoYXJlZFdvcmtlcklkZW50aWZpZXIg
bV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBtX2tleTsKICAgICBX
ZWJDb3JlOjpXb3JrZXJPcHRpb25zIG1fd29ya2VyT3B0aW9uczsKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVz
c2FnZVBvcnQ+IG1fc2hhcmVkV29ya2VyT2JqZWN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFNoYXJlZFdvcmtlck9iamVjdFN0YXRlPiBtX3No
YXJlZFdvcmtlck9iamVjdHM7CiAgICAgV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQgbV9mZXRj
aFJlc3VsdDsKICAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNT
dXNwZW5kZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAppbmRleCA1ODFhNmU4ZTQ5Y2I3NjYwMTcxNTBj
OTMwNjcwNGZkNzg5MDhiYjNjLi45YTY5ZjEzOGY5ZjVkYzMzNmYwMzM4YTcwYzU0ZTExMjNlNDYy
ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtl
ci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5jcHAKQEAgLTIwNSw2ICsy
MDUsMjYgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnNoYXJlZFdvcmtlck9iamVjdElz
R29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OlNoYXJlZFcKICAgICBzaHV0RG93blNoYXJlZFdvcmtl
cihzaGFyZWRXb3JrZXJLZXkpOwogfQogCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6c3Vz
cGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBz
aGFyZWRXb3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hh
cmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiBzaGFyZWRXb3JrZXIgPSBt
X3NoYXJlZFdvcmtlcnMuZ2V0KHNoYXJlZFdvcmtlcktleSk7CisgICAgUkVMRUFTRV9MT0coU2hh
cmVkV29ya2VyLCAiV2ViU2hhcmVkV29ya2VyU2VydmVyOjpzdXNwZW5kRm9yQmFja0ZvcndhcmRD
YWNoZTogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zLCBzaGFyZWRXb3Jr
ZXI9JXAiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgc2hhcmVkV29ya2VyKTsKKyAgICBpZiAoIXNoYXJlZFdvcmtlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2hhcmVkV29ya2VyLT5zdXNwZW5kKHNoYXJlZFdvcmtlck9iamVjdElkZW50
aWZpZXIpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6cmVzdW1lRm9yQmFja0Zv
cndhcmRDYWNoZShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkmIHNoYXJlZFdvcmtlcktl
eSwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciBzaGFyZWRXb3JrZXJPYmpl
Y3RJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHNoYXJlZFdvcmtlciA9IG1fc2hhcmVkV29ya2Vy
cy5nZXQoc2hhcmVkV29ya2VyS2V5KTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJX
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGU6IHNoYXJlZFdv
cmtlck9iamVjdElkZW50aWZpZXI9JXtwdWJsaWN9cywgc2hhcmVkV29ya2VyPSVwIiwgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNoYXJlZFdv
cmtlcik7CisgICAgaWYgKCFzaGFyZWRXb3JrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHNo
YXJlZFdvcmtlci0+cmVzdW1lKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworfQorCiB2
b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6c2h1dERvd25TaGFyZWRXb3JrZXIoY29uc3QgV2Vi
Q29yZTo6U2hhcmVkV29ya2VyS2V5JiBrZXkpCiB7CiAgICAgYXV0byBzaGFyZWRXb3JrZXIgPSBt
X3NoYXJlZFdvcmtlcnMudGFrZShrZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIu
aAppbmRleCBmOGI0NWFlNGEwMThlYWYwMzYxMGE1YjlhZmQ5ZmM1NjNiNjEyZjhlLi5iMjA2YWYy
YzBlYzJiMjhlMTE5NjgzZGRlMGRmNzQwMWQwODgyOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXJTZXJ2ZXIuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlcXVl
c3RTaGFyZWRXb3JrZXIoV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiYsIFdlYkNvcmU6OlNoYXJl
ZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQm
JiwgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyYmKTsKICAgICB2b2lkIHNoYXJlZFdvcmtlck9iamVj
dElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworICAgIHZvaWQgc3VzcGVuZEZvckJhY2tGb3J3
YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiwgV2ViQ29yZTo6U2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENh
Y2hlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNoYXJlZFdvcmtl
ck9iamVjdElkZW50aWZpZXIpOwogICAgIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0
KFdlYkNvcmU6OlNoYXJlZFdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJs
ZShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVk
V29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggZTg4MWRjNTM0YzkzNDEwZWU5MWMwYTNjMDYyYjAzMjFlM2Q2YmE3NC4u
OWE2ZDM2NWUzMGM4ZmZiMGY3YTVkMjQ2ZGZlZmFhYjZiMjVhOGJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFy
ZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk4LDYgKzk4
LDIyIEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbjo6c2hhcmVkV29ya2Vy
T2JqZWN0SXNHb2luZ0F3YXkoV2ViQ29yZTo6U2hhCiAgICAgICAgIHNlc3Npb24tPmVuc3VyZVNo
YXJlZFdvcmtlclNlcnZlcigpLnNoYXJlZFdvcmtlck9iamVjdElzR29pbmdBd2F5KHNoYXJlZFdv
cmtlcktleSwgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgV2ViU2hh
cmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbjo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoV2Vi
Q29yZTo6U2hhcmVkV29ya2VyS2V5JiYgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCit7Cisg
ICAgQ09OTkVDVElPTl9NRVNTQUdFX0NIRUNLKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIu
cHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBDT05O
RUNUSU9OX1JFTEVBU0VfTE9HKCJzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZTogc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRp
Zmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
dGhpcy0+c2Vzc2lvbigpKQorICAgICAgICBzZXNzaW9uLT5lbnN1cmVTaGFyZWRXb3JrZXJTZXJ2
ZXIoKS5zdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShzaGFyZWRXb3JrZXJLZXksIHNoYXJlZFdv
cmtlck9iamVjdElkZW50aWZpZXIpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlckNv
bm5lY3Rpb246OnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
S2V5JiYgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlm
aWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCit7CisgICAgQ09OTkVDVElPTl9NRVNT
QUdFX0NIRUNLKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIo
KSA9PSBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9H
KCJyZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlOiBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
PSV7cHVibGljfXMiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCisg
ICAgICAgIHNlc3Npb24tPmVuc3VyZVNoYXJlZFdvcmtlclNlcnZlcigpLnJlc3VtZUZvckJhY2tG
b3J3YXJkQ2FjaGUoc2hhcmVkV29ya2VyS2V5LCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
KTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uOjpmZXRjaFNjcmlw
dEluQ2xpZW50KGNvbnN0IFdlYlNoYXJlZFdvcmtlciYgc2hhcmVkV29ya2VyLCBXZWJDb3JlOjpT
aGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQ09OTkVDVElPTl9SRUxFQVNFX0xPRygiZmV0Y2hT
Y3JpcHRJbkNsaWVudDogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwg
c2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2Vi
U2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4
IDNiOGEyYzIzMjRhZTk4ZTYzOWMyODE5ODk0Njg4NTY2MDZlNGUzZjMuLmI0MTkxOTY1YzM0MjVm
ZjFlMDZhZjM3ZTRiYTI1YjQ1MmM4MmZmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc1LDYgKzc1LDggQEAgcHJpdmF0ZToKICAg
ICAvLyBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCByZXF1ZXN0U2hhcmVkV29ya2VyKFdlYkNvcmU6
OlNoYXJlZFdvcmtlcktleSYmLCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
LCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYsIFdlYkNvcmU6Oldvcmtlck9wdGlv
bnMmJik7CiAgICAgdm9pZCBzaGFyZWRXb3JrZXJPYmplY3RJc0dvaW5nQXdheShXZWJDb3JlOjpT
aGFyZWRXb3JrZXJLZXkmJiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7
CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShXZWJDb3JlOjpTaGFyZWRXb3Jr
ZXJLZXkmJiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgdm9p
ZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYmLCBX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29udGVudENvbm5lY3Rpb247CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBt
X25ldHdvcmtQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdv
cmtlclNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZDcyYTg3YjdlY2Y0NDZjOTE5
NGQzYWJkYmYyMjYzMGI0YjMyNWRkYy4uYTQ3M2FhOGNmN2RhMGM5MzkzZWVkMjc5ZDE3MDQyYWU0
Y2U3ZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRX
b3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMyw0ICsyMyw2IEBACiBtZXNzYWdlcyAt
PiBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFJl
cXVlc3RTaGFyZWRXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBzaGFyZWRX
b3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllciwgV2ViQ29yZTo6VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0
LCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyB3b3JrZXJPcHRpb25zKQogICAgIFNoYXJl
ZFdvcmtlck9iamVjdElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkg
c2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCisgICAgU3VzcGVuZEZvckJhY2tGb3J3YXJkQ2Fj
aGUoc3RydWN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBzaGFyZWRXb3JrZXJLZXksIFdlYkNv
cmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRp
ZmllcikKKyAgICBSZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKHN0cnVjdCBXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJLZXkgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJ
ZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCmluZGV4IDQ0NmI5ZTU2ZGE5NTEyYzg1MjkxYWU3MWQwZjA4MzNmODAyYTM5NDEuLjVlNDNm
MTFjZjNhNmMzNGY5OTc3ZDU0ZmJhNjYxYTUzYzliYTMzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
CkBAIC0xMDUsNiArMTA1LDE2IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6bGF1bmNoU2hhcmVkV29ya2VyKFdlYlNoYXJlZFdvcmtlCiAgICAgfSk7CiB9
CiAKK3ZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c3VzcGVu
ZFNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTdXNwZW5kU2hhcmVkV29ya2VyIHsgaWRlbnRpZmllciB9KTsKK30KKwordm9pZCBX
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZXN1bWVTaGFyZWRXb3Jr
ZXIoV2ViQ29yZTo6U2hhcmVkV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UmVz
dW1lU2hhcmVkV29ya2VyIHsgaWRlbnRpZmllciB9KTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3Jr
ZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpwb3N0Q29ubmVjdEV2ZW50KGNvbnN0IFdlYlNo
YXJlZFdvcmtlciYgc2hhcmVkV29ya2VyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3Nh
Z2VQb3J0JiBwb3J0KQogewogICAgIENPTlRFWFRfQ09OTkVDVElPTl9SRUxFQVNFX0xPRygicG9z
dENvbm5lY3RFdmVudDogc2hhcmVkV29ya2VySWRlbnRpZmllcj0lIiBQUkl1NjQsIHNoYXJlZFdv
cmtlci5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtl
ci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggOTlkYTM4
NjA2ZWNhZmUxZjBjNmYzMGQ1NWNkMTA4OWY0MmQ3NDY5MS4uODUxZGNjODdhM2JjOGViNmE4YjU1
MjE2ZmVkZTkwN2M2YzczODMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNo
YXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNjQsNiArNjQsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Q29ubmVjdEV2ZW50KGNvbnN0IFdlYlNoYXJlZFdvcmtlciYs
IGNvbnN0IFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQmKTsKICAgICB2b2lkIHRlcm1p
bmF0ZVNoYXJlZFdvcmtlcihjb25zdCBXZWJTaGFyZWRXb3JrZXImKTsKIAorICAgIHZvaWQgc3Vz
cGVuZFNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHJlc3VtZVNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsK
KwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIEhhc2hTZXQ8
V2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj4+JiBzaGFyZWRXb3JrZXJPYmpl
Y3RzKCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWRXb3JrZXJPYmplY3RzOyB9CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVk
V29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IDhlZGE3YWI1OTgzMTA0MDMxYWM1MjMyZmFhNGViZDg1ZjBl
Njc4MWUuLjgyZDVkZWRmOGZhYzRiM2ZkYzQ1ZDU2NDVlNDRjN2VlZGQ1ZmMzMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlckNvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTI3LDQgKzI3LDYgQEAgbWVzc2FnZXMgLT4gV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICAgICBT
ZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2VudCkKICAgICBDbG9zZSgpCisgICAgU3VzcGVuZFNo
YXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyIHNoYXJlZFdvcmtlcklk
ZW50aWZpZXIpCisgICAgUmVzdW1lU2hhcmVkV29ya2VyKFdlYkNvcmU6OlNoYXJlZFdvcmtlcklk
ZW50aWZpZXIgc2hhcmVkV29ya2VySWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2Jq
ZWN0Q29ubmVjdGlvbi5jcHAKaW5kZXggNWRkYmRlNDRhOTZiMTVjYzM2NzE5MGQ4YWNkMTc3MzEz
Mjk0NWJkZS4uMWU5YzA0MGRjMzYyNmMyNmEzYjg3MGNkNzIyMDNlM2I1MmM5M2I0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2Jq
ZWN0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5jcHAKQEAgLTY1LDYgKzY1LDE4IEBAIHZv
aWQgV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbjo6c2hhcmVkV29ya2VyT2JqZWN0SXNH
b2luZ0F3YXkoY29uc3QgV2ViQ29yCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2Vy
U2VydmVyQ29ubmVjdGlvbjo6U2hhcmVkV29ya2VyT2JqZWN0SXNHb2luZ0F3YXkgeyBzaGFyZWRX
b3JrZXJLZXksIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgfSk7CiB9CiAKK3ZvaWQgV2Vi
U2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbjo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUo
Y29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBzaGFyZWRXb3JrZXJLZXksIFdlYkNvcmU6
OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cikKK3sKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJzdXNwZW5kRm9yQmFja0ZvcndhcmRD
YWNoZTogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwgc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb246OlN1c3BlbmRGb3JCYWNr
Rm9yd2FyZENhY2hlIHsgc2hhcmVkV29ya2VyS2V5LCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlm
aWVyIH0pOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb246OnJlc3Vt
ZUZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBzaGFy
ZWRXb3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJy
ZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlOiBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyPSV7
cHVibGljfXMiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVj
dGlvbjo6UmVzdW1lRm9yQmFja0ZvcndhcmRDYWNoZSB7IHNoYXJlZFdvcmtlcktleSwgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllciB9KTsKK30KKwogI3VuZGVmIENPTk5FQ1RJT05fUkVMRUFT
RV9MT0cKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJPYmplY3RDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJPYmplY3RDb25u
ZWN0aW9uLmgKaW5kZXggNDc4MTkzZWY3ZGRhZjA2MWQ2ZWI1MjhlZGY5M2RiYzQxMTdhMzIzNS4u
ODY3N2VkNDcwNDQzOWFlMTlhNmM1YmUyNzIxYTc2NGFjNjQxYWYyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdv
cmtlck9iamVjdENvbm5lY3Rpb24uaApAQCAtNDQsNiArNDQsOCBAQCBwcml2YXRlOgogICAgIC8v
IFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24uCiAgICAgdm9pZCByZXF1ZXN0
U2hhcmVkV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBv
cnQmJiwgY29uc3QgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyYpIGZpbmFsOwogICAgIHZvaWQgc2hh
cmVkV29ya2VyT2JqZWN0SXNHb2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5
JiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9p
ZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJL
ZXkmLCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2
b2lkIHJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2Vy
S2V5JiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgZmluYWw7CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5OTJjNWQ0YjU3MzE0ZWIxZTk0
YmM5ZGE3MTNhNGFjNTBkMjFkZTUuLjEwYzJlMzI2YWRlNzEyN2IzMmU0NDMxNGQ3ZTA0ZjdmYmU0
MTM5OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0xMyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQSBzaGFyZWQgd29ya2VyIGluIGEgY2FjaGVk
IHBhZ2Ugc2hvdWxkIG5vdCBhbGxvdyB0aGUgcmVtb3RlIHNoYXJlZCB3b3JrZXIgdG8gY29udGlu
dWUgZXhlY3V0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzkyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1zaGFyZWQtd29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXItZm9yLXNoYXJlZHdvcmtlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3NoYXJl
ZC13b3JrZXItc2NyaXB0LmpzOiBBZGRlZC4KKwogMjAyMi0wNC0xMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHdvcmtlcnMgYXMgc2VydmljZSB3
b3JrZXIgY2xpZW50cyBhbmQgaW1wbGVtZW50IHJlZ2lzdHJhdGlvbiBtYXRjaGluZyBmb3IgZGVk
aWNhdGVkIHdvcmtlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtc2hhcmVkLXdvcmtlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzE2OTQ5OTk0NTIzN2FmYzk3NTcxMzRiNDM1Nzk0YmIzMDY3NDgyMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXNoYXJlZC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Rz
IHRoYXQgYSBwYWdlIHdpdGggYSBTaGFyZWRXb3JrZXIgZ29lcyBpbnRvIHRoZSBwYWdlIGNhY2hl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworcGFnZXNob3cgLSBub3QgZnJvbSBj
YWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQ
QVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZQor
UEFTUyBjb3VudGVyIGlzIGJlbG93IDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NTlmYWUzZWM4N2ExMTFjMTcxZjUxMzVmODZiNWY5MTc1YmJhMmM1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtc2hh
cmVkLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgVXNlc0JhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgU2hh
cmVkV29ya2VyIGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOwordmFyIHN3
OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBhc3luYyBmdW5jdGlvbihl
dmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIg
OiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKKworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsK
KyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9t
IHRoZSBwYWdlIGNhY2hlIik7CisgICAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IHRydWU7
CisKKyAgICAgICAgc3cucG9ydC5wb3N0TWVzc2FnZSgnY291bnRlcicpOworICAgICAgICBjb25z
dCBjb3VudGVyID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzdy5wb3J0Lm9ubWVzc2Fn
ZSA9IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7CisgICAgICAgIGlmIChjb3VudGVy
IDwgMTAwKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiY291bnRlciBpcyBiZWxvdyAxMDAiKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiY291bnRlciBpcyBhYm92ZSAx
MDAiKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaEpTVGVzdCwgMCk7CisgICAgfQorfSwg
ZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihl
dmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIg
OiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hl
LiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgc3cgPSBuZXcgU2hh
cmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1zY3JpcHQuanMnKTsKKyAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgLy8gRm9yY2UgYSBiYWNrIG5hdmlnYXRpb24gYmFj
ayB0byB0aGlzIHBhZ2UuCisgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJyZXNvdXJjZXMv
cGFnZS1jYWNoZS1oZWxwZXItZm9yLXNoYXJlZHdvcmtlci5odG1sIjsKKyAgICB9LCAxMDAwKTsK
K30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci1m
b3Itc2hhcmVkd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLWZvci1zaGFyZWR3b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MGUyYTBhZTNiODdkZjBkZGMzNmNlZWMzM2FkYTA1ODNlNGU5MzBmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdl
LWNhY2hlLWhlbHBlci1mb3Itc2hhcmVkd29ya2VyLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorVGhp
cyBwYWdlIHNob3VsZCBnbyBiYWNrLiBJZiBhIHRlc3Qgb3V0cHV0cyB0aGUgY29udGVudHMgb2Yg
dGhpcworcGFnZSwgdGhlbiB0aGUgdGVzdCBwYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgcGFnZSBj
YWNoZS4KKzxzY3JpcHQ+Cit2YXIgY2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdzaGFy
ZWQtd29ya2VyJyk7Cithc3luYyBmdW5jdGlvbiBkb1Rlc3QoY291bnRlcikKK3sKKyAgICBpZiAo
IWNvdW50ZXIpCisgICAgICAgIGNvdW50ZXIgPSAwOworICAgIGVsc2UgaWYgKGNvdW50ZXIgPj0g
MTAwKQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFubmVsLnBvc3RNZXNzYWdlKCdwaW5nJyk7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
IGxldCBteVRpbWVyID0gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKTsKKyAgICAgICAgIGNoYW5u
ZWwub25tZXNzYWdlID0gYXN5bmMgKCkgPT4geworICAgICAgICAgICAgIGNsZWFyVGltZW91dCht
eVRpbWVyKTsKKyAgICAgICAgICAgICAvLyBXZSByZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBzaGFy
ZWQgd29ya2VyLCBsZXQncyBjYWxsIGRvVGVzdCB0byByZXRyeS4KKyAgICAgICAgICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICAg
ICAgICAgICBkb1Rlc3QoKytjb3VudGVyKS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAg
ICB9OworICAgIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5j
ICgpID0+IHsKKyAgICBhd2FpdCBkb1Rlc3QoKTsKKyAgICBoaXN0b3J5LmJhY2soKTsKK30sIGZh
bHNlKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLXNjcmlwdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1zY3JpcHQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWU5ZTgxMGEzNjFmNDUyNWJlZDA2NWI1YjM1MzhiNmE4MTZjY2FlZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
c2hhcmVkLXdvcmtlci1zY3JpcHQuanMKQEAgLTAsMCArMSwxNSBAQAordmFyIGNoYW5uZWwgPSBu
ZXcgQnJvYWRjYXN0Q2hhbm5lbCgnc2hhcmVkLXdvcmtlcicpOwordmFyIGNvdW50ZXIgPSAwOwor
Y2hhbm5lbC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0g
J3BpbmcnKSB7CisgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgY2hhbm5lbC5wb3N0TWVzc2Fn
ZSgncG9uZycpOworICAgIH0KK30KK3NlbGYub25jb25uZWN0ID0gZnVuY3Rpb24oZSkgeworICAg
IGNvbnN0IHBvcnQgPSBlLnBvcnRzWzBdOworICAgIHBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9
PiB7CisgICAgICAgIGlmIChldmVudC5kYXRhID09PSAnY291bnRlcicpCisgICAgICAgICAgICBw
b3J0LnBvc3RNZXNzYWdlKGNvdW50ZXIpOworICAgIH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457536</attachid>
            <date>2022-04-13 08:47:32 -0700</date>
            <delta_ts>2022-04-14 00:17:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239286-20220413174730.patch</filename>
            <type>text/plain</type>
            <size>34667</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1NmYzNmQwMmM0ZThi
MzhiMTc0NDBlYTI5M2Q5ZWQzMGI3NzY3OS4uZTNkYTE1OGY0ZjhmMGYzYmYxM2I1NDAwZDIxMzll
OWIwNDk0OGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTA0LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBIHNoYXJlZCB3b3JrZXIg
aW4gYSBjYWNoZWQgcGFnZSBzaG91bGQgbm90IGFsbG93IHRoZSByZW1vdGUgc2hhcmVkIHdvcmtl
ciB0byBjb250aW51ZSBleGVjdXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzOTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNoYXJlZFdvcmtlciBuZWVkIHRvIHJlYWN0IHRvIHJlc3VtZS9zdXNw
ZW5kIGluIGNhc2Ugb2YgcGFnZSBjYWNoZSBzbyB0aGF0IHRoZSBjb3JyZXNwb25kaW5nCisgICAg
ICAgIHJlbW90ZSBzaGFyZWQgd29ya2VyIG1pZ2h0IGdldCBzdXNwZW5kZWQgaWYgYWxsIGl0cyBz
aGFyZWQgd29ya2VyIG9iamVjdHMgYXJlIHN1c3BlbmRlZC4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1zaGFyZWQtd29ya2VyLmh0bWwKKworICAgICAg
ICAqIHdvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5jcHA6CisgICAgICAgICogd29ya2Vycy9z
aGFyZWQvU2hhcmVkV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9zaGFyZWQvU2hhcmVkV29y
a2VyT2JqZWN0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVkL2NvbnRleHQv
U2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVk
L2NvbnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKwogMjAyMi0wNC0xMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHdvcmtlcnMg
YXMgc2VydmljZSB3b3JrZXIgY2xpZW50cyBhbmQgaW1wbGVtZW50IHJlZ2lzdHJhdGlvbiBtYXRj
aGluZyBmb3IgZGVkaWNhdGVkIHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2I1OGZiY2QzMzNkZmMxZDE4
NGE2YjE3YjA3ZDEwNzI4ZGU2ZTQxZi4uMTdhMTljYjRlYTcwNDEwNDAyMzY3NGI3YTJiNjJmNjg5
ZDY3ZDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMi0wNC0xMyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQSBzaGFyZWQgd29ya2VyIGluIGEg
Y2FjaGVkIHBhZ2Ugc2hvdWxkIG5vdCBhbGxvdyB0aGUgcmVtb3RlIHNoYXJlZCB3b3JrZXIgdG8g
Y29udGludWUgZXhlY3V0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdG9yZSB3aGV0aGVyIHNoYXJlZCB3b3JrZXIgb2JqZWN0cyBhcmUgc3VzcGVu
ZGVkIG9yIHJlc3VtZWQuCisgICAgICAgIElmIGFsbCBvYmplY3RzIGFyZSBzdXNwZW5kZWQsIHN1
c3BlbmQgdGhlIHJlbW90ZSBzaGFyZWQgd29ya2VyLgorICAgICAgICBPdGhlcndpc2UsIGtlZXAg
dGhlIHJlbW90ZSBzaGFyZWQgd29ya2VyIGxpdmUuCisgICAgICAgIEFkZCBwbHVtYmluZyBjb2Rl
IHRvIG1ha2UgdGhpcyBoYXBwZW4uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlci5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVy
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2Vy
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
U2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTaGFyZWRXb3JrZXJPYmplY3RDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5oOgorCiAyMDIyLTA0LTEy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd29y
a2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGllbnRzIGFuZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9u
IG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2hhcmVkL1NoYXJlZFdvcmtlci5jcHAKaW5kZXggY2JhY2I0YTIwMDVkYjI1ZTE1YWYwMWQz
ZmU0ODE5MTVkZTVlMWViNC4uNDkxOGVlN2U1MDQ5NTZkMDY2NDFmZWVlNjRkNzYxMDMyMGIyNWQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXIuY3Bw
CkBAIC0xNjUsNiArMTY1LDIyIEBAIHZvaWQgU2hhcmVkV29ya2VyOjpzdG9wKCkKICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbigpLT5zaGFyZWRXb3JrZXJPYmplY3RJc0dvaW5nQXdheShtX2tleSwg
bV9pZGVudGlmaWVyKTsKIH0KIAordm9pZCBTaGFyZWRXb3JrZXI6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5z
aW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uKCkt
PnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKG1fa2V5LCBtX2lkZW50aWZpZXIpOworICAgICAg
ICBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgfQorfQorCit2
b2lkIFNoYXJlZFdvcmtlcjo6cmVzdW1lKCkKK3sKKyAgICBpZiAobV9pc1N1c3BlbmRlZEZvckJh
Y2tGb3J3YXJkQ2FjaGUpIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24oKS0+cmVzdW1l
Rm9yQmFja0ZvcndhcmRDYWNoZShtX2tleSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgbV9pc1N1
c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKKyAgICB9Cit9CisKICN1bmRlZiBT
SEFSRURfV09SS0VSX1JFTEVBU0VfTE9HCiAjdW5kZWYgU0hBUkVEX1dPUktFUl9SRUxFQVNFX0xP
R19FUlJPUgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFy
ZWRXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5o
CmluZGV4IGNkZDI2OWYzNjE5MTY5ZDRhYjA1ZjYwZDFhNzRiODhjMDIzZmQyMzEuLmJlMGI0Y2I4
YTI1MjgyNzE0ZjNmODY1ZDM4NWM1YTBmZTI3ZDY3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlci5oCkBAIC02Niw2ICs2Niw4IEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgc3RvcCgpIGZpbmFsOwogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsK
KyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogCiAKICAgICBTaGFyZWRXb3JrZXJLZXkgbV9rZXk7
CkBAIC03NCw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1faWRlbnRpZmllckZvcklu
c3BlY3RvcjsKICAgICBCbG9iVVJMSGFuZGxlIG1fYmxvYlVSTEV4dGVuc2lvbjsKICAgICBib29s
IG1faXNBY3RpdmUgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFja0Zvcndh
cmRDYWNoZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJPYmplY3RDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJPYmpl
Y3RDb25uZWN0aW9uLmgKaW5kZXggOGY5YzA0ZTk2NTE4NjhlMjJlODY1NDk2NTNmYWNjOGNkYzhh
ODhjYi4uZDJlMjQ3MzcxMTRmNjFkYTIwYWQ1OWI3ZjdmYjAwZDVlMDU5YmI3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlck9i
amVjdENvbm5lY3Rpb24uaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFNoYXJlZFdvcmtlcihjb25zdCBTaGFyZWRXb3JrZXJLZXkmLCBTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYsIGNvbnN0IFdv
cmtlck9wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNoYXJlZFdvcmtlck9iamVjdElz
R29pbmdBd2F5KGNvbnN0IFNoYXJlZFdvcmtlcktleSYsIFNoYXJlZFdvcmtlck9iamVjdElkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUo
Y29uc3QgU2hhcmVkV29ya2VyS2V5JiwgU2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKGNvbnN0IFNoYXJl
ZFdvcmtlcktleSYsIFNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIC8vIElQQyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKaW5kZXggYmQ2MGNlNmUwZmY0YWEzMDA5OThmYTYzYzI0OTI5MzU4MTA4OWNhZi4u
YzRkMWNmMDcyODVlOTZhZmMzNDA0NGZiYjk3Mzc2YjY2YmFjNzYyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKQEAgLTY0LDYgKzY0LDIyIEBAIHZvaWQgU2hhcmVk
V29ya2VyQ29udGV4dE1hbmFnZXI6OnN0b3BTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRp
ZmllciBzaGFyZWRXCiAgICAgfSk7CiB9CiAKK3ZvaWQgU2hhcmVkV29ya2VyQ29udGV4dE1hbmFn
ZXI6OnN1c3BlbmRTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllciBzaGFyZWRXb3Jr
ZXJJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzaGFy
ZWRXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJTaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3VzcGVuZFNoYXJlZFdvcmtlcjogc2hhcmVkV29ya2Vy
SWRlbnRpZmllcj0lIiBQUkl1NjQgIiwgd29ya2VyPSVwIiwgc2hhcmVkV29ya2VySWRlbnRpZmll
ci50b1VJbnQ2NCgpLCB3b3JrZXIpOworICAgIGlmICh3b3JrZXIpCisgICAgICAgIHdvcmtlci0+
dGhyZWFkKCkuc3VzcGVuZCgpOworfQorCit2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpyZXN1bWVTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllciBzaGFyZWRXb3JrZXJJ
ZGVudGlmaWVyKQoreworICAgIGF1dG8qIHdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzaGFyZWRX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJTaGFyZWRX
b3JrZXJDb250ZXh0TWFuYWdlcjo6cmVzdW1lU2hhcmVkV29ya2VyOiBzaGFyZWRXb3JrZXJJZGVu
dGlmaWVyPSUiIFBSSXU2NCAiLCB3b3JrZXI9JXAiLCBzaGFyZWRXb3JrZXJJZGVudGlmaWVyLnRv
VUludDY0KCksIHdvcmtlcik7CisgICAgaWYgKHdvcmtlcikKKyAgICAgICAgd29ya2VyLT50aHJl
YWQoKS5yZXN1bWUoKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3Rv
cEFsbFNoYXJlZFdvcmtlcnMoKQogewogICAgIHdoaWxlICghbV93b3JrZXJNYXAuaXNFbXB0eSgp
KQpAQCAtMTEzLDYgKzEyOSwxNiBAQCB2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpD
b25uZWN0aW9uOjp0ZXJtaW5hdGVTaGFyZWRXb3JrZXIoU2hhcmVkV29ya2VySQogICAgIFNoYXJl
ZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zdG9wU2hhcmVkV29ya2VyKHNoYXJl
ZFdvcmtlcklkZW50aWZpZXIpOwogfQogCit2b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpDb25uZWN0aW9uOjpzdXNwZW5kU2hhcmVkV29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuc3VzcGVuZFNoYXJlZFdvcmtlcihpZGVudGlmaWVyKTsKK30KKwordm9pZCBTaGFyZWRXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbjo6cmVzdW1lU2hhcmVkV29ya2VyKFNoYXJlZFdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBTaGFyZWRXb3JrZXJDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkucmVzdW1lU2hhcmVkV29ya2VyKGlkZW50aWZpZXIpOworfQorCiB2
b2lkIFNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyOjpmb3JFYWNoU2hhcmVkV29ya2VyKGNvbnN0
IEZ1bmN0aW9uPEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPigpPiYgY3Jl
YXRlVGFzaykKIHsKICAgICBmb3IgKGF1dG8mIHdvcmtlciA6IG1fd29ya2VyTWFwLnZhbHVlcygp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQv
Y29udGV4dC9TaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlci5oCmluZGV4IGQ1MWZmMDA5Y2I5MzY3
OGU2ZmFlYmYyNDgwOTY2YTcwODIxODAxODMuLjZiYjk1ODc5ZTgwY2U2NTVjNWNhMzE0ZjhiYzYw
MDRkNzI5Mzg2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2Nv
bnRleHQvU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTQw
LDYgKzQwLDggQEAgcHVibGljOgogCiAgICAgU2hhcmVkV29ya2VyVGhyZWFkUHJveHkqIHNoYXJl
ZFdvcmtlcihTaGFyZWRXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICB2b2lkIHN0b3BTaGFy
ZWRXb3JrZXIoU2hhcmVkV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBzdXNwZW5kU2hhcmVk
V29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgcmVzdW1lU2hhcmVkV29y
a2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rv
cEFsbFNoYXJlZFdvcmtlcnMoKTsKIAogICAgIGNsYXNzIENvbm5lY3Rpb24gewpAQCAtNTYsNiAr
NTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RDb25uZWN0RXZlbnQoU2hhcmVkV29ya2VySWRlbnRp
ZmllciwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwog
ICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVNoYXJlZFdvcmtlcihTaGFyZWRX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdXNwZW5kU2hh
cmVkV29ya2VyKFNoYXJlZFdvcmtlcklkZW50aWZpZXIpOworICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlc3VtZVNoYXJlZFdvcmtlcihTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyLmNwcAppbmRleCAxNTg4MmEzZDQ2M2IzZWI5OTg5YmM0ZmE0MWU1NThkZmIyMTli
NWZmLi44MmJkOTUyMmQzODlhMjNiMGU2NWQ1NzI5NDI0MjNkMjJlYTFiZWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3Jr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlci5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXI6
OmRpZENyZWF0ZUNvbnRleHRDb25uZWN0aW9uKFdlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4
dEMKIAogdm9pZCBXZWJTaGFyZWRXb3JrZXI6OmFkZFNoYXJlZFdvcmtlck9iamVjdChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQmIHBvcnQpCiB7Ci0gICAg
bV9zaGFyZWRXb3JrZXJPYmplY3RzLmFkZChzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBw
b3J0KTsKKyAgICBtX3NoYXJlZFdvcmtlck9iamVjdHMuYWRkKHNoYXJlZFdvcmtlck9iamVjdElk
ZW50aWZpZXIsIFNoYXJlZFdvcmtlck9iamVjdFN0YXRlIHsgZmFsc2UsIHBvcnQgfSk7CiAgICAg
aWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVjdGlvbigpKQogICAgICAgICBjb25u
ZWN0aW9uLT5hZGRTaGFyZWRXb3JrZXJPYmplY3Qoc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cik7CiB9CkBAIC05MiwxMCArOTIsNDYgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXI6OnJlbW92ZVNo
YXJlZFdvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGkKICAgICAg
ICAgY29ubmVjdGlvbi0+cmVtb3ZlU2hhcmVkV29ya2VyT2JqZWN0KHNoYXJlZFdvcmtlck9iamVj
dElkZW50aWZpZXIpOwogfQogCit2b2lkIFdlYlNoYXJlZFdvcmtlcjo6c3VzcGVuZChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2hhcmVkV29ya2VyT2JqZWN0cy5maW5kKHNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NoYXJl
ZFdvcmtlck9iamVjdHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGl0ZXJhdG9yLT52
YWx1ZS5pc1N1c3BlbmRlZCA9IHRydWU7CisgICAgQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKKyAg
ICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBz
dGF0ZSA6IG1fc2hhcmVkV29ya2VyT2JqZWN0cy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIXN0
YXRlLmlzU3VzcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faXNT
dXNwZW5kZWQgPSB0cnVlOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gY29udGV4dENvbm5l
Y3Rpb24oKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c3VzcGVuZFNoYXJlZFdvcmtlcihpZGVudGlm
aWVyKCkpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlcjo6cmVzdW1lKFdlYkNvcmU6OlNoYXJl
ZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sK
KyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zaGFyZWRXb3JrZXJPYmplY3RzLmZpbmQoc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc2hhcmVkV29ya2Vy
T2JqZWN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaXRlcmF0b3ItPnZhbHVlLmlz
U3VzcGVuZGVkID0gZmFsc2U7CisgICAgaWYgKCFtX2lzU3VzcGVuZGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBjb250ZXh0Q29ubmVjdGlvbigpKQorICAgICAgICBjb25uZWN0aW9uLT5yZXN1bWVTaGFy
ZWRXb3JrZXIoaWRlbnRpZmllcigpKTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3JrZXI6OmZvckVh
Y2hTaGFyZWRXb3JrZXJPYmplY3QoY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQ
b3J0Jik+JiBhcHBseSkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIFtzaGFyZWRXb3JrZXJPYmpl
Y3RJZGVudGlmaWVyLCBwb3J0XSA6IG1fc2hhcmVkV29ya2VyT2JqZWN0cykKLSAgICAgICAgYXBw
bHkoc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgcG9ydCk7CisgICAgZm9yIChhdXRvJiBb
c2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgc3RhdGVdIDogbV9zaGFyZWRXb3JrZXJPYmpl
Y3RzKQorICAgICAgICBhcHBseShzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBzdGF0ZS5w
b3J0KTsKIH0KIAogc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gV2Vi
U2hhcmVkV29ya2VyOjpmaXJzdFNoYXJlZFdvcmtlck9iamVjdFByb2Nlc3MoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXIuaAppbmRleCA3NTM1MjRmNjRjMmIyY2RlNmFmYjllYWU4YTA1NDdlMWVh
NDk3NjVkLi4xMzlmNjA3MDIwNjBlMDRhNjg5MmI3ZjFhMzU3OGU4MmQwNjZiYTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXIuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFk
ZFNoYXJlZFdvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik7CiAgICAgdm9pZCByZW1v
dmVTaGFyZWRXb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cik7CisgICAgdm9pZCBzdXNwZW5kKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpOworICAgIHZvaWQgcmVzdW1lKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZp
ZXIpOwogICAgIHVuc2lnbmVkIHNoYXJlZFdvcmtlck9iamVjdHNDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hhcmVkV29ya2VyT2JqZWN0cy5zaXplKCk7IH0KICAgICB2b2lkIGZvckVhY2hTaGFy
ZWRXb3JrZXJPYmplY3QoY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpTaGFyZWRXb3JrZXJP
YmplY3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik+
JikgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4g
Zmlyc3RTaGFyZWRXb3JrZXJPYmplY3RQcm9jZXNzKCkgY29uc3Q7CkBAIC03OSwxMyArODEsMTkg
QEAgcHJpdmF0ZToKICAgICBXZWJTaGFyZWRXb3JrZXIoY29uc3QgV2ViU2hhcmVkV29ya2VyJikg
PSBkZWxldGU7CiAgICAgV2ViU2hhcmVkV29ya2VyJiBvcGVyYXRvcj0oY29uc3QgV2ViU2hhcmVk
V29ya2VyJikgPSBkZWxldGU7CiAKKyAgICBzdHJ1Y3QgU2hhcmVkV29ya2VyT2JqZWN0U3RhdGUg
eworICAgICAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICAgICAgV2ViQ29yZTo6
VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0OworICAgIH07CisKICAgICBXZWJTaGFyZWRXb3Jr
ZXJTZXJ2ZXImIG1fc2VydmVyOwogICAgIFdlYkNvcmU6OlNoYXJlZFdvcmtlcklkZW50aWZpZXIg
bV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBtX2tleTsKICAgICBX
ZWJDb3JlOjpXb3JrZXJPcHRpb25zIG1fd29ya2VyT3B0aW9uczsKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVz
c2FnZVBvcnQ+IG1fc2hhcmVkV29ya2VyT2JqZWN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFNoYXJlZFdvcmtlck9iamVjdFN0YXRlPiBtX3No
YXJlZFdvcmtlck9iamVjdHM7CiAgICAgV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQgbV9mZXRj
aFJlc3VsdDsKICAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNT
dXNwZW5kZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAppbmRleCA1ODFhNmU4ZTQ5Y2I3NjYwMTcxNTBj
OTMwNjcwNGZkNzg5MDhiYjNjLi45YTY5ZjEzOGY5ZjVkYzMzNmYwMzM4YTcwYzU0ZTExMjNlNDYy
ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtl
ci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5jcHAKQEAgLTIwNSw2ICsy
MDUsMjYgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnNoYXJlZFdvcmtlck9iamVjdElz
R29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OlNoYXJlZFcKICAgICBzaHV0RG93blNoYXJlZFdvcmtl
cihzaGFyZWRXb3JrZXJLZXkpOwogfQogCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6c3Vz
cGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBz
aGFyZWRXb3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hh
cmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiBzaGFyZWRXb3JrZXIgPSBt
X3NoYXJlZFdvcmtlcnMuZ2V0KHNoYXJlZFdvcmtlcktleSk7CisgICAgUkVMRUFTRV9MT0coU2hh
cmVkV29ya2VyLCAiV2ViU2hhcmVkV29ya2VyU2VydmVyOjpzdXNwZW5kRm9yQmFja0ZvcndhcmRD
YWNoZTogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zLCBzaGFyZWRXb3Jr
ZXI9JXAiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgc2hhcmVkV29ya2VyKTsKKyAgICBpZiAoIXNoYXJlZFdvcmtlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2hhcmVkV29ya2VyLT5zdXNwZW5kKHNoYXJlZFdvcmtlck9iamVjdElkZW50
aWZpZXIpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6cmVzdW1lRm9yQmFja0Zv
cndhcmRDYWNoZShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkmIHNoYXJlZFdvcmtlcktl
eSwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciBzaGFyZWRXb3JrZXJPYmpl
Y3RJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHNoYXJlZFdvcmtlciA9IG1fc2hhcmVkV29ya2Vy
cy5nZXQoc2hhcmVkV29ya2VyS2V5KTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICJX
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGU6IHNoYXJlZFdv
cmtlck9iamVjdElkZW50aWZpZXI9JXtwdWJsaWN9cywgc2hhcmVkV29ya2VyPSVwIiwgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNoYXJlZFdv
cmtlcik7CisgICAgaWYgKCFzaGFyZWRXb3JrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHNo
YXJlZFdvcmtlci0+cmVzdW1lKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworfQorCiB2
b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6c2h1dERvd25TaGFyZWRXb3JrZXIoY29uc3QgV2Vi
Q29yZTo6U2hhcmVkV29ya2VyS2V5JiBrZXkpCiB7CiAgICAgYXV0byBzaGFyZWRXb3JrZXIgPSBt
X3NoYXJlZFdvcmtlcnMudGFrZShrZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIu
aAppbmRleCBmOGI0NWFlNGEwMThlYWYwMzYxMGE1YjlhZmQ5ZmM1NjNiNjEyZjhlLi5iMjA2YWYy
YzBlYzJiMjhlMTE5NjgzZGRlMGRmNzQwMWQwODgyOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXJTZXJ2ZXIuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlcXVl
c3RTaGFyZWRXb3JrZXIoV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiYsIFdlYkNvcmU6OlNoYXJl
ZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQm
JiwgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyYmKTsKICAgICB2b2lkIHNoYXJlZFdvcmtlck9iamVj
dElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpOworICAgIHZvaWQgc3VzcGVuZEZvckJhY2tGb3J3
YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiwgV2ViQ29yZTo6U2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENh
Y2hlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNoYXJlZFdvcmtl
ck9iamVjdElkZW50aWZpZXIpOwogICAgIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0
KFdlYkNvcmU6OlNoYXJlZFdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJs
ZShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVk
V29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggZTg4MWRjNTM0YzkzNDEwZWU5MWMwYTNjMDYyYjAzMjFlM2Q2YmE3NC4u
OWE2ZDM2NWUzMGM4ZmZiMGY3YTVkMjQ2ZGZlZmFhYjZiMjVhOGJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFy
ZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk4LDYgKzk4
LDIyIEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbjo6c2hhcmVkV29ya2Vy
T2JqZWN0SXNHb2luZ0F3YXkoV2ViQ29yZTo6U2hhCiAgICAgICAgIHNlc3Npb24tPmVuc3VyZVNo
YXJlZFdvcmtlclNlcnZlcigpLnNoYXJlZFdvcmtlck9iamVjdElzR29pbmdBd2F5KHNoYXJlZFdv
cmtlcktleSwgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgV2ViU2hh
cmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbjo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoV2Vi
Q29yZTo6U2hhcmVkV29ya2VyS2V5JiYgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRX
b3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCit7Cisg
ICAgQ09OTkVDVElPTl9NRVNTQUdFX0NIRUNLKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIu
cHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBDT05O
RUNUSU9OX1JFTEVBU0VfTE9HKCJzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZTogc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRp
Zmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
dGhpcy0+c2Vzc2lvbigpKQorICAgICAgICBzZXNzaW9uLT5lbnN1cmVTaGFyZWRXb3JrZXJTZXJ2
ZXIoKS5zdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShzaGFyZWRXb3JrZXJLZXksIHNoYXJlZFdv
cmtlck9iamVjdElkZW50aWZpZXIpOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlckNv
bm5lY3Rpb246OnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
S2V5JiYgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlm
aWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCit7CisgICAgQ09OTkVDVElPTl9NRVNT
QUdFX0NIRUNLKHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIo
KSA9PSBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9H
KCJyZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlOiBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
PSV7cHVibGljfXMiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCisg
ICAgICAgIHNlc3Npb24tPmVuc3VyZVNoYXJlZFdvcmtlclNlcnZlcigpLnJlc3VtZUZvckJhY2tG
b3J3YXJkQ2FjaGUoc2hhcmVkV29ya2VyS2V5LCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
KTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uOjpmZXRjaFNjcmlw
dEluQ2xpZW50KGNvbnN0IFdlYlNoYXJlZFdvcmtlciYgc2hhcmVkV29ya2VyLCBXZWJDb3JlOjpT
aGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQ09OTkVDVElPTl9SRUxFQVNFX0xPRygiZmV0Y2hT
Y3JpcHRJbkNsaWVudDogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwg
c2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2Vi
U2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4
IDNiOGEyYzIzMjRhZTk4ZTYzOWMyODE5ODk0Njg4NTY2MDZlNGUzZjMuLmI0MTkxOTY1YzM0MjVm
ZjFlMDZhZjM3ZTRiYTI1YjQ1MmM4MmZmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc1LDYgKzc1LDggQEAgcHJpdmF0ZToKICAg
ICAvLyBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCByZXF1ZXN0U2hhcmVkV29ya2VyKFdlYkNvcmU6
OlNoYXJlZFdvcmtlcktleSYmLCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVy
LCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYsIFdlYkNvcmU6Oldvcmtlck9wdGlv
bnMmJik7CiAgICAgdm9pZCBzaGFyZWRXb3JrZXJPYmplY3RJc0dvaW5nQXdheShXZWJDb3JlOjpT
aGFyZWRXb3JrZXJLZXkmJiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7
CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShXZWJDb3JlOjpTaGFyZWRXb3Jr
ZXJLZXkmJiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CisgICAgdm9p
ZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYmLCBX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29udGVudENvbm5lY3Rpb247CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBt
X25ldHdvcmtQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdv
cmtlclNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZDcyYTg3YjdlY2Y0NDZjOTE5
NGQzYWJkYmYyMjYzMGI0YjMyNWRkYy4uYTQ3M2FhOGNmN2RhMGM5MzkzZWVkMjc5ZDE3MDQyYWU0
Y2U3ZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRX
b3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMyw0ICsyMyw2IEBACiBtZXNzYWdlcyAt
PiBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFJl
cXVlc3RTaGFyZWRXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBzaGFyZWRX
b3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllciwgV2ViQ29yZTo6VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0
LCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyB3b3JrZXJPcHRpb25zKQogICAgIFNoYXJl
ZFdvcmtlck9iamVjdElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkg
c2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCisgICAgU3VzcGVuZEZvckJhY2tGb3J3YXJkQ2Fj
aGUoc3RydWN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSBzaGFyZWRXb3JrZXJLZXksIFdlYkNv
cmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRp
ZmllcikKKyAgICBSZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKHN0cnVjdCBXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJLZXkgc2hhcmVkV29ya2VyS2V5LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJ
ZGVudGlmaWVyIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCmluZGV4IDQ0NmI5ZTU2ZGE5NTEyYzg1MjkxYWU3MWQwZjA4MzNmODAyYTM5NDEuLjVlNDNm
MTFjZjNhNmMzNGY5OTc3ZDU0ZmJhNjYxYTUzYzliYTMzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
CkBAIC0xMDUsNiArMTA1LDE2IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6bGF1bmNoU2hhcmVkV29ya2VyKFdlYlNoYXJlZFdvcmtlCiAgICAgfSk7CiB9
CiAKK3ZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c3VzcGVu
ZFNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTdXNwZW5kU2hhcmVkV29ya2VyIHsgaWRlbnRpZmllciB9KTsKK30KKwordm9pZCBX
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZXN1bWVTaGFyZWRXb3Jr
ZXIoV2ViQ29yZTo6U2hhcmVkV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UmVz
dW1lU2hhcmVkV29ya2VyIHsgaWRlbnRpZmllciB9KTsKK30KKwogdm9pZCBXZWJTaGFyZWRXb3Jr
ZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpwb3N0Q29ubmVjdEV2ZW50KGNvbnN0IFdlYlNo
YXJlZFdvcmtlciYgc2hhcmVkV29ya2VyLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3Nh
Z2VQb3J0JiBwb3J0KQogewogICAgIENPTlRFWFRfQ09OTkVDVElPTl9SRUxFQVNFX0xPRygicG9z
dENvbm5lY3RFdmVudDogc2hhcmVkV29ya2VySWRlbnRpZmllcj0lIiBQUkl1NjQsIHNoYXJlZFdv
cmtlci5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtl
ci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggOTlkYTM4
NjA2ZWNhZmUxZjBjNmYzMGQ1NWNkMTA4OWY0MmQ3NDY5MS4uODUxZGNjODdhM2JjOGViNmE4YjU1
MjE2ZmVkZTkwN2M2YzczODMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNo
YXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNjQsNiArNjQsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Q29ubmVjdEV2ZW50KGNvbnN0IFdlYlNoYXJlZFdvcmtlciYs
IGNvbnN0IFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQmKTsKICAgICB2b2lkIHRlcm1p
bmF0ZVNoYXJlZFdvcmtlcihjb25zdCBXZWJTaGFyZWRXb3JrZXImKTsKIAorICAgIHZvaWQgc3Vz
cGVuZFNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHJlc3VtZVNoYXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyKTsK
KwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIEhhc2hTZXQ8
V2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj4+JiBzaGFyZWRXb3JrZXJPYmpl
Y3RzKCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWRXb3JrZXJPYmplY3RzOyB9CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVk
V29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IDhlZGE3YWI1OTgzMTA0MDMxYWM1MjMyZmFhNGViZDg1ZjBl
Njc4MWUuLjgyZDVkZWRmOGZhYzRiM2ZkYzQ1ZDU2NDVlNDRjN2VlZGQ1ZmMzMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlckNvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTI3LDQgKzI3LDYgQEAgbWVzc2FnZXMgLT4gV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICAgICBT
ZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2VudCkKICAgICBDbG9zZSgpCisgICAgU3VzcGVuZFNo
YXJlZFdvcmtlcihXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyIHNoYXJlZFdvcmtlcklk
ZW50aWZpZXIpCisgICAgUmVzdW1lU2hhcmVkV29ya2VyKFdlYkNvcmU6OlNoYXJlZFdvcmtlcklk
ZW50aWZpZXIgc2hhcmVkV29ya2VySWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2Jq
ZWN0Q29ubmVjdGlvbi5jcHAKaW5kZXggNWRkYmRlNDRhOTZiMTVjYzM2NzE5MGQ4YWNkMTc3MzEz
Mjk0NWJkZS4uMWU5YzA0MGRjMzYyNmMyNmEzYjg3MGNkNzIyMDNlM2I1MmM5M2I0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2Jq
ZWN0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5jcHAKQEAgLTY1LDYgKzY1LDE4IEBAIHZv
aWQgV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbjo6c2hhcmVkV29ya2VyT2JqZWN0SXNH
b2luZ0F3YXkoY29uc3QgV2ViQ29yCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2Vy
U2VydmVyQ29ubmVjdGlvbjo6U2hhcmVkV29ya2VyT2JqZWN0SXNHb2luZ0F3YXkgeyBzaGFyZWRX
b3JrZXJLZXksIHNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgfSk7CiB9CiAKK3ZvaWQgV2Vi
U2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbjo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUo
Y29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBzaGFyZWRXb3JrZXJLZXksIFdlYkNvcmU6
OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
cikKK3sKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJzdXNwZW5kRm9yQmFja0ZvcndhcmRD
YWNoZTogc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj0le3B1YmxpY31zIiwgc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb246OlN1c3BlbmRGb3JCYWNr
Rm9yd2FyZENhY2hlIHsgc2hhcmVkV29ya2VyS2V5LCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlm
aWVyIH0pOworfQorCit2b2lkIFdlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb246OnJlc3Vt
ZUZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiBzaGFy
ZWRXb3JrZXJLZXksIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllcikKK3sKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJy
ZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlOiBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyPSV7
cHVibGljfXMiLCBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU2hhcmVkV29ya2VyU2VydmVyQ29ubmVj
dGlvbjo6UmVzdW1lRm9yQmFja0ZvcndhcmRDYWNoZSB7IHNoYXJlZFdvcmtlcktleSwgc2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllciB9KTsKK30KKwogI3VuZGVmIENPTk5FQ1RJT05fUkVMRUFT
RV9MT0cKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJPYmplY3RDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJPYmplY3RDb25u
ZWN0aW9uLmgKaW5kZXggNDc4MTkzZWY3ZGRhZjA2MWQ2ZWI1MjhlZGY5M2RiYzQxMTdhMzIzNS4u
ODY3N2VkNDcwNDQzOWFlMTlhNmM1YmUyNzIxYTc2NGFjNjQxYWYyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdv
cmtlck9iamVjdENvbm5lY3Rpb24uaApAQCAtNDQsNiArNDQsOCBAQCBwcml2YXRlOgogICAgIC8v
IFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24uCiAgICAgdm9pZCByZXF1ZXN0
U2hhcmVkV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFdvcmtlcktleSYsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIsIFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBv
cnQmJiwgY29uc3QgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyYpIGZpbmFsOwogICAgIHZvaWQgc2hh
cmVkV29ya2VyT2JqZWN0SXNHb2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5
JiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9p
ZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJL
ZXkmLCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2
b2lkIHJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2Vy
S2V5JiwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcikgZmluYWw7CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5OTJjNWQ0YjU3MzE0ZWIxZTk0
YmM5ZGE3MTNhNGFjNTBkMjFkZTUuLmQ5YmYzMzYyZDUxMDJmNjg5NWRiNmE1ZTVkMWEwNTM4NTFl
MjU4NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wNC0xMyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQSBzaGFyZWQgd29ya2VyIGluIGEgY2FjaGVk
IHBhZ2Ugc2hvdWxkIG5vdCBhbGxvdyB0aGUgcmVtb3RlIHNoYXJlZCB3b3JrZXIgdG8gY29udGlu
dWUgZXhlY3V0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzkyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1zaGFyZWQtd29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXItZm9yLXNoYXJlZHdvcmtlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3NoYXJl
ZC13b3JrZXItc2NyaXB0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMjItMDQtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cG9zZSB3b3JrZXJzIGFzIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgYW5kIGltcGxlbWVu
dCByZWdpc3RyYXRpb24gbWF0Y2hpbmcgZm9yIGRlZGljYXRlZCB3b3JrZXJzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1zaGFyZWQtd29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXNoYXJlZC13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNjk0OTk5NDUy
MzdhZmM5NzU3MTM0YjQzNTc5NGJiMzA2NzQ4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1zaGFyZWQtd29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgU2hhcmVk
V29ya2VyIGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcg
Y2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2Fz
IHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUKK1BBU1MgY291bnRlciBpcyBiZWxvdyAxMDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1zaGFy
ZWQtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1zaGFyZWQtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU5ZmFlM2VjODdhMTExYzE3MWY1
MTM1Zjg2YjVmOTE3NWJiYTJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXIuaHRtbApAQCAtMCwwICsx
LDUwIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFVzZXNCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFNoYXJlZFdvcmtlciBnb2VzIGludG8gdGhlIHBh
Z2UgY2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciByZXN0b3Jl
ZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKK3ZhciBzdzsKKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoInBhZ2VzaG93IiwgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZXNo
b3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hlIik7
CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2Ug
ZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSIpOworICAgICAg
ICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworCisgICAgICAgIHN3LnBvcnQucG9zdE1l
c3NhZ2UoJ2NvdW50ZXInKTsKKyAgICAgICAgY29uc3QgY291bnRlciA9IGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc3cucG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZl
bnQuZGF0YSkpOworICAgICAgICBpZiAoY291bnRlciA8IDEwMCkKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoImNvdW50ZXIgaXMgYmVsb3cgMTAwIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoImNvdW50ZXIgaXMgYWJvdmUgMTAwIik7CisKKyAgICAgICAgc2V0VGltZW91
dChmaW5pc2hKU1Rlc3QsIDApOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhp
ZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNo
ZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBh
Z2UgZGlkIG5vdCBlbnRlciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGZ1bmN0aW9uKCkgeworICAgIHN3ID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2VzL3NoYXJl
ZC13b3JrZXItc2NyaXB0LmpzJyk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
IC8vIEZvcmNlIGEgYmFjayBuYXZpZ2F0aW9uIGJhY2sgdG8gdGhpcyBwYWdlLgorICAgICAgd2lu
ZG93LmxvY2F0aW9uLmhyZWYgPSAicmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLWZvci1zaGFy
ZWR3b3JrZXIuaHRtbCI7CisgICAgfSwgMTAwMCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXItZm9yLXNoYXJlZHdvcmtlci5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBl
ci1mb3Itc2hhcmVkd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBlMmEwYWUzYjg3ZGYwZGRjMzZj
ZWVjMzNhZGEwNTgzZTRlOTMwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXItZm9yLXNoYXJlZHdv
cmtlci5odG1sCkBAIC0wLDAgKzEsMjggQEAKK1RoaXMgcGFnZSBzaG91bGQgZ28gYmFjay4gSWYg
YSB0ZXN0IG91dHB1dHMgdGhlIGNvbnRlbnRzIG9mIHRoaXMKK3BhZ2UsIHRoZW4gdGhlIHRlc3Qg
cGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUuCis8c2NyaXB0PgordmFyIGNoYW5u
ZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgnc2hhcmVkLXdvcmtlcicpOworYXN5bmMgZnVuY3Rp
b24gZG9UZXN0KGNvdW50ZXIpCit7CisgICAgaWYgKCFjb3VudGVyKQorICAgICAgICBjb3VudGVy
ID0gMDsKKyAgICBlbHNlIGlmIChjb3VudGVyID49IDEwMCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY2hhbm5lbC5wb3N0TWVzc2FnZSgncGluZycpOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICBsZXQgbXlUaW1lciA9IHNldFRpbWVvdXQo
cmVzb2x2ZSwgMTAwMCk7CisgICAgICAgICBjaGFubmVsLm9ubWVzc2FnZSA9IGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgICBjbGVhclRpbWVvdXQobXlUaW1lcik7CisgICAgICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gc2hhcmVkIHdvcmtlciwgbGV0J3MgY2FsbCBkb1Rl
c3QgdG8gcmV0cnkuCisgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBz
ZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgICAgICAgZG9UZXN0KCsrY291bnRlciku
dGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgfTsKKyAgICB9KTsKK30KKword2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgYXdhaXQgZG9UZXN0
KCk7CisgICAgaGlzdG9yeS5iYWNrKCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3NoYXJlZC13b3JrZXItc2NyaXB0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOWU4MTBhMzYxZjQ1MjVi
ZWQwNjViNWIzNTM4YjZhODE2Y2NhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItc2NyaXB0LmpzCkBA
IC0wLDAgKzEsMTUgQEAKK3ZhciBjaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ3NoYXJl
ZC13b3JrZXInKTsKK3ZhciBjb3VudGVyID0gMDsKK2NoYW5uZWwub25tZXNzYWdlID0gKGV2ZW50
KSA9PiB7CisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICdwaW5nJykgeworICAgICAgICBjb3VudGVy
Kys7CisgICAgICAgIGNoYW5uZWwucG9zdE1lc3NhZ2UoJ3BvbmcnKTsKKyAgICB9Cit9CitzZWxm
Lm9uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBjb25zdCBwb3J0ID0gZS5wb3J0c1swXTsK
KyAgICBwb3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICBpZiAoZXZlbnQuZGF0
YSA9PT0gJ2NvdW50ZXInKQorICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShjb3VudGVyKTsK
KyAgICB9OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDI5ZDFiMWZjZDFlZTBmNzEwZjQ0MmY3ZGJiYjQzNzhiNTk4ZTZmNmQuLmY4YzUx
ZjA0YzEyMzQ3MjAxYjA3ZjUzZDEzZmM1NGY1MjY3Yzk1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY4LDYgKzY4LDcgQEAgbWVkaWEv
YXVkaW8tc2Vzc2lvbi1jYXRlZ29yeS5odG1sIFsgU2tpcCBdCiBtZWRpYS9hdWRpby1zZXNzaW9u
LWNhdGVnb3J5LWF0LW1vc3QtcmVjZW50LXBsYXliYWNrLmh0bWwgWyBTa2lwIF0KIAogIyBTaGFy
ZWQgd29ya2VycyBhcmUgb25seSBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0Mi4KK2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXNoYXJlZC13b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9jb25uZWN0
LXNyYy9zaGFyZWQtd29ya2VyLWNvbm5lY3Qtc3JjLWFsbG93ZWQuc3ViLmh0bWwgWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
Y29ubmVjdC1zcmMvc2hhcmVkLXdvcmtlci1jb25uZWN0LXNyYy1ibG9ja2VkLnN1Yi5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHkt
cG9saWN5L2dlbi90b3AuaHR0cC1ycC9zY3JpcHQtc3JjLXNlbGYvc2hhcmVkd29ya2VyLWNsYXNz
aWMuaHR0cC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGM2YTg4NTQyMjZkMzRjMzVkMmIwZjhmN2JmM2MyMWI0OTk4ZmJlNTguLjc5
ZWFkZGFlMjM1MTcyMTZhOGNhYWIxMTYwZTA1NmZhOWJlYjEzYjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjUsNiArMTY1LDcgQEAgaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaW1nL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pbWcvdW5zYWZlLXVybC9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgU2hhcmVkIHdvcmtlcnMg
YXJlIG9ubHkgaW1wbGVtZW50ZWQgZm9yIFdlYktpdDIuCitodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1zaGFyZWQtd29ya2VyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvY29ubmVjdC1zcmMvc2hhcmVk
LXdvcmtlci1jb25uZWN0LXNyYy1hbGxvd2VkLnN1Yi5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L2Nvbm5lY3Qtc3Jj
L3NoYXJlZC13b3JrZXItY29ubmVjdC1zcmMtYmxvY2tlZC5zdWIuaHRtbCBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9nZW4v
dG9wLmh0dHAtcnAvc2NyaXB0LXNyYy1zZWxmL3NoYXJlZHdvcmtlci1jbGFzc2ljLmh0dHAuaHRt
bCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>